jwawinbase.pas 542 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924
  1. {******************************************************************************}
  2. { }
  3. { Windows Base Services API interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { The original file is: winbase.h, released August 2001. The original Pascal }
  9. { code is: WinBase.pas, released December 2000. The initial developer of the }
  10. { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
  11. { }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
  13. { Marcel van Brakel. All Rights Reserved. }
  14. { }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
  16. { }
  17. { You may retrieve the latest version of this file at the Project JEDI }
  18. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  19. { }
  20. { The contents of this file are used with permission, subject to the Mozilla }
  21. { Public License Version 1.1 (the "License"); you may not use this file except }
  22. { in compliance with the License. You may obtain a copy of the License at }
  23. { http://www.mozilla.org/MPL/MPL-1.1.html }
  24. { }
  25. { Software distributed under the License is distributed on an "AS IS" basis, }
  26. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  27. { the specific language governing rights and limitations under the License. }
  28. { }
  29. { Alternatively, the contents of this file may be used under the terms of the }
  30. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  31. { provisions of the LGPL License are applicable instead of those above. }
  32. { If you wish to allow use of your version of this file only under the terms }
  33. { of the LGPL License and not to allow others to use your version of this file }
  34. { under the MPL, indicate your decision by deleting the provisions above and }
  35. { replace them with the notice and other provisions required by the LGPL }
  36. { License. If you do not delete the provisions above, a recipient may use }
  37. { your version of this file under either the MPL or the LGPL License. }
  38. { }
  39. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  40. { }
  41. {******************************************************************************}
  42. unit JwaWinBase;
  43. {$WEAKPACKAGEUNIT}
  44. {$HPPEMIT ''}
  45. {$HPPEMIT '#include "WinBase.h"'}
  46. {$HPPEMIT ''}
  47. {$I jediapilib.inc}
  48. {$STACKFRAMES ON}
  49. interface
  50. uses
  51. {$IFDEF USE_DELPHI_TYPES}
  52. Windows,
  53. {$ENDIF USE_DELPHI_TYPES}
  54. JwaNtStatus, JwaWinNT, JwaWinType;
  55. const
  56. INVALID_HANDLE_VALUE = HANDLE(-1);
  57. {$EXTERNALSYM INVALID_HANDLE_VALUE}
  58. INVALID_FILE_SIZE = DWORD($FFFFFFFF);
  59. {$EXTERNALSYM INVALID_FILE_SIZE}
  60. INVALID_SET_FILE_POINTER = DWORD(-1);
  61. {$EXTERNALSYM INVALID_SET_FILE_POINTER}
  62. INVALID_FILE_ATTRIBUTES = DWORD(-1);
  63. {$EXTERNALSYM INVALID_FILE_ATTRIBUTES}
  64. FILE_BEGIN = 0;
  65. {$EXTERNALSYM FILE_BEGIN}
  66. FILE_CURRENT = 1;
  67. {$EXTERNALSYM FILE_CURRENT}
  68. FILE_END = 2;
  69. {$EXTERNALSYM FILE_END}
  70. TIME_ZONE_ID_INVALID = DWORD($FFFFFFFF);
  71. {$EXTERNALSYM TIME_ZONE_ID_INVALID}
  72. WAIT_FAILED = DWORD($FFFFFFFF);
  73. {$EXTERNALSYM WAIT_FAILED}
  74. WAIT_OBJECT_0 = STATUS_WAIT_0 + 0;
  75. {$EXTERNALSYM WAIT_OBJECT_0}
  76. WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0 + 0;
  77. {$EXTERNALSYM WAIT_ABANDONED}
  78. WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0 + 0;
  79. {$EXTERNALSYM WAIT_ABANDONED_0}
  80. WAIT_IO_COMPLETION = STATUS_USER_APC;
  81. {$EXTERNALSYM WAIT_IO_COMPLETION}
  82. STILL_ACTIVE = STATUS_PENDING;
  83. {$EXTERNALSYM STILL_ACTIVE}
  84. EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION;
  85. {$EXTERNALSYM EXCEPTION_ACCESS_VIOLATION}
  86. EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT;
  87. {$EXTERNALSYM EXCEPTION_DATATYPE_MISALIGNMENT}
  88. EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT;
  89. {$EXTERNALSYM EXCEPTION_BREAKPOINT}
  90. EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP;
  91. {$EXTERNALSYM EXCEPTION_SINGLE_STEP}
  92. EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED;
  93. {$EXTERNALSYM EXCEPTION_ARRAY_BOUNDS_EXCEEDED}
  94. EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND;
  95. {$EXTERNALSYM EXCEPTION_FLT_DENORMAL_OPERAND}
  96. EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO;
  97. {$EXTERNALSYM EXCEPTION_FLT_DIVIDE_BY_ZERO}
  98. EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT;
  99. {$EXTERNALSYM EXCEPTION_FLT_INEXACT_RESULT}
  100. EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION;
  101. {$EXTERNALSYM EXCEPTION_FLT_INVALID_OPERATION}
  102. EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW;
  103. {$EXTERNALSYM EXCEPTION_FLT_OVERFLOW}
  104. EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK;
  105. {$EXTERNALSYM EXCEPTION_FLT_STACK_CHECK}
  106. EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW;
  107. {$EXTERNALSYM EXCEPTION_FLT_UNDERFLOW}
  108. EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO;
  109. {$EXTERNALSYM EXCEPTION_INT_DIVIDE_BY_ZERO}
  110. EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW;
  111. {$EXTERNALSYM EXCEPTION_INT_OVERFLOW}
  112. EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION;
  113. {$EXTERNALSYM EXCEPTION_PRIV_INSTRUCTION}
  114. EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR;
  115. {$EXTERNALSYM EXCEPTION_IN_PAGE_ERROR}
  116. EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION;
  117. {$EXTERNALSYM EXCEPTION_ILLEGAL_INSTRUCTION}
  118. EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION;
  119. {$EXTERNALSYM EXCEPTION_NONCONTINUABLE_EXCEPTION}
  120. EXCEPTION_STACK_OVERFLOW = STATUS_STACK_OVERFLOW;
  121. {$EXTERNALSYM EXCEPTION_STACK_OVERFLOW}
  122. EXCEPTION_INVALID_DISPOSITION = STATUS_INVALID_DISPOSITION;
  123. {$EXTERNALSYM EXCEPTION_INVALID_DISPOSITION}
  124. EXCEPTION_GUARD_PAGE = STATUS_GUARD_PAGE_VIOLATION;
  125. {$EXTERNALSYM EXCEPTION_GUARD_PAGE}
  126. EXCEPTION_INVALID_HANDLE = STATUS_INVALID_HANDLE;
  127. {$EXTERNALSYM EXCEPTION_INVALID_HANDLE}
  128. EXCEPTION_POSSIBLE_DEADLOCK = STATUS_POSSIBLE_DEADLOCK;
  129. {$EXTERNALSYM EXCEPTION_POSSIBLE_DEADLOCK}
  130. CONTROL_C_EXIT = STATUS_CONTROL_C_EXIT;
  131. {$EXTERNALSYM CONTROL_C_EXIT}
  132. procedure MoveMemory(Destination, Source: PVOID; Length: SIZE_T);
  133. {$EXTERNALSYM MoveMemory}
  134. procedure CopyMemory(Destination, Source: PVOID; Length: SIZE_T);
  135. {$EXTERNALSYM CopyMemory}
  136. procedure FillMemory(Destination: PVOID; Length: SIZE_T; Fill: BYTE);
  137. {$EXTERNALSYM FillMemory}
  138. procedure ZeroMemory(Destination: PVOID; Length: SIZE_T);
  139. {$EXTERNALSYM ZeroMemory}
  140. //#define SecureZeroMemory RtlSecureZeroMemory TODO
  141. //
  142. // File creation flags must start at the high end since they
  143. // are combined with the attributes
  144. //
  145. const
  146. FILE_FLAG_WRITE_THROUGH = DWORD($80000000);
  147. {$EXTERNALSYM FILE_FLAG_WRITE_THROUGH}
  148. FILE_FLAG_OVERLAPPED = $40000000;
  149. {$EXTERNALSYM FILE_FLAG_OVERLAPPED}
  150. FILE_FLAG_NO_BUFFERING = $20000000;
  151. {$EXTERNALSYM FILE_FLAG_NO_BUFFERING}
  152. FILE_FLAG_RANDOM_ACCESS = $10000000;
  153. {$EXTERNALSYM FILE_FLAG_RANDOM_ACCESS}
  154. FILE_FLAG_SEQUENTIAL_SCAN = $08000000;
  155. {$EXTERNALSYM FILE_FLAG_SEQUENTIAL_SCAN}
  156. FILE_FLAG_DELETE_ON_CLOSE = $04000000;
  157. {$EXTERNALSYM FILE_FLAG_DELETE_ON_CLOSE}
  158. FILE_FLAG_BACKUP_SEMANTICS = $02000000;
  159. {$EXTERNALSYM FILE_FLAG_BACKUP_SEMANTICS}
  160. FILE_FLAG_POSIX_SEMANTICS = $01000000;
  161. {$EXTERNALSYM FILE_FLAG_POSIX_SEMANTICS}
  162. FILE_FLAG_OPEN_REPARSE_POINT = $00200000;
  163. {$EXTERNALSYM FILE_FLAG_OPEN_REPARSE_POINT}
  164. FILE_FLAG_OPEN_NO_RECALL = $00100000;
  165. {$EXTERNALSYM FILE_FLAG_OPEN_NO_RECALL}
  166. FILE_FLAG_FIRST_PIPE_INSTANCE = $00080000;
  167. {$EXTERNALSYM FILE_FLAG_FIRST_PIPE_INSTANCE}
  168. CREATE_NEW = 1;
  169. {$EXTERNALSYM CREATE_NEW}
  170. CREATE_ALWAYS = 2;
  171. {$EXTERNALSYM CREATE_ALWAYS}
  172. OPEN_EXISTING = 3;
  173. {$EXTERNALSYM OPEN_EXISTING}
  174. OPEN_ALWAYS = 4;
  175. {$EXTERNALSYM OPEN_ALWAYS}
  176. TRUNCATE_EXISTING = 5;
  177. {$EXTERNALSYM TRUNCATE_EXISTING}
  178. //
  179. // Define possible return codes from the CopyFileEx callback routine
  180. //
  181. PROGRESS_CONTINUE = 0;
  182. {$EXTERNALSYM PROGRESS_CONTINUE}
  183. PROGRESS_CANCEL = 1;
  184. {$EXTERNALSYM PROGRESS_CANCEL}
  185. PROGRESS_STOP = 2;
  186. {$EXTERNALSYM PROGRESS_STOP}
  187. PROGRESS_QUIET = 3;
  188. {$EXTERNALSYM PROGRESS_QUIET}
  189. //
  190. // Define CopyFileEx callback routine state change values
  191. //
  192. CALLBACK_CHUNK_FINISHED = $00000000;
  193. {$EXTERNALSYM CALLBACK_CHUNK_FINISHED}
  194. CALLBACK_STREAM_SWITCH = $00000001;
  195. {$EXTERNALSYM CALLBACK_STREAM_SWITCH}
  196. //
  197. // Define CopyFileEx option flags
  198. //
  199. COPY_FILE_FAIL_IF_EXISTS = $00000001;
  200. {$EXTERNALSYM COPY_FILE_FAIL_IF_EXISTS}
  201. COPY_FILE_RESTARTABLE = $00000002;
  202. {$EXTERNALSYM COPY_FILE_RESTARTABLE}
  203. COPY_FILE_OPEN_SOURCE_FOR_WRITE = $00000004;
  204. {$EXTERNALSYM COPY_FILE_OPEN_SOURCE_FOR_WRITE}
  205. COPY_FILE_ALLOW_DECRYPTED_DESTINATION = $00000008;
  206. {$EXTERNALSYM COPY_FILE_ALLOW_DECRYPTED_DESTINATION}
  207. //
  208. // Define ReplaceFile option flags
  209. //
  210. REPLACEFILE_WRITE_THROUGH = $00000001;
  211. {$EXTERNALSYM REPLACEFILE_WRITE_THROUGH}
  212. REPLACEFILE_IGNORE_MERGE_ERRORS = $00000002;
  213. {$EXTERNALSYM REPLACEFILE_IGNORE_MERGE_ERRORS}
  214. //
  215. // Define the NamedPipe definitions
  216. //
  217. //
  218. // Define the dwOpenMode values for CreateNamedPipe
  219. //
  220. PIPE_ACCESS_INBOUND = $00000001;
  221. {$EXTERNALSYM PIPE_ACCESS_INBOUND}
  222. PIPE_ACCESS_OUTBOUND = $00000002;
  223. {$EXTERNALSYM PIPE_ACCESS_OUTBOUND}
  224. PIPE_ACCESS_DUPLEX = $00000003;
  225. {$EXTERNALSYM PIPE_ACCESS_DUPLEX}
  226. //
  227. // Define the Named Pipe End flags for GetNamedPipeInfo
  228. //
  229. PIPE_CLIENT_END = $00000000;
  230. {$EXTERNALSYM PIPE_CLIENT_END}
  231. PIPE_SERVER_END = $00000001;
  232. {$EXTERNALSYM PIPE_SERVER_END}
  233. //
  234. // Define the dwPipeMode values for CreateNamedPipe
  235. //
  236. PIPE_WAIT = $00000000;
  237. {$EXTERNALSYM PIPE_WAIT}
  238. PIPE_NOWAIT = $00000001;
  239. {$EXTERNALSYM PIPE_NOWAIT}
  240. PIPE_READMODE_BYTE = $00000000;
  241. {$EXTERNALSYM PIPE_READMODE_BYTE}
  242. PIPE_READMODE_MESSAGE = $00000002;
  243. {$EXTERNALSYM PIPE_READMODE_MESSAGE}
  244. PIPE_TYPE_BYTE = $00000000;
  245. {$EXTERNALSYM PIPE_TYPE_BYTE}
  246. PIPE_TYPE_MESSAGE = $00000004;
  247. {$EXTERNALSYM PIPE_TYPE_MESSAGE}
  248. //
  249. // Define the well known values for CreateNamedPipe nMaxInstances
  250. //
  251. PIPE_UNLIMITED_INSTANCES = 255;
  252. {$EXTERNALSYM PIPE_UNLIMITED_INSTANCES}
  253. //
  254. // Define the Security Quality of Service bits to be passed
  255. // into CreateFile
  256. //
  257. SECURITY_ANONYMOUS = Ord(SecurityAnonymous) shl 16;
  258. {$EXTERNALSYM SECURITY_ANONYMOUS}
  259. SECURITY_IDENTIFICATION = Ord(SecurityIdentification) shl 16;
  260. {$EXTERNALSYM SECURITY_IDENTIFICATION}
  261. SECURITY_IMPERSONATION = Ord(SecurityImpersonation) shl 16;
  262. {$EXTERNALSYM SECURITY_IMPERSONATION}
  263. SECURITY_DELEGATION = Ord(SecurityDelegation) shl 16;
  264. {$EXTERNALSYM SECURITY_DELEGATION}
  265. SECURITY_CONTEXT_TRACKING = $00040000;
  266. {$EXTERNALSYM SECURITY_CONTEXT_TRACKING}
  267. SECURITY_EFFECTIVE_ONLY = $00080000;
  268. {$EXTERNALSYM SECURITY_EFFECTIVE_ONLY}
  269. SECURITY_SQOS_PRESENT = $00100000;
  270. {$EXTERNALSYM SECURITY_SQOS_PRESENT}
  271. SECURITY_VALID_SQOS_FLAGS = $001F0000;
  272. {$EXTERNALSYM SECURITY_VALID_SQOS_FLAGS}
  273. //
  274. // File structures
  275. //
  276. type
  277. LPOVERLAPPED = ^OVERLAPPED;
  278. {$EXTERNALSYM LPOVERLAPPED}
  279. _OVERLAPPED = record
  280. Internal: ULONG_PTR;
  281. InternalHigh: ULONG_PTR;
  282. Union: record
  283. case Integer of
  284. 0: (
  285. Offset: DWORD;
  286. OffsetHigh: DWORD);
  287. 1: (
  288. Pointer: PVOID);
  289. end;
  290. hEvent: HANDLE;
  291. end;
  292. {$EXTERNALSYM _OVERLAPPED}
  293. OVERLAPPED = _OVERLAPPED;
  294. {$EXTERNALSYM OVERLAPPED}
  295. TOverlapped = OVERLAPPED;
  296. POverlapped = LPOVERLAPPED;
  297. PSECURITY_ATTRIBUTES = ^SECURITY_ATTRIBUTES;
  298. {$EXTERNALSYM PSECURITY_ATTRIBUTES}
  299. _SECURITY_ATTRIBUTES = record
  300. nLength: DWORD;
  301. lpSecurityDescriptor: LPVOID;
  302. bInheritHandle: BOOL;
  303. end;
  304. {$EXTERNALSYM _SECURITY_ATTRIBUTES}
  305. SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES;
  306. {$EXTERNALSYM SECURITY_ATTRIBUTES}
  307. LPSECURITY_ATTRIBUTES = ^SECURITY_ATTRIBUTES;
  308. {$EXTERNALSYM LPSECURITY_ATTRIBUTES}
  309. TSecurityAttributes = SECURITY_ATTRIBUTES;
  310. PSecurityAttributes = PSECURITY_ATTRIBUTES;
  311. PPROCESS_INFORMATION = ^PROCESS_INFORMATION;
  312. {$EXTERNALSYM PPROCESS_INFORMATION}
  313. _PROCESS_INFORMATION = record
  314. hProcess: HANDLE;
  315. hThread: HANDLE;
  316. dwProcessId: DWORD;
  317. dwThreadId: DWORD;
  318. end;
  319. {$EXTERNALSYM _PROCESS_INFORMATION}
  320. PROCESS_INFORMATION = _PROCESS_INFORMATION;
  321. {$EXTERNALSYM PROCESS_INFORMATION}
  322. LPPROCESS_INFORMATION = ^PROCESS_INFORMATION;
  323. {$EXTERNALSYM LPPROCESS_INFORMATION}
  324. TProcessInformation = PROCESS_INFORMATION;
  325. PProcessInformation = PPROCESS_INFORMATION;
  326. //
  327. // File System time stamps are represented with the following structure:
  328. //
  329. LPFILETIME = ^FILETIME;
  330. {$EXTERNALSYM LPFILETIME}
  331. _FILETIME = record
  332. dwLowDateTime: DWORD;
  333. dwHighDateTime: DWORD;
  334. end;
  335. {$EXTERNALSYM _FILETIME}
  336. FILETIME = _FILETIME;
  337. {$EXTERNALSYM FILETIME}
  338. TFileTime = FILETIME;
  339. PFileTime = LPFILETIME;
  340. //
  341. // System time is represented with the following structure:
  342. //
  343. LPSYSTEMTIME = ^SYSTEMTIME;
  344. {$EXTERNALSYM LPSYSTEMTIME}
  345. {$IFDEF USE_DELPHI_TYPES}
  346. _SYSTEMTIME = Windows._SYSTEMTIME;
  347. SYSTEMTIME = Windows.SYSTEMTIME;
  348. TSystemTime = Windows.TSystemTime;
  349. PSystemtime = Windows.PSystemTime;
  350. {$ELSE}
  351. _SYSTEMTIME = record
  352. wYear: Word;
  353. wMonth: Word;
  354. wDayOfWeek: Word;
  355. wDay: Word;
  356. wHour: Word;
  357. wMinute: Word;
  358. wSecond: Word;
  359. wMilliseconds: Word;
  360. end;
  361. {$EXTERNALSYM _SYSTEMTIME}
  362. SYSTEMTIME = _SYSTEMTIME;
  363. {$EXTERNALSYM SYSTEMTIME}
  364. TSystemTime = SYSTEMTIME;
  365. PSystemTime = LPSYSTEMTIME;
  366. {$ENDIF USE_DELPHI_TYPES}
  367. PTHREAD_START_ROUTINE = function(lpThreadParameter: LPVOID): DWORD; stdcall;
  368. {$EXTERNALSYM PTHREAD_START_ROUTINE}
  369. LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
  370. {$EXTERNALSYM LPTHREAD_START_ROUTINE}
  371. TThreadStartRoutine = PTHREAD_START_ROUTINE;
  372. PFIBER_START_ROUTINE = procedure(lpFiberParameter: LPVOID); stdcall;
  373. {$EXTERNALSYM PFIBER_START_ROUTINE}
  374. LPFIBER_START_ROUTINE = PFIBER_START_ROUTINE;
  375. {$EXTERNALSYM LPFIBER_START_ROUTINE}
  376. TFiberStartRoutine = PFIBER_START_ROUTINE;
  377. CRITICAL_SECTION = RTL_CRITICAL_SECTION;
  378. {$EXTERNALSYM CRITICAL_SECTION}
  379. PCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
  380. {$EXTERNALSYM PCRITICAL_SECTION}
  381. LPCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
  382. {$EXTERNALSYM LPCRITICAL_SECTION}
  383. TCriticalSection = CRITICAL_SECTION;
  384. PCriticalSection = PCRITICAL_SECTION;
  385. CRITICAL_SECTION_DEBUG = RTL_CRITICAL_SECTION_DEBUG;
  386. {$EXTERNALSYM CRITICAL_SECTION_DEBUG}
  387. PCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
  388. {$EXTERNALSYM PCRITICAL_SECTION_DEBUG}
  389. LPCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
  390. {$EXTERNALSYM LPCRITICAL_SECTION_DEBUG}
  391. TCriticalSectionDebug = CRITICAL_SECTION_DEBUG;
  392. PCriticalSectionDebug = PCRITICAL_SECTION_DEBUG;
  393. LPLDT_ENTRY = PLDT_ENTRY;
  394. {$EXTERNALSYM LPLDT_ENTRY}
  395. PLdtEntry = LPLDT_ENTRY;
  396. const
  397. MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE;
  398. {$EXTERNALSYM MUTEX_MODIFY_STATE}
  399. MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS;
  400. {$EXTERNALSYM MUTEX_ALL_ACCESS}
  401. //
  402. // Serial provider type.
  403. //
  404. SP_SERIALCOMM = DWORD($00000001);
  405. {$EXTERNALSYM SP_SERIALCOMM}
  406. //
  407. // Provider SubTypes
  408. //
  409. PST_UNSPECIFIED = DWORD($00000000);
  410. {$EXTERNALSYM PST_UNSPECIFIED}
  411. PST_RS232 = DWORD($00000001);
  412. {$EXTERNALSYM PST_RS232}
  413. PST_PARALLELPORT = DWORD($00000002);
  414. {$EXTERNALSYM PST_PARALLELPORT}
  415. PST_RS422 = DWORD($00000003);
  416. {$EXTERNALSYM PST_RS422}
  417. PST_RS423 = DWORD($00000004);
  418. {$EXTERNALSYM PST_RS423}
  419. PST_RS449 = DWORD($00000005);
  420. {$EXTERNALSYM PST_RS449}
  421. PST_MODEM = DWORD($00000006);
  422. {$EXTERNALSYM PST_MODEM}
  423. PST_FAX = DWORD($00000021);
  424. {$EXTERNALSYM PST_FAX}
  425. PST_SCANNER = DWORD($00000022);
  426. {$EXTERNALSYM PST_SCANNER}
  427. PST_NETWORK_BRIDGE = DWORD($00000100);
  428. {$EXTERNALSYM PST_NETWORK_BRIDGE}
  429. PST_LAT = DWORD($00000101);
  430. {$EXTERNALSYM PST_LAT}
  431. PST_TCPIP_TELNET = DWORD($00000102);
  432. {$EXTERNALSYM PST_TCPIP_TELNET}
  433. PST_X25 = DWORD($00000103);
  434. {$EXTERNALSYM PST_X25}
  435. //
  436. // Provider capabilities flags.
  437. //
  438. PCF_DTRDSR = DWORD($0001);
  439. {$EXTERNALSYM PCF_DTRDSR}
  440. PCF_RTSCTS = DWORD($0002);
  441. {$EXTERNALSYM PCF_RTSCTS}
  442. PCF_RLSD = DWORD($0004);
  443. {$EXTERNALSYM PCF_RLSD}
  444. PCF_PARITY_CHECK = DWORD($0008);
  445. {$EXTERNALSYM PCF_PARITY_CHECK}
  446. PCF_XONXOFF = DWORD($0010);
  447. {$EXTERNALSYM PCF_XONXOFF}
  448. PCF_SETXCHAR = DWORD($0020);
  449. {$EXTERNALSYM PCF_SETXCHAR}
  450. PCF_TOTALTIMEOUTS = DWORD($0040);
  451. {$EXTERNALSYM PCF_TOTALTIMEOUTS}
  452. PCF_INTTIMEOUTS = DWORD($0080);
  453. {$EXTERNALSYM PCF_INTTIMEOUTS}
  454. PCF_SPECIALCHARS = DWORD($0100);
  455. {$EXTERNALSYM PCF_SPECIALCHARS}
  456. PCF_16BITMODE = DWORD($0200);
  457. {$EXTERNALSYM PCF_16BITMODE}
  458. //
  459. // Comm provider settable parameters.
  460. //
  461. SP_PARITY = DWORD($0001);
  462. {$EXTERNALSYM SP_PARITY}
  463. SP_BAUD = DWORD($0002);
  464. {$EXTERNALSYM SP_BAUD}
  465. SP_DATABITS = DWORD($0004);
  466. {$EXTERNALSYM SP_DATABITS}
  467. SP_STOPBITS = DWORD($0008);
  468. {$EXTERNALSYM SP_STOPBITS}
  469. SP_HANDSHAKING = DWORD($0010);
  470. {$EXTERNALSYM SP_HANDSHAKING}
  471. SP_PARITY_CHECK = DWORD($0020);
  472. {$EXTERNALSYM SP_PARITY_CHECK}
  473. SP_RLSD = DWORD($0040);
  474. {$EXTERNALSYM SP_RLSD}
  475. //
  476. // Settable baud rates in the provider.
  477. //
  478. BAUD_075 = DWORD($00000001);
  479. {$EXTERNALSYM BAUD_075}
  480. BAUD_110 = DWORD($00000002);
  481. {$EXTERNALSYM BAUD_110}
  482. BAUD_134_5 = DWORD($00000004);
  483. {$EXTERNALSYM BAUD_134_5}
  484. BAUD_150 = DWORD($00000008);
  485. {$EXTERNALSYM BAUD_150}
  486. BAUD_300 = DWORD($00000010);
  487. {$EXTERNALSYM BAUD_300}
  488. BAUD_600 = DWORD($00000020);
  489. {$EXTERNALSYM BAUD_600}
  490. BAUD_1200 = DWORD($00000040);
  491. {$EXTERNALSYM BAUD_1200}
  492. BAUD_1800 = DWORD($00000080);
  493. {$EXTERNALSYM BAUD_1800}
  494. BAUD_2400 = DWORD($00000100);
  495. {$EXTERNALSYM BAUD_2400}
  496. BAUD_4800 = DWORD($00000200);
  497. {$EXTERNALSYM BAUD_4800}
  498. BAUD_7200 = DWORD($00000400);
  499. {$EXTERNALSYM BAUD_7200}
  500. BAUD_9600 = DWORD($00000800);
  501. {$EXTERNALSYM BAUD_9600}
  502. BAUD_14400 = DWORD($00001000);
  503. {$EXTERNALSYM BAUD_14400}
  504. BAUD_19200 = DWORD($00002000);
  505. {$EXTERNALSYM BAUD_19200}
  506. BAUD_38400 = DWORD($00004000);
  507. {$EXTERNALSYM BAUD_38400}
  508. BAUD_56K = DWORD($00008000);
  509. {$EXTERNALSYM BAUD_56K}
  510. BAUD_128K = DWORD($00010000);
  511. {$EXTERNALSYM BAUD_128K}
  512. BAUD_115200 = DWORD($00020000);
  513. {$EXTERNALSYM BAUD_115200}
  514. BAUD_57600 = DWORD($00040000);
  515. {$EXTERNALSYM BAUD_57600}
  516. BAUD_USER = DWORD($10000000);
  517. {$EXTERNALSYM BAUD_USER}
  518. //
  519. // Settable Data Bits
  520. //
  521. DATABITS_5 = WORD($0001);
  522. {$EXTERNALSYM DATABITS_5}
  523. DATABITS_6 = WORD($0002);
  524. {$EXTERNALSYM DATABITS_6}
  525. DATABITS_7 = WORD($0004);
  526. {$EXTERNALSYM DATABITS_7}
  527. DATABITS_8 = WORD($0008);
  528. {$EXTERNALSYM DATABITS_8}
  529. DATABITS_16 = WORD($0010);
  530. {$EXTERNALSYM DATABITS_16}
  531. DATABITS_16X = WORD($0020);
  532. {$EXTERNALSYM DATABITS_16X}
  533. //
  534. // Settable Stop and Parity bits.
  535. //
  536. STOPBITS_10 = WORD($0001);
  537. {$EXTERNALSYM STOPBITS_10}
  538. STOPBITS_15 = WORD($0002);
  539. {$EXTERNALSYM STOPBITS_15}
  540. STOPBITS_20 = WORD($0004);
  541. {$EXTERNALSYM STOPBITS_20}
  542. PARITY_NONE = WORD($0100);
  543. {$EXTERNALSYM PARITY_NONE}
  544. PARITY_ODD = WORD($0200);
  545. {$EXTERNALSYM PARITY_ODD}
  546. PARITY_EVEN = WORD($0400);
  547. {$EXTERNALSYM PARITY_EVEN}
  548. PARITY_MARK = WORD($0800);
  549. {$EXTERNALSYM PARITY_MARK}
  550. PARITY_SPACE = WORD($1000);
  551. {$EXTERNALSYM PARITY_SPACE}
  552. type
  553. LPCOMMPROP = ^COMMPROP;
  554. {$EXTERNALSYM LPCOMMPROP}
  555. _COMMPROP = record
  556. wPacketLength: Word;
  557. wPacketVersion: Word;
  558. dwServiceMask: DWORD;
  559. dwReserved1: DWORD;
  560. dwMaxTxQueue: DWORD;
  561. dwMaxRxQueue: DWORD;
  562. dwMaxBaud: DWORD;
  563. dwProvSubType: DWORD;
  564. dwProvCapabilities: DWORD;
  565. dwSettableParams: DWORD;
  566. dwSettableBaud: DWORD;
  567. wSettableData: Word;
  568. wSettableStopParity: Word;
  569. dwCurrentTxQueue: DWORD;
  570. dwCurrentRxQueue: DWORD;
  571. dwProvSpec1: DWORD;
  572. dwProvSpec2: DWORD;
  573. wcProvChar: array [0..0] of WCHAR;
  574. end;
  575. {$EXTERNALSYM _COMMPROP}
  576. COMMPROP = _COMMPROP;
  577. {$EXTERNALSYM COMMPROP}
  578. TCommProp = COMMPROP;
  579. PCommProp = LPCOMMPROP;
  580. //
  581. // Set dwProvSpec1 to COMMPROP_INITIALIZED to indicate that wPacketLength
  582. // is valid before a call to GetCommProperties().
  583. //
  584. const
  585. COMMPROP_INITIALIZED = DWORD($E73CF52E);
  586. {$EXTERNALSYM COMMPROP_INITIALIZED}
  587. //_COMSTAT Flags (bitfield)
  588. COMSTAT_CTS_HOLD = 1 shl 0;
  589. COMSTAT_DSR_HOLD = 1 shl 1;
  590. COMSTAT_RLSD_HOLD = 1 shl 2;
  591. COMSTAT_XOFF_HOLD = 1 shl 3;
  592. COMSTAT_XOFF_SENT = 1 shl 4;
  593. COMSTAT_F_EOF = 1 shl 5;
  594. COMSTAT_F_TXIM = 1 shl 6;
  595. type
  596. LPCOMSTAT = ^COMSTAT;
  597. {$EXTERNALSYM LPCOMSTAT}
  598. _COMSTAT = record
  599. Flags: DWORD;
  600. cbInQue: DWORD;
  601. cbOutQue: DWORD;
  602. end;
  603. {$EXTERNALSYM _COMSTAT}
  604. COMSTAT = _COMSTAT;
  605. {$EXTERNALSYM COMSTAT}
  606. TComstat = COMSTAT;
  607. PComstat = LPCOMSTAT;
  608. //
  609. // DTR Control Flow Values.
  610. //
  611. const
  612. DTR_CONTROL_DISABLE = $00;
  613. {$EXTERNALSYM DTR_CONTROL_DISABLE}
  614. DTR_CONTROL_ENABLE = $01;
  615. {$EXTERNALSYM DTR_CONTROL_ENABLE}
  616. DTR_CONTROL_HANDSHAKE = $02;
  617. {$EXTERNALSYM DTR_CONTROL_HANDSHAKE}
  618. //
  619. // RTS Control Flow Values
  620. //
  621. RTS_CONTROL_DISABLE = $00;
  622. {$EXTERNALSYM RTS_CONTROL_DISABLE}
  623. RTS_CONTROL_ENABLE = $01;
  624. {$EXTERNALSYM RTS_CONTROL_ENABLE}
  625. RTS_CONTROL_HANDSHAKE = $02;
  626. {$EXTERNALSYM RTS_CONTROL_HANDSHAKE}
  627. RTS_CONTROL_TOGGLE = $03;
  628. {$EXTERNALSYM RTS_CONTROL_TOGGLE}
  629. // _DCB.Flags
  630. const
  631. fDcbBinary = 1 shl 0; // Binary Mode (skip EOF check)
  632. fDcbParity = 1 shl 1; // Enable parity checking
  633. fDcbOutxCtsFlow = 1 shl 2; // CTS handshaking on output
  634. fDcbOutxDsrFlow = 1 shl 3; // DSR handshaking on output
  635. fDcbDtrControl = $0030; // DTR Flow control
  636. fDcbDsrSensitivity = 1 shl 6; // DSR Sensitivity
  637. fDcbTXContinueOnXoff = 1 shl 7; // Continue TX when Xoff sent
  638. fDcbOutX = 1 shl 8; // Enable output X-ON/X-OFF
  639. fDcbInX = 1 shl 9; // Enable input X-ON/X-OFF
  640. fDcbErrorChar = 1 shl 10; // Enable Err Replacement
  641. fDcbNull = 1 shl 11; // Enable Null stripping
  642. fDcbRtsControl = $3000; // Rts Flow control
  643. fAbortOnError = 1 shl 14; // Abort all reads and writes on Error
  644. type
  645. LPDCB = ^DCB;
  646. {$EXTERNALSYM LPDCB}
  647. _DCB = record
  648. DCBlength: DWORD; // sizeof(DCB)
  649. BaudRate: DWORD; // Baudrate at which running
  650. Flags: DWORD; // See constants above
  651. wReserved: WORD; // Not currently used
  652. XonLim: WORD; // Transmit X-ON threshold
  653. XoffLim: WORD; // Transmit X-OFF threshold
  654. ByteSize: BYTE; // Number of bits/byte, 4-8
  655. Parity: BYTE; // 0-4=None,Odd,Even,Mark,Space
  656. StopBits: BYTE; // 0,1,2 = 1, 1.5, 2
  657. XonChar: Char; // Tx and Rx X-ON character
  658. XoffChar: Char; // Tx and Rx X-OFF character
  659. ErrorChar: Char; // Error replacement char
  660. EofChar: Char; // End of Input character
  661. EvtChar: Char; // Received Event character
  662. wReserved1: WORD; // Fill for now.
  663. end;
  664. {$EXTERNALSYM _DCB}
  665. DCB = _DCB;
  666. {$EXTERNALSYM DCB}
  667. TDCB = DCB;
  668. PDCB = LPDCB;
  669. LPCOMMTIMEOUTS = ^COMMTIMEOUTS;
  670. {$EXTERNALSYM LPCOMMTIMEOUTS}
  671. _COMMTIMEOUTS = record
  672. ReadIntervalTimeout: DWORD; // Maximum time between read chars.
  673. ReadTotalTimeoutMultiplier: DWORD; // Multiplier of characters.
  674. ReadTotalTimeoutConstant: DWORD; // Constant in milliseconds.
  675. WriteTotalTimeoutMultiplier: DWORD; // Multiplier of characters.
  676. WriteTotalTimeoutConstant: DWORD; // Constant in milliseconds.
  677. end;
  678. {$EXTERNALSYM _COMMTIMEOUTS}
  679. COMMTIMEOUTS = _COMMTIMEOUTS;
  680. {$EXTERNALSYM COMMTIMEOUTS}
  681. TCommTimeouts = COMMTIMEOUTS;
  682. PCommTimeouts = LPCOMMTIMEOUTS;
  683. LPCOMMCONFIG = ^COMMCONFIG;
  684. {$EXTERNALSYM LPCOMMCONFIG}
  685. _COMMCONFIG = record
  686. dwSize: DWORD; // Size of the entire struct
  687. wVersion: Word; // version of the structure
  688. wReserved: Word; // alignment
  689. dcb: DCB; // device control block
  690. dwProviderSubType: DWORD; // ordinal value for identifying
  691. // provider-defined data structure format
  692. dwProviderOffset: DWORD; // Specifies the offset of provider specific
  693. // data field in bytes from the start
  694. dwProviderSize: DWORD; // size of the provider-specific data field
  695. wcProviderData: array [0..0] of WCHAR; // provider-specific data
  696. end;
  697. {$EXTERNALSYM _COMMCONFIG}
  698. COMMCONFIG = _COMMCONFIG;
  699. {$EXTERNALSYM COMMCONFIG}
  700. TCommConfig = COMMCONFIG;
  701. PCommConfig = LPCOMMCONFIG;
  702. LPSYSTEM_INFO = ^SYSTEM_INFO;
  703. {$EXTERNALSYM LPSYSTEM_INFO}
  704. _SYSTEM_INFO = record
  705. case Integer of
  706. 0: (
  707. dwOemId: DWORD); // absolete, do not use
  708. 1: (
  709. wProcessorArchitecture: WORD;
  710. wReserved: WORD;
  711. dwPageSize: DWORD;
  712. lpMinimumApplicationAddress: LPVOID;
  713. lpMaximumApplicationAddress: LPVOID;
  714. dwActiveProcessorMask: DWORD_PTR;
  715. dwNumberOfProcessors: DWORD;
  716. dwProcessorType: DWORD;
  717. dwAllocationGranularity: DWORD;
  718. wProcessorLevel: WORD;
  719. wProcessorRevision: WORD);
  720. end;
  721. {$EXTERNALSYM _SYSTEM_INFO}
  722. SYSTEM_INFO = _SYSTEM_INFO;
  723. {$EXTERNALSYM SYSTEM_INFO}
  724. TSystemInfo = SYSTEM_INFO;
  725. PSystemInfo = LPSYSTEM_INFO;
  726. //
  727. //
  728. function FreeModule(hLibModule: HMODULE): BOOL;
  729. {$EXTERNALSYM FreeModule}
  730. function MakeProcInstance(lpProc: FARPROC; hInstance: HINSTANCE): FARPROC;
  731. {$EXTERNALSYM MakeProcInstance}
  732. procedure FreeProcInstance(lpProc: FARPROC);
  733. {$EXTERNALSYM FreeProcInstance}
  734. // Global Memory Flags
  735. const
  736. GMEM_FIXED = $0000;
  737. {$EXTERNALSYM GMEM_FIXED}
  738. GMEM_MOVEABLE = $0002;
  739. {$EXTERNALSYM GMEM_MOVEABLE}
  740. GMEM_NOCOMPACT = $0010;
  741. {$EXTERNALSYM GMEM_NOCOMPACT}
  742. GMEM_NODISCARD = $0020;
  743. {$EXTERNALSYM GMEM_NODISCARD}
  744. GMEM_ZEROINIT = $0040;
  745. {$EXTERNALSYM GMEM_ZEROINIT}
  746. GMEM_MODIFY = $0080;
  747. {$EXTERNALSYM GMEM_MODIFY}
  748. GMEM_DISCARDABLE = $0100;
  749. {$EXTERNALSYM GMEM_DISCARDABLE}
  750. GMEM_NOT_BANKED = $1000;
  751. {$EXTERNALSYM GMEM_NOT_BANKED}
  752. GMEM_SHARE = $2000;
  753. {$EXTERNALSYM GMEM_SHARE}
  754. GMEM_DDESHARE = $2000;
  755. {$EXTERNALSYM GMEM_DDESHARE}
  756. GMEM_NOTIFY = $4000;
  757. {$EXTERNALSYM GMEM_NOTIFY}
  758. GMEM_LOWER = GMEM_NOT_BANKED;
  759. {$EXTERNALSYM GMEM_LOWER}
  760. GMEM_VALID_FLAGS = $7F72;
  761. {$EXTERNALSYM GMEM_VALID_FLAGS}
  762. GMEM_INVALID_HANDLE = $8000;
  763. {$EXTERNALSYM GMEM_INVALID_HANDLE}
  764. GHND = GMEM_MOVEABLE or GMEM_ZEROINIT;
  765. {$EXTERNALSYM GHND}
  766. GPTR = GMEM_FIXED or GMEM_ZEROINIT;
  767. {$EXTERNALSYM GPTR}
  768. function GlobalLRUNewest(h: HANDLE): HANDLE;
  769. {$EXTERNALSYM GlobalLRUNewest}
  770. function GlobalLRUOldest(h: HANDLE): HANDLE;
  771. {$EXTERNALSYM GlobalLRUOldest}
  772. function GlobalDiscard(h: HANDLE): HANDLE;
  773. {$EXTERNALSYM GlobalDiscard}
  774. // Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE)
  775. const
  776. GMEM_DISCARDED = $4000;
  777. {$EXTERNALSYM GMEM_DISCARDED}
  778. GMEM_LOCKCOUNT = $00FF;
  779. {$EXTERNALSYM GMEM_LOCKCOUNT}
  780. type
  781. LPMEMORYSTATUS = ^MEMORYSTATUS;
  782. {$EXTERNALSYM LPMEMORYSTATUS}
  783. _MEMORYSTATUS = record
  784. dwLength: DWORD;
  785. dwMemoryLoad: DWORD;
  786. dwTotalPhys: SIZE_T;
  787. dwAvailPhys: SIZE_T;
  788. dwTotalPageFile: SIZE_T;
  789. dwAvailPageFile: SIZE_T;
  790. dwTotalVirtual: SIZE_T;
  791. dwAvailVirtual: SIZE_T;
  792. end;
  793. {$EXTERNALSYM _MEMORYSTATUS}
  794. MEMORYSTATUS = _MEMORYSTATUS;
  795. {$EXTERNALSYM MEMORYSTATUS}
  796. TMemoryStatus = MEMORYSTATUS;
  797. PMemoryStatus = LPMEMORYSTATUS;
  798. // Local Memory Flags
  799. const
  800. LMEM_FIXED = $0000;
  801. {$EXTERNALSYM LMEM_FIXED}
  802. LMEM_MOVEABLE = $0002;
  803. {$EXTERNALSYM LMEM_MOVEABLE}
  804. LMEM_NOCOMPACT = $0010;
  805. {$EXTERNALSYM LMEM_NOCOMPACT}
  806. LMEM_NODISCARD = $0020;
  807. {$EXTERNALSYM LMEM_NODISCARD}
  808. LMEM_ZEROINIT = $0040;
  809. {$EXTERNALSYM LMEM_ZEROINIT}
  810. LMEM_MODIFY = $0080;
  811. {$EXTERNALSYM LMEM_MODIFY}
  812. LMEM_DISCARDABLE = $0F00;
  813. {$EXTERNALSYM LMEM_DISCARDABLE}
  814. LMEM_VALID_FLAGS = $0F72;
  815. {$EXTERNALSYM LMEM_VALID_FLAGS}
  816. LMEM_INVALID_HANDLE = $8000;
  817. {$EXTERNALSYM LMEM_INVALID_HANDLE}
  818. LHND = LMEM_MOVEABLE or LMEM_ZEROINIT;
  819. {$EXTERNALSYM LHND}
  820. LPTR = LMEM_FIXED or LMEM_ZEROINIT;
  821. {$EXTERNALSYM LPTR}
  822. NONZEROLHND = LMEM_MOVEABLE;
  823. {$EXTERNALSYM NONZEROLHND}
  824. NONZEROLPTR = LMEM_FIXED;
  825. {$EXTERNALSYM NONZEROLPTR}
  826. function LocalDiscard(h: HLOCAL): HLOCAL;
  827. {$EXTERNALSYM LocalDiscard}
  828. // Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE)
  829. const
  830. LMEM_DISCARDED = $4000;
  831. {$EXTERNALSYM LMEM_DISCARDED}
  832. LMEM_LOCKCOUNT = $00FF;
  833. {$EXTERNALSYM LMEM_LOCKCOUNT}
  834. //
  835. // dwCreationFlag values
  836. //
  837. DEBUG_PROCESS = $00000001;
  838. {$EXTERNALSYM DEBUG_PROCESS}
  839. DEBUG_ONLY_THIS_PROCESS = $00000002;
  840. {$EXTERNALSYM DEBUG_ONLY_THIS_PROCESS}
  841. CREATE_SUSPENDED = $00000004;
  842. {$EXTERNALSYM CREATE_SUSPENDED}
  843. DETACHED_PROCESS = $00000008;
  844. {$EXTERNALSYM DETACHED_PROCESS}
  845. CREATE_NEW_CONSOLE = $00000010;
  846. {$EXTERNALSYM CREATE_NEW_CONSOLE}
  847. NORMAL_PRIORITY_CLASS = $00000020;
  848. {$EXTERNALSYM NORMAL_PRIORITY_CLASS}
  849. IDLE_PRIORITY_CLASS = $00000040;
  850. {$EXTERNALSYM IDLE_PRIORITY_CLASS}
  851. HIGH_PRIORITY_CLASS = $00000080;
  852. {$EXTERNALSYM HIGH_PRIORITY_CLASS}
  853. REALTIME_PRIORITY_CLASS = $00000100;
  854. {$EXTERNALSYM REALTIME_PRIORITY_CLASS}
  855. CREATE_NEW_PROCESS_GROUP = $00000200;
  856. {$EXTERNALSYM CREATE_NEW_PROCESS_GROUP}
  857. CREATE_UNICODE_ENVIRONMENT = $00000400;
  858. {$EXTERNALSYM CREATE_UNICODE_ENVIRONMENT}
  859. CREATE_SEPARATE_WOW_VDM = $00000800;
  860. {$EXTERNALSYM CREATE_SEPARATE_WOW_VDM}
  861. CREATE_SHARED_WOW_VDM = $00001000;
  862. {$EXTERNALSYM CREATE_SHARED_WOW_VDM}
  863. CREATE_FORCEDOS = $00002000;
  864. {$EXTERNALSYM CREATE_FORCEDOS}
  865. BELOW_NORMAL_PRIORITY_CLASS = $00004000;
  866. {$EXTERNALSYM BELOW_NORMAL_PRIORITY_CLASS}
  867. ABOVE_NORMAL_PRIORITY_CLASS = $00008000;
  868. {$EXTERNALSYM ABOVE_NORMAL_PRIORITY_CLASS}
  869. STACK_SIZE_PARAM_IS_A_RESERVATION = $00010000;
  870. {$EXTERNALSYM STACK_SIZE_PARAM_IS_A_RESERVATION}
  871. CREATE_BREAKAWAY_FROM_JOB = $01000000;
  872. {$EXTERNALSYM CREATE_BREAKAWAY_FROM_JOB}
  873. CREATE_PRESERVE_CODE_AUTHZ_LEVEL = $02000000;
  874. {$EXTERNALSYM CREATE_PRESERVE_CODE_AUTHZ_LEVEL}
  875. CREATE_DEFAULT_ERROR_MODE = $04000000;
  876. {$EXTERNALSYM CREATE_DEFAULT_ERROR_MODE}
  877. CREATE_NO_WINDOW = $08000000;
  878. {$EXTERNALSYM CREATE_NO_WINDOW}
  879. PROFILE_USER = $10000000;
  880. {$EXTERNALSYM PROFILE_USER}
  881. PROFILE_KERNEL = $20000000;
  882. {$EXTERNALSYM PROFILE_KERNEL}
  883. PROFILE_SERVER = $40000000;
  884. {$EXTERNALSYM PROFILE_SERVER}
  885. CREATE_IGNORE_SYSTEM_DEFAULT = DWORD($80000000);
  886. {$EXTERNALSYM CREATE_IGNORE_SYSTEM_DEFAULT}
  887. THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN;
  888. {$EXTERNALSYM THREAD_PRIORITY_LOWEST}
  889. THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST + 1;
  890. {$EXTERNALSYM THREAD_PRIORITY_BELOW_NORMAL}
  891. THREAD_PRIORITY_NORMAL = 0;
  892. {$EXTERNALSYM THREAD_PRIORITY_NORMAL}
  893. THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX;
  894. {$EXTERNALSYM THREAD_PRIORITY_HIGHEST}
  895. THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST - 1;
  896. {$EXTERNALSYM THREAD_PRIORITY_ABOVE_NORMAL}
  897. THREAD_PRIORITY_ERROR_RETURN = MAXLONG;
  898. {$EXTERNALSYM THREAD_PRIORITY_ERROR_RETURN}
  899. THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT;
  900. {$EXTERNALSYM THREAD_PRIORITY_TIME_CRITICAL}
  901. THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE;
  902. {$EXTERNALSYM THREAD_PRIORITY_IDLE}
  903. //
  904. // Debug APIs
  905. //
  906. EXCEPTION_DEBUG_EVENT = 1;
  907. {$EXTERNALSYM EXCEPTION_DEBUG_EVENT}
  908. CREATE_THREAD_DEBUG_EVENT = 2;
  909. {$EXTERNALSYM CREATE_THREAD_DEBUG_EVENT}
  910. CREATE_PROCESS_DEBUG_EVENT = 3;
  911. {$EXTERNALSYM CREATE_PROCESS_DEBUG_EVENT}
  912. EXIT_THREAD_DEBUG_EVENT = 4;
  913. {$EXTERNALSYM EXIT_THREAD_DEBUG_EVENT}
  914. EXIT_PROCESS_DEBUG_EVENT = 5;
  915. {$EXTERNALSYM EXIT_PROCESS_DEBUG_EVENT}
  916. LOAD_DLL_DEBUG_EVENT = 6;
  917. {$EXTERNALSYM LOAD_DLL_DEBUG_EVENT}
  918. UNLOAD_DLL_DEBUG_EVENT = 7;
  919. {$EXTERNALSYM UNLOAD_DLL_DEBUG_EVENT}
  920. OUTPUT_DEBUG_STRING_EVENT = 8;
  921. {$EXTERNALSYM OUTPUT_DEBUG_STRING_EVENT}
  922. RIP_EVENT = 9;
  923. {$EXTERNALSYM RIP_EVENT}
  924. type
  925. LPEXCEPTION_DEBUG_INFO = ^EXCEPTION_DEBUG_INFO;
  926. {$EXTERNALSYM LPEXCEPTION_DEBUG_INFO}
  927. _EXCEPTION_DEBUG_INFO = record
  928. ExceptionRecord: EXCEPTION_RECORD;
  929. dwFirstChance: DWORD;
  930. end;
  931. {$EXTERNALSYM _EXCEPTION_DEBUG_INFO}
  932. EXCEPTION_DEBUG_INFO = _EXCEPTION_DEBUG_INFO;
  933. {$EXTERNALSYM EXCEPTION_DEBUG_INFO}
  934. TExceptionDebugInfo = EXCEPTION_DEBUG_INFO;
  935. PExceptionDebugInfo = LPEXCEPTION_DEBUG_INFO;
  936. LPCREATE_THREAD_DEBUG_INFO = ^CREATE_THREAD_DEBUG_INFO;
  937. {$EXTERNALSYM LPCREATE_THREAD_DEBUG_INFO}
  938. _CREATE_THREAD_DEBUG_INFO = record
  939. hThread: HANDLE;
  940. lpThreadLocalBase: LPVOID;
  941. lpStartAddress: LPTHREAD_START_ROUTINE;
  942. end;
  943. {$EXTERNALSYM _CREATE_THREAD_DEBUG_INFO}
  944. CREATE_THREAD_DEBUG_INFO = _CREATE_THREAD_DEBUG_INFO;
  945. {$EXTERNALSYM CREATE_THREAD_DEBUG_INFO}
  946. TCreateThreadDebugInfo = CREATE_THREAD_DEBUG_INFO;
  947. PCreateThreadDebugInfo = LPCREATE_THREAD_DEBUG_INFO;
  948. LPCREATE_PROCESS_DEBUG_INFO = ^CREATE_PROCESS_DEBUG_INFO;
  949. {$EXTERNALSYM LPCREATE_PROCESS_DEBUG_INFO}
  950. _CREATE_PROCESS_DEBUG_INFO = record
  951. hFile: HANDLE;
  952. hProcess: HANDLE;
  953. hThread: HANDLE;
  954. lpBaseOfImage: LPVOID;
  955. dwDebugInfoFileOffset: DWORD;
  956. nDebugInfoSize: DWORD;
  957. lpThreadLocalBase: LPVOID;
  958. lpStartAddress: LPTHREAD_START_ROUTINE;
  959. lpImageName: LPVOID;
  960. fUnicode: Word;
  961. end;
  962. {$EXTERNALSYM _CREATE_PROCESS_DEBUG_INFO}
  963. CREATE_PROCESS_DEBUG_INFO = _CREATE_PROCESS_DEBUG_INFO;
  964. {$EXTERNALSYM CREATE_PROCESS_DEBUG_INFO}
  965. TCreateProcessDebugInfo = CREATE_PROCESS_DEBUG_INFO;
  966. PCreateProcessDebugInfo = LPCREATE_PROCESS_DEBUG_INFO;
  967. LPEXIT_THREAD_DEBUG_INFO = ^EXIT_THREAD_DEBUG_INFO;
  968. {$EXTERNALSYM LPEXIT_THREAD_DEBUG_INFO}
  969. _EXIT_THREAD_DEBUG_INFO = record
  970. dwExitCode: DWORD;
  971. end;
  972. {$EXTERNALSYM _EXIT_THREAD_DEBUG_INFO}
  973. EXIT_THREAD_DEBUG_INFO = _EXIT_THREAD_DEBUG_INFO;
  974. {$EXTERNALSYM EXIT_THREAD_DEBUG_INFO}
  975. TExitThreadDebugInfo = EXIT_THREAD_DEBUG_INFO;
  976. PExitThreadDebugInfo = LPEXIT_THREAD_DEBUG_INFO;
  977. LPEXIT_PROCESS_DEBUG_INFO = ^EXIT_PROCESS_DEBUG_INFO;
  978. {$EXTERNALSYM LPEXIT_PROCESS_DEBUG_INFO}
  979. _EXIT_PROCESS_DEBUG_INFO = record
  980. dwExitCode: DWORD;
  981. end;
  982. {$EXTERNALSYM _EXIT_PROCESS_DEBUG_INFO}
  983. EXIT_PROCESS_DEBUG_INFO = _EXIT_PROCESS_DEBUG_INFO;
  984. {$EXTERNALSYM EXIT_PROCESS_DEBUG_INFO}
  985. TExitProcessDebugInfo = EXIT_PROCESS_DEBUG_INFO;
  986. PExitProcessDebugInfo = LPEXIT_PROCESS_DEBUG_INFO;
  987. LPLOAD_DLL_DEBUG_INFO = ^LOAD_DLL_DEBUG_INFO;
  988. {$EXTERNALSYM LPLOAD_DLL_DEBUG_INFO}
  989. _LOAD_DLL_DEBUG_INFO = record
  990. hFile: HANDLE;
  991. lpBaseOfDll: LPVOID;
  992. dwDebugInfoFileOffset: DWORD;
  993. nDebugInfoSize: DWORD;
  994. lpImageName: LPVOID;
  995. fUnicode: Word;
  996. end;
  997. {$EXTERNALSYM _LOAD_DLL_DEBUG_INFO}
  998. LOAD_DLL_DEBUG_INFO = _LOAD_DLL_DEBUG_INFO;
  999. {$EXTERNALSYM LOAD_DLL_DEBUG_INFO}
  1000. TLoadDllDebugInfo = LOAD_DLL_DEBUG_INFO;
  1001. PLoadDllDebugInfo = LPLOAD_DLL_DEBUG_INFO;
  1002. LPUNLOAD_DLL_DEBUG_INFO = ^UNLOAD_DLL_DEBUG_INFO;
  1003. {$EXTERNALSYM LPUNLOAD_DLL_DEBUG_INFO}
  1004. _UNLOAD_DLL_DEBUG_INFO = record
  1005. lpBaseOfDll: LPVOID;
  1006. end;
  1007. {$EXTERNALSYM _UNLOAD_DLL_DEBUG_INFO}
  1008. UNLOAD_DLL_DEBUG_INFO = _UNLOAD_DLL_DEBUG_INFO;
  1009. {$EXTERNALSYM UNLOAD_DLL_DEBUG_INFO}
  1010. TUnloadDllDebugInfo = UNLOAD_DLL_DEBUG_INFO;
  1011. PUnloadDllDebugInfo = LPUNLOAD_DLL_DEBUG_INFO;
  1012. LPOUTPUT_DEBUG_STRING_INFO = ^OUTPUT_DEBUG_STRING_INFO;
  1013. {$EXTERNALSYM LPOUTPUT_DEBUG_STRING_INFO}
  1014. _OUTPUT_DEBUG_STRING_INFO = record
  1015. lpDebugStringData: LPSTR;
  1016. fUnicode: Word;
  1017. nDebugStringLength: Word;
  1018. end;
  1019. {$EXTERNALSYM _OUTPUT_DEBUG_STRING_INFO}
  1020. OUTPUT_DEBUG_STRING_INFO = _OUTPUT_DEBUG_STRING_INFO;
  1021. {$EXTERNALSYM OUTPUT_DEBUG_STRING_INFO}
  1022. TOutputDebugStringInfo = OUTPUT_DEBUG_STRING_INFO;
  1023. POutputDebugStringInfo = LPOUTPUT_DEBUG_STRING_INFO;
  1024. LPRIP_INFO = ^RIP_INFO;
  1025. {$EXTERNALSYM LPRIP_INFO}
  1026. _RIP_INFO = record
  1027. dwError: DWORD;
  1028. dwType: DWORD;
  1029. end;
  1030. {$EXTERNALSYM _RIP_INFO}
  1031. RIP_INFO = _RIP_INFO;
  1032. {$EXTERNALSYM RIP_INFO}
  1033. TRipInfo = RIP_INFO;
  1034. PRipInfo = LPRIP_INFO;
  1035. LPDEBUG_EVENT = ^DEBUG_EVENT;
  1036. {$EXTERNALSYM LPDEBUG_EVENT}
  1037. _DEBUG_EVENT = record
  1038. dwDebugEventCode: DWORD;
  1039. dwProcessId: DWORD;
  1040. dwThreadId: DWORD;
  1041. case Integer of
  1042. 0: (Exception: EXCEPTION_DEBUG_INFO);
  1043. 1: (CreateThread: CREATE_THREAD_DEBUG_INFO);
  1044. 2: (CreateProcessInfo: CREATE_PROCESS_DEBUG_INFO);
  1045. 3: (ExitThread: EXIT_THREAD_DEBUG_INFO);
  1046. 4: (ExitProcess: EXIT_PROCESS_DEBUG_INFO);
  1047. 5: (LoadDll: LOAD_DLL_DEBUG_INFO);
  1048. 6: (UnloadDll: UNLOAD_DLL_DEBUG_INFO);
  1049. 7: (DebugString: OUTPUT_DEBUG_STRING_INFO);
  1050. 8: (RipInfo: RIP_INFO);
  1051. end;
  1052. {$EXTERNALSYM _DEBUG_EVENT}
  1053. DEBUG_EVENT = _DEBUG_EVENT;
  1054. {$EXTERNALSYM DEBUG_EVENT}
  1055. TDebugEvent = DEBUG_EVENT;
  1056. PDebugEvent = LPDEBUG_EVENT;
  1057. LPCONTEXT = PCONTEXT;
  1058. {$EXTERNALSYM LPCONTEXT}
  1059. LPEXCEPTION_RECORD = PEXCEPTION_RECORD;
  1060. {$EXTERNALSYM LPEXCEPTION_RECORD}
  1061. LPEXCEPTION_POINTERS = PEXCEPTION_POINTERS;
  1062. {$EXTERNALSYM LPEXCEPTION_POINTERS}
  1063. const
  1064. DRIVE_UNKNOWN = 0;
  1065. {$EXTERNALSYM DRIVE_UNKNOWN}
  1066. DRIVE_NO_ROOT_DIR = 1;
  1067. {$EXTERNALSYM DRIVE_NO_ROOT_DIR}
  1068. DRIVE_REMOVABLE = 2;
  1069. {$EXTERNALSYM DRIVE_REMOVABLE}
  1070. DRIVE_FIXED = 3;
  1071. {$EXTERNALSYM DRIVE_FIXED}
  1072. DRIVE_REMOTE = 4;
  1073. {$EXTERNALSYM DRIVE_REMOTE}
  1074. DRIVE_CDROM = 5;
  1075. {$EXTERNALSYM DRIVE_CDROM}
  1076. DRIVE_RAMDISK = 6;
  1077. {$EXTERNALSYM DRIVE_RAMDISK}
  1078. function GetFreeSpace(w: WORD): DWORD;
  1079. {$EXTERNALSYM GetFreeSpace}
  1080. const
  1081. FILE_TYPE_UNKNOWN = $0000;
  1082. {$EXTERNALSYM FILE_TYPE_UNKNOWN}
  1083. FILE_TYPE_DISK = $0001;
  1084. {$EXTERNALSYM FILE_TYPE_DISK}
  1085. FILE_TYPE_CHAR = $0002;
  1086. {$EXTERNALSYM FILE_TYPE_CHAR}
  1087. FILE_TYPE_PIPE = $0003;
  1088. {$EXTERNALSYM FILE_TYPE_PIPE}
  1089. FILE_TYPE_REMOTE = $8000;
  1090. {$EXTERNALSYM FILE_TYPE_REMOTE}
  1091. STD_INPUT_HANDLE = DWORD(-10);
  1092. {$EXTERNALSYM STD_INPUT_HANDLE}
  1093. STD_OUTPUT_HANDLE = DWORD(-11);
  1094. {$EXTERNALSYM STD_OUTPUT_HANDLE}
  1095. STD_ERROR_HANDLE = DWORD(-12);
  1096. {$EXTERNALSYM STD_ERROR_HANDLE}
  1097. NOPARITY = 0;
  1098. {$EXTERNALSYM NOPARITY}
  1099. ODDPARITY = 1;
  1100. {$EXTERNALSYM ODDPARITY}
  1101. EVENPARITY = 2;
  1102. {$EXTERNALSYM EVENPARITY}
  1103. MARKPARITY = 3;
  1104. {$EXTERNALSYM MARKPARITY}
  1105. SPACEPARITY = 4;
  1106. {$EXTERNALSYM SPACEPARITY}
  1107. ONESTOPBIT = 0;
  1108. {$EXTERNALSYM ONESTOPBIT}
  1109. ONE5STOPBITS = 1;
  1110. {$EXTERNALSYM ONE5STOPBITS}
  1111. TWOSTOPBITS = 2;
  1112. {$EXTERNALSYM TWOSTOPBITS}
  1113. IGNORE = 0; // Ignore signal
  1114. {$EXTERNALSYM IGNORE}
  1115. INFINITE = DWORD($FFFFFFFF); // Infinite timeout
  1116. {$EXTERNALSYM INFINITE}
  1117. //
  1118. // Baud rates at which the communication device operates
  1119. //
  1120. CBR_110 = 110;
  1121. {$EXTERNALSYM CBR_110}
  1122. CBR_300 = 300;
  1123. {$EXTERNALSYM CBR_300}
  1124. CBR_600 = 600;
  1125. {$EXTERNALSYM CBR_600}
  1126. CBR_1200 = 1200;
  1127. {$EXTERNALSYM CBR_1200}
  1128. CBR_2400 = 2400;
  1129. {$EXTERNALSYM CBR_2400}
  1130. CBR_4800 = 4800;
  1131. {$EXTERNALSYM CBR_4800}
  1132. CBR_9600 = 9600;
  1133. {$EXTERNALSYM CBR_9600}
  1134. CBR_14400 = 14400;
  1135. {$EXTERNALSYM CBR_14400}
  1136. CBR_19200 = 19200;
  1137. {$EXTERNALSYM CBR_19200}
  1138. CBR_38400 = 38400;
  1139. {$EXTERNALSYM CBR_38400}
  1140. CBR_56000 = 56000;
  1141. {$EXTERNALSYM CBR_56000}
  1142. CBR_57600 = 57600;
  1143. {$EXTERNALSYM CBR_57600}
  1144. CBR_115200 = 115200;
  1145. {$EXTERNALSYM CBR_115200}
  1146. CBR_128000 = 128000;
  1147. {$EXTERNALSYM CBR_128000}
  1148. CBR_256000 = 256000;
  1149. {$EXTERNALSYM CBR_256000}
  1150. //
  1151. // Error Flags
  1152. //
  1153. CE_RXOVER = $0001; // Receive Queue overflow
  1154. {$EXTERNALSYM CE_RXOVER}
  1155. CE_OVERRUN = $0002; // Receive Overrun Error
  1156. {$EXTERNALSYM CE_OVERRUN}
  1157. CE_RXPARITY = $0004; // Receive Parity Error
  1158. {$EXTERNALSYM CE_RXPARITY}
  1159. CE_FRAME = $0008; // Receive Framing error
  1160. {$EXTERNALSYM CE_FRAME}
  1161. CE_BREAK = $0010; // Break Detected
  1162. {$EXTERNALSYM CE_BREAK}
  1163. CE_TXFULL = $0100; // TX Queue is full
  1164. {$EXTERNALSYM CE_TXFULL}
  1165. CE_PTO = $0200; // LPTx Timeout
  1166. {$EXTERNALSYM CE_PTO}
  1167. CE_IOE = $0400; // LPTx I/O Error
  1168. {$EXTERNALSYM CE_IOE}
  1169. CE_DNS = $0800; // LPTx Device not selected
  1170. {$EXTERNALSYM CE_DNS}
  1171. CE_OOP = $1000; // LPTx Out-Of-Paper
  1172. {$EXTERNALSYM CE_OOP}
  1173. CE_MODE = $8000; // Requested mode unsupported
  1174. {$EXTERNALSYM CE_MODE}
  1175. IE_BADID = DWORD(-1); // Invalid or unsupported id
  1176. {$EXTERNALSYM IE_BADID}
  1177. IE_OPEN = DWORD(-2); // Device Already Open
  1178. {$EXTERNALSYM IE_OPEN}
  1179. IE_NOPEN = DWORD(-3); // Device Not Open
  1180. {$EXTERNALSYM IE_NOPEN}
  1181. IE_MEMORY = DWORD(-4); // Unable to allocate queues
  1182. {$EXTERNALSYM IE_MEMORY}
  1183. IE_DEFAULT = DWORD(-5); // Error in default parameters
  1184. {$EXTERNALSYM IE_DEFAULT}
  1185. IE_HARDWARE = DWORD(-10); // Hardware Not Present
  1186. {$EXTERNALSYM IE_HARDWARE}
  1187. IE_BYTESIZE = DWORD(-11); // Illegal Byte Size
  1188. {$EXTERNALSYM IE_BYTESIZE}
  1189. IE_BAUDRATE = DWORD(-12); // Unsupported BaudRate
  1190. {$EXTERNALSYM IE_BAUDRATE}
  1191. //
  1192. // Events
  1193. //
  1194. EV_RXCHAR = $0001; // Any Character received
  1195. {$EXTERNALSYM EV_RXCHAR}
  1196. EV_RXFLAG = $0002; // Received certain character
  1197. {$EXTERNALSYM EV_RXFLAG}
  1198. EV_TXEMPTY = $0004; // Transmitt Queue Empty
  1199. {$EXTERNALSYM EV_TXEMPTY}
  1200. EV_CTS = $0008; // CTS changed state
  1201. {$EXTERNALSYM EV_CTS}
  1202. EV_DSR = $0010; // DSR changed state
  1203. {$EXTERNALSYM EV_DSR}
  1204. EV_RLSD = $0020; // RLSD changed state
  1205. {$EXTERNALSYM EV_RLSD}
  1206. EV_BREAK = $0040; // BREAK received
  1207. {$EXTERNALSYM EV_BREAK}
  1208. EV_ERR = $0080; // Line status error occurred
  1209. {$EXTERNALSYM EV_ERR}
  1210. EV_RING = $0100; // Ring signal detected
  1211. {$EXTERNALSYM EV_RING}
  1212. EV_PERR = $0200; // Printer error occured
  1213. {$EXTERNALSYM EV_PERR}
  1214. EV_RX80FULL = $0400; // Receive buffer is 80 percent full
  1215. {$EXTERNALSYM EV_RX80FULL}
  1216. EV_EVENT1 = $0800; // Provider specific event 1
  1217. {$EXTERNALSYM EV_EVENT1}
  1218. EV_EVENT2 = $1000; // Provider specific event 2
  1219. {$EXTERNALSYM EV_EVENT2}
  1220. //
  1221. // Escape Functions
  1222. //
  1223. SETXOFF = 1; // Simulate XOFF received
  1224. {$EXTERNALSYM SETXOFF}
  1225. SETXON = 2; // Simulate XON received
  1226. {$EXTERNALSYM SETXON}
  1227. SETRTS = 3; // Set RTS high
  1228. {$EXTERNALSYM SETRTS}
  1229. CLRRTS = 4; // Set RTS low
  1230. {$EXTERNALSYM CLRRTS}
  1231. SETDTR = 5; // Set DTR high
  1232. {$EXTERNALSYM SETDTR}
  1233. CLRDTR = 6; // Set DTR low
  1234. {$EXTERNALSYM CLRDTR}
  1235. RESETDEV = 7; // Reset device if possible
  1236. {$EXTERNALSYM RESETDEV}
  1237. SETBREAK = 8; // Set the device break line.
  1238. {$EXTERNALSYM SETBREAK}
  1239. CLRBREAK = 9; // Clear the device break line.
  1240. {$EXTERNALSYM CLRBREAK}
  1241. //
  1242. // PURGE function flags.
  1243. //
  1244. PURGE_TXABORT = $0001; // Kill the pending/current writes to the comm port.
  1245. {$EXTERNALSYM PURGE_TXABORT}
  1246. PURGE_RXABORT = $0002; // Kill the pending/current reads to the comm port.
  1247. {$EXTERNALSYM PURGE_RXABORT}
  1248. PURGE_TXCLEAR = $0004; // Kill the transmit queue if there.
  1249. {$EXTERNALSYM PURGE_TXCLEAR}
  1250. PURGE_RXCLEAR = $0008; // Kill the typeahead buffer if there.
  1251. {$EXTERNALSYM PURGE_RXCLEAR}
  1252. LPTx = $80; // Set if ID is for LPT device
  1253. {$EXTERNALSYM LPTx}
  1254. //
  1255. // Modem Status Flags
  1256. //
  1257. MS_CTS_ON = DWORD($0010);
  1258. {$EXTERNALSYM MS_CTS_ON}
  1259. MS_DSR_ON = DWORD($0020);
  1260. {$EXTERNALSYM MS_DSR_ON}
  1261. MS_RING_ON = DWORD($0040);
  1262. {$EXTERNALSYM MS_RING_ON}
  1263. MS_RLSD_ON = DWORD($0080);
  1264. {$EXTERNALSYM MS_RLSD_ON}
  1265. //
  1266. // WaitSoundState() Constants
  1267. //
  1268. S_QUEUEEMPTY = 0;
  1269. {$EXTERNALSYM S_QUEUEEMPTY}
  1270. S_THRESHOLD = 1;
  1271. {$EXTERNALSYM S_THRESHOLD}
  1272. S_ALLTHRESHOLD = 2;
  1273. {$EXTERNALSYM S_ALLTHRESHOLD}
  1274. //
  1275. // Accent Modes
  1276. //
  1277. S_NORMAL = 0;
  1278. {$EXTERNALSYM S_NORMAL}
  1279. S_LEGATO = 1;
  1280. {$EXTERNALSYM S_LEGATO}
  1281. S_STACCATO = 2;
  1282. {$EXTERNALSYM S_STACCATO}
  1283. //
  1284. // SetSoundNoise() Sources
  1285. //
  1286. S_PERIOD512 = 0; // Freq = N/512 high pitch, less coarse hiss
  1287. {$EXTERNALSYM S_PERIOD512}
  1288. S_PERIOD1024 = 1; // Freq = N/1024
  1289. {$EXTERNALSYM S_PERIOD1024}
  1290. S_PERIOD2048 = 2; // Freq = N/2048 low pitch, more coarse hiss
  1291. {$EXTERNALSYM S_PERIOD2048}
  1292. S_PERIODVOICE = 3; // Source is frequency from voice channel (3)
  1293. {$EXTERNALSYM S_PERIODVOICE}
  1294. S_WHITE512 = 4; // Freq = N/512 high pitch, less coarse hiss
  1295. {$EXTERNALSYM S_WHITE512}
  1296. S_WHITE1024 = 5; // Freq = N/1024
  1297. {$EXTERNALSYM S_WHITE1024}
  1298. S_WHITE2048 = 6; // Freq = N/2048 low pitch, more coarse hiss
  1299. {$EXTERNALSYM S_WHITE2048}
  1300. S_WHITEVOICE = 7; // Source is frequency from voice channel (3)
  1301. {$EXTERNALSYM S_WHITEVOICE}
  1302. S_SERDVNA = DWORD(-1); // Device not available
  1303. {$EXTERNALSYM S_SERDVNA}
  1304. S_SEROFM = DWORD(-2); // Out of memory
  1305. {$EXTERNALSYM S_SEROFM}
  1306. S_SERMACT = DWORD(-3); // Music active
  1307. {$EXTERNALSYM S_SERMACT}
  1308. S_SERQFUL = DWORD(-4); // Queue full
  1309. {$EXTERNALSYM S_SERQFUL}
  1310. S_SERBDNT = DWORD(-5); // Invalid note
  1311. {$EXTERNALSYM S_SERBDNT}
  1312. S_SERDLN = DWORD(-6); // Invalid note length
  1313. {$EXTERNALSYM S_SERDLN}
  1314. S_SERDCC = DWORD(-7); // Invalid note count
  1315. {$EXTERNALSYM S_SERDCC}
  1316. S_SERDTP = DWORD(-8); // Invalid tempo
  1317. {$EXTERNALSYM S_SERDTP}
  1318. S_SERDVL = DWORD(-9); // Invalid volume
  1319. {$EXTERNALSYM S_SERDVL}
  1320. S_SERDMD = DWORD(-10); // Invalid mode
  1321. {$EXTERNALSYM S_SERDMD}
  1322. S_SERDSH = DWORD(-11); // Invalid shape
  1323. {$EXTERNALSYM S_SERDSH}
  1324. S_SERDPT = DWORD(-12); // Invalid pitch
  1325. {$EXTERNALSYM S_SERDPT}
  1326. S_SERDFQ = DWORD(-13); // Invalid frequency
  1327. {$EXTERNALSYM S_SERDFQ}
  1328. S_SERDDR = DWORD(-14); // Invalid duration
  1329. {$EXTERNALSYM S_SERDDR}
  1330. S_SERDSR = DWORD(-15); // Invalid source
  1331. {$EXTERNALSYM S_SERDSR}
  1332. S_SERDST = DWORD(-16); // Invalid state
  1333. {$EXTERNALSYM S_SERDST}
  1334. NMPWAIT_WAIT_FOREVER = DWORD($ffffffff);
  1335. {$EXTERNALSYM NMPWAIT_WAIT_FOREVER}
  1336. NMPWAIT_NOWAIT = $00000001;
  1337. {$EXTERNALSYM NMPWAIT_NOWAIT}
  1338. NMPWAIT_USE_DEFAULT_WAIT = $00000000;
  1339. {$EXTERNALSYM NMPWAIT_USE_DEFAULT_WAIT}
  1340. FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES;
  1341. {$EXTERNALSYM FS_CASE_IS_PRESERVED}
  1342. FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH;
  1343. {$EXTERNALSYM FS_CASE_SENSITIVE}
  1344. FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK;
  1345. {$EXTERNALSYM FS_UNICODE_STORED_ON_DISK}
  1346. FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS;
  1347. {$EXTERNALSYM FS_PERSISTENT_ACLS}
  1348. FS_VOL_IS_COMPRESSED = FILE_VOLUME_IS_COMPRESSED;
  1349. {$EXTERNALSYM FS_VOL_IS_COMPRESSED}
  1350. FS_FILE_COMPRESSION = FILE_FILE_COMPRESSION;
  1351. {$EXTERNALSYM FS_FILE_COMPRESSION}
  1352. FS_FILE_ENCRYPTION = FILE_SUPPORTS_ENCRYPTION;
  1353. {$EXTERNALSYM FS_FILE_ENCRYPTION}
  1354. FILE_MAP_COPY = SECTION_QUERY;
  1355. {$EXTERNALSYM FILE_MAP_COPY}
  1356. FILE_MAP_WRITE = SECTION_MAP_WRITE;
  1357. {$EXTERNALSYM FILE_MAP_WRITE}
  1358. FILE_MAP_READ = SECTION_MAP_READ;
  1359. {$EXTERNALSYM FILE_MAP_READ}
  1360. FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS;
  1361. {$EXTERNALSYM FILE_MAP_ALL_ACCESS}
  1362. OF_READ = $00000000;
  1363. {$EXTERNALSYM OF_READ}
  1364. OF_WRITE = $00000001;
  1365. {$EXTERNALSYM OF_WRITE}
  1366. OF_READWRITE = $00000002;
  1367. {$EXTERNALSYM OF_READWRITE}
  1368. OF_SHARE_COMPAT = $00000000;
  1369. {$EXTERNALSYM OF_SHARE_COMPAT}
  1370. OF_SHARE_EXCLUSIVE = $00000010;
  1371. {$EXTERNALSYM OF_SHARE_EXCLUSIVE}
  1372. OF_SHARE_DENY_WRITE = $00000020;
  1373. {$EXTERNALSYM OF_SHARE_DENY_WRITE}
  1374. OF_SHARE_DENY_READ = $00000030;
  1375. {$EXTERNALSYM OF_SHARE_DENY_READ}
  1376. OF_SHARE_DENY_NONE = $00000040;
  1377. {$EXTERNALSYM OF_SHARE_DENY_NONE}
  1378. OF_PARSE = $00000100;
  1379. {$EXTERNALSYM OF_PARSE}
  1380. OF_DELETE = $00000200;
  1381. {$EXTERNALSYM OF_DELETE}
  1382. OF_VERIFY = $00000400;
  1383. {$EXTERNALSYM OF_VERIFY}
  1384. OF_CANCEL = $00000800;
  1385. {$EXTERNALSYM OF_CANCEL}
  1386. OF_CREATE = $00001000;
  1387. {$EXTERNALSYM OF_CREATE}
  1388. OF_PROMPT = $00002000;
  1389. {$EXTERNALSYM OF_PROMPT}
  1390. OF_EXIST = $00004000;
  1391. {$EXTERNALSYM OF_EXIST}
  1392. OF_REOPEN = $00008000;
  1393. {$EXTERNALSYM OF_REOPEN}
  1394. OFS_MAXPATHNAME = 128;
  1395. {$EXTERNALSYM OFS_MAXPATHNAME}
  1396. type
  1397. LPOFSTRUCT = ^OFSTRUCT;
  1398. {$EXTERNALSYM LPOFSTRUCT}
  1399. _OFSTRUCT = record
  1400. cBytes: Byte;
  1401. fFixedDisk: Byte;
  1402. nErrCode: Word;
  1403. Reserved1: Word;
  1404. Reserved2: Word;
  1405. szPathName: array [0..OFS_MAXPATHNAME - 1] of CHAR;
  1406. end;
  1407. {$EXTERNALSYM _OFSTRUCT}
  1408. OFSTRUCT = _OFSTRUCT;
  1409. {$EXTERNALSYM OFSTRUCT}
  1410. TOfStruct = OFSTRUCT;
  1411. POfStruct = LPOFSTRUCT;
  1412. // 64 bit interlocked functions, donated by Will DeWitt Jr.
  1413. function InterlockedCompareExchange64(var Destination: LONGLONG; Exchange, Comperand: LONGLONG): LONGLONG; stdcall;
  1414. {$EXTERNALSYM InterlockedCompareExchange64}
  1415. function InterlockedAnd64(var Destination: LONGLONG; Value: LONGLONG): LONGLONG;
  1416. {$EXTERNALSYM InterlockedAnd64}
  1417. function InterlockedOr64(var Destination: LONGLONG; Value: LONGLONG): LONGLONG;
  1418. {$EXTERNALSYM InterlockedOr64}
  1419. function InterlockedXor64(var Destination: LONGLONG; Value: LONGLONG): LONGLONG;
  1420. {$EXTERNALSYM InterlockedXor64}
  1421. function InterlockedIncrement64(var Addend: LONGLONG): LONGLONG;
  1422. {$EXTERNALSYM InterlockedIncrement64}
  1423. function InterlockedDecrement64(var Addend: LONGLONG): LONGLONG;
  1424. {$EXTERNALSYM InterlockedDecrement}
  1425. function InterlockedExchange64(var Target: LONGLONG; Value: LONGLONG): LONGLONG;
  1426. {$EXTERNALSYM InterlockedExchange64}
  1427. function InterlockedExchangeAdd64(var Addend: LONGLONG; Value: LONGLONG): LONGLONG;
  1428. {$EXTERNALSYM InterlockedExchangeAdd64}
  1429. //
  1430. // The Risc compilers support intrinsic functions for interlocked
  1431. // increment, decrement, and exchange.
  1432. //
  1433. function InterlockedIncrement(var lpAddend: LONG): LONG; stdcall;
  1434. {$EXTERNALSYM InterlockedIncrement}
  1435. function InterlockedDecrement(var lpAddend: LONG): LONG; stdcall;
  1436. {$EXTERNALSYM InterlockedDecrement}
  1437. function InterlockedExchange(var Target: LONG; Value: LONG): LONG; stdcall;
  1438. {$EXTERNALSYM InterlockedExchange}
  1439. function InterlockedExchangePointer(var Target: PVOID; Value: PVOID): PVOID;
  1440. {$EXTERNALSYM InterlockedExchangePointer}
  1441. function InterlockedExchangeAdd(var Addend: LONG; Value: LONG): LONG; stdcall;
  1442. {$EXTERNALSYM InterlockedExchangeAdd}
  1443. function InterlockedCompareExchange(var Destination: LONG; Exchange: LONG;
  1444. Comperand: LONG): LONG; stdcall;
  1445. {$EXTERNALSYM InterlockedCompareExchange}
  1446. function InterlockedCompareExchangePointer(var Destination: PVOID;
  1447. Exchange, Comperand: PVOID): PVOID;
  1448. {$EXTERNALSYM InterlockedCompareExchangePointer}
  1449. {
  1450. #define InterlockedIncrementAcquire InterlockedIncrement
  1451. #define InterlockedIncrementRelease InterlockedIncrement
  1452. #define InterlockedDecrementAcquire InterlockedDecrement
  1453. #define InterlockedDecrementRelease InterlockedDecrement
  1454. #define InterlockedIncrementAcquire InterlockedIncrement
  1455. #define InterlockedIncrementRelease InterlockedIncrement
  1456. #define InterlockedCompareExchangeAcquire InterlockedCompareExchange
  1457. #define InterlockedCompareExchangeRelease InterlockedCompareExchange
  1458. #define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64
  1459. #define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64
  1460. }
  1461. procedure InitializeSListHead(ListHead: PSLIST_HEADER); stdcall;
  1462. {$EXTERNALSYM InitializeSListHead}
  1463. function InterlockedPopEntrySList(ListHead: PSLIST_HEADER): PSLIST_ENTRY; stdcall;
  1464. {$EXTERNALSYM InterlockedPopEntrySList}
  1465. function InterlockedPushEntrySList(ListHead: PSLIST_HEADER; ListEntry: PSLIST_ENTRY): PSLIST_ENTRY; stdcall;
  1466. {$EXTERNALSYM InterlockedPushEntrySList}
  1467. function InterlockedFlushSList(ListHead: PSLIST_HEADER): PSLIST_ENTRY; stdcall;
  1468. {$EXTERNALSYM InterlockedFlushSList}
  1469. function QueryDepthSList(ListHead: PSLIST_HEADER): USHORT; stdcall;
  1470. {$EXTERNALSYM QueryDepthSList}
  1471. function FreeResource(hResData: HGLOBAL): BOOL; stdcall;
  1472. {$EXTERNALSYM FreeResource}
  1473. function LockResource(hResData: HGLOBAL): LPVOID; stdcall;
  1474. {$EXTERNALSYM LockResource}
  1475. function UnlockResource(hResData: HANDLE): BOOL;
  1476. {$EXTERNALSYM UnlockResource}
  1477. const
  1478. MAXINTATOM = $C000;
  1479. {$EXTERNALSYM MAXINTATOM}
  1480. INVALID_ATOM = ATOM(0);
  1481. {$EXTERNALSYM INVALID_ATOM}
  1482. type
  1483. MAKEINTATOMA = PAnsiChar;
  1484. MAKEINTATOMW = PWideChar;
  1485. {$IFDEF UNICODE}
  1486. MAKEINTATOM = MAKEINTATOMW;
  1487. {$EXTERNALSYM MAKEINTATOM}
  1488. {$ELSE}
  1489. MAKEINTATOM = MAKEINTATOMA;
  1490. {$EXTERNALSYM MAKEINTATOM}
  1491. {$ENDIF UNICODE}
  1492. function FreeLibrary(hLibModule: HMODULE): BOOL; stdcall;
  1493. {$EXTERNALSYM FreeLibrary}
  1494. procedure FreeLibraryAndExitThread(hLibModule: HMODULE; dwExitCode: DWORD); stdcall;
  1495. {$EXTERNALSYM FreeLibraryAndExitThread}
  1496. function DisableThreadLibraryCalls(hLibModule: HMODULE): BOOL; stdcall;
  1497. {$EXTERNALSYM DisableThreadLibraryCalls}
  1498. function GetProcAddress(hModule: HMODULE; lpProcName: LPCSTR): FARPROC; stdcall;
  1499. {$EXTERNALSYM GetProcAddress}
  1500. function GetVersion: DWORD; stdcall;
  1501. {$EXTERNALSYM GetVersion)}
  1502. function GlobalAlloc(uFlags: UINT; dwBytes: SIZE_T): HGLOBAL; stdcall;
  1503. {$EXTERNALSYM GlobalAlloc}
  1504. function GlobalReAlloc(hMem: HGLOBAL; dwBytes: SIZE_T; uFlags: UINT): HGLOBAL; stdcall;
  1505. {$EXTERNALSYM GlobalReAlloc}
  1506. function GlobalSize(hMem: HGLOBAL): SIZE_T; stdcall;
  1507. {$EXTERNALSYM GlobalSize}
  1508. function GlobalFlags(hMem: HGLOBAL): UINT; stdcall;
  1509. {$EXTERNALSYM GlobalFlags}
  1510. function GlobalLock(hMem: HGLOBAL): LPVOID; stdcall;
  1511. {$EXTERNALSYM GlobalLock}
  1512. //!!!MWH My version win31 = DWORD WINAPI GlobalHandle(UINT)
  1513. function GlobalHandle(pMem: LPCVOID): HGLOBAL; stdcall;
  1514. {$EXTERNALSYM GlobalHandle}
  1515. function GlobalUnlock(hMem: HGLOBAL): BOOL; stdcall;
  1516. {$EXTERNALSYM GlobalUnlock}
  1517. function GlobalFree(hMem: HGLOBAL): HGLOBAL; stdcall;
  1518. {$EXTERNALSYM GlobalFree}
  1519. function GlobalCompact(dwMinFree: DWORD): SIZE_T; stdcall;
  1520. {$EXTERNALSYM GlobalCompact}
  1521. procedure GlobalFix(hMem: HGLOBAL); stdcall;
  1522. {$EXTERNALSYM GlobalFix}
  1523. procedure GlobalUnfix(hMem: HGLOBAL); stdcall;
  1524. {$EXTERNALSYM GlobalUnfix}
  1525. function GlobalWire(hMem: HGLOBAL): LPVOID; stdcall;
  1526. {$EXTERNALSYM GlobalWire}
  1527. function GlobalUnWire(hMem: HGLOBAL): BOOL; stdcall;
  1528. {$EXTERNALSYM GlobalUnWire}
  1529. procedure GlobalMemoryStatus(var lpBuffer: MEMORYSTATUS); stdcall;
  1530. {$EXTERNALSYM GlobalMemoryStatus}
  1531. type
  1532. LPMEMORYSTATUSEX = ^MEMORYSTATUSEX;
  1533. {$EXTERNALSYM LPMEMORYSTATUSEX}
  1534. _MEMORYSTATUSEX = record
  1535. dwLength: DWORD;
  1536. dwMemoryLoad: DWORD;
  1537. ullTotalPhys: DWORDLONG;
  1538. ullAvailPhys: DWORDLONG;
  1539. ullTotalPageFile: DWORDLONG;
  1540. ullAvailPageFile: DWORDLONG;
  1541. ullTotalVirtual: DWORDLONG;
  1542. ullAvailVirtual: DWORDLONG;
  1543. ullAvailExtendedVirtual: DWORDLONG;
  1544. end;
  1545. {$EXTERNALSYM _MEMORYSTATUSEX}
  1546. MEMORYSTATUSEX = _MEMORYSTATUSEX;
  1547. {$EXTERNALSYM MEMORYSTATUSEX}
  1548. TMemoryStatusEx = MEMORYSTATUSEX;
  1549. PMemoryStatusEx = LPMEMORYSTATUSEX;
  1550. function GlobalMemoryStatusEx(var lpBuffer: MEMORYSTATUSEX): BOOL; stdcall;
  1551. {$EXTERNALSYM GlobalMemoryStatusEx}
  1552. function LocalAlloc(uFlags: UINT; uBytes: SIZE_T): HLOCAL; stdcall;
  1553. {$EXTERNALSYM LocalAlloc}
  1554. function LocalReAlloc(hMem: HLOCAL; uBytes: SIZE_T; uFlags: UINT): HLOCAL; stdcall;
  1555. {$EXTERNALSYM LocalReAlloc}
  1556. function LocalLock(hMem: HLOCAL): LPVOID; stdcall;
  1557. {$EXTERNALSYM LocalLock}
  1558. function LocalHandle(pMem: LPCVOID): HLOCAL; stdcall;
  1559. {$EXTERNALSYM LocalHandle}
  1560. function LocalUnlock(hMem: HLOCAL): BOOL; stdcall;
  1561. {$EXTERNALSYM LocalUnlock}
  1562. function LocalSize(hMem: HLOCAL): SIZE_T; stdcall;
  1563. {$EXTERNALSYM LocalSize}
  1564. function LocalFlags(hMem: HLOCAL): UINT; stdcall;
  1565. {$EXTERNALSYM LocalFlags}
  1566. function LocalFree(hMem: HLOCAL): HLOCAL; stdcall;
  1567. {$EXTERNALSYM LocalFree}
  1568. function LocalShrink(hMem: HLOCAL; cbNewSize: UINT): SIZE_T; stdcall;
  1569. {$EXTERNALSYM LocalShrink}
  1570. function LocalCompact(uMinFree: UINT): SIZE_T; stdcall;
  1571. {$EXTERNALSYM LocalCompact}
  1572. function FlushInstructionCache(hProcess: HANDLE; lpBaseAddress: LPCVOID;
  1573. dwSize: DWORD): BOOL; stdcall;
  1574. {$EXTERNALSYM FlushInstructionCache}
  1575. function VirtualAlloc(lpAddress: LPVOID; dwSize: SIZE_T; flAllocationType: DWORD;
  1576. flProtect: DWORD): LPVOID; stdcall;
  1577. {$EXTERNALSYM VirtualAlloc}
  1578. function VirtualFree(lpAddress: LPVOID; dwSize: SIZE_T; dwFreeType: DWORD): BOOL; stdcall;
  1579. {$EXTERNALSYM VirtualFree}
  1580. function VirtualProtect(lpAddress: LPVOID; dwSize: SIZE_T; flNewProtect: DWORD;
  1581. lpflOldProtect: PDWORD): BOOL; stdcall;
  1582. {$EXTERNALSYM VirtualProtect}
  1583. function VirtualQuery(lpAddress: LPCVOID; var lpBuffer: MEMORY_BASIC_INFORMATION;
  1584. dwLength: DWORD): DWORD; stdcall;
  1585. {$EXTERNALSYM VirtualQuery}
  1586. function VirtualAllocEx(hProcess: HANDLE; lpAddress: LPVOID; dwSize: SIZE_T;
  1587. flAllocationType: DWORD; flProtect: DWORD): LPVOID; stdcall;
  1588. {$EXTERNALSYM VirtualAllocEx}
  1589. function GetWriteWatch(dwFlags: DWORD; lpBaseAddress: PVOID;
  1590. dwRegionSize: SIZE_T; var lpAddresses: PVOID; var lpdwCount: ULONG_PTR;
  1591. var lpdwGranularity: ULONG): UINT; stdcall;
  1592. {$EXTERNALSYM GetWriteWatch}
  1593. function ResetWriteWatch(lpBaseAddress: LPVOID; dwRegionSize: SIZE_T): UINT; stdcall;
  1594. {$EXTERNALSYM ResetWriteWatch}
  1595. function GetLargePageMinimum: SIZE_T; stdcall;
  1596. {$EXTERNALSYM GetLargePageMinimum}
  1597. function VirtualFreeEx(hProcess: HANDLE; lpAddress: LPVOID; dwSize: SIZE_T;
  1598. dwFreeType: DWORD): BOOL; stdcall;
  1599. {$EXTERNALSYM VirtualFreeEx}
  1600. function VirtualProtectEx(hProcess: HANDLE; lpAddress: LPVOID; dwSize: SIZE_T;
  1601. flNewProtect: DWORD; lpflOldProtect: PDWORD): BOOL; stdcall;
  1602. {$EXTERNALSYM VirtualProtectEx}
  1603. function VirtualQueryEx(hProcess: HANDLE; lpAddress: LPCVOID;
  1604. var lpBuffer: MEMORY_BASIC_INFORMATION; dwLength: DWORD): DWORD; stdcall;
  1605. {$EXTERNALSYM VirtualQueryEx}
  1606. function HeapCreate(flOptions: DWORD; dwInitialSize: SIZE_T;
  1607. dwMaximumSize: SIZE_T): HANDLE; stdcall;
  1608. {$EXTERNALSYM HeapCreate}
  1609. function HeapDestroy(hHeap: HANDLE): BOOL; stdcall;
  1610. {$EXTERNALSYM HeapDestroy}
  1611. function HeapAlloc(hHeap: HANDLE; dwFlags: DWORD; dwBytes: SIZE_T): LPVOID; stdcall;
  1612. {$EXTERNALSYM HeapAlloc}
  1613. function HeapReAlloc(hHeap: HANDLE; dwFlags: DWORD; lpMem: LPVOID; dwBytes: SIZE_T): LPVOID; stdcall;
  1614. {$EXTERNALSYM HeapReAlloc}
  1615. function HeapFree(hHeap: HANDLE; dwFlags: DWORD; lpMem: LPVOID): BOOL; stdcall;
  1616. {$EXTERNALSYM HeapFree}
  1617. function HeapSize(hHeap: HANDLE; dwFlags: DWORD; lpMem: LPCVOID): SIZE_T; stdcall;
  1618. {$EXTERNALSYM HeapSize}
  1619. function HeapValidate(hHeap: HANDLE; dwFlags: DWORD; lpMem: LPCVOID): BOOL; stdcall;
  1620. {$EXTERNALSYM HeapValidate}
  1621. function HeapCompact(hHeap: HANDLE; dwFlags: DWORD): SIZE_T; stdcall;
  1622. {$EXTERNALSYM HeapCompact}
  1623. function GetProcessHeap: HANDLE; stdcall;
  1624. {$EXTERNALSYM GetProcessHeap)}
  1625. function GetProcessHeaps(NumberOfHeaps: DWORD; var ProcessHeaps: HANDLE): DWORD; stdcall;
  1626. {$EXTERNALSYM GetProcessHeaps}
  1627. type
  1628. PPROCESS_HEAP_ENTRY = ^PROCESS_HEAP_ENTRY;
  1629. {$EXTERNALSYM PPROCESS_HEAP_ENTRY}
  1630. _PROCESS_HEAP_ENTRY = record
  1631. lpData: PVOID;
  1632. cbData: DWORD;
  1633. cbOverhead: BYTE;
  1634. iRegionIndex: BYTE;
  1635. wFlags: WORD;
  1636. case Integer of
  1637. 0: (
  1638. hMem: HANDLE;
  1639. dwReserved: array [0..2] of DWORD);
  1640. 1: (
  1641. dwComittedSize: DWORD;
  1642. dwUnComittedSize: DWORD;
  1643. lpFirstBlock: LPVOID;
  1644. lpLastBlock: LPVOID);
  1645. end;
  1646. {$EXTERNALSYM _PROCESS_HEAP_ENTRY}
  1647. PROCESS_HEAP_ENTRY = _PROCESS_HEAP_ENTRY;
  1648. {$EXTERNALSYM PROCESS_HEAP_ENTRY}
  1649. LPPROCESS_HEAP_ENTRY = ^PROCESS_HEAP_ENTRY;
  1650. {$EXTERNALSYM LPPROCESS_HEAP_ENTRY}
  1651. TProcessHeapEntry = PROCESS_HEAP_ENTRY;
  1652. PProcessHeapEntry = PPROCESS_HEAP_ENTRY;
  1653. const
  1654. PROCESS_HEAP_REGION = $0001;
  1655. {$EXTERNALSYM PROCESS_HEAP_REGION}
  1656. PROCESS_HEAP_UNCOMMITTED_RANGE = $0002;
  1657. {$EXTERNALSYM PROCESS_HEAP_UNCOMMITTED_RANGE}
  1658. PROCESS_HEAP_ENTRY_BUSY = $0004;
  1659. {$EXTERNALSYM PROCESS_HEAP_ENTRY_BUSY}
  1660. PROCESS_HEAP_ENTRY_MOVEABLE = $0010;
  1661. {$EXTERNALSYM PROCESS_HEAP_ENTRY_MOVEABLE}
  1662. PROCESS_HEAP_ENTRY_DDESHARE = $0020;
  1663. {$EXTERNALSYM PROCESS_HEAP_ENTRY_DDESHARE}
  1664. function HeapLock(hHeap: HANDLE): BOOL; stdcall;
  1665. {$EXTERNALSYM HeapLock}
  1666. function HeapUnlock(hHeap: HANDLE): BOOL; stdcall;
  1667. {$EXTERNALSYM HeapUnlock}
  1668. function HeapWalk(hHeap: HANDLE; var lpEntry: PROCESS_HEAP_ENTRY): BOOL; stdcall;
  1669. {$EXTERNALSYM HeapWalk}
  1670. function HeapSetInformation(HeapHandle: HANDLE; HeapInformationClass: HEAP_INFORMATION_CLASS;
  1671. HeapInformation: PVOID; HeapInformationLength: SIZE_T): BOOL; stdcall;
  1672. {$EXTERNALSYM HeapSetInformation}
  1673. function HeapQueryInformation(HeapHandle: HANDLE; HeapInformationClass: HEAP_INFORMATION_CLASS;
  1674. HeapInformation: PVOID; HeapInformationLength: SIZE_T; ReturnLength: PSIZE_T): BOOL; stdcall;
  1675. {$EXTERNALSYM HeapQueryInformation}
  1676. // GetBinaryType return values.
  1677. const
  1678. SCS_32BIT_BINARY = 0;
  1679. {$EXTERNALSYM SCS_32BIT_BINARY}
  1680. SCS_DOS_BINARY = 1;
  1681. {$EXTERNALSYM SCS_DOS_BINARY}
  1682. SCS_WOW_BINARY = 2;
  1683. {$EXTERNALSYM SCS_WOW_BINARY}
  1684. SCS_PIF_BINARY = 3;
  1685. {$EXTERNALSYM SCS_PIF_BINARY}
  1686. SCS_POSIX_BINARY = 4;
  1687. {$EXTERNALSYM SCS_POSIX_BINARY}
  1688. SCS_OS216_BINARY = 5;
  1689. {$EXTERNALSYM SCS_OS216_BINARY}
  1690. SCS_64BIT_BINARY = 6;
  1691. {$EXTERNALSYM SCS_64BIT_BINARY}
  1692. SCS_THIS_PLATFORM_BINARY = SCS_32BIT_BINARY;
  1693. {$EXTERNALSYM SCS_THIS_PLATFORM_BINARY}
  1694. function GetBinaryTypeA(lpApplicationName: LPCSTR; var lpBinaryType: DWORD): BOOL; stdcall;
  1695. {$EXTERNALSYM GetBinaryTypeA}
  1696. function GetBinaryTypeW(lpApplicationName: LPCWSTR; var lpBinaryType: DWORD): BOOL; stdcall;
  1697. {$EXTERNALSYM GetBinaryTypeW}
  1698. function GetBinaryType(lpApplicationName: LPCTSTR; var lpBinaryType: DWORD): BOOL; stdcall;
  1699. {$EXTERNALSYM GetBinaryType}
  1700. function GetShortPathNameA(lpszLongPath: LPCSTR; lpszShortPath: LPSTR;
  1701. cchBuffer: DWORD): DWORD; stdcall;
  1702. {$EXTERNALSYM GetShortPathNameA}
  1703. function GetShortPathNameW(lpszLongPath: LPCWSTR; lpszShortPath: LPWSTR;
  1704. cchBuffer: DWORD): DWORD; stdcall;
  1705. {$EXTERNALSYM GetShortPathNameW}
  1706. function GetShortPathName(lpszLongPath: LPCTSTR; lpszShortPath: LPTSTR;
  1707. cchBuffer: DWORD): DWORD; stdcall;
  1708. {$EXTERNALSYM GetShortPathName}
  1709. function GetLongPathNameA(lpszShortPath: LPCSTR; lpszLongPath: LPSTR;
  1710. cchBuffer: DWORD): DWORD; stdcall;
  1711. {$EXTERNALSYM GetLongPathNameA}
  1712. function GetLongPathNameW(lpszShortPath: LPCWSTR; lpszLongPath: LPWSTR;
  1713. cchBuffer: DWORD): DWORD; stdcall;
  1714. {$EXTERNALSYM GetLongPathNameW}
  1715. function GetLongPathName(lpszShortPath: LPCTSTR; lpszLongPath: LPTSTR;
  1716. cchBuffer: DWORD): DWORD; stdcall;
  1717. {$EXTERNALSYM GetLongPathName}
  1718. function GetProcessAffinityMask(hProcess: HANDLE;
  1719. var lpProcessAffinityMask, lpSystemAffinityMask: DWORD_PTR): BOOL; stdcall;
  1720. {$EXTERNALSYM GetProcessAffinityMask}
  1721. function SetProcessAffinityMask(hProcess: HANDLE;
  1722. dwProcessAffinityMask: DWORD_PTR): BOOL; stdcall;
  1723. {$EXTERNALSYM SetProcessAffinityMask}
  1724. function GetProcessHandleCount(hProcess: HANDLE; out pdwHandleCount: DWORD): BOOL; stdcall;
  1725. {$EXTERNALSYM GetProcessHandleCount}
  1726. function GetProcessTimes(hProcess: HANDLE; var lpCreationTime, lpExitTime,
  1727. lpKernelTime, lpUserTime: FILETIME): BOOL; stdcall;
  1728. {$EXTERNALSYM GetProcessTimes}
  1729. function GetProcessIoCounters(hProcess: HANDLE; var lpIoCounters: IO_COUNTERS): BOOL; stdcall;
  1730. {$EXTERNALSYM GetProcessIoCounters}
  1731. function GetProcessWorkingSetSize(hProcess: HANDLE;
  1732. var lpMinimumWorkingSetSize, lpMaximumWorkingSetSize: SIZE_T): BOOL; stdcall;
  1733. {$EXTERNALSYM GetProcessWorkingSetSize}
  1734. function GetProcessWorkingSetSizeEx(hProcess: HANDLE; out lpMinimumWorkingSetSize, lpMaximumWorkingSetSize: SIZE_T; out Flags: DWORD): BOOL; stdcall;
  1735. {$EXTERNALSYM GetProcessWorkingSetSizeEx}
  1736. function SetProcessWorkingSetSize(hProcess: HANDLE; dwMinimumWorkingSetSize,
  1737. dwMaximumWorkingSetSize: SIZE_T): BOOL; stdcall;
  1738. {$EXTERNALSYM SetProcessWorkingSetSize}
  1739. function SetProcessWorkingSetSizeEx(hProcess: HANDLE; dwMinimumWorkingSetSize, dwMaximumWorkingSetSize: SIZE_T; Flags: DWORD): BOOL; stdcall;
  1740. {$EXTERNALSYM SetProcessWorkingSetSizeEx}
  1741. function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  1742. dwProcessId: DWORD): HANDLE; stdcall;
  1743. {$EXTERNALSYM OpenProcess}
  1744. function GetCurrentProcess: HANDLE; stdcall;
  1745. {$EXTERNALSYM GetCurrentProcess}
  1746. function GetCurrentProcessId: DWORD; stdcall;
  1747. {$EXTERNALSYM GetCurrentProcessId}
  1748. procedure ExitProcess(uExitCode: UINT); stdcall;
  1749. {$EXTERNALSYM ExitProcess}
  1750. function TerminateProcess(hProcess: HANDLE; uExitCode: UINT): BOOL; stdcall;
  1751. {$EXTERNALSYM TerminateProcess}
  1752. function GetExitCodeProcess(hProcess: HANDLE; var lpExitCode: DWORD): BOOL; stdcall;
  1753. {$EXTERNALSYM GetExitCodeProcess}
  1754. procedure FatalExit(ExitCode: Integer); stdcall;
  1755. {$EXTERNALSYM FatalExit}
  1756. function GetEnvironmentStringsW: LPWSTR; stdcall;
  1757. {$EXTERNALSYM GetEnvironmentStringsW}
  1758. function GetEnvironmentStrings: LPSTR; stdcall;
  1759. {$EXTERNALSYM GetEnvironmentStrings}
  1760. {$IFNDEF UNICODE}
  1761. function GetEnvironmentStringsA: LPSTR; stdcall;
  1762. {$EXTERNALSYM GetEnvironmentStringsA}
  1763. {$ENDIF !UNICODE}
  1764. function SetEnvironmentStringsA(NewEnvironment: LPSTR): BOOL; stdcall;
  1765. {$EXTERNALSYM SetEnvironmentStringsA}
  1766. function SetEnvironmentStringsW(NewEnvironment: LPWSTR): BOOL; stdcall;
  1767. {$EXTERNALSYM SetEnvironmentStringsW}
  1768. function SetEnvironmentStrings(NewEnvironment: LPTSTR): BOOL; stdcall;
  1769. {$EXTERNALSYM SetEnvironmentStrings}
  1770. function FreeEnvironmentStringsA(pstr: LPSTR): BOOL; stdcall;
  1771. {$EXTERNALSYM FreeEnvironmentStringsA}
  1772. function FreeEnvironmentStringsW(pstr: LPWSTR): BOOL; stdcall;
  1773. {$EXTERNALSYM FreeEnvironmentStringsW}
  1774. function FreeEnvironmentStrings(pstr: LPTSTR): BOOL; stdcall;
  1775. {$EXTERNALSYM FreeEnvironmentStrings}
  1776. procedure RaiseException(dwExceptionCode: DWORD; dwExceptionFlags: DWORD;
  1777. nNumberOfArguments: DWORD; lpArguments: PULONG_PTR); stdcall;
  1778. {$EXTERNALSYM RaiseException}
  1779. function UnhandledExceptionFilter(ExceptionInfo: PEXCEPTION_POINTERS): LONG; stdcall;
  1780. {$EXTERNALSYM UnhandledExceptionFilter}
  1781. type
  1782. PTOP_LEVEL_EXCEPTION_FILTER = function(ExceptionInfo: PEXCEPTION_POINTERS): LONG; stdcall;
  1783. {$EXTERNALSYM PTOP_LEVEL_EXCEPTION_FILTER}
  1784. LPTOP_LEVEL_EXCEPTION_FILTER = PTOP_LEVEL_EXCEPTION_FILTER;
  1785. {$EXTERNALSYM LPTOP_LEVEL_EXCEPTION_FILTER}
  1786. TTopLevelExceptionFilter = PTOP_LEVEL_EXCEPTION_FILTER;
  1787. function SetUnhandledExceptionFilter(lpTopLevelExceptionFilter: LPTOP_LEVEL_EXCEPTION_FILTER): LPTOP_LEVEL_EXCEPTION_FILTER; stdcall;
  1788. {$EXTERNALSYM SetUnhandledExceptionFilter}
  1789. //
  1790. // Fiber creation flags
  1791. //
  1792. const
  1793. FIBER_FLAG_FLOAT_SWITCH = $1; // context switch floating point
  1794. {$EXTERNALSYM FIBER_FLAG_FLOAT_SWITCH}
  1795. function CreateFiber(dwStackSize: DWORD; lpStartAddress: LPFIBER_START_ROUTINE;
  1796. lpParameter: LPVOID): LPVOID; stdcall;
  1797. {$EXTERNALSYM CreateFiber}
  1798. function CreateFiberEx(dwStackCommitSize, dwStackReserveSize: SIZE_T; dwFlags: DWORD;
  1799. lpStartAddress: LPFIBER_START_ROUTINE; lpParameter: LPVOID): LPVOID; stdcall;
  1800. {$EXTERNALSYM CreateFiberEx}
  1801. procedure DeleteFiber(lpFiber: LPVOID); stdcall;
  1802. {$EXTERNALSYM DeleteFiber}
  1803. function ConvertThreadToFiber(lpParameter: LPVOID): LPVOID; stdcall;
  1804. {$EXTERNALSYM ConvertThreadToFiber}
  1805. function ConvertThreadToFiberEx(lpParameter: LPVOID; dwFlags: DWORD): LPVOID; stdcall;
  1806. {$EXTERNALSYM ConvertThreadToFiberEx}
  1807. function ConvertFiberToThread: BOOL; stdcall;
  1808. {$EXTERNALSYM ConvertFiberToThread}
  1809. procedure SwitchToFiber(lpFiber: LPVOID); stdcall;
  1810. {$EXTERNALSYM SwitchToFiber}
  1811. function SwitchToThread: BOOL; stdcall;
  1812. {$EXTERNALSYM SwitchToThread}
  1813. function CreateThread(lpThreadAttributes: LPSECURITY_ATTRIBUTES;
  1814. dwStackSize: DWORD; lpStartAddress: LPTHREAD_START_ROUTINE; lpParameter: LPVOID;
  1815. dwCreationFlags: DWORD; lpThreadId: LPDWORD): HANDLE; stdcall;
  1816. {$EXTERNALSYM CreateThread}
  1817. function CreateRemoteThread(hProcess: HANDLE;
  1818. lpThreadAttributes: LPSECURITY_ATTRIBUTES; dwStackSize: DWORD;
  1819. lpStartAddress: LPTHREAD_START_ROUTINE; lpParameter: LPVOID;
  1820. dwCreationFlags: DWORD; lpThreadId: LPDWORD): HANDLE; stdcall;
  1821. {$EXTERNALSYM CreateRemoteThread}
  1822. function GetCurrentThread: HANDLE; stdcall;
  1823. {$EXTERNALSYM GetCurrentThread}
  1824. function GetCurrentThreadId: DWORD; stdcall;
  1825. {$EXTERNALSYM GetCurrentThreadId}
  1826. function GetProcessIdOfThread(Thread: HANDLE): DWORD; stdcall;
  1827. {$EXTERNALSYM GetProcessIdOfThread}
  1828. function GetThreadId(Thread: HANDLE): DWORD; stdcall;
  1829. {$EXTERNALSYM GetThreadId}
  1830. function GetProcessId(Process: HANDLE): DWORD; stdcall;
  1831. {$EXTERNALSYM GetProcessId}
  1832. function GetCurrentProcessorNumber: DWORD; stdcall;
  1833. {$EXTERNALSYM GetCurrentProcessorNumber}
  1834. function SetThreadAffinityMask(hThread: HANDLE;
  1835. dwThreadAffinityMask: DWORD_PTR): DWORD_PTR; stdcall;
  1836. {$EXTERNALSYM SetThreadAffinityMask}
  1837. function SetThreadIdealProcessor(hThread: HANDLE; dwIdealProcessor: DWORD): DWORD; stdcall;
  1838. {$EXTERNALSYM SetThreadIdealProcessor}
  1839. function SetProcessPriorityBoost(hProcess: HANDLE;
  1840. bDisablePriorityBoost: BOOL): BOOL; stdcall;
  1841. {$EXTERNALSYM SetProcessPriorityBoost}
  1842. function GetProcessPriorityBoost(hProcess: HANDLE;
  1843. var pDisablePriorityBoost: BOOL): BOOL; stdcall;
  1844. {$EXTERNALSYM GetProcessPriorityBoost}
  1845. function RequestWakeupLatency(latency: LATENCY_TIME): BOOL; stdcall;
  1846. {$EXTERNALSYM RequestWakeupLatency}
  1847. function IsSystemResumeAutomatic: BOOL; stdcall;
  1848. {$EXTERNALSYM IsSystemResumeAutomatic}
  1849. function OpenThread(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  1850. dwThreadId: DWORD): HANDLE; stdcall;
  1851. {$EXTERNALSYM OpenThread}
  1852. function SetThreadPriority(hThread: HANDLE; nPriority: Integer): BOOL; stdcall;
  1853. {$EXTERNALSYM SetThreadPriority}
  1854. function SetThreadPriorityBoost(hThread: HANDLE; bDisablePriorityBoost: BOOL): BOOL; stdcall;
  1855. {$EXTERNALSYM SetThreadPriorityBoost}
  1856. function GetThreadPriorityBoost(hThread: HANDLE;
  1857. var pDisablePriorityBoost: BOOL): BOOL; stdcall;
  1858. {$EXTERNALSYM GetThreadPriorityBoost}
  1859. function GetThreadPriority(hThread: HANDLE): Integer; stdcall;
  1860. {$EXTERNALSYM GetThreadPriority}
  1861. function GetThreadTimes(hThread: HANDLE; var lpCreationTime, lpExitTime,
  1862. lpKernelTime, lpUserTime: FILETIME): BOOL; stdcall;
  1863. {$EXTERNALSYM GetThreadTimes}
  1864. function GetThreadIOPendingFlag(hThread: HANDLE; out lpIOIsPending: BOOL): BOOL; stdcall;
  1865. {$EXTERNALSYM GetThreadIOPendingFlag}
  1866. procedure ExitThread(dwExitCode: DWORD); stdcall;
  1867. {$EXTERNALSYM ExitThread}
  1868. function TerminateThread(hThread: HANDLE; dwExitCode: DWORD): BOOL; stdcall;
  1869. {$EXTERNALSYM TerminateThread}
  1870. function GetExitCodeThread(hThread: HANDLE; var lpExitCode: DWORD): BOOL; stdcall;
  1871. {$EXTERNALSYM GetExitCodeThread}
  1872. function GetThreadSelectorEntry(hThread: HANDLE; dwSelector: DWORD;
  1873. var lpSelectorEntry: LDT_ENTRY): BOOL; stdcall;
  1874. {$EXTERNALSYM GetThreadSelectorEntry}
  1875. function SetThreadExecutionState(esFlags: EXECUTION_STATE): EXECUTION_STATE; stdcall;
  1876. {$EXTERNALSYM SetThreadExecutionState}
  1877. function GetLastError: DWORD; stdcall;
  1878. {$EXTERNALSYM GetLastError}
  1879. procedure SetLastError(dwErrCode: DWORD); stdcall;
  1880. {$EXTERNALSYM SetLastError}
  1881. procedure RestoreLastError(dwErrCode: DWORD); stdcall;
  1882. {$EXTERNALSYM RestoreLastError}
  1883. type
  1884. PRESTORE_LAST_ERROR = procedure(dwErrCode: DWORD); stdcall;
  1885. {$EXTERNALSYM PRESTORE_LAST_ERROR}
  1886. const
  1887. RESTORE_LAST_ERROR_NAME_A = 'RestoreLastError';
  1888. {$EXTERNALSYM RESTORE_LAST_ERROR_NAME_A}
  1889. RESTORE_LAST_ERROR_NAME_W = WideString('RestoreLastError');
  1890. {$EXTERNALSYM RESTORE_LAST_ERROR_NAME_W}
  1891. RESTORE_LAST_ERROR_NAME = __TEXT('RestoreLastError');
  1892. {$EXTERNALSYM RESTORE_LAST_ERROR_NAME}
  1893. function HasOverlappedIoCompleted(const lpOverlapped: OVERLAPPED): BOOL;
  1894. {$EXTERNALSYM HasOverlappedIoCompleted}
  1895. function GetOverlappedResult(hFile: HANDLE; const lpOverlapped: OVERLAPPED;
  1896. var lpNumberOfBytesTransferred: DWORD; bWait: BOOL): BOOL; stdcall;
  1897. {$EXTERNALSYM GetOverlappedResult}
  1898. function CreateIoCompletionPort(FileHandle: HANDLE; ExistingCompletionPort: HANDLE;
  1899. CompletionKey: ULONG_PTR; NumberOfConcurrentThreads: DWORD): HANDLE; stdcall;
  1900. {$EXTERNALSYM CreateIoCompletionPort}
  1901. function GetQueuedCompletionStatus(CompletionPort: HANDLE;
  1902. var lpNumberOfBytesTransferred: DWORD; var lpCompletionKey: ULONG_PTR;
  1903. var lpOverlapped: LPOVERLAPPED; dwMilliseconds: DWORD): BOOL; stdcall;
  1904. {$EXTERNALSYM GetQueuedCompletionStatus}
  1905. function PostQueuedCompletionStatus(CompletionPort: HANDLE;
  1906. dwNumberOfBytesTransferred: DWORD; dwCompletionKey: ULONG_PTR;
  1907. lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  1908. {$EXTERNALSYM PostQueuedCompletionStatus}
  1909. const
  1910. SEM_FAILCRITICALERRORS = $0001;
  1911. {$EXTERNALSYM SEM_FAILCRITICALERRORS}
  1912. SEM_NOGPFAULTERRORBOX = $0002;
  1913. {$EXTERNALSYM SEM_NOGPFAULTERRORBOX}
  1914. SEM_NOALIGNMENTFAULTEXCEPT = $0004;
  1915. {$EXTERNALSYM SEM_NOALIGNMENTFAULTEXCEPT}
  1916. SEM_NOOPENFILEERRORBOX = $8000;
  1917. {$EXTERNALSYM SEM_NOOPENFILEERRORBOX}
  1918. function SetErrorMode(uMode: UINT): UINT; stdcall;
  1919. {$EXTERNALSYM SetErrorMode}
  1920. function ReadProcessMemory(hProcess: HANDLE; lpBaseAddress: LPCVOID;
  1921. lpBuffer: LPVOID; nSize: DWORD; lpNumberOfBytesRead: LPDWORD): BOOL; stdcall;
  1922. {$EXTERNALSYM ReadProcessMemory}
  1923. function WriteProcessMemory(hProcess: HANDLE; lpBaseAddress: LPVOID;
  1924. lpBuffer: LPVOID; nSize: DWORD; lpNumberOfBytesWritten: LPDWORD): BOOL; stdcall;
  1925. {$EXTERNALSYM WriteProcessMemory}
  1926. function GetThreadContext(hThread: HANDLE; var lpContext: CONTEXT): BOOL; stdcall;
  1927. {$EXTERNALSYM GetThreadContext}
  1928. function SetThreadContext(hThread: HANDLE; const lpContext: CONTEXT): BOOL; stdcall;
  1929. {$EXTERNALSYM SetThreadContext}
  1930. function SuspendThread(hThread: HANDLE): DWORD; stdcall;
  1931. {$EXTERNALSYM SuspendThread}
  1932. function ResumeThread(hThread: HANDLE): DWORD; stdcall;
  1933. {$EXTERNALSYM ResumeThread}
  1934. type
  1935. PAPCFUNC = procedure(dwParam: ULONG_PTR); stdcall;
  1936. {$EXTERNALSYM PAPCFUNC}
  1937. TApcFunc = PAPCFUNC;
  1938. function QueueUserAPC(pfnAPC: PAPCFUNC; hThread: HANDLE; dwData: ULONG_PTR): DWORD; stdcall;
  1939. {$EXTERNALSYM QueueUserAPC}
  1940. function IsDebuggerPresent: BOOL; stdcall;
  1941. {$EXTERNALSYM IsDebuggerPresent}
  1942. function CheckRemoteDebuggerPresent(hProcess: HANDLE; out pbDebuggerPresent: BOOL): BOOL; stdcall;
  1943. {$EXTERNALSYM CheckRemoteDebuggerPresent}
  1944. procedure DebugBreak; stdcall;
  1945. {$EXTERNALSYM DebugBreak}
  1946. function WaitForDebugEvent(var lpDebugEvent: DEBUG_EVENT; dwMilliseconds: DWORD): BOOL; stdcall;
  1947. {$EXTERNALSYM WaitForDebugEvent}
  1948. function ContinueDebugEvent(dwProcessId: DWORD; dwThreadId: DWORD;
  1949. dwContinueStatus: DWORD): BOOL; stdcall;
  1950. {$EXTERNALSYM ContinueDebugEvent}
  1951. function DebugActiveProcess(dwProcessId: DWORD): BOOL; stdcall;
  1952. {$EXTERNALSYM DebugActiveProcess}
  1953. function DebugActiveProcessStop(dwProcessId: DWORD): BOOL; stdcall;
  1954. {$EXTERNALSYM DebugActiveProcessStop}
  1955. function DebugSetProcessKillOnExit(KillOnExit: BOOL): BOOL; stdcall;
  1956. {$EXTERNALSYM DebugSetProcessKillOnExit}
  1957. function DebugBreakProcess(Process: HANDLE): BOOL; stdcall;
  1958. {$EXTERNALSYM DebugBreakProcess}
  1959. procedure InitializeCriticalSection(var lpCriticalSection: CRITICAL_SECTION); stdcall;
  1960. {$EXTERNALSYM InitializeCriticalSection}
  1961. procedure EnterCriticalSection(var lpCriticalSection: CRITICAL_SECTION); stdcall;
  1962. {$EXTERNALSYM EnterCriticalSection}
  1963. procedure LeaveCriticalSection(var lpCriticalSection: CRITICAL_SECTION); stdcall;
  1964. {$EXTERNALSYM LeaveCriticalSection}
  1965. function InitializeCriticalSectionAndSpinCount(var lpCriticalSection: CRITICAL_SECTION;
  1966. dwSpinCount: DWORD): BOOL; stdcall;
  1967. {$EXTERNALSYM InitializeCriticalSectionAndSpinCount}
  1968. function SetCriticalSectionSpinCount(var lpCriticalSection: CRITICAL_SECTION;
  1969. dwSpinCount: DWORD): DWORD; stdcall;
  1970. {$EXTERNALSYM SetCriticalSectionSpinCount}
  1971. function TryEnterCriticalSection(var lpCriticalSection: CRITICAL_SECTION): BOOL; stdcall;
  1972. {$EXTERNALSYM TryEnterCriticalSection}
  1973. procedure DeleteCriticalSection(var lpCriticalSection: CRITICAL_SECTION); stdcall;
  1974. {$EXTERNALSYM DeleteCriticalSection}
  1975. function SetEvent(hEvent: HANDLE): BOOL; stdcall;
  1976. {$EXTERNALSYM SetEvent}
  1977. function ResetEvent(hEvent: HANDLE): BOOL; stdcall;
  1978. {$EXTERNALSYM ResetEvent}
  1979. function PulseEvent(hEvent: HANDLE): BOOL; stdcall;
  1980. {$EXTERNALSYM PulseEvent}
  1981. function ReleaseSemaphore(hSemaphore: HANDLE; lReleaseCount: LONG;
  1982. lpPreviousCount: LPLONG): BOOL; stdcall;
  1983. {$EXTERNALSYM ReleaseSemaphore}
  1984. function ReleaseMutex(hMutex: HANDLE): BOOL; stdcall;
  1985. {$EXTERNALSYM ReleaseMutex}
  1986. function WaitForSingleObject(hHandle: HANDLE; dwMilliseconds: DWORD): DWORD; stdcall;
  1987. {$EXTERNALSYM WaitForSingleObject}
  1988. function WaitForMultipleObjects(nCount: DWORD; lpHandles: PHANDLE; bWaitAll: BOOL;
  1989. dwMilliseconds: DWORD): DWORD; stdcall;
  1990. {$EXTERNALSYM WaitForMultipleObjects}
  1991. procedure Sleep(dwMilliseconds: DWORD); stdcall;
  1992. {$EXTERNALSYM Sleep}
  1993. function LoadResource(hModule: HMODULE; hResInfo: HRSRC): HGLOBAL; stdcall;
  1994. {$EXTERNALSYM LoadResource}
  1995. function SizeofResource(hModule: HMODULE; hResInfo: HRSRC): DWORD; stdcall;
  1996. {$EXTERNALSYM SizeofResource}
  1997. function GlobalDeleteAtom(nAtom: ATOM): ATOM; stdcall;
  1998. {$EXTERNALSYM GlobalDeleteAtom}
  1999. function InitAtomTable(nSize: DWORD): BOOL; stdcall;
  2000. {$EXTERNALSYM InitAtomTable}
  2001. function DeleteAtom(nAtom: ATOM): ATOM; stdcall;
  2002. {$EXTERNALSYM DeleteAtom}
  2003. function SetHandleCount(uNumber: UINT): UINT; stdcall;
  2004. {$EXTERNALSYM SetHandleCount}
  2005. function GetLogicalDrives: DWORD; stdcall;
  2006. {$EXTERNALSYM GetLogicalDrives}
  2007. function LockFile(hFile: HANDLE; dwFileOffsetLow: DWORD; dwFileOffsetHigh: DWORD;
  2008. nNumberOfBytesToLockLow: DWORD; nNumberOfBytesToLockHigh: DWORD): BOOL; stdcall;
  2009. {$EXTERNALSYM LockFile}
  2010. function UnlockFile(hFile: HANDLE; dwFileOffsetLow: DWORD; dwFileOffsetHigh: DWORD;
  2011. nNumberOfBytesToUnlockLow: DWORD; nNumberOfBytesToUnlockHigh: DWORD): BOOL; stdcall;
  2012. {$EXTERNALSYM UnlockFile}
  2013. function LockFileEx(hFile: HANDLE; dwFlags: DWORD; dwReserved: DWORD;
  2014. nNumberOfBytesToLockLow: DWORD; nNumberOfBytesToLockHigh: DWORD;
  2015. const lpOverlapped: OVERLAPPED): BOOL; stdcall;
  2016. {$EXTERNALSYM LockFileEx}
  2017. const
  2018. LOCKFILE_FAIL_IMMEDIATELY = $00000001;
  2019. {$EXTERNALSYM LOCKFILE_FAIL_IMMEDIATELY}
  2020. LOCKFILE_EXCLUSIVE_LOCK = $00000002;
  2021. {$EXTERNALSYM LOCKFILE_EXCLUSIVE_LOCK}
  2022. function UnlockFileEx(hFile: HANDLE; dwReserved: DWORD;
  2023. nNumberOfBytesToUnlockLow: DWORD; nNumberOfBytesToUnlockHigh: DWORD;
  2024. const lpOverlapped: OVERLAPPED): BOOL; stdcall;
  2025. {$EXTERNALSYM UnlockFileEx}
  2026. type
  2027. PBY_HANDLE_FILE_INFORMATION = ^BY_HANDLE_FILE_INFORMATION;
  2028. {$EXTERNALSYM PBY_HANDLE_FILE_INFORMATION}
  2029. _BY_HANDLE_FILE_INFORMATION = record
  2030. dwFileAttributes: DWORD;
  2031. ftCreationTime: FILETIME;
  2032. ftLastAccessTime: FILETIME;
  2033. ftLastWriteTime: FILETIME;
  2034. dwVolumeSerialNumber: DWORD;
  2035. nFileSizeHigh: DWORD;
  2036. nFileSizeLow: DWORD;
  2037. nNumberOfLinks: DWORD;
  2038. nFileIndexHigh: DWORD;
  2039. nFileIndexLow: DWORD;
  2040. end;
  2041. {$EXTERNALSYM _BY_HANDLE_FILE_INFORMATION}
  2042. BY_HANDLE_FILE_INFORMATION = _BY_HANDLE_FILE_INFORMATION;
  2043. {$EXTERNALSYM BY_HANDLE_FILE_INFORMATION}
  2044. LPBY_HANDLE_FILE_INFORMATION = ^BY_HANDLE_FILE_INFORMATION;
  2045. {$EXTERNALSYM LPBY_HANDLE_FILE_INFORMATION}
  2046. TByHandleFileInformation = BY_HANDLE_FILE_INFORMATION;
  2047. PByHandleFileInformation = PBY_HANDLE_FILE_INFORMATION;
  2048. function GetFileInformationByHandle(hFile: HANDLE;
  2049. var lpFileInformation: BY_HANDLE_FILE_INFORMATION): BOOL; stdcall;
  2050. {$EXTERNALSYM GetFileInformationByHandle}
  2051. function GetFileType(hFile: HANDLE): DWORD; stdcall;
  2052. {$EXTERNALSYM GetFileType}
  2053. function GetFileSize(hFile: HANDLE; lpFileSizeHigh: LPDWORD): DWORD; stdcall;
  2054. {$EXTERNALSYM GetFileSize}
  2055. function GetFileSizeEx(hFile: HANDLE; var lpFileSize: LARGE_INTEGER): BOOL; stdcall;
  2056. {$EXTERNALSYM GetFileSizeEx}
  2057. function GetStdHandle(nStdHandle: DWORD): HANDLE; stdcall;
  2058. {$EXTERNALSYM GetStdHandle}
  2059. function SetStdHandle(nStdHandle: DWORD; hHandle: HANDLE): BOOL; stdcall;
  2060. {$EXTERNALSYM SetStdHandle}
  2061. function WriteFile(hFile: HANDLE; lpBuffer: LPCVOID; nNumberOfBytesToWrite: DWORD;
  2062. lpNumberOfBytesWritten: LPDWORD; lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2063. {$EXTERNALSYM WriteFile}
  2064. function ReadFile(hFile: HANDLE; lpBuffer: LPVOID; nNumberOfBytesToRead: DWORD;
  2065. lpNumberOfBytesRead: LPDWORD; lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2066. {$EXTERNALSYM ReadFile}
  2067. function FlushFileBuffers(hFile: HANDLE): BOOL; stdcall;
  2068. {$EXTERNALSYM FlushFileBuffers}
  2069. function DeviceIoControl(hDevice: HANDLE; dwIoControlCode: DWORD;
  2070. lpInBuffer: LPVOID; nInBufferSize: DWORD; lpOutBuffer: LPVOID;
  2071. nOutBufferSize: DWORD; lpBytesReturned: LPDWORD;
  2072. lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2073. {$EXTERNALSYM DeviceIoControl}
  2074. function RequestDeviceWakeup(hDevice: HANDLE): BOOL; stdcall;
  2075. {$EXTERNALSYM RequestDeviceWakeup}
  2076. function CancelDeviceWakeupRequest(hDevice: HANDLE): BOOL; stdcall;
  2077. {$EXTERNALSYM CancelDeviceWakeupRequest}
  2078. function GetDevicePowerState(hDevice: HANDLE; var pfOn: BOOL): BOOL; stdcall;
  2079. {$EXTERNALSYM GetDevicePowerState}
  2080. function SetMessageWaitingIndicator(hMsgIndicator: HANDLE; ulMsgCount: ULONG): BOOL; stdcall;
  2081. {$EXTERNALSYM SetMessageWaitingIndicator}
  2082. function SetEndOfFile(hFile: HANDLE): BOOL; stdcall;
  2083. {$EXTERNALSYM SetEndOfFile}
  2084. function SetFilePointer(hFile: HANDLE; lDistanceToMove: LONG;
  2085. lpDistanceToMoveHigh: PLONG; dwMoveMethod: DWORD): DWORD; stdcall;
  2086. {$EXTERNALSYM SetFilePointer}
  2087. function SetFilePointerEx(hFile: HANDLE; liDistanceToMove: LARGE_INTEGER;
  2088. lpNewFilePointer: PLARGE_INTEGER; dwMoveMethod: DWORD): BOOL; stdcall;
  2089. {$EXTERNALSYM SetFilePointerEx}
  2090. function FindClose(hFindFile: HANDLE): BOOL; stdcall;
  2091. {$EXTERNALSYM FindClose}
  2092. function GetFileTime(hFile: HANDLE; lpCreationTime, lpLastAccessTime,
  2093. lpLastWriteTime: PFILETIME): BOOL; stdcall;
  2094. {$EXTERNALSYM GetFileTime}
  2095. function SetFileTime(hFile: HANDLE; lpCreationTime, lpLastAccessTime,
  2096. lpLastWriteTime: PFILETIME): BOOL; stdcall;
  2097. {$EXTERNALSYM SetFileTime}
  2098. function SetFileValidData(hFile: HANDLE; ValidDataLength: LONGLONG): BOOL; stdcall;
  2099. {$EXTERNALSYM SetFileValidData}
  2100. function SetFileShortNameA(hFile: HANDLE; lpShortName: LPCSTR): BOOL; stdcall;
  2101. {$EXTERNALSYM SetFileShortNameA}
  2102. function SetFileShortNameW(hFile: HANDLE; lpShortName: LPCWSTR): BOOL; stdcall;
  2103. {$EXTERNALSYM SetFileShortNameW}
  2104. function SetFileShortName(hFile: HANDLE; lpShortName: LPCTSTR): BOOL; stdcall;
  2105. {$EXTERNALSYM SetFileShortName}
  2106. function CloseHandle(hObject: HANDLE): BOOL; stdcall;
  2107. {$EXTERNALSYM CloseHandle}
  2108. function DuplicateHandle(hSourceProcessHandle: HANDLE; hSourceHandle: HANDLE;
  2109. hTargetProcessHandle: HANDLE; lpTargetHandle: LPHANDLE;
  2110. dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwOptions: DWORD): BOOL; stdcall;
  2111. {$EXTERNALSYM DuplicateHandle}
  2112. function GetHandleInformation(hObject: HANDLE; var lpdwFlags: DWORD): BOOL; stdcall;
  2113. {$EXTERNALSYM GetHandleInformation}
  2114. function SetHandleInformation(hObject: HANDLE; dwMask: DWORD; dwFlags: DWORD): BOOL; stdcall;
  2115. {$EXTERNALSYM SetHandleInformation}
  2116. const
  2117. HANDLE_FLAG_INHERIT = $00000001;
  2118. {$EXTERNALSYM HANDLE_FLAG_INHERIT}
  2119. HANDLE_FLAG_PROTECT_FROM_CLOSE = $00000002;
  2120. {$EXTERNALSYM HANDLE_FLAG_PROTECT_FROM_CLOSE}
  2121. HINSTANCE_ERROR = 32;
  2122. {$EXTERNALSYM HINSTANCE_ERROR}
  2123. function LoadModule(lpModuleName: LPCSTR; lpParameterBlock: LPVOID): DWORD; stdcall;
  2124. {$EXTERNALSYM LoadModule}
  2125. function WinExec(lpCmdLine: LPCSTR; uCmdShow: UINT): UINT; stdcall;
  2126. {$EXTERNALSYM WinExec}
  2127. function ClearCommBreak(hFile: HANDLE): BOOL; stdcall;
  2128. {$EXTERNALSYM ClearCommBreak}
  2129. function ClearCommError(hFile: HANDLE; var lpErrors: DWORD;
  2130. lpStat: LPCOMSTAT): BOOL; stdcall;
  2131. {$EXTERNALSYM ClearCommError}
  2132. function SetupComm(hFile: HANDLE; dwInQueue: DWORD; dwOutQueue: DWORD): BOOL; stdcall;
  2133. {$EXTERNALSYM SetupComm}
  2134. function EscapeCommFunction(hFile: HANDLE; dwFunc: DWORD): BOOL; stdcall;
  2135. {$EXTERNALSYM EscapeCommFunction}
  2136. function GetCommConfig(hCommDev: HANDLE; var lpCC: COMMCONFIG;
  2137. var lpdwSize: DWORD): BOOL; stdcall;
  2138. {$EXTERNALSYM GetCommConfig}
  2139. function GetCommMask(hFile: HANDLE; var lpEvtMask: DWORD): BOOL; stdcall;
  2140. {$EXTERNALSYM GetCommMask}
  2141. function GetCommProperties(hFile: HANDLE; var lpCommProp: COMMPROP): BOOL; stdcall;
  2142. {$EXTERNALSYM GetCommProperties}
  2143. function GetCommModemStatus(hFile: HANDLE; var lpModemStat: DWORD): BOOL; stdcall;
  2144. {$EXTERNALSYM GetCommModemStatus}
  2145. function GetCommState(hFile: HANDLE; var lpDCB: DCB): BOOL; stdcall;
  2146. {$EXTERNALSYM GetCommState}
  2147. function GetCommTimeouts(hFile: HANDLE; var lpCommTimeouts: COMMTIMEOUTS): BOOL; stdcall;
  2148. {$EXTERNALSYM GetCommTimeouts}
  2149. function PurgeComm(hFile: HANDLE; dwFlags: DWORD): BOOL; stdcall;
  2150. {$EXTERNALSYM PurgeComm}
  2151. function SetCommBreak(hFile: HANDLE): BOOL; stdcall;
  2152. {$EXTERNALSYM SetCommBreak}
  2153. function SetCommConfig(hCommDev: HANDLE; const lpCC: COMMCONFIG; dwSize: DWORD): BOOL; stdcall;
  2154. {$EXTERNALSYM SetCommConfig}
  2155. function SetCommMask(hFile: HANDLE; dwEvtMask: DWORD): BOOL; stdcall;
  2156. {$EXTERNALSYM SetCommMask}
  2157. function SetCommState(hFile: HANDLE; const lpDCB: DCB): BOOL; stdcall;
  2158. {$EXTERNALSYM SetCommState}
  2159. function SetCommTimeouts(hFile: HANDLE; const lpCommTimeouts: COMMTIMEOUTS): BOOL; stdcall;
  2160. {$EXTERNALSYM SetCommTimeouts}
  2161. function TransmitCommChar(hFile: HANDLE; cChar: Char): BOOL; stdcall;
  2162. {$EXTERNALSYM TransmitCommChar}
  2163. function WaitCommEvent(hFile: HANDLE; var lpEvtMask: DWORD;
  2164. lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2165. {$EXTERNALSYM WaitCommEvent}
  2166. function SetTapePosition(hDevice: HANDLE; dwPositionMethod, dwPartition,
  2167. dwOffsetLow, dwOffsetHigh: DWORD; bImmediate: BOOL): DWORD; stdcall;
  2168. {$EXTERNALSYM SetTapePosition}
  2169. function GetTapePosition(hDevice: HANDLE; dwPositionType: DWORD;
  2170. var lpdwPartition, lpdwOffsetLow: LPDWORD; lpdwOffsetHigh: LPDWORD): DWORD; stdcall;
  2171. {$EXTERNALSYM GetTapePosition}
  2172. function PrepareTape(hDevice: HANDLE; dwOperation: DWORD; bImmediate: BOOL): DWORD; stdcall;
  2173. {$EXTERNALSYM PrepareTape}
  2174. function EraseTape(hDevice: HANDLE; dwEraseType: DWORD; bImmediate: BOOL): DWORD; stdcall;
  2175. {$EXTERNALSYM EraseTape}
  2176. function CreateTapePartition(hDevice: HANDLE; dwPartitionMethod: DWORD;
  2177. dwCount: DWORD; dwSize: DWORD): DWORD; stdcall;
  2178. {$EXTERNALSYM CreateTapePartition}
  2179. function WriteTapemark(hDevice: HANDLE; dwTapemarkType: DWORD;
  2180. dwTapemarkCount: DWORD; bImmediate: BOOL): DWORD; stdcall;
  2181. {$EXTERNALSYM WriteTapemark}
  2182. function GetTapeStatus(hDevice: HANDLE): DWORD; stdcall;
  2183. {$EXTERNALSYM GetTapeStatus}
  2184. function GetTapeParameters(hDevice: HANDLE; dwOperation: DWORD;
  2185. var lpdwSize: DWORD; lpTapeInformation: LPVOID): DWORD; stdcall;
  2186. {$EXTERNALSYM GetTapeParameters}
  2187. const
  2188. GET_TAPE_MEDIA_INFORMATION = 0;
  2189. {$EXTERNALSYM GET_TAPE_MEDIA_INFORMATION}
  2190. GET_TAPE_DRIVE_INFORMATION = 1;
  2191. {$EXTERNALSYM GET_TAPE_DRIVE_INFORMATION}
  2192. function SetTapeParameters(hDevice: HANDLE; dwOperation: DWORD; lpTapeInformation: LPVOID): DWORD; stdcall;
  2193. {$EXTERNALSYM SetTapeParameters}
  2194. const
  2195. SET_TAPE_MEDIA_INFORMATION = 0;
  2196. {$EXTERNALSYM SET_TAPE_MEDIA_INFORMATION}
  2197. SET_TAPE_DRIVE_INFORMATION = 1;
  2198. {$EXTERNALSYM SET_TAPE_DRIVE_INFORMATION}
  2199. function Beep(dwFreq: DWORD; dwDuration: DWORD): BOOL; stdcall;
  2200. {$EXTERNALSYM Beep}
  2201. function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer; stdcall;
  2202. {$EXTERNALSYM MulDiv}
  2203. procedure GetSystemTime(var lpSystemTime: SYSTEMTIME); stdcall;
  2204. {$EXTERNALSYM GetSystemTime}
  2205. procedure GetSystemTimeAsFileTime(var lpSystemTimeAsFileTime: FILETIME); stdcall;
  2206. {$EXTERNALSYM GetSystemTimeAsFileTime}
  2207. function SetSystemTime(var lpSystemTime: SYSTEMTIME): BOOL; stdcall;
  2208. {$EXTERNALSYM SetSystemTime}
  2209. procedure GetLocalTime(var lpSystemTime: SYSTEMTIME); stdcall;
  2210. {$EXTERNALSYM GetLocalTime}
  2211. function SetLocalTime(var lpSystemTime: SYSTEMTIME): BOOL; stdcall;
  2212. {$EXTERNALSYM SetLocalTime}
  2213. procedure GetSystemInfo(var lpSystemInfo: SYSTEM_INFO); stdcall;
  2214. {$EXTERNALSYM GetSystemInfo}
  2215. function GetSystemRegistryQuota(out pdwQuotaAllowed, pdwQuotaUsed: DWORD): BOOL; stdcall;
  2216. {$EXTERNALSYM GetSystemRegistryQuota}
  2217. function GetSystemTimes(lpIdleTime, lpKernelTime, lpUserTime: LPFILETIME): BOOL; stdcall;
  2218. {$EXTERNALSYM GetSystemTimes}
  2219. procedure GetNativeSystemInfo(lpSystemInfo: LPSYSTEM_INFO); stdcall;
  2220. {$EXTERNALSYM GetNativeSystemInfo}
  2221. function IsProcessorFeaturePresent(ProcessorFeature: DWORD): BOOL; stdcall;
  2222. {$EXTERNALSYM IsProcessorFeaturePresent}
  2223. type
  2224. PTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;
  2225. {$EXTERNALSYM PTIME_ZONE_INFORMATION}
  2226. _TIME_ZONE_INFORMATION = record
  2227. Bias: LONG;
  2228. StandardName: array [0..31] of WCHAR;
  2229. StandardDate: SYSTEMTIME;
  2230. StandardBias: LONG;
  2231. DaylightName: array [0..31] of WCHAR;
  2232. DaylightDate: SYSTEMTIME;
  2233. DaylightBias: LONG;
  2234. end;
  2235. {$EXTERNALSYM _TIME_ZONE_INFORMATION}
  2236. TIME_ZONE_INFORMATION = _TIME_ZONE_INFORMATION;
  2237. {$EXTERNALSYM TIME_ZONE_INFORMATION}
  2238. LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;
  2239. {$EXTERNALSYM LPTIME_ZONE_INFORMATION}
  2240. TTimeZoneInformation = TIME_ZONE_INFORMATION;
  2241. PTimeZoneInformation = PTIME_ZONE_INFORMATION;
  2242. function SystemTimeToTzSpecificLocalTime(lpTimeZoneInformation: LPTIME_ZONE_INFORMATION;
  2243. var lpUniversalTime, lpLocalTime: SYSTEMTIME): BOOL; stdcall;
  2244. {$EXTERNALSYM SystemTimeToTzSpecificLocalTime}
  2245. function TzSpecificLocalTimeToSystemTime(const lpTimeZoneInformation: TIME_ZONE_INFORMATION;
  2246. const lpLocalTime: SYSTEMTIME; var lpUniversalTime: SYSTEMTIME): BOOL; stdcall;
  2247. {$EXTERNALSYM TzSpecificLocalTimeToSystemTime}
  2248. function GetTimeZoneInformation(var lpTimeZoneInformation: TIME_ZONE_INFORMATION): DWORD; stdcall;
  2249. {$EXTERNALSYM GetTimeZoneInformation}
  2250. function SetTimeZoneInformation(const lpTimeZoneInformation: TIME_ZONE_INFORMATION): BOOL; stdcall;
  2251. {$EXTERNALSYM SetTimeZoneInformation}
  2252. //
  2253. // Routines to convert back and forth between system time and file time
  2254. //
  2255. function SystemTimeToFileTime(const lpSystemTime: SYSTEMTIME; var lpFileTime: FILETIME): BOOL; stdcall;
  2256. {$EXTERNALSYM SystemTimeToFileTime}
  2257. function FileTimeToLocalFileTime(const lpFileTime: FILETIME; var lpLocalFileTime: FILETIME): BOOL; stdcall;
  2258. {$EXTERNALSYM FileTimeToLocalFileTime}
  2259. function LocalFileTimeToFileTime(const lpLocalFileTime: FILETIME; var lpFileTime: FILETIME): BOOL; stdcall;
  2260. {$EXTERNALSYM LocalFileTimeToFileTime}
  2261. function FileTimeToSystemTime(const lpFileTime: FILETIME; var lpSystemTime: SYSTEMTIME): BOOL; stdcall;
  2262. {$EXTERNALSYM FileTimeToSystemTime}
  2263. function CompareFileTime(const lpFileTime1, lpFileTime2: FILETIME): LONG; stdcall;
  2264. {$EXTERNALSYM CompareFileTime}
  2265. function FileTimeToDosDateTime(const lpFileTime: FILETIME; var lpFatDate,
  2266. lpFatTime: WORD): BOOL; stdcall;
  2267. {$EXTERNALSYM FileTimeToDosDateTime}
  2268. function DosDateTimeToFileTime(wFatDate, wFatTime: WORD; var lpFileTime: FILETIME): BOOL; stdcall;
  2269. {$EXTERNALSYM DosDateTimeToFileTime}
  2270. function GetTickCount: DWORD; stdcall;
  2271. {$EXTERNALSYM GetTickCount}
  2272. function SetSystemTimeAdjustment(dwTimeAdjustment: DWORD;
  2273. bTimeAdjustmentDisabled: BOOL): BOOL; stdcall;
  2274. {$EXTERNALSYM SetSystemTimeAdjustment}
  2275. function GetSystemTimeAdjustment(var lpTimeAdjustment, lpTimeIncrement: DWORD;
  2276. var lpTimeAdjustmentDisabled: BOOL): BOOL; stdcall;
  2277. {$EXTERNALSYM GetSystemTimeAdjustment}
  2278. function FormatMessageA(dwFlags: DWORD; lpSource: LPCVOID; dwMessageId: DWORD;
  2279. dwLanguageId: DWORD; lpBuffer: LPSTR; nSize: DWORD; Arguments: Pointer): DWORD; stdcall;
  2280. {$EXTERNALSYM FormatMessageA}
  2281. function FormatMessageW(dwFlags: DWORD; lpSource: LPCVOID; dwMessageId: DWORD;
  2282. dwLanguageId: DWORD; lpBuffer: LPWSTR; nSize: DWORD; Arguments: Pointer): DWORD; stdcall;
  2283. {$EXTERNALSYM FormatMessageW}
  2284. function FormatMessage(dwFlags: DWORD; lpSource: LPCVOID; dwMessageId: DWORD;
  2285. dwLanguageId: DWORD; lpBuffer: LPTSTR; nSize: DWORD; Arguments: Pointer): DWORD; stdcall;
  2286. {$EXTERNALSYM FormatMessage}
  2287. const
  2288. FORMAT_MESSAGE_ALLOCATE_BUFFER = $00000100;
  2289. {$EXTERNALSYM FORMAT_MESSAGE_ALLOCATE_BUFFER}
  2290. FORMAT_MESSAGE_IGNORE_INSERTS = $00000200;
  2291. {$EXTERNALSYM FORMAT_MESSAGE_IGNORE_INSERTS}
  2292. FORMAT_MESSAGE_FROM_STRING = $00000400;
  2293. {$EXTERNALSYM FORMAT_MESSAGE_FROM_STRING}
  2294. FORMAT_MESSAGE_FROM_HMODULE = $00000800;
  2295. {$EXTERNALSYM FORMAT_MESSAGE_FROM_HMODULE}
  2296. FORMAT_MESSAGE_FROM_SYSTEM = $00001000;
  2297. {$EXTERNALSYM FORMAT_MESSAGE_FROM_SYSTEM}
  2298. FORMAT_MESSAGE_ARGUMENT_ARRAY = $00002000;
  2299. {$EXTERNALSYM FORMAT_MESSAGE_ARGUMENT_ARRAY}
  2300. FORMAT_MESSAGE_MAX_WIDTH_MASK = $000000FF;
  2301. {$EXTERNALSYM FORMAT_MESSAGE_MAX_WIDTH_MASK}
  2302. function CreatePipe(var hReadPipe, hWritePipe: HANDLE;
  2303. lpPipeAttributes: LPSECURITY_ATTRIBUTES; nSize: DWORD): BOOL; stdcall;
  2304. {$EXTERNALSYM CreatePipe}
  2305. function ConnectNamedPipe(hNamedPipe: HANDLE; lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2306. {$EXTERNALSYM ConnectNamedPipe}
  2307. function DisconnectNamedPipe(hNamedPipe: HANDLE): BOOL; stdcall;
  2308. {$EXTERNALSYM DisconnectNamedPipe}
  2309. function SetNamedPipeHandleState(hNamedPipe: HANDLE; var lpMode: DWORD;
  2310. lpMaxCollectionCount: LPDWORD; lpCollectDataTimeout: LPDWORD): BOOL; stdcall;
  2311. {$EXTERNALSYM SetNamedPipeHandleState}
  2312. function GetNamedPipeInfo(hNamedPipe: HANDLE; lpFlags, lpOutBufferSize,
  2313. lpInBufferSize, lpMaxInstances: LPDWORD): BOOL; stdcall;
  2314. {$EXTERNALSYM GetNamedPipeInfo}
  2315. function PeekNamedPipe(hNamedPipe: HANDLE; lpBuffer: LPVOID; nBufferSize: DWORD;
  2316. lpBytesRead, lpTotalBytesAvail, lpBytesLeftThisMessage: LPDWORD): BOOL; stdcall;
  2317. {$EXTERNALSYM PeekNamedPipe}
  2318. function TransactNamedPipe(hNamedPipe: HANDLE; lpInBuffer: LPVOID;
  2319. nInBufferSize: DWORD; lpOutBuffer: LPVOID; nOutBufferSize: DWORD;
  2320. lpBytesRead: LPDWORD; lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2321. {$EXTERNALSYM TransactNamedPipe}
  2322. function CreateMailslotA(lpName: LPCSTR; nMaxMessageSize, lReadTimeout: DWORD;
  2323. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE; stdcall;
  2324. {$EXTERNALSYM CreateMailslotA}
  2325. function CreateMailslotW(lpName: LPCWSTR; nMaxMessageSize, lReadTimeout: DWORD;
  2326. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE; stdcall;
  2327. {$EXTERNALSYM CreateMailslotW}
  2328. function CreateMailslot(lpName: LPCTSTR; nMaxMessageSize, lReadTimeout: DWORD;
  2329. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE; stdcall;
  2330. {$EXTERNALSYM CreateMailslot}
  2331. function GetMailslotInfo(hMailslot: HANDLE; lpMaxMessageSize, lpNextSize,
  2332. lpMessageCount, lpReadTimeout: LPDWORD): BOOL; stdcall;
  2333. {$EXTERNALSYM GetMailslotInfo}
  2334. function SetMailslotInfo(hMailslot: HANDLE; lReadTimeout: DWORD): BOOL; stdcall;
  2335. {$EXTERNALSYM SetMailslotInfo}
  2336. function MapViewOfFile(hFileMappingObject: HANDLE; dwDesiredAccess: DWORD;
  2337. dwFileOffsetHigh, dwFileOffsetLow: DWORD; dwNumberOfBytesToMap: SIZE_T): LPVOID; stdcall;
  2338. {$EXTERNALSYM MapViewOfFile}
  2339. function FlushViewOfFile(lpBaseAddress: LPCVOID; dwNumberOfBytesToFlush: SIZE_T): BOOL; stdcall;
  2340. {$EXTERNALSYM FlushViewOfFile}
  2341. function UnmapViewOfFile(lpBaseAddress: LPCVOID): BOOL; stdcall;
  2342. {$EXTERNALSYM UnmapViewOfFile}
  2343. //
  2344. // File Encryption API
  2345. //
  2346. function EncryptFileA(lpFileName: LPCSTR): BOOL; stdcall;
  2347. {$EXTERNALSYM EncryptFileA}
  2348. function EncryptFileW(lpFileName: LPCWSTR): BOOL; stdcall;
  2349. {$EXTERNALSYM EncryptFileW}
  2350. function EncryptFile(lpFileName: LPCTSTR): BOOL; stdcall;
  2351. {$EXTERNALSYM EncryptFile}
  2352. function DecryptFileA(lpFileName: LPCSTR; dwReserved: DWORD): BOOL; stdcall;
  2353. {$EXTERNALSYM DecryptFileA}
  2354. function DecryptFileW(lpFileName: LPCWSTR; dwReserved: DWORD): BOOL; stdcall;
  2355. {$EXTERNALSYM DecryptFileW}
  2356. function DecryptFile(lpFileName: LPCTSTR; dwReserved: DWORD): BOOL; stdcall;
  2357. {$EXTERNALSYM DecryptFile}
  2358. //
  2359. // Encryption Status Value
  2360. //
  2361. const
  2362. FILE_ENCRYPTABLE = 0;
  2363. {$EXTERNALSYM FILE_ENCRYPTABLE}
  2364. FILE_IS_ENCRYPTED = 1;
  2365. {$EXTERNALSYM FILE_IS_ENCRYPTED}
  2366. FILE_SYSTEM_ATTR = 2;
  2367. {$EXTERNALSYM FILE_SYSTEM_ATTR}
  2368. FILE_ROOT_DIR = 3;
  2369. {$EXTERNALSYM FILE_ROOT_DIR}
  2370. FILE_SYSTEM_DIR = 4;
  2371. {$EXTERNALSYM FILE_SYSTEM_DIR}
  2372. FILE_UNKNOWN = 5;
  2373. {$EXTERNALSYM FILE_UNKNOWN}
  2374. FILE_SYSTEM_NOT_SUPPORT = 6;
  2375. {$EXTERNALSYM FILE_SYSTEM_NOT_SUPPORT}
  2376. FILE_USER_DISALLOWED = 7;
  2377. {$EXTERNALSYM FILE_USER_DISALLOWED}
  2378. FILE_READ_ONLY = 8;
  2379. {$EXTERNALSYM FILE_READ_ONLY}
  2380. FILE_DIR_DISALLOWED = 9;
  2381. {$EXTERNALSYM FILE_DIR_DISALLOWED}
  2382. function FileEncryptionStatusA(lpFileName: LPCSTR; var lpStatus: DWORD): BOOL; stdcall;
  2383. {$EXTERNALSYM FileEncryptionStatusA}
  2384. function FileEncryptionStatusW(lpFileName: LPCWSTR; var lpStatus: DWORD): BOOL; stdcall;
  2385. {$EXTERNALSYM FileEncryptionStatusW}
  2386. function FileEncryptionStatus(lpFileName: LPCTSTR; var lpStatus: DWORD): BOOL; stdcall;
  2387. {$EXTERNALSYM FileEncryptionStatus}
  2388. //
  2389. // Currently defined recovery flags
  2390. //
  2391. const
  2392. EFS_USE_RECOVERY_KEYS = $1;
  2393. {$EXTERNALSYM EFS_USE_RECOVERY_KEYS}
  2394. type
  2395. PFE_EXPORT_FUNC = function(pbData: PBYTE; pvCallbackContext: PVOID;
  2396. ulLength: ULONG): DWORD; stdcall;
  2397. {$EXTERNALSYM PFE_EXPORT_FUNC}
  2398. PFE_IMPORT_FUNC = function(pbData: PBYTE; pvCallbackContext: PVOID;
  2399. ulLength: PULONG): DWORD; stdcall;
  2400. {$EXTERNALSYM PFE_IMPORT_FUNC}
  2401. //
  2402. // OpenRaw flag values
  2403. //
  2404. const
  2405. CREATE_FOR_IMPORT = 1;
  2406. {$EXTERNALSYM CREATE_FOR_IMPORT}
  2407. CREATE_FOR_DIR = 2;
  2408. {$EXTERNALSYM CREATE_FOR_DIR}
  2409. OVERWRITE_HIDDEN = 4;
  2410. {$EXTERNALSYM OVERWRITE_HIDDEN}
  2411. function OpenEncryptedFileRawA(lpFileName: LPCSTR; ulFlags: ULONG;
  2412. pvContext: PVOID): DWORD; stdcall;
  2413. {$EXTERNALSYM OpenEncryptedFileRawA}
  2414. function OpenEncryptedFileRawW(lpFileName: LPCWSTR; ulFlags: ULONG;
  2415. pvContext: PVOID): DWORD; stdcall;
  2416. {$EXTERNALSYM OpenEncryptedFileRawW}
  2417. function OpenEncryptedFileRaw(lpFileName: LPCTSTR; ulFlags: ULONG;
  2418. pvContext: PVOID): DWORD; stdcall;
  2419. {$EXTERNALSYM OpenEncryptedFileRaw}
  2420. function ReadEncryptedFileRaw(pfExportCallback: PFE_EXPORT_FUNC;
  2421. pvCallbackContext: PVOID; pvContext: PVOID): DWORD; stdcall;
  2422. {$EXTERNALSYM ReadEncryptedFileRaw}
  2423. function WriteEncryptedFileRaw(pfImportCallback: PFE_IMPORT_FUNC;
  2424. pvCallbackContext: PVOID; pvContext: PVOID): DWORD; stdcall;
  2425. {$EXTERNALSYM WriteEncryptedFileRaw}
  2426. procedure CloseEncryptedFileRaw(pvContext: PVOID); stdcall;
  2427. {$EXTERNALSYM CloseEncryptedFileRaw}
  2428. //
  2429. // _l Compat Functions
  2430. //
  2431. function lstrcmpA(lpString1, lpString2: LPCSTR): Integer; stdcall;
  2432. {$EXTERNALSYM lstrcmpA}
  2433. function lstrcmpW(lpString1, lpString2: LPCWSTR): Integer; stdcall;
  2434. {$EXTERNALSYM lstrcmpW}
  2435. function lstrcmp(lpString1, lpString2: LPCTSTR): Integer; stdcall;
  2436. {$EXTERNALSYM lstrcmp}
  2437. function lstrcmpiA(lpString1, lpString2: LPCSTR): Integer; stdcall;
  2438. {$EXTERNALSYM lstrcmpiA}
  2439. function lstrcmpiW(lpString1, lpString2: LPCWSTR): Integer; stdcall;
  2440. {$EXTERNALSYM lstrcmpiW}
  2441. function lstrcmpi(lpString1, lpString2: LPCTSTR): Integer; stdcall;
  2442. {$EXTERNALSYM lstrcmpi}
  2443. function lstrcpynA(lpString1: LPSTR; lpString2: LPCSTR; iMaxLength: Integer): LPSTR; stdcall;
  2444. {$EXTERNALSYM lstrcpynA}
  2445. function lstrcpynW(lpString1: LPWSTR; lpString2: LPCWSTR; iMaxLength: Integer): LPWSTR; stdcall;
  2446. {$EXTERNALSYM lstrcpynW}
  2447. function lstrcpyn(lpString1: LPTSTR; lpString2: LPCTSTR; iMaxLength: Integer): LPTSTR; stdcall;
  2448. {$EXTERNALSYM lstrcpyn}
  2449. function lstrcpyA(lpString1: LPSTR; lpString2: LPCSTR): LPSTR; stdcall;
  2450. {$EXTERNALSYM lstrcpyA}
  2451. function lstrcpyW(lpString1: LPWSTR; lpString2: LPCWSTR): LPWSTR; stdcall;
  2452. {$EXTERNALSYM lstrcpyW}
  2453. function lstrcpy(lpString1: LPTSTR; lpString2: LPCTSTR): LPTSTR; stdcall;
  2454. {$EXTERNALSYM lstrcpy}
  2455. function lstrcatA(lpString1: LPSTR; lpString2: LPCSTR): LPSTR; stdcall;
  2456. {$EXTERNALSYM lstrcatA}
  2457. function lstrcatW(lpString1: LPWSTR; lpString2: LPCWSTR): LPWSTR; stdcall;
  2458. {$EXTERNALSYM lstrcatW}
  2459. function lstrcat(lpString1: LPTSTR; lpString2: LPCTSTR): LPTSTR; stdcall;
  2460. {$EXTERNALSYM lstrcat}
  2461. function lstrlenA(lpString: LPCSTR): Integer; stdcall;
  2462. {$EXTERNALSYM lstrlenA}
  2463. function lstrlenW(lpString: LPCWSTR): Integer; stdcall;
  2464. {$EXTERNALSYM lstrlenW}
  2465. function lstrlen(lpString: LPCTSTR): Integer; stdcall;
  2466. {$EXTERNALSYM lstrlen}
  2467. function OpenFile(lpFileName: LPCSTR; var lpReOpenBuff: OFSTRUCT; uStyle: UINT): HFILE; stdcall;
  2468. {$EXTERNALSYM OpenFile}
  2469. function _lopen(lpPathName: LPCSTR; iReadWrite: Integer): HFILE; stdcall;
  2470. {$EXTERNALSYM _lopen}
  2471. function _lcreat(lpPathName: LPCSTR; iAttribute: Integer): HFILE; stdcall;
  2472. {$EXTERNALSYM _lcreat}
  2473. function _lread(hFile: HFILE; lpBuffer: LPVOID; uBytes: UINT): UINT; stdcall;
  2474. {$EXTERNALSYM _lread}
  2475. function _lwrite(hFile: HFILE; lpBuffer: LPCSTR; uBytes: UINT): UINT; stdcall;
  2476. {$EXTERNALSYM _lwrite}
  2477. function _hread(hFile: HFILE; lpBuffer: LPVOID; lBytes: Longint): Longint; stdcall;
  2478. {$EXTERNALSYM _hread}
  2479. function _hwrite(hFile: HFILE; lpBuffer: LPCSTR; lBytes: Longint): Longint; stdcall;
  2480. {$EXTERNALSYM _hwrite}
  2481. function _lclose(hFile: HFILE): HFILE; stdcall;
  2482. {$EXTERNALSYM _lclose}
  2483. function _llseek(hFile: HFILE; lOffset: LONG; iOrigin: Integer): LONG; stdcall;
  2484. {$EXTERNALSYM _llseek}
  2485. function IsTextUnicode(lpBuffer: LPVOID; cb: Integer; lpi: LPINT): BOOL; stdcall;
  2486. {$EXTERNALSYM IsTextUnicode}
  2487. type
  2488. PFLS_CALLBACK_FUNCTION = procedure(lpFlsData: PVOID); stdcall;
  2489. {$EXTERNALSYM PFLS_CALLBACK_FUNCTION}
  2490. TFlsCallbackFunction = PFLS_CALLBACK_FUNCTION;
  2491. const
  2492. FLS_OUT_OF_INDEXES = DWORD($FFFFFFFF);
  2493. {$EXTERNALSYM FLS_OUT_OF_INDEXES}
  2494. function FlsAlloc(lpCallback: PFLS_CALLBACK_FUNCTION): DWORD; stdcall;
  2495. {$EXTERNALSYM FlsAlloc}
  2496. function FlsGetValue(dwFlsIndex: DWORD): DWORD; stdcall;
  2497. {$EXTERNALSYM FlsGetValue}
  2498. function FlsSetValue(dwFlsIndex: DWORD; lpFlsData: PVOID): DWORD; stdcall;
  2499. {$EXTERNALSYM FlsSetValue}
  2500. function FlsFree(dwFlsIndex: DWORD): DWORD; stdcall;
  2501. {$EXTERNALSYM FlsFree}
  2502. const
  2503. TLS_OUT_OF_INDEXES = DWORD($FFFFFFFF);
  2504. {$EXTERNALSYM TLS_OUT_OF_INDEXES}
  2505. function TlsAlloc: DWORD; stdcall;
  2506. {$EXTERNALSYM TlsAlloc}
  2507. function TlsGetValue(dwTlsIndex: DWORD): LPVOID; stdcall;
  2508. {$EXTERNALSYM TlsGetValue}
  2509. function TlsSetValue(dwTlsIndex: DWORD; lpTlsValue: LPVOID): BOOL; stdcall;
  2510. {$EXTERNALSYM TlsSetValue}
  2511. function TlsFree(dwTlsIndex: DWORD): BOOL; stdcall;
  2512. {$EXTERNALSYM TlsFree}
  2513. type
  2514. LPOVERLAPPED_COMPLETION_ROUTINE = procedure(dwErrorCode: DWORD;
  2515. dwNumberOfBytesTransfered: DWORD; lpOverlapped: LPOVERLAPPED); stdcall;
  2516. {$EXTERNALSYM LPOVERLAPPED_COMPLETION_ROUTINE}
  2517. TOverlappedCompletionRoutine = LPOVERLAPPED_COMPLETION_ROUTINE;
  2518. function SleepEx(dwMilliseconds: DWORD; bAlertable: BOOL): DWORD; stdcall;
  2519. {$EXTERNALSYM SleepEx}
  2520. function WaitForSingleObjectEx(hHandle: HANDLE; dwMilliseconds: DWORD;
  2521. bAlertable: BOOL): DWORD; stdcall;
  2522. {$EXTERNALSYM WaitForSingleObjectEx}
  2523. function WaitForMultipleObjectsEx(nCount: DWORD; lpHandles: PHANDLE;
  2524. bWaitAll: BOOL; dwMilliseconds: DWORD; bAlertable: BOOL): DWORD; stdcall;
  2525. {$EXTERNALSYM WaitForMultipleObjectsEx}
  2526. function SignalObjectAndWait(hObjectToSignal: HANDLE; hObjectToWaitOn: HANDLE;
  2527. dwMilliseconds: DWORD; bAlertable: BOOL): DWORD; stdcall;
  2528. {$EXTERNALSYM SignalObjectAndWait}
  2529. function ReadFileEx(hFile: HANDLE; lpBuffer: LPVOID; nNumberOfBytesToRead: DWORD;
  2530. lpOverlapped: LPOVERLAPPED; lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE): BOOL; stdcall;
  2531. {$EXTERNALSYM ReadFileEx}
  2532. function WriteFileEx(hFile: HANDLE; lpBuffer: LPCVOID; nNumberOfBytesToWrite: DWORD;
  2533. lpOverlapped: LPOVERLAPPED; lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE): BOOL; stdcall;
  2534. {$EXTERNALSYM WriteFileEx}
  2535. function BackupRead(hFile: HANDLE; lpBuffer: LPBYTE;
  2536. nNumberOfBytesToRead: DWORD; var lpNumberOfBytesRead: DWORD;
  2537. bAbort, bProcessSecurity: BOOL; var lpContext: LPVOID): BOOL; stdcall;
  2538. {$EXTERNALSYM BackupRead}
  2539. function BackupSeek(hFile: HANDLE; dwLowBytesToSeek, dwHighBytesToSeek: DWORD;
  2540. var lpdwLowByteSeeked, lpdwHighByteSeeked: DWORD; var lpContext: LPVOID): BOOL; stdcall;
  2541. {$EXTERNALSYM BackupSeek}
  2542. function BackupWrite(hFile: HANDLE; lpBuffer: LPBYTE; nNumberOfBytesToWrite: DWORD;
  2543. var lpNumberOfBytesWritten: DWORD; bAbort, bProcessSecurity: BOOL;
  2544. var lpContext: LPVOID): BOOL; stdcall;
  2545. {$EXTERNALSYM BackupWrite}
  2546. //
  2547. // Stream id structure
  2548. //
  2549. type
  2550. LPWIN32_STREAM_ID = ^WIN32_STREAM_ID;
  2551. {$EXTERNALSYM LPWIN32_STREAM_ID}
  2552. _WIN32_STREAM_ID = record
  2553. dwStreamId: DWORD;
  2554. dwStreamAttributes: DWORD;
  2555. Size: TLargeInteger;
  2556. dwStreamNameSize: DWORD;
  2557. cStreamName: array [0..ANYSIZE_ARRAY - 1] of WCHAR;
  2558. end;
  2559. {$EXTERNALSYM _WIN32_STREAM_ID}
  2560. WIN32_STREAM_ID = _WIN32_STREAM_ID;
  2561. {$EXTERNALSYM WIN32_STREAM_ID}
  2562. TWin32StreamId = WIN32_STREAM_ID;
  2563. PWin32StreamId = LPWIN32_STREAM_ID;
  2564. //
  2565. // Stream Ids
  2566. //
  2567. const
  2568. BACKUP_INVALID = $00000000;
  2569. {$EXTERNALSYM BACKUP_INVALID}
  2570. BACKUP_DATA = $00000001;
  2571. {$EXTERNALSYM BACKUP_DATA}
  2572. BACKUP_EA_DATA = $00000002;
  2573. {$EXTERNALSYM BACKUP_EA_DATA}
  2574. BACKUP_SECURITY_DATA = $00000003;
  2575. {$EXTERNALSYM BACKUP_SECURITY_DATA}
  2576. BACKUP_ALTERNATE_DATA = $00000004;
  2577. {$EXTERNALSYM BACKUP_ALTERNATE_DATA}
  2578. BACKUP_LINK = $00000005;
  2579. {$EXTERNALSYM BACKUP_LINK}
  2580. BACKUP_PROPERTY_DATA = $00000006;
  2581. {$EXTERNALSYM BACKUP_PROPERTY_DATA}
  2582. BACKUP_OBJECT_ID = $00000007;
  2583. {$EXTERNALSYM BACKUP_OBJECT_ID}
  2584. BACKUP_REPARSE_DATA = $00000008;
  2585. {$EXTERNALSYM BACKUP_REPARSE_DATA}
  2586. BACKUP_SPARSE_BLOCK = $00000009;
  2587. {$EXTERNALSYM BACKUP_SPARSE_BLOCK}
  2588. //
  2589. // Stream Attributes
  2590. //
  2591. const
  2592. STREAM_NORMAL_ATTRIBUTE = $00000000;
  2593. {$EXTERNALSYM STREAM_NORMAL_ATTRIBUTE}
  2594. STREAM_MODIFIED_WHEN_READ = $00000001;
  2595. {$EXTERNALSYM STREAM_MODIFIED_WHEN_READ}
  2596. STREAM_CONTAINS_SECURITY = $00000002;
  2597. {$EXTERNALSYM STREAM_CONTAINS_SECURITY}
  2598. STREAM_CONTAINS_PROPERTIES = $00000004;
  2599. {$EXTERNALSYM STREAM_CONTAINS_PROPERTIES}
  2600. STREAM_SPARSE_ATTRIBUTE = $00000008;
  2601. {$EXTERNALSYM STREAM_SPARSE_ATTRIBUTE}
  2602. function ReadFileScatter(hFile: HANDLE; aSegmentArray: PFILE_SEGMENT_ELEMENT;
  2603. nNumberOfBytesToRead: DWORD; lpReserved: LPDWORD; lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2604. {$EXTERNALSYM ReadFileScatter}
  2605. function WriteFileGather(hFile: HANDLE; aSegmentArray: PFILE_SEGMENT_ELEMENT;
  2606. nNumberOfBytesToWrite: DWORD; lpReserved: LPDWORD; lpOverlapped: LPOVERLAPPED): BOOL; stdcall;
  2607. {$EXTERNALSYM WriteFileGather}
  2608. //
  2609. // Dual Mode API below this line. Dual Mode Structures also included.
  2610. //
  2611. const
  2612. STARTF_USESHOWWINDOW = $00000001;
  2613. {$EXTERNALSYM STARTF_USESHOWWINDOW}
  2614. STARTF_USESIZE = $00000002;
  2615. {$EXTERNALSYM STARTF_USESIZE}
  2616. STARTF_USEPOSITION = $00000004;
  2617. {$EXTERNALSYM STARTF_USEPOSITION}
  2618. STARTF_USECOUNTCHARS = $00000008;
  2619. {$EXTERNALSYM STARTF_USECOUNTCHARS}
  2620. STARTF_USEFILLATTRIBUTE = $00000010;
  2621. {$EXTERNALSYM STARTF_USEFILLATTRIBUTE}
  2622. STARTF_RUNFULLSCREEN = $00000020; // ignored for non-x86 platforms
  2623. {$EXTERNALSYM STARTF_RUNFULLSCREEN}
  2624. STARTF_FORCEONFEEDBACK = $00000040;
  2625. {$EXTERNALSYM STARTF_FORCEONFEEDBACK}
  2626. STARTF_FORCEOFFFEEDBACK = $00000080;
  2627. {$EXTERNALSYM STARTF_FORCEOFFFEEDBACK}
  2628. STARTF_USESTDHANDLES = $00000100;
  2629. {$EXTERNALSYM STARTF_USESTDHANDLES}
  2630. STARTF_USEHOTKEY = $00000200;
  2631. {$EXTERNALSYM STARTF_USEHOTKEY}
  2632. type
  2633. LPSTARTUPINFOA = ^STARTUPINFOA;
  2634. {$EXTERNALSYM LPSTARTUPINFOA}
  2635. _STARTUPINFOA = record
  2636. cb: DWORD;
  2637. lpReserved: LPSTR;
  2638. lpDesktop: LPSTR;
  2639. lpTitle: LPSTR;
  2640. dwX: DWORD;
  2641. dwY: DWORD;
  2642. dwXSize: DWORD;
  2643. dwYSize: DWORD;
  2644. dwXCountChars: DWORD;
  2645. dwYCountChars: DWORD;
  2646. dwFillAttribute: DWORD;
  2647. dwFlags: DWORD;
  2648. wShowWindow: WORD;
  2649. cbReserved2: WORD;
  2650. lpReserved2: LPBYTE;
  2651. hStdInput: HANDLE;
  2652. hStdOutput: HANDLE;
  2653. hStdError: HANDLE;
  2654. end;
  2655. {$EXTERNALSYM _STARTUPINFOA}
  2656. STARTUPINFOA = _STARTUPINFOA;
  2657. {$EXTERNALSYM STARTUPINFOA}
  2658. TStartupInfoA = STARTUPINFOA;
  2659. PStartupInfoA = LPSTARTUPINFOA;
  2660. LPSTARTUPINFOW = ^STARTUPINFOW;
  2661. {$EXTERNALSYM LPSTARTUPINFOW}
  2662. _STARTUPINFOW = record
  2663. cb: DWORD;
  2664. lpReserved: LPWSTR;
  2665. lpDesktop: LPWSTR;
  2666. lpTitle: LPWSTR;
  2667. dwX: DWORD;
  2668. dwY: DWORD;
  2669. dwXSize: DWORD;
  2670. dwYSize: DWORD;
  2671. dwXCountChars: DWORD;
  2672. dwYCountChars: DWORD;
  2673. dwFillAttribute: DWORD;
  2674. dwFlags: DWORD;
  2675. wShowWindow: WORD;
  2676. cbReserved2: WORD;
  2677. lpReserved2: LPBYTE;
  2678. hStdInput: HANDLE;
  2679. hStdOutput: HANDLE;
  2680. hStdError: HANDLE;
  2681. end;
  2682. {$EXTERNALSYM _STARTUPINFOW}
  2683. STARTUPINFOW = _STARTUPINFOW;
  2684. {$EXTERNALSYM STARTUPINFOW}
  2685. TStartupInfoW = STARTUPINFOW;
  2686. PStartupInfoW = LPSTARTUPINFOW;
  2687. {$IFDEF UNICODE}
  2688. STARTUPINFO = STARTUPINFOW;
  2689. {$EXTERNALSYM STARTUPINFO}
  2690. LPSTARTUPINFO = LPSTARTUPINFOW;
  2691. {$EXTERNALSYM LPSTARTUPINFO}
  2692. TStartupInfo = TStartupInfoW;
  2693. PStartupInfo = PStartupInfoW;
  2694. {$ELSE}
  2695. STARTUPINFO = STARTUPINFOA;
  2696. {$EXTERNALSYM STARTUPINFO}
  2697. LPSTARTUPINFO = LPSTARTUPINFOA;
  2698. {$EXTERNALSYM LPSTARTUPINFO}
  2699. TStartupInfo = TStartupInfoA;
  2700. PStartupInfo = PStartupInfoA;
  2701. {$ENDIF UNICODE}
  2702. const
  2703. SHUTDOWN_NORETRY = $00000001;
  2704. {$EXTERNALSYM SHUTDOWN_NORETRY}
  2705. type
  2706. PWIN32_FIND_DATAA = ^WIN32_FIND_DATAA;
  2707. {$EXTERNALSYM PWIN32_FIND_DATAA}
  2708. _WIN32_FIND_DATAA = record
  2709. dwFileAttributes: DWORD;
  2710. ftCreationTime: FILETIME;
  2711. ftLastAccessTime: FILETIME;
  2712. ftLastWriteTime: FILETIME;
  2713. nFileSizeHigh: DWORD;
  2714. nFileSizeLow: DWORD;
  2715. dwReserved0: DWORD;
  2716. dwReserved1: DWORD;
  2717. cFileName: array [0..MAX_PATH - 1] of CHAR;
  2718. cAlternateFileName: array [0..13] of CHAR;
  2719. end;
  2720. {$EXTERNALSYM _WIN32_FIND_DATAA}
  2721. WIN32_FIND_DATAA = _WIN32_FIND_DATAA;
  2722. {$EXTERNALSYM WIN32_FIND_DATAA}
  2723. LPWIN32_FIND_DATAA = ^WIN32_FIND_DATAA;
  2724. {$EXTERNALSYM LPWIN32_FIND_DATAA}
  2725. TWin32FindDataA = WIN32_FIND_DATAA;
  2726. PWin32FindDataA = PWIN32_FIND_DATAA;
  2727. PWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;
  2728. {$EXTERNALSYM PWIN32_FIND_DATAW}
  2729. _WIN32_FIND_DATAW = record
  2730. dwFileAttributes: DWORD;
  2731. ftCreationTime: FILETIME;
  2732. ftLastAccessTime: FILETIME;
  2733. ftLastWriteTime: FILETIME;
  2734. nFileSizeHigh: DWORD;
  2735. nFileSizeLow: DWORD;
  2736. dwReserved0: DWORD;
  2737. dwReserved1: DWORD;
  2738. cFileName: array [0..MAX_PATH - 1] of WCHAR;
  2739. cAlternateFileName: array [0..13] of WCHAR;
  2740. end;
  2741. {$EXTERNALSYM _WIN32_FIND_DATAW}
  2742. WIN32_FIND_DATAW = _WIN32_FIND_DATAW;
  2743. {$EXTERNALSYM WIN32_FIND_DATAW}
  2744. LPWIN32_FIND_DATAW = ^WIN32_FIND_DATAW;
  2745. {$EXTERNALSYM LPWIN32_FIND_DATAW}
  2746. TWin32FindDataW = WIN32_FIND_DATAW;
  2747. PWin32FindDataW = PWIN32_FIND_DATAW;
  2748. {$IFDEF UNICODE}
  2749. WIN32_FIND_DATA = WIN32_FIND_DATAW;
  2750. {$EXTERNALSYM WIN32_FIND_DATA}
  2751. PWIN32_FIND_DATA = PWIN32_FIND_DATAW;
  2752. {$EXTERNALSYM PWIN32_FIND_DATA}
  2753. LPWIN32_FIND_DATA = LPWIN32_FIND_DATAW;
  2754. {$EXTERNALSYM LPWIN32_FIND_DATA}
  2755. TWin32FindData = TWin32FindDataW;
  2756. PWin32FindData = PWin32FindDataW;
  2757. {$ELSE}
  2758. WIN32_FIND_DATA = WIN32_FIND_DATAA;
  2759. {$EXTERNALSYM WIN32_FIND_DATA}
  2760. PWIN32_FIND_DATA = PWIN32_FIND_DATAA;
  2761. {$EXTERNALSYM PWIN32_FIND_DATA}
  2762. LPWIN32_FIND_DATA = LPWIN32_FIND_DATAA;
  2763. {$EXTERNALSYM LPWIN32_FIND_DATA}
  2764. TWin32FindData = TWin32FindDataA;
  2765. PWin32FindData = PWin32FindDataA;
  2766. {$ENDIF UNICODE}
  2767. LPWIN32_FILE_ATTRIBUTE_DATA = ^WIN32_FILE_ATTRIBUTE_DATA;
  2768. {$EXTERNALSYM LPWIN32_FILE_ATTRIBUTE_DATA}
  2769. _WIN32_FILE_ATTRIBUTE_DATA = record
  2770. dwFileAttributes: DWORD;
  2771. ftCreationTime: FILETIME;
  2772. ftLastAccessTime: FILETIME;
  2773. ftLastWriteTime: FILETIME;
  2774. nFileSizeHigh: DWORD;
  2775. nFileSizeLow: DWORD;
  2776. end;
  2777. {$EXTERNALSYM _WIN32_FILE_ATTRIBUTE_DATA}
  2778. WIN32_FILE_ATTRIBUTE_DATA = _WIN32_FILE_ATTRIBUTE_DATA;
  2779. {$EXTERNALSYM WIN32_FILE_ATTRIBUTE_DATA}
  2780. TWin32FileAttributeData = WIN32_FILE_ATTRIBUTE_DATA;
  2781. PWin32FileAttributeData = LPWIN32_FILE_ATTRIBUTE_DATA;
  2782. function CreateMutexA(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: BOOL; lpName: LPCSTR): HANDLE;
  2783. {$EXTERNALSYM CreateMutexA}
  2784. function CreateMutexW(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: BOOL; lpName: LPCWSTR): HANDLE;
  2785. {$EXTERNALSYM CreateMutexW}
  2786. function CreateMutex(lpMutexAttributes: LPSECURITY_ATTRIBUTES;
  2787. bInitialOwner: BOOL; lpName: LPCTSTR): HANDLE;
  2788. {$EXTERNALSYM CreateMutex}
  2789. function OpenMutexA(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCSTR): HANDLE; stdcall;
  2790. {$EXTERNALSYM OpenMutexA}
  2791. function OpenMutexW(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCWSTR): HANDLE; stdcall;
  2792. {$EXTERNALSYM OpenMutexW}
  2793. function OpenMutex(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCTSTR): HANDLE; stdcall;
  2794. {$EXTERNALSYM OpenMutex}
  2795. function CreateEventA(lpEventAttributes: LPSECURITY_ATTRIBUTES;
  2796. bManualReset, bInitialState: BOOL; lpName: LPCSTR): HANDLE; stdcall;
  2797. {$EXTERNALSYM CreateEventA}
  2798. function CreateEventW(lpEventAttributes: LPSECURITY_ATTRIBUTES;
  2799. bManualReset, bInitialState: BOOL; lpName: LPCWSTR): HANDLE; stdcall;
  2800. {$EXTERNALSYM CreateEventW}
  2801. function CreateEvent(lpEventAttributes: LPSECURITY_ATTRIBUTES;
  2802. bManualReset, bInitialState: BOOL; lpName: LPCTSTR): HANDLE; stdcall;
  2803. {$EXTERNALSYM CreateEvent}
  2804. function OpenEventA(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCSTR): HANDLE; stdcall;
  2805. {$EXTERNALSYM OpenEventA}
  2806. function OpenEventW(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCWSTR): HANDLE; stdcall;
  2807. {$EXTERNALSYM OpenEventW}
  2808. function OpenEvent(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCTSTR): HANDLE; stdcall;
  2809. {$EXTERNALSYM OpenEvent}
  2810. function CreateSemaphoreA(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES;
  2811. lInitialCount, lMaximumCount: LONG; lpName: LPCSTR): HANDLE; stdcall;
  2812. {$EXTERNALSYM CreateSemaphoreA}
  2813. function CreateSemaphoreW(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES;
  2814. lInitialCount, lMaximumCount: LONG; lpName: LPCWSTR): HANDLE; stdcall;
  2815. {$EXTERNALSYM CreateSemaphoreW}
  2816. function CreateSemaphore(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES;
  2817. lInitialCount, lMaximumCount: LONG; lpName: LPCTSTR): HANDLE; stdcall;
  2818. {$EXTERNALSYM CreateSemaphore}
  2819. function OpenSemaphoreA(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2820. lpName: LPCSTR): HANDLE; stdcall;
  2821. {$EXTERNALSYM OpenSemaphoreA}
  2822. function OpenSemaphoreW(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2823. lpName: LPCWSTR): HANDLE; stdcall;
  2824. {$EXTERNALSYM OpenSemaphoreW}
  2825. function OpenSemaphore(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2826. lpName: LPCTSTR): HANDLE; stdcall;
  2827. {$EXTERNALSYM OpenSemaphore}
  2828. type
  2829. PTIMERAPCROUTINE = procedure(lpArgToCompletionRoutine: LPVOID;
  2830. dwTimerLowValue, dwTimerHighValue: DWORD); stdcall;
  2831. {$EXTERNALSYM PTIMERAPCROUTINE}
  2832. TTimerApcRoutine = PTIMERAPCROUTINE;
  2833. function CreateWaitableTimerA(lpTimerAttributes: LPSECURITY_ATTRIBUTES;
  2834. bManualReset: BOOL; lpTimerName: LPCSTR): HANDLE; stdcall;
  2835. {$EXTERNALSYM CreateWaitableTimerA}
  2836. function CreateWaitableTimerW(lpTimerAttributes: LPSECURITY_ATTRIBUTES;
  2837. bManualReset: BOOL; lpTimerName: LPCWSTR): HANDLE; stdcall;
  2838. {$EXTERNALSYM CreateWaitableTimerW}
  2839. function CreateWaitableTimer(lpTimerAttributes: LPSECURITY_ATTRIBUTES;
  2840. bManualReset: BOOL; lpTimerName: LPCTSTR): HANDLE; stdcall;
  2841. {$EXTERNALSYM CreateWaitableTimer}
  2842. function OpenWaitableTimerA(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2843. lpTimerName: LPCSTR): HANDLE; stdcall;
  2844. {$EXTERNALSYM OpenWaitableTimerA}
  2845. function OpenWaitableTimerW(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2846. lpTimerName: LPCWSTR): HANDLE; stdcall;
  2847. {$EXTERNALSYM OpenWaitableTimerW}
  2848. function OpenWaitableTimer(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2849. lpTimerName: LPCTSTR): HANDLE; stdcall;
  2850. {$EXTERNALSYM OpenWaitableTimer}
  2851. function SetWaitableTimer(hTimer: HANDLE; var lpDueTime: LARGE_INTEGER;
  2852. lPeriod: LONG; pfnCompletionRoutine: PTIMERAPCROUTINE;
  2853. lpArgToCompletionRoutine: LPVOID; fResume: BOOL): BOOL; stdcall;
  2854. {$EXTERNALSYM SetWaitableTimer}
  2855. function CancelWaitableTimer(hTimer: HANDLE): BOOL; stdcall;
  2856. {$EXTERNALSYM CancelWaitableTimer}
  2857. function CreateFileMappingA(hFile: HANDLE; lpFileMappingAttributes: LPSECURITY_ATTRIBUTES;
  2858. flProtect, dwMaximumSizeHigh, dwMaximumSizeLow: DWORD; lpName: LPCSTR): HANDLE; stdcall;
  2859. {$EXTERNALSYM CreateFileMappingA}
  2860. function CreateFileMappingW(hFile: HANDLE; lpFileMappingAttributes: LPSECURITY_ATTRIBUTES;
  2861. flProtect, dwMaximumSizeHigh, dwMaximumSizeLow: DWORD; lpName: LPCWSTR): HANDLE; stdcall;
  2862. {$EXTERNALSYM CreateFileMappingW}
  2863. function CreateFileMapping(hFile: HANDLE; lpFileMappingAttributes: LPSECURITY_ATTRIBUTES;
  2864. flProtect, dwMaximumSizeHigh, dwMaximumSizeLow: DWORD; lpName: LPCTSTR): HANDLE; stdcall;
  2865. {$EXTERNALSYM CreateFileMapping}
  2866. function OpenFileMappingA(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2867. lpName: LPCSTR): HANDLE; stdcall;
  2868. {$EXTERNALSYM OpenFileMappingA}
  2869. function OpenFileMappingW(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2870. lpName: LPCWSTR): HANDLE; stdcall;
  2871. {$EXTERNALSYM OpenFileMappingW}
  2872. function OpenFileMapping(dwDesiredAccess: DWORD; bInheritHandle: BOOL;
  2873. lpName: LPCTSTR): HANDLE; stdcall;
  2874. {$EXTERNALSYM OpenFileMapping}
  2875. function GetLogicalDriveStringsA(nBufferLength: DWORD; lpBuffer: LPSTR): DWORD; stdcall;
  2876. {$EXTERNALSYM GetLogicalDriveStringsA}
  2877. function GetLogicalDriveStringsW(nBufferLength: DWORD; lpBuffer: LPWSTR): DWORD; stdcall;
  2878. {$EXTERNALSYM GetLogicalDriveStringsW}
  2879. function GetLogicalDriveStrings(nBufferLength: DWORD; lpBuffer: LPTSTR): DWORD; stdcall;
  2880. {$EXTERNALSYM GetLogicalDriveStrings}
  2881. type
  2882. _MEMORY_RESOURCE_NOTIFICATION_TYPE = (
  2883. LowMemoryResourceNotification,
  2884. HighMemoryResourceNotification);
  2885. {$EXTERNALSYM _MEMORY_RESOURCE_NOTIFICATION_TYPE}
  2886. MEMORY_RESOURCE_NOTIFICATION_TYPE = _MEMORY_RESOURCE_NOTIFICATION_TYPE;
  2887. {$EXTERNALSYM MEMORY_RESOURCE_NOTIFICATION_TYPE}
  2888. TMemoryResourceNotification = MEMORY_RESOURCE_NOTIFICATION_TYPE;
  2889. function CreateMemoryResourceNotification(NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE): HANDLE; stdcall;
  2890. {$EXTERNALSYM CreateMemoryResourceNotification}
  2891. function QueryMemoryResourceNotification(ResourceNotificationHandle: HANDLE;
  2892. ResourceState: BOOL): BOOL; stdcall;
  2893. {$EXTERNALSYM QueryMemoryResourceNotification}
  2894. function LoadLibraryA(lpLibFileName: LPCSTR): HMODULE; stdcall;
  2895. {$EXTERNALSYM LoadLibraryA}
  2896. function LoadLibraryW(lpLibFileName: LPCWSTR): HMODULE; stdcall;
  2897. {$EXTERNALSYM LoadLibraryW}
  2898. function LoadLibrary(lpLibFileName: LPCTSTR): HMODULE; stdcall;
  2899. {$EXTERNALSYM LoadLibrary}
  2900. function LoadLibraryExA(lpLibFileName: LPCSTR; hFile: HANDLE; dwFlags: DWORD): HMODULE; stdcall;
  2901. {$EXTERNALSYM LoadLibraryExA}
  2902. function LoadLibraryExW(lpLibFileName: LPCWSTR; hFile: HANDLE; dwFlags: DWORD): HMODULE; stdcall;
  2903. {$EXTERNALSYM LoadLibraryExW}
  2904. function LoadLibraryEx(lpLibFileName: LPCTSTR; hFile: HANDLE; dwFlags: DWORD): HMODULE; stdcall;
  2905. {$EXTERNALSYM LoadLibraryEx}
  2906. const
  2907. DONT_RESOLVE_DLL_REFERENCES = $00000001;
  2908. {$EXTERNALSYM DONT_RESOLVE_DLL_REFERENCES}
  2909. LOAD_LIBRARY_AS_DATAFILE = $00000002;
  2910. {$EXTERNALSYM LOAD_LIBRARY_AS_DATAFILE}
  2911. LOAD_WITH_ALTERED_SEARCH_PATH = $00000008;
  2912. {$EXTERNALSYM LOAD_WITH_ALTERED_SEARCH_PATH}
  2913. LOAD_IGNORE_CODE_AUTHZ_LEVEL = $00000010;
  2914. {$EXTERNALSYM LOAD_IGNORE_CODE_AUTHZ_LEVEL}
  2915. function GetModuleFileNameA(hModule: HMODULE; lpFilename: LPSTR; nSize: DWORD): DWORD; stdcall;
  2916. {$EXTERNALSYM GetModuleFileNameA}
  2917. function GetModuleFileNameW(hModule: HMODULE; lpFilename: LPWSTR; nSize: DWORD): DWORD; stdcall;
  2918. {$EXTERNALSYM GetModuleFileNameW}
  2919. function GetModuleFileName(hModule: HMODULE; lpFilename: LPTSTR; nSize: DWORD): DWORD; stdcall;
  2920. {$EXTERNALSYM GetModuleFileName}
  2921. function GetModuleHandleA(lpModuleName: LPCSTR): HMODULE; stdcall;
  2922. {$EXTERNALSYM GetModuleHandleA}
  2923. function GetModuleHandleW(lpModuleName: LPCWSTR): HMODULE; stdcall;
  2924. {$EXTERNALSYM GetModuleHandleW}
  2925. function GetModuleHandle(lpModuleName: LPCTSTR): HMODULE; stdcall;
  2926. {$EXTERNALSYM GetModuleHandle}
  2927. const
  2928. GET_MODULE_HANDLE_EX_FLAG_PIN = $00000001;
  2929. {$EXTERNALSYM GET_MODULE_HANDLE_EX_FLAG_PIN}
  2930. GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = $00000002;
  2931. {$EXTERNALSYM GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT}
  2932. GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = $00000004;
  2933. {$EXTERNALSYM GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS}
  2934. type
  2935. PGET_MODULE_HANDLE_EXA = function(dwFlags: DWORD; lpModuleName: LPCSTR; var phModule: HMODULE): BOOL; stdcall;
  2936. {$EXTERNALSYM PGET_MODULE_HANDLE_EXA}
  2937. PGET_MODULE_HANDLE_EXW = function(dwFlags: DWORD; lpModuleName: LPCWSTR; var phModule: HMODULE): BOOL; stdcall;
  2938. {$EXTERNALSYM PGET_MODULE_HANDLE_EXW}
  2939. {$IFDEF UNICODE}
  2940. PGET_MODULE_HANDLE_EX = PGET_MODULE_HANDLE_EXW;
  2941. {$EXTERNALSYM PGET_MODULE_HANDLE_EX}
  2942. {$ELSE}
  2943. PGET_MODULE_HANDLE_EX = PGET_MODULE_HANDLE_EXA;
  2944. {$EXTERNALSYM PGET_MODULE_HANDLE_EX}
  2945. {$ENDIF UNICODE}
  2946. function GetModuleHandleExA(dwFlags: DWORD; lpModuleName: LPCSTR; var phModule: HMODULE): BOOL; stdcall;
  2947. {$EXTERNALSYM GetModuleHandleExA}
  2948. function GetModuleHandleExW(dwFlags: DWORD; lpModuleName: LPCWSTR; var phModule: HMODULE): BOOL; stdcall;
  2949. {$EXTERNALSYM GetModuleHandleExW}
  2950. function GetModuleHandleEx(dwFlags: DWORD; lpModuleName: LPCTSTR; var phModule: HMODULE): BOOL; stdcall;
  2951. {$EXTERNALSYM GetModuleHandleEx}
  2952. function NeedCurrentDirectoryForExePathA(ExeName: LPCSTR): BOOL; stdcall;
  2953. {$EXTERNALSYM NeedCurrentDirectoryForExePathA}
  2954. function NeedCurrentDirectoryForExePathW(ExeName: LPCWSTR): BOOL; stdcall;
  2955. {$EXTERNALSYM NeedCurrentDirectoryForExePathW}
  2956. function NeedCurrentDirectoryForExePath(ExeName: LPCTSTR): BOOL; stdcall;
  2957. {$EXTERNALSYM NeedCurrentDirectoryForExePath}
  2958. function CreateProcessA(lpApplicationName: LPCSTR; lpCommandLine: LPSTR;
  2959. lpProcessAttributes, lpThreadAttributes: LPSECURITY_ATTRIBUTES;
  2960. bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: LPVOID;
  2961. lpCurrentDirectory: LPCSTR; const lpStartupInfo: STARTUPINFOA;
  2962. var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
  2963. {$EXTERNALSYM CreateProcessA}
  2964. function CreateProcessW(lpApplicationName: LPCWSTR; lpCommandLine: LPWSTR;
  2965. lpProcessAttributes, lpThreadAttributes: LPSECURITY_ATTRIBUTES;
  2966. bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: LPVOID;
  2967. lpCurrentDirectory: LPCWSTR; const lpStartupInfo: STARTUPINFOW;
  2968. var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
  2969. {$EXTERNALSYM CreateProcessW}
  2970. function CreateProcess(lpApplicationName: LPCTSTR; lpCommandLine: LPTSTR;
  2971. lpProcessAttributes, lpThreadAttributes: LPSECURITY_ATTRIBUTES;
  2972. bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: LPVOID;
  2973. lpCurrentDirectory: LPCTSTR; const lpStartupInfo: STARTUPINFO;
  2974. var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
  2975. {$EXTERNALSYM CreateProcess}
  2976. function SetProcessShutdownParameters(dwLevel, dwFlags: DWORD): BOOL; stdcall;
  2977. {$EXTERNALSYM SetProcessShutdownParameters}
  2978. function GetProcessShutdownParameters(var lpdwLevel, lpdwFlags: DWORD): BOOL; stdcall;
  2979. {$EXTERNALSYM GetProcessShutdownParameters}
  2980. function GetProcessVersion(ProcessId: DWORD): DWORD; stdcall;
  2981. {$EXTERNALSYM GetProcessVersion}
  2982. procedure FatalAppExitA(uAction: UINT; lpMessageText: LPCSTR); stdcall;
  2983. {$EXTERNALSYM FatalAppExitA}
  2984. procedure FatalAppExitW(uAction: UINT; lpMessageText: LPCWSTR); stdcall;
  2985. {$EXTERNALSYM FatalAppExitW}
  2986. procedure FatalAppExit(uAction: UINT; lpMessageText: LPCTSTR); stdcall;
  2987. {$EXTERNALSYM FatalAppExit}
  2988. procedure GetStartupInfoA(var lpStartupInfo: STARTUPINFOA); stdcall;
  2989. {$EXTERNALSYM GetStartupInfoA}
  2990. procedure GetStartupInfoW(var lpStartupInfo: STARTUPINFOW); stdcall;
  2991. {$EXTERNALSYM GetStartupInfoW}
  2992. procedure GetStartupInfo(var lpStartupInfo: STARTUPINFO); stdcall;
  2993. {$EXTERNALSYM GetStartupInfo}
  2994. function GetCommandLineA: LPSTR; stdcall;
  2995. {$EXTERNALSYM GetCommandLineA}
  2996. function GetCommandLineW: LPWSTR; stdcall;
  2997. {$EXTERNALSYM GetCommandLineW}
  2998. function GetCommandLine: LPTSTR; stdcall;
  2999. {$EXTERNALSYM GetCommandLine}
  3000. function GetEnvironmentVariableA(lpName: LPCSTR; lpBuffer: LPSTR; nSize: DWORD): DWORD; stdcall;
  3001. {$EXTERNALSYM GetEnvironmentVariableA}
  3002. function GetEnvironmentVariableW(lpName: LPCWSTR; lpBuffer: LPWSTR; nSize: DWORD): DWORD; stdcall;
  3003. {$EXTERNALSYM GetEnvironmentVariableW}
  3004. function GetEnvironmentVariable(lpName: LPCTSTR; lpBuffer: LPTSTR; nSize: DWORD): DWORD; stdcall;
  3005. {$EXTERNALSYM GetEnvironmentVariable}
  3006. function SetEnvironmentVariableA(lpName, lpValue: LPCSTR): BOOL; stdcall;
  3007. {$EXTERNALSYM SetEnvironmentVariableA}
  3008. function SetEnvironmentVariableW(lpName, lpValue: LPCWSTR): BOOL; stdcall;
  3009. {$EXTERNALSYM SetEnvironmentVariableW}
  3010. function SetEnvironmentVariable(lpName, lpValue: LPCTSTR): BOOL; stdcall;
  3011. {$EXTERNALSYM SetEnvironmentVariable}
  3012. function ExpandEnvironmentStringsA(lpSrc: LPCSTR; lpDst: LPSTR; nSize: DWORD): DWORD; stdcall;
  3013. {$EXTERNALSYM ExpandEnvironmentStringsA}
  3014. function ExpandEnvironmentStringsW(lpSrc: LPCWSTR; lpDst: LPWSTR; nSize: DWORD): DWORD; stdcall;
  3015. {$EXTERNALSYM ExpandEnvironmentStringsW}
  3016. function ExpandEnvironmentStrings(lpSrc: LPCTSTR; lpDst: LPTSTR; nSize: DWORD): DWORD; stdcall;
  3017. {$EXTERNALSYM ExpandEnvironmentStrings}
  3018. function GetFirmwareEnvironmentVariableA(lpName, lpGuid: LPCSTR; pBuffer: PVOID;
  3019. nSize: DWORD): DWORD; stdcall;
  3020. {$EXTERNALSYM GetFirmwareEnvironmentVariableA}
  3021. function GetFirmwareEnvironmentVariableW(lpName, lpGuid: LPCWSTR; pBuffer: PVOID;
  3022. nSize: DWORD): DWORD; stdcall;
  3023. {$EXTERNALSYM GetFirmwareEnvironmentVariableW}
  3024. function GetFirmwareEnvironmentVariable(lpName, lpGuid: LPCTSTR; pBuffer: PVOID;
  3025. nSize: DWORD): DWORD; stdcall;
  3026. {$EXTERNALSYM GetFirmwareEnvironmentVariable}
  3027. function SetFirmwareEnvironmentVariableA(lpName, lpGuid: LPCSTR; pValue: PVOID;
  3028. nSize: DWORD): BOOL; stdcall;
  3029. {$EXTERNALSYM SetFirmwareEnvironmentVariableA}
  3030. function SetFirmwareEnvironmentVariableW(lpName, lpGuid: LPCWSTR; pValue: PVOID;
  3031. nSize: DWORD): BOOL; stdcall;
  3032. {$EXTERNALSYM SetFirmwareEnvironmentVariableW}
  3033. function SetFirmwareEnvironmentVariable(lpName, lpGuid: LPCTSTR; pValue: PVOID;
  3034. nSize: DWORD): BOOL; stdcall;
  3035. {$EXTERNALSYM SetFirmwareEnvironmentVariable}
  3036. procedure OutputDebugStringA(lpOutputString: LPCSTR); stdcall;
  3037. {$EXTERNALSYM OutputDebugStringA}
  3038. procedure OutputDebugStringW(lpOutputString: LPCWSTR); stdcall;
  3039. {$EXTERNALSYM OutputDebugStringW}
  3040. procedure OutputDebugString(lpOutputString: LPCTSTR); stdcall;
  3041. {$EXTERNALSYM OutputDebugString}
  3042. function FindResourceA(hModule: HMODULE; lpName, lpType: LPCSTR): HRSRC; stdcall;
  3043. {$EXTERNALSYM FindResourceA}
  3044. function FindResourceW(hModule: HMODULE; lpName, lpType: LPCWSTR): HRSRC; stdcall;
  3045. {$EXTERNALSYM FindResourceW}
  3046. function FindResource(hModule: HMODULE; lpName, lpType: LPCTSTR): HRSRC; stdcall;
  3047. {$EXTERNALSYM FindResource}
  3048. function FindResourceExA(hModule: HMODULE; lpType, lpName: LPCSTR; wLanguage: WORD): HRSRC; stdcall;
  3049. {$EXTERNALSYM FindResourceExA}
  3050. function FindResourceExW(hModule: HMODULE; lpType, lpName: LPCWSTR; wLanguage: WORD): HRSRC; stdcall;
  3051. {$EXTERNALSYM FindResourceExW}
  3052. function FindResourceEx(hModule: HMODULE; lpType, lpName: LPCTSTR; wLanguage: WORD): HRSRC; stdcall;
  3053. {$EXTERNALSYM FindResourceEx}
  3054. type
  3055. ENUMRESTYPEPROCA = function(hModule: HMODULE; lpType: LPSTR; lParam: LONG_PTR): BOOL; stdcall;
  3056. {$EXTERNALSYM ENUMRESTYPEPROCA}
  3057. ENUMRESTYPEPROCW = function(hModule: HMODULE; lpType: LPWSTR; lParam: LONG_PTR): BOOL; stdcall;
  3058. {$EXTERNALSYM ENUMRESTYPEPROCW}
  3059. ENUMRESTYPEPROC = function(hModule: HMODULE; lpType: LPTSTR; lParam: LONG_PTR): BOOL; stdcall;
  3060. {$EXTERNALSYM ENUMRESTYPEPROC}
  3061. TEnumResTypeProcA = ENUMRESTYPEPROCA;
  3062. TEnumResTypeProcW = ENUMRESTYPEPROCW;
  3063. TEnumResTypeProc = ENUMRESTYPEPROC;
  3064. ENUMRESNAMEPROCA = function(hModule: HMODULE; lpType: LPCSTR; lpName: LPSTR;
  3065. lParam: LONG_PTR): BOOL; stdcall;
  3066. {$EXTERNALSYM ENUMRESNAMEPROCA}
  3067. ENUMRESNAMEPROCW = function(hModule: HMODULE; lpType: LPCWSTR; lpName: LPWSTR;
  3068. lParam: LONG_PTR): BOOL; stdcall;
  3069. {$EXTERNALSYM ENUMRESNAMEPROCW}
  3070. ENUMRESNAMEPROC = function(hModule: HMODULE; lpType: LPCTSTR; lpName: LPTSTR;
  3071. lParam: LONG_PTR): BOOL; stdcall;
  3072. {$EXTERNALSYM ENUMRESNAMEPROC}
  3073. TEnumResNameProcA = ENUMRESNAMEPROCA;
  3074. TEnumResNameProcW = ENUMRESNAMEPROCW;
  3075. TEnumResNameProc = ENUMRESNAMEPROC;
  3076. ENUMRESLANGPROCA = function(hModule: HMODULE; lpType, lpName: LPCSTR;
  3077. wLanguage: WORD; lParam: LONG_PTR): BOOL; stdcall;
  3078. {$EXTERNALSYM ENUMRESLANGPROCA}
  3079. ENUMRESLANGPROCW = function(hModule: HMODULE; lpType, lpName: LPCWSTR;
  3080. wLanguage: WORD; lParam: LONG_PTR): BOOL; stdcall;
  3081. {$EXTERNALSYM ENUMRESLANGPROCW}
  3082. ENUMRESLANGPROC = function(hModule: HMODULE; lpType, lpName: LPCTSTR;
  3083. wLanguage: WORD; lParam: LONG_PTR): BOOL; stdcall;
  3084. {$EXTERNALSYM ENUMRESLANGPROC}
  3085. TEnumResLangProcA = ENUMRESLANGPROCA;
  3086. TEnumResLangProcW = ENUMRESLANGPROCW;
  3087. TEnumResLangProc = ENUMRESLANGPROC;
  3088. function EnumResourceTypesA(hModule: HMODULE; lpEnumFunc: ENUMRESTYPEPROCA;
  3089. lParam: LONG_PTR): BOOL; stdcall;
  3090. {$EXTERNALSYM EnumResourceTypesA}
  3091. function EnumResourceTypesW(hModule: HMODULE; lpEnumFunc: ENUMRESTYPEPROCW;
  3092. lParam: LONG_PTR): BOOL; stdcall;
  3093. {$EXTERNALSYM EnumResourceTypesW}
  3094. function EnumResourceTypes(hModule: HMODULE; lpEnumFunc: ENUMRESTYPEPROC;
  3095. lParam: LONG_PTR): BOOL; stdcall;
  3096. {$EXTERNALSYM EnumResourceTypes}
  3097. function EnumResourceNamesA(hModule: HMODULE; lpType: LPCSTR;
  3098. lpEnumFunc: ENUMRESNAMEPROCA; lParam: LONG_PTR): BOOL; stdcall;
  3099. {$EXTERNALSYM EnumResourceNamesA}
  3100. function EnumResourceNamesW(hModule: HMODULE; lpType: LPCWSTR;
  3101. lpEnumFunc: ENUMRESNAMEPROCW; lParam: LONG_PTR): BOOL; stdcall;
  3102. {$EXTERNALSYM EnumResourceNamesW}
  3103. function EnumResourceNames(hModule: HMODULE; lpType: LPCTSTR;
  3104. lpEnumFunc: ENUMRESNAMEPROC; lParam: LONG_PTR): BOOL; stdcall;
  3105. {$EXTERNALSYM EnumResourceNames}
  3106. function EnumResourceLanguagesA(hModule: HMODULE; lpType, lpName: LPCSTR;
  3107. lpEnumFunc: ENUMRESLANGPROCA; lParam: LONG_PTR): BOOL; stdcall;
  3108. {$EXTERNALSYM EnumResourceLanguagesA}
  3109. function EnumResourceLanguagesW(hModule: HMODULE; lpType, lpName: LPCWSTR;
  3110. lpEnumFunc: ENUMRESLANGPROCW; lParam: LONG_PTR): BOOL; stdcall;
  3111. {$EXTERNALSYM EnumResourceLanguagesW}
  3112. function EnumResourceLanguages(hModule: HMODULE; lpType, lpName: LPCTSTR;
  3113. lpEnumFunc: ENUMRESLANGPROC; lParam: LONG_PTR): BOOL; stdcall;
  3114. {$EXTERNALSYM EnumResourceLanguages}
  3115. function BeginUpdateResourceA(pFileName: LPCSTR; bDeleteExistingResources: BOOL): HANDLE; stdcall;
  3116. {$EXTERNALSYM BeginUpdateResourceA}
  3117. function BeginUpdateResourceW(pFileName: LPCWSTR; bDeleteExistingResources: BOOL): HANDLE; stdcall;
  3118. {$EXTERNALSYM BeginUpdateResourceW}
  3119. function BeginUpdateResource(pFileName: LPCTSTR; bDeleteExistingResources: BOOL): HANDLE; stdcall;
  3120. {$EXTERNALSYM BeginUpdateResource}
  3121. function UpdateResourceA(hUpdate: HANDLE; lpType, lpName: LPCSTR;
  3122. wLanguage: WORD; lpData: LPVOID; cbData: DWORD): BOOL; stdcall;
  3123. {$EXTERNALSYM UpdateResourceA}
  3124. function UpdateResourceW(hUpdate: HANDLE; lpType, lpName: LPCWSTR;
  3125. wLanguage: WORD; lpData: LPVOID; cbData: DWORD): BOOL; stdcall;
  3126. {$EXTERNALSYM UpdateResourceW}
  3127. function UpdateResource(hUpdate: HANDLE; lpType, lpName: LPCTSTR;
  3128. wLanguage: WORD; lpData: LPVOID; cbData: DWORD): BOOL; stdcall;
  3129. {$EXTERNALSYM UpdateResource}
  3130. function EndUpdateResourceA(hUpdate: HANDLE; fDiscard: BOOL): BOOL; stdcall;
  3131. {$EXTERNALSYM EndUpdateResourceA}
  3132. function EndUpdateResourceW(hUpdate: HANDLE; fDiscard: BOOL): BOOL; stdcall;
  3133. {$EXTERNALSYM EndUpdateResourceW}
  3134. function EndUpdateResource(hUpdate: HANDLE; fDiscard: BOOL): BOOL; stdcall;
  3135. {$EXTERNALSYM EndUpdateResource}
  3136. function GlobalAddAtomA(lpString: LPCSTR): ATOM; stdcall;
  3137. {$EXTERNALSYM GlobalAddAtomA}
  3138. function GlobalAddAtomW(lpString: LPCWSTR): ATOM; stdcall;
  3139. {$EXTERNALSYM GlobalAddAtomW}
  3140. function GlobalAddAtom(lpString: LPCTSTR): ATOM; stdcall;
  3141. {$EXTERNALSYM GlobalAddAtom}
  3142. function GlobalFindAtomA(lpString: LPCSTR): ATOM; stdcall;
  3143. {$EXTERNALSYM GlobalFindAtomA}
  3144. function GlobalFindAtomW(lpString: LPCWSTR): ATOM; stdcall;
  3145. {$EXTERNALSYM GlobalFindAtomW}
  3146. function GlobalFindAtom(lpString: LPCTSTR): ATOM; stdcall;
  3147. {$EXTERNALSYM GlobalFindAtom}
  3148. function GlobalGetAtomNameA(nAtom: ATOM; lpBuffer: LPSTR; nSize: Integer): UINT; stdcall;
  3149. {$EXTERNALSYM GlobalGetAtomNameA}
  3150. function GlobalGetAtomNameW(nAtom: ATOM; lpBuffer: LPWSTR; nSize: Integer): UINT; stdcall;
  3151. {$EXTERNALSYM GlobalGetAtomNameW}
  3152. function GlobalGetAtomName(nAtom: ATOM; lpBuffer: LPTSTR; nSize: Integer): UINT; stdcall;
  3153. {$EXTERNALSYM GlobalGetAtomName}
  3154. function AddAtomA(lpString: LPCSTR): ATOM; stdcall;
  3155. {$EXTERNALSYM AddAtomA}
  3156. function AddAtomW(lpString: LPCWSTR): ATOM; stdcall;
  3157. {$EXTERNALSYM AddAtomW}
  3158. function AddAtom(lpString: LPCTSTR): ATOM; stdcall;
  3159. {$EXTERNALSYM AddAtom}
  3160. function FindAtomA(lpString: LPCSTR): ATOM; stdcall;
  3161. {$EXTERNALSYM FindAtomA}
  3162. function FindAtomW(lpString: LPCWSTR): ATOM; stdcall;
  3163. {$EXTERNALSYM FindAtomW}
  3164. function FindAtom(lpString: LPCTSTR): ATOM; stdcall;
  3165. {$EXTERNALSYM FindAtom}
  3166. function GetAtomNameA(nAtom: ATOM; lpBuffer: LPSTR; nSize: Integer): UINT; stdcall;
  3167. {$EXTERNALSYM GetAtomNameA}
  3168. function GetAtomNameW(nAtom: ATOM; lpBuffer: LPWSTR; nSize: Integer): UINT; stdcall;
  3169. {$EXTERNALSYM GetAtomNameW}
  3170. function GetAtomName(nAtom: ATOM; lpBuffer: LPTSTR; nSize: Integer): UINT; stdcall;
  3171. {$EXTERNALSYM GetAtomName}
  3172. function GetProfileIntA(lpAppName, lpKeyName: LPCSTR; nDefault: Integer): UINT; stdcall;
  3173. {$EXTERNALSYM GetProfileIntA}
  3174. function GetProfileIntW(lpAppName, lpKeyName: LPCWSTR; nDefault: Integer): UINT; stdcall;
  3175. {$EXTERNALSYM GetProfileIntW}
  3176. function GetProfileInt(lpAppName, lpKeyName: LPCTSTR; nDefault: Integer): UINT; stdcall;
  3177. {$EXTERNALSYM GetProfileInt}
  3178. function GetProfileStringA(lpAppName, lpKeyName, lpDefault: LPCSTR;
  3179. lpReturnedString: LPSTR; nSize: DWORD): DWORD; stdcall;
  3180. {$EXTERNALSYM GetProfileStringA}
  3181. function GetProfileStringW(lpAppName, lpKeyName, lpDefault: LPCWSTR;
  3182. lpReturnedString: LPWSTR; nSize: DWORD): DWORD; stdcall;
  3183. {$EXTERNALSYM GetProfileStringW}
  3184. function GetProfileString(lpAppName, lpKeyName, lpDefault: LPCTSTR;
  3185. lpReturnedString: LPTSTR; nSize: DWORD): DWORD; stdcall;
  3186. {$EXTERNALSYM GetProfileString}
  3187. function WriteProfileStringA(lpAppName, lpKeyName, lpString: LPCSTR): BOOL; stdcall;
  3188. {$EXTERNALSYM WriteProfileStringA}
  3189. function WriteProfileStringW(lpAppName, lpKeyName, lpString: LPCWSTR): BOOL; stdcall;
  3190. {$EXTERNALSYM WriteProfileStringW}
  3191. function WriteProfileString(lpAppName, lpKeyName, lpString: LPCTSTR): BOOL; stdcall;
  3192. {$EXTERNALSYM WriteProfileString}
  3193. function GetProfileSectionA(lpAppName: LPCSTR; lpReturnedString: LPSTR;
  3194. nSize: DWORD): DWORD; stdcall;
  3195. {$EXTERNALSYM GetProfileSectionA}
  3196. function GetProfileSectionW(lpAppName: LPCWSTR; lpReturnedString: LPWSTR;
  3197. nSize: DWORD): DWORD; stdcall;
  3198. {$EXTERNALSYM GetProfileSectionW}
  3199. function GetProfileSection(lpAppName: LPCTSTR; lpReturnedString: LPTSTR;
  3200. nSize: DWORD): DWORD; stdcall;
  3201. {$EXTERNALSYM GetProfileSection}
  3202. function WriteProfileSectionA(lpAppName, lpString: LPCSTR): BOOL; stdcall;
  3203. {$EXTERNALSYM WriteProfileSectionA}
  3204. function WriteProfileSectionW(lpAppName, lpString: LPCWSTR): BOOL; stdcall;
  3205. {$EXTERNALSYM WriteProfileSectionW}
  3206. function WriteProfileSection(lpAppName, lpString: LPCTSTR): BOOL; stdcall;
  3207. {$EXTERNALSYM WriteProfileSection}
  3208. function GetPrivateProfileIntA(lpAppName, lpKeyName: LPCSTR; nDefault: Integer;
  3209. lpFileName: LPCSTR): UINT; stdcall;
  3210. {$EXTERNALSYM GetPrivateProfileIntA}
  3211. function GetPrivateProfileIntW(lpAppName, lpKeyName: LPCWSTR; nDefault: Integer;
  3212. lpFileName: LPCWSTR): UINT; stdcall;
  3213. {$EXTERNALSYM GetPrivateProfileIntW}
  3214. function GetPrivateProfileInt(lpAppName, lpKeyName: LPCTSTR; nDefault: Integer;
  3215. lpFileName: LPCTSTR): UINT; stdcall;
  3216. {$EXTERNALSYM GetPrivateProfileInt}
  3217. function GetPrivateProfileStringA(lpAppName, lpKeyName, lpDefault: LPCSTR;
  3218. lpReturnedString: LPSTR; nSize: DWORD; lpFileName: LPCSTR): DWORD; stdcall;
  3219. {$EXTERNALSYM GetPrivateProfileStringA}
  3220. function GetPrivateProfileStringW(lpAppName, lpKeyName, lpDefault: LPCWSTR;
  3221. lpReturnedString: LPWSTR; nSize: DWORD; lpFileName: LPCWSTR): DWORD; stdcall;
  3222. {$EXTERNALSYM GetPrivateProfileStringW}
  3223. function GetPrivateProfileString(lpAppName, lpKeyName, lpDefault: LPCTSTR;
  3224. lpReturnedString: LPTSTR; nSize: DWORD; lpFileName: LPCTSTR): DWORD; stdcall;
  3225. {$EXTERNALSYM GetPrivateProfileString}
  3226. function WritePrivateProfileStringA(lpAppName, lpKeyName, lpString,
  3227. lpFileName: LPCSTR): BOOL; stdcall;
  3228. {$EXTERNALSYM WritePrivateProfileStringA}
  3229. function WritePrivateProfileStringW(lpAppName, lpKeyName, lpString,
  3230. lpFileName: LPCWSTR): BOOL; stdcall;
  3231. {$EXTERNALSYM WritePrivateProfileStringW}
  3232. function WritePrivateProfileString(lpAppName, lpKeyName, lpString,
  3233. lpFileName: LPCTSTR): BOOL; stdcall;
  3234. {$EXTERNALSYM WritePrivateProfileString}
  3235. function GetPrivateProfileSectionA(lpAppName: LPCSTR; lpReturnedString: LPSTR;
  3236. nSize: DWORD; lpFileName: LPCSTR): DWORD; stdcall;
  3237. {$EXTERNALSYM GetPrivateProfileSectionA}
  3238. function GetPrivateProfileSectionW(lpAppName: LPCWSTR; lpReturnedString: LPWSTR;
  3239. nSize: DWORD; lpFileName: LPCWSTR): DWORD; stdcall;
  3240. {$EXTERNALSYM GetPrivateProfileSectionW}
  3241. function GetPrivateProfileSection(lpAppName: LPCTSTR; lpReturnedString: LPTSTR;
  3242. nSize: DWORD; lpFileName: LPCTSTR): DWORD; stdcall;
  3243. {$EXTERNALSYM GetPrivateProfileSection}
  3244. function WritePrivateProfileSectionA(lpAppName, lpString, lpFileName: LPCSTR): BOOL; stdcall;
  3245. {$EXTERNALSYM WritePrivateProfileSectionA}
  3246. function WritePrivateProfileSectionW(lpAppName, lpString, lpFileName: LPCWSTR): BOOL; stdcall;
  3247. {$EXTERNALSYM WritePrivateProfileSectionW}
  3248. function WritePrivateProfileSection(lpAppName, lpString, lpFileName: LPCTSTR): BOOL; stdcall;
  3249. {$EXTERNALSYM WritePrivateProfileSection}
  3250. function GetPrivateProfileSectionNamesA(lpszReturnBuffer: LPSTR; nSize: DWORD;
  3251. lpFileName: LPCSTR): DWORD; stdcall;
  3252. {$EXTERNALSYM GetPrivateProfileSectionNamesA}
  3253. function GetPrivateProfileSectionNamesW(lpszReturnBuffer: LPWSTR; nSize: DWORD;
  3254. lpFileName: LPCWSTR): DWORD; stdcall;
  3255. {$EXTERNALSYM GetPrivateProfileSectionNamesW}
  3256. function GetPrivateProfileSectionNames(lpszReturnBuffer: LPTSTR; nSize: DWORD;
  3257. lpFileName: LPCTSTR): DWORD; stdcall;
  3258. {$EXTERNALSYM GetPrivateProfileSectionNames}
  3259. function GetPrivateProfileStructA(lpszSection, lpszKey: LPCSTR; lpStruct: LPVOID;
  3260. uSizeStruct: UINT; szFile: LPCSTR): BOOL; stdcall;
  3261. {$EXTERNALSYM GetPrivateProfileStructA}
  3262. function GetPrivateProfileStructW(lpszSection, lpszKey: LPCWSTR; lpStruct: LPVOID;
  3263. uSizeStruct: UINT; szFile: LPCWSTR): BOOL; stdcall;
  3264. {$EXTERNALSYM GetPrivateProfileStructW}
  3265. function GetPrivateProfileStruct(lpszSection, lpszKey: LPCTSTR; lpStruct: LPVOID;
  3266. uSizeStruct: UINT; szFile: LPCTSTR): BOOL; stdcall;
  3267. {$EXTERNALSYM GetPrivateProfileStruct}
  3268. function WritePrivateProfileStructA(lpszSection, lpszKey: LPCSTR; lpStruct: LPVOID;
  3269. uSizeStruct: UINT; szFile: LPCSTR): BOOL; stdcall;
  3270. {$EXTERNALSYM WritePrivateProfileStructA}
  3271. function WritePrivateProfileStructW(lpszSection, lpszKey: LPCWSTR; lpStruct: LPVOID;
  3272. uSizeStruct: UINT; szFile: LPCWSTR): BOOL; stdcall;
  3273. {$EXTERNALSYM WritePrivateProfileStructW}
  3274. function WritePrivateProfileStruct(lpszSection, lpszKey: LPCTSTR; lpStruct: LPVOID;
  3275. uSizeStruct: UINT; szFile: LPCTSTR): BOOL; stdcall;
  3276. {$EXTERNALSYM WritePrivateProfileStruct}
  3277. function GetDriveTypeA(lpRootPathName: LPCSTR): UINT; stdcall;
  3278. {$EXTERNALSYM GetDriveTypeA}
  3279. function GetDriveTypeW(lpRootPathName: LPCWSTR): UINT; stdcall;
  3280. {$EXTERNALSYM GetDriveTypeW}
  3281. function GetDriveType(lpRootPathName: LPCTSTR): UINT; stdcall;
  3282. {$EXTERNALSYM GetDriveType}
  3283. function GetSystemDirectoryA(lpBuffer: LPSTR; uSize: UINT): UINT; stdcall;
  3284. {$EXTERNALSYM GetSystemDirectoryA}
  3285. function GetSystemDirectoryW(lpBuffer: LPWSTR; uSize: UINT): UINT; stdcall;
  3286. {$EXTERNALSYM GetSystemDirectoryW}
  3287. function GetSystemDirectory(lpBuffer: LPTSTR; uSize: UINT): UINT; stdcall;
  3288. {$EXTERNALSYM GetSystemDirectory}
  3289. function GetTempPathA(nBufferLength: DWORD; lpBuffer: LPSTR): DWORD; stdcall;
  3290. {$EXTERNALSYM GetTempPathA}
  3291. function GetTempPathW(nBufferLength: DWORD; lpBuffer: LPWSTR): DWORD; stdcall;
  3292. {$EXTERNALSYM GetTempPathW}
  3293. function GetTempPath(nBufferLength: DWORD; lpBuffer: LPTSTR): DWORD; stdcall;
  3294. {$EXTERNALSYM GetTempPath}
  3295. function GetTempFileNameA(lpPathName, lpPrefixString: LPCSTR; uUnique: UINT;
  3296. lpTempFileName: LPSTR): UINT; stdcall;
  3297. {$EXTERNALSYM GetTempFileNameA}
  3298. function GetTempFileNameW(lpPathName, lpPrefixString: LPCWSTR; uUnique: UINT;
  3299. lpTempFileName: LPWSTR): UINT; stdcall;
  3300. {$EXTERNALSYM GetTempFileNameW}
  3301. function GetTempFileName(lpPathName, lpPrefixString: LPCTSTR; uUnique: UINT;
  3302. lpTempFileName: LPTSTR): UINT; stdcall;
  3303. {$EXTERNALSYM GetTempFileName}
  3304. function GetWindowsDirectoryA(lpBuffer: LPSTR; uSize: UINT): UINT; stdcall;
  3305. {$EXTERNALSYM GetWindowsDirectoryA}
  3306. function GetWindowsDirectoryW(lpBuffer: LPWSTR; uSize: UINT): UINT; stdcall;
  3307. {$EXTERNALSYM GetWindowsDirectoryW}
  3308. function GetWindowsDirectory(lpBuffer: LPTSTR; uSize: UINT): UINT; stdcall;
  3309. {$EXTERNALSYM GetWindowsDirectory}
  3310. function GetSystemWindowsDirectoryA(lpBuffer: LPSTR; uSize: UINT): UINT; stdcall;
  3311. {$EXTERNALSYM GetSystemWindowsDirectoryA}
  3312. function GetSystemWindowsDirectoryW(lpBuffer: LPWSTR; uSize: UINT): UINT; stdcall;
  3313. {$EXTERNALSYM GetSystemWindowsDirectoryW}
  3314. function GetSystemWindowsDirectory(lpBuffer: LPTSTR; uSize: UINT): UINT; stdcall;
  3315. {$EXTERNALSYM GetSystemWindowsDirectory}
  3316. function GetSystemWow64DirectoryA(lpBuffer: LPSTR; uSize: UINT): UINT; stdcall;
  3317. {$EXTERNALSYM GetSystemWow64DirectoryA}
  3318. function GetSystemWow64DirectoryW(lpBuffer: LPWSTR; uSize: UINT): UINT; stdcall;
  3319. {$EXTERNALSYM GetSystemWow64DirectoryW}
  3320. function GetSystemWow64Directory(lpBuffer: LPTSTR; uSize: UINT): UINT; stdcall;
  3321. {$EXTERNALSYM GetSystemWow64Directory}
  3322. function Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: BOOL): BOOL; stdcall;
  3323. {$EXTERNALSYM Wow64EnableWow64FsRedirection}
  3324. //
  3325. // for GetProcAddress
  3326. //
  3327. type
  3328. PGET_SYSTEM_WOW64_DIRECTORY_A = function(lpBuffer: LPSTR; uSize: UINT): UINT; stdcall;
  3329. {$EXTERNALSYM PGET_SYSTEM_WOW64_DIRECTORY_A}
  3330. PGET_SYSTEM_WOW64_DIRECTORY_W = function(lpBuffer: LPWSTR; uSize: UINT): UINT; stdcall;
  3331. {$EXTERNALSYM PGET_SYSTEM_WOW64_DIRECTORY_W}
  3332. //
  3333. // GetProcAddress only accepts GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A,
  3334. // GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A, GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A.
  3335. // The others are if you want to use the strings in some other way.
  3336. //
  3337. const
  3338. GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A = 'GetSystemWow64DirectoryA';
  3339. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A}
  3340. GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W = WideString('GetSystemWow64DirectoryA');
  3341. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W}
  3342. GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T = __TEXT('GetSystemWow64DirectoryA');
  3343. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T}
  3344. GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A = 'GetSystemWow64DirectoryW';
  3345. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A}
  3346. GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W = WideString('GetSystemWow64DirectoryW');
  3347. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W}
  3348. GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T = __TEXT('GetSystemWow64DirectoryW');
  3349. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T}
  3350. {$IFDEF UNICODE}
  3351. GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A = GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A;
  3352. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A}
  3353. GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W = GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W;
  3354. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W}
  3355. GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T = GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T;
  3356. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T}
  3357. {$ELSE}
  3358. GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A = GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A;
  3359. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A}
  3360. GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W = GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W;
  3361. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W}
  3362. GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T = GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T;
  3363. {$EXTERNALSYM GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T}
  3364. {$ENDIF UNICODE}
  3365. function SetCurrentDirectoryA(lpPathName: LPCSTR): BOOL; stdcall;
  3366. {$EXTERNALSYM SetCurrentDirectoryA}
  3367. function SetCurrentDirectoryW(lpPathName: LPCWSTR): BOOL; stdcall;
  3368. {$EXTERNALSYM SetCurrentDirectoryW}
  3369. function SetCurrentDirectory(lpPathName: LPCTSTR): BOOL; stdcall;
  3370. {$EXTERNALSYM SetCurrentDirectory}
  3371. function GetCurrentDirectoryA(nBufferLength: DWORD; lpBuffer: LPSTR): DWORD; stdcall;
  3372. {$EXTERNALSYM GetCurrentDirectoryA}
  3373. function GetCurrentDirectoryW(nBufferLength: DWORD; lpBuffer: LPWSTR): DWORD; stdcall;
  3374. {$EXTERNALSYM GetCurrentDirectoryW}
  3375. function GetCurrentDirectory(nBufferLength: DWORD; lpBuffer: LPTSTR): DWORD; stdcall;
  3376. {$EXTERNALSYM GetCurrentDirectory}
  3377. //#if _WIN32_WINNT >= 0x0502
  3378. function SetDllDirectoryA(lpPathName: LPCSTR): BOOL; stdcall;
  3379. {$EXTERNALSYM SetDllDirectoryA}
  3380. function SetDllDirectoryW(lpPathName: LPCWSTR): BOOL; stdcall;
  3381. {$EXTERNALSYM SetDllDirectoryW}
  3382. function SetDllDirectory(lpPathName: LPCTSTR): BOOL; stdcall;
  3383. {$EXTERNALSYM SetDllDirectory}
  3384. function GetDllDirectoryA(nBufferLength: DWORD; lpBuffer: LPSTR): DWORD; stdcall;
  3385. {$EXTERNALSYM GetDllDirectoryA}
  3386. function GetDllDirectoryW(nBufferLength: DWORD; lpBuffer: LPWSTR): DWORD; stdcall;
  3387. {$EXTERNALSYM GetDllDirectoryW}
  3388. function GetDllDirectory(nBufferLength: DWORD; lpBuffer: LPTSTR): DWORD; stdcall;
  3389. {$EXTERNALSYM GetDllDirectory}
  3390. //#endif // _WIN32_WINNT >= 0x0502
  3391. function GetDiskFreeSpaceA(lpRootPathName: LPCSTR; var lpSectorsPerCluster,
  3392. lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters: DWORD): BOOL; stdcall;
  3393. {$EXTERNALSYM GetDiskFreeSpaceA}
  3394. function GetDiskFreeSpaceW(lpRootPathName: LPCWSTR; var lpSectorsPerCluster,
  3395. lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters: DWORD): BOOL; stdcall;
  3396. {$EXTERNALSYM GetDiskFreeSpaceW}
  3397. function GetDiskFreeSpace(lpRootPathName: LPCTSTR; var lpSectorsPerCluster,
  3398. lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters: DWORD): BOOL; stdcall;
  3399. {$EXTERNALSYM GetDiskFreeSpace}
  3400. function GetDiskFreeSpaceExA(lpDirectoryName: LPCSTR; var lpFreeBytesAvailableToCaller,
  3401. lpTotalNumberOfBytes: ULARGE_INTEGER; lpTotalNumberOfFreeBytes: PULARGE_INTEGER): BOOL; stdcall;
  3402. {$EXTERNALSYM GetDiskFreeSpaceExA}
  3403. function GetDiskFreeSpaceExW(lpDirectoryName: LPCWSTR; var lpFreeBytesAvailableToCaller,
  3404. lpTotalNumberOfBytes: ULARGE_INTEGER; lpTotalNumberOfFreeBytes: PULARGE_INTEGER): BOOL; stdcall;
  3405. {$EXTERNALSYM GetDiskFreeSpaceExW}
  3406. function GetDiskFreeSpaceEx(lpDirectoryName: LPCTSTR; var lpFreeBytesAvailableToCaller,
  3407. lpTotalNumberOfBytes: ULARGE_INTEGER; lpTotalNumberOfFreeBytes: PULARGE_INTEGER): BOOL; stdcall;
  3408. {$EXTERNALSYM GetDiskFreeSpaceEx}
  3409. function CreateDirectoryA(lpPathName: LPCSTR; lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3410. {$EXTERNALSYM CreateDirectoryA}
  3411. function CreateDirectoryW(lpPathName: LPCWSTR; lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3412. {$EXTERNALSYM CreateDirectoryW}
  3413. function CreateDirectory(lpPathName: LPCTSTR; lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3414. {$EXTERNALSYM CreateDirectory}
  3415. function CreateDirectoryExA(lpTemplateDirectory: LPCSTR; lpNewDirectory: LPCSTR;
  3416. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3417. {$EXTERNALSYM CreateDirectoryExA}
  3418. function CreateDirectoryExW(lpTemplateDirectory: LPCWSTR; lpNewDirectory: LPCWSTR;
  3419. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3420. {$EXTERNALSYM CreateDirectoryExW}
  3421. function CreateDirectoryEx(lpTemplateDirectory: LPCTSTR; lpNewDirectory: LPCTSTR;
  3422. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3423. {$EXTERNALSYM CreateDirectoryEx}
  3424. function RemoveDirectoryA(lpPathName: LPCSTR): BOOL; stdcall;
  3425. {$EXTERNALSYM RemoveDirectoryA}
  3426. function RemoveDirectoryW(lpPathName: LPCWSTR): BOOL; stdcall;
  3427. {$EXTERNALSYM RemoveDirectoryW}
  3428. function RemoveDirectory(lpPathName: LPCTSTR): BOOL; stdcall;
  3429. {$EXTERNALSYM RemoveDirectory}
  3430. function GetFullPathNameA(lpFileName: LPCSTR; nBufferLength: DWORD;
  3431. lpBuffer: LPSTR; var lpFilePart: LPSTR): DWORD; stdcall;
  3432. {$EXTERNALSYM GetFullPathNameA}
  3433. function GetFullPathNameW(lpFileName: LPCWSTR; nBufferLength: DWORD;
  3434. lpBuffer: LPWSTR; var lpFilePart: LPWSTR): DWORD; stdcall;
  3435. {$EXTERNALSYM GetFullPathNameA}
  3436. function GetFullPathName(lpFileName: LPCTSTR; nBufferLength: DWORD;
  3437. lpBuffer: LPTSTR; var lpFilePart: LPTSTR): DWORD; stdcall;
  3438. {$EXTERNALSYM GetFullPathName}
  3439. const
  3440. DDD_RAW_TARGET_PATH = $00000001;
  3441. {$EXTERNALSYM DDD_RAW_TARGET_PATH}
  3442. DDD_REMOVE_DEFINITION = $00000002;
  3443. {$EXTERNALSYM DDD_REMOVE_DEFINITION}
  3444. DDD_EXACT_MATCH_ON_REMOVE = $00000004;
  3445. {$EXTERNALSYM DDD_EXACT_MATCH_ON_REMOVE}
  3446. DDD_NO_BROADCAST_SYSTEM = $00000008;
  3447. {$EXTERNALSYM DDD_NO_BROADCAST_SYSTEM}
  3448. DDD_LUID_BROADCAST_DRIVE = $00000010;
  3449. {$EXTERNALSYM DDD_LUID_BROADCAST_DRIVE}
  3450. function DefineDosDeviceA(dwFlags: DWORD; lpDeviceName, lpTargetPath: LPCSTR): BOOL; stdcall;
  3451. {$EXTERNALSYM DefineDosDeviceA}
  3452. function DefineDosDeviceW(dwFlags: DWORD; lpDeviceName, lpTargetPath: LPCWSTR): BOOL; stdcall;
  3453. {$EXTERNALSYM DefineDosDeviceW}
  3454. function DefineDosDevice(dwFlags: DWORD; lpDeviceName, lpTargetPath: LPCTSTR): BOOL; stdcall;
  3455. {$EXTERNALSYM DefineDosDevice}
  3456. function QueryDosDeviceA(lpDeviceName, lpTargetPath: LPSTR; ucchMax: DWORD): DWORD; stdcall;
  3457. {$EXTERNALSYM QueryDosDeviceA}
  3458. function QueryDosDeviceW(lpDeviceName, lpTargetPath: LPWSTR; ucchMax: DWORD): DWORD; stdcall;
  3459. {$EXTERNALSYM QueryDosDeviceW}
  3460. function QueryDosDevice(lpDeviceName, lpTargetPath: LPTSTR; ucchMax: DWORD): DWORD; stdcall;
  3461. {$EXTERNALSYM QueryDosDevice}
  3462. function CreateFileA(lpFileName: LPCSTR; dwDesiredAccess, dwShareMode: DWORD;
  3463. lpSecurityAttributes: LPSECURITY_ATTRIBUTES; dwCreationDisposition: DWORD;
  3464. dwFlagsAndAttributes: DWORD; hTemplateFile: HANDLE): HANDLE; stdcall;
  3465. {$EXTERNALSYM CreateFileA}
  3466. function CreateFileW(lpFileName: LPCWSTR; dwDesiredAccess, dwShareMode: DWORD;
  3467. lpSecurityAttributes: LPSECURITY_ATTRIBUTES; dwCreationDisposition: DWORD;
  3468. dwFlagsAndAttributes: DWORD; hTemplateFile: HANDLE): HANDLE; stdcall;
  3469. {$EXTERNALSYM CreateFileW}
  3470. function CreateFile(lpFileName: LPCTSTR; dwDesiredAccess, dwShareMode: DWORD;
  3471. lpSecurityAttributes: LPSECURITY_ATTRIBUTES; dwCreationDisposition: DWORD;
  3472. dwFlagsAndAttributes: DWORD; hTemplateFile: HANDLE): HANDLE; stdcall;
  3473. {$EXTERNALSYM CreateFile}
  3474. function ReOpenFile(hOriginalFile: HANDLE; dwDesiredAccess, dwShareMode, dwFlagsAndAttributes: DWORD): HANDLE; stdcall;
  3475. {$EXTERNALSYM ReOpenFile}
  3476. function SetFileAttributesA(lpFileName: LPCSTR; dwFileAttributes: DWORD): BOOL; stdcall;
  3477. {$EXTERNALSYM SetFileAttributesA}
  3478. function SetFileAttributesW(lpFileName: LPCWSTR; dwFileAttributes: DWORD): BOOL; stdcall;
  3479. {$EXTERNALSYM SetFileAttributesW}
  3480. function SetFileAttributes(lpFileName: LPCTSTR; dwFileAttributes: DWORD): BOOL; stdcall;
  3481. {$EXTERNALSYM SetFileAttributes}
  3482. function GetFileAttributesA(lpFileName: LPCSTR): DWORD; stdcall;
  3483. {$EXTERNALSYM GetFileAttributesA}
  3484. function GetFileAttributesW(lpFileName: LPCWSTR): DWORD; stdcall;
  3485. {$EXTERNALSYM GetFileAttributesW}
  3486. function GetFileAttributes(lpFileName: LPCTSTR): DWORD; stdcall;
  3487. {$EXTERNALSYM GetFileAttributes}
  3488. type
  3489. _GET_FILEEX_INFO_LEVELS = (GetFileExInfoStandard, GetFileExMaxInfoLevel);
  3490. {$EXTERNALSYM _GET_FILEEX_INFO_LEVELS}
  3491. GET_FILEEX_INFO_LEVELS = _GET_FILEEX_INFO_LEVELS;
  3492. {$EXTERNALSYM GET_FILEEX_INFO_LEVELS}
  3493. TGetFileExInfoLevels = GET_FILEEX_INFO_LEVELS;
  3494. function GetFileAttributesExA(lpFileName: LPCSTR;
  3495. fInfoLevelId: GET_FILEEX_INFO_LEVELS; lpFileInformation: LPVOID): BOOL; stdcall;
  3496. {$EXTERNALSYM GetFileAttributesExA}
  3497. function GetFileAttributesExW(lpFileName: LPCWSTR;
  3498. fInfoLevelId: GET_FILEEX_INFO_LEVELS; lpFileInformation: LPVOID): BOOL; stdcall;
  3499. {$EXTERNALSYM GetFileAttributesExW}
  3500. function GetFileAttributesEx(lpFileName: LPCTSTR;
  3501. fInfoLevelId: GET_FILEEX_INFO_LEVELS; lpFileInformation: LPVOID): BOOL; stdcall;
  3502. {$EXTERNALSYM GetFileAttributesEx}
  3503. function GetCompressedFileSizeA(lpFileName: LPCSTR; lpFileSizeHigh: LPDWORD): DWORD; stdcall;
  3504. {$EXTERNALSYM GetCompressedFileSizeA}
  3505. function GetCompressedFileSizeW(lpFileName: LPCWSTR; lpFileSizeHigh: LPDWORD): DWORD; stdcall;
  3506. {$EXTERNALSYM GetCompressedFileSizeW}
  3507. function GetCompressedFileSize(lpFileName: LPCTSTR; lpFileSizeHigh: LPDWORD): DWORD; stdcall;
  3508. {$EXTERNALSYM GetCompressedFileSize}
  3509. function DeleteFileA(lpFileName: LPCSTR): BOOL; stdcall;
  3510. {$EXTERNALSYM DeleteFileA}
  3511. function DeleteFileW(lpFileName: LPCWSTR): BOOL; stdcall;
  3512. {$EXTERNALSYM DeleteFileW}
  3513. function DeleteFile(lpFileName: LPCTSTR): BOOL; stdcall;
  3514. {$EXTERNALSYM DeleteFile}
  3515. (* todo
  3516. WINBASEAPI
  3517. BOOL
  3518. WINAPI
  3519. CheckNameLegalDOS8Dot3A(
  3520. IN LPCSTR lpName,
  3521. OUT LPSTR lpOemName OPTIONAL,
  3522. IN DWORD OemNameSize OPTIONAL,
  3523. OUT PBOOL pbNameContainsSpaces OPTIONAL,
  3524. OUT PBOOL pbNameLegal
  3525. );
  3526. WINBASEAPI
  3527. BOOL
  3528. WINAPI
  3529. CheckNameLegalDOS8Dot3W(
  3530. IN LPCWSTR lpName,
  3531. OUT LPSTR lpOemName OPTIONAL,
  3532. IN DWORD OemNameSize OPTIONAL,
  3533. OUT PBOOL pbNameContainsSpaces OPTIONAL,
  3534. OUT PBOOL pbNameLegal
  3535. );
  3536. #ifdef UNICODE
  3537. #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W
  3538. #else
  3539. #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A
  3540. #endif // !UNICODE
  3541. *)
  3542. type
  3543. _FINDEX_INFO_LEVELS = (FindExInfoStandard, FindExInfoMaxInfoLevel);
  3544. {$EXTERNALSYM _FINDEX_INFO_LEVELS}
  3545. FINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS;
  3546. {$EXTERNALSYM FINDEX_INFO_LEVELS}
  3547. TFindExInfoLevels = FINDEX_INFO_LEVELS;
  3548. _FINDEX_SEARCH_OPS = (
  3549. FindExSearchNameMatch,
  3550. FindExSearchLimitToDirectories,
  3551. FindExSearchLimitToDevices,
  3552. FindExSearchMaxSearchOp);
  3553. {$EXTERNALSYM _FINDEX_SEARCH_OPS}
  3554. FINDEX_SEARCH_OPS = _FINDEX_SEARCH_OPS;
  3555. {$EXTERNALSYM FINDEX_SEARCH_OPS}
  3556. TFindExSearchOps = FINDEX_SEARCH_OPS;
  3557. const
  3558. FIND_FIRST_EX_CASE_SENSITIVE = $00000001;
  3559. {$EXTERNALSYM FIND_FIRST_EX_CASE_SENSITIVE}
  3560. function FindFirstFileExA(lpFileName: LPCSTR; fInfoLevelId: FINDEX_INFO_LEVELS;
  3561. lpFindFileData: LPVOID; fSearchOp: FINDEX_SEARCH_OPS; lpSearchFilter: LPVOID;
  3562. dwAdditionalFlags: DWORD): HANDLE; stdcall;
  3563. {$EXTERNALSYM FindFirstFileExA}
  3564. function FindFirstFileExW(lpFileName: LPCWSTR; fInfoLevelId: FINDEX_INFO_LEVELS;
  3565. lpFindFileData: LPVOID; fSearchOp: FINDEX_SEARCH_OPS; lpSearchFilter: LPVOID;
  3566. dwAdditionalFlags: DWORD): HANDLE; stdcall;
  3567. {$EXTERNALSYM FindFirstFileExW}
  3568. function FindFirstFileEx(lpFileName: LPCTSTR; fInfoLevelId: FINDEX_INFO_LEVELS;
  3569. lpFindFileData: LPVOID; fSearchOp: FINDEX_SEARCH_OPS; lpSearchFilter: LPVOID;
  3570. dwAdditionalFlags: DWORD): HANDLE; stdcall;
  3571. {$EXTERNALSYM FindFirstFileEx}
  3572. function FindFirstFileA(lpFileName: LPCSTR; var lpFindFileData: WIN32_FIND_DATAA): HANDLE; stdcall;
  3573. {$EXTERNALSYM FindFirstFileA}
  3574. function FindFirstFileW(lpFileName: LPCWSTR; var lpFindFileData: WIN32_FIND_DATAW): HANDLE; stdcall;
  3575. {$EXTERNALSYM FindFirstFileW}
  3576. function FindFirstFile(lpFileName: LPCTSTR; var lpFindFileData: WIN32_FIND_DATA): HANDLE; stdcall;
  3577. {$EXTERNALSYM FindFirstFile}
  3578. function FindNextFileA(hFindFile: HANDLE; var FindFileData: WIN32_FIND_DATAA): BOOL; stdcall;
  3579. {$EXTERNALSYM FindNextFileA}
  3580. function FindNextFileW(hFindFile: HANDLE; var lpFindFileData: WIN32_FIND_DATAW): BOOL; stdcall;
  3581. {$EXTERNALSYM FindNextFileW}
  3582. function FindNextFile(hFindFile: HANDLE; var lpFindFileData: WIN32_FIND_DATA): BOOL; stdcall;
  3583. {$EXTERNALSYM FindNextFile}
  3584. function SearchPathA(lpPath, lpFileName, lpExtension: LPCSTR; nBufferLength: DWORD;
  3585. lpBuffer: LPSTR; var lpFilePart: LPSTR): DWORD; stdcall;
  3586. {$EXTERNALSYM SearchPathA}
  3587. function SearchPathW(lpPath, lpFileName, lpExtension: LPCWSTR; nBufferLength: DWORD;
  3588. lpBuffer: LPWSTR; var lpFilePart: LPWSTR): DWORD; stdcall;
  3589. {$EXTERNALSYM SearchPathW}
  3590. function SearchPath(lpPath, lpFileName, lpExtension: LPCTSTR; nBufferLength: DWORD;
  3591. lpBuffer: LPTSTR; var lpFilePart: LPTSTR): DWORD; stdcall;
  3592. {$EXTERNALSYM SearchPath}
  3593. function CopyFileA(lpExistingFileName, lpNewFileName: LPCSTR; bFailIfExists: BOOL): BOOL; stdcall;
  3594. {$EXTERNALSYM CopyFileA}
  3595. function CopyFileW(lpExistingFileName, lpNewFileName: LPCWSTR; bFailIfExists: BOOL): BOOL; stdcall;
  3596. {$EXTERNALSYM CopyFileW}
  3597. function CopyFile(lpExistingFileName, lpNewFileName: LPCTSTR; bFailIfExists: BOOL): BOOL; stdcall;
  3598. {$EXTERNALSYM CopyFile}
  3599. type
  3600. LPPROGRESS_ROUTINE = function(
  3601. TotalFileSize: LARGE_INTEGER;
  3602. TotalBytesTransferred: LARGE_INTEGER;
  3603. StreamSize: LARGE_INTEGER;
  3604. StreamBytesTransferred: LARGE_INTEGER;
  3605. dwStreamNumber: DWORD;
  3606. dwCallbackReason: DWORD;
  3607. hSourceFile: HANDLE;
  3608. hDestinationFile: HANDLE;
  3609. lpData: LPVOID): DWORD; stdcall;
  3610. {$EXTERNALSYM LPPROGRESS_ROUTINE}
  3611. TProgressRoutine = LPPROGRESS_ROUTINE;
  3612. function CopyFileExA(lpExistingFileName, lpNewFileName: LPCSTR;
  3613. lpProgressRoutine: LPPROGRESS_ROUTINE; lpData: LPVOID; var pbCancel: BOOL;
  3614. dwCopyFlags: DWORD): BOOL; stdcall;
  3615. {$EXTERNALSYM CopyFileExA}
  3616. function CopyFileExW(lpExistingFileName, lpNewFileName: LPCWSTR;
  3617. lpProgressRoutine: LPPROGRESS_ROUTINE; lpData: LPVOID; var pbCancel: BOOL;
  3618. dwCopyFlags: DWORD): BOOL; stdcall;
  3619. {$EXTERNALSYM CopyFileExW}
  3620. function CopyFileEx(lpExistingFileName, lpNewFileName: LPCTSTR;
  3621. lpProgressRoutine: LPPROGRESS_ROUTINE; lpData: LPVOID; var pbCancel: BOOL;
  3622. dwCopyFlags: DWORD): BOOL; stdcall;
  3623. {$EXTERNALSYM CopyFileEx}
  3624. function MoveFileA(lpExistingFileName, lpNewFileName: LPCSTR): BOOL; stdcall;
  3625. {$EXTERNALSYM MoveFileA}
  3626. function MoveFileW(lpExistingFileName, lpNewFileName: LPCWSTR): BOOL; stdcall;
  3627. {$EXTERNALSYM MoveFileW}
  3628. function MoveFile(lpExistingFileName, lpNewFileName: LPCTSTR): BOOL; stdcall;
  3629. {$EXTERNALSYM MoveFile}
  3630. function MoveFileExA(lpExistingFileName, lpNewFileName: LPCSTR; dwFlags: DWORD): BOOL; stdcall;
  3631. {$EXTERNALSYM MoveFileExA}
  3632. function MoveFileExW(lpExistingFileName, lpNewFileName: LPCWSTR; dwFlags: DWORD): BOOL; stdcall;
  3633. {$EXTERNALSYM MoveFileExW}
  3634. function MoveFileEx(lpExistingFileName, lpNewFileName: LPCTSTR; dwFlags: DWORD): BOOL; stdcall;
  3635. {$EXTERNALSYM MoveFileEx}
  3636. function MoveFileWithProgressA(lpExistingFileName, lpNewFileName: LPCSTR;
  3637. lpProgressRoutine: LPPROGRESS_ROUTINE; lpData: LPVOID; dwFlags: DWORD): BOOL; stdcall;
  3638. {$EXTERNALSYM MoveFileWithProgressA}
  3639. function MoveFileWithProgressW(lpExistingFileName, lpNewFileName: LPCWSTR;
  3640. lpProgressRoutine: LPPROGRESS_ROUTINE; lpData: LPVOID; dwFlags: DWORD): BOOL; stdcall;
  3641. {$EXTERNALSYM MoveFileWithProgressW}
  3642. function MoveFileWithProgress(lpExistingFileName, lpNewFileName: LPCTSTR;
  3643. lpProgressRoutine: LPPROGRESS_ROUTINE; lpData: LPVOID; dwFlags: DWORD): BOOL; stdcall;
  3644. {$EXTERNALSYM MoveFileWithProgress}
  3645. const
  3646. MOVEFILE_REPLACE_EXISTING = $00000001;
  3647. {$EXTERNALSYM MOVEFILE_REPLACE_EXISTING}
  3648. MOVEFILE_COPY_ALLOWED = $00000002;
  3649. {$EXTERNALSYM MOVEFILE_COPY_ALLOWED}
  3650. MOVEFILE_DELAY_UNTIL_REBOOT = $00000004;
  3651. {$EXTERNALSYM MOVEFILE_DELAY_UNTIL_REBOOT}
  3652. MOVEFILE_WRITE_THROUGH = $00000008;
  3653. {$EXTERNALSYM MOVEFILE_WRITE_THROUGH}
  3654. MOVEFILE_CREATE_HARDLINK = $00000010;
  3655. {$EXTERNALSYM MOVEFILE_CREATE_HARDLINK}
  3656. MOVEFILE_FAIL_IF_NOT_TRACKABLE = $00000020;
  3657. {$EXTERNALSYM MOVEFILE_FAIL_IF_NOT_TRACKABLE}
  3658. function ReplaceFileA(lpReplacedFileName, lpReplacementFileName,
  3659. lpBackupFileName: LPCSTR; dwReplaceFlags: DWORD; lpExclude: LPVOID;
  3660. lpReserved: LPVOID): BOOL; stdcall;
  3661. {$EXTERNALSYM ReplaceFileA}
  3662. function ReplaceFileW(lpReplacedFileName, lpReplacementFileName,
  3663. lpBackupFileName: LPCWSTR; dwReplaceFlags: DWORD; lpExclude: LPVOID;
  3664. lpReserved: LPVOID): BOOL; stdcall;
  3665. {$EXTERNALSYM ReplaceFileW}
  3666. function ReplaceFile(lpReplacedFileName, lpReplacementFileName,
  3667. lpBackupFileName: LPCTSTR; dwReplaceFlags: DWORD; lpExclude: LPVOID;
  3668. lpReserved: LPVOID): BOOL; stdcall;
  3669. {$EXTERNALSYM ReplaceFile}
  3670. //
  3671. // API call to create hard links.
  3672. //
  3673. function CreateHardLinkA(lpFileName, lpExistingFileName: LPCSTR;
  3674. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3675. {$EXTERNALSYM CreateHardLinkA}
  3676. function CreateHardLinkW(lpFileName, lpExistingFileName: LPCWSTR;
  3677. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3678. {$EXTERNALSYM CreateHardLinkW}
  3679. function CreateHardLink(lpFileName, lpExistingFileName: LPCTSTR;
  3680. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): BOOL; stdcall;
  3681. {$EXTERNALSYM CreateHardLink}
  3682. //#if (_WIN32_WINNT >= 0x0501)
  3683. //
  3684. // API call to enumerate for streams within a file
  3685. //
  3686. type
  3687. _STREAM_INFO_LEVELS = (FindStreamInfoStandard, FindStreamInfoMaxInfoLevel);
  3688. {$EXTERNALSYM _STREAM_INFO_LEVELS}
  3689. STREAM_INFO_LEVELS = _STREAM_INFO_LEVELS;
  3690. {$EXTERNALSYM STREAM_INFO_LEVELS}
  3691. TStreamInfoLevels = STREAM_INFO_LEVELS;
  3692. _WIN32_FIND_STREAM_DATA = record
  3693. StreamSize: LARGE_INTEGER;
  3694. cStreamName: array [0..MAX_PATH + 35] of WCHAR;
  3695. end;
  3696. {$EXTERNALSYM _WIN32_FIND_STREAM_DATA}
  3697. WIN32_FIND_STREAM_DATA = _WIN32_FIND_STREAM_DATA;
  3698. {$EXTERNALSYM WIN32_FIND_STREAM_DATA}
  3699. PWIN32_FIND_STREAM_DATA = ^WIN32_FIND_STREAM_DATA;
  3700. {$EXTERNALSYM PWIN32_FIND_STREAM_DATA}
  3701. TWin32FindStreamData = WIN32_FIND_STREAM_DATA;
  3702. PWin32FindStreamData = PWIN32_FIND_STREAM_DATA;
  3703. function FindFirstStreamW(lpFileName: LPCWSTR; InfoLevel: STREAM_INFO_LEVELS; lpFindStreamData: LPVOID; dwFlags: DWORD): HANDLE; stdcall;
  3704. {$EXTERNALSYM FindFirstStreamW}
  3705. function FindNextStreamW(hFindStream: HANDLE; lpFindStreamData: LPVOID): BOOL; stdcall;
  3706. {$EXTERNALSYM FindNextStreamW}
  3707. //#endif // (_WIN32_WINNT >= 0x0500)
  3708. function CreateNamedPipeA(lpName: LPCSTR; dwOpenMode, dwPipeMode, nMaxInstances,
  3709. nOutBufferSize, nInBufferSize, nDefaultTimeOut: DWORD;
  3710. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE; stdcall;
  3711. {$EXTERNALSYM CreateNamedPipeA}
  3712. function CreateNamedPipeW(lpName: LPCWSTR; dwOpenMode, dwPipeMode, nMaxInstances,
  3713. nOutBufferSize, nInBufferSize, nDefaultTimeOut: DWORD;
  3714. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE; stdcall;
  3715. {$EXTERNALSYM CreateNamedPipeW}
  3716. function CreateNamedPipe(lpName: LPCTSTR; dwOpenMode, dwPipeMode, nMaxInstances,
  3717. nOutBufferSize, nInBufferSize, nDefaultTimeOut: DWORD;
  3718. lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE; stdcall;
  3719. {$EXTERNALSYM CreateNamedPipe}
  3720. function GetNamedPipeHandleStateA(hNamedPipe: HANDLE; lpState, lpCurInstances,
  3721. lpMaxCollectionCount, lpCollectDataTimeout: LPDWORD; lpUserName: LPSTR;
  3722. nMaxUserNameSize: DWORD): BOOL; stdcall;
  3723. {$EXTERNALSYM GetNamedPipeHandleStateA}
  3724. function GetNamedPipeHandleStateW(hNamedPipe: HANDLE; lpState, lpCurInstances,
  3725. lpMaxCollectionCount, lpCollectDataTimeout: LPDWORD; lpUserName: LPWSTR;
  3726. nMaxUserNameSize: DWORD): BOOL; stdcall;
  3727. {$EXTERNALSYM GetNamedPipeHandleStateW}
  3728. function GetNamedPipeHandleState(hNamedPipe: HANDLE; lpState, lpCurInstances,
  3729. lpMaxCollectionCount, lpCollectDataTimeout: LPDWORD; lpUserName: LPTSTR;
  3730. nMaxUserNameSize: DWORD): BOOL; stdcall;
  3731. {$EXTERNALSYM GetNamedPipeHandleState}
  3732. function CallNamedPipeA(lpNamedPipeName: LPCSTR; lpInBuffer: LPVOID;
  3733. nInBufferSize: DWORD; lpOutBuffer: LPVOID; nOutBufferSize: DWORD;
  3734. var lpBytesRead: DWORD; nTimeOut: DWORD): BOOL; stdcall;
  3735. {$EXTERNALSYM CallNamedPipeA}
  3736. function CallNamedPipeW(lpNamedPipeName: LPCWSTR; lpInBuffer: LPVOID;
  3737. nInBufferSize: DWORD; lpOutBuffer: LPVOID; nOutBufferSize: DWORD;
  3738. var lpBytesRead: DWORD; nTimeOut: DWORD): BOOL; stdcall;
  3739. {$EXTERNALSYM CallNamedPipeW}
  3740. function CallNamedPipe(lpNamedPipeName: LPCTSTR; lpInBuffer: LPVOID;
  3741. nInBufferSize: DWORD; lpOutBuffer: LPVOID; nOutBufferSize: DWORD;
  3742. var lpBytesRead: DWORD; nTimeOut: DWORD): BOOL; stdcall;
  3743. {$EXTERNALSYM CallNamedPipe}
  3744. function WaitNamedPipeA(lpNamedPipeName: LPCSTR; nTimeOut: DWORD): BOOL; stdcall;
  3745. {$EXTERNALSYM WaitNamedPipeA}
  3746. function WaitNamedPipeW(lpNamedPipeName: LPCWSTR; nTimeOut: DWORD): BOOL; stdcall;
  3747. {$EXTERNALSYM WaitNamedPipeW}
  3748. function WaitNamedPipe(lpNamedPipeName: LPCTSTR; nTimeOut: DWORD): BOOL; stdcall;
  3749. {$EXTERNALSYM WaitNamedPipe}
  3750. function SetVolumeLabelA(lpRootPathName, lpVolumeName: LPCSTR): BOOL; stdcall;
  3751. {$EXTERNALSYM SetVolumeLabelA}
  3752. function SetVolumeLabelW(lpRootPathName, lpVolumeName: LPCWSTR): BOOL; stdcall;
  3753. {$EXTERNALSYM SetVolumeLabelW}
  3754. function SetVolumeLabel(lpRootPathName, lpVolumeName: LPCTSTR): BOOL; stdcall;
  3755. {$EXTERNALSYM SetVolumeLabel}
  3756. procedure SetFileApisToOEM; stdcall;
  3757. {$EXTERNALSYM SetFileApisToOEM}
  3758. procedure SetFileApisToANSI; stdcall;
  3759. {$EXTERNALSYM SetFileApisToANSI}
  3760. function AreFileApisANSI: BOOL; stdcall;
  3761. {$EXTERNALSYM AreFileApisANSI}
  3762. function GetVolumeInformationA(lpRootPathName: LPCSTR; lpVolumeNameBuffer: LPSTR;
  3763. nVolumeNameSize: DWORD; lpVolumeSerialNumber: LPDWORD;
  3764. var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
  3765. lpFileSystemNameBuffer: LPSTR; nFileSystemNameSize: DWORD): BOOL; stdcall;
  3766. {$EXTERNALSYM GetVolumeInformationA}
  3767. function GetVolumeInformationW(lpRootPathName: LPCWSTR; lpVolumeNameBuffer: LPWSTR;
  3768. nVolumeNameSize: DWORD; lpVolumeSerialNumber: LPDWORD;
  3769. var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
  3770. lpFileSystemNameBuffer: LPWSTR; nFileSystemNameSize: DWORD): BOOL; stdcall;
  3771. {$EXTERNALSYM GetVolumeInformationW}
  3772. function GetVolumeInformation(lpRootPathName: LPCTSTR; lpVolumeNameBuffer: LPTSTR;
  3773. nVolumeNameSize: DWORD; lpVolumeSerialNumber: LPDWORD;
  3774. var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
  3775. lpFileSystemNameBuffer: LPTSTR; nFileSystemNameSize: DWORD): BOOL; stdcall;
  3776. {$EXTERNALSYM GetVolumeInformation}
  3777. function CancelIo(hFile: HANDLE): BOOL; stdcall;
  3778. {$EXTERNALSYM CancelIo}
  3779. //
  3780. // Event logging APIs
  3781. //
  3782. function ClearEventLogA(hEventLog: HANDLE; lpBackupFileName: LPCSTR): BOOL; stdcall;
  3783. {$EXTERNALSYM ClearEventLogA}
  3784. function ClearEventLogW(hEventLog: HANDLE; lpBackupFileName: LPCWSTR): BOOL; stdcall;
  3785. {$EXTERNALSYM ClearEventLogW}
  3786. function ClearEventLog(hEventLog: HANDLE; lpBackupFileName: LPCTSTR): BOOL; stdcall;
  3787. {$EXTERNALSYM ClearEventLogA}
  3788. function BackupEventLogA(hEventLog: HANDLE; lpBackupFileName: LPCSTR): BOOL; stdcall;
  3789. {$EXTERNALSYM BackupEventLogA}
  3790. function BackupEventLogW(hEventLog: HANDLE; lpBackupFileName: LPCWSTR): BOOL; stdcall;
  3791. {$EXTERNALSYM BackupEventLogW}
  3792. function BackupEventLog(hEventLog: HANDLE; lpBackupFileName: LPCTSTR): BOOL; stdcall;
  3793. {$EXTERNALSYM BackupEventLogA}
  3794. function CloseEventLog(hEventLog: HANDLE): BOOL; stdcall;
  3795. {$EXTERNALSYM CloseEventLog}
  3796. function DeregisterEventSource(hEventLog: HANDLE): BOOL; stdcall;
  3797. {$EXTERNALSYM DeregisterEventSource}
  3798. function NotifyChangeEventLog(hEventLog, hEvent: HANDLE): BOOL; stdcall;
  3799. {$EXTERNALSYM NotifyChangeEventLog}
  3800. function GetNumberOfEventLogRecords(hEventLog: HANDLE; var NumberOfRecords: DWORD): BOOL; stdcall;
  3801. {$EXTERNALSYM GetNumberOfEventLogRecords}
  3802. function GetOldestEventLogRecord(hEventLog: HANDLE; var OldestRecord: DWORD): BOOL; stdcall;
  3803. {$EXTERNALSYM GetOldestEventLogRecord}
  3804. function OpenEventLogA(lpUNCServerName, lpSourceName: LPCSTR): HANDLE; stdcall;
  3805. {$EXTERNALSYM OpenEventLogA}
  3806. function OpenEventLogW(lpUNCServerName, lpSourceName: LPCWSTR): HANDLE; stdcall;
  3807. {$EXTERNALSYM OpenEventLogW}
  3808. function OpenEventLog(lpUNCServerName, lpSourceName: LPCTSTR): HANDLE; stdcall;
  3809. {$EXTERNALSYM OpenEventLogA}
  3810. function RegisterEventSourceA(lpUNCServerName, lpSourceName: LPCSTR): HANDLE; stdcall;
  3811. {$EXTERNALSYM RegisterEventSourceA}
  3812. function RegisterEventSourceW(lpUNCServerName, lpSourceName: LPCWSTR): HANDLE; stdcall;
  3813. {$EXTERNALSYM RegisterEventSourceW}
  3814. function RegisterEventSource(lpUNCServerName, lpSourceName: LPCTSTR): HANDLE; stdcall;
  3815. {$EXTERNALSYM RegisterEventSourceA}
  3816. function OpenBackupEventLogA(lpUNCServerName, lpFileName: LPCSTR): HANDLE; stdcall;
  3817. {$EXTERNALSYM OpenBackupEventLogA}
  3818. function OpenBackupEventLogW(lpUNCServerName, lpFileName: LPCWSTR): HANDLE; stdcall;
  3819. {$EXTERNALSYM OpenBackupEventLogW}
  3820. function OpenBackupEventLog(lpUNCServerName, lpFileName: LPCTSTR): HANDLE; stdcall;
  3821. {$EXTERNALSYM OpenBackupEventLogA}
  3822. function ReadEventLogA(hEventLog: HANDLE; dwReadFlags, dwRecordOffset: DWORD;
  3823. lpBuffer: LPVOID; nNumberOfBytesToRead: DWORD;
  3824. var pnBytesRead, pnMinNumberOfBytesNeeded: DWORD): BOOL; stdcall;
  3825. {$EXTERNALSYM ReadEventLogA}
  3826. function ReadEventLogW(hEventLog: HANDLE; dwReadFlags, dwRecordOffset: DWORD;
  3827. lpBuffer: LPVOID; nNumberOfBytesToRead: DWORD;
  3828. var pnBytesRead, pnMinNumberOfBytesNeeded: DWORD): BOOL; stdcall;
  3829. {$EXTERNALSYM ReadEventLogW}
  3830. function ReadEventLog(hEventLog: HANDLE; dwReadFlags, dwRecordOffset: DWORD;
  3831. lpBuffer: LPVOID; nNumberOfBytesToRead: DWORD;
  3832. var pnBytesRead, pnMinNumberOfBytesNeeded: DWORD): BOOL; stdcall;
  3833. {$EXTERNALSYM ReadEventLog}
  3834. function ReportEventA(hEventLog: HANDLE; wType, wCategory: WORD; dwEventID: DWORD;
  3835. lpUserSid: PSID; wNumStrings: WORD; dwDataSize: DWORD; lpStrings: LPCSTR;
  3836. lpRawData: LPVOID): BOOL; stdcall;
  3837. {$EXTERNALSYM ReportEventA}
  3838. function ReportEventW(hEventLog: HANDLE; wType, wCategory: WORD; dwEventID: DWORD;
  3839. lpUserSid: PSID; wNumStrings: WORD; dwDataSize: DWORD; lpStrings: LPCWSTR;
  3840. lpRawData: LPVOID): BOOL; stdcall;
  3841. {$EXTERNALSYM ReportEventW}
  3842. function ReportEvent(hEventLog: HANDLE; wType, wCategory: WORD; dwEventID: DWORD;
  3843. lpUserSid: PSID; wNumStrings: WORD; dwDataSize: DWORD; lpStrings: LPCTSTR;
  3844. lpRawData: LPVOID): BOOL; stdcall;
  3845. {$EXTERNALSYM ReportEvent}
  3846. const
  3847. EVENTLOG_FULL_INFO = 0;
  3848. {$EXTERNALSYM EVENTLOG_FULL_INFO}
  3849. type
  3850. LPEVENTLOG_FULL_INFORMATION = ^EVENTLOG_FULL_INFORMATION;
  3851. {$EXTERNALSYM LPEVENTLOG_FULL_INFORMATION}
  3852. _EVENTLOG_FULL_INFORMATION = record
  3853. dwFull: DWORD;
  3854. end;
  3855. {$EXTERNALSYM _EVENTLOG_FULL_INFORMATION}
  3856. EVENTLOG_FULL_INFORMATION = _EVENTLOG_FULL_INFORMATION;
  3857. {$EXTERNALSYM EVENTLOG_FULL_INFORMATION}
  3858. TEventlogFullInformation = EVENTLOG_FULL_INFORMATION;
  3859. PEventlogFullInformation = LPEVENTLOG_FULL_INFORMATION;
  3860. function GetEventLogInformation(hEventLog: HANDLE; dwInfoLevel: DWORD;
  3861. lpBuffer: LPVOID; cbBufSize: DWORD; var pcbBytesNeeded: DWORD): BOOL; stdcall;
  3862. {$EXTERNALSYM GetEventLogInformation}
  3863. //
  3864. // Security APIs
  3865. //
  3866. function DuplicateToken(ExistingTokenHandle: HANDLE;
  3867. ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL; DuplicateTokenHandle: PHANDLE): BOOL; stdcall;
  3868. {$EXTERNALSYM DuplicateToken}
  3869. function GetKernelObjectSecurity(Handle: HANDLE;
  3870. RequestedInformation: SECURITY_INFORMATION;
  3871. pSecurityDescriptor: PSECURITY_DESCRIPTOR; nLength: DWORD;
  3872. var lpnLengthNeeded: DWORD): BOOL; stdcall;
  3873. {$EXTERNALSYM GetKernelObjectSecurity}
  3874. function ImpersonateNamedPipeClient(hNamedPipe: HANDLE): BOOL; stdcall;
  3875. {$EXTERNALSYM ImpersonateNamedPipeClient}
  3876. function ImpersonateSelf(ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL): BOOL; stdcall;
  3877. {$EXTERNALSYM ImpersonateSelf}
  3878. function RevertToSelf : BOOL; stdcall;
  3879. {$EXTERNALSYM RevertToSelf}
  3880. function SetThreadToken(Thread: PHANDLE; Token: HANDLE): BOOL; stdcall;
  3881. {$EXTERNALSYM SetThreadToken}
  3882. function AccessCheck(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  3883. ClientToken: HANDLE; DesiredAccess: DWORD; const GenericMapping: GENERIC_MAPPING;
  3884. var PrivilegeSet: PRIVILEGE_SET; var PrivilegeSetLength,
  3885. GrantedAccess: DWORD; var AccessStatus: BOOL): BOOL; stdcall;
  3886. {$EXTERNALSYM AccessCheck}
  3887. function AccessCheckByType(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  3888. PrincipalSelfSid: PSID; ClientToken: HANDLE; DesiredAccess: DWORD;
  3889. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3890. const GenericMapping: GENERIC_MAPPING; var PrivilegeSet: PRIVILEGE_SET;
  3891. var PrivilegeSetLength, GrantedAccess: DWORD; var AccessStatus: BOOL): BOOL; stdcall;
  3892. {$EXTERNALSYM AccessCheckByType}
  3893. function AccessCheckByTypeResultList(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  3894. PrincipalSelfSid: PSID; ClientToken: HANDLE; DesiredAccess: DWORD;
  3895. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3896. const GenericMapping: GENERIC_MAPPING; var PrivilegeSet: PRIVILEGE_SET;
  3897. var PrivilegeSetLength, GrantedAccessList: DWORD;
  3898. var AccessStatusList: DWORD): BOOL; stdcall;
  3899. {$EXTERNALSYM AccessCheckByTypeResultList}
  3900. function OpenProcessToken(ProcessHandle: HANDLE; DesiredAccess: DWORD;
  3901. var TokenHandle: HANDLE): BOOL; stdcall;
  3902. {$EXTERNALSYM OpenProcessToken}
  3903. function OpenThreadToken(ThreadHandle: HANDLE; DesiredAccess: DWORD;
  3904. OpenAsSelf: BOOL; var TokenHandle: HANDLE): BOOL; stdcall;
  3905. {$EXTERNALSYM OpenThreadToken}
  3906. function GetTokenInformation(TokenHandle: HANDLE;
  3907. TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: LPVOID;
  3908. TokenInformationLength: DWORD; var ReturnLength: DWORD): BOOL; stdcall;
  3909. {$EXTERNALSYM GetTokenInformation}
  3910. function SetTokenInformation(TokenHandle: HANDLE;
  3911. TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: LPVOID;
  3912. TokenInformationLength: DWORD): BOOL; stdcall;
  3913. {$EXTERNALSYM SetTokenInformation}
  3914. function AdjustTokenPrivileges(TokenHandle: HANDLE; DisableAllPrivileges: BOOL;
  3915. NewState: PTOKEN_PRIVILEGES; BufferLength: DWORD;
  3916. PreviousState: PTOKEN_PRIVILEGES; ReturnLength: LPDWORD): BOOL; stdcall;
  3917. {$EXTERNALSYM AdjustTokenPrivileges}
  3918. function AdjustTokenGroups(TokenHandle: HANDLE; ResetToDefault: BOOL;
  3919. NewState: PTOKEN_GROUPS; BufferLength: DWORD; PreviousState: PTOKEN_GROUPS;
  3920. ReturnLength: PDWORD): BOOL; stdcall;
  3921. {$EXTERNALSYM AdjustTokenGroups}
  3922. function PrivilegeCheck(ClientToken: HANDLE;
  3923. RequiredPrivileges: PPRIVILEGE_SET; var pfResult: BOOL): BOOL; stdcall;
  3924. {$EXTERNALSYM PrivilegeCheck}
  3925. function AccessCheckAndAuditAlarmA(SubsystemName: LPCSTR; HandleId: LPVOID;
  3926. ObjectTypeName, ObjectName: LPSTR; SecurityDescriptor: PSECURITY_DESCRIPTOR;
  3927. DesiredAccess: DWORD; const GenericMapping: GENERIC_MAPPING;
  3928. ObjectCreation: BOOL; var GrantedAccess: DWORD;
  3929. var AccessStatus, pfGenerateOnClose: BOOL): BOOL; stdcall;
  3930. {$EXTERNALSYM AccessCheckAndAuditAlarmA}
  3931. function AccessCheckAndAuditAlarmW(SubsystemName: LPCWSTR; HandleId: LPVOID;
  3932. ObjectTypeName, ObjectName: LPWSTR; SecurityDescriptor: PSECURITY_DESCRIPTOR;
  3933. DesiredAccess: DWORD; const GenericMapping: GENERIC_MAPPING;
  3934. ObjectCreation: BOOL; var GrantedAccess: DWORD;
  3935. var AccessStatus, pfGenerateOnClose: BOOL): BOOL; stdcall;
  3936. {$EXTERNALSYM AccessCheckAndAuditAlarmW}
  3937. function AccessCheckAndAuditAlarm(SubsystemName: LPCTSTR; HandleId: LPVOID;
  3938. ObjectTypeName, ObjectName: LPTSTR; SecurityDescriptor: PSECURITY_DESCRIPTOR;
  3939. DesiredAccess: DWORD; const GenericMapping: GENERIC_MAPPING;
  3940. ObjectCreation: BOOL; var GrantedAccess: DWORD;
  3941. var AccessStatus, pfGenerateOnClose: BOOL): BOOL; stdcall;
  3942. {$EXTERNALSYM AccessCheckAndAuditAlarmA}
  3943. function AccessCheckByTypeAndAuditAlarmA(SubsystemName: LPCSTR; HandleId: LPVOID;
  3944. ObjectTypeName: LPCSTR; ObjectName: LPCSTR; SecurityDescriptor: PSECURITY_DESCRIPTOR;
  3945. PrincipalSelfSid: PSID; DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE;
  3946. Flags: DWORD; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3947. GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOL; GrantedAccess: LPDWORD;
  3948. AccessStatus: LPBOOL; pfGenerateOnClose: LPBOOL): BOOL; stdcall;
  3949. {$EXTERNALSYM AccessCheckByTypeAndAuditAlarmA}
  3950. function AccessCheckByTypeAndAuditAlarmW(SubsystemName: LPCWSTR; HandleId: LPVOID;
  3951. ObjectTypeName: LPCWSTR; ObjectName: LPCWSTR; SecurityDescriptor: PSECURITY_DESCRIPTOR;
  3952. PrincipalSelfSid: PSID; DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE;
  3953. Flags: DWORD; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3954. GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOL; GrantedAccess: LPDWORD;
  3955. AccessStatus: LPBOOL; pfGenerateOnClose: LPBOOL): BOOL; stdcall;
  3956. {$EXTERNALSYM AccessCheckByTypeAndAuditAlarmW}
  3957. function AccessCheckByTypeAndAuditAlarm(SubsystemName: LPCTSTR; HandleId: LPVOID;
  3958. ObjectTypeName, ObjectName: LPCTSTR; SecurityDescriptor: PSECURITY_DESCRIPTOR;
  3959. PrincipalSelfSid: PSID; DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE;
  3960. Flags: DWORD; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3961. const GenericMapping: GENERIC_MAPPING; ObjectCreation: BOOL;
  3962. var GrantedAccess: DWORD; var AccessStatus, pfGenerateOnClose: BOOL): BOOL; stdcall;
  3963. {$EXTERNALSYM AccessCheckByTypeAndAuditAlarmA}
  3964. function AccessCheckByTypeResultListAndAuditAlarmA(SubsystemName: LPCSTR;
  3965. HandleId: LPVOID; ObjectTypeName, ObjectName: LPCSTR;
  3966. SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
  3967. DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD;
  3968. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3969. const GenericMapping: GENERIC_MAPPING; ObjectCreation: BOOL;
  3970. var GrantedAccess, AccessStatusList: DWORD; var pfGenerateOnClose: BOOL): BOOL; stdcall;
  3971. {$EXTERNALSYM AccessCheckByTypeResultListAndAuditAlarmA}
  3972. function AccessCheckByTypeResultListAndAuditAlarmW(SubsystemName: LPCWSTR;
  3973. HandleId: LPVOID; ObjectTypeName, ObjectName: LPCWSTR;
  3974. SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
  3975. DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD;
  3976. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3977. const GenericMapping: GENERIC_MAPPING; ObjectCreation: BOOL;
  3978. var GrantedAccess, AccessStatusList: DWORD; var pfGenerateOnClose: BOOL): BOOL; stdcall;
  3979. {$EXTERNALSYM AccessCheckByTypeResultListAndAuditAlarmW}
  3980. function AccessCheckByTypeResultListAndAuditAlarm(SubsystemName: LPCTSTR;
  3981. HandleId: LPVOID; ObjectTypeName, ObjectName: LPCTSTR;
  3982. SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
  3983. DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD;
  3984. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3985. const GenericMapping: GENERIC_MAPPING; ObjectCreation: BOOL;
  3986. var GrantedAccess, AccessStatusList: DWORD; var pfGenerateOnClose: BOOL): BOOL; stdcall;
  3987. {$EXTERNALSYM AccessCheckByTypeResultListAndAuditAlarmA}
  3988. function AccessCheckByTypeResultListAndAuditAlarmByHandleA(SubsystemName: LPCSTR;
  3989. HandleId: LPVOID; ClientToken: HANDLE; ObjectTypeName, ObjectName: LPCSTR;
  3990. SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
  3991. DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD;
  3992. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  3993. const GenericMapping: GENERIC_MAPPING; ObjectCreation: BOOL;
  3994. var GrantedAccess, AccessStatusList: DWORD; var pfGenerateOnClose: BOOL): BOOL; stdcall;
  3995. {$EXTERNALSYM AccessCheckByTypeResultListAndAuditAlarmByHandleA}
  3996. function AccessCheckByTypeResultListAndAuditAlarmByHandleW(SubsystemName: LPCWSTR;
  3997. HandleId: LPVOID; ClientToken: HANDLE; ObjectTypeName, ObjectName: LPCWSTR;
  3998. SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
  3999. DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD;
  4000. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  4001. const GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOL;
  4002. var GrantedAccess, AccessStatusList: DWORD; var pfGenerateOnClose: BOOL): BOOL; stdcall;
  4003. {$EXTERNALSYM AccessCheckByTypeResultListAndAuditAlarmByHandleW}
  4004. function AccessCheckByTypeResultListAndAuditAlarmByHandle(SubsystemName: LPCTSTR;
  4005. HandleId: LPVOID; ClientToken: HANDLE; ObjectTypeName, ObjectName: LPCTSTR;
  4006. SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
  4007. DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD;
  4008. ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: DWORD;
  4009. const GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOL;
  4010. var GrantedAccess, AccessStatusList: DWORD; var pfGenerateOnClose: BOOL): BOOL; stdcall;
  4011. {$EXTERNALSYM AccessCheckByTypeResultListAndAuditAlarmByHandle}
  4012. function ObjectOpenAuditAlarmA(SubsystemName: LPCSTR; HandleId: LPVOID;
  4013. ObjectTypeName: LPSTR; ObjectName: LPSTR; pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4014. ClientToken: HANDLE; DesiredAccess, GrantedAccess: DWORD;
  4015. Privileges: PPRIVILEGE_SET; ObjectCreation: BOOL; AccessGranted: BOOL;
  4016. var GenerateOnClose: BOOL): BOOL; stdcall;
  4017. {$EXTERNALSYM ObjectOpenAuditAlarmA}
  4018. function ObjectOpenAuditAlarmW(SubsystemName: LPCWSTR; HandleId: LPVOID;
  4019. ObjectTypeName, ObjectName: LPWSTR; pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4020. ClientToken: HANDLE; DesiredAccess: DWORD; GrantedAccess: DWORD;
  4021. Privileges: PPRIVILEGE_SET; ObjectCreation: BOOL; AccessGranted: BOOL;
  4022. var GenerateOnClose: BOOL): BOOL; stdcall;
  4023. {$EXTERNALSYM ObjectOpenAuditAlarmW}
  4024. function ObjectOpenAuditAlarm(SubsystemName: LPCTSTR; HandleId: LPVOID;
  4025. ObjectTypeName: LPTSTR; ObjectName: LPTSTR; pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4026. ClientToken: HANDLE; DesiredAccess: DWORD; GrantedAccess: DWORD;
  4027. Privileges: PPRIVILEGE_SET; ObjectCreation: BOOL; AccessGranted: BOOL;
  4028. var GenerateOnClose: BOOL): BOOL; stdcall;
  4029. {$EXTERNALSYM ObjectOpenAuditAlarmA}
  4030. function ObjectPrivilegeAuditAlarmA(SubsystemName: LPCSTR; HandleId: LPVOID;
  4031. ClientToken: HANDLE; DesiredAccess: DWORD; const Privileges: PRIVILEGE_SET;
  4032. AccessGranted: BOOL): BOOL; stdcall;
  4033. {$EXTERNALSYM ObjectPrivilegeAuditAlarmA}
  4034. function ObjectPrivilegeAuditAlarmW(SubsystemName: LPCWSTR; HandleId: LPVOID;
  4035. ClientToken: HANDLE; DesiredAccess: DWORD; const Privileges: PRIVILEGE_SET;
  4036. AccessGranted: BOOL): BOOL; stdcall;
  4037. {$EXTERNALSYM ObjectPrivilegeAuditAlarmW}
  4038. function ObjectPrivilegeAuditAlarm(SubsystemName: LPCTSTR; HandleId: LPVOID;
  4039. ClientToken: HANDLE; DesiredAccess: DWORD; const Privileges: PRIVILEGE_SET;
  4040. AccessGranted: BOOL): BOOL; stdcall;
  4041. {$EXTERNALSYM ObjectPrivilegeAuditAlarmA}
  4042. function ObjectCloseAuditAlarmA(SubsystemName: LPCSTR; HandleId: LPVOID;
  4043. GenerateOnClose: BOOL): BOOL; stdcall;
  4044. {$EXTERNALSYM ObjectCloseAuditAlarmA}
  4045. function ObjectCloseAuditAlarmW(SubsystemName: LPCWSTR; HandleId: LPVOID;
  4046. GenerateOnClose: BOOL): BOOL; stdcall;
  4047. {$EXTERNALSYM ObjectCloseAuditAlarmW}
  4048. function ObjectCloseAuditAlarm(SubsystemName: LPCTSTR; HandleId: LPVOID;
  4049. GenerateOnClose: BOOL): BOOL; stdcall;
  4050. {$EXTERNALSYM ObjectCloseAuditAlarmA}
  4051. function ObjectDeleteAuditAlarmA(SubsystemName: LPCSTR; HandleId: LPVOID;
  4052. GenerateOnClose: BOOL): BOOL; stdcall;
  4053. {$EXTERNALSYM ObjectDeleteAuditAlarmA}
  4054. function ObjectDeleteAuditAlarmW(SubsystemName: LPCWSTR; HandleId: LPVOID;
  4055. GenerateOnClose: BOOL): BOOL; stdcall;
  4056. {$EXTERNALSYM ObjectDeleteAuditAlarmW}
  4057. function ObjectDeleteAuditAlarm(SubsystemName: LPCTSTR; HandleId: LPVOID;
  4058. GenerateOnClose: BOOL): BOOL; stdcall;
  4059. {$EXTERNALSYM ObjectDeleteAuditAlarmA}
  4060. function PrivilegedServiceAuditAlarmA(SubsystemName, ServiceName: LPCSTR;
  4061. ClientToken: HANDLE; const Privileges: PRIVILEGE_SET; AccessGranted: BOOL): BOOL; stdcall;
  4062. {$EXTERNALSYM PrivilegedServiceAuditAlarmA}
  4063. function PrivilegedServiceAuditAlarmW(SubsystemName, ServiceName: LPCWSTR;
  4064. ClientToken: HANDLE; const Privileges: PRIVILEGE_SET; AccessGranted: BOOL): BOOL; stdcall;
  4065. {$EXTERNALSYM PrivilegedServiceAuditAlarmW}
  4066. function PrivilegedServiceAuditAlarm(SubsystemName, ServiceName: LPCTSTR;
  4067. ClientToken: HANDLE; const Privileges: PRIVILEGE_SET; AccessGranted: BOOL): BOOL; stdcall;
  4068. {$EXTERNALSYM PrivilegedServiceAuditAlarmA}
  4069. function IsWellKnownSid(pSid: PSID; WellKnownSidType: WELL_KNOWN_SID_TYPE): BOOL; stdcall;
  4070. {$EXTERNALSYM IsWellKnownSid}
  4071. function CreateWellKnownSid(WellKnownSidType: WELL_KNOWN_SID_TYPE; DomainSid: PSID;
  4072. pSid: PSID; var cbSid: DWORD): BOOL; stdcall;
  4073. {$EXTERNALSYM CreateWellKnownSid}
  4074. function EqualDomainSid(pSid1, pSid2: PSID; pfEqual: PBOOL): BOOL; stdcall;
  4075. {$EXTERNALSYM EqualDomainSid}
  4076. function GetWindowsAccountDomainSid(pSid, ppDomainSid: PSID; var cbSid: DWORD): BOOL; stdcall;
  4077. {$EXTERNALSYM GetWindowsAccountDomainSid}
  4078. function IsValidSid(pSid: PSID): BOOL; stdcall;
  4079. {$EXTERNALSYM IsValidSid}
  4080. function EqualSid(pSid1, pSid2: PSID): BOOL; stdcall;
  4081. {$EXTERNALSYM EqualSid}
  4082. function EqualPrefixSid(pSid1, pSid2: PSID): BOOL; stdcall;
  4083. {$EXTERNALSYM EqualPrefixSid}
  4084. function GetSidLengthRequired(nSubAuthorityCount: UCHAR): DWORD; stdcall;
  4085. {$EXTERNALSYM GetSidLengthRequired}
  4086. function AllocateAndInitializeSid(pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY;
  4087. SubAuthorityCount: BYTE; nSubAuthority0, nSubAuthority1, nSubAuthority2,
  4088. nSubAuthority3, nSubAuthority4, nSubAuthority5, nSubAuthority6,
  4089. nSubAuthority7: DWORD; var pSid: PSID): BOOL; stdcall;
  4090. {$EXTERNALSYM AllocateAndInitializeSid}
  4091. function FreeSid(pSid: PSID): PVOID; stdcall;
  4092. {$EXTERNALSYM FreeSid}
  4093. function InitializeSid(Sid: PSID; pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY;
  4094. nSubAuthorityCount: BYTE): BOOL; stdcall;
  4095. {$EXTERNALSYM InitializeSid}
  4096. function GetSidIdentifierAuthority(pSid: PSID): PSID_IDENTIFIER_AUTHORITY; stdcall;
  4097. {$EXTERNALSYM GetSidIdentifierAuthority}
  4098. function GetSidSubAuthority(pSid: PSID; nSubAuthority: DWORD): PDWORD; stdcall;
  4099. {$EXTERNALSYM GetSidSubAuthority}
  4100. function GetSidSubAuthorityCount(pSid: PSID): PUCHAR; stdcall;
  4101. {$EXTERNALSYM GetSidSubAuthorityCount}
  4102. function GetLengthSid(pSid: PSID): DWORD; stdcall;
  4103. {$EXTERNALSYM GetLengthSid}
  4104. function CopySid(nDestinationSidLength: DWORD; pDestinationSid: PSID;
  4105. pSourceSid: PSID): BOOL; stdcall;
  4106. {$EXTERNALSYM CopySid}
  4107. function AreAllAccessesGranted(GrantedAccess, DesiredAccess: DWORD): BOOL; stdcall;
  4108. {$EXTERNALSYM AreAllAccessesGranted}
  4109. function AreAnyAccessesGranted(GrantedAccess, DesiredAccess: DWORD): BOOL; stdcall;
  4110. {$EXTERNALSYM AreAnyAccessesGranted}
  4111. procedure MapGenericMask(var AccessMask: DWORD; var GenericMapping: GENERIC_MAPPING); stdcall;
  4112. {$EXTERNALSYM MapGenericMask}
  4113. function IsValidAcl(pAcl: PACL): BOOL; stdcall;
  4114. {$EXTERNALSYM IsValidAcl}
  4115. function InitializeAcl(pAcl: PACL; nAclLength: DWORD; dwAclRevision: DWORD): BOOL; stdcall;
  4116. {$EXTERNALSYM InitializeAcl}
  4117. function GetAclInformation(pAcl: PACL; pAclInformation: LPVOID;
  4118. nAclInformationLength: DWORD; dwAclInformationClass: ACL_INFORMATION_CLASS): BOOL; stdcall;
  4119. {$EXTERNALSYM GetAclInformation}
  4120. function SetAclInformation(pAcl: PACL; pAclInformation: LPVOID;
  4121. nAclInformationLength: DWORD; dwAclInformationClass: ACL_INFORMATION_CLASS): BOOL; stdcall;
  4122. {$EXTERNALSYM SetAclInformation}
  4123. function AddAce(pAcl: PACL; dwAceRevision: DWORD; dwStartingAceIndex: DWORD;
  4124. pAceList: LPVOID; nAceListLength: DWORD): BOOL; stdcall;
  4125. {$EXTERNALSYM AddAce}
  4126. function DeleteAce(pAcl: PACL; dwAceIndex: DWORD): BOOL; stdcall;
  4127. {$EXTERNALSYM DeleteAce}
  4128. function GetAce(pAcl: PACL; dwAceIndex: DWORD; var pAce: LPVOID): BOOL; stdcall;
  4129. {$EXTERNALSYM GetAce}
  4130. function AddAccessAllowedAce(pAcl: PACL; dwAceRevision, AccessMask: DWORD; pSid: PSID): BOOL; stdcall;
  4131. {$EXTERNALSYM AddAccessAllowedAce}
  4132. function AddAccessAllowedAceEx(pAcl: PACL; dwAceRevision, AceFlags,
  4133. AccessMask: DWORD; pSid: PSID): BOOL; stdcall;
  4134. {$EXTERNALSYM AddAccessAllowedAceEx}
  4135. function AddAccessDeniedAce(pAcl: PACL; dwAceRevision, AccessMask: DWORD; pSid: PSID): BOOL; stdcall;
  4136. {$EXTERNALSYM AddAccessDeniedAce}
  4137. function AddAccessDeniedAceEx(pAcl: PACL; dwAceRevision, AceFlags: DWORD;
  4138. AccessMask: DWORD; pSid: PSID): BOOL; stdcall;
  4139. {$EXTERNALSYM AddAccessDeniedAceEx}
  4140. function AddAuditAccessAce(pAcl: PACL; dwAceRevision, dwAccessMask: DWORD;
  4141. pSid: PSID; bAuditSuccess, bAuditFailure: BOOL): BOOL; stdcall;
  4142. {$EXTERNALSYM AddAuditAccessAce}
  4143. function AddAuditAccessAceEx(pAcl: PACL; dwAceRevision, AceFlags,
  4144. dwAccessMask: DWORD; pSid: PSID; bAuditSuccess, bAuditFailure: BOOL): BOOL; stdcall;
  4145. {$EXTERNALSYM AddAuditAccessAceEx}
  4146. function AddAccessAllowedObjectAce(pAcl: PACL; dwAceRevision, AceFlags,
  4147. AccessMask: DWORD; ObjectTypeGuid, InheritedObjectTypeGuid: LPGUID; pSid: PSID): BOOL; stdcall;
  4148. {$EXTERNALSYM AddAccessAllowedObjectAce}
  4149. function AddAccessDeniedObjectAce(pAcl: PACL; dwAceRevision, AceFlags,
  4150. AccessMask: DWORD; ObjectTypeGuid, InheritedObjectTypeGuid: LPGUID; pSid: PSID): BOOL; stdcall;
  4151. {$EXTERNALSYM AddAccessDeniedObjectAce}
  4152. function AddAuditAccessObjectAce(pAcl: PACL; dwAceRevision, AceFlags,
  4153. AccessMask: DWORD; ObjectTypeGuid, InheritedObjectTypeGuid: LPGUID; pSid: PSID;
  4154. bAuditSuccess, bAuditFailure: BOOL): BOOL; stdcall;
  4155. {$EXTERNALSYM AddAuditAccessObjectAce}
  4156. function FindFirstFreeAce(pAcl: PACL; var pAce: LPVOID): BOOL; stdcall;
  4157. {$EXTERNALSYM FindFirstFreeAce}
  4158. function InitializeSecurityDescriptor(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4159. dwRevision: DWORD): BOOL; stdcall;
  4160. {$EXTERNALSYM InitializeSecurityDescriptor}
  4161. function IsValidSecurityDescriptor(pSecurityDescriptor: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  4162. {$EXTERNALSYM IsValidSecurityDescriptor}
  4163. function GetSecurityDescriptorLength(pSecurityDescriptor: PSECURITY_DESCRIPTOR): DWORD; stdcall;
  4164. {$EXTERNALSYM GetSecurityDescriptorLength}
  4165. function GetSecurityDescriptorControl(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4166. var pControl: SECURITY_DESCRIPTOR_CONTROL; var lpdwRevision: DWORD): BOOL; stdcall;
  4167. {$EXTERNALSYM GetSecurityDescriptorControl}
  4168. function SetSecurityDescriptorControl(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4169. ControlBitsOfInterest, ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL): BOOL; stdcall;
  4170. {$EXTERNALSYM SetSecurityDescriptorControl}
  4171. function SetSecurityDescriptorDacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4172. bDaclPresent: BOOL; pDacl: PACL; bDaclDefaulted: BOOL): BOOL; stdcall;
  4173. {$EXTERNALSYM SetSecurityDescriptorDacl}
  4174. function GetSecurityDescriptorDacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4175. var lpbDaclPresent: BOOL; var pDacl: PACL; var lpbDaclDefaulted: BOOL): BOOL; stdcall;
  4176. {$EXTERNALSYM GetSecurityDescriptorDacl}
  4177. function SetSecurityDescriptorSacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4178. bSaclPresent: BOOL; pSacl: PACL; bSaclDefaulted: BOOL): BOOL; stdcall;
  4179. {$EXTERNALSYM SetSecurityDescriptorSacl}
  4180. function GetSecurityDescriptorSacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4181. var lpbSaclPresent: BOOL; var pSacl: PACL; var lpbSaclDefaulted: BOOL): BOOL; stdcall;
  4182. {$EXTERNALSYM GetSecurityDescriptorSacl}
  4183. function SetSecurityDescriptorOwner(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4184. pOwner: PSID; bOwnerDefaulted: BOOL): BOOL; stdcall;
  4185. {$EXTERNALSYM SetSecurityDescriptorOwner}
  4186. function GetSecurityDescriptorOwner(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4187. var pOwner: PSID; lpbOwnerDefaulted: PBOOL): BOOL; stdcall;
  4188. {$EXTERNALSYM GetSecurityDescriptorOwner}
  4189. function SetSecurityDescriptorGroup(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4190. pGroup: PSID; bGroupDefaulted: BOOL): BOOL; stdcall;
  4191. {$EXTERNALSYM SetSecurityDescriptorGroup}
  4192. function GetSecurityDescriptorGroup(pSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4193. var pGroup: PSID; lpbGroupDefaulted: PBOOL): BOOL; stdcall;
  4194. {$EXTERNALSYM GetSecurityDescriptorGroup}
  4195. function SetSecurityDescriptorRMControl(SecurityDescriptor: PSECURITY_DESCRIPTOR;
  4196. RMControl: PUCHAR): DWORD; stdcall;
  4197. {$EXTERNALSYM SetSecurityDescriptorRMControl}
  4198. function GetSecurityDescriptorRMControl(SecurityDescriptor: PSECURITY_DESCRIPTOR;
  4199. var RMControl: UCHAR): DWORD; stdcall;
  4200. {$EXTERNALSYM GetSecurityDescriptorRMControl}
  4201. function CreatePrivateObjectSecurity(ParentDescriptor, CreatorDescriptor: PSECURITY_DESCRIPTOR;
  4202. var NewDescriptor: PSECURITY_DESCRIPTOR; IsDirectoryObject: BOOL; Token: HANDLE;
  4203. const GenericMapping: GENERIC_MAPPING): BOOL; stdcall;
  4204. {$EXTERNALSYM CreatePrivateObjectSecurity}
  4205. function ConvertToAutoInheritPrivateObjectSecurity(ParentDescriptor,
  4206. CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4207. var NewSecurityDescriptor: PSECURITY_DESCRIPTOR; ObjectType: LPGUID;
  4208. IsDirectoryObject: ByteBool; const GenericMapping: GENERIC_MAPPING): BOOL; stdcall;
  4209. {$EXTERNALSYM ConvertToAutoInheritPrivateObjectSecurity}
  4210. function CreatePrivateObjectSecurityEx(ParentDescriptor,
  4211. CreatorDescriptor: PSECURITY_DESCRIPTOR;
  4212. var NewDescriptor: PSECURITY_DESCRIPTOR; ObjectType: LPGUID;
  4213. IsContainerObject: BOOL; AutoInheritFlags: ULONG; Token: HANDLE;
  4214. const GenericMapping: GENERIC_MAPPING): BOOL; stdcall;
  4215. {$EXTERNALSYM CreatePrivateObjectSecurityEx}
  4216. function SetPrivateObjectSecurity(SecurityInformation: SECURITY_INFORMATION;
  4217. ModificationDescriptor: PSECURITY_DESCRIPTOR;
  4218. var ObjectsSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4219. const GenericMapping: GENERIC_MAPPING; Token: HANDLE): BOOL; stdcall;
  4220. {$EXTERNALSYM SetPrivateObjectSecurity}
  4221. function SetPrivateObjectSecurityEx(SecurityInformation: SECURITY_INFORMATION;
  4222. ModificationDescriptor: PSECURITY_DESCRIPTOR;
  4223. var ObjectsSecurityDescriptor: PSECURITY_DESCRIPTOR; AutoInheritFlags: ULONG;
  4224. const GenericMapping: GENERIC_MAPPING; Token: HANDLE): BOOL; stdcall;
  4225. {$EXTERNALSYM SetPrivateObjectSecurityEx}
  4226. function GetPrivateObjectSecurity(ObjectDescriptor: PSECURITY_DESCRIPTOR;
  4227. SecurityInformation: SECURITY_INFORMATION;
  4228. ResultantDescriptor: PSECURITY_DESCRIPTOR; DescriptorLength: DWORD;
  4229. var ReturnLength: DWORD): BOOL; stdcall;
  4230. {$EXTERNALSYM GetPrivateObjectSecurity}
  4231. function DestroyPrivateObjectSecurity(var ObjectDescriptor: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  4232. {$EXTERNALSYM DestroyPrivateObjectSecurity}
  4233. function MakeSelfRelativeSD(pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4234. pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR; var lpdwBufferLength: DWORD): BOOL; stdcall;
  4235. {$EXTERNALSYM MakeSelfRelativeSD}
  4236. function MakeAbsoluteSD(pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4237. pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4238. var lpdwAbsoluteSecurityDescriptorSize: DWORD; pDacl: PACL;
  4239. var lpdwDaclSize: DWORD; pSacl: PACL; var lpdwSaclSize: DWORD; pOwner: PSID;
  4240. var lpdwOwnerSize: DWORD; pPrimaryGroup: PSID; var lpdwPrimaryGroupSize: DWORD): BOOL; stdcall;
  4241. {$EXTERNALSYM MakeAbsoluteSD}
  4242. function MakeAbsoluteSD2(pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR;
  4243. var lpdwBufferSize: DWORD): BOOL; stdcall;
  4244. {$EXTERNALSYM MakeAbsoluteSD2}
  4245. function SetFileSecurityA(lpFileName: LPCSTR; SecurityInformation: SECURITY_INFORMATION;
  4246. pSecurityDescriptor: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  4247. {$EXTERNALSYM SetFileSecurityA}
  4248. function SetFileSecurityW(lpFileName: LPCWSTR; SecurityInformation: SECURITY_INFORMATION;
  4249. pSecurityDescriptor: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  4250. {$EXTERNALSYM SetFileSecurityW}
  4251. function SetFileSecurity(lpFileName: LPCTSTR; SecurityInformation: SECURITY_INFORMATION;
  4252. pSecurityDescriptor: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  4253. {$EXTERNALSYM SetFileSecurityA}
  4254. function GetFileSecurityA(lpFileName: LPCSTR; RequestedInformation: SECURITY_INFORMATION;
  4255. pSecurityDescriptor: PSECURITY_DESCRIPTOR; nLength: DWORD;
  4256. var lpnLengthNeeded: DWORD): BOOL; stdcall;
  4257. {$EXTERNALSYM GetFileSecurityA}
  4258. function GetFileSecurityW(lpFileName: LPCWSTR; RequestedInformation: SECURITY_INFORMATION;
  4259. pSecurityDescriptor: PSECURITY_DESCRIPTOR; nLength: DWORD;
  4260. var lpnLengthNeeded: DWORD): BOOL; stdcall;
  4261. {$EXTERNALSYM GetFileSecurityW}
  4262. function GetFileSecurity(lpFileName: LPCTSTR; RequestedInformation: SECURITY_INFORMATION;
  4263. pSecurityDescriptor: PSECURITY_DESCRIPTOR; nLength: DWORD;
  4264. var lpnLengthNeeded: DWORD): BOOL; stdcall;
  4265. {$EXTERNALSYM GetFileSecurityA}
  4266. function SetKernelObjectSecurity(Handle: HANDLE; SecurityInformation: SECURITY_INFORMATION;
  4267. SecurityDescriptor: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  4268. {$EXTERNALSYM SetKernelObjectSecurity}
  4269. function FindFirstChangeNotificationA(lpPathName: LPCSTR; bWatchSubtree: Cardinal;
  4270. dwNotifyFilter: DWORD): HANDLE; stdcall;
  4271. {$EXTERNALSYM FindFirstChangeNotificationA}
  4272. function FindFirstChangeNotificationW(lpPathName: LPCWSTR; bWatchSubtree: Cardinal;
  4273. dwNotifyFilter: DWORD): HANDLE; stdcall;
  4274. {$EXTERNALSYM FindFirstChangeNotificationW}
  4275. function FindFirstChangeNotification(lpPathName: LPCTSTR; bWatchSubtree: Cardinal;
  4276. dwNotifyFilter: DWORD): HANDLE; stdcall;
  4277. {$EXTERNALSYM FindFirstChangeNotification}
  4278. function FindNextChangeNotification(hChangeHandle: HANDLE): BOOL; stdcall;
  4279. {$EXTERNALSYM FindNextChangeNotification}
  4280. function FindCloseChangeNotification(hChangeHandle: HANDLE): BOOL; stdcall;
  4281. {$EXTERNALSYM FindCloseChangeNotification}
  4282. function ReadDirectoryChangesW(hDirectory: HANDLE; lpBuffer: LPVOID;
  4283. nBufferLength: DWORD; bWatchSubtree: BOOL; dwNotifyFilter: DWORD;
  4284. lpBytesReturned: LPDWORD; lpOverlapped: LPOVERLAPPED;
  4285. lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE): BOOL; stdcall;
  4286. {$EXTERNALSYM ReadDirectoryChangesW}
  4287. function VirtualLock(lpAddress: LPVOID; dwSize: SIZE_T): BOOL; stdcall;
  4288. {$EXTERNALSYM VirtualLock}
  4289. function VirtualUnlock(lpAddress: LPVOID; dwSize: SIZE_T): BOOL; stdcall;
  4290. {$EXTERNALSYM VirtualUnlock}
  4291. function MapViewOfFileEx(hFileMappingObject: HANDLE; dwDesiredAccess: DWORD;
  4292. dwFileOffsetHigh: DWORD; dwFileOffsetLow: DWORD; dwNumberOfBytesToMap: SIZE_T;
  4293. lpBaseAddress: LPVOID): LPVOID; stdcall;
  4294. {$EXTERNALSYM MapViewOfFileEx}
  4295. function SetPriorityClass(hProcess: HANDLE; dwPriorityClass: DWORD): BOOL; stdcall;
  4296. {$EXTERNALSYM SetPriorityClass}
  4297. function GetPriorityClass(hProcess: HANDLE): DWORD; stdcall;
  4298. {$EXTERNALSYM GetPriorityClass}
  4299. function IsBadReadPtr(lp: LPVOID; ucb: UINT_PTR): BOOL; stdcall;
  4300. {$EXTERNALSYM IsBadReadPtr}
  4301. function IsBadWritePtr(lp: LPVOID; ucb: UINT_PTR): BOOL; stdcall;
  4302. {$EXTERNALSYM IsBadWritePtr}
  4303. function IsBadHugeReadPtr(lp: LPVOID; ucb: UINT_PTR): BOOL; stdcall;
  4304. {$EXTERNALSYM IsBadHugeReadPtr}
  4305. function IsBadHugeWritePtr(lp: LPVOID; ucb: UINT_PTR): BOOL; stdcall;
  4306. {$EXTERNALSYM IsBadHugeWritePtr}
  4307. function IsBadCodePtr(lpfn: FARPROC): BOOL; stdcall;
  4308. {$EXTERNALSYM IsBadCodePtr}
  4309. function IsBadStringPtrA(lpsz: LPCSTR; ucchMax: UINT_PTR): BOOL; stdcall;
  4310. {$EXTERNALSYM IsBadStringPtrA}
  4311. function IsBadStringPtrW(lpsz: LPCWSTR; ucchMax: UINT_PTR): BOOL; stdcall;
  4312. {$EXTERNALSYM IsBadStringPtrW}
  4313. function IsBadStringPtr(lpsz: LPCTSTR; ucchMax: UINT_PTR): BOOL; stdcall;
  4314. {$EXTERNALSYM IsBadStringPtr}
  4315. function LookupAccountSidA(lpSystemName: LPCSTR; Sid: PSID; Name: LPSTR;
  4316. var cchName: DWORD; ReferencedDomainName: LPSTR; var cchReferencedDomainName: DWORD;
  4317. var peUse: SID_NAME_USE): BOOL; stdcall;
  4318. {$EXTERNALSYM LookupAccountSidA}
  4319. function LookupAccountSidW(lpSystemName: LPCWSTR; Sid: PSID; Name: LPWSTR;
  4320. var cchName: DWORD; ReferencedDomainName: LPWSTR; var cchReferencedDomainName: DWORD;
  4321. var peUse: SID_NAME_USE): BOOL; stdcall;
  4322. {$EXTERNALSYM LookupAccountSidW}
  4323. function LookupAccountSid(lpSystemName: LPCTSTR; Sid: PSID; Name: LPTSTR;
  4324. var cchName: DWORD; ReferencedDomainName: LPTSTR; var cchReferencedDomainName: DWORD;
  4325. var peUse: SID_NAME_USE): BOOL; stdcall;
  4326. {$EXTERNALSYM LookupAccountSid}
  4327. function LookupAccountNameA(lpSystemName, lpAccountName: LPCSTR; Sid: PSID;
  4328. var cbSid: DWORD; ReferencedDomainName: LPSTR; var cchReferencedDomainName: DWORD;
  4329. var peUse: SID_NAME_USE): BOOL; stdcall;
  4330. {$EXTERNALSYM LookupAccountNameA}
  4331. function LookupAccountNameW(lpSystemName, lpAccountName: LPCWSTR; Sid: PSID;
  4332. var cbSid: DWORD; ReferencedDomainName: LPWSTR; var cchReferencedDomainName: DWORD;
  4333. var peUse: SID_NAME_USE): BOOL; stdcall;
  4334. {$EXTERNALSYM LookupAccountNameW}
  4335. function LookupAccountName(lpSystemName: LPCTSTR; lpAccountName: LPCTSTR; Sid: PSID;
  4336. var cbSid: DWORD; ReferencedDomainName: LPTSTR; var cchReferencedDomainName: DWORD;
  4337. var peUse: SID_NAME_USE): BOOL; stdcall;
  4338. {$EXTERNALSYM LookupAccountName}
  4339. function LookupPrivilegeValueA(lpSystemName, lpName: LPCSTR; var lpLuid: LUID): BOOL; stdcall;
  4340. {$EXTERNALSYM LookupPrivilegeValueA}
  4341. function LookupPrivilegeValueW(lpSystemName, lpName: LPCWSTR; var lpLuid: LUID): BOOL; stdcall;
  4342. {$EXTERNALSYM LookupPrivilegeValueW}
  4343. function LookupPrivilegeValue(lpSystemName, lpName: LPCTSTR; var lpLuid: LUID): BOOL; stdcall;
  4344. {$EXTERNALSYM LookupPrivilegeValue}
  4345. function LookupPrivilegeNameA(lpSystemName: LPCSTR; const lpLuid: LUID;
  4346. lpName: LPSTR; var cbName: DWORD): BOOL; stdcall;
  4347. {$EXTERNALSYM LookupPrivilegeNameA}
  4348. function LookupPrivilegeNameW(lpSystemName: LPCWSTR; const lpLuid: LUID;
  4349. lpName: LPWSTR; var cbName: DWORD): BOOL; stdcall;
  4350. {$EXTERNALSYM LookupPrivilegeNameW}
  4351. function LookupPrivilegeName(lpSystemName: LPCTSTR; const lpLuid: LUID;
  4352. lpName: LPTSTR; var cbName: DWORD): BOOL; stdcall;
  4353. {$EXTERNALSYM LookupPrivilegeName}
  4354. function LookupPrivilegeDisplayNameA(lpSystemName, lpName: LPCSTR;
  4355. lpDisplayName: LPSTR; var cbDisplayName, lpLanguageId: DWORD): BOOL; stdcall;
  4356. {$EXTERNALSYM LookupPrivilegeDisplayNameA}
  4357. function LookupPrivilegeDisplayNameW(lpSystemName, lpName: LPCWSTR;
  4358. lpDisplayName: LPWSTR; var cbDisplayName, lpLanguageId: DWORD): BOOL; stdcall;
  4359. {$EXTERNALSYM LookupPrivilegeDisplayNameW}
  4360. function LookupPrivilegeDisplayName(lpSystemName, lpName: LPCTSTR;
  4361. lpDisplayName: LPTSTR; var cbDisplayName, lpLanguageId: DWORD): BOOL; stdcall;
  4362. {$EXTERNALSYM LookupPrivilegeDisplayName}
  4363. function AllocateLocallyUniqueId(var Luid: LUID): BOOL; stdcall;
  4364. {$EXTERNALSYM AllocateLocallyUniqueId}
  4365. function BuildCommDCBA(lpDef: LPCSTR; var lpDCB: DCB): BOOL; stdcall;
  4366. {$EXTERNALSYM BuildCommDCBA}
  4367. function BuildCommDCBW(lpDef: LPCWSTR; var lpDCB: DCB): BOOL; stdcall;
  4368. {$EXTERNALSYM BuildCommDCBW}
  4369. function BuildCommDCB(lpDef: LPCTSTR; var lpDCB: DCB): BOOL; stdcall;
  4370. {$EXTERNALSYM BuildCommDCB}
  4371. function BuildCommDCBAndTimeoutsA(lpDef: LPCSTR; var lpDCB: DCB;
  4372. var lpCommTimeouts: COMMTIMEOUTS): BOOL; stdcall;
  4373. {$EXTERNALSYM BuildCommDCBAndTimeoutsA}
  4374. function BuildCommDCBAndTimeoutsW(lpDef: LPCWSTR; var lpDCB: DCB;
  4375. var lpCommTimeouts: COMMTIMEOUTS): BOOL; stdcall;
  4376. {$EXTERNALSYM BuildCommDCBAndTimeoutsW}
  4377. function BuildCommDCBAndTimeouts(lpDef: LPCTSTR; var lpDCB: DCB;
  4378. var lpCommTimeouts: COMMTIMEOUTS): BOOL; stdcall;
  4379. {$EXTERNALSYM BuildCommDCBAndTimeouts}
  4380. function CommConfigDialogA(lpszName: LPCSTR; hWnd: HWND; var lpCC: COMMCONFIG): BOOL; stdcall;
  4381. {$EXTERNALSYM CommConfigDialogA}
  4382. function CommConfigDialogW(lpszName: LPCWSTR; hWnd: HWND; var lpCC: COMMCONFIG): BOOL; stdcall;
  4383. {$EXTERNALSYM CommConfigDialogW}
  4384. function CommConfigDialog(lpszName: LPCTSTR; hWnd: HWND; var lpCC: COMMCONFIG): BOOL; stdcall;
  4385. {$EXTERNALSYM CommConfigDialog}
  4386. function GetDefaultCommConfigA(lpszName: LPCSTR; var lpCC: COMMCONFIG;
  4387. var lpdwSize: DWORD): BOOL; stdcall;
  4388. {$EXTERNALSYM GetDefaultCommConfigA}
  4389. function GetDefaultCommConfigW(lpszName: LPCWSTR; var lpCC: COMMCONFIG;
  4390. var lpdwSize: DWORD): BOOL; stdcall;
  4391. {$EXTERNALSYM GetDefaultCommConfigW}
  4392. function GetDefaultCommConfig(lpszName: LPCTSTR; var lpCC: COMMCONFIG;
  4393. var lpdwSize: DWORD): BOOL; stdcall;
  4394. {$EXTERNALSYM GetDefaultCommConfig}
  4395. function SetDefaultCommConfigA(lpszName: LPCSTR; const lpCC: COMMCONFIG;
  4396. dwSize: DWORD): BOOL; stdcall;
  4397. {$EXTERNALSYM SetDefaultCommConfigA}
  4398. function SetDefaultCommConfigW(lpszName: LPCWSTR; const lpCC: COMMCONFIG;
  4399. dwSize: DWORD): BOOL; stdcall;
  4400. {$EXTERNALSYM SetDefaultCommConfigW}
  4401. function SetDefaultCommConfig(lpszName: LPCTSTR; const lpCC: COMMCONFIG;
  4402. dwSize: DWORD): BOOL; stdcall;
  4403. {$EXTERNALSYM SetDefaultCommConfig}
  4404. const
  4405. MAX_COMPUTERNAME_LENGTH = 15;
  4406. {$EXTERNALSYM MAX_COMPUTERNAME_LENGTH}
  4407. function GetComputerNameA(lpBuffer: LPSTR; var nSize: DWORD): BOOL; stdcall;
  4408. {$EXTERNALSYM GetComputerNameA}
  4409. function GetComputerNameW(lpBuffer: LPWSTR; var nSize: DWORD): BOOL; stdcall;
  4410. {$EXTERNALSYM GetComputerNameW}
  4411. function GetComputerName(lpBuffer: LPTSTR; var nSize: DWORD): BOOL; stdcall;
  4412. {$EXTERNALSYM GetComputerName}
  4413. function SetComputerNameA(lpComputerName: LPCSTR): BOOL; stdcall;
  4414. {$EXTERNALSYM SetComputerNameA}
  4415. function SetComputerNameW(lpComputerName: LPCWSTR): BOOL; stdcall;
  4416. {$EXTERNALSYM SetComputerNameW}
  4417. function SetComputerName(lpComputerName: LPCTSTR): BOOL; stdcall;
  4418. {$EXTERNALSYM SetComputerName}
  4419. type
  4420. _COMPUTER_NAME_FORMAT = (
  4421. ComputerNameNetBIOS,
  4422. ComputerNameDnsHostname,
  4423. ComputerNameDnsDomain,
  4424. ComputerNameDnsFullyQualified,
  4425. ComputerNamePhysicalNetBIOS,
  4426. ComputerNamePhysicalDnsHostname,
  4427. ComputerNamePhysicalDnsDomain,
  4428. ComputerNamePhysicalDnsFullyQualified,
  4429. ComputerNameMax);
  4430. {$EXTERNALSYM _COMPUTER_NAME_FORMAT}
  4431. COMPUTER_NAME_FORMAT = _COMPUTER_NAME_FORMAT;
  4432. {$EXTERNALSYM COMPUTER_NAME_FORMAT}
  4433. TComputerNameFormat = COMPUTER_NAME_FORMAT;
  4434. function GetComputerNameExA(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPSTR;
  4435. var nSize: DWORD): BOOL; stdcall;
  4436. {$EXTERNALSYM GetComputerNameExA}
  4437. function GetComputerNameExW(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPWSTR;
  4438. var nSize: DWORD): BOOL; stdcall;
  4439. {$EXTERNALSYM GetComputerNameExW}
  4440. function GetComputerNameEx(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPTSTR;
  4441. varnSize: DWORD): BOOL; stdcall;
  4442. {$EXTERNALSYM GetComputerNameEx}
  4443. function SetComputerNameExA(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPCSTR): BOOL; stdcall;
  4444. {$EXTERNALSYM SetComputerNameExA}
  4445. function SetComputerNameExW(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPCWSTR): BOOL; stdcall;
  4446. {$EXTERNALSYM SetComputerNameExW}
  4447. function SetComputerNameEx(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPCTSTR): BOOL; stdcall;
  4448. {$EXTERNALSYM SetComputerNameEx}
  4449. function DnsHostnameToComputerNameA(Hostname, ComputerName: LPSTR; var nSize: DWORD): BOOL; stdcall;
  4450. {$EXTERNALSYM DnsHostnameToComputerNameA}
  4451. function DnsHostnameToComputerNameW(Hostname, ComputerName: LPWSTR; var nSize: DWORD): BOOL; stdcall;
  4452. {$EXTERNALSYM DnsHostnameToComputerNameW}
  4453. function DnsHostnameToComputerName(Hostname, ComputerName: LPTSTR; var nSize: DWORD): BOOL; stdcall;
  4454. {$EXTERNALSYM DnsHostnameToComputerName}
  4455. function GetUserNameA(lpBuffer: LPSTR; var nSize: DWORD): BOOL; stdcall;
  4456. {$EXTERNALSYM GetUserNameA}
  4457. function GetUserNameW(lpBuffer: LPWSTR; var nSize: DWORD): BOOL; stdcall;
  4458. {$EXTERNALSYM GetUserNameW}
  4459. function GetUserName(lpBuffer: LPTSTR; var nSize: DWORD): BOOL; stdcall;
  4460. {$EXTERNALSYM GetUserName}
  4461. //
  4462. // Logon Support APIs
  4463. //
  4464. const
  4465. LOGON32_LOGON_INTERACTIVE = 2;
  4466. {$EXTERNALSYM LOGON32_LOGON_INTERACTIVE}
  4467. LOGON32_LOGON_NETWORK = 3;
  4468. {$EXTERNALSYM LOGON32_LOGON_NETWORK}
  4469. LOGON32_LOGON_BATCH = 4;
  4470. {$EXTERNALSYM LOGON32_LOGON_BATCH}
  4471. LOGON32_LOGON_SERVICE = 5;
  4472. {$EXTERNALSYM LOGON32_LOGON_SERVICE}
  4473. LOGON32_LOGON_UNLOCK = 7;
  4474. {$EXTERNALSYM LOGON32_LOGON_UNLOCK}
  4475. LOGON32_LOGON_NETWORK_CLEARTEXT = 8;
  4476. {$EXTERNALSYM LOGON32_LOGON_NETWORK_CLEARTEXT}
  4477. LOGON32_LOGON_NEW_CREDENTIALS = 9;
  4478. {$EXTERNALSYM LOGON32_LOGON_NEW_CREDENTIALS}
  4479. LOGON32_PROVIDER_DEFAULT = 0;
  4480. {$EXTERNALSYM LOGON32_PROVIDER_DEFAULT}
  4481. LOGON32_PROVIDER_WINNT35 = 1;
  4482. {$EXTERNALSYM LOGON32_PROVIDER_WINNT35}
  4483. LOGON32_PROVIDER_WINNT40 = 2;
  4484. {$EXTERNALSYM LOGON32_PROVIDER_WINNT40}
  4485. LOGON32_PROVIDER_WINNT50 = 3;
  4486. {$EXTERNALSYM LOGON32_PROVIDER_WINNT50}
  4487. function LogonUserA(lpszUsername, lpszDomain, lpszPassword: LPCSTR;
  4488. dwLogonType, dwLogonProvider: DWORD; var phToken: HANDLE): BOOL; stdcall;
  4489. {$EXTERNALSYM LogonUserA}
  4490. function LogonUserW(lpszUsername, lpszDomain, lpszPassword: LPCWSTR;
  4491. dwLogonType, dwLogonProvider: DWORD; var phToken: HANDLE): BOOL; stdcall;
  4492. {$EXTERNALSYM LogonUserW}
  4493. function LogonUser(lpszUsername, lpszDomain, lpszPassword: LPCTSTR;
  4494. dwLogonType, dwLogonProvider: DWORD; var phToken: HANDLE): BOOL; stdcall;
  4495. {$EXTERNALSYM LogonUser}
  4496. function LogonUserExA(lpszUsername, lpszDomain, lpszPassword: LPCSTR;
  4497. dwLogonType, dwLogonProvider: DWORD; var phToken: HANDLE; ppLogonSid: PPSID;
  4498. ppProfileBuffer: PPVOID; pdwProfileLength: LPDWORD; pQuotaLimits: PQUOTA_LIMITS): BOOL; stdcall;
  4499. {$EXTERNALSYM LogonUserExA}
  4500. function LogonUserExW(lpszUsername, lpszDomain, lpszPassword: LPCWSTR;
  4501. dwLogonType, dwLogonProvider: DWORD; var phToken: HANDLE; ppLogonSid: PPSID;
  4502. ppProfileBuffer: PPVOID; pdwProfileLength: LPDWORD; pQuotaLimits: PQUOTA_LIMITS): BOOL; stdcall;
  4503. {$EXTERNALSYM LogonUserExW}
  4504. function LogonUserEx(lpszUsername, lpszDomain, lpszPassword: LPCTSTR;
  4505. dwLogonType, dwLogonProvider: DWORD; var phToken: HANDLE; ppLogonSid: PPSID;
  4506. ppProfileBuffer: PPVOID; pdwProfileLength: LPDWORD; pQuotaLimits: PQUOTA_LIMITS): BOOL; stdcall;
  4507. {$EXTERNALSYM LogonUserEx}
  4508. function ImpersonateLoggedOnUser(hToken: HANDLE): BOOL; stdcall;
  4509. {$EXTERNALSYM ImpersonateLoggedOnUser}
  4510. function CreateProcessAsUserA(hToken: HANDLE; lpApplicationName: LPCSTR;
  4511. lpCommandLine: LPSTR; lpProcessAttributes: LPSECURITY_ATTRIBUTES;
  4512. lpThreadAttributes: LPSECURITY_ATTRIBUTES; bInheritHandles: BOOL;
  4513. dwCreationFlags: DWORD; lpEnvironment: LPVOID; lpCurrentDirectory: LPCSTR;
  4514. const lpStartupInfo: STARTUPINFOA; var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
  4515. {$EXTERNALSYM CreateProcessAsUserA}
  4516. function CreateProcessAsUserW(hToken: HANDLE; lpApplicationName: LPCWSTR;
  4517. lpCommandLine: LPWSTR; lpProcessAttributes: LPSECURITY_ATTRIBUTES;
  4518. lpThreadAttributes: LPSECURITY_ATTRIBUTES; bInheritHandles: BOOL;
  4519. dwCreationFlags: DWORD; lpEnvironment: LPVOID; lpCurrentDirectory: LPCWSTR;
  4520. const lpStartupInfo: STARTUPINFOW; var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
  4521. {$EXTERNALSYM CreateProcessAsUserW}
  4522. function CreateProcessAsUser(hToken: HANDLE; lpApplicationName: LPCTSTR;
  4523. lpCommandLine: LPTSTR; lpProcessAttributes: LPSECURITY_ATTRIBUTES;
  4524. lpThreadAttributes: LPSECURITY_ATTRIBUTES; bInheritHandles: BOOL;
  4525. dwCreationFlags: DWORD; lpEnvironment: LPVOID; lpCurrentDirectory: LPCTSTR;
  4526. const lpStartupInfo: STARTUPINFO; var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
  4527. {$EXTERNALSYM CreateProcessAsUser}
  4528. //
  4529. // LogonFlags
  4530. //
  4531. const
  4532. LOGON_WITH_PROFILE = $00000001;
  4533. {$EXTERNALSYM LOGON_WITH_PROFILE}
  4534. LOGON_NETCREDENTIALS_ONLY = $00000002;
  4535. {$EXTERNALSYM LOGON_NETCREDENTIALS_ONLY}
  4536. LOGON_ZERO_PASSWORD_BUFFER = DWORD($80000000);
  4537. {$EXTERNALSYM LOGON_ZERO_PASSWORD_BUFFER}
  4538. function CreateProcessWithLogonW(lpUsername, lpDomain, lpPassword: LPCWSTR;
  4539. dwLogonFlags: DWORD; lpApplicationName: LPCWSTR; lpCommandLine: LPWSTR;
  4540. dwCreationFlags: DWORD; lpEnvironment: LPVOID; lpCurrentDirectory: LPCWSTR;
  4541. const lpStartupInfo: STARTUPINFOW; var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
  4542. {$EXTERNALSYM CreateProcessWithLogonW}
  4543. function CreateProcessWithTokenW(hToken: HANDLE; dwLogonFlags: DWORD; lpApplicationName: LPCWSTR; lpCommandLine: LPWSTR;
  4544. dwCreationFlags: DWORD; lpEnvironment: LPVOID; lpCurrentDirectory: LPCWSTR; lpStartupInfo: LPSTARTUPINFOW;
  4545. lpProcessInformation: LPPROCESS_INFORMATION): BOOL; stdcall;
  4546. {$EXTERNALSYM CreateProcessWithTokenW}
  4547. function ImpersonateAnonymousToken(ThreadHandle: HANDLE): BOOL; stdcall;
  4548. {$EXTERNALSYM ImpersonateAnonymousToken}
  4549. function DuplicateTokenEx(hExistingToken: HANDLE; dwDesiredAccess: DWORD;
  4550. lpTokenAttributes: LPSECURITY_ATTRIBUTES; ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL;
  4551. TokenType: TOKEN_TYPE; var phNewToken: HANDLE): BOOL; stdcall;
  4552. {$EXTERNALSYM DuplicateTokenEx}
  4553. function CreateRestrictedToken(ExistingTokenHandle: HANDLE; Flags: DWORD;
  4554. DisableSidCount: DWORD; SidsToDisable: PSID_AND_ATTRIBUTES;
  4555. DeletePrivilegeCount: DWORD; PrivilegesToDelete: PLUID_AND_ATTRIBUTES;
  4556. RestrictedSidCount: DWORD; SidsToRestrict: PSID_AND_ATTRIBUTES;
  4557. var NewTokenHandle: HANDLE): BOOL; stdcall;
  4558. {$EXTERNALSYM CreateRestrictedToken}
  4559. function IsTokenRestricted(TokenHandle: HANDLE): BOOL; stdcall;
  4560. {$EXTERNALSYM IsTokenRestricted}
  4561. function CheckTokenMembership(TokenHandle: HANDLE; SidToCheck: PSID; var IsMember: BOOL): BOOL; stdcall;
  4562. {$EXTERNALSYM CheckTokenMembership}
  4563. function IsTokenUntrusted(TokenHandle: HANDLE): BOOL; stdcall;
  4564. {$EXTERNALSYM IsTokenUntrusted}
  4565. //
  4566. // Thread pool API's
  4567. //
  4568. type
  4569. WAITORTIMERCALLBACK = WAITORTIMERCALLBACKFUNC;
  4570. {$EXTERNALSYM WAITORTIMERCALLBACK}
  4571. TWaitOrTimerCallback = WAITORTIMERCALLBACKFUNC;
  4572. function RegisterWaitForSingleObject(var phNewWaitObject: HANDLE; hObject: HANDLE;
  4573. Callback: WAITORTIMERCALLBACK; Context: PVOID; dwMilliseconds, dwFlags: ULONG): BOOL; stdcall;
  4574. {$EXTERNALSYM RegisterWaitForSingleObject}
  4575. function RegisterWaitForSingleObjectEx(hObject: HANDLE;
  4576. Callback: WAITORTIMERCALLBACK; Context: PVOID; dwMilliseconds, dwFlags: ULONG): HANDLE; stdcall;
  4577. {$EXTERNALSYM RegisterWaitForSingleObjectEx}
  4578. function UnregisterWait(WaitHandle: HANDLE): BOOL; stdcall;
  4579. {$EXTERNALSYM UnregisterWait}
  4580. function UnregisterWaitEx(WaitHandle, CompletionEvent: HANDLE): BOOL; stdcall;
  4581. {$EXTERNALSYM UnregisterWaitEx}
  4582. function QueueUserWorkItem(Function_: LPTHREAD_START_ROUTINE; Context: PVOID;
  4583. Flags: ULONG): BOOL; stdcall;
  4584. {$EXTERNALSYM QueueUserWorkItem}
  4585. function BindIoCompletionCallback(FileHandle: HANDLE;
  4586. Function_: LPOVERLAPPED_COMPLETION_ROUTINE; Flags: ULONG): BOOL; stdcall;
  4587. {$EXTERNALSYM BindIoCompletionCallback}
  4588. function CreateTimerQueue: HANDLE; stdcall;
  4589. {$EXTERNALSYM CreateTimerQueue}
  4590. function CreateTimerQueueTimer(var phNewTimer: HANDLE; TimerQueue: HANDLE;
  4591. Callback: WAITORTIMERCALLBACK; Parameter: PVOID; DueTime, Period: DWORD;
  4592. Flags: ULONG): BOOL; stdcall;
  4593. {$EXTERNALSYM CreateTimerQueueTimer}
  4594. function ChangeTimerQueueTimer(TimerQueue, Timer: HANDLE; DueTime, Period: ULONG): BOOL; stdcall;
  4595. {$EXTERNALSYM ChangeTimerQueueTimer}
  4596. function DeleteTimerQueueTimer(TimerQueue, Timer, CompletionEvent: HANDLE): BOOL; stdcall;
  4597. {$EXTERNALSYM DeleteTimerQueueTimer}
  4598. function DeleteTimerQueueEx(TimerQueue, CompletionEvent: HANDLE): BOOL; stdcall;
  4599. {$EXTERNALSYM DeleteTimerQueueEx}
  4600. function SetTimerQueueTimer(TimerQueue, Callback: WAITORTIMERCALLBACK;
  4601. Parameter: PVOID; DueTime, Period: DWORD; PreferIo: BOOL): HANDLE; stdcall;
  4602. {$EXTERNALSYM SetTimerQueueTimer}
  4603. function CancelTimerQueueTimer(TimerQueue, Timer: HANDLE): BOOL; stdcall;
  4604. {$EXTERNALSYM CancelTimerQueueTimer}
  4605. function DeleteTimerQueue(TimerQueue: HANDLE): BOOL; stdcall;
  4606. {$EXTERNALSYM DeleteTimerQueue}
  4607. //
  4608. // Plug-and-Play API's
  4609. //
  4610. const
  4611. HW_PROFILE_GUIDLEN = 39; // 36-characters plus NULL terminator
  4612. {$EXTERNALSYM HW_PROFILE_GUIDLEN}
  4613. MAX_PROFILE_LEN = 80;
  4614. {$EXTERNALSYM MAX_PROFILE_LEN}
  4615. DOCKINFO_UNDOCKED = $1;
  4616. {$EXTERNALSYM DOCKINFO_UNDOCKED}
  4617. DOCKINFO_DOCKED = $2;
  4618. {$EXTERNALSYM DOCKINFO_DOCKED}
  4619. DOCKINFO_USER_SUPPLIED = $4;
  4620. {$EXTERNALSYM DOCKINFO_USER_SUPPLIED}
  4621. DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED or DOCKINFO_UNDOCKED;
  4622. {$EXTERNALSYM DOCKINFO_USER_UNDOCKED}
  4623. DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED or DOCKINFO_DOCKED;
  4624. {$EXTERNALSYM DOCKINFO_USER_DOCKED}
  4625. type
  4626. LPHW_PROFILE_INFOA = ^HW_PROFILE_INFOA;
  4627. {$EXTERNALSYM LPHW_PROFILE_INFOA}
  4628. tagHW_PROFILE_INFOA = record
  4629. dwDockInfo: DWORD;
  4630. szHwProfileGuid: array [0..HW_PROFILE_GUIDLEN - 1] of CHAR;
  4631. szHwProfileName: array [0..MAX_PROFILE_LEN - 1] of CHAR;
  4632. end;
  4633. {$EXTERNALSYM tagHW_PROFILE_INFOA}
  4634. HW_PROFILE_INFOA = tagHW_PROFILE_INFOA;
  4635. {$EXTERNALSYM HW_PROFILE_INFOA}
  4636. THWProfileInfoA = HW_PROFILE_INFOA;
  4637. PHWProfileInfoA = LPHW_PROFILE_INFOA;
  4638. LPHW_PROFILE_INFOW = ^HW_PROFILE_INFOW;
  4639. {$EXTERNALSYM LPHW_PROFILE_INFOW}
  4640. tagHW_PROFILE_INFOW = record
  4641. dwDockInfo: DWORD;
  4642. szHwProfileGuid: array [0..HW_PROFILE_GUIDLEN - 1] of WCHAR;
  4643. szHwProfileName: array [0..MAX_PROFILE_LEN - 1] of WCHAR;
  4644. end;
  4645. {$EXTERNALSYM tagHW_PROFILE_INFOW}
  4646. HW_PROFILE_INFOW = tagHW_PROFILE_INFOW;
  4647. {$EXTERNALSYM HW_PROFILE_INFOW}
  4648. THWProfileInfoW = HW_PROFILE_INFOW;
  4649. PHWProfileInfoW = LPHW_PROFILE_INFOW;
  4650. {$IFDEF UNICODE}
  4651. HW_PROFILE_INFO = HW_PROFILE_INFOW;
  4652. {$EXTERNALSYM HW_PROFILE_INFO}
  4653. LPHW_PROFILE_INFO = LPHW_PROFILE_INFOW;
  4654. {$EXTERNALSYM LPHW_PROFILE_INFO}
  4655. THWProfileInfo = THWProfileInfoW;
  4656. PHWProfileInfo = PHWProfileInfoW;
  4657. {$ELSE}
  4658. HW_PROFILE_INFO = HW_PROFILE_INFOA;
  4659. {$EXTERNALSYM HW_PROFILE_INFO}
  4660. LPHW_PROFILE_INFO = LPHW_PROFILE_INFOA;
  4661. {$EXTERNALSYM LPHW_PROFILE_INFO}
  4662. THWProfileInfo = THWProfileInfoA;
  4663. PHWProfileInfo = PHWProfileInfoA;
  4664. {$ENDIF UNICODE}
  4665. function GetCurrentHwProfileA(var lpHwProfileInfo: HW_PROFILE_INFOA): BOOL; stdcall;
  4666. {$EXTERNALSYM GetCurrentHwProfileA}
  4667. function GetCurrentHwProfileW(var lpHwProfileInfo: HW_PROFILE_INFOW): BOOL; stdcall;
  4668. {$EXTERNALSYM GetCurrentHwProfileW}
  4669. function GetCurrentHwProfile(var lpHwProfileInfo: HW_PROFILE_INFO): BOOL; stdcall;
  4670. {$EXTERNALSYM GetCurrentHwProfile}
  4671. //
  4672. // Performance counter API's
  4673. //
  4674. function QueryPerformanceCounter(var lpPerformanceCount: LARGE_INTEGER): BOOL; stdcall;
  4675. {$EXTERNALSYM QueryPerformanceCounter}
  4676. function QueryPerformanceFrequency(var lpFrequency: LARGE_INTEGER): BOOL; stdcall;
  4677. {$EXTERNALSYM QueryPerformanceFrequency}
  4678. function GetVersionExA(lpVersionInformation: LPOSVERSIONINFOA): BOOL; stdcall;
  4679. {$EXTERNALSYM GetVersionExA}
  4680. function GetVersionExW(lpVersionInformation: LPOSVERSIONINFOW): BOOL; stdcall;
  4681. {$EXTERNALSYM GetVersionExW}
  4682. function GetVersionEx(lpVersionInformation: LPOSVERSIONINFO): BOOL; stdcall;
  4683. {$EXTERNALSYM GetVersionEx}
  4684. function VerifyVersionInfoA(var lpVersionInformation: OSVERSIONINFOEXA;
  4685. dwTypeMask: DWORD; dwlConditionMask: DWORDLONG): BOOL; stdcall;
  4686. {$EXTERNALSYM VerifyVersionInfoA}
  4687. function VerifyVersionInfoW(var lpVersionInformation: OSVERSIONINFOEXW;
  4688. dwTypeMask: DWORD; dwlConditionMask: DWORDLONG): BOOL; stdcall;
  4689. {$EXTERNALSYM VerifyVersionInfoW}
  4690. function VerifyVersionInfo(var lpVersionInformation: OSVERSIONINFOEX;
  4691. dwTypeMask: DWORD; dwlConditionMask: DWORDLONG): BOOL; stdcall;
  4692. {$EXTERNALSYM VerifyVersionInfo}
  4693. // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base
  4694. // API functions.
  4695. //
  4696. // #include <winerror.h>
  4697. // Abnormal termination codes
  4698. const
  4699. TC_NORMAL = 0;
  4700. {$EXTERNALSYM TC_NORMAL}
  4701. TC_HARDERR = 1;
  4702. {$EXTERNALSYM TC_HARDERR}
  4703. TC_GP_TRAP = 2;
  4704. {$EXTERNALSYM TC_GP_TRAP}
  4705. TC_SIGNAL = 3;
  4706. {$EXTERNALSYM TC_SIGNAL}
  4707. //
  4708. // Power Management APIs
  4709. //
  4710. AC_LINE_OFFLINE = $00;
  4711. {$EXTERNALSYM AC_LINE_OFFLINE}
  4712. AC_LINE_ONLINE = $01;
  4713. {$EXTERNALSYM AC_LINE_ONLINE}
  4714. AC_LINE_BACKUP_POWER = $02;
  4715. {$EXTERNALSYM AC_LINE_BACKUP_POWER}
  4716. AC_LINE_UNKNOWN = $FF;
  4717. {$EXTERNALSYM AC_LINE_UNKNOWN}
  4718. BATTERY_FLAG_HIGH = $01;
  4719. {$EXTERNALSYM BATTERY_FLAG_HIGH}
  4720. BATTERY_FLAG_LOW = $02;
  4721. {$EXTERNALSYM BATTERY_FLAG_LOW}
  4722. BATTERY_FLAG_CRITICAL = $04;
  4723. {$EXTERNALSYM BATTERY_FLAG_CRITICAL}
  4724. BATTERY_FLAG_CHARGING = $08;
  4725. {$EXTERNALSYM BATTERY_FLAG_CHARGING}
  4726. BATTERY_FLAG_NO_BATTERY = $80;
  4727. {$EXTERNALSYM BATTERY_FLAG_NO_BATTERY}
  4728. BATTERY_FLAG_UNKNOWN = $FF;
  4729. {$EXTERNALSYM BATTERY_FLAG_UNKNOWN}
  4730. BATTERY_PERCENTAGE_UNKNOWN = $FF;
  4731. {$EXTERNALSYM BATTERY_PERCENTAGE_UNKNOWN}
  4732. BATTERY_LIFE_UNKNOWN = DWORD($FFFFFFFF);
  4733. {$EXTERNALSYM BATTERY_LIFE_UNKNOWN}
  4734. type
  4735. LPSYSTEM_POWER_STATUS = ^SYSTEM_POWER_STATUS;
  4736. {$EXTERNALSYM LPSYSTEM_POWER_STATUS}
  4737. _SYSTEM_POWER_STATUS = record
  4738. ACLineStatus: BYTE;
  4739. BatteryFlag: BYTE;
  4740. BatteryLifePercent: BYTE;
  4741. Reserved1: BYTE;
  4742. BatteryLifeTime: DWORD;
  4743. BatteryFullLifeTime: DWORD;
  4744. end;
  4745. {$EXTERNALSYM _SYSTEM_POWER_STATUS}
  4746. SYSTEM_POWER_STATUS = _SYSTEM_POWER_STATUS;
  4747. {$EXTERNALSYM SYSTEM_POWER_STATUS}
  4748. TSystemPowerStatus = SYSTEM_POWER_STATUS;
  4749. PSystemPowerStatus = LPSYSTEM_POWER_STATUS;
  4750. function GetSystemPowerStatus(var lpSystemPowerStatus: SYSTEM_POWER_STATUS): BOOL; stdcall;
  4751. {$EXTERNALSYM GetSystemPowerStatus}
  4752. function SetSystemPowerState(fSuspend, fForce: BOOL): BOOL; stdcall;
  4753. {$EXTERNALSYM SetSystemPowerState}
  4754. //
  4755. // Very Large Memory API Subset
  4756. //
  4757. function AllocateUserPhysicalPages(hProcess: HANDLE; var NumberOfPages: ULONG_PTR;
  4758. PageArray: PULONG_PTR): BOOL; stdcall;
  4759. {$EXTERNALSYM AllocateUserPhysicalPages}
  4760. function FreeUserPhysicalPages(hProcess: HANDLE; var NumberOfPages: ULONG_PTR;
  4761. PageArray: PULONG_PTR): BOOL; stdcall;
  4762. {$EXTERNALSYM FreeUserPhysicalPages}
  4763. function MapUserPhysicalPages(VirtualAddress: PVOID; NumberOfPages: ULONG_PTR;
  4764. PageArray: PULONG_PTR): BOOL; stdcall;
  4765. {$EXTERNALSYM MapUserPhysicalPages}
  4766. function MapUserPhysicalPagesScatter(VirtualAddresses: PVOID; NumberOfPages: ULONG_PTR;
  4767. PageArray: PULONG_PTR): BOOL; stdcall;
  4768. {$EXTERNALSYM MapUserPhysicalPagesScatter}
  4769. function CreateJobObjectA(lpJobAttributes: LPSECURITY_ATTRIBUTES; lpName: LPCSTR): HANDLE; stdcall;
  4770. {$EXTERNALSYM CreateJobObjectA}
  4771. function CreateJobObjectW(lpJobAttributes: LPSECURITY_ATTRIBUTES; lpName: LPCWSTR): HANDLE; stdcall;
  4772. {$EXTERNALSYM CreateJobObjectW}
  4773. function CreateJobObject(lpJobAttributes: LPSECURITY_ATTRIBUTES; lpName: LPCTSTR): HANDLE; stdcall;
  4774. {$EXTERNALSYM CreateJobObject}
  4775. function OpenJobObjectA(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCSTR): HANDLE; stdcall;
  4776. {$EXTERNALSYM OpenJobObjectA}
  4777. function OpenJobObjectW(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCWSTR): HANDLE; stdcall;
  4778. {$EXTERNALSYM OpenJobObjectW}
  4779. function OpenJobObject(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: LPCTSTR): HANDLE; stdcall;
  4780. {$EXTERNALSYM OpenJobObject}
  4781. function AssignProcessToJobObject(hJob, hProcess: HANDLE): BOOL; stdcall;
  4782. {$EXTERNALSYM AssignProcessToJobObject}
  4783. function TerminateJobObject(hJob: HANDLE; uExitCode: UINT): BOOL; stdcall;
  4784. {$EXTERNALSYM TerminateJobObject}
  4785. function QueryInformationJobObject(hJob: HANDLE; JobObjectInformationClass: JOBOBJECTINFOCLASS;
  4786. lpJobObjectInformation: LPVOID; cbJobObjectInformationLength: DWORD;
  4787. lpReturnLength: LPDWORD): BOOL; stdcall;
  4788. {$EXTERNALSYM QueryInformationJobObject}
  4789. function SetInformationJobObject(hJob: HANDLE; JobObjectInformationClass: JOBOBJECTINFOCLASS;
  4790. lpJobObjectInformation: LPVOID; cbJobObjectInformationLength: DWORD): BOOL; stdcall;
  4791. {$EXTERNALSYM SetInformationJobObject}
  4792. function IsProcessInJob(ProcessHandle, JobHandle: HANDLE; var Result_: BOOL): BOOL; stdcall;
  4793. {$EXTERNALSYM IsProcessInJob}
  4794. function CreateJobSet(NumJob: ULONG; UserJobSet: PJOB_SET_ARRAY; Flags: ULONG): BOOL; stdcall;
  4795. {$EXTERNALSYM CreateJobSet}
  4796. function AddVectoredExceptionHandler(FirstHandler: ULONG;
  4797. VectoredHandler: PVECTORED_EXCEPTION_HANDLER): PVOID; stdcall;
  4798. {$EXTERNALSYM AddVectoredExceptionHandler}
  4799. function RemoveVectoredExceptionHandler(VectoredHandlerHandle: PVOID): ULONG; stdcall;
  4800. {$EXTERNALSYM RemoveVectoredExceptionHandler}
  4801. //
  4802. // New Volume Mount Point API.
  4803. //
  4804. function FindFirstVolumeA(lpszVolumeName: LPSTR; cchBufferLength: DWORD): HANDLE; stdcall;
  4805. {$EXTERNALSYM FindFirstVolumeA}
  4806. function FindFirstVolumeW(lpszVolumeName: LPWSTR; cchBufferLength: DWORD): HANDLE; stdcall;
  4807. {$EXTERNALSYM FindFirstVolumeW}
  4808. function FindFirstVolume(lpszVolumeName: LPTSTR; cchBufferLength: DWORD): HANDLE; stdcall;
  4809. {$EXTERNALSYM FindFirstVolume}
  4810. function FindNextVolumeA(hFindVolume: HANDLE; lpszVolumeName: LPSTR;
  4811. cchBufferLength: DWORD): BOOL; stdcall;
  4812. {$EXTERNALSYM FindNextVolumeA}
  4813. function FindNextVolumeW(hFindVolume: HANDLE; lpszVolumeName: LPWSTR;
  4814. cchBufferLength: DWORD): BOOL; stdcall;
  4815. {$EXTERNALSYM FindNextVolumeW}
  4816. function FindNextVolume(hFindVolume: HANDLE; lpszVolumeName: LPTSTR;
  4817. cchBufferLength: DWORD): BOOL; stdcall;
  4818. {$EXTERNALSYM FindNextVolume}
  4819. function FindVolumeClose(hFindVolume: HANDLE): BOOL; stdcall;
  4820. {$EXTERNALSYM FindVolumeClose}
  4821. function FindFirstVolumeMountPointA(lpszRootPathName: LPCSTR;
  4822. lpszVolumeMountPoint: LPSTR; cchBufferLength: DWORD): HANDLE; stdcall;
  4823. {$EXTERNALSYM FindFirstVolumeMountPointA}
  4824. function FindFirstVolumeMountPointW(lpszRootPathName: LPCWSTR;
  4825. lpszVolumeMountPoint: LPWSTR; cchBufferLength: DWORD): HANDLE; stdcall;
  4826. {$EXTERNALSYM FindFirstVolumeMountPointW}
  4827. function FindFirstVolumeMountPoint(lpszRootPathName: LPCTSTR;
  4828. lpszVolumeMountPoint: LPTSTR; cchBufferLength: DWORD): HANDLE; stdcall;
  4829. {$EXTERNALSYM FindFirstVolumeMountPoint}
  4830. function FindNextVolumeMountPointA(hFindVolumeMountPoint: HANDLE;
  4831. lpszVolumeMountPoint: LPSTR; cchBufferLength: DWORD): BOOL; stdcall;
  4832. {$EXTERNALSYM FindNextVolumeMountPointA}
  4833. function FindNextVolumeMountPointW(hFindVolumeMountPoint: HANDLE;
  4834. lpszVolumeMountPoint: LPWSTR; cchBufferLength: DWORD): BOOL; stdcall;
  4835. {$EXTERNALSYM FindNextVolumeMountPointW}
  4836. function FindNextVolumeMountPoint(hFindVolumeMountPoint: HANDLE;
  4837. lpszVolumeMountPoint: LPTSTR; cchBufferLength: DWORD): BOOL; stdcall;
  4838. {$EXTERNALSYM FindNextVolumeMountPoint}
  4839. function FindVolumeMountPointClose(hFindVolumeMountPoint: HANDLE): BOOL; stdcall;
  4840. {$EXTERNALSYM FindVolumeMountPointClose}
  4841. function SetVolumeMountPointA(lpszVolumeMountPoint, lpszVolumeName: LPCSTR): BOOL; stdcall;
  4842. {$EXTERNALSYM SetVolumeMountPointA}
  4843. function SetVolumeMountPointW(lpszVolumeMountPoint, lpszVolumeName: LPCWSTR): BOOL; stdcall;
  4844. {$EXTERNALSYM SetVolumeMountPointW}
  4845. function SetVolumeMountPoint(lpszVolumeMountPoint, lpszVolumeName: LPCTSTR): BOOL; stdcall;
  4846. {$EXTERNALSYM SetVolumeMountPoint}
  4847. function DeleteVolumeMountPointA(lpszVolumeMountPoint: LPCSTR): BOOL; stdcall;
  4848. {$EXTERNALSYM DeleteVolumeMountPointA}
  4849. function DeleteVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR): BOOL; stdcall;
  4850. {$EXTERNALSYM DeleteVolumeMountPointW}
  4851. function DeleteVolumeMountPoint(lpszVolumeMountPoint: LPCTSTR): BOOL; stdcall;
  4852. {$EXTERNALSYM DeleteVolumeMountPoint}
  4853. function GetVolumeNameForVolumeMountPointA(lpszVolumeMountPoint: LPCSTR;
  4854. lpszVolumeName: LPSTR; cchBufferLength: DWORD): BOOL; stdcall;
  4855. {$EXTERNALSYM GetVolumeNameForVolumeMountPointA}
  4856. function GetVolumeNameForVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR;
  4857. lpszVolumeName: LPWSTR; cchBufferLength: DWORD): BOOL; stdcall;
  4858. {$EXTERNALSYM GetVolumeNameForVolumeMountPointW}
  4859. function GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint: LPCTSTR;
  4860. lpszVolumeName: LPTSTR; cchBufferLength: DWORD): BOOL; stdcall;
  4861. {$EXTERNALSYM GetVolumeNameForVolumeMountPoint}
  4862. function GetVolumePathNameA(lpszFileName: LPCSTR; lpszVolumePathName: LPSTR;
  4863. cchBufferLength: DWORD): BOOL; stdcall;
  4864. {$EXTERNALSYM GetVolumePathNameA}
  4865. function GetVolumePathNameW(lpszFileName: LPCWSTR; lpszVolumePathName: LPWSTR;
  4866. cchBufferLength: DWORD): BOOL; stdcall;
  4867. {$EXTERNALSYM GetVolumePathNameW}
  4868. function GetVolumePathName(lpszFileName: LPCTSTR; lpszVolumePathName: LPTSTR;
  4869. cchBufferLength: DWORD): BOOL; stdcall;
  4870. {$EXTERNALSYM GetVolumePathName}
  4871. function GetVolumePathNamesForVolumeNameA(lpszVolumeName, lpszVolumePathNames: LPCSTR;
  4872. cchBufferLength: DWORD; var lpcchReturnLength: DWORD): BOOL; stdcall;
  4873. {$EXTERNALSYM GetVolumePathNamesForVolumeNameA}
  4874. function GetVolumePathNamesForVolumeNameW(lpszVolumeName, lpszVolumePathNames: LPCWSTR;
  4875. cchBufferLength: DWORD; var lpcchReturnLength: DWORD): BOOL; stdcall;
  4876. {$EXTERNALSYM GetVolumePathNamesForVolumeNameW}
  4877. function GetVolumePathNamesForVolumeName(lpszVolumeName, lpszVolumePathNames: LPCTSTR;
  4878. cchBufferLength: DWORD; var lpcchReturnLength: DWORD): BOOL; stdcall;
  4879. {$EXTERNALSYM GetVolumePathNamesForVolumeName}
  4880. const
  4881. ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = $00000001;
  4882. {$EXTERNALSYM ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID}
  4883. ACTCTX_FLAG_LANGID_VALID = $00000002;
  4884. {$EXTERNALSYM ACTCTX_FLAG_LANGID_VALID}
  4885. ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = $00000004;
  4886. {$EXTERNALSYM ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID}
  4887. ACTCTX_FLAG_RESOURCE_NAME_VALID = $00000008;
  4888. {$EXTERNALSYM ACTCTX_FLAG_RESOURCE_NAME_VALID}
  4889. ACTCTX_FLAG_SET_PROCESS_DEFAULT = $00000010;
  4890. {$EXTERNALSYM ACTCTX_FLAG_SET_PROCESS_DEFAULT}
  4891. ACTCTX_FLAG_APPLICATION_NAME_VALID = $00000020;
  4892. {$EXTERNALSYM ACTCTX_FLAG_APPLICATION_NAME_VALID}
  4893. ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF = $00000040;
  4894. {$EXTERNALSYM ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF}
  4895. ACTCTX_FLAG_HMODULE_VALID = $00000080;
  4896. {$EXTERNALSYM ACTCTX_FLAG_HMODULE_VALID}
  4897. type
  4898. tagACTCTXA = record
  4899. cbSize: ULONG;
  4900. dwFlags: DWORD;
  4901. lpSource: LPCSTR;
  4902. wProcessorArchitecture: USHORT;
  4903. wLangId: LANGID;
  4904. lpAssemblyDirectory: LPCSTR;
  4905. lpResourceName: LPCSTR;
  4906. lpApplicationName: LPCSTR;
  4907. hModule: HMODULE;
  4908. end;
  4909. {$EXTERNALSYM tagACTCTXA}
  4910. ACTCTXA = tagACTCTXA;
  4911. {$EXTERNALSYM ACTCTXA}
  4912. PACTCTXA = ^ACTCTXA;
  4913. {$EXTERNALSYM PACTCTXA}
  4914. TActCtxA = ACTCTXA;
  4915. tagACTCTXW = record
  4916. cbSize: ULONG;
  4917. dwFlags: DWORD;
  4918. lpSource: LPCWSTR;
  4919. wProcessorArchitecture: USHORT;
  4920. wLangId: LANGID;
  4921. lpAssemblyDirectory: LPCWSTR;
  4922. lpResourceName: LPCWSTR;
  4923. lpApplicationName: LPCWSTR;
  4924. hModule: HMODULE;
  4925. end;
  4926. {$EXTERNALSYM tagACTCTXW}
  4927. ACTCTXW = tagACTCTXW;
  4928. {$EXTERNALSYM ACTCTXW}
  4929. PACTCTXW = ^ACTCTXW;
  4930. {$EXTERNALSYM PACTCTXW}
  4931. TActCtxW = ACTCTXW;
  4932. {$IFDEF UNICODE}
  4933. ACTCTX = ACTCTXW;
  4934. {$EXTERNALSYM ACTCTX}
  4935. PACTCTX = PACTCTXW;
  4936. {$EXTERNALSYM PACTCTX}
  4937. TActCtx = TActCtxW;
  4938. {$ELSE}
  4939. ACTCTX = ACTCTXA;
  4940. {$EXTERNALSYM ACTCTX}
  4941. PACTCTX = PACTCTXA;
  4942. {$EXTERNALSYM PACTCTX}
  4943. TActCtx = TActCtxA;
  4944. {$ENDIF UNICODE}
  4945. function CreateActCtxA(var pActCtx: ACTCTXA): HANDLE; stdcall;
  4946. {$EXTERNALSYM CreateActCtxA}
  4947. function CreateActCtxW(var pActCtx: ACTCTXW): HANDLE; stdcall;
  4948. {$EXTERNALSYM CreateActCtxW}
  4949. function CreateActCtx(var pActCtx: ACTCTX): HANDLE; stdcall;
  4950. {$EXTERNALSYM CreateActCtx}
  4951. procedure AddRefActCtx(hActCtx: HANDLE); stdcall;
  4952. {$EXTERNALSYM AddRefActCtx}
  4953. procedure ReleaseActCtx(hActCtx: HANDLE); stdcall;
  4954. {$EXTERNALSYM ReleaseActCtx}
  4955. function ZombifyActCtx(hActCtx: HANDLE): BOOL; stdcall;
  4956. {$EXTERNALSYM ZombifyActCtx}
  4957. function ActivateActCtx(hActCtx: HANDLE; var lpCookie: ULONG_PTR): BOOL; stdcall;
  4958. {$EXTERNALSYM ActivateActCtx}
  4959. const
  4960. DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = $00000001;
  4961. {$EXTERNALSYM DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION}
  4962. function DeactivateActCtx(dwFlags: DWORD; ulCookie: ULONG_PTR): BOOL; stdcall;
  4963. {$EXTERNALSYM DeactivateActCtx}
  4964. function GetCurrentActCtx(var lphActCtx: HANDLE): BOOL; stdcall;
  4965. {$EXTERNALSYM GetCurrentActCtx}
  4966. type
  4967. tagACTCTX_SECTION_KEYED_DATA_2600 = record
  4968. cbSize: ULONG;
  4969. ulDataFormatVersion: ULONG;
  4970. lpData: PVOID;
  4971. ulLength: ULONG;
  4972. lpSectionGlobalData: PVOID;
  4973. ulSectionGlobalDataLength: ULONG;
  4974. lpSectionBase: PVOID;
  4975. ulSectionTotalLength: ULONG;
  4976. hActCtx: HANDLE;
  4977. ulAssemblyRosterIndex: ULONG;
  4978. end;
  4979. {$EXTERNALSYM tagACTCTX_SECTION_KEYED_DATA_2600}
  4980. ACTCTX_SECTION_KEYED_DATA_2600 = tagACTCTX_SECTION_KEYED_DATA_2600;
  4981. {$EXTERNALSYM ACTCTX_SECTION_KEYED_DATA_2600}
  4982. PACTCTX_SECTION_KEYED_DATA_2600 = ^ACTCTX_SECTION_KEYED_DATA_2600;
  4983. {$EXTERNALSYM PACTCTX_SECTION_KEYED_DATA_2600}
  4984. PCACTCTX_SECTION_KEYED_DATA_2600 = ^ACTCTX_SECTION_KEYED_DATA_2600;
  4985. {$EXTERNALSYM PCACTCTX_SECTION_KEYED_DATA_2600}
  4986. TActCtxSectionKeyedData2600 = ACTCTX_SECTION_KEYED_DATA_2600;
  4987. PActCtxSectionKeyedData2600 = PACTCTX_SECTION_KEYED_DATA_2600;
  4988. tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = record
  4989. lpInformation: PVOID;
  4990. lpSectionBase: PVOID;
  4991. ulSectionLength: ULONG;
  4992. lpSectionGlobalDataBase: PVOID;
  4993. ulSectionGlobalDataLength: ULONG;
  4994. end;
  4995. {$EXTERNALSYM tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA}
  4996. ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  4997. {$EXTERNALSYM ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA}
  4998. PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = ^ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  4999. {$EXTERNALSYM PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA}
  5000. PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = ^ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  5001. {$EXTERNALSYM PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA}
  5002. TActCtxSectionKeyedDataAssemblyMetadata = ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  5003. PActCtxSectionKeyedDataAssemblyMetadata = PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  5004. tagACTCTX_SECTION_KEYED_DATA = record
  5005. cbSize: ULONG;
  5006. ulDataFormatVersion: ULONG;
  5007. lpData: PVOID;
  5008. ulLength: ULONG;
  5009. lpSectionGlobalData: PVOID;
  5010. ulSectionGlobalDataLength: ULONG;
  5011. lpSectionBase: PVOID;
  5012. ulSectionTotalLength: ULONG;
  5013. hActCtx: HANDLE;
  5014. ulAssemblyRosterIndex: ULONG;
  5015. // 2600 stops here
  5016. ulFlags: ULONG;
  5017. AssemblyMetadata: ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  5018. end;
  5019. {$EXTERNALSYM tagACTCTX_SECTION_KEYED_DATA}
  5020. ACTCTX_SECTION_KEYED_DATA = tagACTCTX_SECTION_KEYED_DATA;
  5021. {$EXTERNALSYM ACTCTX_SECTION_KEYED_DATA}
  5022. PACTCTX_SECTION_KEYED_DATA = ^ACTCTX_SECTION_KEYED_DATA;
  5023. {$EXTERNALSYM PACTCTX_SECTION_KEYED_DATA}
  5024. PCACTCTX_SECTION_KEYED_DATA = ^ACTCTX_SECTION_KEYED_DATA;
  5025. {$EXTERNALSYM PCACTCTX_SECTION_KEYED_DATA}
  5026. TActCtxSectionKeyedData = ACTCTX_SECTION_KEYED_DATA;
  5027. PActCtxSectionKeyedData = PACTCTX_SECTION_KEYED_DATA;
  5028. const
  5029. FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = $00000001;
  5030. {$EXTERNALSYM FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX}
  5031. FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS = $00000002;
  5032. {$EXTERNALSYM FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS}
  5033. FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA = $00000004;
  5034. {$EXTERNALSYM FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA}
  5035. function FindActCtxSectionStringA(dwFlags: DWORD; const lpExtensionGuid: TGUID;
  5036. ulSectionId: ULONG; lpStringToFind: LPCSTR; ReturnedData: PACTCTX_SECTION_KEYED_DATA): BOOL; stdcall;
  5037. {$EXTERNALSYM FindActCtxSectionStringA}
  5038. function FindActCtxSectionStringW(dwFlags: DWORD; const lpExtensionGuid: TGUID;
  5039. ulSectionId: ULONG; lpStringToFind: LPCWSTR; ReturnedData: PACTCTX_SECTION_KEYED_DATA): BOOL; stdcall;
  5040. {$EXTERNALSYM FindActCtxSectionStringW}
  5041. function FindActCtxSectionString(dwFlags: DWORD; const lpExtensionGuid: TGUID;
  5042. ulSectionId: ULONG; lpStringToFind: LPCTSTR; ReturnedData: PACTCTX_SECTION_KEYED_DATA): BOOL; stdcall;
  5043. {$EXTERNALSYM FindActCtxSectionString}
  5044. function FindActCtxSectionGuid(dwFlags: DWORD; const lpExtensionGuid: TGUID;
  5045. ulSectionId: ULONG; const lpGuidToFind: TGUID; ReturnedData: PACTCTX_SECTION_KEYED_DATA): BOOL; stdcall;
  5046. {$EXTERNALSYM FindActCtxSectionGuid}
  5047. type
  5048. _ACTIVATION_CONTEXT_BASIC_INFORMATION = record
  5049. hActCtx: HANDLE;
  5050. dwFlags: DWORD;
  5051. end;
  5052. {$EXTERNALSYM _ACTIVATION_CONTEXT_BASIC_INFORMATION}
  5053. ACTIVATION_CONTEXT_BASIC_INFORMATION = _ACTIVATION_CONTEXT_BASIC_INFORMATION;
  5054. {$EXTERNALSYM ACTIVATION_CONTEXT_BASIC_INFORMATION}
  5055. PACTIVATION_CONTEXT_BASIC_INFORMATION = ^ACTIVATION_CONTEXT_BASIC_INFORMATION;
  5056. {$EXTERNALSYM PACTIVATION_CONTEXT_BASIC_INFORMATION}
  5057. TActivationContextBasicInformation = ACTIVATION_CONTEXT_BASIC_INFORMATION;
  5058. PActivationContextBasicInformation = PACTIVATION_CONTEXT_BASIC_INFORMATION;
  5059. PCACTIVATION_CONTEXT_BASIC_INFORMATION = ^_ACTIVATION_CONTEXT_BASIC_INFORMATION;
  5060. {$EXTERNALSYM PCACTIVATION_CONTEXT_BASIC_INFORMATION}
  5061. const
  5062. ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED = 1;
  5063. {$EXTERNALSYM ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED}
  5064. QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = $00000004;
  5065. {$EXTERNALSYM QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX}
  5066. QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = $00000008;
  5067. {$EXTERNALSYM QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE}
  5068. QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = $00000010;
  5069. {$EXTERNALSYM QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS}
  5070. QUERY_ACTCTX_FLAG_NO_ADDREF = $80000000;
  5071. {$EXTERNALSYM QUERY_ACTCTX_FLAG_NO_ADDREF}
  5072. //
  5073. // switch (ulInfoClass)
  5074. //
  5075. // case ActivationContextBasicInformation:
  5076. // pvSubInstance == NULL
  5077. // pvBuffer is of type PACTIVATION_CONTEXT_BASIC_INFORMATION
  5078. //
  5079. // case ActivationContextDetailedInformation:
  5080. // pvSubInstance == NULL
  5081. // pvBuffer is of type PACTIVATION_CONTEXT_DETAILED_INFORMATION
  5082. //
  5083. // case AssemblyDetailedInformationInActivationContext:
  5084. // pvSubInstance is of type PULONG
  5085. // *pvSubInstance < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount
  5086. // pvBuffer is of type PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION
  5087. //
  5088. // case FileInformationInAssemblyOfAssemblyInActivationContext:
  5089. // pvSubInstance is of type PACTIVATION_CONTEXT_QUERY_INDEX
  5090. // pvSubInstance->ulAssemblyIndex < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount
  5091. // pvSubInstance->ulFileIndexInAssembly < ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION::ulFileCount
  5092. // pvBuffer is of type PASSEMBLY_FILE_DETAILED_INFORMATION
  5093. //
  5094. // String are placed after the structs.
  5095. //
  5096. function QueryActCtxW(dwFlags: DWORD; hActCtx: HANDLE; pvSubInstance: PVOID;
  5097. ulInfoClass: ULONG; pvBuffer: PVOID; cbBuffer: SIZE_T;
  5098. pcbWrittenOrRequired: PSIZE_T): BOOL; stdcall;
  5099. {$EXTERNALSYM QueryActCtxW}
  5100. type
  5101. PQUERYACTCTXW_FUNC = function(dwFlags: DWORD; hActCtx: HANDLE;
  5102. pvSubInstance: PVOID; ulInfoClass: ULONG; pvBuffer: PVOID; cbBuffer: SIZE_T;
  5103. pcbWrittenOrRequired: PSIZE_T): BOOL; stdcall;
  5104. {$EXTERNALSYM PQUERYACTCTXW_FUNC}
  5105. function ProcessIdToSessionId(dwProcessId: DWORD; var pSessionId: DWORD): BOOL; stdcall;
  5106. {$EXTERNALSYM ProcessIdToSessionId}
  5107. function WTSGetActiveConsoleSessionId: DWORD; stdcall;
  5108. {$EXTERNALSYM WTSGetActiveConsoleSessionId}
  5109. function IsWow64Process(hProcess: HANDLE; var Wow64Process: BOOL): BOOL; stdcall;
  5110. {$EXTERNALSYM IsWow64Process}
  5111. function GetLogicalProcessorInformation(Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION; ReturnedLength: PDWORD): BOOL; stdcall;
  5112. {$EXTERNALSYM GetLogicalProcessorInformation}
  5113. //
  5114. // NUMA Information routines.
  5115. //
  5116. function GetNumaHighestNodeNumber(var HighestNodeNumber: ULONG): BOOL; stdcall;
  5117. {$EXTERNALSYM GetNumaHighestNodeNumber}
  5118. function GetNumaProcessorNode(Processor: UCHAR; var NodeNumber: UCHAR): BOOL; stdcall;
  5119. {$EXTERNALSYM GetNumaProcessorNode}
  5120. function GetNumaNodeProcessorMask(Node: UCHAR; ProcessorMask: ULONGLONG): BOOL; stdcall;
  5121. {$EXTERNALSYM GetNumaNodeProcessorMask}
  5122. function GetNumaAvailableMemoryNode(Node: UCHAR; var AvailableBytes: ULONGLONG): BOOL; stdcall;
  5123. {$EXTERNALSYM GetNumaAvailableMemoryNode}
  5124. implementation
  5125. const
  5126. kernel32 = 'kernel32.dll';
  5127. advapi32 = 'advapi32.dll';
  5128. {$IFDEF UNICODE}
  5129. AWSuffix = 'W';
  5130. {$ELSE}
  5131. AWSuffix = 'A';
  5132. {$ENDIF UNICODE}
  5133. procedure MoveMemory(Destination, Source: PVOID; Length: SIZE_T);
  5134. begin
  5135. Move(Source^, Destination^, Length);
  5136. end;
  5137. procedure CopyMemory(Destination, Source: PVOID; Length: SIZE_T);
  5138. begin
  5139. Move(Source^, Destination^, Length);
  5140. end;
  5141. procedure FillMemory(Destination: PVOID; Length: SIZE_T; Fill: BYTE);
  5142. begin
  5143. FillChar(Destination^, Length, Fill);
  5144. end;
  5145. procedure ZeroMemory(Destination: PVOID; Length: SIZE_T);
  5146. begin
  5147. FillChar(Destination^, Length, 0);
  5148. end;
  5149. function FreeModule(hLibModule: HMODULE): BOOL;
  5150. begin
  5151. Result := FreeLibrary(hLibModule);
  5152. end;
  5153. function MakeProcInstance(lpProc: FARPROC; hInstance: HINSTANCE): FARPROC;
  5154. begin
  5155. Result := lpProc;
  5156. end;
  5157. procedure FreeProcInstance(lpProc: FARPROC);
  5158. begin
  5159. { nothing }
  5160. end;
  5161. function GlobalLRUNewest(h: HANDLE): HANDLE;
  5162. begin
  5163. Result := H;
  5164. end;
  5165. function GlobalLRUOldest(h: HANDLE): HANDLE;
  5166. begin
  5167. Result := H;
  5168. end;
  5169. function GlobalDiscard(h: HANDLE): HANDLE;
  5170. begin
  5171. Result := GlobalReAlloc(h, 0, GMEM_MOVEABLE);
  5172. end;
  5173. function LocalDiscard(h: HLOCAL): HLOCAL;
  5174. begin
  5175. Result := LocalReAlloc(h, 0, LMEM_MOVEABLE);
  5176. end;
  5177. function GetFreeSpace(w: WORD): DWORD;
  5178. begin
  5179. Result := $100000;
  5180. end;
  5181. function InterlockedExchangePointer(var Target: PVOID; Value: PVOID): PVOID;
  5182. begin
  5183. Result := PVOID(InterlockedExchange(LONG(Target), LONG(Value)));
  5184. end;
  5185. function InterlockedCompareExchangePointer(var Destination: PVOID; Exchange, Comperand: PVOID): PVOID;
  5186. begin
  5187. Result := PVOID(InterlockedCompareExchange(LONG(Destination), LONG(Exchange), LONG(Comperand)));
  5188. end;
  5189. function UnlockResource(hResData: HANDLE): BOOL;
  5190. begin
  5191. Result := False;
  5192. end;
  5193. function HasOverlappedIoCompleted(const lpOverlapped: OVERLAPPED): BOOL;
  5194. begin
  5195. Result := NTSTATUS(lpOverlapped.Internal) <> STATUS_PENDING;
  5196. end;
  5197. // 64 bit interlocked functions from Will
  5198. function InterlockedAnd64(var Destination: LONGLONG; Value: LONGLONG): LONGLONG;
  5199. begin
  5200. repeat
  5201. Result := Destination;
  5202. until (InterlockedCompareExchange64(Destination, Result and Value, Result) = Result);
  5203. end;
  5204. function InterlockedOr64(var Destination: LONGLONG; Value: LONGLONG): LONGLONG;
  5205. begin
  5206. repeat
  5207. Result := Destination;
  5208. until (InterlockedCompareExchange64(Destination, Result or Value, Result) = Result);
  5209. end;
  5210. function InterlockedXor64(var Destination: LONGLONG; Value: LONGLONG): LONGLONG;
  5211. begin
  5212. repeat
  5213. Result := Destination;
  5214. until (InterlockedCompareExchange64(Destination, Result xor Value, Result) = Result);
  5215. end;
  5216. function InterlockedIncrement64(var Addend: LONGLONG): LONGLONG;
  5217. begin
  5218. repeat
  5219. Result := Addend;
  5220. until (InterlockedCompareExchange64(Addend, Result + 1, Result) = Result);
  5221. Inc(Result);
  5222. end;
  5223. function InterlockedDecrement64(var Addend: LONGLONG): LONGLONG;
  5224. begin
  5225. repeat
  5226. Result := Addend;
  5227. until (InterlockedCompareExchange64(Addend, Result - 1, Result) = Result);
  5228. Dec(Result);
  5229. end;
  5230. function InterlockedExchange64(var Target: LONGLONG; Value: LONGLONG): LONGLONG;
  5231. begin
  5232. repeat
  5233. Result := Target;
  5234. until (InterlockedCompareExchange64(Target, Value, Result) = Result);
  5235. end;
  5236. function InterlockedExchangeAdd64(var Addend: LONGLONG; Value: LONGLONG): LONGLONG;
  5237. begin
  5238. repeat
  5239. Result := Addend;
  5240. until (InterlockedCompareExchange64(Addend, Result + Value, Result) = Result);
  5241. end;
  5242. { MVB:
  5243. The implementation of CreateMutex only interpretes bInitialOwner as True if
  5244. it's ordinal value is 1, all other values are interpreted as False. Delphi
  5245. compiles Longbool(True) as $FFFFFFFF which is consequently interpreted as
  5246. False. Changing the bInitalOwner parameter type to Boolean fixes the problem
  5247. (Boolean(True) = 1) but that would be implementation specific and might break
  5248. in the future, though unlikely. Hence the CreateMutex function here which
  5249. explicitly passes LongBool(1) instead of LongBool(True). }
  5250. type
  5251. TCreateMutexA = function(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: LongBool; lpName: LPCSTR): HANDLE; stdcall;
  5252. TCreateMutexW = function(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: LongBool; lpName: LPCWSTR): HANDLE; stdcall;
  5253. var
  5254. _CreateMutexA: Pointer;
  5255. _CreateMutexW: Pointer;
  5256. function CreateMutexA(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: BOOL; lpName: LPCSTR): HANDLE;
  5257. begin
  5258. GetProcedureAddress(_CreateMutexA, kernel32, 'CreateMutexA');
  5259. if bInitialOwner then
  5260. Result := TCreateMutexA(_CreateMutexA)(lpMutexAttributes, LongBool(1), lpName)
  5261. else
  5262. Result := TCreateMutexA(_CreateMutexA)(lpMutexAttributes, LongBool(0), lpName)
  5263. end;
  5264. function CreateMutexW(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: BOOL; lpName: LPCWSTR): HANDLE;
  5265. begin
  5266. GetProcedureAddress(_CreateMutexW, kernel32, 'CreateMutexW');
  5267. if bInitialOwner then
  5268. Result := TCreateMutexW(_CreateMutexW)(lpMutexAttributes, LongBool(1), lpName)
  5269. else
  5270. Result := TCreateMutexW(_CreateMutexW)(lpMutexAttributes, LongBool(0), lpName)
  5271. end;
  5272. {$IFDEF UNICODE}
  5273. function CreateMutex(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: BOOL; lpName: LPCWSTR): HANDLE;
  5274. begin
  5275. GetProcedureAddress(_CreateMutexW, kernel32, 'CreateMutexW');
  5276. if bInitialOwner then
  5277. Result := TCreateMutexW(_CreateMutexW)(lpMutexAttributes, LongBool(1), lpName)
  5278. else
  5279. Result := TCreateMutexW(_CreateMutexW)(lpMutexAttributes, LongBool(0), lpName)
  5280. end;
  5281. {$ELSE}
  5282. function CreateMutex(lpMutexAttributes: LPSECURITY_ATTRIBUTES; bInitialOwner: BOOL; lpName: LPCSTR): HANDLE;
  5283. begin
  5284. GetProcedureAddress(_CreateMutexA, kernel32, 'CreateMutexA');
  5285. if bInitialOwner then
  5286. Result := TCreateMutexA(_CreateMutexA)(lpMutexAttributes, LongBool(1), lpName)
  5287. else
  5288. Result := TCreateMutexA(_CreateMutexA)(lpMutexAttributes, LongBool(0), lpName)
  5289. end;
  5290. {$ENDIF UNICODE}
  5291. {$IFDEF DYNAMIC_LINK}
  5292. var
  5293. _InterlockedCompareExchange64: Pointer;
  5294. function InterlockedCompareExchange64;
  5295. begin
  5296. GetProcedureAddress(_InterlockedCompareExchange64, kernel32, 'InterlockedCompareExchange64');
  5297. asm
  5298. MOV ESP, EBP
  5299. POP EBP
  5300. JMP [_InterlockedCompareExchange64]
  5301. end;
  5302. end;
  5303. var
  5304. _InterlockedIncrement: Pointer;
  5305. function InterlockedIncrement;
  5306. begin
  5307. GetProcedureAddress(_InterlockedIncrement, kernel32, 'InterlockedIncrement');
  5308. asm
  5309. MOV ESP, EBP
  5310. POP EBP
  5311. JMP [_InterlockedIncrement]
  5312. end;
  5313. end;
  5314. var
  5315. _InterlockedDecrement: Pointer;
  5316. function InterlockedDecrement;
  5317. begin
  5318. GetProcedureAddress(_InterlockedDecrement, kernel32, 'InterlockedDecrement');
  5319. asm
  5320. MOV ESP, EBP
  5321. POP EBP
  5322. JMP [_InterlockedDecrement]
  5323. end;
  5324. end;
  5325. var
  5326. _InterlockedExchange: Pointer;
  5327. function InterlockedExchange;
  5328. begin
  5329. GetProcedureAddress(_InterlockedExchange, kernel32, 'InterlockedExchange');
  5330. asm
  5331. MOV ESP, EBP
  5332. POP EBP
  5333. JMP [_InterlockedExchange]
  5334. end;
  5335. end;
  5336. var
  5337. _InterlockedExchangeAdd: Pointer;
  5338. function InterlockedExchangeAdd;
  5339. begin
  5340. GetProcedureAddress(_InterlockedExchangeAdd, kernel32, 'InterlockedExchangeAdd');
  5341. asm
  5342. MOV ESP, EBP
  5343. POP EBP
  5344. JMP [_InterlockedExchangeAdd]
  5345. end;
  5346. end;
  5347. var
  5348. _InterlockedCompareExchange: Pointer;
  5349. function InterlockedCompareExchange;
  5350. begin
  5351. GetProcedureAddress(_InterlockedCompareExchange, kernel32, 'InterlockedCompareExchange');
  5352. asm
  5353. MOV ESP, EBP
  5354. POP EBP
  5355. JMP [_InterlockedCompareExchange]
  5356. end;
  5357. end;
  5358. var
  5359. _InitializeSListHead: Pointer;
  5360. procedure InitializeSListHead;
  5361. begin
  5362. GetProcedureAddress(_InitializeSListHead, kernel32, 'InitializeSListHead');
  5363. asm
  5364. MOV ESP, EBP
  5365. POP EBP
  5366. JMP [_InitializeSListHead]
  5367. end;
  5368. end;
  5369. var
  5370. _InterlockedPopEntrySList: Pointer;
  5371. function InterlockedPopEntrySList;
  5372. begin
  5373. GetProcedureAddress(_InterlockedPopEntrySList, kernel32, 'InterlockedPopEntrySList');
  5374. asm
  5375. MOV ESP, EBP
  5376. POP EBP
  5377. JMP [_InterlockedPopEntrySList]
  5378. end;
  5379. end;
  5380. var
  5381. _InterlockedPushEntrySList: Pointer;
  5382. function InterlockedPushEntrySList;
  5383. begin
  5384. GetProcedureAddress(_InterlockedPushEntrySList, kernel32, 'InterlockedPushEntrySList');
  5385. asm
  5386. MOV ESP, EBP
  5387. POP EBP
  5388. JMP [_InterlockedPushEntrySList]
  5389. end;
  5390. end;
  5391. var
  5392. _InterlockedFlushSList: Pointer;
  5393. function InterlockedFlushSList;
  5394. begin
  5395. GetProcedureAddress(_InterlockedFlushSList, kernel32, 'InterlockedFlushSList');
  5396. asm
  5397. MOV ESP, EBP
  5398. POP EBP
  5399. JMP [_InterlockedFlushSList]
  5400. end;
  5401. end;
  5402. var
  5403. _QueryDepthSList: Pointer;
  5404. function QueryDepthSList;
  5405. begin
  5406. GetProcedureAddress(_QueryDepthSList, kernel32, 'QueryDepthSList');
  5407. asm
  5408. MOV ESP, EBP
  5409. POP EBP
  5410. JMP [_QueryDepthSList]
  5411. end;
  5412. end;
  5413. var
  5414. _FreeResource: Pointer;
  5415. function FreeResource;
  5416. begin
  5417. GetProcedureAddress(_FreeResource, kernel32, 'FreeResource');
  5418. asm
  5419. MOV ESP, EBP
  5420. POP EBP
  5421. JMP [_FreeResource]
  5422. end;
  5423. end;
  5424. var
  5425. _LockResource: Pointer;
  5426. function LockResource;
  5427. begin
  5428. GetProcedureAddress(_LockResource, kernel32, 'LockResource');
  5429. asm
  5430. MOV ESP, EBP
  5431. POP EBP
  5432. JMP [_LockResource]
  5433. end;
  5434. end;
  5435. var
  5436. _FreeLibrary: Pointer;
  5437. function FreeLibrary;
  5438. begin
  5439. GetProcedureAddress(_FreeLibrary, kernel32, 'FreeLibrary');
  5440. asm
  5441. MOV ESP, EBP
  5442. POP EBP
  5443. JMP [_FreeLibrary]
  5444. end;
  5445. end;
  5446. var
  5447. _FreeLibraryAndExitThread: Pointer;
  5448. procedure FreeLibraryAndExitThread;
  5449. begin
  5450. GetProcedureAddress(_FreeLibraryAndExitThread, kernel32, 'FreeLibraryAndExitThread');
  5451. asm
  5452. MOV ESP, EBP
  5453. POP EBP
  5454. JMP [_FreeLibraryAndExitThread]
  5455. end;
  5456. end;
  5457. var
  5458. _DisableThreadLibraryCalls: Pointer;
  5459. function DisableThreadLibraryCalls;
  5460. begin
  5461. GetProcedureAddress(_DisableThreadLibraryCalls, kernel32, 'DisableThreadLibraryCalls');
  5462. asm
  5463. MOV ESP, EBP
  5464. POP EBP
  5465. JMP [_DisableThreadLibraryCalls]
  5466. end;
  5467. end;
  5468. // MVB TODO Dynamic linking for GetProcAddress doesn't make much sense, does it? Same for LoadLibrary.
  5469. var
  5470. _GetProcAddress: Pointer;
  5471. function GetProcAddress;
  5472. begin
  5473. GetProcedureAddress(_GetProcAddress, kernel32, 'GetProcAddress');
  5474. asm
  5475. MOV ESP, EBP
  5476. POP EBP
  5477. JMP [_GetProcAddress]
  5478. end;
  5479. end;
  5480. var
  5481. _GetVersion: Pointer;
  5482. function GetVersion;
  5483. begin
  5484. GetProcedureAddress(_GetVersion, kernel32, 'GetVersion');
  5485. asm
  5486. MOV ESP, EBP
  5487. POP EBP
  5488. JMP [_GetVersion]
  5489. end;
  5490. end;
  5491. var
  5492. _GlobalAlloc: Pointer;
  5493. function GlobalAlloc;
  5494. begin
  5495. GetProcedureAddress(_GlobalAlloc, kernel32, 'GlobalAlloc');
  5496. asm
  5497. MOV ESP, EBP
  5498. POP EBP
  5499. JMP [_GlobalAlloc]
  5500. end;
  5501. end;
  5502. var
  5503. _GlobalReAlloc: Pointer;
  5504. function GlobalReAlloc;
  5505. begin
  5506. GetProcedureAddress(_GlobalReAlloc, kernel32, 'GlobalReAlloc');
  5507. asm
  5508. MOV ESP, EBP
  5509. POP EBP
  5510. JMP [_GlobalReAlloc]
  5511. end;
  5512. end;
  5513. var
  5514. _GlobalSize: Pointer;
  5515. function GlobalSize;
  5516. begin
  5517. GetProcedureAddress(_GlobalSize, kernel32, 'GlobalSize');
  5518. asm
  5519. MOV ESP, EBP
  5520. POP EBP
  5521. JMP [_GlobalSize]
  5522. end;
  5523. end;
  5524. var
  5525. _GlobalFlags: Pointer;
  5526. function GlobalFlags;
  5527. begin
  5528. GetProcedureAddress(_GlobalFlags, kernel32, 'GlobalFlags');
  5529. asm
  5530. MOV ESP, EBP
  5531. POP EBP
  5532. JMP [_GlobalFlags]
  5533. end;
  5534. end;
  5535. var
  5536. _GlobalLock: Pointer;
  5537. function GlobalLock;
  5538. begin
  5539. GetProcedureAddress(_GlobalLock, kernel32, 'GlobalLock');
  5540. asm
  5541. MOV ESP, EBP
  5542. POP EBP
  5543. JMP [_GlobalLock]
  5544. end;
  5545. end;
  5546. var
  5547. _GlobalHandle: Pointer;
  5548. function GlobalHandle;
  5549. begin
  5550. GetProcedureAddress(_GlobalHandle, kernel32, 'GlobalHandle');
  5551. asm
  5552. MOV ESP, EBP
  5553. POP EBP
  5554. JMP [_GlobalHandle]
  5555. end;
  5556. end;
  5557. var
  5558. _GlobalUnlock: Pointer;
  5559. function GlobalUnlock;
  5560. begin
  5561. GetProcedureAddress(_GlobalUnlock, kernel32, 'GlobalUnlock');
  5562. asm
  5563. MOV ESP, EBP
  5564. POP EBP
  5565. JMP [_GlobalUnlock]
  5566. end;
  5567. end;
  5568. var
  5569. _GlobalFree: Pointer;
  5570. function GlobalFree;
  5571. begin
  5572. GetProcedureAddress(_GlobalFree, kernel32, 'GlobalFree');
  5573. asm
  5574. MOV ESP, EBP
  5575. POP EBP
  5576. JMP [_GlobalFree]
  5577. end;
  5578. end;
  5579. var
  5580. _GlobalCompact: Pointer;
  5581. function GlobalCompact;
  5582. begin
  5583. GetProcedureAddress(_GlobalCompact, kernel32, 'GlobalCompact');
  5584. asm
  5585. MOV ESP, EBP
  5586. POP EBP
  5587. JMP [_GlobalCompact]
  5588. end;
  5589. end;
  5590. var
  5591. _GlobalFix: Pointer;
  5592. procedure GlobalFix;
  5593. begin
  5594. GetProcedureAddress(_GlobalFix, kernel32, 'GlobalFix');
  5595. asm
  5596. MOV ESP, EBP
  5597. POP EBP
  5598. JMP [_GlobalFix]
  5599. end;
  5600. end;
  5601. var
  5602. _GlobalUnfix: Pointer;
  5603. procedure GlobalUnfix;
  5604. begin
  5605. GetProcedureAddress(_GlobalUnfix, kernel32, 'GlobalUnfix');
  5606. asm
  5607. MOV ESP, EBP
  5608. POP EBP
  5609. JMP [_GlobalUnfix]
  5610. end;
  5611. end;
  5612. var
  5613. _GlobalWire: Pointer;
  5614. function GlobalWire;
  5615. begin
  5616. GetProcedureAddress(_GlobalWire, kernel32, 'GlobalWire');
  5617. asm
  5618. MOV ESP, EBP
  5619. POP EBP
  5620. JMP [_GlobalWire]
  5621. end;
  5622. end;
  5623. var
  5624. _GlobalUnWire: Pointer;
  5625. function GlobalUnWire;
  5626. begin
  5627. GetProcedureAddress(_GlobalUnWire, kernel32, 'GlobalUnWire');
  5628. asm
  5629. MOV ESP, EBP
  5630. POP EBP
  5631. JMP [_GlobalUnWire]
  5632. end;
  5633. end;
  5634. var
  5635. _GlobalMemoryStatus: Pointer;
  5636. procedure GlobalMemoryStatus;
  5637. begin
  5638. GetProcedureAddress(_GlobalMemoryStatus, kernel32, 'GlobalMemoryStatus');
  5639. asm
  5640. MOV ESP, EBP
  5641. POP EBP
  5642. JMP [_GlobalMemoryStatus]
  5643. end;
  5644. end;
  5645. var
  5646. _GlobalMemoryStatusEx: Pointer;
  5647. function GlobalMemoryStatusEx;
  5648. begin
  5649. GetProcedureAddress(_GlobalMemoryStatusEx, kernel32, 'GlobalMemoryStatusEx');
  5650. asm
  5651. MOV ESP, EBP
  5652. POP EBP
  5653. JMP [_GlobalMemoryStatusEx]
  5654. end;
  5655. end;
  5656. var
  5657. _LocalAlloc: Pointer;
  5658. function LocalAlloc;
  5659. begin
  5660. GetProcedureAddress(_LocalAlloc, kernel32, 'LocalAlloc');
  5661. asm
  5662. MOV ESP, EBP
  5663. POP EBP
  5664. JMP [_LocalAlloc]
  5665. end;
  5666. end;
  5667. var
  5668. _LocalReAlloc: Pointer;
  5669. function LocalReAlloc;
  5670. begin
  5671. GetProcedureAddress(_LocalReAlloc, kernel32, 'LocalReAlloc');
  5672. asm
  5673. MOV ESP, EBP
  5674. POP EBP
  5675. JMP [_LocalReAlloc]
  5676. end;
  5677. end;
  5678. var
  5679. _LocalLock: Pointer;
  5680. function LocalLock;
  5681. begin
  5682. GetProcedureAddress(_LocalLock, kernel32, 'LocalLock');
  5683. asm
  5684. MOV ESP, EBP
  5685. POP EBP
  5686. JMP [_LocalLock]
  5687. end;
  5688. end;
  5689. var
  5690. _LocalHandle: Pointer;
  5691. function LocalHandle;
  5692. begin
  5693. GetProcedureAddress(_LocalHandle, kernel32, 'LocalHandle');
  5694. asm
  5695. MOV ESP, EBP
  5696. POP EBP
  5697. JMP [_LocalHandle]
  5698. end;
  5699. end;
  5700. var
  5701. _LocalUnlock: Pointer;
  5702. function LocalUnlock;
  5703. begin
  5704. GetProcedureAddress(_LocalUnlock, kernel32, 'LocalUnlock');
  5705. asm
  5706. MOV ESP, EBP
  5707. POP EBP
  5708. JMP [_LocalUnlock]
  5709. end;
  5710. end;
  5711. var
  5712. _LocalSize: Pointer;
  5713. function LocalSize;
  5714. begin
  5715. GetProcedureAddress(_LocalSize, kernel32, 'LocalSize');
  5716. asm
  5717. MOV ESP, EBP
  5718. POP EBP
  5719. JMP [_LocalSize]
  5720. end;
  5721. end;
  5722. var
  5723. _LocalFlags: Pointer;
  5724. function LocalFlags;
  5725. begin
  5726. GetProcedureAddress(_LocalFlags, kernel32, 'LocalFlags');
  5727. asm
  5728. MOV ESP, EBP
  5729. POP EBP
  5730. JMP [_LocalFlags]
  5731. end;
  5732. end;
  5733. var
  5734. _LocalFree: Pointer;
  5735. function LocalFree;
  5736. begin
  5737. GetProcedureAddress(_LocalFree, kernel32, 'LocalFree');
  5738. asm
  5739. MOV ESP, EBP
  5740. POP EBP
  5741. JMP [_LocalFree]
  5742. end;
  5743. end;
  5744. var
  5745. _LocalShrink: Pointer;
  5746. function LocalShrink;
  5747. begin
  5748. GetProcedureAddress(_LocalShrink, kernel32, 'LocalShrink');
  5749. asm
  5750. MOV ESP, EBP
  5751. POP EBP
  5752. JMP [_LocalShrink]
  5753. end;
  5754. end;
  5755. var
  5756. _LocalCompact: Pointer;
  5757. function LocalCompact;
  5758. begin
  5759. GetProcedureAddress(_LocalCompact, kernel32, 'LocalCompact');
  5760. asm
  5761. MOV ESP, EBP
  5762. POP EBP
  5763. JMP [_LocalCompact]
  5764. end;
  5765. end;
  5766. var
  5767. _FlushInstructionCache: Pointer;
  5768. function FlushInstructionCache;
  5769. begin
  5770. GetProcedureAddress(_FlushInstructionCache, kernel32, 'FlushInstructionCache');
  5771. asm
  5772. MOV ESP, EBP
  5773. POP EBP
  5774. JMP [_FlushInstructionCache]
  5775. end;
  5776. end;
  5777. var
  5778. _VirtualAlloc: Pointer;
  5779. function VirtualAlloc;
  5780. begin
  5781. GetProcedureAddress(_VirtualAlloc, kernel32, 'VirtualAlloc');
  5782. asm
  5783. MOV ESP, EBP
  5784. POP EBP
  5785. JMP [_VirtualAlloc]
  5786. end;
  5787. end;
  5788. var
  5789. _VirtualFree: Pointer;
  5790. function VirtualFree;
  5791. begin
  5792. GetProcedureAddress(_VirtualFree, kernel32, 'VirtualFree');
  5793. asm
  5794. MOV ESP, EBP
  5795. POP EBP
  5796. JMP [_VirtualFree]
  5797. end;
  5798. end;
  5799. var
  5800. _VirtualProtect: Pointer;
  5801. function VirtualProtect;
  5802. begin
  5803. GetProcedureAddress(_VirtualProtect, kernel32, 'VirtualProtect');
  5804. asm
  5805. MOV ESP, EBP
  5806. POP EBP
  5807. JMP [_VirtualProtect]
  5808. end;
  5809. end;
  5810. var
  5811. _VirtualQuery: Pointer;
  5812. function VirtualQuery;
  5813. begin
  5814. GetProcedureAddress(_VirtualQuery, kernel32, 'VirtualQuery');
  5815. asm
  5816. MOV ESP, EBP
  5817. POP EBP
  5818. JMP [_VirtualQuery]
  5819. end;
  5820. end;
  5821. var
  5822. _VirtualAllocEx: Pointer;
  5823. function VirtualAllocEx;
  5824. begin
  5825. GetProcedureAddress(_VirtualAllocEx, kernel32, 'VirtualAllocEx');
  5826. asm
  5827. MOV ESP, EBP
  5828. POP EBP
  5829. JMP [_VirtualAllocEx]
  5830. end;
  5831. end;
  5832. var
  5833. _GetWriteWatch: Pointer;
  5834. function GetWriteWatch;
  5835. begin
  5836. GetProcedureAddress(_GetWriteWatch, kernel32, 'GetWriteWatch');
  5837. asm
  5838. MOV ESP, EBP
  5839. POP EBP
  5840. JMP [_GetWriteWatch]
  5841. end;
  5842. end;
  5843. var
  5844. _ResetWriteWatch: Pointer;
  5845. function ResetWriteWatch;
  5846. begin
  5847. GetProcedureAddress(_ResetWriteWatch, kernel32, 'ResetWriteWatch');
  5848. asm
  5849. MOV ESP, EBP
  5850. POP EBP
  5851. JMP [_ResetWriteWatch]
  5852. end;
  5853. end;
  5854. var
  5855. _GetLargePageMinimum: Pointer;
  5856. function GetLargePageMinimum;
  5857. begin
  5858. GetProcedureAddress(_GetLargePageMinimum, kernel32, 'GetLargePageMinimum');
  5859. asm
  5860. MOV ESP, EBP
  5861. POP EBP
  5862. JMP [_GetLargePageMinimum]
  5863. end;
  5864. end;
  5865. var
  5866. _VirtualFreeEx: Pointer;
  5867. function VirtualFreeEx;
  5868. begin
  5869. GetProcedureAddress(_VirtualFreeEx, kernel32, 'VirtualFreeEx');
  5870. asm
  5871. MOV ESP, EBP
  5872. POP EBP
  5873. JMP [_VirtualFreeEx]
  5874. end;
  5875. end;
  5876. var
  5877. _VirtualProtectEx: Pointer;
  5878. function VirtualProtectEx;
  5879. begin
  5880. GetProcedureAddress(_VirtualProtectEx, kernel32, 'VirtualProtectEx');
  5881. asm
  5882. MOV ESP, EBP
  5883. POP EBP
  5884. JMP [_VirtualProtectEx]
  5885. end;
  5886. end;
  5887. var
  5888. _VirtualQueryEx: Pointer;
  5889. function VirtualQueryEx;
  5890. begin
  5891. GetProcedureAddress(_VirtualQueryEx, kernel32, 'VirtualQueryEx');
  5892. asm
  5893. MOV ESP, EBP
  5894. POP EBP
  5895. JMP [_VirtualQueryEx]
  5896. end;
  5897. end;
  5898. var
  5899. _HeapCreate: Pointer;
  5900. function HeapCreate;
  5901. begin
  5902. GetProcedureAddress(_HeapCreate, kernel32, 'HeapCreate');
  5903. asm
  5904. MOV ESP, EBP
  5905. POP EBP
  5906. JMP [_HeapCreate]
  5907. end;
  5908. end;
  5909. var
  5910. _HeapDestroy: Pointer;
  5911. function HeapDestroy;
  5912. begin
  5913. GetProcedureAddress(_HeapDestroy, kernel32, 'HeapDestroy');
  5914. asm
  5915. MOV ESP, EBP
  5916. POP EBP
  5917. JMP [_HeapDestroy]
  5918. end;
  5919. end;
  5920. var
  5921. _HeapAlloc: Pointer;
  5922. function HeapAlloc;
  5923. begin
  5924. GetProcedureAddress(_HeapAlloc, kernel32, 'HeapAlloc');
  5925. asm
  5926. MOV ESP, EBP
  5927. POP EBP
  5928. JMP [_HeapAlloc]
  5929. end;
  5930. end;
  5931. var
  5932. _HeapReAlloc: Pointer;
  5933. function HeapReAlloc;
  5934. begin
  5935. GetProcedureAddress(_HeapReAlloc, kernel32, 'HeapReAlloc');
  5936. asm
  5937. MOV ESP, EBP
  5938. POP EBP
  5939. JMP [_HeapReAlloc]
  5940. end;
  5941. end;
  5942. var
  5943. _HeapFree: Pointer;
  5944. function HeapFree;
  5945. begin
  5946. GetProcedureAddress(_HeapFree, kernel32, 'HeapFree');
  5947. asm
  5948. MOV ESP, EBP
  5949. POP EBP
  5950. JMP [_HeapFree]
  5951. end;
  5952. end;
  5953. var
  5954. _HeapSize: Pointer;
  5955. function HeapSize;
  5956. begin
  5957. GetProcedureAddress(_HeapSize, kernel32, 'HeapSize');
  5958. asm
  5959. MOV ESP, EBP
  5960. POP EBP
  5961. JMP [_HeapSize]
  5962. end;
  5963. end;
  5964. var
  5965. _HeapValidate: Pointer;
  5966. function HeapValidate;
  5967. begin
  5968. GetProcedureAddress(_HeapValidate, kernel32, 'HeapValidate');
  5969. asm
  5970. MOV ESP, EBP
  5971. POP EBP
  5972. JMP [_HeapValidate]
  5973. end;
  5974. end;
  5975. var
  5976. _HeapCompact: Pointer;
  5977. function HeapCompact;
  5978. begin
  5979. GetProcedureAddress(_HeapCompact, kernel32, 'HeapCompact');
  5980. asm
  5981. MOV ESP, EBP
  5982. POP EBP
  5983. JMP [_HeapCompact]
  5984. end;
  5985. end;
  5986. var
  5987. _GetProcessHeap: Pointer;
  5988. function GetProcessHeap;
  5989. begin
  5990. GetProcedureAddress(_GetProcessHeap, kernel32, 'GetProcessHeap');
  5991. asm
  5992. MOV ESP, EBP
  5993. POP EBP
  5994. JMP [_GetProcessHeap]
  5995. end;
  5996. end;
  5997. var
  5998. _GetProcessHeaps: Pointer;
  5999. function GetProcessHeaps;
  6000. begin
  6001. GetProcedureAddress(_GetProcessHeaps, kernel32, 'GetProcessHeaps');
  6002. asm
  6003. MOV ESP, EBP
  6004. POP EBP
  6005. JMP [_GetProcessHeaps]
  6006. end;
  6007. end;
  6008. var
  6009. _HeapLock: Pointer;
  6010. function HeapLock;
  6011. begin
  6012. GetProcedureAddress(_HeapLock, kernel32, 'HeapLock');
  6013. asm
  6014. MOV ESP, EBP
  6015. POP EBP
  6016. JMP [_HeapLock]
  6017. end;
  6018. end;
  6019. var
  6020. _HeapUnlock: Pointer;
  6021. function HeapUnlock;
  6022. begin
  6023. GetProcedureAddress(_HeapUnlock, kernel32, 'HeapUnlock');
  6024. asm
  6025. MOV ESP, EBP
  6026. POP EBP
  6027. JMP [_HeapUnlock]
  6028. end;
  6029. end;
  6030. var
  6031. _HeapWalk: Pointer;
  6032. function HeapWalk;
  6033. begin
  6034. GetProcedureAddress(_HeapWalk, kernel32, 'HeapWalk');
  6035. asm
  6036. MOV ESP, EBP
  6037. POP EBP
  6038. JMP [_HeapWalk]
  6039. end;
  6040. end;
  6041. var
  6042. _HeapSetInformation: Pointer;
  6043. function HeapSetInformation;
  6044. begin
  6045. GetProcedureAddress(_HeapSetInformation, kernel32, 'HeapSetInformation');
  6046. asm
  6047. MOV ESP, EBP
  6048. POP EBP
  6049. JMP [_HeapSetInformation]
  6050. end;
  6051. end;
  6052. var
  6053. _HeapQueryInformation: Pointer;
  6054. function HeapQueryInformation;
  6055. begin
  6056. GetProcedureAddress(_HeapQueryInformation, kernel32, 'HeapQueryInformation');
  6057. asm
  6058. MOV ESP, EBP
  6059. POP EBP
  6060. JMP [_HeapQueryInformation]
  6061. end;
  6062. end;
  6063. var
  6064. _GetBinaryTypeA: Pointer;
  6065. function GetBinaryTypeA;
  6066. begin
  6067. GetProcedureAddress(_GetBinaryTypeA, kernel32, 'GetBinaryTypeA');
  6068. asm
  6069. MOV ESP, EBP
  6070. POP EBP
  6071. JMP [_GetBinaryTypeA]
  6072. end;
  6073. end;
  6074. var
  6075. _GetBinaryTypeW: Pointer;
  6076. function GetBinaryTypeW;
  6077. begin
  6078. GetProcedureAddress(_GetBinaryTypeW, kernel32, 'GetBinaryTypeW');
  6079. asm
  6080. MOV ESP, EBP
  6081. POP EBP
  6082. JMP [_GetBinaryTypeW]
  6083. end;
  6084. end;
  6085. var
  6086. _GetBinaryType: Pointer;
  6087. function GetBinaryType;
  6088. begin
  6089. GetProcedureAddress(_GetBinaryType, kernel32, 'GetBinaryType' + AWSuffix);
  6090. asm
  6091. MOV ESP, EBP
  6092. POP EBP
  6093. JMP [_GetBinaryType]
  6094. end;
  6095. end;
  6096. var
  6097. _GetShortPathNameA: Pointer;
  6098. function GetShortPathNameA;
  6099. begin
  6100. GetProcedureAddress(_GetShortPathNameA, kernel32, 'GetShortPathNameA');
  6101. asm
  6102. MOV ESP, EBP
  6103. POP EBP
  6104. JMP [_GetShortPathNameA]
  6105. end;
  6106. end;
  6107. var
  6108. _GetShortPathNameW: Pointer;
  6109. function GetShortPathNameW;
  6110. begin
  6111. GetProcedureAddress(_GetShortPathNameW, kernel32, 'GetShortPathNameW');
  6112. asm
  6113. MOV ESP, EBP
  6114. POP EBP
  6115. JMP [_GetShortPathNameW]
  6116. end;
  6117. end;
  6118. var
  6119. _GetShortPathName: Pointer;
  6120. function GetShortPathName;
  6121. begin
  6122. GetProcedureAddress(_GetShortPathName, kernel32, 'GetShortPathName' + AWSuffix);
  6123. asm
  6124. MOV ESP, EBP
  6125. POP EBP
  6126. JMP [_GetShortPathName]
  6127. end;
  6128. end;
  6129. var
  6130. _GetLongPathNameA: Pointer;
  6131. function GetLongPathNameA;
  6132. begin
  6133. GetProcedureAddress(_GetLongPathNameA, kernel32, 'GetLongPathNameA');
  6134. asm
  6135. MOV ESP, EBP
  6136. POP EBP
  6137. JMP [_GetLongPathNameA]
  6138. end;
  6139. end;
  6140. var
  6141. _GetLongPathNameW: Pointer;
  6142. function GetLongPathNameW;
  6143. begin
  6144. GetProcedureAddress(_GetLongPathNameW, kernel32, 'GetLongPathNameW');
  6145. asm
  6146. MOV ESP, EBP
  6147. POP EBP
  6148. JMP [_GetLongPathNameW]
  6149. end;
  6150. end;
  6151. var
  6152. _GetLongPathName: Pointer;
  6153. function GetLongPathName;
  6154. begin
  6155. GetProcedureAddress(_GetLongPathName, kernel32, 'GetLongPathName' + AWSuffix);
  6156. asm
  6157. MOV ESP, EBP
  6158. POP EBP
  6159. JMP [_GetLongPathName]
  6160. end;
  6161. end;
  6162. var
  6163. _GetProcessAffinityMask: Pointer;
  6164. function GetProcessAffinityMask;
  6165. begin
  6166. GetProcedureAddress(_GetProcessAffinityMask, kernel32, 'GetProcessAffinityMask');
  6167. asm
  6168. MOV ESP, EBP
  6169. POP EBP
  6170. JMP [_GetProcessAffinityMask]
  6171. end;
  6172. end;
  6173. var
  6174. _SetProcessAffinityMask: Pointer;
  6175. function SetProcessAffinityMask;
  6176. begin
  6177. GetProcedureAddress(_SetProcessAffinityMask, kernel32, 'SetProcessAffinityMask');
  6178. asm
  6179. MOV ESP, EBP
  6180. POP EBP
  6181. JMP [_SetProcessAffinityMask]
  6182. end;
  6183. end;
  6184. var
  6185. _GetProcessHandleCount: Pointer;
  6186. function GetProcessHandleCount;
  6187. begin
  6188. GetProcedureAddress(_GetProcessHandleCount, kernel32, 'GetProcessHandleCount');
  6189. asm
  6190. MOV ESP, EBP
  6191. POP EBP
  6192. JMP [_GetProcessHandleCount]
  6193. end;
  6194. end;
  6195. var
  6196. _GetProcessTimes: Pointer;
  6197. function GetProcessTimes;
  6198. begin
  6199. GetProcedureAddress(_GetProcessTimes, kernel32, 'GetProcessTimes');
  6200. asm
  6201. MOV ESP, EBP
  6202. POP EBP
  6203. JMP [_GetProcessTimes]
  6204. end;
  6205. end;
  6206. var
  6207. _GetProcessIoCounters: Pointer;
  6208. function GetProcessIoCounters;
  6209. begin
  6210. GetProcedureAddress(_GetProcessIoCounters, kernel32, 'GetProcessIoCounters');
  6211. asm
  6212. MOV ESP, EBP
  6213. POP EBP
  6214. JMP [_GetProcessIoCounters]
  6215. end;
  6216. end;
  6217. var
  6218. _GetProcessWorkingSetSize: Pointer;
  6219. function GetProcessWorkingSetSize;
  6220. begin
  6221. GetProcedureAddress(_GetProcessWorkingSetSize, kernel32, 'GetProcessWorkingSetSize');
  6222. asm
  6223. MOV ESP, EBP
  6224. POP EBP
  6225. JMP [_GetProcessWorkingSetSize]
  6226. end;
  6227. end;
  6228. var
  6229. _GetProcessWorkingSetSizeEx: Pointer;
  6230. function GetProcessWorkingSetSizeEx;
  6231. begin
  6232. GetProcedureAddress(_GetProcessWorkingSetSizeEx, kernel32, 'GetProcessWorkingSetSizeEx');
  6233. asm
  6234. MOV ESP, EBP
  6235. POP EBP
  6236. JMP [_GetProcessWorkingSetSizeEx]
  6237. end;
  6238. end;
  6239. var
  6240. _SetProcessWorkingSetSize: Pointer;
  6241. function SetProcessWorkingSetSize;
  6242. begin
  6243. GetProcedureAddress(_SetProcessWorkingSetSize, kernel32, 'SetProcessWorkingSetSize');
  6244. asm
  6245. MOV ESP, EBP
  6246. POP EBP
  6247. JMP [_SetProcessWorkingSetSize]
  6248. end;
  6249. end;
  6250. var
  6251. _SetProcessWorkingSetSizeEx: Pointer;
  6252. function SetProcessWorkingSetSizeEx;
  6253. begin
  6254. GetProcedureAddress(_SetProcessWorkingSetSizeEx, kernel32, 'SetProcessWorkingSetSizeEx');
  6255. asm
  6256. MOV ESP, EBP
  6257. POP EBP
  6258. JMP [_SetProcessWorkingSetSizeEx]
  6259. end;
  6260. end;
  6261. var
  6262. _OpenProcess: Pointer;
  6263. function OpenProcess;
  6264. begin
  6265. GetProcedureAddress(_OpenProcess, kernel32, 'OpenProcess');
  6266. asm
  6267. MOV ESP, EBP
  6268. POP EBP
  6269. JMP [_OpenProcess]
  6270. end;
  6271. end;
  6272. var
  6273. _GetCurrentProcess: Pointer;
  6274. function GetCurrentProcess;
  6275. begin
  6276. GetProcedureAddress(_GetCurrentProcess, kernel32, 'GetCurrentProcess');
  6277. asm
  6278. MOV ESP, EBP
  6279. POP EBP
  6280. JMP [_GetCurrentProcess]
  6281. end;
  6282. end;
  6283. var
  6284. _GetCurrentProcessId: Pointer;
  6285. function GetCurrentProcessId;
  6286. begin
  6287. GetProcedureAddress(_GetCurrentProcessId, kernel32, 'GetCurrentProcessId');
  6288. asm
  6289. MOV ESP, EBP
  6290. POP EBP
  6291. JMP [_GetCurrentProcessId]
  6292. end;
  6293. end;
  6294. var
  6295. _ExitProcess: Pointer;
  6296. procedure ExitProcess;
  6297. begin
  6298. GetProcedureAddress(_ExitProcess, kernel32, 'ExitProcess');
  6299. asm
  6300. MOV ESP, EBP
  6301. POP EBP
  6302. JMP [_ExitProcess]
  6303. end;
  6304. end;
  6305. var
  6306. _TerminateProcess: Pointer;
  6307. function TerminateProcess;
  6308. begin
  6309. GetProcedureAddress(_TerminateProcess, kernel32, 'TerminateProcess');
  6310. asm
  6311. MOV ESP, EBP
  6312. POP EBP
  6313. JMP [_TerminateProcess]
  6314. end;
  6315. end;
  6316. var
  6317. _GetExitCodeProcess: Pointer;
  6318. function GetExitCodeProcess;
  6319. begin
  6320. GetProcedureAddress(_GetExitCodeProcess, kernel32, 'GetExitCodeProcess');
  6321. asm
  6322. MOV ESP, EBP
  6323. POP EBP
  6324. JMP [_GetExitCodeProcess]
  6325. end;
  6326. end;
  6327. var
  6328. _FatalExit: Pointer;
  6329. procedure FatalExit;
  6330. begin
  6331. GetProcedureAddress(_FatalExit, kernel32, 'FatalExit');
  6332. asm
  6333. MOV ESP, EBP
  6334. POP EBP
  6335. JMP [_FatalExit]
  6336. end;
  6337. end;
  6338. var
  6339. _GetEnvironmentStringsW: Pointer;
  6340. function GetEnvironmentStringsW;
  6341. begin
  6342. GetProcedureAddress(_GetEnvironmentStringsW, kernel32, 'GetEnvironmentStringsW');
  6343. asm
  6344. MOV ESP, EBP
  6345. POP EBP
  6346. JMP [_GetEnvironmentStringsW]
  6347. end;
  6348. end;
  6349. var
  6350. _GetEnvironmentStrings: Pointer;
  6351. function GetEnvironmentStrings;
  6352. begin
  6353. GetProcedureAddress(_GetEnvironmentStrings, kernel32, 'GetEnvironmentStrings' + AWSuffix);
  6354. asm
  6355. MOV ESP, EBP
  6356. POP EBP
  6357. JMP [_GetEnvironmentStrings]
  6358. end;
  6359. end;
  6360. {$IFNDEF UNICODE}
  6361. var
  6362. _GetEnvironmentStringsA: Pointer;
  6363. function GetEnvironmentStringsA;
  6364. begin
  6365. GetProcedureAddress(_GetEnvironmentStringsA, kernel32, 'GetEnvironmentStringsA');
  6366. asm
  6367. MOV ESP, EBP
  6368. POP EBP
  6369. JMP [_GetEnvironmentStringsA]
  6370. end;
  6371. end;
  6372. {$ENDIF !UNICODE}
  6373. var
  6374. _SetEnvironmentStringsA: Pointer;
  6375. function SetEnvironmentStringsA;
  6376. begin
  6377. GetProcedureAddress(_SetEnvironmentStringsA, kernel32, 'SetEnvironmentStringsA');
  6378. asm
  6379. MOV ESP, EBP
  6380. POP EBP
  6381. JMP [_SetEnvironmentStringsA]
  6382. end;
  6383. end;
  6384. var
  6385. _SetEnvironmentStringsW: Pointer;
  6386. function SetEnvironmentStringsW;
  6387. begin
  6388. GetProcedureAddress(_SetEnvironmentStringsW, kernel32, 'SetEnvironmentStringsW');
  6389. asm
  6390. MOV ESP, EBP
  6391. POP EBP
  6392. JMP [_SetEnvironmentStringsW]
  6393. end;
  6394. end;
  6395. var
  6396. _SetEnvironmentStrings: Pointer;
  6397. function SetEnvironmentStrings;
  6398. begin
  6399. GetProcedureAddress(_SetEnvironmentStrings, kernel32, 'SetEnvironmentStrings' + AWSuffix);
  6400. asm
  6401. MOV ESP, EBP
  6402. POP EBP
  6403. JMP [_SetEnvironmentStrings]
  6404. end;
  6405. end;
  6406. var
  6407. _FreeEnvironmentStringsA: Pointer;
  6408. function FreeEnvironmentStringsA;
  6409. begin
  6410. GetProcedureAddress(_FreeEnvironmentStringsA, kernel32, 'FreeEnvironmentStringsA');
  6411. asm
  6412. MOV ESP, EBP
  6413. POP EBP
  6414. JMP [_FreeEnvironmentStringsA]
  6415. end;
  6416. end;
  6417. var
  6418. _FreeEnvironmentStringsW: Pointer;
  6419. function FreeEnvironmentStringsW;
  6420. begin
  6421. GetProcedureAddress(_FreeEnvironmentStringsW, kernel32, 'FreeEnvironmentStringsW');
  6422. asm
  6423. MOV ESP, EBP
  6424. POP EBP
  6425. JMP [_FreeEnvironmentStringsW]
  6426. end;
  6427. end;
  6428. var
  6429. _FreeEnvironmentStrings: Pointer;
  6430. function FreeEnvironmentStrings;
  6431. begin
  6432. GetProcedureAddress(_FreeEnvironmentStrings, kernel32, 'FreeEnvironmentStrings' + AWSuffix);
  6433. asm
  6434. MOV ESP, EBP
  6435. POP EBP
  6436. JMP [_FreeEnvironmentStrings]
  6437. end;
  6438. end;
  6439. var
  6440. _RaiseException: Pointer;
  6441. procedure RaiseException;
  6442. begin
  6443. GetProcedureAddress(_RaiseException, kernel32, 'RaiseException');
  6444. asm
  6445. MOV ESP, EBP
  6446. POP EBP
  6447. JMP [_RaiseException]
  6448. end;
  6449. end;
  6450. var
  6451. _UnhandledExceptionFilter: Pointer;
  6452. function UnhandledExceptionFilter;
  6453. begin
  6454. GetProcedureAddress(_UnhandledExceptionFilter, kernel32, 'UnhandledExceptionFilter');
  6455. asm
  6456. MOV ESP, EBP
  6457. POP EBP
  6458. JMP [_UnhandledExceptionFilter]
  6459. end;
  6460. end;
  6461. var
  6462. _SetUnhandledExceptionFilter: Pointer;
  6463. function SetUnhandledExceptionFilter;
  6464. begin
  6465. GetProcedureAddress(_SetUnhandledExceptionFilter, kernel32, 'SetUnhandledExceptionFilter');
  6466. asm
  6467. MOV ESP, EBP
  6468. POP EBP
  6469. JMP [_SetUnhandledExceptionFilter]
  6470. end;
  6471. end;
  6472. var
  6473. _CreateFiber: Pointer;
  6474. function CreateFiber;
  6475. begin
  6476. GetProcedureAddress(_CreateFiber, kernel32, 'CreateFiber');
  6477. asm
  6478. MOV ESP, EBP
  6479. POP EBP
  6480. JMP [_CreateFiber]
  6481. end;
  6482. end;
  6483. var
  6484. _CreateFiberEx: Pointer;
  6485. function CreateFiberEx;
  6486. begin
  6487. GetProcedureAddress(_CreateFiberEx, kernel32, 'CreateFiberEx');
  6488. asm
  6489. MOV ESP, EBP
  6490. POP EBP
  6491. JMP [_CreateFiberEx]
  6492. end;
  6493. end;
  6494. var
  6495. _DeleteFiber: Pointer;
  6496. procedure DeleteFiber;
  6497. begin
  6498. GetProcedureAddress(_DeleteFiber, kernel32, 'DeleteFiber');
  6499. asm
  6500. MOV ESP, EBP
  6501. POP EBP
  6502. JMP [_DeleteFiber]
  6503. end;
  6504. end;
  6505. var
  6506. _ConvertThreadToFiber: Pointer;
  6507. function ConvertThreadToFiber;
  6508. begin
  6509. GetProcedureAddress(_ConvertThreadToFiber, kernel32, 'ConvertThreadToFiber');
  6510. asm
  6511. MOV ESP, EBP
  6512. POP EBP
  6513. JMP [_ConvertThreadToFiber]
  6514. end;
  6515. end;
  6516. var
  6517. _ConvertThreadToFiberEx: Pointer;
  6518. function ConvertThreadToFiberEx;
  6519. begin
  6520. GetProcedureAddress(_ConvertThreadToFiberEx, kernel32, 'ConvertThreadToFiberEx');
  6521. asm
  6522. MOV ESP, EBP
  6523. POP EBP
  6524. JMP [_ConvertThreadToFiberEx]
  6525. end;
  6526. end;
  6527. var
  6528. _ConvertFiberToThread: Pointer;
  6529. function ConvertFiberToThread;
  6530. begin
  6531. GetProcedureAddress(_ConvertFiberToThread, kernel32, 'ConvertFiberToThread');
  6532. asm
  6533. MOV ESP, EBP
  6534. POP EBP
  6535. JMP [_ConvertFiberToThread]
  6536. end;
  6537. end;
  6538. var
  6539. _SwitchToFiber: Pointer;
  6540. procedure SwitchToFiber;
  6541. begin
  6542. GetProcedureAddress(_SwitchToFiber, kernel32, 'SwitchToFiber');
  6543. asm
  6544. MOV ESP, EBP
  6545. POP EBP
  6546. JMP [_SwitchToFiber]
  6547. end;
  6548. end;
  6549. var
  6550. _SwitchToThread: Pointer;
  6551. function SwitchToThread;
  6552. begin
  6553. GetProcedureAddress(_SwitchToThread, kernel32, 'SwitchToThread');
  6554. asm
  6555. MOV ESP, EBP
  6556. POP EBP
  6557. JMP [_SwitchToThread]
  6558. end;
  6559. end;
  6560. var
  6561. _CreateThread: Pointer;
  6562. function CreateThread;
  6563. begin
  6564. GetProcedureAddress(_CreateThread, kernel32, 'CreateThread');
  6565. asm
  6566. MOV ESP, EBP
  6567. POP EBP
  6568. JMP [_CreateThread]
  6569. end;
  6570. end;
  6571. var
  6572. _CreateRemoteThread: Pointer;
  6573. function CreateRemoteThread;
  6574. begin
  6575. GetProcedureAddress(_CreateRemoteThread, kernel32, 'CreateRemoteThread');
  6576. asm
  6577. MOV ESP, EBP
  6578. POP EBP
  6579. JMP [_CreateRemoteThread]
  6580. end;
  6581. end;
  6582. var
  6583. _GetCurrentThread: Pointer;
  6584. function GetCurrentThread;
  6585. begin
  6586. GetProcedureAddress(_GetCurrentThread, kernel32, 'GetCurrentThread');
  6587. asm
  6588. MOV ESP, EBP
  6589. POP EBP
  6590. JMP [_GetCurrentThread]
  6591. end;
  6592. end;
  6593. var
  6594. _GetCurrentThreadId: Pointer;
  6595. function GetCurrentThreadId;
  6596. begin
  6597. GetProcedureAddress(_GetCurrentThreadId, kernel32, 'GetCurrentThreadId');
  6598. asm
  6599. MOV ESP, EBP
  6600. POP EBP
  6601. JMP [_GetCurrentThreadId]
  6602. end;
  6603. end;
  6604. var
  6605. _GetProcessIdOfThread: Pointer;
  6606. function GetProcessIdOfThread;
  6607. begin
  6608. GetProcedureAddress(_GetProcessIdOfThread, kernel32, 'GetProcessIdOfThread');
  6609. asm
  6610. MOV ESP, EBP
  6611. POP EBP
  6612. JMP [_GetProcessIdOfThread]
  6613. end;
  6614. end;
  6615. var
  6616. _GetThreadId: Pointer;
  6617. function GetThreadId;
  6618. begin
  6619. GetProcedureAddress(_GetThreadId, kernel32, 'GetThreadId');
  6620. asm
  6621. MOV ESP, EBP
  6622. POP EBP
  6623. JMP [_GetThreadId]
  6624. end;
  6625. end;
  6626. var
  6627. _GetProcessId: Pointer;
  6628. function GetProcessId;
  6629. begin
  6630. GetProcedureAddress(_GetProcessId, kernel32, 'GetProcessId');
  6631. asm
  6632. MOV ESP, EBP
  6633. POP EBP
  6634. JMP [_GetProcessId]
  6635. end;
  6636. end;
  6637. var
  6638. _GetCurrentProcessorNumber: Pointer;
  6639. function GetCurrentProcessorNumber;
  6640. begin
  6641. GetProcedureAddress(_GetCurrentProcessorNumber, kernel32, 'GetCurrentProcessorNumber');
  6642. asm
  6643. MOV ESP, EBP
  6644. POP EBP
  6645. JMP [_GetCurrentProcessorNumber]
  6646. end;
  6647. end;
  6648. var
  6649. _SetThreadAffinityMask: Pointer;
  6650. function SetThreadAffinityMask;
  6651. begin
  6652. GetProcedureAddress(_SetThreadAffinityMask, kernel32, 'SetThreadAffinityMask');
  6653. asm
  6654. MOV ESP, EBP
  6655. POP EBP
  6656. JMP [_SetThreadAffinityMask]
  6657. end;
  6658. end;
  6659. var
  6660. _SetThreadIdealProcessor: Pointer;
  6661. function SetThreadIdealProcessor;
  6662. begin
  6663. GetProcedureAddress(_SetThreadIdealProcessor, kernel32, 'SetThreadIdealProcessor');
  6664. asm
  6665. MOV ESP, EBP
  6666. POP EBP
  6667. JMP [_SetThreadIdealProcessor]
  6668. end;
  6669. end;
  6670. var
  6671. _SetProcessPriorityBoost: Pointer;
  6672. function SetProcessPriorityBoost;
  6673. begin
  6674. GetProcedureAddress(_SetProcessPriorityBoost, kernel32, 'SetProcessPriorityBoost');
  6675. asm
  6676. MOV ESP, EBP
  6677. POP EBP
  6678. JMP [_SetProcessPriorityBoost]
  6679. end;
  6680. end;
  6681. var
  6682. _GetProcessPriorityBoost: Pointer;
  6683. function GetProcessPriorityBoost;
  6684. begin
  6685. GetProcedureAddress(_GetProcessPriorityBoost, kernel32, 'GetProcessPriorityBoost');
  6686. asm
  6687. MOV ESP, EBP
  6688. POP EBP
  6689. JMP [_GetProcessPriorityBoost]
  6690. end;
  6691. end;
  6692. var
  6693. _RequestWakeupLatency: Pointer;
  6694. function RequestWakeupLatency;
  6695. begin
  6696. GetProcedureAddress(_RequestWakeupLatency, kernel32, 'RequestWakeupLatency');
  6697. asm
  6698. MOV ESP, EBP
  6699. POP EBP
  6700. JMP [_RequestWakeupLatency]
  6701. end;
  6702. end;
  6703. var
  6704. _IsSystemResumeAutomatic: Pointer;
  6705. function IsSystemResumeAutomatic;
  6706. begin
  6707. GetProcedureAddress(_IsSystemResumeAutomatic, kernel32, 'IsSystemResumeAutomatic');
  6708. asm
  6709. MOV ESP, EBP
  6710. POP EBP
  6711. JMP [_IsSystemResumeAutomatic]
  6712. end;
  6713. end;
  6714. var
  6715. _OpenThread: Pointer;
  6716. function OpenThread;
  6717. begin
  6718. GetProcedureAddress(_OpenThread, kernel32, 'OpenThread');
  6719. asm
  6720. MOV ESP, EBP
  6721. POP EBP
  6722. JMP [_OpenThread]
  6723. end;
  6724. end;
  6725. var
  6726. _SetThreadPriority: Pointer;
  6727. function SetThreadPriority;
  6728. begin
  6729. GetProcedureAddress(_SetThreadPriority, kernel32, 'SetThreadPriority');
  6730. asm
  6731. MOV ESP, EBP
  6732. POP EBP
  6733. JMP [_SetThreadPriority]
  6734. end;
  6735. end;
  6736. var
  6737. _SetThreadPriorityBoost: Pointer;
  6738. function SetThreadPriorityBoost;
  6739. begin
  6740. GetProcedureAddress(_SetThreadPriorityBoost, kernel32, 'SetThreadPriorityBoost');
  6741. asm
  6742. MOV ESP, EBP
  6743. POP EBP
  6744. JMP [_SetThreadPriorityBoost]
  6745. end;
  6746. end;
  6747. var
  6748. _GetThreadPriorityBoost: Pointer;
  6749. function GetThreadPriorityBoost;
  6750. begin
  6751. GetProcedureAddress(_GetThreadPriorityBoost, kernel32, 'GetThreadPriorityBoost');
  6752. asm
  6753. MOV ESP, EBP
  6754. POP EBP
  6755. JMP [_GetThreadPriorityBoost]
  6756. end;
  6757. end;
  6758. var
  6759. _GetThreadPriority: Pointer;
  6760. function GetThreadPriority;
  6761. begin
  6762. GetProcedureAddress(_GetThreadPriority, kernel32, 'GetThreadPriority');
  6763. asm
  6764. MOV ESP, EBP
  6765. POP EBP
  6766. JMP [_GetThreadPriority]
  6767. end;
  6768. end;
  6769. var
  6770. _GetThreadTimes: Pointer;
  6771. function GetThreadTimes;
  6772. begin
  6773. GetProcedureAddress(_GetThreadTimes, kernel32, 'GetThreadTimes');
  6774. asm
  6775. MOV ESP, EBP
  6776. POP EBP
  6777. JMP [_GetThreadTimes]
  6778. end;
  6779. end;
  6780. var
  6781. _GetThreadIOPendingFlag: Pointer;
  6782. function GetThreadIOPendingFlag;
  6783. begin
  6784. GetProcedureAddress(_GetThreadIOPendingFlag, kernel32, 'GetThreadIOPendingFlag');
  6785. asm
  6786. MOV ESP, EBP
  6787. POP EBP
  6788. JMP [_GetThreadIOPendingFlag]
  6789. end;
  6790. end;
  6791. var
  6792. _ExitThread: Pointer;
  6793. procedure ExitThread;
  6794. begin
  6795. GetProcedureAddress(_ExitThread, kernel32, 'ExitThread');
  6796. asm
  6797. MOV ESP, EBP
  6798. POP EBP
  6799. JMP [_ExitThread]
  6800. end;
  6801. end;
  6802. var
  6803. _TerminateThread: Pointer;
  6804. function TerminateThread;
  6805. begin
  6806. GetProcedureAddress(_TerminateThread, kernel32, 'TerminateThread');
  6807. asm
  6808. MOV ESP, EBP
  6809. POP EBP
  6810. JMP [_TerminateThread]
  6811. end;
  6812. end;
  6813. var
  6814. _GetExitCodeThread: Pointer;
  6815. function GetExitCodeThread;
  6816. begin
  6817. GetProcedureAddress(_GetExitCodeThread, kernel32, 'GetExitCodeThread');
  6818. asm
  6819. MOV ESP, EBP
  6820. POP EBP
  6821. JMP [_GetExitCodeThread]
  6822. end;
  6823. end;
  6824. var
  6825. _GetThreadSelectorEntry: Pointer;
  6826. function GetThreadSelectorEntry;
  6827. begin
  6828. GetProcedureAddress(_GetThreadSelectorEntry, kernel32, 'GetThreadSelectorEntry');
  6829. asm
  6830. MOV ESP, EBP
  6831. POP EBP
  6832. JMP [_GetThreadSelectorEntry]
  6833. end;
  6834. end;
  6835. var
  6836. _SetThreadExecutionState: Pointer;
  6837. function SetThreadExecutionState;
  6838. begin
  6839. GetProcedureAddress(_SetThreadExecutionState, kernel32, 'SetThreadExecutionState');
  6840. asm
  6841. MOV ESP, EBP
  6842. POP EBP
  6843. JMP [_SetThreadExecutionState]
  6844. end;
  6845. end;
  6846. var
  6847. _GetLastError: Pointer;
  6848. function GetLastError;
  6849. begin
  6850. GetProcedureAddress(_GetLastError, kernel32, 'GetLastError');
  6851. asm
  6852. MOV ESP, EBP
  6853. POP EBP
  6854. JMP [_GetLastError]
  6855. end;
  6856. end;
  6857. var
  6858. _SetLastError: Pointer;
  6859. procedure SetLastError;
  6860. begin
  6861. GetProcedureAddress(_SetLastError, kernel32, 'SetLastError');
  6862. asm
  6863. MOV ESP, EBP
  6864. POP EBP
  6865. JMP [_SetLastError]
  6866. end;
  6867. end;
  6868. var
  6869. _RestoreLastError: Pointer;
  6870. procedure RestoreLastError;
  6871. begin
  6872. GetProcedureAddress(_RestoreLastError, kernel32, 'RestoreLastError');
  6873. asm
  6874. MOV ESP, EBP
  6875. POP EBP
  6876. JMP [_RestoreLastError]
  6877. end;
  6878. end;
  6879. var
  6880. _GetOverlappedResult: Pointer;
  6881. function GetOverlappedResult;
  6882. begin
  6883. GetProcedureAddress(_GetOverlappedResult, kernel32, 'GetOverlappedResult');
  6884. asm
  6885. MOV ESP, EBP
  6886. POP EBP
  6887. JMP [_GetOverlappedResult]
  6888. end;
  6889. end;
  6890. var
  6891. _CreateIoCompletionPort: Pointer;
  6892. function CreateIoCompletionPort;
  6893. begin
  6894. GetProcedureAddress(_CreateIoCompletionPort, kernel32, 'CreateIoCompletionPort');
  6895. asm
  6896. MOV ESP, EBP
  6897. POP EBP
  6898. JMP [_CreateIoCompletionPort]
  6899. end;
  6900. end;
  6901. var
  6902. _GetQueuedCompletionStatus: Pointer;
  6903. function GetQueuedCompletionStatus;
  6904. begin
  6905. GetProcedureAddress(_GetQueuedCompletionStatus, kernel32, 'GetQueuedCompletionStatus');
  6906. asm
  6907. MOV ESP, EBP
  6908. POP EBP
  6909. JMP [_GetQueuedCompletionStatus]
  6910. end;
  6911. end;
  6912. var
  6913. _PostQueuedCompletionStatus: Pointer;
  6914. function PostQueuedCompletionStatus;
  6915. begin
  6916. GetProcedureAddress(_PostQueuedCompletionStatus, kernel32, 'PostQueuedCompletionStatus');
  6917. asm
  6918. MOV ESP, EBP
  6919. POP EBP
  6920. JMP [_PostQueuedCompletionStatus]
  6921. end;
  6922. end;
  6923. var
  6924. _SetErrorMode: Pointer;
  6925. function SetErrorMode;
  6926. begin
  6927. GetProcedureAddress(_SetErrorMode, kernel32, 'SetErrorMode');
  6928. asm
  6929. MOV ESP, EBP
  6930. POP EBP
  6931. JMP [_SetErrorMode]
  6932. end;
  6933. end;
  6934. var
  6935. _ReadProcessMemory: Pointer;
  6936. function ReadProcessMemory;
  6937. begin
  6938. GetProcedureAddress(_ReadProcessMemory, kernel32, 'ReadProcessMemory');
  6939. asm
  6940. MOV ESP, EBP
  6941. POP EBP
  6942. JMP [_ReadProcessMemory]
  6943. end;
  6944. end;
  6945. var
  6946. _WriteProcessMemory: Pointer;
  6947. function WriteProcessMemory;
  6948. begin
  6949. GetProcedureAddress(_WriteProcessMemory, kernel32, 'WriteProcessMemory');
  6950. asm
  6951. MOV ESP, EBP
  6952. POP EBP
  6953. JMP [_WriteProcessMemory]
  6954. end;
  6955. end;
  6956. var
  6957. _GetThreadContext: Pointer;
  6958. function GetThreadContext;
  6959. begin
  6960. GetProcedureAddress(_GetThreadContext, kernel32, 'GetThreadContext');
  6961. asm
  6962. MOV ESP, EBP
  6963. POP EBP
  6964. JMP [_GetThreadContext]
  6965. end;
  6966. end;
  6967. var
  6968. _SetThreadContext: Pointer;
  6969. function SetThreadContext;
  6970. begin
  6971. GetProcedureAddress(_SetThreadContext, kernel32, 'SetThreadContext');
  6972. asm
  6973. MOV ESP, EBP
  6974. POP EBP
  6975. JMP [_SetThreadContext]
  6976. end;
  6977. end;
  6978. var
  6979. _SuspendThread: Pointer;
  6980. function SuspendThread;
  6981. begin
  6982. GetProcedureAddress(_SuspendThread, kernel32, 'SuspendThread');
  6983. asm
  6984. MOV ESP, EBP
  6985. POP EBP
  6986. JMP [_SuspendThread]
  6987. end;
  6988. end;
  6989. var
  6990. _ResumeThread: Pointer;
  6991. function ResumeThread;
  6992. begin
  6993. GetProcedureAddress(_ResumeThread, kernel32, 'ResumeThread');
  6994. asm
  6995. MOV ESP, EBP
  6996. POP EBP
  6997. JMP [_ResumeThread]
  6998. end;
  6999. end;
  7000. var
  7001. _QueueUserAPC: Pointer;
  7002. function QueueUserAPC;
  7003. begin
  7004. GetProcedureAddress(_QueueUserAPC, kernel32, 'QueueUserAPC');
  7005. asm
  7006. MOV ESP, EBP
  7007. POP EBP
  7008. JMP [_QueueUserAPC]
  7009. end;
  7010. end;
  7011. var
  7012. _IsDebuggerPresent: Pointer;
  7013. function IsDebuggerPresent;
  7014. begin
  7015. GetProcedureAddress(_IsDebuggerPresent, kernel32, 'IsDebuggerPresent');
  7016. asm
  7017. MOV ESP, EBP
  7018. POP EBP
  7019. JMP [_IsDebuggerPresent]
  7020. end;
  7021. end;
  7022. var
  7023. _CheckRemoteDebuggerPresent: Pointer;
  7024. function CheckRemoteDebuggerPresent;
  7025. begin
  7026. GetProcedureAddress(_CheckRemoteDebuggerPresent, kernel32, 'CheckRemoteDebuggerPresent');
  7027. asm
  7028. MOV ESP, EBP
  7029. POP EBP
  7030. JMP [_CheckRemoteDebuggerPresent]
  7031. end;
  7032. end;
  7033. var
  7034. _DebugBreak: Pointer;
  7035. procedure DebugBreak;
  7036. begin
  7037. GetProcedureAddress(_DebugBreak, kernel32, 'DebugBreak');
  7038. asm
  7039. MOV ESP, EBP
  7040. POP EBP
  7041. JMP [_DebugBreak]
  7042. end;
  7043. end;
  7044. var
  7045. _WaitForDebugEvent: Pointer;
  7046. function WaitForDebugEvent;
  7047. begin
  7048. GetProcedureAddress(_WaitForDebugEvent, kernel32, 'WaitForDebugEvent');
  7049. asm
  7050. MOV ESP, EBP
  7051. POP EBP
  7052. JMP [_WaitForDebugEvent]
  7053. end;
  7054. end;
  7055. var
  7056. _ContinueDebugEvent: Pointer;
  7057. function ContinueDebugEvent;
  7058. begin
  7059. GetProcedureAddress(_ContinueDebugEvent, kernel32, 'ContinueDebugEvent');
  7060. asm
  7061. MOV ESP, EBP
  7062. POP EBP
  7063. JMP [_ContinueDebugEvent]
  7064. end;
  7065. end;
  7066. var
  7067. _DebugActiveProcess: Pointer;
  7068. function DebugActiveProcess;
  7069. begin
  7070. GetProcedureAddress(_DebugActiveProcess, kernel32, 'DebugActiveProcess');
  7071. asm
  7072. MOV ESP, EBP
  7073. POP EBP
  7074. JMP [_DebugActiveProcess]
  7075. end;
  7076. end;
  7077. var
  7078. _DebugActiveProcessStop: Pointer;
  7079. function DebugActiveProcessStop;
  7080. begin
  7081. GetProcedureAddress(_DebugActiveProcessStop, kernel32, 'DebugActiveProcessStop');
  7082. asm
  7083. MOV ESP, EBP
  7084. POP EBP
  7085. JMP [_DebugActiveProcessStop]
  7086. end;
  7087. end;
  7088. var
  7089. _DebugSetProcessKillOnExit: Pointer;
  7090. function DebugSetProcessKillOnExit;
  7091. begin
  7092. GetProcedureAddress(_DebugSetProcessKillOnExit, kernel32, 'DebugSetProcessKillOnExit');
  7093. asm
  7094. MOV ESP, EBP
  7095. POP EBP
  7096. JMP [_DebugSetProcessKillOnExit]
  7097. end;
  7098. end;
  7099. var
  7100. _DebugBreakProcess: Pointer;
  7101. function DebugBreakProcess;
  7102. begin
  7103. GetProcedureAddress(_DebugBreakProcess, kernel32, 'DebugBreakProcess');
  7104. asm
  7105. MOV ESP, EBP
  7106. POP EBP
  7107. JMP [_DebugBreakProcess]
  7108. end;
  7109. end;
  7110. var
  7111. _InitializeCriticalSection: Pointer;
  7112. procedure InitializeCriticalSection;
  7113. begin
  7114. GetProcedureAddress(_InitializeCriticalSection, kernel32, 'InitializeCriticalSection');
  7115. asm
  7116. MOV ESP, EBP
  7117. POP EBP
  7118. JMP [_InitializeCriticalSection]
  7119. end;
  7120. end;
  7121. var
  7122. _EnterCriticalSection: Pointer;
  7123. procedure EnterCriticalSection;
  7124. begin
  7125. GetProcedureAddress(_EnterCriticalSection, kernel32, 'EnterCriticalSection');
  7126. asm
  7127. MOV ESP, EBP
  7128. POP EBP
  7129. JMP [_EnterCriticalSection]
  7130. end;
  7131. end;
  7132. var
  7133. _LeaveCriticalSection: Pointer;
  7134. procedure LeaveCriticalSection;
  7135. begin
  7136. GetProcedureAddress(_LeaveCriticalSection, kernel32, 'LeaveCriticalSection');
  7137. asm
  7138. MOV ESP, EBP
  7139. POP EBP
  7140. JMP [_LeaveCriticalSection]
  7141. end;
  7142. end;
  7143. var
  7144. _InitCritSectAndSpinCount: Pointer;
  7145. function InitializeCriticalSectionAndSpinCount;
  7146. begin
  7147. GetProcedureAddress(_InitCritSectAndSpinCount, kernel32, 'InitializeCriticalSectionAndSpinCount');
  7148. asm
  7149. MOV ESP, EBP
  7150. POP EBP
  7151. JMP [_InitCritSectAndSpinCount]
  7152. end;
  7153. end;
  7154. var
  7155. _SetCriticalSectionSpinCount: Pointer;
  7156. function SetCriticalSectionSpinCount;
  7157. begin
  7158. GetProcedureAddress(_SetCriticalSectionSpinCount, kernel32, 'SetCriticalSectionSpinCount');
  7159. asm
  7160. MOV ESP, EBP
  7161. POP EBP
  7162. JMP [_SetCriticalSectionSpinCount]
  7163. end;
  7164. end;
  7165. var
  7166. _TryEnterCriticalSection: Pointer;
  7167. function TryEnterCriticalSection;
  7168. begin
  7169. GetProcedureAddress(_TryEnterCriticalSection, kernel32, 'TryEnterCriticalSection');
  7170. asm
  7171. MOV ESP, EBP
  7172. POP EBP
  7173. JMP [_TryEnterCriticalSection]
  7174. end;
  7175. end;
  7176. var
  7177. _DeleteCriticalSection: Pointer;
  7178. procedure DeleteCriticalSection;
  7179. begin
  7180. GetProcedureAddress(_DeleteCriticalSection, kernel32, 'DeleteCriticalSection');
  7181. asm
  7182. MOV ESP, EBP
  7183. POP EBP
  7184. JMP [_DeleteCriticalSection]
  7185. end;
  7186. end;
  7187. var
  7188. _SetEvent: Pointer;
  7189. function SetEvent;
  7190. begin
  7191. GetProcedureAddress(_SetEvent, kernel32, 'SetEvent');
  7192. asm
  7193. MOV ESP, EBP
  7194. POP EBP
  7195. JMP [_SetEvent]
  7196. end;
  7197. end;
  7198. var
  7199. _ResetEvent: Pointer;
  7200. function ResetEvent;
  7201. begin
  7202. GetProcedureAddress(_ResetEvent, kernel32, 'ResetEvent');
  7203. asm
  7204. MOV ESP, EBP
  7205. POP EBP
  7206. JMP [_ResetEvent]
  7207. end;
  7208. end;
  7209. var
  7210. _PulseEvent: Pointer;
  7211. function PulseEvent;
  7212. begin
  7213. GetProcedureAddress(_PulseEvent, kernel32, 'PulseEvent');
  7214. asm
  7215. MOV ESP, EBP
  7216. POP EBP
  7217. JMP [_PulseEvent]
  7218. end;
  7219. end;
  7220. var
  7221. _ReleaseSemaphore: Pointer;
  7222. function ReleaseSemaphore;
  7223. begin
  7224. GetProcedureAddress(_ReleaseSemaphore, kernel32, 'ReleaseSemaphore');
  7225. asm
  7226. MOV ESP, EBP
  7227. POP EBP
  7228. JMP [_ReleaseSemaphore]
  7229. end;
  7230. end;
  7231. var
  7232. _ReleaseMutex: Pointer;
  7233. function ReleaseMutex;
  7234. begin
  7235. GetProcedureAddress(_ReleaseMutex, kernel32, 'ReleaseMutex');
  7236. asm
  7237. MOV ESP, EBP
  7238. POP EBP
  7239. JMP [_ReleaseMutex]
  7240. end;
  7241. end;
  7242. var
  7243. _WaitForSingleObject: Pointer;
  7244. function WaitForSingleObject;
  7245. begin
  7246. GetProcedureAddress(_WaitForSingleObject, kernel32, 'WaitForSingleObject');
  7247. asm
  7248. MOV ESP, EBP
  7249. POP EBP
  7250. JMP [_WaitForSingleObject]
  7251. end;
  7252. end;
  7253. var
  7254. _WaitForMultipleObjects: Pointer;
  7255. function WaitForMultipleObjects;
  7256. begin
  7257. GetProcedureAddress(_WaitForMultipleObjects, kernel32, 'WaitForMultipleObjects');
  7258. asm
  7259. MOV ESP, EBP
  7260. POP EBP
  7261. JMP [_WaitForMultipleObjects]
  7262. end;
  7263. end;
  7264. var
  7265. _Sleep: Pointer;
  7266. procedure Sleep;
  7267. begin
  7268. GetProcedureAddress(_Sleep, kernel32, 'Sleep');
  7269. asm
  7270. MOV ESP, EBP
  7271. POP EBP
  7272. JMP [_Sleep]
  7273. end;
  7274. end;
  7275. var
  7276. _LoadResource: Pointer;
  7277. function LoadResource;
  7278. begin
  7279. GetProcedureAddress(_LoadResource, kernel32, 'LoadResource');
  7280. asm
  7281. MOV ESP, EBP
  7282. POP EBP
  7283. JMP [_LoadResource]
  7284. end;
  7285. end;
  7286. var
  7287. _SizeofResource: Pointer;
  7288. function SizeofResource;
  7289. begin
  7290. GetProcedureAddress(_SizeofResource, kernel32, 'SizeofResource');
  7291. asm
  7292. MOV ESP, EBP
  7293. POP EBP
  7294. JMP [_SizeofResource]
  7295. end;
  7296. end;
  7297. var
  7298. _GlobalDeleteAtom: Pointer;
  7299. function GlobalDeleteAtom;
  7300. begin
  7301. GetProcedureAddress(_GlobalDeleteAtom, kernel32, 'GlobalDeleteAtom');
  7302. asm
  7303. MOV ESP, EBP
  7304. POP EBP
  7305. JMP [_GlobalDeleteAtom]
  7306. end;
  7307. end;
  7308. var
  7309. _InitAtomTable: Pointer;
  7310. function InitAtomTable;
  7311. begin
  7312. GetProcedureAddress(_InitAtomTable, kernel32, 'InitAtomTable');
  7313. asm
  7314. MOV ESP, EBP
  7315. POP EBP
  7316. JMP [_InitAtomTable]
  7317. end;
  7318. end;
  7319. var
  7320. _DeleteAtom: Pointer;
  7321. function DeleteAtom;
  7322. begin
  7323. GetProcedureAddress(_DeleteAtom, kernel32, 'DeleteAtom');
  7324. asm
  7325. MOV ESP, EBP
  7326. POP EBP
  7327. JMP [_DeleteAtom]
  7328. end;
  7329. end;
  7330. var
  7331. _SetHandleCount: Pointer;
  7332. function SetHandleCount;
  7333. begin
  7334. GetProcedureAddress(_SetHandleCount, kernel32, 'SetHandleCount');
  7335. asm
  7336. MOV ESP, EBP
  7337. POP EBP
  7338. JMP [_SetHandleCount]
  7339. end;
  7340. end;
  7341. var
  7342. _GetLogicalDrives: Pointer;
  7343. function GetLogicalDrives;
  7344. begin
  7345. GetProcedureAddress(_GetLogicalDrives, kernel32, 'GetLogicalDrives');
  7346. asm
  7347. MOV ESP, EBP
  7348. POP EBP
  7349. JMP [_GetLogicalDrives]
  7350. end;
  7351. end;
  7352. var
  7353. _LockFile: Pointer;
  7354. function LockFile;
  7355. begin
  7356. GetProcedureAddress(_LockFile, kernel32, 'LockFile');
  7357. asm
  7358. MOV ESP, EBP
  7359. POP EBP
  7360. JMP [_LockFile]
  7361. end;
  7362. end;
  7363. var
  7364. _UnlockFile: Pointer;
  7365. function UnlockFile;
  7366. begin
  7367. GetProcedureAddress(_UnlockFile, kernel32, 'UnlockFile');
  7368. asm
  7369. MOV ESP, EBP
  7370. POP EBP
  7371. JMP [_UnlockFile]
  7372. end;
  7373. end;
  7374. var
  7375. _LockFileEx: Pointer;
  7376. function LockFileEx;
  7377. begin
  7378. GetProcedureAddress(_LockFileEx, kernel32, 'LockFileEx');
  7379. asm
  7380. MOV ESP, EBP
  7381. POP EBP
  7382. JMP [_LockFileEx]
  7383. end;
  7384. end;
  7385. var
  7386. _UnlockFileEx: Pointer;
  7387. function UnlockFileEx;
  7388. begin
  7389. GetProcedureAddress(_UnlockFileEx, kernel32, 'UnlockFileEx');
  7390. asm
  7391. MOV ESP, EBP
  7392. POP EBP
  7393. JMP [_UnlockFileEx]
  7394. end;
  7395. end;
  7396. var
  7397. _GetFileInformationByHandle: Pointer;
  7398. function GetFileInformationByHandle;
  7399. begin
  7400. GetProcedureAddress(_GetFileInformationByHandle, kernel32, 'GetFileInformationByHandle');
  7401. asm
  7402. MOV ESP, EBP
  7403. POP EBP
  7404. JMP [_GetFileInformationByHandle]
  7405. end;
  7406. end;
  7407. var
  7408. _GetFileType: Pointer;
  7409. function GetFileType;
  7410. begin
  7411. GetProcedureAddress(_GetFileType, kernel32, 'GetFileType');
  7412. asm
  7413. MOV ESP, EBP
  7414. POP EBP
  7415. JMP [_GetFileType]
  7416. end;
  7417. end;
  7418. var
  7419. _GetFileSize: Pointer;
  7420. function GetFileSize;
  7421. begin
  7422. GetProcedureAddress(_GetFileSize, kernel32, 'GetFileSize');
  7423. asm
  7424. MOV ESP, EBP
  7425. POP EBP
  7426. JMP [_GetFileSize]
  7427. end;
  7428. end;
  7429. var
  7430. _GetFileSizeEx: Pointer;
  7431. function GetFileSizeEx;
  7432. begin
  7433. GetProcedureAddress(_GetFileSizeEx, kernel32, 'GetFileSizeEx');
  7434. asm
  7435. MOV ESP, EBP
  7436. POP EBP
  7437. JMP [_GetFileSizeEx]
  7438. end;
  7439. end;
  7440. var
  7441. _GetStdHandle: Pointer;
  7442. function GetStdHandle;
  7443. begin
  7444. GetProcedureAddress(_GetStdHandle, kernel32, 'GetStdHandle');
  7445. asm
  7446. MOV ESP, EBP
  7447. POP EBP
  7448. JMP [_GetStdHandle]
  7449. end;
  7450. end;
  7451. var
  7452. _SetStdHandle: Pointer;
  7453. function SetStdHandle;
  7454. begin
  7455. GetProcedureAddress(_SetStdHandle, kernel32, 'SetStdHandle');
  7456. asm
  7457. MOV ESP, EBP
  7458. POP EBP
  7459. JMP [_SetStdHandle]
  7460. end;
  7461. end;
  7462. var
  7463. _WriteFile: Pointer;
  7464. function WriteFile;
  7465. begin
  7466. GetProcedureAddress(_WriteFile, kernel32, 'WriteFile');
  7467. asm
  7468. MOV ESP, EBP
  7469. POP EBP
  7470. JMP [_WriteFile]
  7471. end;
  7472. end;
  7473. var
  7474. _ReadFile: Pointer;
  7475. function ReadFile;
  7476. begin
  7477. GetProcedureAddress(_ReadFile, kernel32, 'ReadFile');
  7478. asm
  7479. MOV ESP, EBP
  7480. POP EBP
  7481. JMP [_ReadFile]
  7482. end;
  7483. end;
  7484. var
  7485. _FlushFileBuffers: Pointer;
  7486. function FlushFileBuffers;
  7487. begin
  7488. GetProcedureAddress(_FlushFileBuffers, kernel32, 'FlushFileBuffers');
  7489. asm
  7490. MOV ESP, EBP
  7491. POP EBP
  7492. JMP [_FlushFileBuffers]
  7493. end;
  7494. end;
  7495. var
  7496. _DeviceIoControl: Pointer;
  7497. function DeviceIoControl;
  7498. begin
  7499. GetProcedureAddress(_DeviceIoControl, kernel32, 'DeviceIoControl');
  7500. asm
  7501. MOV ESP, EBP
  7502. POP EBP
  7503. JMP [_DeviceIoControl]
  7504. end;
  7505. end;
  7506. var
  7507. _RequestDeviceWakeup: Pointer;
  7508. function RequestDeviceWakeup;
  7509. begin
  7510. GetProcedureAddress(_RequestDeviceWakeup, kernel32, 'RequestDeviceWakeup');
  7511. asm
  7512. MOV ESP, EBP
  7513. POP EBP
  7514. JMP [_RequestDeviceWakeup]
  7515. end;
  7516. end;
  7517. var
  7518. _CancelDeviceWakeupRequest: Pointer;
  7519. function CancelDeviceWakeupRequest;
  7520. begin
  7521. GetProcedureAddress(_CancelDeviceWakeupRequest, kernel32, 'CancelDeviceWakeupRequest');
  7522. asm
  7523. MOV ESP, EBP
  7524. POP EBP
  7525. JMP [_CancelDeviceWakeupRequest]
  7526. end;
  7527. end;
  7528. var
  7529. _GetDevicePowerState: Pointer;
  7530. function GetDevicePowerState;
  7531. begin
  7532. GetProcedureAddress(_GetDevicePowerState, kernel32, 'GetDevicePowerState');
  7533. asm
  7534. MOV ESP, EBP
  7535. POP EBP
  7536. JMP [_GetDevicePowerState]
  7537. end;
  7538. end;
  7539. var
  7540. _SetMessageWaitingIndicator: Pointer;
  7541. function SetMessageWaitingIndicator;
  7542. begin
  7543. GetProcedureAddress(_SetMessageWaitingIndicator, kernel32, 'SetMessageWaitingIndicator');
  7544. asm
  7545. MOV ESP, EBP
  7546. POP EBP
  7547. JMP [_SetMessageWaitingIndicator]
  7548. end;
  7549. end;
  7550. var
  7551. _SetEndOfFile: Pointer;
  7552. function SetEndOfFile;
  7553. begin
  7554. GetProcedureAddress(_SetEndOfFile, kernel32, 'SetEndOfFile');
  7555. asm
  7556. MOV ESP, EBP
  7557. POP EBP
  7558. JMP [_SetEndOfFile]
  7559. end;
  7560. end;
  7561. var
  7562. _SetFilePointer: Pointer;
  7563. function SetFilePointer;
  7564. begin
  7565. GetProcedureAddress(_SetFilePointer, kernel32, 'SetFilePointer');
  7566. asm
  7567. MOV ESP, EBP
  7568. POP EBP
  7569. JMP [_SetFilePointer]
  7570. end;
  7571. end;
  7572. var
  7573. _SetFilePointerEx: Pointer;
  7574. function SetFilePointerEx;
  7575. begin
  7576. GetProcedureAddress(_SetFilePointerEx, kernel32, 'SetFilePointerEx');
  7577. asm
  7578. MOV ESP, EBP
  7579. POP EBP
  7580. JMP [_SetFilePointerEx]
  7581. end;
  7582. end;
  7583. var
  7584. _FindClose: Pointer;
  7585. function FindClose;
  7586. begin
  7587. GetProcedureAddress(_FindClose, kernel32, 'FindClose');
  7588. asm
  7589. MOV ESP, EBP
  7590. POP EBP
  7591. JMP [_FindClose]
  7592. end;
  7593. end;
  7594. var
  7595. _GetFileTime: Pointer;
  7596. function GetFileTime;
  7597. begin
  7598. GetProcedureAddress(_GetFileTime, kernel32, 'GetFileTime');
  7599. asm
  7600. MOV ESP, EBP
  7601. POP EBP
  7602. JMP [_GetFileTime]
  7603. end;
  7604. end;
  7605. var
  7606. _SetFileTime: Pointer;
  7607. function SetFileTime;
  7608. begin
  7609. GetProcedureAddress(_SetFileTime, kernel32, 'SetFileTime');
  7610. asm
  7611. MOV ESP, EBP
  7612. POP EBP
  7613. JMP [_SetFileTime]
  7614. end;
  7615. end;
  7616. var
  7617. _SetFileValidData: Pointer;
  7618. function SetFileValidData;
  7619. begin
  7620. GetProcedureAddress(_SetFileValidData, kernel32, 'SetFileValidData');
  7621. asm
  7622. MOV ESP, EBP
  7623. POP EBP
  7624. JMP [_SetFileValidData]
  7625. end;
  7626. end;
  7627. var
  7628. _SetFileShortNameA: Pointer;
  7629. function SetFileShortNameA;
  7630. begin
  7631. GetProcedureAddress(_SetFileShortNameA, kernel32, 'SetFileShortNameA');
  7632. asm
  7633. MOV ESP, EBP
  7634. POP EBP
  7635. JMP [_SetFileShortNameA]
  7636. end;
  7637. end;
  7638. var
  7639. _SetFileShortNameW: Pointer;
  7640. function SetFileShortNameW;
  7641. begin
  7642. GetProcedureAddress(_SetFileShortNameW, kernel32, 'SetFileShortNameW');
  7643. asm
  7644. MOV ESP, EBP
  7645. POP EBP
  7646. JMP [_SetFileShortNameW]
  7647. end;
  7648. end;
  7649. var
  7650. _SetFileShortName: Pointer;
  7651. function SetFileShortName;
  7652. begin
  7653. GetProcedureAddress(_SetFileShortName, kernel32, 'SetFileShortName' + AWSuffix);
  7654. asm
  7655. MOV ESP, EBP
  7656. POP EBP
  7657. JMP [_SetFileShortName]
  7658. end;
  7659. end;
  7660. var
  7661. _CloseHandle: Pointer;
  7662. function CloseHandle;
  7663. begin
  7664. GetProcedureAddress(_CloseHandle, kernel32, 'CloseHandle');
  7665. asm
  7666. MOV ESP, EBP
  7667. POP EBP
  7668. JMP [_CloseHandle]
  7669. end;
  7670. end;
  7671. var
  7672. _DuplicateHandle: Pointer;
  7673. function DuplicateHandle;
  7674. begin
  7675. GetProcedureAddress(_DuplicateHandle, kernel32, 'DuplicateHandle');
  7676. asm
  7677. MOV ESP, EBP
  7678. POP EBP
  7679. JMP [_DuplicateHandle]
  7680. end;
  7681. end;
  7682. var
  7683. _GetHandleInformation: Pointer;
  7684. function GetHandleInformation;
  7685. begin
  7686. GetProcedureAddress(_GetHandleInformation, kernel32, 'GetHandleInformation');
  7687. asm
  7688. MOV ESP, EBP
  7689. POP EBP
  7690. JMP [_GetHandleInformation]
  7691. end;
  7692. end;
  7693. var
  7694. _SetHandleInformation: Pointer;
  7695. function SetHandleInformation;
  7696. begin
  7697. GetProcedureAddress(_SetHandleInformation, kernel32, 'SetHandleInformation');
  7698. asm
  7699. MOV ESP, EBP
  7700. POP EBP
  7701. JMP [_SetHandleInformation]
  7702. end;
  7703. end;
  7704. var
  7705. _LoadModule: Pointer;
  7706. function LoadModule;
  7707. begin
  7708. GetProcedureAddress(_LoadModule, kernel32, 'LoadModule');
  7709. asm
  7710. MOV ESP, EBP
  7711. POP EBP
  7712. JMP [_LoadModule]
  7713. end;
  7714. end;
  7715. var
  7716. _WinExec: Pointer;
  7717. function WinExec;
  7718. begin
  7719. GetProcedureAddress(_WinExec, kernel32, 'WinExec');
  7720. asm
  7721. MOV ESP, EBP
  7722. POP EBP
  7723. JMP [_WinExec]
  7724. end;
  7725. end;
  7726. var
  7727. _ClearCommBreak: Pointer;
  7728. function ClearCommBreak;
  7729. begin
  7730. GetProcedureAddress(_ClearCommBreak, kernel32, 'ClearCommBreak');
  7731. asm
  7732. MOV ESP, EBP
  7733. POP EBP
  7734. JMP [_ClearCommBreak]
  7735. end;
  7736. end;
  7737. var
  7738. _ClearCommError: Pointer;
  7739. function ClearCommError;
  7740. begin
  7741. GetProcedureAddress(_ClearCommError, kernel32, 'ClearCommError');
  7742. asm
  7743. MOV ESP, EBP
  7744. POP EBP
  7745. JMP [_ClearCommError]
  7746. end;
  7747. end;
  7748. var
  7749. _SetupComm: Pointer;
  7750. function SetupComm;
  7751. begin
  7752. GetProcedureAddress(_SetupComm, kernel32, 'SetupComm');
  7753. asm
  7754. MOV ESP, EBP
  7755. POP EBP
  7756. JMP [_SetupComm]
  7757. end;
  7758. end;
  7759. var
  7760. _EscapeCommFunction: Pointer;
  7761. function EscapeCommFunction;
  7762. begin
  7763. GetProcedureAddress(_EscapeCommFunction, kernel32, 'EscapeCommFunction');
  7764. asm
  7765. MOV ESP, EBP
  7766. POP EBP
  7767. JMP [_EscapeCommFunction]
  7768. end;
  7769. end;
  7770. var
  7771. _GetCommConfig: Pointer;
  7772. function GetCommConfig;
  7773. begin
  7774. GetProcedureAddress(_GetCommConfig, kernel32, 'GetCommConfig');
  7775. asm
  7776. MOV ESP, EBP
  7777. POP EBP
  7778. JMP [_GetCommConfig]
  7779. end;
  7780. end;
  7781. var
  7782. _GetCommMask: Pointer;
  7783. function GetCommMask;
  7784. begin
  7785. GetProcedureAddress(_GetCommMask, kernel32, 'GetCommMask');
  7786. asm
  7787. MOV ESP, EBP
  7788. POP EBP
  7789. JMP [_GetCommMask]
  7790. end;
  7791. end;
  7792. var
  7793. _GetCommProperties: Pointer;
  7794. function GetCommProperties;
  7795. begin
  7796. GetProcedureAddress(_GetCommProperties, kernel32, 'GetCommProperties');
  7797. asm
  7798. MOV ESP, EBP
  7799. POP EBP
  7800. JMP [_GetCommProperties]
  7801. end;
  7802. end;
  7803. var
  7804. _GetCommModemStatus: Pointer;
  7805. function GetCommModemStatus;
  7806. begin
  7807. GetProcedureAddress(_GetCommModemStatus, kernel32, 'GetCommModemStatus');
  7808. asm
  7809. MOV ESP, EBP
  7810. POP EBP
  7811. JMP [_GetCommModemStatus]
  7812. end;
  7813. end;
  7814. var
  7815. _GetCommState: Pointer;
  7816. function GetCommState;
  7817. begin
  7818. GetProcedureAddress(_GetCommState, kernel32, 'GetCommState');
  7819. asm
  7820. MOV ESP, EBP
  7821. POP EBP
  7822. JMP [_GetCommState]
  7823. end;
  7824. end;
  7825. var
  7826. _GetCommTimeouts: Pointer;
  7827. function GetCommTimeouts;
  7828. begin
  7829. GetProcedureAddress(_GetCommTimeouts, kernel32, 'GetCommTimeouts');
  7830. asm
  7831. MOV ESP, EBP
  7832. POP EBP
  7833. JMP [_GetCommTimeouts]
  7834. end;
  7835. end;
  7836. var
  7837. _PurgeComm: Pointer;
  7838. function PurgeComm;
  7839. begin
  7840. GetProcedureAddress(_PurgeComm, kernel32, 'PurgeComm');
  7841. asm
  7842. MOV ESP, EBP
  7843. POP EBP
  7844. JMP [_PurgeComm]
  7845. end;
  7846. end;
  7847. var
  7848. _SetCommBreak: Pointer;
  7849. function SetCommBreak;
  7850. begin
  7851. GetProcedureAddress(_SetCommBreak, kernel32, 'SetCommBreak');
  7852. asm
  7853. MOV ESP, EBP
  7854. POP EBP
  7855. JMP [_SetCommBreak]
  7856. end;
  7857. end;
  7858. var
  7859. _SetCommConfig: Pointer;
  7860. function SetCommConfig;
  7861. begin
  7862. GetProcedureAddress(_SetCommConfig, kernel32, 'SetCommConfig');
  7863. asm
  7864. MOV ESP, EBP
  7865. POP EBP
  7866. JMP [_SetCommConfig]
  7867. end;
  7868. end;
  7869. var
  7870. _SetCommMask: Pointer;
  7871. function SetCommMask;
  7872. begin
  7873. GetProcedureAddress(_SetCommMask, kernel32, 'SetCommMask');
  7874. asm
  7875. MOV ESP, EBP
  7876. POP EBP
  7877. JMP [_SetCommMask]
  7878. end;
  7879. end;
  7880. var
  7881. _SetCommState: Pointer;
  7882. function SetCommState;
  7883. begin
  7884. GetProcedureAddress(_SetCommState, kernel32, 'SetCommState');
  7885. asm
  7886. MOV ESP, EBP
  7887. POP EBP
  7888. JMP [_SetCommState]
  7889. end;
  7890. end;
  7891. var
  7892. _SetCommTimeouts: Pointer;
  7893. function SetCommTimeouts;
  7894. begin
  7895. GetProcedureAddress(_SetCommTimeouts, kernel32, 'SetCommTimeouts');
  7896. asm
  7897. MOV ESP, EBP
  7898. POP EBP
  7899. JMP [_SetCommTimeouts]
  7900. end;
  7901. end;
  7902. var
  7903. _TransmitCommChar: Pointer;
  7904. function TransmitCommChar;
  7905. begin
  7906. GetProcedureAddress(_TransmitCommChar, kernel32, 'TransmitCommChar');
  7907. asm
  7908. MOV ESP, EBP
  7909. POP EBP
  7910. JMP [_TransmitCommChar]
  7911. end;
  7912. end;
  7913. var
  7914. _WaitCommEvent: Pointer;
  7915. function WaitCommEvent;
  7916. begin
  7917. GetProcedureAddress(_WaitCommEvent, kernel32, 'WaitCommEvent');
  7918. asm
  7919. MOV ESP, EBP
  7920. POP EBP
  7921. JMP [_WaitCommEvent]
  7922. end;
  7923. end;
  7924. var
  7925. _SetTapePosition: Pointer;
  7926. function SetTapePosition;
  7927. begin
  7928. GetProcedureAddress(_SetTapePosition, kernel32, 'SetTapePosition');
  7929. asm
  7930. MOV ESP, EBP
  7931. POP EBP
  7932. JMP [_SetTapePosition]
  7933. end;
  7934. end;
  7935. var
  7936. _GetTapePosition: Pointer;
  7937. function GetTapePosition;
  7938. begin
  7939. GetProcedureAddress(_GetTapePosition, kernel32, 'GetTapePosition');
  7940. asm
  7941. MOV ESP, EBP
  7942. POP EBP
  7943. JMP [_GetTapePosition]
  7944. end;
  7945. end;
  7946. var
  7947. _PrepareTape: Pointer;
  7948. function PrepareTape;
  7949. begin
  7950. GetProcedureAddress(_PrepareTape, kernel32, 'PrepareTape');
  7951. asm
  7952. MOV ESP, EBP
  7953. POP EBP
  7954. JMP [_PrepareTape]
  7955. end;
  7956. end;
  7957. var
  7958. _EraseTape: Pointer;
  7959. function EraseTape;
  7960. begin
  7961. GetProcedureAddress(_EraseTape, kernel32, 'EraseTape');
  7962. asm
  7963. MOV ESP, EBP
  7964. POP EBP
  7965. JMP [_EraseTape]
  7966. end;
  7967. end;
  7968. var
  7969. _CreateTapePartition: Pointer;
  7970. function CreateTapePartition;
  7971. begin
  7972. GetProcedureAddress(_CreateTapePartition, kernel32, 'CreateTapePartition');
  7973. asm
  7974. MOV ESP, EBP
  7975. POP EBP
  7976. JMP [_CreateTapePartition]
  7977. end;
  7978. end;
  7979. var
  7980. _WriteTapemark: Pointer;
  7981. function WriteTapemark;
  7982. begin
  7983. GetProcedureAddress(_WriteTapemark, kernel32, 'WriteTapemark');
  7984. asm
  7985. MOV ESP, EBP
  7986. POP EBP
  7987. JMP [_WriteTapemark]
  7988. end;
  7989. end;
  7990. var
  7991. _GetTapeStatus: Pointer;
  7992. function GetTapeStatus;
  7993. begin
  7994. GetProcedureAddress(_GetTapeStatus, kernel32, 'GetTapeStatus');
  7995. asm
  7996. MOV ESP, EBP
  7997. POP EBP
  7998. JMP [_GetTapeStatus]
  7999. end;
  8000. end;
  8001. var
  8002. _GetTapeParameters: Pointer;
  8003. function GetTapeParameters;
  8004. begin
  8005. GetProcedureAddress(_GetTapeParameters, kernel32, 'GetTapeParameters');
  8006. asm
  8007. MOV ESP, EBP
  8008. POP EBP
  8009. JMP [_GetTapeParameters]
  8010. end;
  8011. end;
  8012. var
  8013. _SetTapeParameters: Pointer;
  8014. function SetTapeParameters;
  8015. begin
  8016. GetProcedureAddress(_SetTapeParameters, kernel32, 'SetTapeParameters');
  8017. asm
  8018. MOV ESP, EBP
  8019. POP EBP
  8020. JMP [_SetTapeParameters]
  8021. end;
  8022. end;
  8023. var
  8024. _Beep: Pointer;
  8025. function Beep;
  8026. begin
  8027. GetProcedureAddress(_Beep, kernel32, 'Beep');
  8028. asm
  8029. MOV ESP, EBP
  8030. POP EBP
  8031. JMP [_Beep]
  8032. end;
  8033. end;
  8034. var
  8035. _MulDiv: Pointer;
  8036. function MulDiv;
  8037. begin
  8038. GetProcedureAddress(_MulDiv, kernel32, 'MulDiv');
  8039. asm
  8040. MOV ESP, EBP
  8041. POP EBP
  8042. JMP [_MulDiv]
  8043. end;
  8044. end;
  8045. var
  8046. _GetSystemTime: Pointer;
  8047. procedure GetSystemTime;
  8048. begin
  8049. GetProcedureAddress(_GetSystemTime, kernel32, 'GetSystemTime');
  8050. asm
  8051. MOV ESP, EBP
  8052. POP EBP
  8053. JMP [_GetSystemTime]
  8054. end;
  8055. end;
  8056. var
  8057. _GetSystemTimeAsFileTime: Pointer;
  8058. procedure GetSystemTimeAsFileTime;
  8059. begin
  8060. GetProcedureAddress(_GetSystemTimeAsFileTime, kernel32, 'GetSystemTimeAsFileTime');
  8061. asm
  8062. MOV ESP, EBP
  8063. POP EBP
  8064. JMP [_GetSystemTimeAsFileTime]
  8065. end;
  8066. end;
  8067. var
  8068. _SetSystemTime: Pointer;
  8069. function SetSystemTime;
  8070. begin
  8071. GetProcedureAddress(_SetSystemTime, kernel32, 'SetSystemTime');
  8072. asm
  8073. MOV ESP, EBP
  8074. POP EBP
  8075. JMP [_SetSystemTime]
  8076. end;
  8077. end;
  8078. var
  8079. _GetLocalTime: Pointer;
  8080. procedure GetLocalTime;
  8081. begin
  8082. GetProcedureAddress(_GetLocalTime, kernel32, 'GetLocalTime');
  8083. asm
  8084. MOV ESP, EBP
  8085. POP EBP
  8086. JMP [_GetLocalTime]
  8087. end;
  8088. end;
  8089. var
  8090. _SetLocalTime: Pointer;
  8091. function SetLocalTime;
  8092. begin
  8093. GetProcedureAddress(_SetLocalTime, kernel32, 'SetLocalTime');
  8094. asm
  8095. MOV ESP, EBP
  8096. POP EBP
  8097. JMP [_SetLocalTime]
  8098. end;
  8099. end;
  8100. var
  8101. _GetSystemInfo: Pointer;
  8102. procedure GetSystemInfo;
  8103. begin
  8104. GetProcedureAddress(_GetSystemInfo, kernel32, 'GetSystemInfo');
  8105. asm
  8106. MOV ESP, EBP
  8107. POP EBP
  8108. JMP [_GetSystemInfo]
  8109. end;
  8110. end;
  8111. var
  8112. _GetSystemRegistryQuota: Pointer;
  8113. function GetSystemRegistryQuota;
  8114. begin
  8115. GetProcedureAddress(_GetSystemRegistryQuota, kernel32, 'GetSystemRegistryQuota');
  8116. asm
  8117. MOV ESP, EBP
  8118. POP EBP
  8119. JMP [_GetSystemRegistryQuota]
  8120. end;
  8121. end;
  8122. var
  8123. _GetSystemTimes: Pointer;
  8124. function GetSystemTimes;
  8125. begin
  8126. GetProcedureAddress(_GetSystemTimes, kernel32, 'GetSystemTimes');
  8127. asm
  8128. MOV ESP, EBP
  8129. POP EBP
  8130. JMP [_GetSystemTimes]
  8131. end;
  8132. end;
  8133. var
  8134. _GetNativeSystemInfo: Pointer;
  8135. procedure GetNativeSystemInfo;
  8136. begin
  8137. GetProcedureAddress(_GetNativeSystemInfo, kernel32, 'GetNativeSystemInfo');
  8138. asm
  8139. MOV ESP, EBP
  8140. POP EBP
  8141. JMP [_GetNativeSystemInfo]
  8142. end;
  8143. end;
  8144. var
  8145. _IsProcessorFeaturePresent: Pointer;
  8146. function IsProcessorFeaturePresent;
  8147. begin
  8148. GetProcedureAddress(_IsProcessorFeaturePresent, kernel32, 'IsProcessorFeaturePresent');
  8149. asm
  8150. MOV ESP, EBP
  8151. POP EBP
  8152. JMP [_IsProcessorFeaturePresent]
  8153. end;
  8154. end;
  8155. var
  8156. _SystemTimeToTzSpecificLocalTime: Pointer;
  8157. function SystemTimeToTzSpecificLocalTime;
  8158. begin
  8159. GetProcedureAddress(_SystemTimeToTzSpecificLocalTime, kernel32, 'SystemTimeToTzSpecificLocalTime');
  8160. asm
  8161. MOV ESP, EBP
  8162. POP EBP
  8163. JMP [_SystemTimeToTzSpecificLocalTime]
  8164. end;
  8165. end;
  8166. var
  8167. _TzSpecificLocalTimeToSystemTime: Pointer;
  8168. function TzSpecificLocalTimeToSystemTime;
  8169. begin
  8170. GetProcedureAddress(_TzSpecificLocalTimeToSystemTime, kernel32, 'TzSpecificLocalTimeToSystemTime');
  8171. asm
  8172. MOV ESP, EBP
  8173. POP EBP
  8174. JMP [_TzSpecificLocalTimeToSystemTime]
  8175. end;
  8176. end;
  8177. var
  8178. _GetTimeZoneInformation: Pointer;
  8179. function GetTimeZoneInformation;
  8180. begin
  8181. GetProcedureAddress(_GetTimeZoneInformation, kernel32, 'GetTimeZoneInformation');
  8182. asm
  8183. MOV ESP, EBP
  8184. POP EBP
  8185. JMP [_GetTimeZoneInformation]
  8186. end;
  8187. end;
  8188. var
  8189. _SetTimeZoneInformation: Pointer;
  8190. function SetTimeZoneInformation;
  8191. begin
  8192. GetProcedureAddress(_SetTimeZoneInformation, kernel32, 'SetTimeZoneInformation');
  8193. asm
  8194. MOV ESP, EBP
  8195. POP EBP
  8196. JMP [_SetTimeZoneInformation]
  8197. end;
  8198. end;
  8199. var
  8200. _SystemTimeToFileTime: Pointer;
  8201. function SystemTimeToFileTime;
  8202. begin
  8203. GetProcedureAddress(_SystemTimeToFileTime, kernel32, 'SystemTimeToFileTime');
  8204. asm
  8205. MOV ESP, EBP
  8206. POP EBP
  8207. JMP [_SystemTimeToFileTime]
  8208. end;
  8209. end;
  8210. var
  8211. _FileTimeToLocalFileTime: Pointer;
  8212. function FileTimeToLocalFileTime;
  8213. begin
  8214. GetProcedureAddress(_FileTimeToLocalFileTime, kernel32, 'FileTimeToLocalFileTime');
  8215. asm
  8216. MOV ESP, EBP
  8217. POP EBP
  8218. JMP [_FileTimeToLocalFileTime]
  8219. end;
  8220. end;
  8221. var
  8222. _LocalFileTimeToFileTime: Pointer;
  8223. function LocalFileTimeToFileTime;
  8224. begin
  8225. GetProcedureAddress(_LocalFileTimeToFileTime, kernel32, 'LocalFileTimeToFileTime');
  8226. asm
  8227. MOV ESP, EBP
  8228. POP EBP
  8229. JMP [_LocalFileTimeToFileTime]
  8230. end;
  8231. end;
  8232. var
  8233. _FileTimeToSystemTime: Pointer;
  8234. function FileTimeToSystemTime;
  8235. begin
  8236. GetProcedureAddress(_FileTimeToSystemTime, kernel32, 'FileTimeToSystemTime');
  8237. asm
  8238. MOV ESP, EBP
  8239. POP EBP
  8240. JMP [_FileTimeToSystemTime]
  8241. end;
  8242. end;
  8243. var
  8244. _CompareFileTime: Pointer;
  8245. function CompareFileTime;
  8246. begin
  8247. GetProcedureAddress(_CompareFileTime, kernel32, 'CompareFileTime');
  8248. asm
  8249. MOV ESP, EBP
  8250. POP EBP
  8251. JMP [_CompareFileTime]
  8252. end;
  8253. end;
  8254. var
  8255. _FileTimeToDosDateTime: Pointer;
  8256. function FileTimeToDosDateTime;
  8257. begin
  8258. GetProcedureAddress(_FileTimeToDosDateTime, kernel32, 'FileTimeToDosDateTime');
  8259. asm
  8260. MOV ESP, EBP
  8261. POP EBP
  8262. JMP [_FileTimeToDosDateTime]
  8263. end;
  8264. end;
  8265. var
  8266. _DosDateTimeToFileTime: Pointer;
  8267. function DosDateTimeToFileTime;
  8268. begin
  8269. GetProcedureAddress(_DosDateTimeToFileTime, kernel32, 'DosDateTimeToFileTime');
  8270. asm
  8271. MOV ESP, EBP
  8272. POP EBP
  8273. JMP [_DosDateTimeToFileTime]
  8274. end;
  8275. end;
  8276. var
  8277. _GetTickCount: Pointer;
  8278. function GetTickCount;
  8279. begin
  8280. GetProcedureAddress(_GetTickCount, kernel32, 'GetTickCount');
  8281. asm
  8282. MOV ESP, EBP
  8283. POP EBP
  8284. JMP [_GetTickCount]
  8285. end;
  8286. end;
  8287. var
  8288. _SetSystemTimeAdjustment: Pointer;
  8289. function SetSystemTimeAdjustment;
  8290. begin
  8291. GetProcedureAddress(_SetSystemTimeAdjustment, kernel32, 'SetSystemTimeAdjustment');
  8292. asm
  8293. MOV ESP, EBP
  8294. POP EBP
  8295. JMP [_SetSystemTimeAdjustment]
  8296. end;
  8297. end;
  8298. var
  8299. _GetSystemTimeAdjustment: Pointer;
  8300. function GetSystemTimeAdjustment;
  8301. begin
  8302. GetProcedureAddress(_GetSystemTimeAdjustment, kernel32, 'GetSystemTimeAdjustment');
  8303. asm
  8304. MOV ESP, EBP
  8305. POP EBP
  8306. JMP [_GetSystemTimeAdjustment]
  8307. end;
  8308. end;
  8309. var
  8310. _FormatMessageA: Pointer;
  8311. function FormatMessageA;
  8312. begin
  8313. GetProcedureAddress(_FormatMessageA, kernel32, 'FormatMessageA');
  8314. asm
  8315. MOV ESP, EBP
  8316. POP EBP
  8317. JMP [_FormatMessageA]
  8318. end;
  8319. end;
  8320. var
  8321. _FormatMessageW: Pointer;
  8322. function FormatMessageW;
  8323. begin
  8324. GetProcedureAddress(_FormatMessageW, kernel32, 'FormatMessageW');
  8325. asm
  8326. MOV ESP, EBP
  8327. POP EBP
  8328. JMP [_FormatMessageW]
  8329. end;
  8330. end;
  8331. var
  8332. _FormatMessage: Pointer;
  8333. function FormatMessage;
  8334. begin
  8335. GetProcedureAddress(_FormatMessage, kernel32, 'FormatMessage' + AWSuffix);
  8336. asm
  8337. MOV ESP, EBP
  8338. POP EBP
  8339. JMP [_FormatMessage]
  8340. end;
  8341. end;
  8342. var
  8343. _CreatePipe: Pointer;
  8344. function CreatePipe;
  8345. begin
  8346. GetProcedureAddress(_CreatePipe, kernel32, 'CreatePipe');
  8347. asm
  8348. MOV ESP, EBP
  8349. POP EBP
  8350. JMP [_CreatePipe]
  8351. end;
  8352. end;
  8353. var
  8354. _ConnectNamedPipe: Pointer;
  8355. function ConnectNamedPipe;
  8356. begin
  8357. GetProcedureAddress(_ConnectNamedPipe, kernel32, 'ConnectNamedPipe');
  8358. asm
  8359. MOV ESP, EBP
  8360. POP EBP
  8361. JMP [_ConnectNamedPipe]
  8362. end;
  8363. end;
  8364. var
  8365. _DisconnectNamedPipe: Pointer;
  8366. function DisconnectNamedPipe;
  8367. begin
  8368. GetProcedureAddress(_DisconnectNamedPipe, kernel32, 'DisconnectNamedPipe');
  8369. asm
  8370. MOV ESP, EBP
  8371. POP EBP
  8372. JMP [_DisconnectNamedPipe]
  8373. end;
  8374. end;
  8375. var
  8376. _SetNamedPipeHandleState: Pointer;
  8377. function SetNamedPipeHandleState;
  8378. begin
  8379. GetProcedureAddress(_SetNamedPipeHandleState, kernel32, 'SetNamedPipeHandleState');
  8380. asm
  8381. MOV ESP, EBP
  8382. POP EBP
  8383. JMP [_SetNamedPipeHandleState]
  8384. end;
  8385. end;
  8386. var
  8387. _GetNamedPipeInfo: Pointer;
  8388. function GetNamedPipeInfo;
  8389. begin
  8390. GetProcedureAddress(_GetNamedPipeInfo, kernel32, 'GetNamedPipeInfo');
  8391. asm
  8392. MOV ESP, EBP
  8393. POP EBP
  8394. JMP [_GetNamedPipeInfo]
  8395. end;
  8396. end;
  8397. var
  8398. _PeekNamedPipe: Pointer;
  8399. function PeekNamedPipe;
  8400. begin
  8401. GetProcedureAddress(_PeekNamedPipe, kernel32, 'PeekNamedPipe');
  8402. asm
  8403. MOV ESP, EBP
  8404. POP EBP
  8405. JMP [_PeekNamedPipe]
  8406. end;
  8407. end;
  8408. var
  8409. _TransactNamedPipe: Pointer;
  8410. function TransactNamedPipe;
  8411. begin
  8412. GetProcedureAddress(_TransactNamedPipe, kernel32, 'TransactNamedPipe');
  8413. asm
  8414. MOV ESP, EBP
  8415. POP EBP
  8416. JMP [_TransactNamedPipe]
  8417. end;
  8418. end;
  8419. var
  8420. _CreateMailslotA: Pointer;
  8421. function CreateMailslotA;
  8422. begin
  8423. GetProcedureAddress(_CreateMailslotA, kernel32, 'CreateMailslotA');
  8424. asm
  8425. MOV ESP, EBP
  8426. POP EBP
  8427. JMP [_CreateMailslotA]
  8428. end;
  8429. end;
  8430. var
  8431. _CreateMailslotW: Pointer;
  8432. function CreateMailslotW;
  8433. begin
  8434. GetProcedureAddress(_CreateMailslotW, kernel32, 'CreateMailslotW');
  8435. asm
  8436. MOV ESP, EBP
  8437. POP EBP
  8438. JMP [_CreateMailslotW]
  8439. end;
  8440. end;
  8441. var
  8442. _CreateMailslot: Pointer;
  8443. function CreateMailslot;
  8444. begin
  8445. GetProcedureAddress(_CreateMailslot, kernel32, 'CreateMailslot' + AWSuffix);
  8446. asm
  8447. MOV ESP, EBP
  8448. POP EBP
  8449. JMP [_CreateMailslot]
  8450. end;
  8451. end;
  8452. var
  8453. _GetMailslotInfo: Pointer;
  8454. function GetMailslotInfo;
  8455. begin
  8456. GetProcedureAddress(_GetMailslotInfo, kernel32, 'GetMailslotInfo');
  8457. asm
  8458. MOV ESP, EBP
  8459. POP EBP
  8460. JMP [_GetMailslotInfo]
  8461. end;
  8462. end;
  8463. var
  8464. _SetMailslotInfo: Pointer;
  8465. function SetMailslotInfo;
  8466. begin
  8467. GetProcedureAddress(_SetMailslotInfo, kernel32, 'SetMailslotInfo');
  8468. asm
  8469. MOV ESP, EBP
  8470. POP EBP
  8471. JMP [_SetMailslotInfo]
  8472. end;
  8473. end;
  8474. var
  8475. _MapViewOfFile: Pointer;
  8476. function MapViewOfFile;
  8477. begin
  8478. GetProcedureAddress(_MapViewOfFile, kernel32, 'MapViewOfFile');
  8479. asm
  8480. MOV ESP, EBP
  8481. POP EBP
  8482. JMP [_MapViewOfFile]
  8483. end;
  8484. end;
  8485. var
  8486. _FlushViewOfFile: Pointer;
  8487. function FlushViewOfFile;
  8488. begin
  8489. GetProcedureAddress(_FlushViewOfFile, kernel32, 'FlushViewOfFile');
  8490. asm
  8491. MOV ESP, EBP
  8492. POP EBP
  8493. JMP [_FlushViewOfFile]
  8494. end;
  8495. end;
  8496. var
  8497. _UnmapViewOfFile: Pointer;
  8498. function UnmapViewOfFile;
  8499. begin
  8500. GetProcedureAddress(_UnmapViewOfFile, kernel32, 'UnmapViewOfFile');
  8501. asm
  8502. MOV ESP, EBP
  8503. POP EBP
  8504. JMP [_UnmapViewOfFile]
  8505. end;
  8506. end;
  8507. var
  8508. _EncryptFileA: Pointer;
  8509. function EncryptFileA;
  8510. begin
  8511. GetProcedureAddress(_EncryptFileA, advapi32, 'EncryptFileA');
  8512. asm
  8513. MOV ESP, EBP
  8514. POP EBP
  8515. JMP [_EncryptFileA]
  8516. end;
  8517. end;
  8518. var
  8519. _EncryptFileW: Pointer;
  8520. function EncryptFileW;
  8521. begin
  8522. GetProcedureAddress(_EncryptFileW, advapi32, 'EncryptFileW');
  8523. asm
  8524. MOV ESP, EBP
  8525. POP EBP
  8526. JMP [_EncryptFileW]
  8527. end;
  8528. end;
  8529. var
  8530. _EncryptFile: Pointer;
  8531. function EncryptFile;
  8532. begin
  8533. GetProcedureAddress(_EncryptFile, advapi32, 'EncryptFile' + AWSuffix);
  8534. asm
  8535. MOV ESP, EBP
  8536. POP EBP
  8537. JMP [_EncryptFile]
  8538. end;
  8539. end;
  8540. var
  8541. _DecryptFileA: Pointer;
  8542. function DecryptFileA;
  8543. begin
  8544. GetProcedureAddress(_DecryptFileA, advapi32, 'DecryptFileA');
  8545. asm
  8546. MOV ESP, EBP
  8547. POP EBP
  8548. JMP [_DecryptFileA]
  8549. end;
  8550. end;
  8551. var
  8552. _DecryptFileW: Pointer;
  8553. function DecryptFileW;
  8554. begin
  8555. GetProcedureAddress(_DecryptFileW, advapi32, 'DecryptFileW');
  8556. asm
  8557. MOV ESP, EBP
  8558. POP EBP
  8559. JMP [_DecryptFileW]
  8560. end;
  8561. end;
  8562. var
  8563. _DecryptFile: Pointer;
  8564. function DecryptFile;
  8565. begin
  8566. GetProcedureAddress(_DecryptFile, advapi32, 'DecryptFile' + AWSuffix);
  8567. asm
  8568. MOV ESP, EBP
  8569. POP EBP
  8570. JMP [_DecryptFile]
  8571. end;
  8572. end;
  8573. var
  8574. _FileEncryptionStatusA: Pointer;
  8575. function FileEncryptionStatusA;
  8576. begin
  8577. GetProcedureAddress(_FileEncryptionStatusA, advapi32, 'FileEncryptionStatusA');
  8578. asm
  8579. MOV ESP, EBP
  8580. POP EBP
  8581. JMP [_FileEncryptionStatusA]
  8582. end;
  8583. end;
  8584. var
  8585. _FileEncryptionStatusW: Pointer;
  8586. function FileEncryptionStatusW;
  8587. begin
  8588. GetProcedureAddress(_FileEncryptionStatusW, advapi32, 'FileEncryptionStatusW');
  8589. asm
  8590. MOV ESP, EBP
  8591. POP EBP
  8592. JMP [_FileEncryptionStatusW]
  8593. end;
  8594. end;
  8595. var
  8596. _FileEncryptionStatus: Pointer;
  8597. function FileEncryptionStatus;
  8598. begin
  8599. GetProcedureAddress(_FileEncryptionStatus, advapi32, 'FileEncryptionStatus' + AWSuffix);
  8600. asm
  8601. MOV ESP, EBP
  8602. POP EBP
  8603. JMP [_FileEncryptionStatus]
  8604. end;
  8605. end;
  8606. var
  8607. _OpenEncryptedFileRawA: Pointer;
  8608. function OpenEncryptedFileRawA;
  8609. begin
  8610. GetProcedureAddress(_OpenEncryptedFileRawA, advapi32, 'OpenEncryptedFileRawA');
  8611. asm
  8612. MOV ESP, EBP
  8613. POP EBP
  8614. JMP [_OpenEncryptedFileRawA]
  8615. end;
  8616. end;
  8617. var
  8618. _OpenEncryptedFileRawW: Pointer;
  8619. function OpenEncryptedFileRawW;
  8620. begin
  8621. GetProcedureAddress(_OpenEncryptedFileRawW, advapi32, 'OpenEncryptedFileRawW');
  8622. asm
  8623. MOV ESP, EBP
  8624. POP EBP
  8625. JMP [_OpenEncryptedFileRawW]
  8626. end;
  8627. end;
  8628. var
  8629. _OpenEncryptedFileRaw: Pointer;
  8630. function OpenEncryptedFileRaw;
  8631. begin
  8632. GetProcedureAddress(_OpenEncryptedFileRaw, advapi32, 'OpenEncryptedFileRaw' + AWSuffix);
  8633. asm
  8634. MOV ESP, EBP
  8635. POP EBP
  8636. JMP [_OpenEncryptedFileRaw]
  8637. end;
  8638. end;
  8639. var
  8640. _ReadEncryptedFileRaw: Pointer;
  8641. function ReadEncryptedFileRaw;
  8642. begin
  8643. GetProcedureAddress(_ReadEncryptedFileRaw, advapi32, 'ReadEncryptedFileRaw');
  8644. asm
  8645. MOV ESP, EBP
  8646. POP EBP
  8647. JMP [_ReadEncryptedFileRaw]
  8648. end;
  8649. end;
  8650. var
  8651. _WriteEncryptedFileRaw: Pointer;
  8652. function WriteEncryptedFileRaw;
  8653. begin
  8654. GetProcedureAddress(_WriteEncryptedFileRaw, advapi32, 'WriteEncryptedFileRaw');
  8655. asm
  8656. MOV ESP, EBP
  8657. POP EBP
  8658. JMP [_WriteEncryptedFileRaw]
  8659. end;
  8660. end;
  8661. var
  8662. _CloseEncryptedFileRaw: Pointer;
  8663. procedure CloseEncryptedFileRaw;
  8664. begin
  8665. GetProcedureAddress(_CloseEncryptedFileRaw, advapi32, 'CloseEncryptedFileRaw');
  8666. asm
  8667. MOV ESP, EBP
  8668. POP EBP
  8669. JMP [_CloseEncryptedFileRaw]
  8670. end;
  8671. end;
  8672. var
  8673. _lstrcmpA: Pointer;
  8674. function lstrcmpA;
  8675. begin
  8676. GetProcedureAddress(_lstrcmpA, kernel32, 'lstrcmpA');
  8677. asm
  8678. MOV ESP, EBP
  8679. POP EBP
  8680. JMP [_lstrcmpA]
  8681. end;
  8682. end;
  8683. var
  8684. _lstrcmpW: Pointer;
  8685. function lstrcmpW;
  8686. begin
  8687. GetProcedureAddress(_lstrcmpW, kernel32, 'lstrcmpW');
  8688. asm
  8689. MOV ESP, EBP
  8690. POP EBP
  8691. JMP [_lstrcmpW]
  8692. end;
  8693. end;
  8694. var
  8695. _lstrcmp: Pointer;
  8696. function lstrcmp;
  8697. begin
  8698. GetProcedureAddress(_lstrcmp, kernel32, 'lstrcmp' + AWSuffix);
  8699. asm
  8700. MOV ESP, EBP
  8701. POP EBP
  8702. JMP [_lstrcmp]
  8703. end;
  8704. end;
  8705. var
  8706. _lstrcmpiA: Pointer;
  8707. function lstrcmpiA;
  8708. begin
  8709. GetProcedureAddress(_lstrcmpiA, kernel32, 'lstrcmpiA');
  8710. asm
  8711. MOV ESP, EBP
  8712. POP EBP
  8713. JMP [_lstrcmpiA]
  8714. end;
  8715. end;
  8716. var
  8717. _lstrcmpiW: Pointer;
  8718. function lstrcmpiW;
  8719. begin
  8720. GetProcedureAddress(_lstrcmpiW, kernel32, 'lstrcmpiW');
  8721. asm
  8722. MOV ESP, EBP
  8723. POP EBP
  8724. JMP [_lstrcmpiW]
  8725. end;
  8726. end;
  8727. var
  8728. _lstrcmpi: Pointer;
  8729. function lstrcmpi;
  8730. begin
  8731. GetProcedureAddress(_lstrcmpi, kernel32, 'lstrcmpi' + AWSuffix);
  8732. asm
  8733. MOV ESP, EBP
  8734. POP EBP
  8735. JMP [_lstrcmpi]
  8736. end;
  8737. end;
  8738. var
  8739. _lstrcpynA: Pointer;
  8740. function lstrcpynA;
  8741. begin
  8742. GetProcedureAddress(_lstrcpynA, kernel32, 'lstrcpynA');
  8743. asm
  8744. MOV ESP, EBP
  8745. POP EBP
  8746. JMP [_lstrcpynA]
  8747. end;
  8748. end;
  8749. var
  8750. _lstrcpynW: Pointer;
  8751. function lstrcpynW;
  8752. begin
  8753. GetProcedureAddress(_lstrcpynW, kernel32, 'lstrcpynW');
  8754. asm
  8755. MOV ESP, EBP
  8756. POP EBP
  8757. JMP [_lstrcpynW]
  8758. end;
  8759. end;
  8760. var
  8761. _lstrcpyn: Pointer;
  8762. function lstrcpyn;
  8763. begin
  8764. GetProcedureAddress(_lstrcpyn, kernel32, 'lstrcpyn' + AWSuffix);
  8765. asm
  8766. MOV ESP, EBP
  8767. POP EBP
  8768. JMP [_lstrcpyn]
  8769. end;
  8770. end;
  8771. var
  8772. _lstrcpyA: Pointer;
  8773. function lstrcpyA;
  8774. begin
  8775. GetProcedureAddress(_lstrcpyA, kernel32, 'lstrcpyA');
  8776. asm
  8777. MOV ESP, EBP
  8778. POP EBP
  8779. JMP [_lstrcpyA]
  8780. end;
  8781. end;
  8782. var
  8783. _lstrcpyW: Pointer;
  8784. function lstrcpyW;
  8785. begin
  8786. GetProcedureAddress(_lstrcpyW, kernel32, 'lstrcpyW');
  8787. asm
  8788. MOV ESP, EBP
  8789. POP EBP
  8790. JMP [_lstrcpyW]
  8791. end;
  8792. end;
  8793. var
  8794. _lstrcpy: Pointer;
  8795. function lstrcpy;
  8796. begin
  8797. GetProcedureAddress(_lstrcpy, kernel32, 'lstrcpy' + AWSuffix);
  8798. asm
  8799. MOV ESP, EBP
  8800. POP EBP
  8801. JMP [_lstrcpy]
  8802. end;
  8803. end;
  8804. var
  8805. _lstrcatA: Pointer;
  8806. function lstrcatA;
  8807. begin
  8808. GetProcedureAddress(_lstrcatA, kernel32, 'lstrcatA');
  8809. asm
  8810. MOV ESP, EBP
  8811. POP EBP
  8812. JMP [_lstrcatA]
  8813. end;
  8814. end;
  8815. var
  8816. _lstrcatW: Pointer;
  8817. function lstrcatW;
  8818. begin
  8819. GetProcedureAddress(_lstrcatW, kernel32, 'lstrcatW');
  8820. asm
  8821. MOV ESP, EBP
  8822. POP EBP
  8823. JMP [_lstrcatW]
  8824. end;
  8825. end;
  8826. var
  8827. _lstrcat: Pointer;
  8828. function lstrcat;
  8829. begin
  8830. GetProcedureAddress(_lstrcat, kernel32, 'lstrcat' + AWSuffix);
  8831. asm
  8832. MOV ESP, EBP
  8833. POP EBP
  8834. JMP [_lstrcat]
  8835. end;
  8836. end;
  8837. var
  8838. _lstrlenA: Pointer;
  8839. function lstrlenA;
  8840. begin
  8841. GetProcedureAddress(_lstrlenA, kernel32, 'lstrlenA');
  8842. asm
  8843. MOV ESP, EBP
  8844. POP EBP
  8845. JMP [_lstrlenA]
  8846. end;
  8847. end;
  8848. var
  8849. _lstrlenW: Pointer;
  8850. function lstrlenW;
  8851. begin
  8852. GetProcedureAddress(_lstrlenW, kernel32, 'lstrlenW');
  8853. asm
  8854. MOV ESP, EBP
  8855. POP EBP
  8856. JMP [_lstrlenW]
  8857. end;
  8858. end;
  8859. var
  8860. _lstrlen: Pointer;
  8861. function lstrlen;
  8862. begin
  8863. GetProcedureAddress(_lstrlen, kernel32, 'lstrlen' + AWSuffix);
  8864. asm
  8865. MOV ESP, EBP
  8866. POP EBP
  8867. JMP [_lstrlen]
  8868. end;
  8869. end;
  8870. var
  8871. _OpenFile: Pointer;
  8872. function OpenFile;
  8873. begin
  8874. GetProcedureAddress(_OpenFile, kernel32, 'OpenFile');
  8875. asm
  8876. MOV ESP, EBP
  8877. POP EBP
  8878. JMP [_OpenFile]
  8879. end;
  8880. end;
  8881. var
  8882. __lopen: Pointer;
  8883. function _lopen;
  8884. begin
  8885. GetProcedureAddress(__lopen, kernel32, '_lopen');
  8886. asm
  8887. MOV ESP, EBP
  8888. POP EBP
  8889. JMP [__lopen]
  8890. end;
  8891. end;
  8892. var
  8893. __lcreat: Pointer;
  8894. function _lcreat;
  8895. begin
  8896. GetProcedureAddress(__lcreat, kernel32, '_lcreat');
  8897. asm
  8898. MOV ESP, EBP
  8899. POP EBP
  8900. JMP [__lcreat]
  8901. end;
  8902. end;
  8903. var
  8904. __lread: Pointer;
  8905. function _lread;
  8906. begin
  8907. GetProcedureAddress(__lread, kernel32, '_lread');
  8908. asm
  8909. MOV ESP, EBP
  8910. POP EBP
  8911. JMP [__lread]
  8912. end;
  8913. end;
  8914. var
  8915. __lwrite: Pointer;
  8916. function _lwrite;
  8917. begin
  8918. GetProcedureAddress(__lwrite, kernel32, '_lwrite');
  8919. asm
  8920. MOV ESP, EBP
  8921. POP EBP
  8922. JMP [__lwrite]
  8923. end;
  8924. end;
  8925. var
  8926. __hread: Pointer;
  8927. function _hread;
  8928. begin
  8929. GetProcedureAddress(__hread, kernel32, '_hread');
  8930. asm
  8931. MOV ESP, EBP
  8932. POP EBP
  8933. JMP [__hread]
  8934. end;
  8935. end;
  8936. var
  8937. __hwrite: Pointer;
  8938. function _hwrite;
  8939. begin
  8940. GetProcedureAddress(__hwrite, kernel32, '_hwrite');
  8941. asm
  8942. MOV ESP, EBP
  8943. POP EBP
  8944. JMP [__hwrite]
  8945. end;
  8946. end;
  8947. var
  8948. __lclose: Pointer;
  8949. function _lclose;
  8950. begin
  8951. GetProcedureAddress(__lclose, kernel32, '_lclose');
  8952. asm
  8953. MOV ESP, EBP
  8954. POP EBP
  8955. JMP [__lclose]
  8956. end;
  8957. end;
  8958. var
  8959. __llseek: Pointer;
  8960. function _llseek;
  8961. begin
  8962. GetProcedureAddress(__llseek, kernel32, '_llseek');
  8963. asm
  8964. MOV ESP, EBP
  8965. POP EBP
  8966. JMP [__llseek]
  8967. end;
  8968. end;
  8969. var
  8970. _IsTextUnicode: Pointer;
  8971. function IsTextUnicode;
  8972. begin
  8973. GetProcedureAddress(_IsTextUnicode, advapi32, 'IsTextUnicode');
  8974. asm
  8975. MOV ESP, EBP
  8976. POP EBP
  8977. JMP [_IsTextUnicode]
  8978. end;
  8979. end;
  8980. var
  8981. _FlsAlloc: Pointer;
  8982. function FlsAlloc;
  8983. begin
  8984. GetProcedureAddress(_FlsAlloc, kernel32, 'FlsAlloc');
  8985. asm
  8986. MOV ESP, EBP
  8987. POP EBP
  8988. JMP [_FlsAlloc]
  8989. end;
  8990. end;
  8991. var
  8992. _FlsGetValue: Pointer;
  8993. function FlsGetValue;
  8994. begin
  8995. GetProcedureAddress(_FlsGetValue, kernel32, 'FlsGetValue');
  8996. asm
  8997. MOV ESP, EBP
  8998. POP EBP
  8999. JMP [_FlsGetValue]
  9000. end;
  9001. end;
  9002. var
  9003. _FlsSetValue: Pointer;
  9004. function FlsSetValue;
  9005. begin
  9006. GetProcedureAddress(_FlsSetValue, kernel32, 'FlsSetValue');
  9007. asm
  9008. MOV ESP, EBP
  9009. POP EBP
  9010. JMP [_FlsSetValue]
  9011. end;
  9012. end;
  9013. var
  9014. _FlsFree: Pointer;
  9015. function FlsFree;
  9016. begin
  9017. GetProcedureAddress(_FlsFree, kernel32, 'FlsFree');
  9018. asm
  9019. MOV ESP, EBP
  9020. POP EBP
  9021. JMP [_FlsFree]
  9022. end;
  9023. end;
  9024. var
  9025. _TlsAlloc: Pointer;
  9026. function TlsAlloc;
  9027. begin
  9028. GetProcedureAddress(_TlsAlloc, kernel32, 'TlsAlloc');
  9029. asm
  9030. MOV ESP, EBP
  9031. POP EBP
  9032. JMP [_TlsAlloc]
  9033. end;
  9034. end;
  9035. var
  9036. _TlsGetValue: Pointer;
  9037. function TlsGetValue;
  9038. begin
  9039. GetProcedureAddress(_TlsGetValue, kernel32, 'TlsGetValue');
  9040. asm
  9041. MOV ESP, EBP
  9042. POP EBP
  9043. JMP [_TlsGetValue]
  9044. end;
  9045. end;
  9046. var
  9047. _TlsSetValue: Pointer;
  9048. function TlsSetValue;
  9049. begin
  9050. GetProcedureAddress(_TlsSetValue, kernel32, 'TlsSetValue');
  9051. asm
  9052. MOV ESP, EBP
  9053. POP EBP
  9054. JMP [_TlsSetValue]
  9055. end;
  9056. end;
  9057. var
  9058. _TlsFree: Pointer;
  9059. function TlsFree;
  9060. begin
  9061. GetProcedureAddress(_TlsFree, kernel32, 'TlsFree');
  9062. asm
  9063. MOV ESP, EBP
  9064. POP EBP
  9065. JMP [_TlsFree]
  9066. end;
  9067. end;
  9068. var
  9069. _SleepEx: Pointer;
  9070. function SleepEx;
  9071. begin
  9072. GetProcedureAddress(_SleepEx, kernel32, 'SleepEx');
  9073. asm
  9074. MOV ESP, EBP
  9075. POP EBP
  9076. JMP [_SleepEx]
  9077. end;
  9078. end;
  9079. var
  9080. _WaitForSingleObjectEx: Pointer;
  9081. function WaitForSingleObjectEx;
  9082. begin
  9083. GetProcedureAddress(_WaitForSingleObjectEx, kernel32, 'WaitForSingleObjectEx');
  9084. asm
  9085. MOV ESP, EBP
  9086. POP EBP
  9087. JMP [_WaitForSingleObjectEx]
  9088. end;
  9089. end;
  9090. var
  9091. _WaitForMultipleObjectsEx: Pointer;
  9092. function WaitForMultipleObjectsEx;
  9093. begin
  9094. GetProcedureAddress(_WaitForMultipleObjectsEx, kernel32, 'WaitForMultipleObjectsEx');
  9095. asm
  9096. MOV ESP, EBP
  9097. POP EBP
  9098. JMP [_WaitForMultipleObjectsEx]
  9099. end;
  9100. end;
  9101. var
  9102. _SignalObjectAndWait: Pointer;
  9103. function SignalObjectAndWait;
  9104. begin
  9105. GetProcedureAddress(_SignalObjectAndWait, kernel32, 'SignalObjectAndWait');
  9106. asm
  9107. MOV ESP, EBP
  9108. POP EBP
  9109. JMP [_SignalObjectAndWait]
  9110. end;
  9111. end;
  9112. var
  9113. _ReadFileEx: Pointer;
  9114. function ReadFileEx;
  9115. begin
  9116. GetProcedureAddress(_ReadFileEx, kernel32, 'ReadFileEx');
  9117. asm
  9118. MOV ESP, EBP
  9119. POP EBP
  9120. JMP [_ReadFileEx]
  9121. end;
  9122. end;
  9123. var
  9124. _WriteFileEx: Pointer;
  9125. function WriteFileEx;
  9126. begin
  9127. GetProcedureAddress(_WriteFileEx, kernel32, 'WriteFileEx');
  9128. asm
  9129. MOV ESP, EBP
  9130. POP EBP
  9131. JMP [_WriteFileEx]
  9132. end;
  9133. end;
  9134. var
  9135. _BackupRead: Pointer;
  9136. function BackupRead;
  9137. begin
  9138. GetProcedureAddress(_BackupRead, kernel32, 'BackupRead');
  9139. asm
  9140. MOV ESP, EBP
  9141. POP EBP
  9142. JMP [_BackupRead]
  9143. end;
  9144. end;
  9145. var
  9146. _BackupSeek: Pointer;
  9147. function BackupSeek;
  9148. begin
  9149. GetProcedureAddress(_BackupSeek, kernel32, 'BackupSeek');
  9150. asm
  9151. MOV ESP, EBP
  9152. POP EBP
  9153. JMP [_BackupSeek]
  9154. end;
  9155. end;
  9156. var
  9157. _BackupWrite: Pointer;
  9158. function BackupWrite;
  9159. begin
  9160. GetProcedureAddress(_BackupWrite, kernel32, 'BackupWrite');
  9161. asm
  9162. MOV ESP, EBP
  9163. POP EBP
  9164. JMP [_BackupWrite]
  9165. end;
  9166. end;
  9167. var
  9168. _ReadFileScatter: Pointer;
  9169. function ReadFileScatter;
  9170. begin
  9171. GetProcedureAddress(_ReadFileScatter, kernel32, 'ReadFileScatter');
  9172. asm
  9173. MOV ESP, EBP
  9174. POP EBP
  9175. JMP [_ReadFileScatter]
  9176. end;
  9177. end;
  9178. var
  9179. _WriteFileGather: Pointer;
  9180. function WriteFileGather;
  9181. begin
  9182. GetProcedureAddress(_WriteFileGather, kernel32, 'WriteFileGather');
  9183. asm
  9184. MOV ESP, EBP
  9185. POP EBP
  9186. JMP [_WriteFileGather]
  9187. end;
  9188. end;
  9189. var
  9190. _OpenMutexA: Pointer;
  9191. function OpenMutexA;
  9192. begin
  9193. GetProcedureAddress(_OpenMutexA, kernel32, 'OpenMutexA');
  9194. asm
  9195. MOV ESP, EBP
  9196. POP EBP
  9197. JMP [_OpenMutexA]
  9198. end;
  9199. end;
  9200. var
  9201. _OpenMutexW: Pointer;
  9202. function OpenMutexW;
  9203. begin
  9204. GetProcedureAddress(_OpenMutexW, kernel32, 'OpenMutexW');
  9205. asm
  9206. MOV ESP, EBP
  9207. POP EBP
  9208. JMP [_OpenMutexW]
  9209. end;
  9210. end;
  9211. var
  9212. _OpenMutex: Pointer;
  9213. function OpenMutex;
  9214. begin
  9215. GetProcedureAddress(_OpenMutex, kernel32, 'OpenMutex' + AWSuffix);
  9216. asm
  9217. MOV ESP, EBP
  9218. POP EBP
  9219. JMP [_OpenMutex]
  9220. end;
  9221. end;
  9222. var
  9223. _CreateEventA: Pointer;
  9224. function CreateEventA;
  9225. begin
  9226. GetProcedureAddress(_CreateEventA, kernel32, 'CreateEventA');
  9227. asm
  9228. MOV ESP, EBP
  9229. POP EBP
  9230. JMP [_CreateEventA]
  9231. end;
  9232. end;
  9233. var
  9234. _CreateEventW: Pointer;
  9235. function CreateEventW;
  9236. begin
  9237. GetProcedureAddress(_CreateEventW, kernel32, 'CreateEventW');
  9238. asm
  9239. MOV ESP, EBP
  9240. POP EBP
  9241. JMP [_CreateEventW]
  9242. end;
  9243. end;
  9244. var
  9245. _CreateEvent: Pointer;
  9246. function CreateEvent;
  9247. begin
  9248. GetProcedureAddress(_CreateEvent, kernel32, 'CreateEvent' + AWSuffix);
  9249. asm
  9250. MOV ESP, EBP
  9251. POP EBP
  9252. JMP [_CreateEvent]
  9253. end;
  9254. end;
  9255. var
  9256. _OpenEventA: Pointer;
  9257. function OpenEventA;
  9258. begin
  9259. GetProcedureAddress(_OpenEventA, kernel32, 'OpenEventA');
  9260. asm
  9261. MOV ESP, EBP
  9262. POP EBP
  9263. JMP [_OpenEventA]
  9264. end;
  9265. end;
  9266. var
  9267. _OpenEventW: Pointer;
  9268. function OpenEventW;
  9269. begin
  9270. GetProcedureAddress(_OpenEventW, kernel32, 'OpenEventW');
  9271. asm
  9272. MOV ESP, EBP
  9273. POP EBP
  9274. JMP [_OpenEventW]
  9275. end;
  9276. end;
  9277. var
  9278. _OpenEvent: Pointer;
  9279. function OpenEvent;
  9280. begin
  9281. GetProcedureAddress(_OpenEvent, kernel32, 'OpenEvent' + AWSuffix);
  9282. asm
  9283. MOV ESP, EBP
  9284. POP EBP
  9285. JMP [_OpenEvent]
  9286. end;
  9287. end;
  9288. var
  9289. _CreateSemaphoreA: Pointer;
  9290. function CreateSemaphoreA;
  9291. begin
  9292. GetProcedureAddress(_CreateSemaphoreA, kernel32, 'CreateSemaphoreA');
  9293. asm
  9294. MOV ESP, EBP
  9295. POP EBP
  9296. JMP [_CreateSemaphoreA]
  9297. end;
  9298. end;
  9299. var
  9300. _CreateSemaphoreW: Pointer;
  9301. function CreateSemaphoreW;
  9302. begin
  9303. GetProcedureAddress(_CreateSemaphoreW, kernel32, 'CreateSemaphoreW');
  9304. asm
  9305. MOV ESP, EBP
  9306. POP EBP
  9307. JMP [_CreateSemaphoreW]
  9308. end;
  9309. end;
  9310. var
  9311. _CreateSemaphore: Pointer;
  9312. function CreateSemaphore;
  9313. begin
  9314. GetProcedureAddress(_CreateSemaphore, kernel32, 'CreateSemaphore' + AWSuffix);
  9315. asm
  9316. MOV ESP, EBP
  9317. POP EBP
  9318. JMP [_CreateSemaphore]
  9319. end;
  9320. end;
  9321. var
  9322. _OpenSemaphoreA: Pointer;
  9323. function OpenSemaphoreA;
  9324. begin
  9325. GetProcedureAddress(_OpenSemaphoreA, kernel32, 'OpenSemaphoreA');
  9326. asm
  9327. MOV ESP, EBP
  9328. POP EBP
  9329. JMP [_OpenSemaphoreA]
  9330. end;
  9331. end;
  9332. var
  9333. _OpenSemaphoreW: Pointer;
  9334. function OpenSemaphoreW;
  9335. begin
  9336. GetProcedureAddress(_OpenSemaphoreW, kernel32, 'OpenSemaphoreW');
  9337. asm
  9338. MOV ESP, EBP
  9339. POP EBP
  9340. JMP [_OpenSemaphoreW]
  9341. end;
  9342. end;
  9343. var
  9344. _OpenSemaphore: Pointer;
  9345. function OpenSemaphore;
  9346. begin
  9347. GetProcedureAddress(_OpenSemaphore, kernel32, 'OpenSemaphore' + AWSuffix);
  9348. asm
  9349. MOV ESP, EBP
  9350. POP EBP
  9351. JMP [_OpenSemaphore]
  9352. end;
  9353. end;
  9354. var
  9355. _CreateWaitableTimerA: Pointer;
  9356. function CreateWaitableTimerA;
  9357. begin
  9358. GetProcedureAddress(_CreateWaitableTimerA, kernel32, 'CreateWaitableTimerA');
  9359. asm
  9360. MOV ESP, EBP
  9361. POP EBP
  9362. JMP [_CreateWaitableTimerA]
  9363. end;
  9364. end;
  9365. var
  9366. _CreateWaitableTimerW: Pointer;
  9367. function CreateWaitableTimerW;
  9368. begin
  9369. GetProcedureAddress(_CreateWaitableTimerW, kernel32, 'CreateWaitableTimerW');
  9370. asm
  9371. MOV ESP, EBP
  9372. POP EBP
  9373. JMP [_CreateWaitableTimerW]
  9374. end;
  9375. end;
  9376. var
  9377. _CreateWaitableTimer: Pointer;
  9378. function CreateWaitableTimer;
  9379. begin
  9380. GetProcedureAddress(_CreateWaitableTimer, kernel32, 'CreateWaitableTimer' + AWSuffix);
  9381. asm
  9382. MOV ESP, EBP
  9383. POP EBP
  9384. JMP [_CreateWaitableTimer]
  9385. end;
  9386. end;
  9387. var
  9388. _OpenWaitableTimerA: Pointer;
  9389. function OpenWaitableTimerA;
  9390. begin
  9391. GetProcedureAddress(_OpenWaitableTimerA, kernel32, 'OpenWaitableTimerA');
  9392. asm
  9393. MOV ESP, EBP
  9394. POP EBP
  9395. JMP [_OpenWaitableTimerA]
  9396. end;
  9397. end;
  9398. var
  9399. _OpenWaitableTimerW: Pointer;
  9400. function OpenWaitableTimerW;
  9401. begin
  9402. GetProcedureAddress(_OpenWaitableTimerW, kernel32, 'OpenWaitableTimerW');
  9403. asm
  9404. MOV ESP, EBP
  9405. POP EBP
  9406. JMP [_OpenWaitableTimerW]
  9407. end;
  9408. end;
  9409. var
  9410. _OpenWaitableTimer: Pointer;
  9411. function OpenWaitableTimer;
  9412. begin
  9413. GetProcedureAddress(_OpenWaitableTimer, kernel32, 'OpenWaitableTimer' + AWSuffix);
  9414. asm
  9415. MOV ESP, EBP
  9416. POP EBP
  9417. JMP [_OpenWaitableTimer]
  9418. end;
  9419. end;
  9420. var
  9421. _SetWaitableTimer: Pointer;
  9422. function SetWaitableTimer;
  9423. begin
  9424. GetProcedureAddress(_SetWaitableTimer, kernel32, 'SetWaitableTimer');
  9425. asm
  9426. MOV ESP, EBP
  9427. POP EBP
  9428. JMP [_SetWaitableTimer]
  9429. end;
  9430. end;
  9431. var
  9432. _CancelWaitableTimer: Pointer;
  9433. function CancelWaitableTimer;
  9434. begin
  9435. GetProcedureAddress(_CancelWaitableTimer, kernel32, 'CancelWaitableTimer');
  9436. asm
  9437. MOV ESP, EBP
  9438. POP EBP
  9439. JMP [_CancelWaitableTimer]
  9440. end;
  9441. end;
  9442. var
  9443. _CreateFileMappingA: Pointer;
  9444. function CreateFileMappingA;
  9445. begin
  9446. GetProcedureAddress(_CreateFileMappingA, kernel32, 'CreateFileMappingA');
  9447. asm
  9448. MOV ESP, EBP
  9449. POP EBP
  9450. JMP [_CreateFileMappingA]
  9451. end;
  9452. end;
  9453. var
  9454. _CreateFileMappingW: Pointer;
  9455. function CreateFileMappingW;
  9456. begin
  9457. GetProcedureAddress(_CreateFileMappingW, kernel32, 'CreateFileMappingW');
  9458. asm
  9459. MOV ESP, EBP
  9460. POP EBP
  9461. JMP [_CreateFileMappingW]
  9462. end;
  9463. end;
  9464. var
  9465. _CreateFileMapping: Pointer;
  9466. function CreateFileMapping;
  9467. begin
  9468. GetProcedureAddress(_CreateFileMapping, kernel32, 'CreateFileMapping' + AWSuffix);
  9469. asm
  9470. MOV ESP, EBP
  9471. POP EBP
  9472. JMP [_CreateFileMapping]
  9473. end;
  9474. end;
  9475. var
  9476. _OpenFileMappingA: Pointer;
  9477. function OpenFileMappingA;
  9478. begin
  9479. GetProcedureAddress(_OpenFileMappingA, kernel32, 'OpenFileMappingA');
  9480. asm
  9481. MOV ESP, EBP
  9482. POP EBP
  9483. JMP [_OpenFileMappingA]
  9484. end;
  9485. end;
  9486. var
  9487. _OpenFileMappingW: Pointer;
  9488. function OpenFileMappingW;
  9489. begin
  9490. GetProcedureAddress(_OpenFileMappingW, kernel32, 'OpenFileMappingW');
  9491. asm
  9492. MOV ESP, EBP
  9493. POP EBP
  9494. JMP [_OpenFileMappingW]
  9495. end;
  9496. end;
  9497. var
  9498. _OpenFileMapping: Pointer;
  9499. function OpenFileMapping;
  9500. begin
  9501. GetProcedureAddress(_OpenFileMapping, kernel32, 'OpenFileMapping' + AWSuffix);
  9502. asm
  9503. MOV ESP, EBP
  9504. POP EBP
  9505. JMP [_OpenFileMapping]
  9506. end;
  9507. end;
  9508. var
  9509. _GetLogicalDriveStringsA: Pointer;
  9510. function GetLogicalDriveStringsA;
  9511. begin
  9512. GetProcedureAddress(_GetLogicalDriveStringsA, kernel32, 'GetLogicalDriveStringsA');
  9513. asm
  9514. MOV ESP, EBP
  9515. POP EBP
  9516. JMP [_GetLogicalDriveStringsA]
  9517. end;
  9518. end;
  9519. var
  9520. _GetLogicalDriveStringsW: Pointer;
  9521. function GetLogicalDriveStringsW;
  9522. begin
  9523. GetProcedureAddress(_GetLogicalDriveStringsW, kernel32, 'GetLogicalDriveStringsW');
  9524. asm
  9525. MOV ESP, EBP
  9526. POP EBP
  9527. JMP [_GetLogicalDriveStringsW]
  9528. end;
  9529. end;
  9530. var
  9531. _GetLogicalDriveStrings: Pointer;
  9532. function GetLogicalDriveStrings;
  9533. begin
  9534. GetProcedureAddress(_GetLogicalDriveStrings, kernel32, 'GetLogicalDriveStrings' + AWSuffix);
  9535. asm
  9536. MOV ESP, EBP
  9537. POP EBP
  9538. JMP [_GetLogicalDriveStrings]
  9539. end;
  9540. end;
  9541. var
  9542. _CreateMemResNotification: Pointer;
  9543. function CreateMemoryResourceNotification;
  9544. begin
  9545. GetProcedureAddress(_CreateMemResNotification, kernel32, 'CreateMemoryResourceNotification');
  9546. asm
  9547. MOV ESP, EBP
  9548. POP EBP
  9549. JMP [_CreateMemResNotification]
  9550. end;
  9551. end;
  9552. var
  9553. _QueryMemoryResourceNotification: Pointer;
  9554. function QueryMemoryResourceNotification;
  9555. begin
  9556. GetProcedureAddress(_QueryMemoryResourceNotification, kernel32, 'QueryMemoryResourceNotification');
  9557. asm
  9558. MOV ESP, EBP
  9559. POP EBP
  9560. JMP [_QueryMemoryResourceNotification]
  9561. end;
  9562. end;
  9563. var
  9564. _LoadLibraryA: Pointer;
  9565. function LoadLibraryA;
  9566. begin
  9567. GetProcedureAddress(_LoadLibraryA, kernel32, 'LoadLibraryA');
  9568. asm
  9569. MOV ESP, EBP
  9570. POP EBP
  9571. JMP [_LoadLibraryA]
  9572. end;
  9573. end;
  9574. var
  9575. _LoadLibraryW: Pointer;
  9576. function LoadLibraryW;
  9577. begin
  9578. GetProcedureAddress(_LoadLibraryW, kernel32, 'LoadLibraryW');
  9579. asm
  9580. MOV ESP, EBP
  9581. POP EBP
  9582. JMP [_LoadLibraryW]
  9583. end;
  9584. end;
  9585. var
  9586. _LoadLibrary: Pointer;
  9587. function LoadLibrary;
  9588. begin
  9589. GetProcedureAddress(_LoadLibrary, kernel32, 'LoadLibrary' + AWSuffix);
  9590. asm
  9591. MOV ESP, EBP
  9592. POP EBP
  9593. JMP [_LoadLibrary]
  9594. end;
  9595. end;
  9596. var
  9597. _LoadLibraryExA: Pointer;
  9598. function LoadLibraryExA;
  9599. begin
  9600. GetProcedureAddress(_LoadLibraryExA, kernel32, 'LoadLibraryExA');
  9601. asm
  9602. MOV ESP, EBP
  9603. POP EBP
  9604. JMP [_LoadLibraryExA]
  9605. end;
  9606. end;
  9607. var
  9608. _LoadLibraryExW: Pointer;
  9609. function LoadLibraryExW;
  9610. begin
  9611. GetProcedureAddress(_LoadLibraryExW, kernel32, 'LoadLibraryExW');
  9612. asm
  9613. MOV ESP, EBP
  9614. POP EBP
  9615. JMP [_LoadLibraryExW]
  9616. end;
  9617. end;
  9618. var
  9619. _LoadLibraryEx: Pointer;
  9620. function LoadLibraryEx;
  9621. begin
  9622. GetProcedureAddress(_LoadLibraryEx, kernel32, 'LoadLibraryEx' + AWSuffix);
  9623. asm
  9624. MOV ESP, EBP
  9625. POP EBP
  9626. JMP [_LoadLibraryEx]
  9627. end;
  9628. end;
  9629. var
  9630. _GetModuleFileNameA: Pointer;
  9631. function GetModuleFileNameA;
  9632. begin
  9633. GetProcedureAddress(_GetModuleFileNameA, kernel32, 'GetModuleFileNameA');
  9634. asm
  9635. MOV ESP, EBP
  9636. POP EBP
  9637. JMP [_GetModuleFileNameA]
  9638. end;
  9639. end;
  9640. var
  9641. _GetModuleFileNameW: Pointer;
  9642. function GetModuleFileNameW;
  9643. begin
  9644. GetProcedureAddress(_GetModuleFileNameW, kernel32, 'GetModuleFileNameW');
  9645. asm
  9646. MOV ESP, EBP
  9647. POP EBP
  9648. JMP [_GetModuleFileNameW]
  9649. end;
  9650. end;
  9651. var
  9652. _GetModuleFileName: Pointer;
  9653. function GetModuleFileName;
  9654. begin
  9655. GetProcedureAddress(_GetModuleFileName, kernel32, 'GetModuleFileName' + AWSuffix);
  9656. asm
  9657. MOV ESP, EBP
  9658. POP EBP
  9659. JMP [_GetModuleFileName]
  9660. end;
  9661. end;
  9662. var
  9663. _GetModuleHandleA: Pointer;
  9664. function GetModuleHandleA;
  9665. begin
  9666. GetProcedureAddress(_GetModuleHandleA, kernel32, 'GetModuleHandleA');
  9667. asm
  9668. MOV ESP, EBP
  9669. POP EBP
  9670. JMP [_GetModuleHandleA]
  9671. end;
  9672. end;
  9673. var
  9674. _GetModuleHandleW: Pointer;
  9675. function GetModuleHandleW;
  9676. begin
  9677. GetProcedureAddress(_GetModuleHandleW, kernel32, 'GetModuleHandleW');
  9678. asm
  9679. MOV ESP, EBP
  9680. POP EBP
  9681. JMP [_GetModuleHandleW]
  9682. end;
  9683. end;
  9684. var
  9685. _GetModuleHandle: Pointer;
  9686. function GetModuleHandle;
  9687. begin
  9688. GetProcedureAddress(_GetModuleHandle, kernel32, 'GetModuleHandle' + AWSuffix);
  9689. asm
  9690. MOV ESP, EBP
  9691. POP EBP
  9692. JMP [_GetModuleHandle]
  9693. end;
  9694. end;
  9695. var
  9696. _CreateProcessA: Pointer;
  9697. function CreateProcessA;
  9698. begin
  9699. GetProcedureAddress(_CreateProcessA, kernel32, 'CreateProcessA');
  9700. asm
  9701. MOV ESP, EBP
  9702. POP EBP
  9703. JMP [_CreateProcessA]
  9704. end;
  9705. end;
  9706. var
  9707. _CreateProcessW: Pointer;
  9708. function CreateProcessW;
  9709. begin
  9710. GetProcedureAddress(_CreateProcessW, kernel32, 'CreateProcessW');
  9711. asm
  9712. MOV ESP, EBP
  9713. POP EBP
  9714. JMP [_CreateProcessW]
  9715. end;
  9716. end;
  9717. var
  9718. _CreateProcess: Pointer;
  9719. function CreateProcess;
  9720. begin
  9721. GetProcedureAddress(_CreateProcess, kernel32, 'CreateProcess' + AWSuffix);
  9722. asm
  9723. MOV ESP, EBP
  9724. POP EBP
  9725. JMP [_CreateProcess]
  9726. end;
  9727. end;
  9728. var
  9729. _GetModuleHandleExA: Pointer;
  9730. function GetModuleHandleExA;
  9731. begin
  9732. GetProcedureAddress(_GetModuleHandleExA, kernel32, 'GetModuleHandleExA');
  9733. asm
  9734. MOV ESP, EBP
  9735. POP EBP
  9736. JMP [_GetModuleHandleExA]
  9737. end;
  9738. end;
  9739. var
  9740. _GetModuleHandleExW: Pointer;
  9741. function GetModuleHandleExW;
  9742. begin
  9743. GetProcedureAddress(_GetModuleHandleExW, kernel32, 'GetModuleHandleExW');
  9744. asm
  9745. MOV ESP, EBP
  9746. POP EBP
  9747. JMP [_GetModuleHandleExW]
  9748. end;
  9749. end;
  9750. var
  9751. _GetModuleHandleEx: Pointer;
  9752. function GetModuleHandleEx;
  9753. begin
  9754. GetProcedureAddress(_GetModuleHandleEx, kernel32, 'GetModuleHandleEx' + AWSuffix);
  9755. asm
  9756. MOV ESP, EBP
  9757. POP EBP
  9758. JMP [_GetModuleHandleEx]
  9759. end;
  9760. end;
  9761. var
  9762. _NeedCurrentDirectoryForExePathA: Pointer;
  9763. function NeedCurrentDirectoryForExePathA;
  9764. begin
  9765. GetProcedureAddress(_NeedCurrentDirectoryForExePathA, kernel32, 'NeedCurrentDirectoryForExePathA');
  9766. asm
  9767. MOV ESP, EBP
  9768. POP EBP
  9769. JMP [_NeedCurrentDirectoryForExePathA]
  9770. end;
  9771. end;
  9772. var
  9773. _NeedCurrentDirectoryForExePathW: Pointer;
  9774. function NeedCurrentDirectoryForExePathW;
  9775. begin
  9776. GetProcedureAddress(_NeedCurrentDirectoryForExePathW, kernel32, 'NeedCurrentDirectoryForExePathW');
  9777. asm
  9778. MOV ESP, EBP
  9779. POP EBP
  9780. JMP [_NeedCurrentDirectoryForExePathW]
  9781. end;
  9782. end;
  9783. var
  9784. _NeedCurrentDirectoryForExePath: Pointer;
  9785. function NeedCurrentDirectoryForExePath;
  9786. begin
  9787. GetProcedureAddress(_NeedCurrentDirectoryForExePath, kernel32, 'NeedCurrentDirectoryForExePath' + AWSuffix);
  9788. asm
  9789. MOV ESP, EBP
  9790. POP EBP
  9791. JMP [_NeedCurrentDirectoryForExePath]
  9792. end;
  9793. end;
  9794. var
  9795. _SetProcessShutdownParameters: Pointer;
  9796. function SetProcessShutdownParameters;
  9797. begin
  9798. GetProcedureAddress(_SetProcessShutdownParameters, kernel32, 'SetProcessShutdownParameters');
  9799. asm
  9800. MOV ESP, EBP
  9801. POP EBP
  9802. JMP [_SetProcessShutdownParameters]
  9803. end;
  9804. end;
  9805. var
  9806. _GetProcessShutdownParameters: Pointer;
  9807. function GetProcessShutdownParameters;
  9808. begin
  9809. GetProcedureAddress(_GetProcessShutdownParameters, kernel32, 'GetProcessShutdownParameters');
  9810. asm
  9811. MOV ESP, EBP
  9812. POP EBP
  9813. JMP [_GetProcessShutdownParameters]
  9814. end;
  9815. end;
  9816. var
  9817. _GetProcessVersion: Pointer;
  9818. function GetProcessVersion;
  9819. begin
  9820. GetProcedureAddress(_GetProcessVersion, kernel32, 'GetProcessVersion');
  9821. asm
  9822. MOV ESP, EBP
  9823. POP EBP
  9824. JMP [_GetProcessVersion]
  9825. end;
  9826. end;
  9827. var
  9828. _FatalAppExitA: Pointer;
  9829. procedure FatalAppExitA;
  9830. begin
  9831. GetProcedureAddress(_FatalAppExitA, kernel32, 'FatalAppExitA');
  9832. asm
  9833. MOV ESP, EBP
  9834. POP EBP
  9835. JMP [_FatalAppExitA]
  9836. end;
  9837. end;
  9838. var
  9839. _FatalAppExitW: Pointer;
  9840. procedure FatalAppExitW;
  9841. begin
  9842. GetProcedureAddress(_FatalAppExitW, kernel32, 'FatalAppExitW');
  9843. asm
  9844. MOV ESP, EBP
  9845. POP EBP
  9846. JMP [_FatalAppExitW]
  9847. end;
  9848. end;
  9849. var
  9850. _FatalAppExit: Pointer;
  9851. procedure FatalAppExit;
  9852. begin
  9853. GetProcedureAddress(_FatalAppExit, kernel32, 'FatalAppExit' + AWSuffix);
  9854. asm
  9855. MOV ESP, EBP
  9856. POP EBP
  9857. JMP [_FatalAppExit]
  9858. end;
  9859. end;
  9860. var
  9861. _GetStartupInfoA: Pointer;
  9862. procedure GetStartupInfoA;
  9863. begin
  9864. GetProcedureAddress(_GetStartupInfoA, kernel32, 'GetStartupInfoA');
  9865. asm
  9866. MOV ESP, EBP
  9867. POP EBP
  9868. JMP [_GetStartupInfoA]
  9869. end;
  9870. end;
  9871. var
  9872. _GetStartupInfoW: Pointer;
  9873. procedure GetStartupInfoW;
  9874. begin
  9875. GetProcedureAddress(_GetStartupInfoW, kernel32, 'GetStartupInfoW');
  9876. asm
  9877. MOV ESP, EBP
  9878. POP EBP
  9879. JMP [_GetStartupInfoW]
  9880. end;
  9881. end;
  9882. var
  9883. _GetStartupInfo: Pointer;
  9884. procedure GetStartupInfo;
  9885. begin
  9886. GetProcedureAddress(_GetStartupInfo, kernel32, 'GetStartupInfo' + AWSuffix);
  9887. asm
  9888. MOV ESP, EBP
  9889. POP EBP
  9890. JMP [_GetStartupInfo]
  9891. end;
  9892. end;
  9893. var
  9894. _GetCommandLineA: Pointer;
  9895. function GetCommandLineA;
  9896. begin
  9897. GetProcedureAddress(_GetCommandLineA, kernel32, 'GetCommandLineA');
  9898. asm
  9899. MOV ESP, EBP
  9900. POP EBP
  9901. JMP [_GetCommandLineA]
  9902. end;
  9903. end;
  9904. var
  9905. _GetCommandLineW: Pointer;
  9906. function GetCommandLineW;
  9907. begin
  9908. GetProcedureAddress(_GetCommandLineW, kernel32, 'GetCommandLineW');
  9909. asm
  9910. MOV ESP, EBP
  9911. POP EBP
  9912. JMP [_GetCommandLineW]
  9913. end;
  9914. end;
  9915. var
  9916. _GetCommandLine: Pointer;
  9917. function GetCommandLine;
  9918. begin
  9919. GetProcedureAddress(_GetCommandLine, kernel32, 'GetCommandLine' + AWSuffix);
  9920. asm
  9921. MOV ESP, EBP
  9922. POP EBP
  9923. JMP [_GetCommandLine]
  9924. end;
  9925. end;
  9926. var
  9927. _GetEnvironmentVariableA: Pointer;
  9928. function GetEnvironmentVariableA;
  9929. begin
  9930. GetProcedureAddress(_GetEnvironmentVariableA, kernel32, 'GetEnvironmentVariableA');
  9931. asm
  9932. MOV ESP, EBP
  9933. POP EBP
  9934. JMP [_GetEnvironmentVariableA]
  9935. end;
  9936. end;
  9937. var
  9938. _GetEnvironmentVariableW: Pointer;
  9939. function GetEnvironmentVariableW;
  9940. begin
  9941. GetProcedureAddress(_GetEnvironmentVariableW, kernel32, 'GetEnvironmentVariableW');
  9942. asm
  9943. MOV ESP, EBP
  9944. POP EBP
  9945. JMP [_GetEnvironmentVariableW]
  9946. end;
  9947. end;
  9948. var
  9949. _GetEnvironmentVariable: Pointer;
  9950. function GetEnvironmentVariable;
  9951. begin
  9952. GetProcedureAddress(_GetEnvironmentVariable, kernel32, 'GetEnvironmentVariable' + AWSuffix);
  9953. asm
  9954. MOV ESP, EBP
  9955. POP EBP
  9956. JMP [_GetEnvironmentVariable]
  9957. end;
  9958. end;
  9959. var
  9960. _SetEnvironmentVariableA: Pointer;
  9961. function SetEnvironmentVariableA;
  9962. begin
  9963. GetProcedureAddress(_SetEnvironmentVariableA, kernel32, 'SetEnvironmentVariableA');
  9964. asm
  9965. MOV ESP, EBP
  9966. POP EBP
  9967. JMP [_SetEnvironmentVariableA]
  9968. end;
  9969. end;
  9970. var
  9971. _SetEnvironmentVariableW: Pointer;
  9972. function SetEnvironmentVariableW;
  9973. begin
  9974. GetProcedureAddress(_SetEnvironmentVariableW, kernel32, 'SetEnvironmentVariableW');
  9975. asm
  9976. MOV ESP, EBP
  9977. POP EBP
  9978. JMP [_SetEnvironmentVariableW]
  9979. end;
  9980. end;
  9981. var
  9982. _SetEnvironmentVariable: Pointer;
  9983. function SetEnvironmentVariable;
  9984. begin
  9985. GetProcedureAddress(_SetEnvironmentVariable, kernel32, 'SetEnvironmentVariable' + AWSuffix);
  9986. asm
  9987. MOV ESP, EBP
  9988. POP EBP
  9989. JMP [_SetEnvironmentVariable]
  9990. end;
  9991. end;
  9992. var
  9993. _ExpandEnvironmentStringsA: Pointer;
  9994. function ExpandEnvironmentStringsA;
  9995. begin
  9996. GetProcedureAddress(_ExpandEnvironmentStringsA, kernel32, 'ExpandEnvironmentStringsA');
  9997. asm
  9998. MOV ESP, EBP
  9999. POP EBP
  10000. JMP [_ExpandEnvironmentStringsA]
  10001. end;
  10002. end;
  10003. var
  10004. _ExpandEnvironmentStringsW: Pointer;
  10005. function ExpandEnvironmentStringsW;
  10006. begin
  10007. GetProcedureAddress(_ExpandEnvironmentStringsW, kernel32, 'ExpandEnvironmentStringsW');
  10008. asm
  10009. MOV ESP, EBP
  10010. POP EBP
  10011. JMP [_ExpandEnvironmentStringsW]
  10012. end;
  10013. end;
  10014. var
  10015. _ExpandEnvironmentStrings: Pointer;
  10016. function ExpandEnvironmentStrings;
  10017. begin
  10018. GetProcedureAddress(_ExpandEnvironmentStrings, kernel32, 'ExpandEnvironmentStrings' + AWSuffix);
  10019. asm
  10020. MOV ESP, EBP
  10021. POP EBP
  10022. JMP [_ExpandEnvironmentStrings]
  10023. end;
  10024. end;
  10025. var
  10026. _GetFirmwareEnvironmentVariableA: Pointer;
  10027. function GetFirmwareEnvironmentVariableA;
  10028. begin
  10029. GetProcedureAddress(_GetFirmwareEnvironmentVariableA, kernel32, 'GetFirmwareEnvironmentVariableA');
  10030. asm
  10031. MOV ESP, EBP
  10032. POP EBP
  10033. JMP [_GetFirmwareEnvironmentVariableA]
  10034. end;
  10035. end;
  10036. var
  10037. _GetFirmwareEnvironmentVariableW: Pointer;
  10038. function GetFirmwareEnvironmentVariableW;
  10039. begin
  10040. GetProcedureAddress(_GetFirmwareEnvironmentVariableW, kernel32, 'GetFirmwareEnvironmentVariableW');
  10041. asm
  10042. MOV ESP, EBP
  10043. POP EBP
  10044. JMP [_GetFirmwareEnvironmentVariableW]
  10045. end;
  10046. end;
  10047. var
  10048. _GetFirmwareEnvironmentVariable: Pointer;
  10049. function GetFirmwareEnvironmentVariable;
  10050. begin
  10051. GetProcedureAddress(_GetFirmwareEnvironmentVariable, kernel32, 'GetFirmwareEnvironmentVariable' + AWSuffix);
  10052. asm
  10053. MOV ESP, EBP
  10054. POP EBP
  10055. JMP [_GetFirmwareEnvironmentVariable]
  10056. end;
  10057. end;
  10058. var
  10059. _SetFirmwareEnvironmentVariableA: Pointer;
  10060. function SetFirmwareEnvironmentVariableA;
  10061. begin
  10062. GetProcedureAddress(_SetFirmwareEnvironmentVariableA, kernel32, 'SetFirmwareEnvironmentVariableA');
  10063. asm
  10064. MOV ESP, EBP
  10065. POP EBP
  10066. JMP [_SetFirmwareEnvironmentVariableA]
  10067. end;
  10068. end;
  10069. var
  10070. _SetFirmwareEnvironmentVariableW: Pointer;
  10071. function SetFirmwareEnvironmentVariableW;
  10072. begin
  10073. GetProcedureAddress(_SetFirmwareEnvironmentVariableW, kernel32, 'SetFirmwareEnvironmentVariableW');
  10074. asm
  10075. MOV ESP, EBP
  10076. POP EBP
  10077. JMP [_SetFirmwareEnvironmentVariableW]
  10078. end;
  10079. end;
  10080. var
  10081. _SetFirmwareEnvironmentVariable: Pointer;
  10082. function SetFirmwareEnvironmentVariable;
  10083. begin
  10084. GetProcedureAddress(_SetFirmwareEnvironmentVariable, kernel32, 'SetFirmwareEnvironmentVariable' + AWSuffix);
  10085. asm
  10086. MOV ESP, EBP
  10087. POP EBP
  10088. JMP [_SetFirmwareEnvironmentVariable]
  10089. end;
  10090. end;
  10091. var
  10092. _OutputDebugStringA: Pointer;
  10093. procedure OutputDebugStringA;
  10094. begin
  10095. GetProcedureAddress(_OutputDebugStringA, kernel32, 'OutputDebugStringA');
  10096. asm
  10097. MOV ESP, EBP
  10098. POP EBP
  10099. JMP [_OutputDebugStringA]
  10100. end;
  10101. end;
  10102. var
  10103. _OutputDebugStringW: Pointer;
  10104. procedure OutputDebugStringW;
  10105. begin
  10106. GetProcedureAddress(_OutputDebugStringW, kernel32, 'OutputDebugStringW');
  10107. asm
  10108. MOV ESP, EBP
  10109. POP EBP
  10110. JMP [_OutputDebugStringW]
  10111. end;
  10112. end;
  10113. var
  10114. _OutputDebugString: Pointer;
  10115. procedure OutputDebugString;
  10116. begin
  10117. GetProcedureAddress(_OutputDebugString, kernel32, 'OutputDebugString' + AWSuffix);
  10118. asm
  10119. MOV ESP, EBP
  10120. POP EBP
  10121. JMP [_OutputDebugString]
  10122. end;
  10123. end;
  10124. var
  10125. _FindResourceA: Pointer;
  10126. function FindResourceA;
  10127. begin
  10128. GetProcedureAddress(_FindResourceA, kernel32, 'FindResourceA');
  10129. asm
  10130. MOV ESP, EBP
  10131. POP EBP
  10132. JMP [_FindResourceA]
  10133. end;
  10134. end;
  10135. var
  10136. _FindResourceW: Pointer;
  10137. function FindResourceW;
  10138. begin
  10139. GetProcedureAddress(_FindResourceW, kernel32, 'FindResourceW');
  10140. asm
  10141. MOV ESP, EBP
  10142. POP EBP
  10143. JMP [_FindResourceW]
  10144. end;
  10145. end;
  10146. var
  10147. _FindResource: Pointer;
  10148. function FindResource;
  10149. begin
  10150. GetProcedureAddress(_FindResource, kernel32, 'FindResource' + AWSuffix);
  10151. asm
  10152. MOV ESP, EBP
  10153. POP EBP
  10154. JMP [_FindResource]
  10155. end;
  10156. end;
  10157. var
  10158. _FindResourceExA: Pointer;
  10159. function FindResourceExA;
  10160. begin
  10161. GetProcedureAddress(_FindResourceExA, kernel32, 'FindResourceExA');
  10162. asm
  10163. MOV ESP, EBP
  10164. POP EBP
  10165. JMP [_FindResourceExA]
  10166. end;
  10167. end;
  10168. var
  10169. _FindResourceExW: Pointer;
  10170. function FindResourceExW;
  10171. begin
  10172. GetProcedureAddress(_FindResourceExW, kernel32, 'FindResourceExW');
  10173. asm
  10174. MOV ESP, EBP
  10175. POP EBP
  10176. JMP [_FindResourceExW]
  10177. end;
  10178. end;
  10179. var
  10180. _FindResourceEx: Pointer;
  10181. function FindResourceEx;
  10182. begin
  10183. GetProcedureAddress(_FindResourceEx, kernel32, 'FindResourceEx' + AWSuffix);
  10184. asm
  10185. MOV ESP, EBP
  10186. POP EBP
  10187. JMP [_FindResourceEx]
  10188. end;
  10189. end;
  10190. var
  10191. _EnumResourceTypesA: Pointer;
  10192. function EnumResourceTypesA;
  10193. begin
  10194. GetProcedureAddress(_EnumResourceTypesA, kernel32, 'EnumResourceTypesA');
  10195. asm
  10196. MOV ESP, EBP
  10197. POP EBP
  10198. JMP [_EnumResourceTypesA]
  10199. end;
  10200. end;
  10201. var
  10202. _EnumResourceTypesW: Pointer;
  10203. function EnumResourceTypesW;
  10204. begin
  10205. GetProcedureAddress(_EnumResourceTypesW, kernel32, 'EnumResourceTypesW');
  10206. asm
  10207. MOV ESP, EBP
  10208. POP EBP
  10209. JMP [_EnumResourceTypesW]
  10210. end;
  10211. end;
  10212. var
  10213. _EnumResourceTypes: Pointer;
  10214. function EnumResourceTypes;
  10215. begin
  10216. GetProcedureAddress(_EnumResourceTypes, kernel32, 'EnumResourceTypes' + AWSuffix);
  10217. asm
  10218. MOV ESP, EBP
  10219. POP EBP
  10220. JMP [_EnumResourceTypes]
  10221. end;
  10222. end;
  10223. var
  10224. _EnumResourceNamesA: Pointer;
  10225. function EnumResourceNamesA;
  10226. begin
  10227. GetProcedureAddress(_EnumResourceNamesA, kernel32, 'EnumResourceNamesA');
  10228. asm
  10229. MOV ESP, EBP
  10230. POP EBP
  10231. JMP [_EnumResourceNamesA]
  10232. end;
  10233. end;
  10234. var
  10235. _EnumResourceNamesW: Pointer;
  10236. function EnumResourceNamesW;
  10237. begin
  10238. GetProcedureAddress(_EnumResourceNamesW, kernel32, 'EnumResourceNamesW');
  10239. asm
  10240. MOV ESP, EBP
  10241. POP EBP
  10242. JMP [_EnumResourceNamesW]
  10243. end;
  10244. end;
  10245. var
  10246. _EnumResourceNames: Pointer;
  10247. function EnumResourceNames;
  10248. begin
  10249. GetProcedureAddress(_EnumResourceNames, kernel32, 'EnumResourceNames' + AWSuffix);
  10250. asm
  10251. MOV ESP, EBP
  10252. POP EBP
  10253. JMP [_EnumResourceNames]
  10254. end;
  10255. end;
  10256. var
  10257. _EnumResourceLanguagesA: Pointer;
  10258. function EnumResourceLanguagesA;
  10259. begin
  10260. GetProcedureAddress(_EnumResourceLanguagesA, kernel32, 'EnumResourceLanguagesA');
  10261. asm
  10262. MOV ESP, EBP
  10263. POP EBP
  10264. JMP [_EnumResourceLanguagesA]
  10265. end;
  10266. end;
  10267. var
  10268. _EnumResourceLanguagesW: Pointer;
  10269. function EnumResourceLanguagesW;
  10270. begin
  10271. GetProcedureAddress(_EnumResourceLanguagesW, kernel32, 'EnumResourceLanguagesW');
  10272. asm
  10273. MOV ESP, EBP
  10274. POP EBP
  10275. JMP [_EnumResourceLanguagesW]
  10276. end;
  10277. end;
  10278. var
  10279. _EnumResourceLanguages: Pointer;
  10280. function EnumResourceLanguages;
  10281. begin
  10282. GetProcedureAddress(_EnumResourceLanguages, kernel32, 'EnumResourceLanguages' + AWSuffix);
  10283. asm
  10284. MOV ESP, EBP
  10285. POP EBP
  10286. JMP [_EnumResourceLanguages]
  10287. end;
  10288. end;
  10289. var
  10290. _BeginUpdateResourceA: Pointer;
  10291. function BeginUpdateResourceA;
  10292. begin
  10293. GetProcedureAddress(_BeginUpdateResourceA, kernel32, 'BeginUpdateResourceA');
  10294. asm
  10295. MOV ESP, EBP
  10296. POP EBP
  10297. JMP [_BeginUpdateResourceA]
  10298. end;
  10299. end;
  10300. var
  10301. _BeginUpdateResourceW: Pointer;
  10302. function BeginUpdateResourceW;
  10303. begin
  10304. GetProcedureAddress(_BeginUpdateResourceW, kernel32, 'BeginUpdateResourceW');
  10305. asm
  10306. MOV ESP, EBP
  10307. POP EBP
  10308. JMP [_BeginUpdateResourceW]
  10309. end;
  10310. end;
  10311. var
  10312. _BeginUpdateResource: Pointer;
  10313. function BeginUpdateResource;
  10314. begin
  10315. GetProcedureAddress(_BeginUpdateResource, kernel32, 'BeginUpdateResource' + AWSuffix);
  10316. asm
  10317. MOV ESP, EBP
  10318. POP EBP
  10319. JMP [_BeginUpdateResource]
  10320. end;
  10321. end;
  10322. var
  10323. _UpdateResourceA: Pointer;
  10324. function UpdateResourceA;
  10325. begin
  10326. GetProcedureAddress(_UpdateResourceA, kernel32, 'UpdateResourceA');
  10327. asm
  10328. MOV ESP, EBP
  10329. POP EBP
  10330. JMP [_UpdateResourceA]
  10331. end;
  10332. end;
  10333. var
  10334. _UpdateResourceW: Pointer;
  10335. function UpdateResourceW;
  10336. begin
  10337. GetProcedureAddress(_UpdateResourceW, kernel32, 'UpdateResourceW');
  10338. asm
  10339. MOV ESP, EBP
  10340. POP EBP
  10341. JMP [_UpdateResourceW]
  10342. end;
  10343. end;
  10344. var
  10345. _UpdateResource: Pointer;
  10346. function UpdateResource;
  10347. begin
  10348. GetProcedureAddress(_UpdateResource, kernel32, 'UpdateResource' + AWSuffix);
  10349. asm
  10350. MOV ESP, EBP
  10351. POP EBP
  10352. JMP [_UpdateResource]
  10353. end;
  10354. end;
  10355. var
  10356. _EndUpdateResourceA: Pointer;
  10357. function EndUpdateResourceA;
  10358. begin
  10359. GetProcedureAddress(_EndUpdateResourceA, kernel32, 'EndUpdateResourceA');
  10360. asm
  10361. MOV ESP, EBP
  10362. POP EBP
  10363. JMP [_EndUpdateResourceA]
  10364. end;
  10365. end;
  10366. var
  10367. _EndUpdateResourceW: Pointer;
  10368. function EndUpdateResourceW;
  10369. begin
  10370. GetProcedureAddress(_EndUpdateResourceW, kernel32, 'EndUpdateResourceW');
  10371. asm
  10372. MOV ESP, EBP
  10373. POP EBP
  10374. JMP [_EndUpdateResourceW]
  10375. end;
  10376. end;
  10377. var
  10378. _EndUpdateResource: Pointer;
  10379. function EndUpdateResource;
  10380. begin
  10381. GetProcedureAddress(_EndUpdateResource, kernel32, 'EndUpdateResource' + AWSuffix);
  10382. asm
  10383. MOV ESP, EBP
  10384. POP EBP
  10385. JMP [_EndUpdateResource]
  10386. end;
  10387. end;
  10388. var
  10389. _GlobalAddAtomA: Pointer;
  10390. function GlobalAddAtomA;
  10391. begin
  10392. GetProcedureAddress(_GlobalAddAtomA, kernel32, 'GlobalAddAtomA');
  10393. asm
  10394. MOV ESP, EBP
  10395. POP EBP
  10396. JMP [_GlobalAddAtomA]
  10397. end;
  10398. end;
  10399. var
  10400. _GlobalAddAtomW: Pointer;
  10401. function GlobalAddAtomW;
  10402. begin
  10403. GetProcedureAddress(_GlobalAddAtomW, kernel32, 'GlobalAddAtomW');
  10404. asm
  10405. MOV ESP, EBP
  10406. POP EBP
  10407. JMP [_GlobalAddAtomW]
  10408. end;
  10409. end;
  10410. var
  10411. _GlobalAddAtom: Pointer;
  10412. function GlobalAddAtom;
  10413. begin
  10414. GetProcedureAddress(_GlobalAddAtom, kernel32, 'GlobalAddAtom' + AWSuffix);
  10415. asm
  10416. MOV ESP, EBP
  10417. POP EBP
  10418. JMP [_GlobalAddAtom]
  10419. end;
  10420. end;
  10421. var
  10422. _GlobalFindAtomA: Pointer;
  10423. function GlobalFindAtomA;
  10424. begin
  10425. GetProcedureAddress(_GlobalFindAtomA, kernel32, 'GlobalFindAtomA');
  10426. asm
  10427. MOV ESP, EBP
  10428. POP EBP
  10429. JMP [_GlobalFindAtomA]
  10430. end;
  10431. end;
  10432. var
  10433. _GlobalFindAtomW: Pointer;
  10434. function GlobalFindAtomW;
  10435. begin
  10436. GetProcedureAddress(_GlobalFindAtomW, kernel32, 'GlobalFindAtomW');
  10437. asm
  10438. MOV ESP, EBP
  10439. POP EBP
  10440. JMP [_GlobalFindAtomW]
  10441. end;
  10442. end;
  10443. var
  10444. _GlobalFindAtom: Pointer;
  10445. function GlobalFindAtom;
  10446. begin
  10447. GetProcedureAddress(_GlobalFindAtom, kernel32, 'GlobalFindAtom' + AWSuffix);
  10448. asm
  10449. MOV ESP, EBP
  10450. POP EBP
  10451. JMP [_GlobalFindAtom]
  10452. end;
  10453. end;
  10454. var
  10455. _GlobalGetAtomNameA: Pointer;
  10456. function GlobalGetAtomNameA;
  10457. begin
  10458. GetProcedureAddress(_GlobalGetAtomNameA, kernel32, 'GlobalGetAtomNameA');
  10459. asm
  10460. MOV ESP, EBP
  10461. POP EBP
  10462. JMP [_GlobalGetAtomNameA]
  10463. end;
  10464. end;
  10465. var
  10466. _GlobalGetAtomNameW: Pointer;
  10467. function GlobalGetAtomNameW;
  10468. begin
  10469. GetProcedureAddress(_GlobalGetAtomNameW, kernel32, 'GlobalGetAtomNameW');
  10470. asm
  10471. MOV ESP, EBP
  10472. POP EBP
  10473. JMP [_GlobalGetAtomNameW]
  10474. end;
  10475. end;
  10476. var
  10477. _GlobalGetAtomName: Pointer;
  10478. function GlobalGetAtomName;
  10479. begin
  10480. GetProcedureAddress(_GlobalGetAtomName, kernel32, 'GlobalGetAtomName' + AWSuffix);
  10481. asm
  10482. MOV ESP, EBP
  10483. POP EBP
  10484. JMP [_GlobalGetAtomName]
  10485. end;
  10486. end;
  10487. var
  10488. _AddAtomA: Pointer;
  10489. function AddAtomA;
  10490. begin
  10491. GetProcedureAddress(_AddAtomA, kernel32, 'AddAtomA');
  10492. asm
  10493. MOV ESP, EBP
  10494. POP EBP
  10495. JMP [_AddAtomA]
  10496. end;
  10497. end;
  10498. var
  10499. _AddAtomW: Pointer;
  10500. function AddAtomW;
  10501. begin
  10502. GetProcedureAddress(_AddAtomW, kernel32, 'AddAtomW');
  10503. asm
  10504. MOV ESP, EBP
  10505. POP EBP
  10506. JMP [_AddAtomW]
  10507. end;
  10508. end;
  10509. var
  10510. _AddAtom: Pointer;
  10511. function AddAtom;
  10512. begin
  10513. GetProcedureAddress(_AddAtom, kernel32, 'AddAtom' + AWSuffix);
  10514. asm
  10515. MOV ESP, EBP
  10516. POP EBP
  10517. JMP [_AddAtom]
  10518. end;
  10519. end;
  10520. var
  10521. _FindAtomA: Pointer;
  10522. function FindAtomA;
  10523. begin
  10524. GetProcedureAddress(_FindAtomA, kernel32, 'FindAtomA');
  10525. asm
  10526. MOV ESP, EBP
  10527. POP EBP
  10528. JMP [_FindAtomA]
  10529. end;
  10530. end;
  10531. var
  10532. _FindAtomW: Pointer;
  10533. function FindAtomW;
  10534. begin
  10535. GetProcedureAddress(_FindAtomW, kernel32, 'FindAtomW');
  10536. asm
  10537. MOV ESP, EBP
  10538. POP EBP
  10539. JMP [_FindAtomW]
  10540. end;
  10541. end;
  10542. var
  10543. _FindAtom: Pointer;
  10544. function FindAtom;
  10545. begin
  10546. GetProcedureAddress(_FindAtom, kernel32, 'FindAtom' + AWSuffix);
  10547. asm
  10548. MOV ESP, EBP
  10549. POP EBP
  10550. JMP [_FindAtom]
  10551. end;
  10552. end;
  10553. var
  10554. _GetAtomNameA: Pointer;
  10555. function GetAtomNameA;
  10556. begin
  10557. GetProcedureAddress(_GetAtomNameA, kernel32, 'GetAtomNameA');
  10558. asm
  10559. MOV ESP, EBP
  10560. POP EBP
  10561. JMP [_GetAtomNameA]
  10562. end;
  10563. end;
  10564. var
  10565. _GetAtomNameW: Pointer;
  10566. function GetAtomNameW;
  10567. begin
  10568. GetProcedureAddress(_GetAtomNameW, kernel32, 'GetAtomNameW');
  10569. asm
  10570. MOV ESP, EBP
  10571. POP EBP
  10572. JMP [_GetAtomNameW]
  10573. end;
  10574. end;
  10575. var
  10576. _GetAtomName: Pointer;
  10577. function GetAtomName;
  10578. begin
  10579. GetProcedureAddress(_GetAtomName, kernel32, 'GetAtomName' + AWSuffix);
  10580. asm
  10581. MOV ESP, EBP
  10582. POP EBP
  10583. JMP [_GetAtomName]
  10584. end;
  10585. end;
  10586. var
  10587. _GetProfileIntA: Pointer;
  10588. function GetProfileIntA;
  10589. begin
  10590. GetProcedureAddress(_GetProfileIntA, kernel32, 'GetProfileIntA');
  10591. asm
  10592. MOV ESP, EBP
  10593. POP EBP
  10594. JMP [_GetProfileIntA]
  10595. end;
  10596. end;
  10597. var
  10598. _GetProfileIntW: Pointer;
  10599. function GetProfileIntW;
  10600. begin
  10601. GetProcedureAddress(_GetProfileIntW, kernel32, 'GetProfileIntW');
  10602. asm
  10603. MOV ESP, EBP
  10604. POP EBP
  10605. JMP [_GetProfileIntW]
  10606. end;
  10607. end;
  10608. var
  10609. _GetProfileInt: Pointer;
  10610. function GetProfileInt;
  10611. begin
  10612. GetProcedureAddress(_GetProfileInt, kernel32, 'GetProfileInt' + AWSuffix);
  10613. asm
  10614. MOV ESP, EBP
  10615. POP EBP
  10616. JMP [_GetProfileInt]
  10617. end;
  10618. end;
  10619. var
  10620. _GetProfileStringA: Pointer;
  10621. function GetProfileStringA;
  10622. begin
  10623. GetProcedureAddress(_GetProfileStringA, kernel32, 'GetProfileStringA');
  10624. asm
  10625. MOV ESP, EBP
  10626. POP EBP
  10627. JMP [_GetProfileStringA]
  10628. end;
  10629. end;
  10630. var
  10631. _GetProfileStringW: Pointer;
  10632. function GetProfileStringW;
  10633. begin
  10634. GetProcedureAddress(_GetProfileStringW, kernel32, 'GetProfileStringW');
  10635. asm
  10636. MOV ESP, EBP
  10637. POP EBP
  10638. JMP [_GetProfileStringW]
  10639. end;
  10640. end;
  10641. var
  10642. _GetProfileString: Pointer;
  10643. function GetProfileString;
  10644. begin
  10645. GetProcedureAddress(_GetProfileString, kernel32, 'GetProfileString' + AWSuffix);
  10646. asm
  10647. MOV ESP, EBP
  10648. POP EBP
  10649. JMP [_GetProfileString]
  10650. end;
  10651. end;
  10652. var
  10653. _WriteProfileStringA: Pointer;
  10654. function WriteProfileStringA;
  10655. begin
  10656. GetProcedureAddress(_WriteProfileStringA, kernel32, 'WriteProfileStringA');
  10657. asm
  10658. MOV ESP, EBP
  10659. POP EBP
  10660. JMP [_WriteProfileStringA]
  10661. end;
  10662. end;
  10663. var
  10664. _WriteProfileStringW: Pointer;
  10665. function WriteProfileStringW;
  10666. begin
  10667. GetProcedureAddress(_WriteProfileStringW, kernel32, 'WriteProfileStringW');
  10668. asm
  10669. MOV ESP, EBP
  10670. POP EBP
  10671. JMP [_WriteProfileStringW]
  10672. end;
  10673. end;
  10674. var
  10675. _WriteProfileString: Pointer;
  10676. function WriteProfileString;
  10677. begin
  10678. GetProcedureAddress(_WriteProfileString, kernel32, 'WriteProfileString' + AWSuffix);
  10679. asm
  10680. MOV ESP, EBP
  10681. POP EBP
  10682. JMP [_WriteProfileString]
  10683. end;
  10684. end;
  10685. var
  10686. _GetProfileSectionA: Pointer;
  10687. function GetProfileSectionA;
  10688. begin
  10689. GetProcedureAddress(_GetProfileSectionA, kernel32, 'GetProfileSectionA');
  10690. asm
  10691. MOV ESP, EBP
  10692. POP EBP
  10693. JMP [_GetProfileSectionA]
  10694. end;
  10695. end;
  10696. var
  10697. _GetProfileSectionW: Pointer;
  10698. function GetProfileSectionW;
  10699. begin
  10700. GetProcedureAddress(_GetProfileSectionW, kernel32, 'GetProfileSectionW');
  10701. asm
  10702. MOV ESP, EBP
  10703. POP EBP
  10704. JMP [_GetProfileSectionW]
  10705. end;
  10706. end;
  10707. var
  10708. _GetProfileSection: Pointer;
  10709. function GetProfileSection;
  10710. begin
  10711. GetProcedureAddress(_GetProfileSection, kernel32, 'GetProfileSection' + AWSuffix);
  10712. asm
  10713. MOV ESP, EBP
  10714. POP EBP
  10715. JMP [_GetProfileSection]
  10716. end;
  10717. end;
  10718. var
  10719. _WriteProfileSectionA: Pointer;
  10720. function WriteProfileSectionA;
  10721. begin
  10722. GetProcedureAddress(_WriteProfileSectionA, kernel32, 'WriteProfileSectionA');
  10723. asm
  10724. MOV ESP, EBP
  10725. POP EBP
  10726. JMP [_WriteProfileSectionA]
  10727. end;
  10728. end;
  10729. var
  10730. _WriteProfileSectionW: Pointer;
  10731. function WriteProfileSectionW;
  10732. begin
  10733. GetProcedureAddress(_WriteProfileSectionW, kernel32, 'WriteProfileSectionW');
  10734. asm
  10735. MOV ESP, EBP
  10736. POP EBP
  10737. JMP [_WriteProfileSectionW]
  10738. end;
  10739. end;
  10740. var
  10741. _WriteProfileSection: Pointer;
  10742. function WriteProfileSection;
  10743. begin
  10744. GetProcedureAddress(_WriteProfileSection, kernel32, 'WriteProfileSection' + AWSuffix);
  10745. asm
  10746. MOV ESP, EBP
  10747. POP EBP
  10748. JMP [_WriteProfileSection]
  10749. end;
  10750. end;
  10751. var
  10752. _GetPrivateProfileIntA: Pointer;
  10753. function GetPrivateProfileIntA;
  10754. begin
  10755. GetProcedureAddress(_GetPrivateProfileIntA, kernel32, 'GetPrivateProfileIntA');
  10756. asm
  10757. MOV ESP, EBP
  10758. POP EBP
  10759. JMP [_GetPrivateProfileIntA]
  10760. end;
  10761. end;
  10762. var
  10763. _GetPrivateProfileIntW: Pointer;
  10764. function GetPrivateProfileIntW;
  10765. begin
  10766. GetProcedureAddress(_GetPrivateProfileIntW, kernel32, 'GetPrivateProfileIntW');
  10767. asm
  10768. MOV ESP, EBP
  10769. POP EBP
  10770. JMP [_GetPrivateProfileIntW]
  10771. end;
  10772. end;
  10773. var
  10774. _GetPrivateProfileInt: Pointer;
  10775. function GetPrivateProfileInt;
  10776. begin
  10777. GetProcedureAddress(_GetPrivateProfileInt, kernel32, 'GetPrivateProfileInt' + AWSuffix);
  10778. asm
  10779. MOV ESP, EBP
  10780. POP EBP
  10781. JMP [_GetPrivateProfileInt]
  10782. end;
  10783. end;
  10784. var
  10785. _GetPrivateProfileStringA: Pointer;
  10786. function GetPrivateProfileStringA;
  10787. begin
  10788. GetProcedureAddress(_GetPrivateProfileStringA, kernel32, 'GetPrivateProfileStringA');
  10789. asm
  10790. MOV ESP, EBP
  10791. POP EBP
  10792. JMP [_GetPrivateProfileStringA]
  10793. end;
  10794. end;
  10795. var
  10796. _GetPrivateProfileStringW: Pointer;
  10797. function GetPrivateProfileStringW;
  10798. begin
  10799. GetProcedureAddress(_GetPrivateProfileStringW, kernel32, 'GetPrivateProfileStringW');
  10800. asm
  10801. MOV ESP, EBP
  10802. POP EBP
  10803. JMP [_GetPrivateProfileStringW]
  10804. end;
  10805. end;
  10806. var
  10807. _GetPrivateProfileString: Pointer;
  10808. function GetPrivateProfileString;
  10809. begin
  10810. GetProcedureAddress(_GetPrivateProfileString, kernel32, 'GetPrivateProfileString' + AWSuffix);
  10811. asm
  10812. MOV ESP, EBP
  10813. POP EBP
  10814. JMP [_GetPrivateProfileString]
  10815. end;
  10816. end;
  10817. var
  10818. _WritePrivateProfileStringA: Pointer;
  10819. function WritePrivateProfileStringA;
  10820. begin
  10821. GetProcedureAddress(_WritePrivateProfileStringA, kernel32, 'WritePrivateProfileStringA');
  10822. asm
  10823. MOV ESP, EBP
  10824. POP EBP
  10825. JMP [_WritePrivateProfileStringA]
  10826. end;
  10827. end;
  10828. var
  10829. _WritePrivateProfileStringW: Pointer;
  10830. function WritePrivateProfileStringW;
  10831. begin
  10832. GetProcedureAddress(_WritePrivateProfileStringW, kernel32, 'WritePrivateProfileStringW');
  10833. asm
  10834. MOV ESP, EBP
  10835. POP EBP
  10836. JMP [_WritePrivateProfileStringW]
  10837. end;
  10838. end;
  10839. var
  10840. _WritePrivateProfileString: Pointer;
  10841. function WritePrivateProfileString;
  10842. begin
  10843. GetProcedureAddress(_WritePrivateProfileString, kernel32, 'WritePrivateProfileString' + AWSuffix);
  10844. asm
  10845. MOV ESP, EBP
  10846. POP EBP
  10847. JMP [_WritePrivateProfileString]
  10848. end;
  10849. end;
  10850. var
  10851. _GetPrivateProfileSectionA: Pointer;
  10852. function GetPrivateProfileSectionA;
  10853. begin
  10854. GetProcedureAddress(_GetPrivateProfileSectionA, kernel32, 'GetPrivateProfileSectionA');
  10855. asm
  10856. MOV ESP, EBP
  10857. POP EBP
  10858. JMP [_GetPrivateProfileSectionA]
  10859. end;
  10860. end;
  10861. var
  10862. _GetPrivateProfileSectionW: Pointer;
  10863. function GetPrivateProfileSectionW;
  10864. begin
  10865. GetProcedureAddress(_GetPrivateProfileSectionW, kernel32, 'GetPrivateProfileSectionW');
  10866. asm
  10867. MOV ESP, EBP
  10868. POP EBP
  10869. JMP [_GetPrivateProfileSectionW]
  10870. end;
  10871. end;
  10872. var
  10873. _GetPrivateProfileSection: Pointer;
  10874. function GetPrivateProfileSection;
  10875. begin
  10876. GetProcedureAddress(_GetPrivateProfileSection, kernel32, 'GetPrivateProfileSection' + AWSuffix);
  10877. asm
  10878. MOV ESP, EBP
  10879. POP EBP
  10880. JMP [_GetPrivateProfileSection]
  10881. end;
  10882. end;
  10883. var
  10884. _WritePrivateProfileSectionA: Pointer;
  10885. function WritePrivateProfileSectionA;
  10886. begin
  10887. GetProcedureAddress(_WritePrivateProfileSectionA, kernel32, 'WritePrivateProfileSectionA');
  10888. asm
  10889. MOV ESP, EBP
  10890. POP EBP
  10891. JMP [_WritePrivateProfileSectionA]
  10892. end;
  10893. end;
  10894. var
  10895. _WritePrivateProfileSectionW: Pointer;
  10896. function WritePrivateProfileSectionW;
  10897. begin
  10898. GetProcedureAddress(_WritePrivateProfileSectionW, kernel32, 'WritePrivateProfileSectionW');
  10899. asm
  10900. MOV ESP, EBP
  10901. POP EBP
  10902. JMP [_WritePrivateProfileSectionW]
  10903. end;
  10904. end;
  10905. var
  10906. _WritePrivateProfileSection: Pointer;
  10907. function WritePrivateProfileSection;
  10908. begin
  10909. GetProcedureAddress(_WritePrivateProfileSection, kernel32, 'WritePrivateProfileSection' + AWSuffix);
  10910. asm
  10911. MOV ESP, EBP
  10912. POP EBP
  10913. JMP [_WritePrivateProfileSection]
  10914. end;
  10915. end;
  10916. var
  10917. _GetPrivateProfileSectionNamesA: Pointer;
  10918. function GetPrivateProfileSectionNamesA;
  10919. begin
  10920. GetProcedureAddress(_GetPrivateProfileSectionNamesA, kernel32, 'GetPrivateProfileSectionNamesA');
  10921. asm
  10922. MOV ESP, EBP
  10923. POP EBP
  10924. JMP [_GetPrivateProfileSectionNamesA]
  10925. end;
  10926. end;
  10927. var
  10928. _GetPrivateProfileSectionNamesW: Pointer;
  10929. function GetPrivateProfileSectionNamesW;
  10930. begin
  10931. GetProcedureAddress(_GetPrivateProfileSectionNamesW, kernel32, 'GetPrivateProfileSectionNamesW');
  10932. asm
  10933. MOV ESP, EBP
  10934. POP EBP
  10935. JMP [_GetPrivateProfileSectionNamesW]
  10936. end;
  10937. end;
  10938. var
  10939. _GetPrivateProfileSectionNames: Pointer;
  10940. function GetPrivateProfileSectionNames;
  10941. begin
  10942. GetProcedureAddress(_GetPrivateProfileSectionNames, kernel32, 'GetPrivateProfileSectionNames' + AWSuffix);
  10943. asm
  10944. MOV ESP, EBP
  10945. POP EBP
  10946. JMP [_GetPrivateProfileSectionNames]
  10947. end;
  10948. end;
  10949. var
  10950. _GetPrivateProfileStructA: Pointer;
  10951. function GetPrivateProfileStructA;
  10952. begin
  10953. GetProcedureAddress(_GetPrivateProfileStructA, kernel32, 'GetPrivateProfileStructA');
  10954. asm
  10955. MOV ESP, EBP
  10956. POP EBP
  10957. JMP [_GetPrivateProfileStructA]
  10958. end;
  10959. end;
  10960. var
  10961. _GetPrivateProfileStructW: Pointer;
  10962. function GetPrivateProfileStructW;
  10963. begin
  10964. GetProcedureAddress(_GetPrivateProfileStructW, kernel32, 'GetPrivateProfileStructW');
  10965. asm
  10966. MOV ESP, EBP
  10967. POP EBP
  10968. JMP [_GetPrivateProfileStructW]
  10969. end;
  10970. end;
  10971. var
  10972. _GetPrivateProfileStruct: Pointer;
  10973. function GetPrivateProfileStruct;
  10974. begin
  10975. GetProcedureAddress(_GetPrivateProfileStruct, kernel32, 'GetPrivateProfileStruct' + AWSuffix);
  10976. asm
  10977. MOV ESP, EBP
  10978. POP EBP
  10979. JMP [_GetPrivateProfileStruct]
  10980. end;
  10981. end;
  10982. var
  10983. _WritePrivateProfileStructA: Pointer;
  10984. function WritePrivateProfileStructA;
  10985. begin
  10986. GetProcedureAddress(_WritePrivateProfileStructA, kernel32, 'WritePrivateProfileStructA');
  10987. asm
  10988. MOV ESP, EBP
  10989. POP EBP
  10990. JMP [_WritePrivateProfileStructA]
  10991. end;
  10992. end;
  10993. var
  10994. _WritePrivateProfileStructW: Pointer;
  10995. function WritePrivateProfileStructW;
  10996. begin
  10997. GetProcedureAddress(_WritePrivateProfileStructW, kernel32, 'WritePrivateProfileStructW');
  10998. asm
  10999. MOV ESP, EBP
  11000. POP EBP
  11001. JMP [_WritePrivateProfileStructW]
  11002. end;
  11003. end;
  11004. var
  11005. _WritePrivateProfileStruct: Pointer;
  11006. function WritePrivateProfileStruct;
  11007. begin
  11008. GetProcedureAddress(_WritePrivateProfileStruct, kernel32, 'WritePrivateProfileStruct' + AWSuffix);
  11009. asm
  11010. MOV ESP, EBP
  11011. POP EBP
  11012. JMP [_WritePrivateProfileStruct]
  11013. end;
  11014. end;
  11015. var
  11016. _GetDriveTypeA: Pointer;
  11017. function GetDriveTypeA;
  11018. begin
  11019. GetProcedureAddress(_GetDriveTypeA, kernel32, 'GetDriveTypeA');
  11020. asm
  11021. MOV ESP, EBP
  11022. POP EBP
  11023. JMP [_GetDriveTypeA]
  11024. end;
  11025. end;
  11026. var
  11027. _GetDriveTypeW: Pointer;
  11028. function GetDriveTypeW;
  11029. begin
  11030. GetProcedureAddress(_GetDriveTypeW, kernel32, 'GetDriveTypeW');
  11031. asm
  11032. MOV ESP, EBP
  11033. POP EBP
  11034. JMP [_GetDriveTypeW]
  11035. end;
  11036. end;
  11037. var
  11038. _GetDriveType: Pointer;
  11039. function GetDriveType;
  11040. begin
  11041. GetProcedureAddress(_GetDriveType, kernel32, 'GetDriveType' + AWSuffix);
  11042. asm
  11043. MOV ESP, EBP
  11044. POP EBP
  11045. JMP [_GetDriveType]
  11046. end;
  11047. end;
  11048. var
  11049. _GetSystemDirectoryA: Pointer;
  11050. function GetSystemDirectoryA;
  11051. begin
  11052. GetProcedureAddress(_GetSystemDirectoryA, kernel32, 'GetSystemDirectoryA');
  11053. asm
  11054. MOV ESP, EBP
  11055. POP EBP
  11056. JMP [_GetSystemDirectoryA]
  11057. end;
  11058. end;
  11059. var
  11060. _GetSystemDirectoryW: Pointer;
  11061. function GetSystemDirectoryW;
  11062. begin
  11063. GetProcedureAddress(_GetSystemDirectoryW, kernel32, 'GetSystemDirectoryW');
  11064. asm
  11065. MOV ESP, EBP
  11066. POP EBP
  11067. JMP [_GetSystemDirectoryW]
  11068. end;
  11069. end;
  11070. var
  11071. _GetSystemDirectory: Pointer;
  11072. function GetSystemDirectory;
  11073. begin
  11074. GetProcedureAddress(_GetSystemDirectory, kernel32, 'GetSystemDirectory' + AWSuffix);
  11075. asm
  11076. MOV ESP, EBP
  11077. POP EBP
  11078. JMP [_GetSystemDirectory]
  11079. end;
  11080. end;
  11081. var
  11082. _GetTempPathA: Pointer;
  11083. function GetTempPathA;
  11084. begin
  11085. GetProcedureAddress(_GetTempPathA, kernel32, 'GetTempPathA');
  11086. asm
  11087. MOV ESP, EBP
  11088. POP EBP
  11089. JMP [_GetTempPathA]
  11090. end;
  11091. end;
  11092. var
  11093. _GetTempPathW: Pointer;
  11094. function GetTempPathW;
  11095. begin
  11096. GetProcedureAddress(_GetTempPathW, kernel32, 'GetTempPathW');
  11097. asm
  11098. MOV ESP, EBP
  11099. POP EBP
  11100. JMP [_GetTempPathW]
  11101. end;
  11102. end;
  11103. var
  11104. _GetTempPath: Pointer;
  11105. function GetTempPath;
  11106. begin
  11107. GetProcedureAddress(_GetTempPath, kernel32, 'GetTempPath' + AWSuffix);
  11108. asm
  11109. MOV ESP, EBP
  11110. POP EBP
  11111. JMP [_GetTempPath]
  11112. end;
  11113. end;
  11114. var
  11115. _GetTempFileNameA: Pointer;
  11116. function GetTempFileNameA;
  11117. begin
  11118. GetProcedureAddress(_GetTempFileNameA, kernel32, 'GetTempFileNameA');
  11119. asm
  11120. MOV ESP, EBP
  11121. POP EBP
  11122. JMP [_GetTempFileNameA]
  11123. end;
  11124. end;
  11125. var
  11126. _GetTempFileNameW: Pointer;
  11127. function GetTempFileNameW;
  11128. begin
  11129. GetProcedureAddress(_GetTempFileNameW, kernel32, 'GetTempFileNameW');
  11130. asm
  11131. MOV ESP, EBP
  11132. POP EBP
  11133. JMP [_GetTempFileNameW]
  11134. end;
  11135. end;
  11136. var
  11137. _GetTempFileName: Pointer;
  11138. function GetTempFileName;
  11139. begin
  11140. GetProcedureAddress(_GetTempFileName, kernel32, 'GetTempFileName' + AWSuffix);
  11141. asm
  11142. MOV ESP, EBP
  11143. POP EBP
  11144. JMP [_GetTempFileName]
  11145. end;
  11146. end;
  11147. var
  11148. _GetWindowsDirectoryA: Pointer;
  11149. function GetWindowsDirectoryA;
  11150. begin
  11151. GetProcedureAddress(_GetWindowsDirectoryA, kernel32, 'GetWindowsDirectoryA');
  11152. asm
  11153. MOV ESP, EBP
  11154. POP EBP
  11155. JMP [_GetWindowsDirectoryA]
  11156. end;
  11157. end;
  11158. var
  11159. _GetWindowsDirectoryW: Pointer;
  11160. function GetWindowsDirectoryW;
  11161. begin
  11162. GetProcedureAddress(_GetWindowsDirectoryW, kernel32, 'GetWindowsDirectoryW');
  11163. asm
  11164. MOV ESP, EBP
  11165. POP EBP
  11166. JMP [_GetWindowsDirectoryW]
  11167. end;
  11168. end;
  11169. var
  11170. _GetWindowsDirectory: Pointer;
  11171. function GetWindowsDirectory;
  11172. begin
  11173. GetProcedureAddress(_GetWindowsDirectory, kernel32, 'GetWindowsDirectory' + AWSuffix);
  11174. asm
  11175. MOV ESP, EBP
  11176. POP EBP
  11177. JMP [_GetWindowsDirectory]
  11178. end;
  11179. end;
  11180. var
  11181. _GetSystemWindowsDirectoryA: Pointer;
  11182. function GetSystemWindowsDirectoryA;
  11183. begin
  11184. GetProcedureAddress(_GetSystemWindowsDirectoryA, kernel32, 'GetSystemWindowsDirectoryA');
  11185. asm
  11186. MOV ESP, EBP
  11187. POP EBP
  11188. JMP [_GetSystemWindowsDirectoryA]
  11189. end;
  11190. end;
  11191. var
  11192. _GetSystemWindowsDirectoryW: Pointer;
  11193. function GetSystemWindowsDirectoryW;
  11194. begin
  11195. GetProcedureAddress(_GetSystemWindowsDirectoryW, kernel32, 'GetSystemWindowsDirectoryW');
  11196. asm
  11197. MOV ESP, EBP
  11198. POP EBP
  11199. JMP [_GetSystemWindowsDirectoryW]
  11200. end;
  11201. end;
  11202. var
  11203. _GetSystemWindowsDirectory: Pointer;
  11204. function GetSystemWindowsDirectory;
  11205. begin
  11206. GetProcedureAddress(_GetSystemWindowsDirectory, kernel32, 'GetSystemWindowsDirectory' + AWSuffix);
  11207. asm
  11208. MOV ESP, EBP
  11209. POP EBP
  11210. JMP [_GetSystemWindowsDirectory]
  11211. end;
  11212. end;
  11213. var
  11214. _GetSystemWow64DirectoryA: Pointer;
  11215. function GetSystemWow64DirectoryA;
  11216. begin
  11217. GetProcedureAddress(_GetSystemWow64DirectoryA, kernel32, 'GetSystemWow64DirectoryA');
  11218. asm
  11219. MOV ESP, EBP
  11220. POP EBP
  11221. JMP [_GetSystemWow64DirectoryA]
  11222. end;
  11223. end;
  11224. var
  11225. _GetSystemWow64DirectoryW: Pointer;
  11226. function GetSystemWow64DirectoryW;
  11227. begin
  11228. GetProcedureAddress(_GetSystemWow64DirectoryW, kernel32, 'GetSystemWow64DirectoryW');
  11229. asm
  11230. MOV ESP, EBP
  11231. POP EBP
  11232. JMP [_GetSystemWow64DirectoryW]
  11233. end;
  11234. end;
  11235. var
  11236. _GetSystemWow64Directory: Pointer;
  11237. function GetSystemWow64Directory;
  11238. begin
  11239. GetProcedureAddress(_GetSystemWow64Directory, kernel32, 'GetSystemWow64Directory' + AWSuffix);
  11240. asm
  11241. MOV ESP, EBP
  11242. POP EBP
  11243. JMP [_GetSystemWow64Directory]
  11244. end;
  11245. end;
  11246. var
  11247. _Wow64EnableWow64FsRedirection: Pointer;
  11248. function Wow64EnableWow64FsRedirection;
  11249. begin
  11250. GetProcedureAddress(_Wow64EnableWow64FsRedirection, kernel32, 'Wow64EnableWow64FsRedirection');
  11251. asm
  11252. MOV ESP, EBP
  11253. POP EBP
  11254. JMP [_Wow64EnableWow64FsRedirection]
  11255. end;
  11256. end;
  11257. var
  11258. _SetCurrentDirectoryA: Pointer;
  11259. function SetCurrentDirectoryA;
  11260. begin
  11261. GetProcedureAddress(_SetCurrentDirectoryA, kernel32, 'SetCurrentDirectoryA');
  11262. asm
  11263. MOV ESP, EBP
  11264. POP EBP
  11265. JMP [_SetCurrentDirectoryA]
  11266. end;
  11267. end;
  11268. var
  11269. _SetCurrentDirectoryW: Pointer;
  11270. function SetCurrentDirectoryW;
  11271. begin
  11272. GetProcedureAddress(_SetCurrentDirectoryW, kernel32, 'SetCurrentDirectoryW');
  11273. asm
  11274. MOV ESP, EBP
  11275. POP EBP
  11276. JMP [_SetCurrentDirectoryW]
  11277. end;
  11278. end;
  11279. var
  11280. _SetCurrentDirectory: Pointer;
  11281. function SetCurrentDirectory;
  11282. begin
  11283. GetProcedureAddress(_SetCurrentDirectory, kernel32, 'SetCurrentDirectory' + AWSuffix);
  11284. asm
  11285. MOV ESP, EBP
  11286. POP EBP
  11287. JMP [_SetCurrentDirectory]
  11288. end;
  11289. end;
  11290. var
  11291. _GetCurrentDirectoryA: Pointer;
  11292. function GetCurrentDirectoryA;
  11293. begin
  11294. GetProcedureAddress(_GetCurrentDirectoryA, kernel32, 'GetCurrentDirectoryA');
  11295. asm
  11296. MOV ESP, EBP
  11297. POP EBP
  11298. JMP [_GetCurrentDirectoryA]
  11299. end;
  11300. end;
  11301. var
  11302. _GetCurrentDirectoryW: Pointer;
  11303. function GetCurrentDirectoryW;
  11304. begin
  11305. GetProcedureAddress(_GetCurrentDirectoryW, kernel32, 'GetCurrentDirectoryW');
  11306. asm
  11307. MOV ESP, EBP
  11308. POP EBP
  11309. JMP [_GetCurrentDirectoryW]
  11310. end;
  11311. end;
  11312. var
  11313. _GetCurrentDirectory: Pointer;
  11314. function GetCurrentDirectory;
  11315. begin
  11316. GetProcedureAddress(_GetCurrentDirectory, kernel32, 'GetCurrentDirectory' + AWSuffix);
  11317. asm
  11318. MOV ESP, EBP
  11319. POP EBP
  11320. JMP [_GetCurrentDirectory]
  11321. end;
  11322. end;
  11323. var
  11324. _SetDllDirectoryA: Pointer;
  11325. function SetDllDirectoryA;
  11326. begin
  11327. GetProcedureAddress(_SetDllDirectoryA, kernel32, 'SetDllDirectoryA');
  11328. asm
  11329. MOV ESP, EBP
  11330. POP EBP
  11331. JMP [_SetDllDirectoryA]
  11332. end;
  11333. end;
  11334. var
  11335. _SetDllDirectoryW: Pointer;
  11336. function SetDllDirectoryW;
  11337. begin
  11338. GetProcedureAddress(_SetDllDirectoryW, kernel32, 'SetDllDirectoryW');
  11339. asm
  11340. MOV ESP, EBP
  11341. POP EBP
  11342. JMP [_SetDllDirectoryW]
  11343. end;
  11344. end;
  11345. var
  11346. _SetDllDirectory: Pointer;
  11347. function SetDllDirectory;
  11348. begin
  11349. GetProcedureAddress(_SetDllDirectory, kernel32, 'SetDllDirectory' + AWSuffix);
  11350. asm
  11351. MOV ESP, EBP
  11352. POP EBP
  11353. JMP [_SetDllDirectory]
  11354. end;
  11355. end;
  11356. var
  11357. _GetDllDirectoryA: Pointer;
  11358. function GetDllDirectoryA;
  11359. begin
  11360. GetProcedureAddress(_GetDllDirectoryA, kernel32, 'GetDllDirectoryA');
  11361. asm
  11362. MOV ESP, EBP
  11363. POP EBP
  11364. JMP [_GetDllDirectoryA]
  11365. end;
  11366. end;
  11367. var
  11368. _GetDllDirectoryW: Pointer;
  11369. function GetDllDirectoryW;
  11370. begin
  11371. GetProcedureAddress(_GetDllDirectoryW, kernel32, 'GetDllDirectoryW');
  11372. asm
  11373. MOV ESP, EBP
  11374. POP EBP
  11375. JMP [_GetDllDirectoryW]
  11376. end;
  11377. end;
  11378. var
  11379. _GetDllDirectory: Pointer;
  11380. function GetDllDirectory;
  11381. begin
  11382. GetProcedureAddress(_GetDllDirectory, kernel32, 'GetDllDirectory' + AWSuffix);
  11383. asm
  11384. MOV ESP, EBP
  11385. POP EBP
  11386. JMP [_GetDllDirectory]
  11387. end;
  11388. end;
  11389. var
  11390. _GetDiskFreeSpaceA: Pointer;
  11391. function GetDiskFreeSpaceA;
  11392. begin
  11393. GetProcedureAddress(_GetDiskFreeSpaceA, kernel32, 'GetDiskFreeSpaceA');
  11394. asm
  11395. MOV ESP, EBP
  11396. POP EBP
  11397. JMP [_GetDiskFreeSpaceA]
  11398. end;
  11399. end;
  11400. var
  11401. _GetDiskFreeSpaceW: Pointer;
  11402. function GetDiskFreeSpaceW;
  11403. begin
  11404. GetProcedureAddress(_GetDiskFreeSpaceW, kernel32, 'GetDiskFreeSpaceW');
  11405. asm
  11406. MOV ESP, EBP
  11407. POP EBP
  11408. JMP [_GetDiskFreeSpaceW]
  11409. end;
  11410. end;
  11411. var
  11412. _GetDiskFreeSpace: Pointer;
  11413. function GetDiskFreeSpace;
  11414. begin
  11415. GetProcedureAddress(_GetDiskFreeSpace, kernel32, 'GetDiskFreeSpace' + AWSuffix);
  11416. asm
  11417. MOV ESP, EBP
  11418. POP EBP
  11419. JMP [_GetDiskFreeSpace]
  11420. end;
  11421. end;
  11422. var
  11423. _GetDiskFreeSpaceExA: Pointer;
  11424. function GetDiskFreeSpaceExA;
  11425. begin
  11426. GetProcedureAddress(_GetDiskFreeSpaceExA, kernel32, 'GetDiskFreeSpaceExA');
  11427. asm
  11428. MOV ESP, EBP
  11429. POP EBP
  11430. JMP [_GetDiskFreeSpaceExA]
  11431. end;
  11432. end;
  11433. var
  11434. _GetDiskFreeSpaceExW: Pointer;
  11435. function GetDiskFreeSpaceExW;
  11436. begin
  11437. GetProcedureAddress(_GetDiskFreeSpaceExW, kernel32, 'GetDiskFreeSpaceExW');
  11438. asm
  11439. MOV ESP, EBP
  11440. POP EBP
  11441. JMP [_GetDiskFreeSpaceExW]
  11442. end;
  11443. end;
  11444. var
  11445. _GetDiskFreeSpaceEx: Pointer;
  11446. function GetDiskFreeSpaceEx;
  11447. begin
  11448. GetProcedureAddress(_GetDiskFreeSpaceEx, kernel32, 'GetDiskFreeSpaceEx' + AWSuffix);
  11449. asm
  11450. MOV ESP, EBP
  11451. POP EBP
  11452. JMP [_GetDiskFreeSpaceEx]
  11453. end;
  11454. end;
  11455. var
  11456. _CreateDirectoryA: Pointer;
  11457. function CreateDirectoryA;
  11458. begin
  11459. GetProcedureAddress(_CreateDirectoryA, kernel32, 'CreateDirectoryA');
  11460. asm
  11461. MOV ESP, EBP
  11462. POP EBP
  11463. JMP [_CreateDirectoryA]
  11464. end;
  11465. end;
  11466. var
  11467. _CreateDirectoryW: Pointer;
  11468. function CreateDirectoryW;
  11469. begin
  11470. GetProcedureAddress(_CreateDirectoryW, kernel32, 'CreateDirectoryW');
  11471. asm
  11472. MOV ESP, EBP
  11473. POP EBP
  11474. JMP [_CreateDirectoryW]
  11475. end;
  11476. end;
  11477. var
  11478. _CreateDirectory: Pointer;
  11479. function CreateDirectory;
  11480. begin
  11481. GetProcedureAddress(_CreateDirectory, kernel32, 'CreateDirectory' + AWSuffix);
  11482. asm
  11483. MOV ESP, EBP
  11484. POP EBP
  11485. JMP [_CreateDirectory]
  11486. end;
  11487. end;
  11488. var
  11489. _CreateDirectoryExA: Pointer;
  11490. function CreateDirectoryExA;
  11491. begin
  11492. GetProcedureAddress(_CreateDirectoryExA, kernel32, 'CreateDirectoryExA');
  11493. asm
  11494. MOV ESP, EBP
  11495. POP EBP
  11496. JMP [_CreateDirectoryExA]
  11497. end;
  11498. end;
  11499. var
  11500. _CreateDirectoryExW: Pointer;
  11501. function CreateDirectoryExW;
  11502. begin
  11503. GetProcedureAddress(_CreateDirectoryExW, kernel32, 'CreateDirectoryExW');
  11504. asm
  11505. MOV ESP, EBP
  11506. POP EBP
  11507. JMP [_CreateDirectoryExW]
  11508. end;
  11509. end;
  11510. var
  11511. _CreateDirectoryEx: Pointer;
  11512. function CreateDirectoryEx;
  11513. begin
  11514. GetProcedureAddress(_CreateDirectoryEx, kernel32, 'CreateDirectoryEx' + AWSuffix);
  11515. asm
  11516. MOV ESP, EBP
  11517. POP EBP
  11518. JMP [_CreateDirectoryEx]
  11519. end;
  11520. end;
  11521. var
  11522. _RemoveDirectoryA: Pointer;
  11523. function RemoveDirectoryA;
  11524. begin
  11525. GetProcedureAddress(_RemoveDirectoryA, kernel32, 'RemoveDirectoryA');
  11526. asm
  11527. MOV ESP, EBP
  11528. POP EBP
  11529. JMP [_RemoveDirectoryA]
  11530. end;
  11531. end;
  11532. var
  11533. _RemoveDirectoryW: Pointer;
  11534. function RemoveDirectoryW;
  11535. begin
  11536. GetProcedureAddress(_RemoveDirectoryW, kernel32, 'RemoveDirectoryW');
  11537. asm
  11538. MOV ESP, EBP
  11539. POP EBP
  11540. JMP [_RemoveDirectoryW]
  11541. end;
  11542. end;
  11543. var
  11544. _RemoveDirectory: Pointer;
  11545. function RemoveDirectory;
  11546. begin
  11547. GetProcedureAddress(_RemoveDirectory, kernel32, 'RemoveDirectory' + AWSuffix);
  11548. asm
  11549. MOV ESP, EBP
  11550. POP EBP
  11551. JMP [_RemoveDirectory]
  11552. end;
  11553. end;
  11554. var
  11555. _GetFullPathNameA: Pointer;
  11556. function GetFullPathNameA;
  11557. begin
  11558. GetProcedureAddress(_GetFullPathNameA, kernel32, 'GetFullPathNameA');
  11559. asm
  11560. MOV ESP, EBP
  11561. POP EBP
  11562. JMP [_GetFullPathNameA]
  11563. end;
  11564. end;
  11565. var
  11566. _GetFullPathNameW: Pointer;
  11567. function GetFullPathNameW;
  11568. begin
  11569. GetProcedureAddress(_GetFullPathNameW, kernel32, 'GetFullPathNameW');
  11570. asm
  11571. MOV ESP, EBP
  11572. POP EBP
  11573. JMP [_GetFullPathNameW]
  11574. end;
  11575. end;
  11576. var
  11577. _GetFullPathName: Pointer;
  11578. function GetFullPathName;
  11579. begin
  11580. GetProcedureAddress(_GetFullPathName, kernel32, 'GetFullPathName' + AWSuffix);
  11581. asm
  11582. MOV ESP, EBP
  11583. POP EBP
  11584. JMP [_GetFullPathName]
  11585. end;
  11586. end;
  11587. var
  11588. _DefineDosDeviceA: Pointer;
  11589. function DefineDosDeviceA;
  11590. begin
  11591. GetProcedureAddress(_DefineDosDeviceA, kernel32, 'DefineDosDeviceA');
  11592. asm
  11593. MOV ESP, EBP
  11594. POP EBP
  11595. JMP [_DefineDosDeviceA]
  11596. end;
  11597. end;
  11598. var
  11599. _DefineDosDeviceW: Pointer;
  11600. function DefineDosDeviceW;
  11601. begin
  11602. GetProcedureAddress(_DefineDosDeviceW, kernel32, 'DefineDosDeviceW');
  11603. asm
  11604. MOV ESP, EBP
  11605. POP EBP
  11606. JMP [_DefineDosDeviceW]
  11607. end;
  11608. end;
  11609. var
  11610. _DefineDosDevice: Pointer;
  11611. function DefineDosDevice;
  11612. begin
  11613. GetProcedureAddress(_DefineDosDevice, kernel32, 'DefineDosDevice' + AWSuffix);
  11614. asm
  11615. MOV ESP, EBP
  11616. POP EBP
  11617. JMP [_DefineDosDevice]
  11618. end;
  11619. end;
  11620. var
  11621. _QueryDosDeviceA: Pointer;
  11622. function QueryDosDeviceA;
  11623. begin
  11624. GetProcedureAddress(_QueryDosDeviceA, kernel32, 'QueryDosDeviceA');
  11625. asm
  11626. MOV ESP, EBP
  11627. POP EBP
  11628. JMP [_QueryDosDeviceA]
  11629. end;
  11630. end;
  11631. var
  11632. _QueryDosDeviceW: Pointer;
  11633. function QueryDosDeviceW;
  11634. begin
  11635. GetProcedureAddress(_QueryDosDeviceW, kernel32, 'QueryDosDeviceW');
  11636. asm
  11637. MOV ESP, EBP
  11638. POP EBP
  11639. JMP [_QueryDosDeviceW]
  11640. end;
  11641. end;
  11642. var
  11643. _QueryDosDevice: Pointer;
  11644. function QueryDosDevice;
  11645. begin
  11646. GetProcedureAddress(_QueryDosDevice, kernel32, 'QueryDosDevice' + AWSuffix);
  11647. asm
  11648. MOV ESP, EBP
  11649. POP EBP
  11650. JMP [_QueryDosDevice]
  11651. end;
  11652. end;
  11653. var
  11654. _CreateFileA: Pointer;
  11655. function CreateFileA;
  11656. begin
  11657. GetProcedureAddress(_CreateFileA, kernel32, 'CreateFileA');
  11658. asm
  11659. MOV ESP, EBP
  11660. POP EBP
  11661. JMP [_CreateFileA]
  11662. end;
  11663. end;
  11664. var
  11665. _CreateFileW: Pointer;
  11666. function CreateFileW;
  11667. begin
  11668. GetProcedureAddress(_CreateFileW, kernel32, 'CreateFileW');
  11669. asm
  11670. MOV ESP, EBP
  11671. POP EBP
  11672. JMP [_CreateFileW]
  11673. end;
  11674. end;
  11675. var
  11676. _CreateFile: Pointer;
  11677. function CreateFile;
  11678. begin
  11679. GetProcedureAddress(_CreateFile, kernel32, 'CreateFile' + AWSuffix);
  11680. asm
  11681. MOV ESP, EBP
  11682. POP EBP
  11683. JMP [_CreateFile]
  11684. end;
  11685. end;
  11686. var
  11687. _ReOpenFile: Pointer;
  11688. function ReOpenFile;
  11689. begin
  11690. GetProcedureAddress(_ReOpenFile, kernel32, 'ReOpenFile');
  11691. asm
  11692. MOV ESP, EBP
  11693. POP EBP
  11694. JMP [_ReOpenFile]
  11695. end;
  11696. end;
  11697. var
  11698. _SetFileAttributesA: Pointer;
  11699. function SetFileAttributesA;
  11700. begin
  11701. GetProcedureAddress(_SetFileAttributesA, kernel32, 'SetFileAttributesA');
  11702. asm
  11703. MOV ESP, EBP
  11704. POP EBP
  11705. JMP [_SetFileAttributesA]
  11706. end;
  11707. end;
  11708. var
  11709. _SetFileAttributesW: Pointer;
  11710. function SetFileAttributesW;
  11711. begin
  11712. GetProcedureAddress(_SetFileAttributesW, kernel32, 'SetFileAttributesW');
  11713. asm
  11714. MOV ESP, EBP
  11715. POP EBP
  11716. JMP [_SetFileAttributesW]
  11717. end;
  11718. end;
  11719. var
  11720. _SetFileAttributes: Pointer;
  11721. function SetFileAttributes;
  11722. begin
  11723. GetProcedureAddress(_SetFileAttributes, kernel32, 'SetFileAttributes' + AWSuffix);
  11724. asm
  11725. MOV ESP, EBP
  11726. POP EBP
  11727. JMP [_SetFileAttributes]
  11728. end;
  11729. end;
  11730. var
  11731. _GetFileAttributesA: Pointer;
  11732. function GetFileAttributesA;
  11733. begin
  11734. GetProcedureAddress(_GetFileAttributesA, kernel32, 'GetFileAttributesA');
  11735. asm
  11736. MOV ESP, EBP
  11737. POP EBP
  11738. JMP [_GetFileAttributesA]
  11739. end;
  11740. end;
  11741. var
  11742. _GetFileAttributesW: Pointer;
  11743. function GetFileAttributesW;
  11744. begin
  11745. GetProcedureAddress(_GetFileAttributesW, kernel32, 'GetFileAttributesW');
  11746. asm
  11747. MOV ESP, EBP
  11748. POP EBP
  11749. JMP [_GetFileAttributesW]
  11750. end;
  11751. end;
  11752. var
  11753. _GetFileAttributes: Pointer;
  11754. function GetFileAttributes;
  11755. begin
  11756. GetProcedureAddress(_GetFileAttributes, kernel32, 'GetFileAttributes' + AWSuffix);
  11757. asm
  11758. MOV ESP, EBP
  11759. POP EBP
  11760. JMP [_GetFileAttributes]
  11761. end;
  11762. end;
  11763. var
  11764. _GetFileAttributesExA: Pointer;
  11765. function GetFileAttributesExA;
  11766. begin
  11767. GetProcedureAddress(_GetFileAttributesExA, kernel32, 'GetFileAttributesExA');
  11768. asm
  11769. MOV ESP, EBP
  11770. POP EBP
  11771. JMP [_GetFileAttributesExA]
  11772. end;
  11773. end;
  11774. var
  11775. _GetFileAttributesExW: Pointer;
  11776. function GetFileAttributesExW;
  11777. begin
  11778. GetProcedureAddress(_GetFileAttributesExW, kernel32, 'GetFileAttributesExW');
  11779. asm
  11780. MOV ESP, EBP
  11781. POP EBP
  11782. JMP [_GetFileAttributesExW]
  11783. end;
  11784. end;
  11785. var
  11786. _GetFileAttributesEx: Pointer;
  11787. function GetFileAttributesEx;
  11788. begin
  11789. GetProcedureAddress(_GetFileAttributesEx, kernel32, 'GetFileAttributesEx' + AWSuffix);
  11790. asm
  11791. MOV ESP, EBP
  11792. POP EBP
  11793. JMP [_GetFileAttributesEx]
  11794. end;
  11795. end;
  11796. var
  11797. _GetCompressedFileSizeA: Pointer;
  11798. function GetCompressedFileSizeA;
  11799. begin
  11800. GetProcedureAddress(_GetCompressedFileSizeA, kernel32, 'GetCompressedFileSizeA');
  11801. asm
  11802. MOV ESP, EBP
  11803. POP EBP
  11804. JMP [_GetCompressedFileSizeA]
  11805. end;
  11806. end;
  11807. var
  11808. _GetCompressedFileSizeW: Pointer;
  11809. function GetCompressedFileSizeW;
  11810. begin
  11811. GetProcedureAddress(_GetCompressedFileSizeW, kernel32, 'GetCompressedFileSizeW');
  11812. asm
  11813. MOV ESP, EBP
  11814. POP EBP
  11815. JMP [_GetCompressedFileSizeW]
  11816. end;
  11817. end;
  11818. var
  11819. _GetCompressedFileSize: Pointer;
  11820. function GetCompressedFileSize;
  11821. begin
  11822. GetProcedureAddress(_GetCompressedFileSize, kernel32, 'GetCompressedFileSize' + AWSuffix);
  11823. asm
  11824. MOV ESP, EBP
  11825. POP EBP
  11826. JMP [_GetCompressedFileSize]
  11827. end;
  11828. end;
  11829. var
  11830. _DeleteFileA: Pointer;
  11831. function DeleteFileA;
  11832. begin
  11833. GetProcedureAddress(_DeleteFileA, kernel32, 'DeleteFileA');
  11834. asm
  11835. MOV ESP, EBP
  11836. POP EBP
  11837. JMP [_DeleteFileA]
  11838. end;
  11839. end;
  11840. var
  11841. _DeleteFileW: Pointer;
  11842. function DeleteFileW;
  11843. begin
  11844. GetProcedureAddress(_DeleteFileW, kernel32, 'DeleteFileW');
  11845. asm
  11846. MOV ESP, EBP
  11847. POP EBP
  11848. JMP [_DeleteFileW]
  11849. end;
  11850. end;
  11851. var
  11852. _DeleteFile: Pointer;
  11853. function DeleteFile;
  11854. begin
  11855. GetProcedureAddress(_DeleteFile, kernel32, 'DeleteFile' + AWSuffix);
  11856. asm
  11857. MOV ESP, EBP
  11858. POP EBP
  11859. JMP [_DeleteFile]
  11860. end;
  11861. end;
  11862. var
  11863. _FindFirstFileExA: Pointer;
  11864. function FindFirstFileExA;
  11865. begin
  11866. GetProcedureAddress(_FindFirstFileExA, kernel32, 'FindFirstFileExA');
  11867. asm
  11868. MOV ESP, EBP
  11869. POP EBP
  11870. JMP [_FindFirstFileExA]
  11871. end;
  11872. end;
  11873. var
  11874. _FindFirstFileExW: Pointer;
  11875. function FindFirstFileExW;
  11876. begin
  11877. GetProcedureAddress(_FindFirstFileExW, kernel32, 'FindFirstFileExW');
  11878. asm
  11879. MOV ESP, EBP
  11880. POP EBP
  11881. JMP [_FindFirstFileExW]
  11882. end;
  11883. end;
  11884. var
  11885. _FindFirstFileEx: Pointer;
  11886. function FindFirstFileEx;
  11887. begin
  11888. GetProcedureAddress(_FindFirstFileEx, kernel32, 'FindFirstFileEx' + AWSuffix);
  11889. asm
  11890. MOV ESP, EBP
  11891. POP EBP
  11892. JMP [_FindFirstFileEx]
  11893. end;
  11894. end;
  11895. var
  11896. _FindFirstFileA: Pointer;
  11897. function FindFirstFileA;
  11898. begin
  11899. GetProcedureAddress(_FindFirstFileA, kernel32, 'FindFirstFileA');
  11900. asm
  11901. MOV ESP, EBP
  11902. POP EBP
  11903. JMP [_FindFirstFileA]
  11904. end;
  11905. end;
  11906. var
  11907. _FindFirstFileW: Pointer;
  11908. function FindFirstFileW;
  11909. begin
  11910. GetProcedureAddress(_FindFirstFileW, kernel32, 'FindFirstFileW');
  11911. asm
  11912. MOV ESP, EBP
  11913. POP EBP
  11914. JMP [_FindFirstFileW]
  11915. end;
  11916. end;
  11917. var
  11918. _FindFirstFile: Pointer;
  11919. function FindFirstFile;
  11920. begin
  11921. GetProcedureAddress(_FindFirstFile, kernel32, 'FindFirstFile' + AWSuffix);
  11922. asm
  11923. MOV ESP, EBP
  11924. POP EBP
  11925. JMP [_FindFirstFile]
  11926. end;
  11927. end;
  11928. var
  11929. _FindNextFileA: Pointer;
  11930. function FindNextFileA;
  11931. begin
  11932. GetProcedureAddress(_FindNextFileA, kernel32, 'FindNextFileA');
  11933. asm
  11934. MOV ESP, EBP
  11935. POP EBP
  11936. JMP [_FindNextFileA]
  11937. end;
  11938. end;
  11939. var
  11940. _FindNextFileW: Pointer;
  11941. function FindNextFileW;
  11942. begin
  11943. GetProcedureAddress(_FindNextFileW, kernel32, 'FindNextFileW');
  11944. asm
  11945. MOV ESP, EBP
  11946. POP EBP
  11947. JMP [_FindNextFileW]
  11948. end;
  11949. end;
  11950. var
  11951. _FindNextFile: Pointer;
  11952. function FindNextFile;
  11953. begin
  11954. GetProcedureAddress(_FindNextFile, kernel32, 'FindNextFile' + AWSuffix);
  11955. asm
  11956. MOV ESP, EBP
  11957. POP EBP
  11958. JMP [_FindNextFile]
  11959. end;
  11960. end;
  11961. var
  11962. _SearchPathA: Pointer;
  11963. function SearchPathA;
  11964. begin
  11965. GetProcedureAddress(_SearchPathA, kernel32, 'SearchPathA');
  11966. asm
  11967. MOV ESP, EBP
  11968. POP EBP
  11969. JMP [_SearchPathA]
  11970. end;
  11971. end;
  11972. var
  11973. _SearchPathW: Pointer;
  11974. function SearchPathW;
  11975. begin
  11976. GetProcedureAddress(_SearchPathW, kernel32, 'SearchPathW');
  11977. asm
  11978. MOV ESP, EBP
  11979. POP EBP
  11980. JMP [_SearchPathW]
  11981. end;
  11982. end;
  11983. var
  11984. _SearchPath: Pointer;
  11985. function SearchPath;
  11986. begin
  11987. GetProcedureAddress(_SearchPath, kernel32, 'SearchPath' + AWSuffix);
  11988. asm
  11989. MOV ESP, EBP
  11990. POP EBP
  11991. JMP [_SearchPath]
  11992. end;
  11993. end;
  11994. var
  11995. _CopyFileA: Pointer;
  11996. function CopyFileA;
  11997. begin
  11998. GetProcedureAddress(_CopyFileA, kernel32, 'CopyFileA');
  11999. asm
  12000. MOV ESP, EBP
  12001. POP EBP
  12002. JMP [_CopyFileA]
  12003. end;
  12004. end;
  12005. var
  12006. _CopyFileW: Pointer;
  12007. function CopyFileW;
  12008. begin
  12009. GetProcedureAddress(_CopyFileW, kernel32, 'CopyFileW');
  12010. asm
  12011. MOV ESP, EBP
  12012. POP EBP
  12013. JMP [_CopyFileW]
  12014. end;
  12015. end;
  12016. var
  12017. _CopyFile: Pointer;
  12018. function CopyFile;
  12019. begin
  12020. GetProcedureAddress(_CopyFile, kernel32, 'CopyFile' + AWSuffix);
  12021. asm
  12022. MOV ESP, EBP
  12023. POP EBP
  12024. JMP [_CopyFile]
  12025. end;
  12026. end;
  12027. var
  12028. _CopyFileExA: Pointer;
  12029. function CopyFileExA;
  12030. begin
  12031. GetProcedureAddress(_CopyFileExA, kernel32, 'CopyFileExA');
  12032. asm
  12033. MOV ESP, EBP
  12034. POP EBP
  12035. JMP [_CopyFileExA]
  12036. end;
  12037. end;
  12038. var
  12039. _CopyFileExW: Pointer;
  12040. function CopyFileExW;
  12041. begin
  12042. GetProcedureAddress(_CopyFileExW, kernel32, 'CopyFileExW');
  12043. asm
  12044. MOV ESP, EBP
  12045. POP EBP
  12046. JMP [_CopyFileExW]
  12047. end;
  12048. end;
  12049. var
  12050. _CopyFileEx: Pointer;
  12051. function CopyFileEx;
  12052. begin
  12053. GetProcedureAddress(_CopyFileEx, kernel32, 'CopyFileEx' + AWSuffix);
  12054. asm
  12055. MOV ESP, EBP
  12056. POP EBP
  12057. JMP [_CopyFileEx]
  12058. end;
  12059. end;
  12060. var
  12061. _MoveFileA: Pointer;
  12062. function MoveFileA;
  12063. begin
  12064. GetProcedureAddress(_MoveFileA, kernel32, 'MoveFileA');
  12065. asm
  12066. MOV ESP, EBP
  12067. POP EBP
  12068. JMP [_MoveFileA]
  12069. end;
  12070. end;
  12071. var
  12072. _MoveFileW: Pointer;
  12073. function MoveFileW;
  12074. begin
  12075. GetProcedureAddress(_MoveFileW, kernel32, 'MoveFileW');
  12076. asm
  12077. MOV ESP, EBP
  12078. POP EBP
  12079. JMP [_MoveFileW]
  12080. end;
  12081. end;
  12082. var
  12083. _MoveFile: Pointer;
  12084. function MoveFile;
  12085. begin
  12086. GetProcedureAddress(_MoveFile, kernel32, 'MoveFile' + AWSuffix);
  12087. asm
  12088. MOV ESP, EBP
  12089. POP EBP
  12090. JMP [_MoveFile]
  12091. end;
  12092. end;
  12093. var
  12094. _MoveFileExA: Pointer;
  12095. function MoveFileExA;
  12096. begin
  12097. GetProcedureAddress(_MoveFileExA, kernel32, 'MoveFileExA');
  12098. asm
  12099. MOV ESP, EBP
  12100. POP EBP
  12101. JMP [_MoveFileExA]
  12102. end;
  12103. end;
  12104. var
  12105. _MoveFileExW: Pointer;
  12106. function MoveFileExW;
  12107. begin
  12108. GetProcedureAddress(_MoveFileExW, kernel32, 'MoveFileExW');
  12109. asm
  12110. MOV ESP, EBP
  12111. POP EBP
  12112. JMP [_MoveFileExW]
  12113. end;
  12114. end;
  12115. var
  12116. _MoveFileEx: Pointer;
  12117. function MoveFileEx;
  12118. begin
  12119. GetProcedureAddress(_MoveFileEx, kernel32, 'MoveFileEx' + AWSuffix);
  12120. asm
  12121. MOV ESP, EBP
  12122. POP EBP
  12123. JMP [_MoveFileEx]
  12124. end;
  12125. end;
  12126. var
  12127. _MoveFileWithProgressA: Pointer;
  12128. function MoveFileWithProgressA;
  12129. begin
  12130. GetProcedureAddress(_MoveFileWithProgressA, kernel32, 'MoveFileWithProgressA');
  12131. asm
  12132. MOV ESP, EBP
  12133. POP EBP
  12134. JMP [_MoveFileWithProgressA]
  12135. end;
  12136. end;
  12137. var
  12138. _MoveFileWithProgressW: Pointer;
  12139. function MoveFileWithProgressW;
  12140. begin
  12141. GetProcedureAddress(_MoveFileWithProgressW, kernel32, 'MoveFileWithProgressW');
  12142. asm
  12143. MOV ESP, EBP
  12144. POP EBP
  12145. JMP [_MoveFileWithProgressW]
  12146. end;
  12147. end;
  12148. var
  12149. _MoveFileWithProgress: Pointer;
  12150. function MoveFileWithProgress;
  12151. begin
  12152. GetProcedureAddress(_MoveFileWithProgress, kernel32, 'MoveFileWithProgress' + AWSuffix);
  12153. asm
  12154. MOV ESP, EBP
  12155. POP EBP
  12156. JMP [_MoveFileWithProgress]
  12157. end;
  12158. end;
  12159. var
  12160. _ReplaceFileA: Pointer;
  12161. function ReplaceFileA;
  12162. begin
  12163. GetProcedureAddress(_ReplaceFileA, kernel32, 'ReplaceFileA');
  12164. asm
  12165. MOV ESP, EBP
  12166. POP EBP
  12167. JMP [_ReplaceFileA]
  12168. end;
  12169. end;
  12170. var
  12171. _ReplaceFileW: Pointer;
  12172. function ReplaceFileW;
  12173. begin
  12174. GetProcedureAddress(_ReplaceFileW, kernel32, 'ReplaceFileW');
  12175. asm
  12176. MOV ESP, EBP
  12177. POP EBP
  12178. JMP [_ReplaceFileW]
  12179. end;
  12180. end;
  12181. var
  12182. _ReplaceFile: Pointer;
  12183. function ReplaceFile;
  12184. begin
  12185. GetProcedureAddress(_ReplaceFile, kernel32, 'ReplaceFile' + AWSuffix);
  12186. asm
  12187. MOV ESP, EBP
  12188. POP EBP
  12189. JMP [_ReplaceFile]
  12190. end;
  12191. end;
  12192. var
  12193. _CreateHardLinkA: Pointer;
  12194. function CreateHardLinkA;
  12195. begin
  12196. GetProcedureAddress(_CreateHardLinkA, kernel32, 'CreateHardLinkA');
  12197. asm
  12198. MOV ESP, EBP
  12199. POP EBP
  12200. JMP [_CreateHardLinkA]
  12201. end;
  12202. end;
  12203. var
  12204. _CreateHardLinkW: Pointer;
  12205. function CreateHardLinkW;
  12206. begin
  12207. GetProcedureAddress(_CreateHardLinkW, kernel32, 'CreateHardLinkW');
  12208. asm
  12209. MOV ESP, EBP
  12210. POP EBP
  12211. JMP [_CreateHardLinkW]
  12212. end;
  12213. end;
  12214. var
  12215. _CreateHardLink: Pointer;
  12216. function CreateHardLink;
  12217. begin
  12218. GetProcedureAddress(_CreateHardLink, kernel32, 'CreateHardLink' + AWSuffix);
  12219. asm
  12220. MOV ESP, EBP
  12221. POP EBP
  12222. JMP [_CreateHardLink]
  12223. end;
  12224. end;
  12225. var
  12226. _FindFirstStreamW: Pointer;
  12227. function FindFirstStreamW;
  12228. begin
  12229. GetProcedureAddress(_FindFirstStreamW, kernel32, 'FindFirstStreamW');
  12230. asm
  12231. MOV ESP, EBP
  12232. POP EBP
  12233. JMP [_FindFirstStreamW]
  12234. end;
  12235. end;
  12236. var
  12237. _FindNextStreamW: Pointer;
  12238. function FindNextStreamW;
  12239. begin
  12240. GetProcedureAddress(_FindNextStreamW, kernel32, 'FindNextStreamW');
  12241. asm
  12242. MOV ESP, EBP
  12243. POP EBP
  12244. JMP [_FindNextStreamW]
  12245. end;
  12246. end;
  12247. var
  12248. _CreateNamedPipeA: Pointer;
  12249. function CreateNamedPipeA;
  12250. begin
  12251. GetProcedureAddress(_CreateNamedPipeA, kernel32, 'CreateNamedPipeA');
  12252. asm
  12253. MOV ESP, EBP
  12254. POP EBP
  12255. JMP [_CreateNamedPipeA]
  12256. end;
  12257. end;
  12258. var
  12259. _CreateNamedPipeW: Pointer;
  12260. function CreateNamedPipeW;
  12261. begin
  12262. GetProcedureAddress(_CreateNamedPipeW, kernel32, 'CreateNamedPipeW');
  12263. asm
  12264. MOV ESP, EBP
  12265. POP EBP
  12266. JMP [_CreateNamedPipeW]
  12267. end;
  12268. end;
  12269. var
  12270. _CreateNamedPipe: Pointer;
  12271. function CreateNamedPipe;
  12272. begin
  12273. GetProcedureAddress(_CreateNamedPipe, kernel32, 'CreateNamedPipe' + AWSuffix);
  12274. asm
  12275. MOV ESP, EBP
  12276. POP EBP
  12277. JMP [_CreateNamedPipe]
  12278. end;
  12279. end;
  12280. var
  12281. _GetNamedPipeHandleStateA: Pointer;
  12282. function GetNamedPipeHandleStateA;
  12283. begin
  12284. GetProcedureAddress(_GetNamedPipeHandleStateA, kernel32, 'GetNamedPipeHandleStateA');
  12285. asm
  12286. MOV ESP, EBP
  12287. POP EBP
  12288. JMP [_GetNamedPipeHandleStateA]
  12289. end;
  12290. end;
  12291. var
  12292. _GetNamedPipeHandleStateW: Pointer;
  12293. function GetNamedPipeHandleStateW;
  12294. begin
  12295. GetProcedureAddress(_GetNamedPipeHandleStateW, kernel32, 'GetNamedPipeHandleStateW');
  12296. asm
  12297. MOV ESP, EBP
  12298. POP EBP
  12299. JMP [_GetNamedPipeHandleStateW]
  12300. end;
  12301. end;
  12302. var
  12303. _GetNamedPipeHandleState: Pointer;
  12304. function GetNamedPipeHandleState;
  12305. begin
  12306. GetProcedureAddress(_GetNamedPipeHandleState, kernel32, 'GetNamedPipeHandleState' + AWSuffix);
  12307. asm
  12308. MOV ESP, EBP
  12309. POP EBP
  12310. JMP [_GetNamedPipeHandleState]
  12311. end;
  12312. end;
  12313. var
  12314. _CallNamedPipeA: Pointer;
  12315. function CallNamedPipeA;
  12316. begin
  12317. GetProcedureAddress(_CallNamedPipeA, kernel32, 'CallNamedPipeA');
  12318. asm
  12319. MOV ESP, EBP
  12320. POP EBP
  12321. JMP [_CallNamedPipeA]
  12322. end;
  12323. end;
  12324. var
  12325. _CallNamedPipeW: Pointer;
  12326. function CallNamedPipeW;
  12327. begin
  12328. GetProcedureAddress(_CallNamedPipeW, kernel32, 'CallNamedPipeW');
  12329. asm
  12330. MOV ESP, EBP
  12331. POP EBP
  12332. JMP [_CallNamedPipeW]
  12333. end;
  12334. end;
  12335. var
  12336. _CallNamedPipe: Pointer;
  12337. function CallNamedPipe;
  12338. begin
  12339. GetProcedureAddress(_CallNamedPipe, kernel32, 'CallNamedPipe' + AWSuffix);
  12340. asm
  12341. MOV ESP, EBP
  12342. POP EBP
  12343. JMP [_CallNamedPipe]
  12344. end;
  12345. end;
  12346. var
  12347. _WaitNamedPipeA: Pointer;
  12348. function WaitNamedPipeA;
  12349. begin
  12350. GetProcedureAddress(_WaitNamedPipeA, kernel32, 'WaitNamedPipeA');
  12351. asm
  12352. MOV ESP, EBP
  12353. POP EBP
  12354. JMP [_WaitNamedPipeA]
  12355. end;
  12356. end;
  12357. var
  12358. _WaitNamedPipeW: Pointer;
  12359. function WaitNamedPipeW;
  12360. begin
  12361. GetProcedureAddress(_WaitNamedPipeW, kernel32, 'WaitNamedPipeW');
  12362. asm
  12363. MOV ESP, EBP
  12364. POP EBP
  12365. JMP [_WaitNamedPipeW]
  12366. end;
  12367. end;
  12368. var
  12369. _WaitNamedPipe: Pointer;
  12370. function WaitNamedPipe;
  12371. begin
  12372. GetProcedureAddress(_WaitNamedPipe, kernel32, 'WaitNamedPipe' + AWSuffix);
  12373. asm
  12374. MOV ESP, EBP
  12375. POP EBP
  12376. JMP [_WaitNamedPipe]
  12377. end;
  12378. end;
  12379. var
  12380. _SetVolumeLabelA: Pointer;
  12381. function SetVolumeLabelA;
  12382. begin
  12383. GetProcedureAddress(_SetVolumeLabelA, kernel32, 'SetVolumeLabelA');
  12384. asm
  12385. MOV ESP, EBP
  12386. POP EBP
  12387. JMP [_SetVolumeLabelA]
  12388. end;
  12389. end;
  12390. var
  12391. _SetVolumeLabelW: Pointer;
  12392. function SetVolumeLabelW;
  12393. begin
  12394. GetProcedureAddress(_SetVolumeLabelW, kernel32, 'SetVolumeLabelW');
  12395. asm
  12396. MOV ESP, EBP
  12397. POP EBP
  12398. JMP [_SetVolumeLabelW]
  12399. end;
  12400. end;
  12401. var
  12402. _SetVolumeLabel: Pointer;
  12403. function SetVolumeLabel;
  12404. begin
  12405. GetProcedureAddress(_SetVolumeLabel, kernel32, 'SetVolumeLabel' + AWSuffix);
  12406. asm
  12407. MOV ESP, EBP
  12408. POP EBP
  12409. JMP [_SetVolumeLabel]
  12410. end;
  12411. end;
  12412. var
  12413. _SetFileApisToOEM: Pointer;
  12414. procedure SetFileApisToOEM;
  12415. begin
  12416. GetProcedureAddress(_SetFileApisToOEM, kernel32, 'SetFileApisToOEM');
  12417. asm
  12418. MOV ESP, EBP
  12419. POP EBP
  12420. JMP [_SetFileApisToOEM]
  12421. end;
  12422. end;
  12423. var
  12424. _SetFileApisToANSI: Pointer;
  12425. procedure SetFileApisToANSI;
  12426. begin
  12427. GetProcedureAddress(_SetFileApisToANSI, kernel32, 'SetFileApisToANSI');
  12428. asm
  12429. MOV ESP, EBP
  12430. POP EBP
  12431. JMP [_SetFileApisToANSI]
  12432. end;
  12433. end;
  12434. var
  12435. _AreFileApisANSI: Pointer;
  12436. function AreFileApisANSI;
  12437. begin
  12438. GetProcedureAddress(_AreFileApisANSI, kernel32, 'AreFileApisANSI');
  12439. asm
  12440. MOV ESP, EBP
  12441. POP EBP
  12442. JMP [_AreFileApisANSI]
  12443. end;
  12444. end;
  12445. var
  12446. _GetVolumeInformationA: Pointer;
  12447. function GetVolumeInformationA;
  12448. begin
  12449. GetProcedureAddress(_GetVolumeInformationA, kernel32, 'GetVolumeInformationA');
  12450. asm
  12451. MOV ESP, EBP
  12452. POP EBP
  12453. JMP [_GetVolumeInformationA]
  12454. end;
  12455. end;
  12456. var
  12457. _GetVolumeInformationW: Pointer;
  12458. function GetVolumeInformationW;
  12459. begin
  12460. GetProcedureAddress(_GetVolumeInformationW, kernel32, 'GetVolumeInformationW');
  12461. asm
  12462. MOV ESP, EBP
  12463. POP EBP
  12464. JMP [_GetVolumeInformationW]
  12465. end;
  12466. end;
  12467. var
  12468. _GetVolumeInformation: Pointer;
  12469. function GetVolumeInformation;
  12470. begin
  12471. GetProcedureAddress(_GetVolumeInformation, kernel32, 'GetVolumeInformation' + AWSuffix);
  12472. asm
  12473. MOV ESP, EBP
  12474. POP EBP
  12475. JMP [_GetVolumeInformation]
  12476. end;
  12477. end;
  12478. var
  12479. _CancelIo: Pointer;
  12480. function CancelIo;
  12481. begin
  12482. GetProcedureAddress(_CancelIo, kernel32, 'CancelIo');
  12483. asm
  12484. MOV ESP, EBP
  12485. POP EBP
  12486. JMP [_CancelIo]
  12487. end;
  12488. end;
  12489. var
  12490. _ClearEventLogA: Pointer;
  12491. function ClearEventLogA;
  12492. begin
  12493. GetProcedureAddress(_ClearEventLogA, advapi32, 'ClearEventLogA');
  12494. asm
  12495. MOV ESP, EBP
  12496. POP EBP
  12497. JMP [_ClearEventLogA]
  12498. end;
  12499. end;
  12500. var
  12501. _ClearEventLogW: Pointer;
  12502. function ClearEventLogW;
  12503. begin
  12504. GetProcedureAddress(_ClearEventLogW, advapi32, 'ClearEventLogW');
  12505. asm
  12506. MOV ESP, EBP
  12507. POP EBP
  12508. JMP [_ClearEventLogW]
  12509. end;
  12510. end;
  12511. var
  12512. _ClearEventLog: Pointer;
  12513. function ClearEventLog;
  12514. begin
  12515. GetProcedureAddress(_ClearEventLog, advapi32, 'ClearEventLog' + AWSuffix);
  12516. asm
  12517. MOV ESP, EBP
  12518. POP EBP
  12519. JMP [_ClearEventLog]
  12520. end;
  12521. end;
  12522. var
  12523. _BackupEventLogA: Pointer;
  12524. function BackupEventLogA;
  12525. begin
  12526. GetProcedureAddress(_BackupEventLogA, advapi32, 'BackupEventLogA');
  12527. asm
  12528. MOV ESP, EBP
  12529. POP EBP
  12530. JMP [_BackupEventLogA]
  12531. end;
  12532. end;
  12533. var
  12534. _BackupEventLogW: Pointer;
  12535. function BackupEventLogW;
  12536. begin
  12537. GetProcedureAddress(_BackupEventLogW, advapi32, 'BackupEventLogW');
  12538. asm
  12539. MOV ESP, EBP
  12540. POP EBP
  12541. JMP [_BackupEventLogW]
  12542. end;
  12543. end;
  12544. var
  12545. _BackupEventLog: Pointer;
  12546. function BackupEventLog;
  12547. begin
  12548. GetProcedureAddress(_BackupEventLog, advapi32, 'BackupEventLog' + AWSuffix);
  12549. asm
  12550. MOV ESP, EBP
  12551. POP EBP
  12552. JMP [_BackupEventLog]
  12553. end;
  12554. end;
  12555. var
  12556. _CloseEventLog: Pointer;
  12557. function CloseEventLog;
  12558. begin
  12559. GetProcedureAddress(_CloseEventLog, advapi32, 'CloseEventLog');
  12560. asm
  12561. MOV ESP, EBP
  12562. POP EBP
  12563. JMP [_CloseEventLog]
  12564. end;
  12565. end;
  12566. var
  12567. _DeregisterEventSource: Pointer;
  12568. function DeregisterEventSource;
  12569. begin
  12570. GetProcedureAddress(_DeregisterEventSource, advapi32, 'DeregisterEventSource');
  12571. asm
  12572. MOV ESP, EBP
  12573. POP EBP
  12574. JMP [_DeregisterEventSource]
  12575. end;
  12576. end;
  12577. var
  12578. _NotifyChangeEventLog: Pointer;
  12579. function NotifyChangeEventLog;
  12580. begin
  12581. GetProcedureAddress(_NotifyChangeEventLog, advapi32, 'NotifyChangeEventLog');
  12582. asm
  12583. MOV ESP, EBP
  12584. POP EBP
  12585. JMP [_NotifyChangeEventLog]
  12586. end;
  12587. end;
  12588. var
  12589. _GetNumberOfEventLogRecords: Pointer;
  12590. function GetNumberOfEventLogRecords;
  12591. begin
  12592. GetProcedureAddress(_GetNumberOfEventLogRecords, advapi32, 'GetNumberOfEventLogRecords');
  12593. asm
  12594. MOV ESP, EBP
  12595. POP EBP
  12596. JMP [_GetNumberOfEventLogRecords]
  12597. end;
  12598. end;
  12599. var
  12600. _GetOldestEventLogRecord: Pointer;
  12601. function GetOldestEventLogRecord;
  12602. begin
  12603. GetProcedureAddress(_GetOldestEventLogRecord, advapi32, 'GetOldestEventLogRecord');
  12604. asm
  12605. MOV ESP, EBP
  12606. POP EBP
  12607. JMP [_GetOldestEventLogRecord]
  12608. end;
  12609. end;
  12610. var
  12611. _OpenEventLogA: Pointer;
  12612. function OpenEventLogA;
  12613. begin
  12614. GetProcedureAddress(_OpenEventLogA, advapi32, 'OpenEventLogA');
  12615. asm
  12616. MOV ESP, EBP
  12617. POP EBP
  12618. JMP [_OpenEventLogA]
  12619. end;
  12620. end;
  12621. var
  12622. _OpenEventLogW: Pointer;
  12623. function OpenEventLogW;
  12624. begin
  12625. GetProcedureAddress(_OpenEventLogW, advapi32, 'OpenEventLogW');
  12626. asm
  12627. MOV ESP, EBP
  12628. POP EBP
  12629. JMP [_OpenEventLogW]
  12630. end;
  12631. end;
  12632. var
  12633. _OpenEventLog: Pointer;
  12634. function OpenEventLog;
  12635. begin
  12636. GetProcedureAddress(_OpenEventLog, advapi32, 'OpenEventLog' + AWSuffix);
  12637. asm
  12638. MOV ESP, EBP
  12639. POP EBP
  12640. JMP [_OpenEventLog]
  12641. end;
  12642. end;
  12643. var
  12644. _RegisterEventSourceA: Pointer;
  12645. function RegisterEventSourceA;
  12646. begin
  12647. GetProcedureAddress(_RegisterEventSourceA, advapi32, 'RegisterEventSourceA');
  12648. asm
  12649. MOV ESP, EBP
  12650. POP EBP
  12651. JMP [_RegisterEventSourceA]
  12652. end;
  12653. end;
  12654. var
  12655. _RegisterEventSourceW: Pointer;
  12656. function RegisterEventSourceW;
  12657. begin
  12658. GetProcedureAddress(_RegisterEventSourceW, advapi32, 'RegisterEventSourceW');
  12659. asm
  12660. MOV ESP, EBP
  12661. POP EBP
  12662. JMP [_RegisterEventSourceW]
  12663. end;
  12664. end;
  12665. var
  12666. _RegisterEventSource: Pointer;
  12667. function RegisterEventSource;
  12668. begin
  12669. GetProcedureAddress(_RegisterEventSource, advapi32, 'RegisterEventSource' + AWSuffix);
  12670. asm
  12671. MOV ESP, EBP
  12672. POP EBP
  12673. JMP [_RegisterEventSource]
  12674. end;
  12675. end;
  12676. var
  12677. _OpenBackupEventLogA: Pointer;
  12678. function OpenBackupEventLogA;
  12679. begin
  12680. GetProcedureAddress(_OpenBackupEventLogA, advapi32, 'OpenBackupEventLogA');
  12681. asm
  12682. MOV ESP, EBP
  12683. POP EBP
  12684. JMP [_OpenBackupEventLogA]
  12685. end;
  12686. end;
  12687. var
  12688. _OpenBackupEventLogW: Pointer;
  12689. function OpenBackupEventLogW;
  12690. begin
  12691. GetProcedureAddress(_OpenBackupEventLogW, advapi32, 'OpenBackupEventLogW');
  12692. asm
  12693. MOV ESP, EBP
  12694. POP EBP
  12695. JMP [_OpenBackupEventLogW]
  12696. end;
  12697. end;
  12698. var
  12699. _OpenBackupEventLog: Pointer;
  12700. function OpenBackupEventLog;
  12701. begin
  12702. GetProcedureAddress(_OpenBackupEventLog, advapi32, 'OpenBackupEventLog' + AWSuffix);
  12703. asm
  12704. MOV ESP, EBP
  12705. POP EBP
  12706. JMP [_OpenBackupEventLog]
  12707. end;
  12708. end;
  12709. var
  12710. _ReadEventLogA: Pointer;
  12711. function ReadEventLogA;
  12712. begin
  12713. GetProcedureAddress(_ReadEventLogA, advapi32, 'ReadEventLogA');
  12714. asm
  12715. MOV ESP, EBP
  12716. POP EBP
  12717. JMP [_ReadEventLogA]
  12718. end;
  12719. end;
  12720. var
  12721. _ReadEventLogW: Pointer;
  12722. function ReadEventLogW;
  12723. begin
  12724. GetProcedureAddress(_ReadEventLogW, advapi32, 'ReadEventLogW');
  12725. asm
  12726. MOV ESP, EBP
  12727. POP EBP
  12728. JMP [_ReadEventLogW]
  12729. end;
  12730. end;
  12731. var
  12732. _ReadEventLog: Pointer;
  12733. function ReadEventLog;
  12734. begin
  12735. GetProcedureAddress(_ReadEventLog, advapi32, 'ReadEventLog' + AWSuffix);
  12736. asm
  12737. MOV ESP, EBP
  12738. POP EBP
  12739. JMP [_ReadEventLog]
  12740. end;
  12741. end;
  12742. var
  12743. _ReportEventA: Pointer;
  12744. function ReportEventA;
  12745. begin
  12746. GetProcedureAddress(_ReportEventA, advapi32, 'ReportEventA');
  12747. asm
  12748. MOV ESP, EBP
  12749. POP EBP
  12750. JMP [_ReportEventA]
  12751. end;
  12752. end;
  12753. var
  12754. _ReportEventW: Pointer;
  12755. function ReportEventW;
  12756. begin
  12757. GetProcedureAddress(_ReportEventW, advapi32, 'ReportEventW');
  12758. asm
  12759. MOV ESP, EBP
  12760. POP EBP
  12761. JMP [_ReportEventW]
  12762. end;
  12763. end;
  12764. var
  12765. _ReportEvent: Pointer;
  12766. function ReportEvent;
  12767. begin
  12768. GetProcedureAddress(_ReportEvent, advapi32, 'ReportEvent' + AWSuffix);
  12769. asm
  12770. MOV ESP, EBP
  12771. POP EBP
  12772. JMP [_ReportEvent]
  12773. end;
  12774. end;
  12775. var
  12776. _GetEventLogInformation: Pointer;
  12777. function GetEventLogInformation;
  12778. begin
  12779. GetProcedureAddress(_GetEventLogInformation, advapi32, 'GetEventLogInformation');
  12780. asm
  12781. MOV ESP, EBP
  12782. POP EBP
  12783. JMP [_GetEventLogInformation]
  12784. end;
  12785. end;
  12786. var
  12787. _DuplicateToken: Pointer;
  12788. function DuplicateToken;
  12789. begin
  12790. GetProcedureAddress(_DuplicateToken, advapi32, 'DuplicateToken');
  12791. asm
  12792. MOV ESP, EBP
  12793. POP EBP
  12794. JMP [_DuplicateToken]
  12795. end;
  12796. end;
  12797. var
  12798. _GetKernelObjectSecurity: Pointer;
  12799. function GetKernelObjectSecurity;
  12800. begin
  12801. GetProcedureAddress(_GetKernelObjectSecurity, advapi32, 'GetKernelObjectSecurity');
  12802. asm
  12803. MOV ESP, EBP
  12804. POP EBP
  12805. JMP [_GetKernelObjectSecurity]
  12806. end;
  12807. end;
  12808. var
  12809. _ImpersonateNamedPipeClient: Pointer;
  12810. function ImpersonateNamedPipeClient;
  12811. begin
  12812. GetProcedureAddress(_ImpersonateNamedPipeClient, advapi32, 'ImpersonateNamedPipeClient');
  12813. asm
  12814. MOV ESP, EBP
  12815. POP EBP
  12816. JMP [_ImpersonateNamedPipeClient]
  12817. end;
  12818. end;
  12819. var
  12820. _ImpersonateSelf: Pointer;
  12821. function ImpersonateSelf;
  12822. begin
  12823. GetProcedureAddress(_ImpersonateSelf, advapi32, 'ImpersonateSelf');
  12824. asm
  12825. MOV ESP, EBP
  12826. POP EBP
  12827. JMP [_ImpersonateSelf]
  12828. end;
  12829. end;
  12830. var
  12831. _RevertToSelf: Pointer;
  12832. function RevertToSelf;
  12833. begin
  12834. GetProcedureAddress(_RevertToSelf, advapi32, 'RevertToSelf');
  12835. asm
  12836. MOV ESP, EBP
  12837. POP EBP
  12838. JMP [_RevertToSelf]
  12839. end;
  12840. end;
  12841. var
  12842. _SetThreadToken: Pointer;
  12843. function SetThreadToken;
  12844. begin
  12845. GetProcedureAddress(_SetThreadToken, advapi32, 'SetThreadToken');
  12846. asm
  12847. MOV ESP, EBP
  12848. POP EBP
  12849. JMP [_SetThreadToken]
  12850. end;
  12851. end;
  12852. var
  12853. _AccessCheck: Pointer;
  12854. function AccessCheck;
  12855. begin
  12856. GetProcedureAddress(_AccessCheck, advapi32, 'AccessCheck');
  12857. asm
  12858. MOV ESP, EBP
  12859. POP EBP
  12860. JMP [_AccessCheck]
  12861. end;
  12862. end;
  12863. var
  12864. _AccessCheckByType: Pointer;
  12865. function AccessCheckByType;
  12866. begin
  12867. GetProcedureAddress(_AccessCheckByType, advapi32, 'AccessCheckByType');
  12868. asm
  12869. MOV ESP, EBP
  12870. POP EBP
  12871. JMP [_AccessCheckByType]
  12872. end;
  12873. end;
  12874. var
  12875. _AccessCheckByTypeResultList: Pointer;
  12876. function AccessCheckByTypeResultList;
  12877. begin
  12878. GetProcedureAddress(_AccessCheckByTypeResultList, advapi32, 'AccessCheckByTypeResultList');
  12879. asm
  12880. MOV ESP, EBP
  12881. POP EBP
  12882. JMP [_AccessCheckByTypeResultList]
  12883. end;
  12884. end;
  12885. var
  12886. _OpenProcessToken: Pointer;
  12887. function OpenProcessToken;
  12888. begin
  12889. GetProcedureAddress(_OpenProcessToken, advapi32, 'OpenProcessToken');
  12890. asm
  12891. MOV ESP, EBP
  12892. POP EBP
  12893. JMP [_OpenProcessToken]
  12894. end;
  12895. end;
  12896. var
  12897. _OpenThreadToken: Pointer;
  12898. function OpenThreadToken;
  12899. begin
  12900. GetProcedureAddress(_OpenThreadToken, advapi32, 'OpenThreadToken');
  12901. asm
  12902. MOV ESP, EBP
  12903. POP EBP
  12904. JMP [_OpenThreadToken]
  12905. end;
  12906. end;
  12907. var
  12908. _GetTokenInformation: Pointer;
  12909. function GetTokenInformation;
  12910. begin
  12911. GetProcedureAddress(_GetTokenInformation, advapi32, 'GetTokenInformation');
  12912. asm
  12913. MOV ESP, EBP
  12914. POP EBP
  12915. JMP [_GetTokenInformation]
  12916. end;
  12917. end;
  12918. var
  12919. _SetTokenInformation: Pointer;
  12920. function SetTokenInformation;
  12921. begin
  12922. GetProcedureAddress(_SetTokenInformation, advapi32, 'SetTokenInformation');
  12923. asm
  12924. MOV ESP, EBP
  12925. POP EBP
  12926. JMP [_SetTokenInformation]
  12927. end;
  12928. end;
  12929. var
  12930. _AdjustTokenPrivileges: Pointer;
  12931. function AdjustTokenPrivileges;
  12932. begin
  12933. GetProcedureAddress(_AdjustTokenPrivileges, advapi32, 'AdjustTokenPrivileges');
  12934. asm
  12935. MOV ESP, EBP
  12936. POP EBP
  12937. JMP [_AdjustTokenPrivileges]
  12938. end;
  12939. end;
  12940. var
  12941. _AdjustTokenGroups: Pointer;
  12942. function AdjustTokenGroups;
  12943. begin
  12944. GetProcedureAddress(_AdjustTokenGroups, advapi32, 'AdjustTokenGroups');
  12945. asm
  12946. MOV ESP, EBP
  12947. POP EBP
  12948. JMP [_AdjustTokenGroups]
  12949. end;
  12950. end;
  12951. var
  12952. _PrivilegeCheck: Pointer;
  12953. function PrivilegeCheck;
  12954. begin
  12955. GetProcedureAddress(_PrivilegeCheck, advapi32, 'PrivilegeCheck');
  12956. asm
  12957. MOV ESP, EBP
  12958. POP EBP
  12959. JMP [_PrivilegeCheck]
  12960. end;
  12961. end;
  12962. var
  12963. _AccessCheckAndAuditAlarmA: Pointer;
  12964. function AccessCheckAndAuditAlarmA;
  12965. begin
  12966. GetProcedureAddress(_AccessCheckAndAuditAlarmA, advapi32, 'AccessCheckAndAuditAlarmA');
  12967. asm
  12968. MOV ESP, EBP
  12969. POP EBP
  12970. JMP [_AccessCheckAndAuditAlarmA]
  12971. end;
  12972. end;
  12973. var
  12974. _AccessCheckAndAuditAlarmW: Pointer;
  12975. function AccessCheckAndAuditAlarmW;
  12976. begin
  12977. GetProcedureAddress(_AccessCheckAndAuditAlarmW, advapi32, 'AccessCheckAndAuditAlarmW');
  12978. asm
  12979. MOV ESP, EBP
  12980. POP EBP
  12981. JMP [_AccessCheckAndAuditAlarmW]
  12982. end;
  12983. end;
  12984. var
  12985. _AccessCheckAndAuditAlarm: Pointer;
  12986. function AccessCheckAndAuditAlarm;
  12987. begin
  12988. GetProcedureAddress(_AccessCheckAndAuditAlarm, advapi32, 'AccessCheckAndAuditAlarm' + AWSuffix);
  12989. asm
  12990. MOV ESP, EBP
  12991. POP EBP
  12992. JMP [_AccessCheckAndAuditAlarm]
  12993. end;
  12994. end;
  12995. var
  12996. _AccessCheckByTypeAndAuditAlarmA: Pointer;
  12997. function AccessCheckByTypeAndAuditAlarmA;
  12998. begin
  12999. GetProcedureAddress(_AccessCheckByTypeAndAuditAlarmA, advapi32, 'AccessCheckByTypeAndAuditAlarmA');
  13000. asm
  13001. MOV ESP, EBP
  13002. POP EBP
  13003. JMP [_AccessCheckByTypeAndAuditAlarmA]
  13004. end;
  13005. end;
  13006. var
  13007. _AccessCheckByTypeAndAuditAlarmW: Pointer;
  13008. function AccessCheckByTypeAndAuditAlarmW;
  13009. begin
  13010. GetProcedureAddress(_AccessCheckByTypeAndAuditAlarmW, advapi32, 'AccessCheckByTypeAndAuditAlarmW');
  13011. asm
  13012. MOV ESP, EBP
  13013. POP EBP
  13014. JMP [_AccessCheckByTypeAndAuditAlarmW]
  13015. end;
  13016. end;
  13017. var
  13018. _AccessCheckByTypeAndAuditAlarm: Pointer;
  13019. function AccessCheckByTypeAndAuditAlarm;
  13020. begin
  13021. GetProcedureAddress(_AccessCheckByTypeAndAuditAlarm, advapi32, 'AccessCheckByTypeAndAuditAlarm' + AWSuffix);
  13022. asm
  13023. MOV ESP, EBP
  13024. POP EBP
  13025. JMP [_AccessCheckByTypeAndAuditAlarm]
  13026. end;
  13027. end;
  13028. var
  13029. _AccessCheckByTypeResultListAndA: Pointer;
  13030. function AccessCheckByTypeResultListAndAuditAlarmA;
  13031. begin
  13032. GetProcedureAddress(_AccessCheckByTypeResultListAndA, advapi32, 'AccessCheckByTypeResultListAndAuditAlarmA');
  13033. asm
  13034. MOV ESP, EBP
  13035. POP EBP
  13036. JMP [_AccessCheckByTypeResultListAndA]
  13037. end;
  13038. end;
  13039. var
  13040. _AccessCheckByTypeResultListAndW: Pointer;
  13041. function AccessCheckByTypeResultListAndAuditAlarmW;
  13042. begin
  13043. GetProcedureAddress(_AccessCheckByTypeResultListAndW, advapi32, 'AccessCheckByTypeResultListAndAuditAlarmW');
  13044. asm
  13045. MOV ESP, EBP
  13046. POP EBP
  13047. JMP [_AccessCheckByTypeResultListAndW]
  13048. end;
  13049. end;
  13050. var
  13051. _AccessCheckByTypeResultListAnd: Pointer;
  13052. function AccessCheckByTypeResultListAndAuditAlarm;
  13053. begin
  13054. GetProcedureAddress(_AccessCheckByTypeResultListAnd, advapi32, 'AccessCheckByTypeResultListAndAuditAlarm' + AWSuffix);
  13055. asm
  13056. MOV ESP, EBP
  13057. POP EBP
  13058. JMP [_AccessCheckByTypeResultListAnd]
  13059. end;
  13060. end;
  13061. var
  13062. _AccessCheckByTRLAndAAByHA: Pointer;
  13063. function AccessCheckByTypeResultListAndAuditAlarmByHandleA;
  13064. begin
  13065. GetProcedureAddress(_AccessCheckByTRLAndAAByHA, advapi32, 'AccessCheckByTypeResultListAndAuditAlarmByHandleA');
  13066. asm
  13067. MOV ESP, EBP
  13068. POP EBP
  13069. JMP [_AccessCheckByTRLAndAAByHA]
  13070. end;
  13071. end;
  13072. var
  13073. _AccessCheckByTRLAndAAByHW: Pointer;
  13074. function AccessCheckByTypeResultListAndAuditAlarmByHandleW;
  13075. begin
  13076. GetProcedureAddress(_AccessCheckByTRLAndAAByHW, advapi32, 'AccessCheckByTypeResultListAndAuditAlarmByHandleW');
  13077. asm
  13078. MOV ESP, EBP
  13079. POP EBP
  13080. JMP [_AccessCheckByTRLAndAAByHW]
  13081. end;
  13082. end;
  13083. var
  13084. _AccessCheckByTRLAndAAByH: Pointer;
  13085. function AccessCheckByTypeResultListAndAuditAlarmByHandle;
  13086. begin
  13087. GetProcedureAddress(_AccessCheckByTRLAndAAByH, advapi32, 'AccessCheckByTypeResultListAndAuditAlarmByHandle' + AWSuffix);
  13088. asm
  13089. MOV ESP, EBP
  13090. POP EBP
  13091. JMP [_AccessCheckByTRLAndAAByH]
  13092. end;
  13093. end;
  13094. var
  13095. _ObjectOpenAuditAlarmA: Pointer;
  13096. function ObjectOpenAuditAlarmA;
  13097. begin
  13098. GetProcedureAddress(_ObjectOpenAuditAlarmA, advapi32, 'ObjectOpenAuditAlarmA');
  13099. asm
  13100. MOV ESP, EBP
  13101. POP EBP
  13102. JMP [_ObjectOpenAuditAlarmA]
  13103. end;
  13104. end;
  13105. var
  13106. _ObjectOpenAuditAlarmW: Pointer;
  13107. function ObjectOpenAuditAlarmW;
  13108. begin
  13109. GetProcedureAddress(_ObjectOpenAuditAlarmW, advapi32, 'ObjectOpenAuditAlarmW');
  13110. asm
  13111. MOV ESP, EBP
  13112. POP EBP
  13113. JMP [_ObjectOpenAuditAlarmW]
  13114. end;
  13115. end;
  13116. var
  13117. _ObjectOpenAuditAlarm: Pointer;
  13118. function ObjectOpenAuditAlarm;
  13119. begin
  13120. GetProcedureAddress(_ObjectOpenAuditAlarm, advapi32, 'ObjectOpenAuditAlarm' + AWSuffix);
  13121. asm
  13122. MOV ESP, EBP
  13123. POP EBP
  13124. JMP [_ObjectOpenAuditAlarm]
  13125. end;
  13126. end;
  13127. var
  13128. _ObjectPrivilegeAuditAlarmA: Pointer;
  13129. function ObjectPrivilegeAuditAlarmA;
  13130. begin
  13131. GetProcedureAddress(_ObjectPrivilegeAuditAlarmA, advapi32, 'ObjectPrivilegeAuditAlarmA');
  13132. asm
  13133. MOV ESP, EBP
  13134. POP EBP
  13135. JMP [_ObjectPrivilegeAuditAlarmA]
  13136. end;
  13137. end;
  13138. var
  13139. _ObjectPrivilegeAuditAlarmW: Pointer;
  13140. function ObjectPrivilegeAuditAlarmW;
  13141. begin
  13142. GetProcedureAddress(_ObjectPrivilegeAuditAlarmW, advapi32, 'ObjectPrivilegeAuditAlarmW');
  13143. asm
  13144. MOV ESP, EBP
  13145. POP EBP
  13146. JMP [_ObjectPrivilegeAuditAlarmW]
  13147. end;
  13148. end;
  13149. var
  13150. _ObjectPrivilegeAuditAlarm: Pointer;
  13151. function ObjectPrivilegeAuditAlarm;
  13152. begin
  13153. GetProcedureAddress(_ObjectPrivilegeAuditAlarm, advapi32, 'ObjectPrivilegeAuditAlarm' + AWSuffix);
  13154. asm
  13155. MOV ESP, EBP
  13156. POP EBP
  13157. JMP [_ObjectPrivilegeAuditAlarm]
  13158. end;
  13159. end;
  13160. var
  13161. _ObjectCloseAuditAlarmA: Pointer;
  13162. function ObjectCloseAuditAlarmA;
  13163. begin
  13164. GetProcedureAddress(_ObjectCloseAuditAlarmA, advapi32, 'ObjectCloseAuditAlarmA');
  13165. asm
  13166. MOV ESP, EBP
  13167. POP EBP
  13168. JMP [_ObjectCloseAuditAlarmA]
  13169. end;
  13170. end;
  13171. var
  13172. _ObjectCloseAuditAlarmW: Pointer;
  13173. function ObjectCloseAuditAlarmW;
  13174. begin
  13175. GetProcedureAddress(_ObjectCloseAuditAlarmW, advapi32, 'ObjectCloseAuditAlarmW');
  13176. asm
  13177. MOV ESP, EBP
  13178. POP EBP
  13179. JMP [_ObjectCloseAuditAlarmW]
  13180. end;
  13181. end;
  13182. var
  13183. _ObjectCloseAuditAlarm: Pointer;
  13184. function ObjectCloseAuditAlarm;
  13185. begin
  13186. GetProcedureAddress(_ObjectCloseAuditAlarm, advapi32, 'ObjectCloseAuditAlarm' + AWSuffix);
  13187. asm
  13188. MOV ESP, EBP
  13189. POP EBP
  13190. JMP [_ObjectCloseAuditAlarm]
  13191. end;
  13192. end;
  13193. var
  13194. _ObjectDeleteAuditAlarmA: Pointer;
  13195. function ObjectDeleteAuditAlarmA;
  13196. begin
  13197. GetProcedureAddress(_ObjectDeleteAuditAlarmA, advapi32, 'ObjectDeleteAuditAlarmA');
  13198. asm
  13199. MOV ESP, EBP
  13200. POP EBP
  13201. JMP [_ObjectDeleteAuditAlarmA]
  13202. end;
  13203. end;
  13204. var
  13205. _ObjectDeleteAuditAlarmW: Pointer;
  13206. function ObjectDeleteAuditAlarmW;
  13207. begin
  13208. GetProcedureAddress(_ObjectDeleteAuditAlarmW, advapi32, 'ObjectDeleteAuditAlarmW');
  13209. asm
  13210. MOV ESP, EBP
  13211. POP EBP
  13212. JMP [_ObjectDeleteAuditAlarmW]
  13213. end;
  13214. end;
  13215. var
  13216. _ObjectDeleteAuditAlarm: Pointer;
  13217. function ObjectDeleteAuditAlarm;
  13218. begin
  13219. GetProcedureAddress(_ObjectDeleteAuditAlarm, advapi32, 'ObjectDeleteAuditAlarm' + AWSuffix);
  13220. asm
  13221. MOV ESP, EBP
  13222. POP EBP
  13223. JMP [_ObjectDeleteAuditAlarm]
  13224. end;
  13225. end;
  13226. var
  13227. _PrivilegedServiceAuditAlarmA: Pointer;
  13228. function PrivilegedServiceAuditAlarmA;
  13229. begin
  13230. GetProcedureAddress(_PrivilegedServiceAuditAlarmA, advapi32, 'PrivilegedServiceAuditAlarmA');
  13231. asm
  13232. MOV ESP, EBP
  13233. POP EBP
  13234. JMP [_PrivilegedServiceAuditAlarmA]
  13235. end;
  13236. end;
  13237. var
  13238. _PrivilegedServiceAuditAlarmW: Pointer;
  13239. function PrivilegedServiceAuditAlarmW;
  13240. begin
  13241. GetProcedureAddress(_PrivilegedServiceAuditAlarmW, advapi32, 'PrivilegedServiceAuditAlarmW');
  13242. asm
  13243. MOV ESP, EBP
  13244. POP EBP
  13245. JMP [_PrivilegedServiceAuditAlarmW]
  13246. end;
  13247. end;
  13248. var
  13249. _PrivilegedServiceAuditAlarm: Pointer;
  13250. function PrivilegedServiceAuditAlarm;
  13251. begin
  13252. GetProcedureAddress(_PrivilegedServiceAuditAlarm, advapi32, 'PrivilegedServiceAuditAlarm' + AWSuffix);
  13253. asm
  13254. MOV ESP, EBP
  13255. POP EBP
  13256. JMP [_PrivilegedServiceAuditAlarm]
  13257. end;
  13258. end;
  13259. var
  13260. _IsWellKnownSid: Pointer;
  13261. function IsWellKnownSid;
  13262. begin
  13263. GetProcedureAddress(_IsWellKnownSid, advapi32, 'IsWellKnownSid');
  13264. asm
  13265. MOV ESP, EBP
  13266. POP EBP
  13267. JMP [_IsWellKnownSid]
  13268. end;
  13269. end;
  13270. var
  13271. _CreateWellKnownSid: Pointer;
  13272. function CreateWellKnownSid;
  13273. begin
  13274. GetProcedureAddress(_CreateWellKnownSid, advapi32, 'CreateWellKnownSid');
  13275. asm
  13276. MOV ESP, EBP
  13277. POP EBP
  13278. JMP [_CreateWellKnownSid]
  13279. end;
  13280. end;
  13281. var
  13282. _EqualDomainSid: Pointer;
  13283. function EqualDomainSid;
  13284. begin
  13285. GetProcedureAddress(_EqualDomainSid, advapi32, 'EqualDomainSid');
  13286. asm
  13287. MOV ESP, EBP
  13288. POP EBP
  13289. JMP [_EqualDomainSid]
  13290. end;
  13291. end;
  13292. var
  13293. _GetWindowsAccountDomainSid: Pointer;
  13294. function GetWindowsAccountDomainSid;
  13295. begin
  13296. GetProcedureAddress(_GetWindowsAccountDomainSid, advapi32, 'GetWindowsAccountDomainSid');
  13297. asm
  13298. MOV ESP, EBP
  13299. POP EBP
  13300. JMP [_GetWindowsAccountDomainSid]
  13301. end;
  13302. end;
  13303. var
  13304. _IsValidSid: Pointer;
  13305. function IsValidSid;
  13306. begin
  13307. GetProcedureAddress(_IsValidSid, advapi32, 'IsValidSid');
  13308. asm
  13309. MOV ESP, EBP
  13310. POP EBP
  13311. JMP [_IsValidSid]
  13312. end;
  13313. end;
  13314. var
  13315. _EqualSid: Pointer;
  13316. function EqualSid;
  13317. begin
  13318. GetProcedureAddress(_EqualSid, advapi32, 'EqualSid');
  13319. asm
  13320. MOV ESP, EBP
  13321. POP EBP
  13322. JMP [_EqualSid]
  13323. end;
  13324. end;
  13325. var
  13326. _EqualPrefixSid: Pointer;
  13327. function EqualPrefixSid;
  13328. begin
  13329. GetProcedureAddress(_EqualPrefixSid, advapi32, 'EqualPrefixSid');
  13330. asm
  13331. MOV ESP, EBP
  13332. POP EBP
  13333. JMP [_EqualPrefixSid]
  13334. end;
  13335. end;
  13336. var
  13337. _GetSidLengthRequired: Pointer;
  13338. function GetSidLengthRequired;
  13339. begin
  13340. GetProcedureAddress(_GetSidLengthRequired, advapi32, 'GetSidLengthRequired');
  13341. asm
  13342. MOV ESP, EBP
  13343. POP EBP
  13344. JMP [_GetSidLengthRequired]
  13345. end;
  13346. end;
  13347. var
  13348. _AllocateAndInitializeSid: Pointer;
  13349. function AllocateAndInitializeSid;
  13350. begin
  13351. GetProcedureAddress(_AllocateAndInitializeSid, advapi32, 'AllocateAndInitializeSid');
  13352. asm
  13353. MOV ESP, EBP
  13354. POP EBP
  13355. JMP [_AllocateAndInitializeSid]
  13356. end;
  13357. end;
  13358. var
  13359. _FreeSid: Pointer;
  13360. function FreeSid;
  13361. begin
  13362. GetProcedureAddress(_FreeSid, advapi32, 'FreeSid');
  13363. asm
  13364. MOV ESP, EBP
  13365. POP EBP
  13366. JMP [_FreeSid]
  13367. end;
  13368. end;
  13369. var
  13370. _InitializeSid: Pointer;
  13371. function InitializeSid;
  13372. begin
  13373. GetProcedureAddress(_InitializeSid, advapi32, 'InitializeSid');
  13374. asm
  13375. MOV ESP, EBP
  13376. POP EBP
  13377. JMP [_InitializeSid]
  13378. end;
  13379. end;
  13380. var
  13381. _GetSidIdentifierAuthority: Pointer;
  13382. function GetSidIdentifierAuthority;
  13383. begin
  13384. GetProcedureAddress(_GetSidIdentifierAuthority, advapi32, 'GetSidIdentifierAuthority');
  13385. asm
  13386. MOV ESP, EBP
  13387. POP EBP
  13388. JMP [_GetSidIdentifierAuthority]
  13389. end;
  13390. end;
  13391. var
  13392. _GetSidSubAuthority: Pointer;
  13393. function GetSidSubAuthority;
  13394. begin
  13395. GetProcedureAddress(_GetSidSubAuthority, advapi32, 'GetSidSubAuthority');
  13396. asm
  13397. MOV ESP, EBP
  13398. POP EBP
  13399. JMP [_GetSidSubAuthority]
  13400. end;
  13401. end;
  13402. var
  13403. _GetSidSubAuthorityCount: Pointer;
  13404. function GetSidSubAuthorityCount;
  13405. begin
  13406. GetProcedureAddress(_GetSidSubAuthorityCount, advapi32, 'GetSidSubAuthorityCount');
  13407. asm
  13408. MOV ESP, EBP
  13409. POP EBP
  13410. JMP [_GetSidSubAuthorityCount]
  13411. end;
  13412. end;
  13413. var
  13414. _GetLengthSid: Pointer;
  13415. function GetLengthSid;
  13416. begin
  13417. GetProcedureAddress(_GetLengthSid, advapi32, 'GetLengthSid');
  13418. asm
  13419. MOV ESP, EBP
  13420. POP EBP
  13421. JMP [_GetLengthSid]
  13422. end;
  13423. end;
  13424. var
  13425. _CopySid: Pointer;
  13426. function CopySid;
  13427. begin
  13428. GetProcedureAddress(_CopySid, advapi32, 'CopySid');
  13429. asm
  13430. MOV ESP, EBP
  13431. POP EBP
  13432. JMP [_CopySid]
  13433. end;
  13434. end;
  13435. var
  13436. _AreAllAccessesGranted: Pointer;
  13437. function AreAllAccessesGranted;
  13438. begin
  13439. GetProcedureAddress(_AreAllAccessesGranted, advapi32, 'AreAllAccessesGranted');
  13440. asm
  13441. MOV ESP, EBP
  13442. POP EBP
  13443. JMP [_AreAllAccessesGranted]
  13444. end;
  13445. end;
  13446. var
  13447. _AreAnyAccessesGranted: Pointer;
  13448. function AreAnyAccessesGranted;
  13449. begin
  13450. GetProcedureAddress(_AreAnyAccessesGranted, advapi32, 'AreAnyAccessesGranted');
  13451. asm
  13452. MOV ESP, EBP
  13453. POP EBP
  13454. JMP [_AreAnyAccessesGranted]
  13455. end;
  13456. end;
  13457. var
  13458. _MapGenericMask: Pointer;
  13459. procedure MapGenericMask;
  13460. begin
  13461. GetProcedureAddress(_MapGenericMask, advapi32, 'MapGenericMask');
  13462. asm
  13463. MOV ESP, EBP
  13464. POP EBP
  13465. JMP [_MapGenericMask]
  13466. end;
  13467. end;
  13468. var
  13469. _IsValidAcl: Pointer;
  13470. function IsValidAcl;
  13471. begin
  13472. GetProcedureAddress(_IsValidAcl, advapi32, 'IsValidAcl');
  13473. asm
  13474. MOV ESP, EBP
  13475. POP EBP
  13476. JMP [_IsValidAcl]
  13477. end;
  13478. end;
  13479. var
  13480. _InitializeAcl: Pointer;
  13481. function InitializeAcl;
  13482. begin
  13483. GetProcedureAddress(_InitializeAcl, advapi32, 'InitializeAcl');
  13484. asm
  13485. MOV ESP, EBP
  13486. POP EBP
  13487. JMP [_InitializeAcl]
  13488. end;
  13489. end;
  13490. var
  13491. _GetAclInformation: Pointer;
  13492. function GetAclInformation;
  13493. begin
  13494. GetProcedureAddress(_GetAclInformation, advapi32, 'GetAclInformation');
  13495. asm
  13496. MOV ESP, EBP
  13497. POP EBP
  13498. JMP [_GetAclInformation]
  13499. end;
  13500. end;
  13501. var
  13502. _SetAclInformation: Pointer;
  13503. function SetAclInformation;
  13504. begin
  13505. GetProcedureAddress(_SetAclInformation, advapi32, 'SetAclInformation');
  13506. asm
  13507. MOV ESP, EBP
  13508. POP EBP
  13509. JMP [_SetAclInformation]
  13510. end;
  13511. end;
  13512. var
  13513. _AddAce: Pointer;
  13514. function AddAce;
  13515. begin
  13516. GetProcedureAddress(_AddAce, advapi32, 'AddAce');
  13517. asm
  13518. MOV ESP, EBP
  13519. POP EBP
  13520. JMP [_AddAce]
  13521. end;
  13522. end;
  13523. var
  13524. _DeleteAce: Pointer;
  13525. function DeleteAce;
  13526. begin
  13527. GetProcedureAddress(_DeleteAce, advapi32, 'DeleteAce');
  13528. asm
  13529. MOV ESP, EBP
  13530. POP EBP
  13531. JMP [_DeleteAce]
  13532. end;
  13533. end;
  13534. var
  13535. _GetAce: Pointer;
  13536. function GetAce;
  13537. begin
  13538. GetProcedureAddress(_GetAce, advapi32, 'GetAce');
  13539. asm
  13540. MOV ESP, EBP
  13541. POP EBP
  13542. JMP [_GetAce]
  13543. end;
  13544. end;
  13545. var
  13546. _AddAccessAllowedAce: Pointer;
  13547. function AddAccessAllowedAce;
  13548. begin
  13549. GetProcedureAddress(_AddAccessAllowedAce, advapi32, 'AddAccessAllowedAce');
  13550. asm
  13551. MOV ESP, EBP
  13552. POP EBP
  13553. JMP [_AddAccessAllowedAce]
  13554. end;
  13555. end;
  13556. var
  13557. _AddAccessAllowedAceEx: Pointer;
  13558. function AddAccessAllowedAceEx;
  13559. begin
  13560. GetProcedureAddress(_AddAccessAllowedAceEx, advapi32, 'AddAccessAllowedAceEx');
  13561. asm
  13562. MOV ESP, EBP
  13563. POP EBP
  13564. JMP [_AddAccessAllowedAceEx]
  13565. end;
  13566. end;
  13567. var
  13568. _AddAccessDeniedAce: Pointer;
  13569. function AddAccessDeniedAce;
  13570. begin
  13571. GetProcedureAddress(_AddAccessDeniedAce, advapi32, 'AddAccessDeniedAce');
  13572. asm
  13573. MOV ESP, EBP
  13574. POP EBP
  13575. JMP [_AddAccessDeniedAce]
  13576. end;
  13577. end;
  13578. var
  13579. _AddAccessDeniedAceEx: Pointer;
  13580. function AddAccessDeniedAceEx;
  13581. begin
  13582. GetProcedureAddress(_AddAccessDeniedAceEx, advapi32, 'AddAccessDeniedAceEx');
  13583. asm
  13584. MOV ESP, EBP
  13585. POP EBP
  13586. JMP [_AddAccessDeniedAceEx]
  13587. end;
  13588. end;
  13589. var
  13590. _AddAuditAccessAce: Pointer;
  13591. function AddAuditAccessAce;
  13592. begin
  13593. GetProcedureAddress(_AddAuditAccessAce, advapi32, 'AddAuditAccessAce');
  13594. asm
  13595. MOV ESP, EBP
  13596. POP EBP
  13597. JMP [_AddAuditAccessAce]
  13598. end;
  13599. end;
  13600. var
  13601. _AddAuditAccessAceEx: Pointer;
  13602. function AddAuditAccessAceEx;
  13603. begin
  13604. GetProcedureAddress(_AddAuditAccessAceEx, advapi32, 'AddAuditAccessAceEx');
  13605. asm
  13606. MOV ESP, EBP
  13607. POP EBP
  13608. JMP [_AddAuditAccessAceEx]
  13609. end;
  13610. end;
  13611. var
  13612. _AddAccessAllowedObjectAce: Pointer;
  13613. function AddAccessAllowedObjectAce;
  13614. begin
  13615. GetProcedureAddress(_AddAccessAllowedObjectAce, advapi32, 'AddAccessAllowedObjectAce');
  13616. asm
  13617. MOV ESP, EBP
  13618. POP EBP
  13619. JMP [_AddAccessAllowedObjectAce]
  13620. end;
  13621. end;
  13622. var
  13623. _AddAccessDeniedObjectAce: Pointer;
  13624. function AddAccessDeniedObjectAce;
  13625. begin
  13626. GetProcedureAddress(_AddAccessDeniedObjectAce, advapi32, 'AddAccessDeniedObjectAce');
  13627. asm
  13628. MOV ESP, EBP
  13629. POP EBP
  13630. JMP [_AddAccessDeniedObjectAce]
  13631. end;
  13632. end;
  13633. var
  13634. _AddAuditAccessObjectAce: Pointer;
  13635. function AddAuditAccessObjectAce;
  13636. begin
  13637. GetProcedureAddress(_AddAuditAccessObjectAce, advapi32, 'AddAuditAccessObjectAce');
  13638. asm
  13639. MOV ESP, EBP
  13640. POP EBP
  13641. JMP [_AddAuditAccessObjectAce]
  13642. end;
  13643. end;
  13644. var
  13645. _FindFirstFreeAce: Pointer;
  13646. function FindFirstFreeAce;
  13647. begin
  13648. GetProcedureAddress(_FindFirstFreeAce, advapi32, 'FindFirstFreeAce');
  13649. asm
  13650. MOV ESP, EBP
  13651. POP EBP
  13652. JMP [_FindFirstFreeAce]
  13653. end;
  13654. end;
  13655. var
  13656. _InitializeSecurityDescriptor: Pointer;
  13657. function InitializeSecurityDescriptor;
  13658. begin
  13659. GetProcedureAddress(_InitializeSecurityDescriptor, advapi32, 'InitializeSecurityDescriptor');
  13660. asm
  13661. MOV ESP, EBP
  13662. POP EBP
  13663. JMP [_InitializeSecurityDescriptor]
  13664. end;
  13665. end;
  13666. var
  13667. _IsValidSecurityDescriptor: Pointer;
  13668. function IsValidSecurityDescriptor;
  13669. begin
  13670. GetProcedureAddress(_IsValidSecurityDescriptor, advapi32, 'IsValidSecurityDescriptor');
  13671. asm
  13672. MOV ESP, EBP
  13673. POP EBP
  13674. JMP [_IsValidSecurityDescriptor]
  13675. end;
  13676. end;
  13677. var
  13678. _GetSecurityDescriptorLength: Pointer;
  13679. function GetSecurityDescriptorLength;
  13680. begin
  13681. GetProcedureAddress(_GetSecurityDescriptorLength, advapi32, 'GetSecurityDescriptorLength');
  13682. asm
  13683. MOV ESP, EBP
  13684. POP EBP
  13685. JMP [_GetSecurityDescriptorLength]
  13686. end;
  13687. end;
  13688. var
  13689. _GetSecurityDescriptorControl: Pointer;
  13690. function GetSecurityDescriptorControl;
  13691. begin
  13692. GetProcedureAddress(_GetSecurityDescriptorControl, advapi32, 'GetSecurityDescriptorControl');
  13693. asm
  13694. MOV ESP, EBP
  13695. POP EBP
  13696. JMP [_GetSecurityDescriptorControl]
  13697. end;
  13698. end;
  13699. var
  13700. _SetSecurityDescriptorControl: Pointer;
  13701. function SetSecurityDescriptorControl;
  13702. begin
  13703. GetProcedureAddress(_SetSecurityDescriptorControl, advapi32, 'SetSecurityDescriptorControl');
  13704. asm
  13705. MOV ESP, EBP
  13706. POP EBP
  13707. JMP [_SetSecurityDescriptorControl]
  13708. end;
  13709. end;
  13710. var
  13711. _SetSecurityDescriptorDacl: Pointer;
  13712. function SetSecurityDescriptorDacl;
  13713. begin
  13714. GetProcedureAddress(_SetSecurityDescriptorDacl, advapi32, 'SetSecurityDescriptorDacl');
  13715. asm
  13716. MOV ESP, EBP
  13717. POP EBP
  13718. JMP [_SetSecurityDescriptorDacl]
  13719. end;
  13720. end;
  13721. var
  13722. _GetSecurityDescriptorDacl: Pointer;
  13723. function GetSecurityDescriptorDacl;
  13724. begin
  13725. GetProcedureAddress(_GetSecurityDescriptorDacl, advapi32, 'GetSecurityDescriptorDacl');
  13726. asm
  13727. MOV ESP, EBP
  13728. POP EBP
  13729. JMP [_GetSecurityDescriptorDacl]
  13730. end;
  13731. end;
  13732. var
  13733. _SetSecurityDescriptorSacl: Pointer;
  13734. function SetSecurityDescriptorSacl;
  13735. begin
  13736. GetProcedureAddress(_SetSecurityDescriptorSacl, advapi32, 'SetSecurityDescriptorSacl');
  13737. asm
  13738. MOV ESP, EBP
  13739. POP EBP
  13740. JMP [_SetSecurityDescriptorSacl]
  13741. end;
  13742. end;
  13743. var
  13744. _GetSecurityDescriptorSacl: Pointer;
  13745. function GetSecurityDescriptorSacl;
  13746. begin
  13747. GetProcedureAddress(_GetSecurityDescriptorSacl, advapi32, 'GetSecurityDescriptorSacl');
  13748. asm
  13749. MOV ESP, EBP
  13750. POP EBP
  13751. JMP [_GetSecurityDescriptorSacl]
  13752. end;
  13753. end;
  13754. var
  13755. _SetSecurityDescriptorOwner: Pointer;
  13756. function SetSecurityDescriptorOwner;
  13757. begin
  13758. GetProcedureAddress(_SetSecurityDescriptorOwner, advapi32, 'SetSecurityDescriptorOwner');
  13759. asm
  13760. MOV ESP, EBP
  13761. POP EBP
  13762. JMP [_SetSecurityDescriptorOwner]
  13763. end;
  13764. end;
  13765. var
  13766. _GetSecurityDescriptorOwner: Pointer;
  13767. function GetSecurityDescriptorOwner;
  13768. begin
  13769. GetProcedureAddress(_GetSecurityDescriptorOwner, advapi32, 'GetSecurityDescriptorOwner');
  13770. asm
  13771. MOV ESP, EBP
  13772. POP EBP
  13773. JMP [_GetSecurityDescriptorOwner]
  13774. end;
  13775. end;
  13776. var
  13777. _SetSecurityDescriptorGroup: Pointer;
  13778. function SetSecurityDescriptorGroup;
  13779. begin
  13780. GetProcedureAddress(_SetSecurityDescriptorGroup, advapi32, 'SetSecurityDescriptorGroup');
  13781. asm
  13782. MOV ESP, EBP
  13783. POP EBP
  13784. JMP [_SetSecurityDescriptorGroup]
  13785. end;
  13786. end;
  13787. var
  13788. _GetSecurityDescriptorGroup: Pointer;
  13789. function GetSecurityDescriptorGroup;
  13790. begin
  13791. GetProcedureAddress(_GetSecurityDescriptorGroup, advapi32, 'GetSecurityDescriptorGroup');
  13792. asm
  13793. MOV ESP, EBP
  13794. POP EBP
  13795. JMP [_GetSecurityDescriptorGroup]
  13796. end;
  13797. end;
  13798. var
  13799. _SetSecurityDescriptorRMControl: Pointer;
  13800. function SetSecurityDescriptorRMControl;
  13801. begin
  13802. GetProcedureAddress(_SetSecurityDescriptorRMControl, advapi32, 'SetSecurityDescriptorRMControl');
  13803. asm
  13804. MOV ESP, EBP
  13805. POP EBP
  13806. JMP [_SetSecurityDescriptorRMControl]
  13807. end;
  13808. end;
  13809. var
  13810. _GetSecurityDescriptorRMControl: Pointer;
  13811. function GetSecurityDescriptorRMControl;
  13812. begin
  13813. GetProcedureAddress(_GetSecurityDescriptorRMControl, advapi32, 'GetSecurityDescriptorRMControl');
  13814. asm
  13815. MOV ESP, EBP
  13816. POP EBP
  13817. JMP [_GetSecurityDescriptorRMControl]
  13818. end;
  13819. end;
  13820. var
  13821. _CreatePrivateObjectSecurity: Pointer;
  13822. function CreatePrivateObjectSecurity;
  13823. begin
  13824. GetProcedureAddress(_CreatePrivateObjectSecurity, advapi32, 'CreatePrivateObjectSecurity');
  13825. asm
  13826. MOV ESP, EBP
  13827. POP EBP
  13828. JMP [_CreatePrivateObjectSecurity]
  13829. end;
  13830. end;
  13831. var
  13832. _ConvertToAutoInheritPrObjSec: Pointer;
  13833. function ConvertToAutoInheritPrivateObjectSecurity;
  13834. begin
  13835. GetProcedureAddress(_ConvertToAutoInheritPrObjSec, advapi32, 'ConvertToAutoInheritPrivateObjectSecurity');
  13836. asm
  13837. MOV ESP, EBP
  13838. POP EBP
  13839. JMP [_ConvertToAutoInheritPrObjSec]
  13840. end;
  13841. end;
  13842. var
  13843. _CreatePrivateObjectSecurityEx: Pointer;
  13844. function CreatePrivateObjectSecurityEx;
  13845. begin
  13846. GetProcedureAddress(_CreatePrivateObjectSecurityEx, advapi32, 'CreatePrivateObjectSecurityEx');
  13847. asm
  13848. MOV ESP, EBP
  13849. POP EBP
  13850. JMP [_CreatePrivateObjectSecurityEx]
  13851. end;
  13852. end;
  13853. var
  13854. _SetPrivateObjectSecurity: Pointer;
  13855. function SetPrivateObjectSecurity;
  13856. begin
  13857. GetProcedureAddress(_SetPrivateObjectSecurity, advapi32, 'SetPrivateObjectSecurity');
  13858. asm
  13859. MOV ESP, EBP
  13860. POP EBP
  13861. JMP [_SetPrivateObjectSecurity]
  13862. end;
  13863. end;
  13864. var
  13865. _SetPrivateObjectSecurityEx: Pointer;
  13866. function SetPrivateObjectSecurityEx;
  13867. begin
  13868. GetProcedureAddress(_SetPrivateObjectSecurityEx, advapi32, 'SetPrivateObjectSecurityEx');
  13869. asm
  13870. MOV ESP, EBP
  13871. POP EBP
  13872. JMP [_SetPrivateObjectSecurityEx]
  13873. end;
  13874. end;
  13875. var
  13876. _GetPrivateObjectSecurity: Pointer;
  13877. function GetPrivateObjectSecurity;
  13878. begin
  13879. GetProcedureAddress(_GetPrivateObjectSecurity, advapi32, 'GetPrivateObjectSecurity');
  13880. asm
  13881. MOV ESP, EBP
  13882. POP EBP
  13883. JMP [_GetPrivateObjectSecurity]
  13884. end;
  13885. end;
  13886. var
  13887. _DestroyPrivateObjectSecurity: Pointer;
  13888. function DestroyPrivateObjectSecurity;
  13889. begin
  13890. GetProcedureAddress(_DestroyPrivateObjectSecurity, advapi32, 'DestroyPrivateObjectSecurity');
  13891. asm
  13892. MOV ESP, EBP
  13893. POP EBP
  13894. JMP [_DestroyPrivateObjectSecurity]
  13895. end;
  13896. end;
  13897. var
  13898. _MakeSelfRelativeSD: Pointer;
  13899. function MakeSelfRelativeSD;
  13900. begin
  13901. GetProcedureAddress(_MakeSelfRelativeSD, advapi32, 'MakeSelfRelativeSD');
  13902. asm
  13903. MOV ESP, EBP
  13904. POP EBP
  13905. JMP [_MakeSelfRelativeSD]
  13906. end;
  13907. end;
  13908. var
  13909. _MakeAbsoluteSD: Pointer;
  13910. function MakeAbsoluteSD;
  13911. begin
  13912. GetProcedureAddress(_MakeAbsoluteSD, advapi32, 'MakeAbsoluteSD');
  13913. asm
  13914. MOV ESP, EBP
  13915. POP EBP
  13916. JMP [_MakeAbsoluteSD]
  13917. end;
  13918. end;
  13919. var
  13920. _MakeAbsoluteSD2: Pointer;
  13921. function MakeAbsoluteSD2;
  13922. begin
  13923. GetProcedureAddress(_MakeAbsoluteSD2, advapi32, 'MakeAbsoluteSD2');
  13924. asm
  13925. MOV ESP, EBP
  13926. POP EBP
  13927. JMP [_MakeAbsoluteSD2]
  13928. end;
  13929. end;
  13930. var
  13931. _SetFileSecurityA: Pointer;
  13932. function SetFileSecurityA;
  13933. begin
  13934. GetProcedureAddress(_SetFileSecurityA, advapi32, 'SetFileSecurityA');
  13935. asm
  13936. MOV ESP, EBP
  13937. POP EBP
  13938. JMP [_SetFileSecurityA]
  13939. end;
  13940. end;
  13941. var
  13942. _SetFileSecurityW: Pointer;
  13943. function SetFileSecurityW;
  13944. begin
  13945. GetProcedureAddress(_SetFileSecurityW, advapi32, 'SetFileSecurityW');
  13946. asm
  13947. MOV ESP, EBP
  13948. POP EBP
  13949. JMP [_SetFileSecurityW]
  13950. end;
  13951. end;
  13952. var
  13953. _SetFileSecurity: Pointer;
  13954. function SetFileSecurity;
  13955. begin
  13956. GetProcedureAddress(_SetFileSecurity, advapi32, 'SetFileSecurity' + AWSuffix);
  13957. asm
  13958. MOV ESP, EBP
  13959. POP EBP
  13960. JMP [_SetFileSecurity]
  13961. end;
  13962. end;
  13963. var
  13964. _GetFileSecurityA: Pointer;
  13965. function GetFileSecurityA;
  13966. begin
  13967. GetProcedureAddress(_GetFileSecurityA, advapi32, 'GetFileSecurityA');
  13968. asm
  13969. MOV ESP, EBP
  13970. POP EBP
  13971. JMP [_GetFileSecurityA]
  13972. end;
  13973. end;
  13974. var
  13975. _GetFileSecurityW: Pointer;
  13976. function GetFileSecurityW;
  13977. begin
  13978. GetProcedureAddress(_GetFileSecurityW, advapi32, 'GetFileSecurityW');
  13979. asm
  13980. MOV ESP, EBP
  13981. POP EBP
  13982. JMP [_GetFileSecurityW]
  13983. end;
  13984. end;
  13985. var
  13986. _GetFileSecurity: Pointer;
  13987. function GetFileSecurity;
  13988. begin
  13989. GetProcedureAddress(_GetFileSecurity, advapi32, 'GetFileSecurity' + AWSuffix);
  13990. asm
  13991. MOV ESP, EBP
  13992. POP EBP
  13993. JMP [_GetFileSecurity]
  13994. end;
  13995. end;
  13996. var
  13997. _SetKernelObjectSecurity: Pointer;
  13998. function SetKernelObjectSecurity;
  13999. begin
  14000. GetProcedureAddress(_SetKernelObjectSecurity, advapi32, 'SetKernelObjectSecurity');
  14001. asm
  14002. MOV ESP, EBP
  14003. POP EBP
  14004. JMP [_SetKernelObjectSecurity]
  14005. end;
  14006. end;
  14007. var
  14008. _FindFirstChangeNotificationA: Pointer;
  14009. function FindFirstChangeNotificationA;
  14010. begin
  14011. GetProcedureAddress(_FindFirstChangeNotificationA, kernel32, 'FindFirstChangeNotificationA');
  14012. asm
  14013. MOV ESP, EBP
  14014. POP EBP
  14015. JMP [_FindFirstChangeNotificationA]
  14016. end;
  14017. end;
  14018. var
  14019. _FindFirstChangeNotificationW: Pointer;
  14020. function FindFirstChangeNotificationW;
  14021. begin
  14022. GetProcedureAddress(_FindFirstChangeNotificationW, kernel32, 'FindFirstChangeNotificationW');
  14023. asm
  14024. MOV ESP, EBP
  14025. POP EBP
  14026. JMP [_FindFirstChangeNotificationW]
  14027. end;
  14028. end;
  14029. var
  14030. _FindFirstChangeNotification: Pointer;
  14031. function FindFirstChangeNotification;
  14032. begin
  14033. GetProcedureAddress(_FindFirstChangeNotification, kernel32, 'FindFirstChangeNotification' + AWSuffix);
  14034. asm
  14035. MOV ESP, EBP
  14036. POP EBP
  14037. JMP [_FindFirstChangeNotification]
  14038. end;
  14039. end;
  14040. var
  14041. _FindNextChangeNotification: Pointer;
  14042. function FindNextChangeNotification;
  14043. begin
  14044. GetProcedureAddress(_FindNextChangeNotification, kernel32, 'FindNextChangeNotification');
  14045. asm
  14046. MOV ESP, EBP
  14047. POP EBP
  14048. JMP [_FindNextChangeNotification]
  14049. end;
  14050. end;
  14051. var
  14052. _FindCloseChangeNotification: Pointer;
  14053. function FindCloseChangeNotification;
  14054. begin
  14055. GetProcedureAddress(_FindCloseChangeNotification, kernel32, 'FindCloseChangeNotification');
  14056. asm
  14057. MOV ESP, EBP
  14058. POP EBP
  14059. JMP [_FindCloseChangeNotification]
  14060. end;
  14061. end;
  14062. var
  14063. _ReadDirectoryChangesW: Pointer;
  14064. function ReadDirectoryChangesW;
  14065. begin
  14066. GetProcedureAddress(_ReadDirectoryChangesW, kernel32, 'ReadDirectoryChangesW');
  14067. asm
  14068. MOV ESP, EBP
  14069. POP EBP
  14070. JMP [_ReadDirectoryChangesW]
  14071. end;
  14072. end;
  14073. var
  14074. _VirtualLock: Pointer;
  14075. function VirtualLock;
  14076. begin
  14077. GetProcedureAddress(_VirtualLock, kernel32, 'VirtualLock');
  14078. asm
  14079. MOV ESP, EBP
  14080. POP EBP
  14081. JMP [_VirtualLock]
  14082. end;
  14083. end;
  14084. var
  14085. _VirtualUnlock: Pointer;
  14086. function VirtualUnlock;
  14087. begin
  14088. GetProcedureAddress(_VirtualUnlock, kernel32, 'VirtualUnlock');
  14089. asm
  14090. MOV ESP, EBP
  14091. POP EBP
  14092. JMP [_VirtualUnlock]
  14093. end;
  14094. end;
  14095. var
  14096. _MapViewOfFileEx: Pointer;
  14097. function MapViewOfFileEx;
  14098. begin
  14099. GetProcedureAddress(_MapViewOfFileEx, kernel32, 'MapViewOfFileEx');
  14100. asm
  14101. MOV ESP, EBP
  14102. POP EBP
  14103. JMP [_MapViewOfFileEx]
  14104. end;
  14105. end;
  14106. var
  14107. _SetPriorityClass: Pointer;
  14108. function SetPriorityClass;
  14109. begin
  14110. GetProcedureAddress(_SetPriorityClass, kernel32, 'SetPriorityClass');
  14111. asm
  14112. MOV ESP, EBP
  14113. POP EBP
  14114. JMP [_SetPriorityClass]
  14115. end;
  14116. end;
  14117. var
  14118. _GetPriorityClass: Pointer;
  14119. function GetPriorityClass;
  14120. begin
  14121. GetProcedureAddress(_GetPriorityClass, kernel32, 'GetPriorityClass');
  14122. asm
  14123. MOV ESP, EBP
  14124. POP EBP
  14125. JMP [_GetPriorityClass]
  14126. end;
  14127. end;
  14128. var
  14129. _IsBadReadPtr: Pointer;
  14130. function IsBadReadPtr;
  14131. begin
  14132. GetProcedureAddress(_IsBadReadPtr, kernel32, 'IsBadReadPtr');
  14133. asm
  14134. MOV ESP, EBP
  14135. POP EBP
  14136. JMP [_IsBadReadPtr]
  14137. end;
  14138. end;
  14139. var
  14140. _IsBadWritePtr: Pointer;
  14141. function IsBadWritePtr;
  14142. begin
  14143. GetProcedureAddress(_IsBadWritePtr, kernel32, 'IsBadWritePtr');
  14144. asm
  14145. MOV ESP, EBP
  14146. POP EBP
  14147. JMP [_IsBadWritePtr]
  14148. end;
  14149. end;
  14150. var
  14151. _IsBadHugeReadPtr: Pointer;
  14152. function IsBadHugeReadPtr;
  14153. begin
  14154. GetProcedureAddress(_IsBadHugeReadPtr, kernel32, 'IsBadHugeReadPtr');
  14155. asm
  14156. MOV ESP, EBP
  14157. POP EBP
  14158. JMP [_IsBadHugeReadPtr]
  14159. end;
  14160. end;
  14161. var
  14162. _IsBadHugeWritePtr: Pointer;
  14163. function IsBadHugeWritePtr;
  14164. begin
  14165. GetProcedureAddress(_IsBadHugeWritePtr, kernel32, 'IsBadHugeWritePtr');
  14166. asm
  14167. MOV ESP, EBP
  14168. POP EBP
  14169. JMP [_IsBadHugeWritePtr]
  14170. end;
  14171. end;
  14172. var
  14173. _IsBadCodePtr: Pointer;
  14174. function IsBadCodePtr;
  14175. begin
  14176. GetProcedureAddress(_IsBadCodePtr, kernel32, 'IsBadCodePtr');
  14177. asm
  14178. MOV ESP, EBP
  14179. POP EBP
  14180. JMP [_IsBadCodePtr]
  14181. end;
  14182. end;
  14183. var
  14184. _IsBadStringPtrA: Pointer;
  14185. function IsBadStringPtrA;
  14186. begin
  14187. GetProcedureAddress(_IsBadStringPtrA, kernel32, 'IsBadStringPtrA');
  14188. asm
  14189. MOV ESP, EBP
  14190. POP EBP
  14191. JMP [_IsBadStringPtrA]
  14192. end;
  14193. end;
  14194. var
  14195. _IsBadStringPtrW: Pointer;
  14196. function IsBadStringPtrW;
  14197. begin
  14198. GetProcedureAddress(_IsBadStringPtrW, kernel32, 'IsBadStringPtrW');
  14199. asm
  14200. MOV ESP, EBP
  14201. POP EBP
  14202. JMP [_IsBadStringPtrW]
  14203. end;
  14204. end;
  14205. var
  14206. _IsBadStringPtr: Pointer;
  14207. function IsBadStringPtr;
  14208. begin
  14209. GetProcedureAddress(_IsBadStringPtr, kernel32, 'IsBadStringPtr' + AWSuffix);
  14210. asm
  14211. MOV ESP, EBP
  14212. POP EBP
  14213. JMP [_IsBadStringPtr]
  14214. end;
  14215. end;
  14216. var
  14217. _LookupAccountSidA: Pointer;
  14218. function LookupAccountSidA;
  14219. begin
  14220. GetProcedureAddress(_LookupAccountSidA, advapi32, 'LookupAccountSidA');
  14221. asm
  14222. MOV ESP, EBP
  14223. POP EBP
  14224. JMP [_LookupAccountSidA]
  14225. end;
  14226. end;
  14227. var
  14228. _LookupAccountSidW: Pointer;
  14229. function LookupAccountSidW;
  14230. begin
  14231. GetProcedureAddress(_LookupAccountSidW, advapi32, 'LookupAccountSidW');
  14232. asm
  14233. MOV ESP, EBP
  14234. POP EBP
  14235. JMP [_LookupAccountSidW]
  14236. end;
  14237. end;
  14238. var
  14239. _LookupAccountSid: Pointer;
  14240. function LookupAccountSid;
  14241. begin
  14242. GetProcedureAddress(_LookupAccountSid, advapi32, 'LookupAccountSid' + AWSuffix);
  14243. asm
  14244. MOV ESP, EBP
  14245. POP EBP
  14246. JMP [_LookupAccountSid]
  14247. end;
  14248. end;
  14249. var
  14250. _LookupAccountNameA: Pointer;
  14251. function LookupAccountNameA;
  14252. begin
  14253. GetProcedureAddress(_LookupAccountNameA, advapi32, 'LookupAccountNameA');
  14254. asm
  14255. MOV ESP, EBP
  14256. POP EBP
  14257. JMP [_LookupAccountNameA]
  14258. end;
  14259. end;
  14260. var
  14261. _LookupAccountNameW: Pointer;
  14262. function LookupAccountNameW;
  14263. begin
  14264. GetProcedureAddress(_LookupAccountNameW, advapi32, 'LookupAccountNameW');
  14265. asm
  14266. MOV ESP, EBP
  14267. POP EBP
  14268. JMP [_LookupAccountNameW]
  14269. end;
  14270. end;
  14271. var
  14272. _LookupAccountName: Pointer;
  14273. function LookupAccountName;
  14274. begin
  14275. GetProcedureAddress(_LookupAccountName, advapi32, 'LookupAccountName' + AWSuffix);
  14276. asm
  14277. MOV ESP, EBP
  14278. POP EBP
  14279. JMP [_LookupAccountName]
  14280. end;
  14281. end;
  14282. var
  14283. _LookupPrivilegeValueA: Pointer;
  14284. function LookupPrivilegeValueA;
  14285. begin
  14286. GetProcedureAddress(_LookupPrivilegeValueA, advapi32, 'LookupPrivilegeValueA');
  14287. asm
  14288. MOV ESP, EBP
  14289. POP EBP
  14290. JMP [_LookupPrivilegeValueA]
  14291. end;
  14292. end;
  14293. var
  14294. _LookupPrivilegeValueW: Pointer;
  14295. function LookupPrivilegeValueW;
  14296. begin
  14297. GetProcedureAddress(_LookupPrivilegeValueW, advapi32, 'LookupPrivilegeValueW');
  14298. asm
  14299. MOV ESP, EBP
  14300. POP EBP
  14301. JMP [_LookupPrivilegeValueW]
  14302. end;
  14303. end;
  14304. var
  14305. _LookupPrivilegeValue: Pointer;
  14306. function LookupPrivilegeValue;
  14307. begin
  14308. GetProcedureAddress(_LookupPrivilegeValue, advapi32, 'LookupPrivilegeValue' + AWSuffix);
  14309. asm
  14310. MOV ESP, EBP
  14311. POP EBP
  14312. JMP [_LookupPrivilegeValue]
  14313. end;
  14314. end;
  14315. var
  14316. _LookupPrivilegeNameA: Pointer;
  14317. function LookupPrivilegeNameA;
  14318. begin
  14319. GetProcedureAddress(_LookupPrivilegeNameA, advapi32, 'LookupPrivilegeNameA');
  14320. asm
  14321. MOV ESP, EBP
  14322. POP EBP
  14323. JMP [_LookupPrivilegeNameA]
  14324. end;
  14325. end;
  14326. var
  14327. _LookupPrivilegeNameW: Pointer;
  14328. function LookupPrivilegeNameW;
  14329. begin
  14330. GetProcedureAddress(_LookupPrivilegeNameW, advapi32, 'LookupPrivilegeNameW');
  14331. asm
  14332. MOV ESP, EBP
  14333. POP EBP
  14334. JMP [_LookupPrivilegeNameW]
  14335. end;
  14336. end;
  14337. var
  14338. _LookupPrivilegeName: Pointer;
  14339. function LookupPrivilegeName;
  14340. begin
  14341. GetProcedureAddress(_LookupPrivilegeName, advapi32, 'LookupPrivilegeName' + AWSuffix);
  14342. asm
  14343. MOV ESP, EBP
  14344. POP EBP
  14345. JMP [_LookupPrivilegeName]
  14346. end;
  14347. end;
  14348. var
  14349. _LookupPrivilegeDisplayNameA: Pointer;
  14350. function LookupPrivilegeDisplayNameA;
  14351. begin
  14352. GetProcedureAddress(_LookupPrivilegeDisplayNameA, advapi32, 'LookupPrivilegeDisplayNameA');
  14353. asm
  14354. MOV ESP, EBP
  14355. POP EBP
  14356. JMP [_LookupPrivilegeDisplayNameA]
  14357. end;
  14358. end;
  14359. var
  14360. _LookupPrivilegeDisplayNameW: Pointer;
  14361. function LookupPrivilegeDisplayNameW;
  14362. begin
  14363. GetProcedureAddress(_LookupPrivilegeDisplayNameW, advapi32, 'LookupPrivilegeDisplayNameW');
  14364. asm
  14365. MOV ESP, EBP
  14366. POP EBP
  14367. JMP [_LookupPrivilegeDisplayNameW]
  14368. end;
  14369. end;
  14370. var
  14371. _LookupPrivilegeDisplayName: Pointer;
  14372. function LookupPrivilegeDisplayName;
  14373. begin
  14374. GetProcedureAddress(_LookupPrivilegeDisplayName, advapi32, 'LookupPrivilegeDisplayName' + AWSuffix);
  14375. asm
  14376. MOV ESP, EBP
  14377. POP EBP
  14378. JMP [_LookupPrivilegeDisplayName]
  14379. end;
  14380. end;
  14381. var
  14382. _AllocateLocallyUniqueId: Pointer;
  14383. function AllocateLocallyUniqueId;
  14384. begin
  14385. GetProcedureAddress(_AllocateLocallyUniqueId, advapi32, 'AllocateLocallyUniqueId');
  14386. asm
  14387. MOV ESP, EBP
  14388. POP EBP
  14389. JMP [_AllocateLocallyUniqueId]
  14390. end;
  14391. end;
  14392. var
  14393. _BuildCommDCBA: Pointer;
  14394. function BuildCommDCBA;
  14395. begin
  14396. GetProcedureAddress(_BuildCommDCBA, kernel32, 'BuildCommDCBA');
  14397. asm
  14398. MOV ESP, EBP
  14399. POP EBP
  14400. JMP [_BuildCommDCBA]
  14401. end;
  14402. end;
  14403. var
  14404. _BuildCommDCBW: Pointer;
  14405. function BuildCommDCBW;
  14406. begin
  14407. GetProcedureAddress(_BuildCommDCBW, kernel32, 'BuildCommDCBW');
  14408. asm
  14409. MOV ESP, EBP
  14410. POP EBP
  14411. JMP [_BuildCommDCBW]
  14412. end;
  14413. end;
  14414. var
  14415. _BuildCommDCB: Pointer;
  14416. function BuildCommDCB;
  14417. begin
  14418. GetProcedureAddress(_BuildCommDCB, kernel32, 'BuildCommDCB' + AWSuffix);
  14419. asm
  14420. MOV ESP, EBP
  14421. POP EBP
  14422. JMP [_BuildCommDCB]
  14423. end;
  14424. end;
  14425. var
  14426. _BuildCommDCBAndTimeoutsA: Pointer;
  14427. function BuildCommDCBAndTimeoutsA;
  14428. begin
  14429. GetProcedureAddress(_BuildCommDCBAndTimeoutsA, kernel32, 'BuildCommDCBAndTimeoutsA');
  14430. asm
  14431. MOV ESP, EBP
  14432. POP EBP
  14433. JMP [_BuildCommDCBAndTimeoutsA]
  14434. end;
  14435. end;
  14436. var
  14437. _BuildCommDCBAndTimeoutsW: Pointer;
  14438. function BuildCommDCBAndTimeoutsW;
  14439. begin
  14440. GetProcedureAddress(_BuildCommDCBAndTimeoutsW, kernel32, 'BuildCommDCBAndTimeoutsW');
  14441. asm
  14442. MOV ESP, EBP
  14443. POP EBP
  14444. JMP [_BuildCommDCBAndTimeoutsW]
  14445. end;
  14446. end;
  14447. var
  14448. _BuildCommDCBAndTimeouts: Pointer;
  14449. function BuildCommDCBAndTimeouts;
  14450. begin
  14451. GetProcedureAddress(_BuildCommDCBAndTimeouts, kernel32, 'BuildCommDCBAndTimeouts' + AWSuffix);
  14452. asm
  14453. MOV ESP, EBP
  14454. POP EBP
  14455. JMP [_BuildCommDCBAndTimeouts]
  14456. end;
  14457. end;
  14458. var
  14459. _CommConfigDialogA: Pointer;
  14460. function CommConfigDialogA;
  14461. begin
  14462. GetProcedureAddress(_CommConfigDialogA, kernel32, 'CommConfigDialogA');
  14463. asm
  14464. MOV ESP, EBP
  14465. POP EBP
  14466. JMP [_CommConfigDialogA]
  14467. end;
  14468. end;
  14469. var
  14470. _CommConfigDialogW: Pointer;
  14471. function CommConfigDialogW;
  14472. begin
  14473. GetProcedureAddress(_CommConfigDialogW, kernel32, 'CommConfigDialogW');
  14474. asm
  14475. MOV ESP, EBP
  14476. POP EBP
  14477. JMP [_CommConfigDialogW]
  14478. end;
  14479. end;
  14480. var
  14481. _CommConfigDialog: Pointer;
  14482. function CommConfigDialog;
  14483. begin
  14484. GetProcedureAddress(_CommConfigDialog, kernel32, 'CommConfigDialog' + AWSuffix);
  14485. asm
  14486. MOV ESP, EBP
  14487. POP EBP
  14488. JMP [_CommConfigDialog]
  14489. end;
  14490. end;
  14491. var
  14492. _GetDefaultCommConfigA: Pointer;
  14493. function GetDefaultCommConfigA;
  14494. begin
  14495. GetProcedureAddress(_GetDefaultCommConfigA, kernel32, 'GetDefaultCommConfigA');
  14496. asm
  14497. MOV ESP, EBP
  14498. POP EBP
  14499. JMP [_GetDefaultCommConfigA]
  14500. end;
  14501. end;
  14502. var
  14503. _GetDefaultCommConfigW: Pointer;
  14504. function GetDefaultCommConfigW;
  14505. begin
  14506. GetProcedureAddress(_GetDefaultCommConfigW, kernel32, 'GetDefaultCommConfigW');
  14507. asm
  14508. MOV ESP, EBP
  14509. POP EBP
  14510. JMP [_GetDefaultCommConfigW]
  14511. end;
  14512. end;
  14513. var
  14514. _GetDefaultCommConfig: Pointer;
  14515. function GetDefaultCommConfig;
  14516. begin
  14517. GetProcedureAddress(_GetDefaultCommConfig, kernel32, 'GetDefaultCommConfig' + AWSuffix);
  14518. asm
  14519. MOV ESP, EBP
  14520. POP EBP
  14521. JMP [_GetDefaultCommConfig]
  14522. end;
  14523. end;
  14524. var
  14525. _SetDefaultCommConfigA: Pointer;
  14526. function SetDefaultCommConfigA;
  14527. begin
  14528. GetProcedureAddress(_SetDefaultCommConfigA, kernel32, 'SetDefaultCommConfigA');
  14529. asm
  14530. MOV ESP, EBP
  14531. POP EBP
  14532. JMP [_SetDefaultCommConfigA]
  14533. end;
  14534. end;
  14535. var
  14536. _SetDefaultCommConfigW: Pointer;
  14537. function SetDefaultCommConfigW;
  14538. begin
  14539. GetProcedureAddress(_SetDefaultCommConfigW, kernel32, 'SetDefaultCommConfigW');
  14540. asm
  14541. MOV ESP, EBP
  14542. POP EBP
  14543. JMP [_SetDefaultCommConfigW]
  14544. end;
  14545. end;
  14546. var
  14547. _SetDefaultCommConfig: Pointer;
  14548. function SetDefaultCommConfig;
  14549. begin
  14550. GetProcedureAddress(_SetDefaultCommConfig, kernel32, 'SetDefaultCommConfig' + AWSuffix);
  14551. asm
  14552. MOV ESP, EBP
  14553. POP EBP
  14554. JMP [_SetDefaultCommConfig]
  14555. end;
  14556. end;
  14557. var
  14558. _GetComputerNameA: Pointer;
  14559. function GetComputerNameA;
  14560. begin
  14561. GetProcedureAddress(_GetComputerNameA, kernel32, 'GetComputerNameA');
  14562. asm
  14563. MOV ESP, EBP
  14564. POP EBP
  14565. JMP [_GetComputerNameA]
  14566. end;
  14567. end;
  14568. var
  14569. _GetComputerNameW: Pointer;
  14570. function GetComputerNameW;
  14571. begin
  14572. GetProcedureAddress(_GetComputerNameW, kernel32, 'GetComputerNameW');
  14573. asm
  14574. MOV ESP, EBP
  14575. POP EBP
  14576. JMP [_GetComputerNameW]
  14577. end;
  14578. end;
  14579. var
  14580. _GetComputerName: Pointer;
  14581. function GetComputerName;
  14582. begin
  14583. GetProcedureAddress(_GetComputerName, kernel32, 'GetComputerName' + AWSuffix);
  14584. asm
  14585. MOV ESP, EBP
  14586. POP EBP
  14587. JMP [_GetComputerName]
  14588. end;
  14589. end;
  14590. var
  14591. _SetComputerNameA: Pointer;
  14592. function SetComputerNameA;
  14593. begin
  14594. GetProcedureAddress(_SetComputerNameA, kernel32, 'SetComputerNameA');
  14595. asm
  14596. MOV ESP, EBP
  14597. POP EBP
  14598. JMP [_SetComputerNameA]
  14599. end;
  14600. end;
  14601. var
  14602. _SetComputerNameW: Pointer;
  14603. function SetComputerNameW;
  14604. begin
  14605. GetProcedureAddress(_SetComputerNameW, kernel32, 'SetComputerNameW');
  14606. asm
  14607. MOV ESP, EBP
  14608. POP EBP
  14609. JMP [_SetComputerNameW]
  14610. end;
  14611. end;
  14612. var
  14613. _SetComputerName: Pointer;
  14614. function SetComputerName;
  14615. begin
  14616. GetProcedureAddress(_SetComputerName, kernel32, 'SetComputerName' + AWSuffix);
  14617. asm
  14618. MOV ESP, EBP
  14619. POP EBP
  14620. JMP [_SetComputerName]
  14621. end;
  14622. end;
  14623. var
  14624. _GetComputerNameExA: Pointer;
  14625. function GetComputerNameExA;
  14626. begin
  14627. GetProcedureAddress(_GetComputerNameExA, kernel32, 'GetComputerNameExA');
  14628. asm
  14629. MOV ESP, EBP
  14630. POP EBP
  14631. JMP [_GetComputerNameExA]
  14632. end;
  14633. end;
  14634. var
  14635. _GetComputerNameExW: Pointer;
  14636. function GetComputerNameExW;
  14637. begin
  14638. GetProcedureAddress(_GetComputerNameExW, kernel32, 'GetComputerNameExW');
  14639. asm
  14640. MOV ESP, EBP
  14641. POP EBP
  14642. JMP [_GetComputerNameExW]
  14643. end;
  14644. end;
  14645. var
  14646. _GetComputerNameEx: Pointer;
  14647. function GetComputerNameEx;
  14648. begin
  14649. GetProcedureAddress(_GetComputerNameEx, kernel32, 'GetComputerNameEx' + AWSuffix);
  14650. asm
  14651. MOV ESP, EBP
  14652. POP EBP
  14653. JMP [_GetComputerNameEx]
  14654. end;
  14655. end;
  14656. var
  14657. _SetComputerNameExA: Pointer;
  14658. function SetComputerNameExA;
  14659. begin
  14660. GetProcedureAddress(_SetComputerNameExA, kernel32, 'SetComputerNameExA');
  14661. asm
  14662. MOV ESP, EBP
  14663. POP EBP
  14664. JMP [_SetComputerNameExA]
  14665. end;
  14666. end;
  14667. var
  14668. _SetComputerNameExW: Pointer;
  14669. function SetComputerNameExW;
  14670. begin
  14671. GetProcedureAddress(_SetComputerNameExW, kernel32, 'SetComputerNameExW');
  14672. asm
  14673. MOV ESP, EBP
  14674. POP EBP
  14675. JMP [_SetComputerNameExW]
  14676. end;
  14677. end;
  14678. var
  14679. _SetComputerNameEx: Pointer;
  14680. function SetComputerNameEx;
  14681. begin
  14682. GetProcedureAddress(_SetComputerNameEx, kernel32, 'SetComputerNameEx' + AWSuffix);
  14683. asm
  14684. MOV ESP, EBP
  14685. POP EBP
  14686. JMP [_SetComputerNameEx]
  14687. end;
  14688. end;
  14689. var
  14690. _DnsHostnameToComputerNameA: Pointer;
  14691. function DnsHostnameToComputerNameA;
  14692. begin
  14693. GetProcedureAddress(_DnsHostnameToComputerNameA, kernel32, 'DnsHostnameToComputerNameA');
  14694. asm
  14695. MOV ESP, EBP
  14696. POP EBP
  14697. JMP [_DnsHostnameToComputerNameA]
  14698. end;
  14699. end;
  14700. var
  14701. _DnsHostnameToComputerNameW: Pointer;
  14702. function DnsHostnameToComputerNameW;
  14703. begin
  14704. GetProcedureAddress(_DnsHostnameToComputerNameW, kernel32, 'DnsHostnameToComputerNameW');
  14705. asm
  14706. MOV ESP, EBP
  14707. POP EBP
  14708. JMP [_DnsHostnameToComputerNameW]
  14709. end;
  14710. end;
  14711. var
  14712. _DnsHostnameToComputerName: Pointer;
  14713. function DnsHostnameToComputerName;
  14714. begin
  14715. GetProcedureAddress(_DnsHostnameToComputerName, kernel32, 'DnsHostnameToComputerName' + AWSuffix);
  14716. asm
  14717. MOV ESP, EBP
  14718. POP EBP
  14719. JMP [_DnsHostnameToComputerName]
  14720. end;
  14721. end;
  14722. var
  14723. _GetUserNameA: Pointer;
  14724. function GetUserNameA;
  14725. begin
  14726. GetProcedureAddress(_GetUserNameA, advapi32, 'GetUserNameA');
  14727. asm
  14728. MOV ESP, EBP
  14729. POP EBP
  14730. JMP [_GetUserNameA]
  14731. end;
  14732. end;
  14733. var
  14734. _GetUserNameW: Pointer;
  14735. function GetUserNameW;
  14736. begin
  14737. GetProcedureAddress(_GetUserNameW, advapi32, 'GetUserNameW');
  14738. asm
  14739. MOV ESP, EBP
  14740. POP EBP
  14741. JMP [_GetUserNameW]
  14742. end;
  14743. end;
  14744. var
  14745. _GetUserName: Pointer;
  14746. function GetUserName;
  14747. begin
  14748. GetProcedureAddress(_GetUserName, advapi32, 'GetUserName' + AWSuffix);
  14749. asm
  14750. MOV ESP, EBP
  14751. POP EBP
  14752. JMP [_GetUserName]
  14753. end;
  14754. end;
  14755. var
  14756. _LogonUserA: Pointer;
  14757. function LogonUserA;
  14758. begin
  14759. GetProcedureAddress(_LogonUserA, advapi32, 'LogonUserA');
  14760. asm
  14761. MOV ESP, EBP
  14762. POP EBP
  14763. JMP [_LogonUserA]
  14764. end;
  14765. end;
  14766. var
  14767. _LogonUserW: Pointer;
  14768. function LogonUserW;
  14769. begin
  14770. GetProcedureAddress(_LogonUserW, advapi32, 'LogonUserW');
  14771. asm
  14772. MOV ESP, EBP
  14773. POP EBP
  14774. JMP [_LogonUserW]
  14775. end;
  14776. end;
  14777. var
  14778. _LogonUser: Pointer;
  14779. function LogonUser;
  14780. begin
  14781. GetProcedureAddress(_LogonUser, advapi32, 'LogonUser' + AWSuffix);
  14782. asm
  14783. MOV ESP, EBP
  14784. POP EBP
  14785. JMP [_LogonUser]
  14786. end;
  14787. end;
  14788. var
  14789. _LogonUserExA: Pointer;
  14790. function LogonUserExA;
  14791. begin
  14792. GetProcedureAddress(_LogonUserExA, advapi32, 'LogonUserExA');
  14793. asm
  14794. MOV ESP, EBP
  14795. POP EBP
  14796. JMP [_LogonUserExA]
  14797. end;
  14798. end;
  14799. var
  14800. _LogonUserExW: Pointer;
  14801. function LogonUserExW;
  14802. begin
  14803. GetProcedureAddress(_LogonUserExW, advapi32, 'LogonUserExW');
  14804. asm
  14805. MOV ESP, EBP
  14806. POP EBP
  14807. JMP [_LogonUserExW]
  14808. end;
  14809. end;
  14810. var
  14811. _LogonUserEx: Pointer;
  14812. function LogonUserEx;
  14813. begin
  14814. GetProcedureAddress(_LogonUserEx, advapi32, 'LogonUserEx' + AWSuffix);
  14815. asm
  14816. MOV ESP, EBP
  14817. POP EBP
  14818. JMP [_LogonUserEx]
  14819. end;
  14820. end;
  14821. var
  14822. _ImpersonateLoggedOnUser: Pointer;
  14823. function ImpersonateLoggedOnUser;
  14824. begin
  14825. GetProcedureAddress(_ImpersonateLoggedOnUser, advapi32, 'ImpersonateLoggedOnUser');
  14826. asm
  14827. MOV ESP, EBP
  14828. POP EBP
  14829. JMP [_ImpersonateLoggedOnUser]
  14830. end;
  14831. end;
  14832. var
  14833. _CreateProcessAsUserA: Pointer;
  14834. function CreateProcessAsUserA;
  14835. begin
  14836. GetProcedureAddress(_CreateProcessAsUserA, advapi32, 'CreateProcessAsUserA');
  14837. asm
  14838. MOV ESP, EBP
  14839. POP EBP
  14840. JMP [_CreateProcessAsUserA]
  14841. end;
  14842. end;
  14843. var
  14844. _CreateProcessAsUserW: Pointer;
  14845. function CreateProcessAsUserW;
  14846. begin
  14847. GetProcedureAddress(_CreateProcessAsUserW, advapi32, 'CreateProcessAsUserW');
  14848. asm
  14849. MOV ESP, EBP
  14850. POP EBP
  14851. JMP [_CreateProcessAsUserW]
  14852. end;
  14853. end;
  14854. var
  14855. _CreateProcessAsUser: Pointer;
  14856. function CreateProcessAsUser;
  14857. begin
  14858. GetProcedureAddress(_CreateProcessAsUser, advapi32, 'CreateProcessAsUser' + AWSuffix);
  14859. asm
  14860. MOV ESP, EBP
  14861. POP EBP
  14862. JMP [_CreateProcessAsUser]
  14863. end;
  14864. end;
  14865. var
  14866. _CreateProcessWithLogonW: Pointer;
  14867. function CreateProcessWithLogonW;
  14868. begin
  14869. GetProcedureAddress(_CreateProcessWithLogonW, advapi32, 'CreateProcessWithLogonW');
  14870. asm
  14871. MOV ESP, EBP
  14872. POP EBP
  14873. JMP [_CreateProcessWithLogonW]
  14874. end;
  14875. end;
  14876. var
  14877. _CreateProcessWithTokenW: Pointer;
  14878. function CreateProcessWithTokenW;
  14879. begin
  14880. GetProcedureAddress(_CreateProcessWithTokenW, advapi32, 'CreateProcessWithTokenW');
  14881. asm
  14882. MOV ESP, EBP
  14883. POP EBP
  14884. JMP [_CreateProcessWithTokenW]
  14885. end;
  14886. end;
  14887. var
  14888. _ImpersonateAnonymousToken: Pointer;
  14889. function ImpersonateAnonymousToken;
  14890. begin
  14891. GetProcedureAddress(_ImpersonateAnonymousToken, advapi32, 'ImpersonateAnonymousToken');
  14892. asm
  14893. MOV ESP, EBP
  14894. POP EBP
  14895. JMP [_ImpersonateAnonymousToken]
  14896. end;
  14897. end;
  14898. var
  14899. _DuplicateTokenEx: Pointer;
  14900. function DuplicateTokenEx;
  14901. begin
  14902. GetProcedureAddress(_DuplicateTokenEx, advapi32, 'DuplicateTokenEx');
  14903. asm
  14904. MOV ESP, EBP
  14905. POP EBP
  14906. JMP [_DuplicateTokenEx]
  14907. end;
  14908. end;
  14909. var
  14910. _CreateRestrictedToken: Pointer;
  14911. function CreateRestrictedToken;
  14912. begin
  14913. GetProcedureAddress(_CreateRestrictedToken, advapi32, 'CreateRestrictedToken');
  14914. asm
  14915. MOV ESP, EBP
  14916. POP EBP
  14917. JMP [_CreateRestrictedToken]
  14918. end;
  14919. end;
  14920. var
  14921. _IsTokenRestricted: Pointer;
  14922. function IsTokenRestricted;
  14923. begin
  14924. GetProcedureAddress(_IsTokenRestricted, advapi32, 'IsTokenRestricted');
  14925. asm
  14926. MOV ESP, EBP
  14927. POP EBP
  14928. JMP [_IsTokenRestricted]
  14929. end;
  14930. end;
  14931. var
  14932. _CheckTokenMembership: Pointer;
  14933. function CheckTokenMembership;
  14934. begin
  14935. GetProcedureAddress(_CheckTokenMembership, advapi32, 'CheckTokenMembership');
  14936. asm
  14937. MOV ESP, EBP
  14938. POP EBP
  14939. JMP [_CheckTokenMembership]
  14940. end;
  14941. end;
  14942. var
  14943. _IsTokenUntrusted: Pointer;
  14944. function IsTokenUntrusted;
  14945. begin
  14946. GetProcedureAddress(_IsTokenUntrusted, advapi32, 'IsTokenUntrusted');
  14947. asm
  14948. MOV ESP, EBP
  14949. POP EBP
  14950. JMP [_IsTokenUntrusted]
  14951. end;
  14952. end;
  14953. var
  14954. _RegisterWaitForSingleObject: Pointer;
  14955. function RegisterWaitForSingleObject;
  14956. begin
  14957. GetProcedureAddress(_RegisterWaitForSingleObject, kernel32, 'RegisterWaitForSingleObject');
  14958. asm
  14959. MOV ESP, EBP
  14960. POP EBP
  14961. JMP [_RegisterWaitForSingleObject]
  14962. end;
  14963. end;
  14964. var
  14965. _RegisterWaitForSingleObjectEx: Pointer;
  14966. function RegisterWaitForSingleObjectEx;
  14967. begin
  14968. GetProcedureAddress(_RegisterWaitForSingleObjectEx, kernel32, 'RegisterWaitForSingleObjectEx');
  14969. asm
  14970. MOV ESP, EBP
  14971. POP EBP
  14972. JMP [_RegisterWaitForSingleObjectEx]
  14973. end;
  14974. end;
  14975. var
  14976. _UnregisterWait: Pointer;
  14977. function UnregisterWait;
  14978. begin
  14979. GetProcedureAddress(_UnregisterWait, kernel32, 'UnregisterWait');
  14980. asm
  14981. MOV ESP, EBP
  14982. POP EBP
  14983. JMP [_UnregisterWait]
  14984. end;
  14985. end;
  14986. var
  14987. _UnregisterWaitEx: Pointer;
  14988. function UnregisterWaitEx;
  14989. begin
  14990. GetProcedureAddress(_UnregisterWaitEx, kernel32, 'UnregisterWaitEx');
  14991. asm
  14992. MOV ESP, EBP
  14993. POP EBP
  14994. JMP [_UnregisterWaitEx]
  14995. end;
  14996. end;
  14997. var
  14998. _QueueUserWorkItem: Pointer;
  14999. function QueueUserWorkItem;
  15000. begin
  15001. GetProcedureAddress(_QueueUserWorkItem, kernel32, 'QueueUserWorkItem');
  15002. asm
  15003. MOV ESP, EBP
  15004. POP EBP
  15005. JMP [_QueueUserWorkItem]
  15006. end;
  15007. end;
  15008. var
  15009. _BindIoCompletionCallback: Pointer;
  15010. function BindIoCompletionCallback;
  15011. begin
  15012. GetProcedureAddress(_BindIoCompletionCallback, kernel32, 'BindIoCompletionCallback');
  15013. asm
  15014. MOV ESP, EBP
  15015. POP EBP
  15016. JMP [_BindIoCompletionCallback]
  15017. end;
  15018. end;
  15019. var
  15020. _CreateTimerQueue: Pointer;
  15021. function CreateTimerQueue;
  15022. begin
  15023. GetProcedureAddress(_CreateTimerQueue, kernel32, 'CreateTimerQueue');
  15024. asm
  15025. MOV ESP, EBP
  15026. POP EBP
  15027. JMP [_CreateTimerQueue]
  15028. end;
  15029. end;
  15030. var
  15031. _CreateTimerQueueTimer: Pointer;
  15032. function CreateTimerQueueTimer;
  15033. begin
  15034. GetProcedureAddress(_CreateTimerQueueTimer, kernel32, 'CreateTimerQueueTimer');
  15035. asm
  15036. MOV ESP, EBP
  15037. POP EBP
  15038. JMP [_CreateTimerQueueTimer]
  15039. end;
  15040. end;
  15041. var
  15042. _ChangeTimerQueueTimer: Pointer;
  15043. function ChangeTimerQueueTimer;
  15044. begin
  15045. GetProcedureAddress(_ChangeTimerQueueTimer, kernel32, 'ChangeTimerQueueTimer');
  15046. asm
  15047. MOV ESP, EBP
  15048. POP EBP
  15049. JMP [_ChangeTimerQueueTimer]
  15050. end;
  15051. end;
  15052. var
  15053. _DeleteTimerQueueTimer: Pointer;
  15054. function DeleteTimerQueueTimer;
  15055. begin
  15056. GetProcedureAddress(_DeleteTimerQueueTimer, kernel32, 'DeleteTimerQueueTimer');
  15057. asm
  15058. MOV ESP, EBP
  15059. POP EBP
  15060. JMP [_DeleteTimerQueueTimer]
  15061. end;
  15062. end;
  15063. var
  15064. _DeleteTimerQueueEx: Pointer;
  15065. function DeleteTimerQueueEx;
  15066. begin
  15067. GetProcedureAddress(_DeleteTimerQueueEx, kernel32, 'DeleteTimerQueueEx');
  15068. asm
  15069. MOV ESP, EBP
  15070. POP EBP
  15071. JMP [_DeleteTimerQueueEx]
  15072. end;
  15073. end;
  15074. var
  15075. _SetTimerQueueTimer: Pointer;
  15076. function SetTimerQueueTimer;
  15077. begin
  15078. GetProcedureAddress(_SetTimerQueueTimer, kernel32, 'SetTimerQueueTimer');
  15079. asm
  15080. MOV ESP, EBP
  15081. POP EBP
  15082. JMP [_SetTimerQueueTimer]
  15083. end;
  15084. end;
  15085. var
  15086. _CancelTimerQueueTimer: Pointer;
  15087. function CancelTimerQueueTimer;
  15088. begin
  15089. GetProcedureAddress(_CancelTimerQueueTimer, kernel32, 'CancelTimerQueueTimer');
  15090. asm
  15091. MOV ESP, EBP
  15092. POP EBP
  15093. JMP [_CancelTimerQueueTimer]
  15094. end;
  15095. end;
  15096. var
  15097. _DeleteTimerQueue: Pointer;
  15098. function DeleteTimerQueue;
  15099. begin
  15100. GetProcedureAddress(_DeleteTimerQueue, kernel32, 'DeleteTimerQueue');
  15101. asm
  15102. MOV ESP, EBP
  15103. POP EBP
  15104. JMP [_DeleteTimerQueue]
  15105. end;
  15106. end;
  15107. var
  15108. _GetCurrentHwProfileA: Pointer;
  15109. function GetCurrentHwProfileA;
  15110. begin
  15111. GetProcedureAddress(_GetCurrentHwProfileA, advapi32, 'GetCurrentHwProfileA');
  15112. asm
  15113. MOV ESP, EBP
  15114. POP EBP
  15115. JMP [_GetCurrentHwProfileA]
  15116. end;
  15117. end;
  15118. var
  15119. _GetCurrentHwProfileW: Pointer;
  15120. function GetCurrentHwProfileW;
  15121. begin
  15122. GetProcedureAddress(_GetCurrentHwProfileW, advapi32, 'GetCurrentHwProfileW');
  15123. asm
  15124. MOV ESP, EBP
  15125. POP EBP
  15126. JMP [_GetCurrentHwProfileW]
  15127. end;
  15128. end;
  15129. var
  15130. _GetCurrentHwProfile: Pointer;
  15131. function GetCurrentHwProfile;
  15132. begin
  15133. GetProcedureAddress(_GetCurrentHwProfile, advapi32, 'GetCurrentHwProfile' + AWSuffix);
  15134. asm
  15135. MOV ESP, EBP
  15136. POP EBP
  15137. JMP [_GetCurrentHwProfile]
  15138. end;
  15139. end;
  15140. var
  15141. _QueryPerformanceCounter: Pointer;
  15142. function QueryPerformanceCounter;
  15143. begin
  15144. GetProcedureAddress(_QueryPerformanceCounter, kernel32, 'QueryPerformanceCounter');
  15145. asm
  15146. MOV ESP, EBP
  15147. POP EBP
  15148. JMP [_QueryPerformanceCounter]
  15149. end;
  15150. end;
  15151. var
  15152. _QueryPerformanceFrequency: Pointer;
  15153. function QueryPerformanceFrequency;
  15154. begin
  15155. GetProcedureAddress(_QueryPerformanceFrequency, kernel32, 'QueryPerformanceFrequency');
  15156. asm
  15157. MOV ESP, EBP
  15158. POP EBP
  15159. JMP [_QueryPerformanceFrequency]
  15160. end;
  15161. end;
  15162. var
  15163. _GetVersionExA: Pointer;
  15164. function GetVersionExA;
  15165. begin
  15166. GetProcedureAddress(_GetVersionExA, kernel32, 'GetVersionExA');
  15167. asm
  15168. MOV ESP, EBP
  15169. POP EBP
  15170. JMP [_GetVersionExA]
  15171. end;
  15172. end;
  15173. var
  15174. _GetVersionExW: Pointer;
  15175. function GetVersionExW;
  15176. begin
  15177. GetProcedureAddress(_GetVersionExW, kernel32, 'GetVersionExW');
  15178. asm
  15179. MOV ESP, EBP
  15180. POP EBP
  15181. JMP [_GetVersionExW]
  15182. end;
  15183. end;
  15184. var
  15185. _GetVersionEx: Pointer;
  15186. function GetVersionEx;
  15187. begin
  15188. GetProcedureAddress(_GetVersionEx, kernel32, 'GetVersionEx' + AWSuffix);
  15189. asm
  15190. MOV ESP, EBP
  15191. POP EBP
  15192. JMP [_GetVersionEx]
  15193. end;
  15194. end;
  15195. var
  15196. _VerifyVersionInfoA: Pointer;
  15197. function VerifyVersionInfoA;
  15198. begin
  15199. GetProcedureAddress(_VerifyVersionInfoA, kernel32, 'VerifyVersionInfoA');
  15200. asm
  15201. MOV ESP, EBP
  15202. POP EBP
  15203. JMP [_VerifyVersionInfoA]
  15204. end;
  15205. end;
  15206. var
  15207. _VerifyVersionInfoW: Pointer;
  15208. function VerifyVersionInfoW;
  15209. begin
  15210. GetProcedureAddress(_VerifyVersionInfoW, kernel32, 'VerifyVersionInfoW');
  15211. asm
  15212. MOV ESP, EBP
  15213. POP EBP
  15214. JMP [_VerifyVersionInfoW]
  15215. end;
  15216. end;
  15217. var
  15218. _VerifyVersionInfo: Pointer;
  15219. function VerifyVersionInfo;
  15220. begin
  15221. GetProcedureAddress(_VerifyVersionInfo, kernel32, 'VerifyVersionInfo' + AWSuffix);
  15222. asm
  15223. MOV ESP, EBP
  15224. POP EBP
  15225. JMP [_VerifyVersionInfo]
  15226. end;
  15227. end;
  15228. var
  15229. _GetSystemPowerStatus: Pointer;
  15230. function GetSystemPowerStatus;
  15231. begin
  15232. GetProcedureAddress(_GetSystemPowerStatus, kernel32, 'GetSystemPowerStatus');
  15233. asm
  15234. MOV ESP, EBP
  15235. POP EBP
  15236. JMP [_GetSystemPowerStatus]
  15237. end;
  15238. end;
  15239. var
  15240. _SetSystemPowerState: Pointer;
  15241. function SetSystemPowerState;
  15242. begin
  15243. GetProcedureAddress(_SetSystemPowerState, kernel32, 'SetSystemPowerState');
  15244. asm
  15245. MOV ESP, EBP
  15246. POP EBP
  15247. JMP [_SetSystemPowerState]
  15248. end;
  15249. end;
  15250. var
  15251. _AllocateUserPhysicalPages: Pointer;
  15252. function AllocateUserPhysicalPages;
  15253. begin
  15254. GetProcedureAddress(_AllocateUserPhysicalPages, kernel32, 'AllocateUserPhysicalPages');
  15255. asm
  15256. MOV ESP, EBP
  15257. POP EBP
  15258. JMP [_AllocateUserPhysicalPages]
  15259. end;
  15260. end;
  15261. var
  15262. _FreeUserPhysicalPages: Pointer;
  15263. function FreeUserPhysicalPages;
  15264. begin
  15265. GetProcedureAddress(_FreeUserPhysicalPages, kernel32, 'FreeUserPhysicalPages');
  15266. asm
  15267. MOV ESP, EBP
  15268. POP EBP
  15269. JMP [_FreeUserPhysicalPages]
  15270. end;
  15271. end;
  15272. var
  15273. _MapUserPhysicalPages: Pointer;
  15274. function MapUserPhysicalPages;
  15275. begin
  15276. GetProcedureAddress(_MapUserPhysicalPages, kernel32, 'MapUserPhysicalPages');
  15277. asm
  15278. MOV ESP, EBP
  15279. POP EBP
  15280. JMP [_MapUserPhysicalPages]
  15281. end;
  15282. end;
  15283. var
  15284. _MapUserPhysicalPagesScatter: Pointer;
  15285. function MapUserPhysicalPagesScatter;
  15286. begin
  15287. GetProcedureAddress(_MapUserPhysicalPagesScatter, kernel32, 'MapUserPhysicalPagesScatter');
  15288. asm
  15289. MOV ESP, EBP
  15290. POP EBP
  15291. JMP [_MapUserPhysicalPagesScatter]
  15292. end;
  15293. end;
  15294. var
  15295. _CreateJobObjectA: Pointer;
  15296. function CreateJobObjectA;
  15297. begin
  15298. GetProcedureAddress(_CreateJobObjectA, kernel32, 'CreateJobObjectA');
  15299. asm
  15300. MOV ESP, EBP
  15301. POP EBP
  15302. JMP [_CreateJobObjectA]
  15303. end;
  15304. end;
  15305. var
  15306. _CreateJobObjectW: Pointer;
  15307. function CreateJobObjectW;
  15308. begin
  15309. GetProcedureAddress(_CreateJobObjectW, kernel32, 'CreateJobObjectW');
  15310. asm
  15311. MOV ESP, EBP
  15312. POP EBP
  15313. JMP [_CreateJobObjectW]
  15314. end;
  15315. end;
  15316. var
  15317. _CreateJobObject: Pointer;
  15318. function CreateJobObject;
  15319. begin
  15320. GetProcedureAddress(_CreateJobObject, kernel32, 'CreateJobObject' + AWSuffix);
  15321. asm
  15322. MOV ESP, EBP
  15323. POP EBP
  15324. JMP [_CreateJobObject]
  15325. end;
  15326. end;
  15327. var
  15328. _OpenJobObjectA: Pointer;
  15329. function OpenJobObjectA;
  15330. begin
  15331. GetProcedureAddress(_OpenJobObjectA, kernel32, 'OpenJobObjectA');
  15332. asm
  15333. MOV ESP, EBP
  15334. POP EBP
  15335. JMP [_OpenJobObjectA]
  15336. end;
  15337. end;
  15338. var
  15339. _OpenJobObjectW: Pointer;
  15340. function OpenJobObjectW;
  15341. begin
  15342. GetProcedureAddress(_OpenJobObjectW, kernel32, 'OpenJobObjectW');
  15343. asm
  15344. MOV ESP, EBP
  15345. POP EBP
  15346. JMP [_OpenJobObjectW]
  15347. end;
  15348. end;
  15349. var
  15350. _OpenJobObject: Pointer;
  15351. function OpenJobObject;
  15352. begin
  15353. GetProcedureAddress(_OpenJobObject, kernel32, 'OpenJobObject' + AWSuffix);
  15354. asm
  15355. MOV ESP, EBP
  15356. POP EBP
  15357. JMP [_OpenJobObject]
  15358. end;
  15359. end;
  15360. var
  15361. _AssignProcessToJobObject: Pointer;
  15362. function AssignProcessToJobObject;
  15363. begin
  15364. GetProcedureAddress(_AssignProcessToJobObject, kernel32, 'AssignProcessToJobObject');
  15365. asm
  15366. MOV ESP, EBP
  15367. POP EBP
  15368. JMP [_AssignProcessToJobObject]
  15369. end;
  15370. end;
  15371. var
  15372. _TerminateJobObject: Pointer;
  15373. function TerminateJobObject;
  15374. begin
  15375. GetProcedureAddress(_TerminateJobObject, kernel32, 'TerminateJobObject');
  15376. asm
  15377. MOV ESP, EBP
  15378. POP EBP
  15379. JMP [_TerminateJobObject]
  15380. end;
  15381. end;
  15382. var
  15383. _QueryInformationJobObject: Pointer;
  15384. function QueryInformationJobObject;
  15385. begin
  15386. GetProcedureAddress(_QueryInformationJobObject, kernel32, 'QueryInformationJobObject');
  15387. asm
  15388. MOV ESP, EBP
  15389. POP EBP
  15390. JMP [_QueryInformationJobObject]
  15391. end;
  15392. end;
  15393. var
  15394. _SetInformationJobObject: Pointer;
  15395. function SetInformationJobObject;
  15396. begin
  15397. GetProcedureAddress(_SetInformationJobObject, kernel32, 'SetInformationJobObject');
  15398. asm
  15399. MOV ESP, EBP
  15400. POP EBP
  15401. JMP [_SetInformationJobObject]
  15402. end;
  15403. end;
  15404. var
  15405. _IsProcessInJob: Pointer;
  15406. function IsProcessInJob;
  15407. begin
  15408. GetProcedureAddress(_IsProcessInJob, kernel32, 'IsProcessInJob');
  15409. asm
  15410. MOV ESP, EBP
  15411. POP EBP
  15412. JMP [_IsProcessInJob]
  15413. end;
  15414. end;
  15415. var
  15416. _CreateJobSet: Pointer;
  15417. function CreateJobSet;
  15418. begin
  15419. GetProcedureAddress(_CreateJobSet, kernel32, 'CreateJobSet');
  15420. asm
  15421. MOV ESP, EBP
  15422. POP EBP
  15423. JMP [_CreateJobSet]
  15424. end;
  15425. end;
  15426. var
  15427. _AddVectoredExceptionHandler: Pointer;
  15428. function AddVectoredExceptionHandler;
  15429. begin
  15430. GetProcedureAddress(_AddVectoredExceptionHandler, kernel32, 'AddVectoredExceptionHandler');
  15431. asm
  15432. MOV ESP, EBP
  15433. POP EBP
  15434. JMP [_AddVectoredExceptionHandler]
  15435. end;
  15436. end;
  15437. var
  15438. _RemoveVectoredExceptionHandler: Pointer;
  15439. function RemoveVectoredExceptionHandler;
  15440. begin
  15441. GetProcedureAddress(_RemoveVectoredExceptionHandler, kernel32, 'RemoveVectoredExceptionHandler');
  15442. asm
  15443. MOV ESP, EBP
  15444. POP EBP
  15445. JMP [_RemoveVectoredExceptionHandler]
  15446. end;
  15447. end;
  15448. var
  15449. _FindFirstVolumeA: Pointer;
  15450. function FindFirstVolumeA;
  15451. begin
  15452. GetProcedureAddress(_FindFirstVolumeA, kernel32, 'FindFirstVolumeA');
  15453. asm
  15454. MOV ESP, EBP
  15455. POP EBP
  15456. JMP [_FindFirstVolumeA]
  15457. end;
  15458. end;
  15459. var
  15460. _FindFirstVolumeW: Pointer;
  15461. function FindFirstVolumeW;
  15462. begin
  15463. GetProcedureAddress(_FindFirstVolumeW, kernel32, 'FindFirstVolumeW');
  15464. asm
  15465. MOV ESP, EBP
  15466. POP EBP
  15467. JMP [_FindFirstVolumeW]
  15468. end;
  15469. end;
  15470. var
  15471. _FindFirstVolume: Pointer;
  15472. function FindFirstVolume;
  15473. begin
  15474. GetProcedureAddress(_FindFirstVolume, kernel32, 'FindFirstVolume' + AWSuffix);
  15475. asm
  15476. MOV ESP, EBP
  15477. POP EBP
  15478. JMP [_FindFirstVolume]
  15479. end;
  15480. end;
  15481. var
  15482. _FindNextVolumeA: Pointer;
  15483. function FindNextVolumeA;
  15484. begin
  15485. GetProcedureAddress(_FindNextVolumeA, kernel32, 'FindNextVolumeA');
  15486. asm
  15487. MOV ESP, EBP
  15488. POP EBP
  15489. JMP [_FindNextVolumeA]
  15490. end;
  15491. end;
  15492. var
  15493. _FindNextVolumeW: Pointer;
  15494. function FindNextVolumeW;
  15495. begin
  15496. GetProcedureAddress(_FindNextVolumeW, kernel32, 'FindNextVolumeW');
  15497. asm
  15498. MOV ESP, EBP
  15499. POP EBP
  15500. JMP [_FindNextVolumeW]
  15501. end;
  15502. end;
  15503. var
  15504. _FindNextVolume: Pointer;
  15505. function FindNextVolume;
  15506. begin
  15507. GetProcedureAddress(_FindNextVolume, kernel32, 'FindNextVolume' + AWSuffix);
  15508. asm
  15509. MOV ESP, EBP
  15510. POP EBP
  15511. JMP [_FindNextVolume]
  15512. end;
  15513. end;
  15514. var
  15515. _FindVolumeClose: Pointer;
  15516. function FindVolumeClose;
  15517. begin
  15518. GetProcedureAddress(_FindVolumeClose, kernel32, 'FindVolumeClose');
  15519. asm
  15520. MOV ESP, EBP
  15521. POP EBP
  15522. JMP [_FindVolumeClose]
  15523. end;
  15524. end;
  15525. var
  15526. _FindFirstVolumeMountPointA: Pointer;
  15527. function FindFirstVolumeMountPointA;
  15528. begin
  15529. GetProcedureAddress(_FindFirstVolumeMountPointA, kernel32, 'FindFirstVolumeMountPointA');
  15530. asm
  15531. MOV ESP, EBP
  15532. POP EBP
  15533. JMP [_FindFirstVolumeMountPointA]
  15534. end;
  15535. end;
  15536. var
  15537. _FindFirstVolumeMountPointW: Pointer;
  15538. function FindFirstVolumeMountPointW;
  15539. begin
  15540. GetProcedureAddress(_FindFirstVolumeMountPointW, kernel32, 'FindFirstVolumeMountPointW');
  15541. asm
  15542. MOV ESP, EBP
  15543. POP EBP
  15544. JMP [_FindFirstVolumeMountPointW]
  15545. end;
  15546. end;
  15547. var
  15548. _FindFirstVolumeMountPoint: Pointer;
  15549. function FindFirstVolumeMountPoint;
  15550. begin
  15551. GetProcedureAddress(_FindFirstVolumeMountPoint, kernel32, 'FindFirstVolumeMountPoint' + AWSuffix);
  15552. asm
  15553. MOV ESP, EBP
  15554. POP EBP
  15555. JMP [_FindFirstVolumeMountPoint]
  15556. end;
  15557. end;
  15558. var
  15559. _FindNextVolumeMountPointA: Pointer;
  15560. function FindNextVolumeMountPointA;
  15561. begin
  15562. GetProcedureAddress(_FindNextVolumeMountPointA, kernel32, 'FindNextVolumeMountPointA');
  15563. asm
  15564. MOV ESP, EBP
  15565. POP EBP
  15566. JMP [_FindNextVolumeMountPointA]
  15567. end;
  15568. end;
  15569. var
  15570. _FindNextVolumeMountPointW: Pointer;
  15571. function FindNextVolumeMountPointW;
  15572. begin
  15573. GetProcedureAddress(_FindNextVolumeMountPointW, kernel32, 'FindNextVolumeMountPointW');
  15574. asm
  15575. MOV ESP, EBP
  15576. POP EBP
  15577. JMP [_FindNextVolumeMountPointW]
  15578. end;
  15579. end;
  15580. var
  15581. _FindNextVolumeMountPoint: Pointer;
  15582. function FindNextVolumeMountPoint;
  15583. begin
  15584. GetProcedureAddress(_FindNextVolumeMountPoint, kernel32, 'FindNextVolumeMountPoint' + AWSuffix);
  15585. asm
  15586. MOV ESP, EBP
  15587. POP EBP
  15588. JMP [_FindNextVolumeMountPoint]
  15589. end;
  15590. end;
  15591. var
  15592. _FindVolumeMountPointClose: Pointer;
  15593. function FindVolumeMountPointClose;
  15594. begin
  15595. GetProcedureAddress(_FindVolumeMountPointClose, kernel32, 'FindVolumeMountPointClose');
  15596. asm
  15597. MOV ESP, EBP
  15598. POP EBP
  15599. JMP [_FindVolumeMountPointClose]
  15600. end;
  15601. end;
  15602. var
  15603. _SetVolumeMountPointA: Pointer;
  15604. function SetVolumeMountPointA;
  15605. begin
  15606. GetProcedureAddress(_SetVolumeMountPointA, kernel32, 'SetVolumeMountPointA');
  15607. asm
  15608. MOV ESP, EBP
  15609. POP EBP
  15610. JMP [_SetVolumeMountPointA]
  15611. end;
  15612. end;
  15613. var
  15614. _SetVolumeMountPointW: Pointer;
  15615. function SetVolumeMountPointW;
  15616. begin
  15617. GetProcedureAddress(_SetVolumeMountPointW, kernel32, 'SetVolumeMountPointW');
  15618. asm
  15619. MOV ESP, EBP
  15620. POP EBP
  15621. JMP [_SetVolumeMountPointW]
  15622. end;
  15623. end;
  15624. var
  15625. _SetVolumeMountPoint: Pointer;
  15626. function SetVolumeMountPoint;
  15627. begin
  15628. GetProcedureAddress(_SetVolumeMountPoint, kernel32, 'SetVolumeMountPoint' + AWSuffix);
  15629. asm
  15630. MOV ESP, EBP
  15631. POP EBP
  15632. JMP [_SetVolumeMountPoint]
  15633. end;
  15634. end;
  15635. var
  15636. _DeleteVolumeMountPointA: Pointer;
  15637. function DeleteVolumeMountPointA;
  15638. begin
  15639. GetProcedureAddress(_DeleteVolumeMountPointA, kernel32, 'DeleteVolumeMountPointA');
  15640. asm
  15641. MOV ESP, EBP
  15642. POP EBP
  15643. JMP [_DeleteVolumeMountPointA]
  15644. end;
  15645. end;
  15646. var
  15647. _DeleteVolumeMountPointW: Pointer;
  15648. function DeleteVolumeMountPointW;
  15649. begin
  15650. GetProcedureAddress(_DeleteVolumeMountPointW, kernel32, 'DeleteVolumeMountPointW');
  15651. asm
  15652. MOV ESP, EBP
  15653. POP EBP
  15654. JMP [_DeleteVolumeMountPointW]
  15655. end;
  15656. end;
  15657. var
  15658. _DeleteVolumeMountPoint: Pointer;
  15659. function DeleteVolumeMountPoint;
  15660. begin
  15661. GetProcedureAddress(_DeleteVolumeMountPoint, kernel32, 'DeleteVolumeMountPoint' + AWSuffix);
  15662. asm
  15663. MOV ESP, EBP
  15664. POP EBP
  15665. JMP [_DeleteVolumeMountPoint]
  15666. end;
  15667. end;
  15668. var
  15669. _GetVolumeNameForVolMountPointA: Pointer;
  15670. function GetVolumeNameForVolumeMountPointA;
  15671. begin
  15672. GetProcedureAddress(_GetVolumeNameForVolMountPointA, kernel32, 'GetVolumeNameForVolumeMountPointA');
  15673. asm
  15674. MOV ESP, EBP
  15675. POP EBP
  15676. JMP [_GetVolumeNameForVolMountPointA]
  15677. end;
  15678. end;
  15679. var
  15680. _GetVolumeNameForVolMountPointW: Pointer;
  15681. function GetVolumeNameForVolumeMountPointW;
  15682. begin
  15683. GetProcedureAddress(_GetVolumeNameForVolMountPointW, kernel32, 'GetVolumeNameForVolumeMountPointW');
  15684. asm
  15685. MOV ESP, EBP
  15686. POP EBP
  15687. JMP [_GetVolumeNameForVolMountPointW]
  15688. end;
  15689. end;
  15690. var
  15691. _GetVolumeNameForVolMountPoint: Pointer;
  15692. function GetVolumeNameForVolumeMountPoint;
  15693. begin
  15694. GetProcedureAddress(_GetVolumeNameForVolMountPoint, kernel32, 'GetVolumeNameForVolumeMountPoint' + AWSuffix);
  15695. asm
  15696. MOV ESP, EBP
  15697. POP EBP
  15698. JMP [_GetVolumeNameForVolMountPoint]
  15699. end;
  15700. end;
  15701. var
  15702. _GetVolumePathNameA: Pointer;
  15703. function GetVolumePathNameA;
  15704. begin
  15705. GetProcedureAddress(_GetVolumePathNameA, kernel32, 'GetVolumePathNameA');
  15706. asm
  15707. MOV ESP, EBP
  15708. POP EBP
  15709. JMP [_GetVolumePathNameA]
  15710. end;
  15711. end;
  15712. var
  15713. _GetVolumePathNameW: Pointer;
  15714. function GetVolumePathNameW;
  15715. begin
  15716. GetProcedureAddress(_GetVolumePathNameW, kernel32, 'GetVolumePathNameW');
  15717. asm
  15718. MOV ESP, EBP
  15719. POP EBP
  15720. JMP [_GetVolumePathNameW]
  15721. end;
  15722. end;
  15723. var
  15724. _GetVolumePathName: Pointer;
  15725. function GetVolumePathName;
  15726. begin
  15727. GetProcedureAddress(_GetVolumePathName, kernel32, 'GetVolumePathName' + AWSuffix);
  15728. asm
  15729. MOV ESP, EBP
  15730. POP EBP
  15731. JMP [_GetVolumePathName]
  15732. end;
  15733. end;
  15734. var
  15735. _GetVolumePathNamesForVolNameA: Pointer;
  15736. function GetVolumePathNamesForVolumeNameA;
  15737. begin
  15738. GetProcedureAddress(_GetVolumePathNamesForVolNameA, kernel32, 'GetVolumePathNamesForVolumeNameA');
  15739. asm
  15740. MOV ESP, EBP
  15741. POP EBP
  15742. JMP [_GetVolumePathNamesForVolNameA]
  15743. end;
  15744. end;
  15745. var
  15746. _GetVolumePathNamesForVolNameW: Pointer;
  15747. function GetVolumePathNamesForVolumeNameW;
  15748. begin
  15749. GetProcedureAddress(_GetVolumePathNamesForVolNameW, kernel32, 'GetVolumePathNamesForVolumeNameW');
  15750. asm
  15751. MOV ESP, EBP
  15752. POP EBP
  15753. JMP [_GetVolumePathNamesForVolNameW]
  15754. end;
  15755. end;
  15756. var
  15757. _GetVolumePathNamesForVolName: Pointer;
  15758. function GetVolumePathNamesForVolumeName;
  15759. begin
  15760. GetProcedureAddress(_GetVolumePathNamesForVolName, kernel32, 'GetVolumePathNamesForVolumeName' + AWSuffix);
  15761. asm
  15762. MOV ESP, EBP
  15763. POP EBP
  15764. JMP [_GetVolumePathNamesForVolName]
  15765. end;
  15766. end;
  15767. var
  15768. _CreateActCtxA: Pointer;
  15769. function CreateActCtxA;
  15770. begin
  15771. GetProcedureAddress(_CreateActCtxA, kernel32, 'CreateActCtxA');
  15772. asm
  15773. MOV ESP, EBP
  15774. POP EBP
  15775. JMP [_CreateActCtxA]
  15776. end;
  15777. end;
  15778. var
  15779. _CreateActCtxW: Pointer;
  15780. function CreateActCtxW;
  15781. begin
  15782. GetProcedureAddress(_CreateActCtxW, kernel32, 'CreateActCtxW');
  15783. asm
  15784. MOV ESP, EBP
  15785. POP EBP
  15786. JMP [_CreateActCtxW]
  15787. end;
  15788. end;
  15789. var
  15790. _CreateActCtx: Pointer;
  15791. function CreateActCtx;
  15792. begin
  15793. GetProcedureAddress(_CreateActCtx, kernel32, 'CreateActCtx' + AWSuffix);
  15794. asm
  15795. MOV ESP, EBP
  15796. POP EBP
  15797. JMP [_CreateActCtx]
  15798. end;
  15799. end;
  15800. var
  15801. _AddRefActCtx: Pointer;
  15802. procedure AddRefActCtx;
  15803. begin
  15804. GetProcedureAddress(_AddRefActCtx, kernel32, 'AddRefActCtx');
  15805. asm
  15806. MOV ESP, EBP
  15807. POP EBP
  15808. JMP [_AddRefActCtx]
  15809. end;
  15810. end;
  15811. var
  15812. _ReleaseActCtx: Pointer;
  15813. procedure ReleaseActCtx;
  15814. begin
  15815. GetProcedureAddress(_ReleaseActCtx, kernel32, 'ReleaseActCtx');
  15816. asm
  15817. MOV ESP, EBP
  15818. POP EBP
  15819. JMP [_ReleaseActCtx]
  15820. end;
  15821. end;
  15822. var
  15823. _ZombifyActCtx: Pointer;
  15824. function ZombifyActCtx;
  15825. begin
  15826. GetProcedureAddress(_ZombifyActCtx, kernel32, 'ZombifyActCtx');
  15827. asm
  15828. MOV ESP, EBP
  15829. POP EBP
  15830. JMP [_ZombifyActCtx]
  15831. end;
  15832. end;
  15833. var
  15834. _ActivateActCtx: Pointer;
  15835. function ActivateActCtx;
  15836. begin
  15837. GetProcedureAddress(_ActivateActCtx, kernel32, 'ActivateActCtx');
  15838. asm
  15839. MOV ESP, EBP
  15840. POP EBP
  15841. JMP [_ActivateActCtx]
  15842. end;
  15843. end;
  15844. var
  15845. _DeactivateActCtx: Pointer;
  15846. function DeactivateActCtx;
  15847. begin
  15848. GetProcedureAddress(_DeactivateActCtx, kernel32, 'DeactivateActCtx');
  15849. asm
  15850. MOV ESP, EBP
  15851. POP EBP
  15852. JMP [_DeactivateActCtx]
  15853. end;
  15854. end;
  15855. var
  15856. _GetCurrentActCtx: Pointer;
  15857. function GetCurrentActCtx;
  15858. begin
  15859. GetProcedureAddress(_GetCurrentActCtx, kernel32, 'GetCurrentActCtx');
  15860. asm
  15861. MOV ESP, EBP
  15862. POP EBP
  15863. JMP [_GetCurrentActCtx]
  15864. end;
  15865. end;
  15866. var
  15867. _FindActCtxSectionStringA: Pointer;
  15868. function FindActCtxSectionStringA;
  15869. begin
  15870. GetProcedureAddress(_FindActCtxSectionStringA, kernel32, 'FindActCtxSectionStringA');
  15871. asm
  15872. MOV ESP, EBP
  15873. POP EBP
  15874. JMP [_FindActCtxSectionStringA]
  15875. end;
  15876. end;
  15877. var
  15878. _FindActCtxSectionStringW: Pointer;
  15879. function FindActCtxSectionStringW;
  15880. begin
  15881. GetProcedureAddress(_FindActCtxSectionStringW, kernel32, 'FindActCtxSectionStringW');
  15882. asm
  15883. MOV ESP, EBP
  15884. POP EBP
  15885. JMP [_FindActCtxSectionStringW]
  15886. end;
  15887. end;
  15888. var
  15889. _FindActCtxSectionString: Pointer;
  15890. function FindActCtxSectionString;
  15891. begin
  15892. GetProcedureAddress(_FindActCtxSectionString, kernel32, 'FindActCtxSectionString' + AWSuffix);
  15893. asm
  15894. MOV ESP, EBP
  15895. POP EBP
  15896. JMP [_FindActCtxSectionString]
  15897. end;
  15898. end;
  15899. var
  15900. _FindActCtxSectionGuid: Pointer;
  15901. function FindActCtxSectionGuid;
  15902. begin
  15903. GetProcedureAddress(_FindActCtxSectionGuid, kernel32, 'FindActCtxSectionGuid');
  15904. asm
  15905. MOV ESP, EBP
  15906. POP EBP
  15907. JMP [_FindActCtxSectionGuid]
  15908. end;
  15909. end;
  15910. var
  15911. _QueryActCtxW: Pointer;
  15912. function QueryActCtxW;
  15913. begin
  15914. GetProcedureAddress(_QueryActCtxW, kernel32, 'QueryActCtxW');
  15915. asm
  15916. MOV ESP, EBP
  15917. POP EBP
  15918. JMP [_QueryActCtxW]
  15919. end;
  15920. end;
  15921. var
  15922. _ProcessIdToSessionId: Pointer;
  15923. function ProcessIdToSessionId;
  15924. begin
  15925. GetProcedureAddress(_ProcessIdToSessionId, kernel32, 'ProcessIdToSessionId');
  15926. asm
  15927. MOV ESP, EBP
  15928. POP EBP
  15929. JMP [_ProcessIdToSessionId]
  15930. end;
  15931. end;
  15932. var
  15933. _WTSGetActiveConsoleSessionId: Pointer;
  15934. function WTSGetActiveConsoleSessionId;
  15935. begin
  15936. GetProcedureAddress(_WTSGetActiveConsoleSessionId, kernel32, 'WTSGetActiveConsoleSessionId');
  15937. asm
  15938. MOV ESP, EBP
  15939. POP EBP
  15940. JMP [_WTSGetActiveConsoleSessionId]
  15941. end;
  15942. end;
  15943. var
  15944. _IsWow64Process: Pointer;
  15945. function IsWow64Process;
  15946. begin
  15947. GetProcedureAddress(_IsWow64Process, kernel32, 'IsWow64Process');
  15948. asm
  15949. MOV ESP, EBP
  15950. POP EBP
  15951. JMP [_IsWow64Process]
  15952. end;
  15953. end;
  15954. var
  15955. _GetLogicalProcessorInformation: Pointer;
  15956. function GetLogicalProcessorInformation;
  15957. begin
  15958. GetProcedureAddress(_GetLogicalProcessorInformation, kernel32, 'GetLogicalProcessorInformation');
  15959. asm
  15960. MOV ESP, EBP
  15961. POP EBP
  15962. JMP [_GetLogicalProcessorInformation]
  15963. end;
  15964. end;
  15965. var
  15966. _GetNumaHighestNodeNumber: Pointer;
  15967. function GetNumaHighestNodeNumber;
  15968. begin
  15969. GetProcedureAddress(_GetNumaHighestNodeNumber, kernel32, 'GetNumaHighestNodeNumber');
  15970. asm
  15971. MOV ESP, EBP
  15972. POP EBP
  15973. JMP [_GetNumaHighestNodeNumber]
  15974. end;
  15975. end;
  15976. var
  15977. _GetNumaProcessorNode: Pointer;
  15978. function GetNumaProcessorNode;
  15979. begin
  15980. GetProcedureAddress(_GetNumaProcessorNode, kernel32, 'GetNumaProcessorNode');
  15981. asm
  15982. MOV ESP, EBP
  15983. POP EBP
  15984. JMP [_GetNumaProcessorNode]
  15985. end;
  15986. end;
  15987. var
  15988. _GetNumaNodeProcessorMask: Pointer;
  15989. function GetNumaNodeProcessorMask;
  15990. begin
  15991. GetProcedureAddress(_GetNumaNodeProcessorMask, kernel32, 'GetNumaNodeProcessorMask');
  15992. asm
  15993. MOV ESP, EBP
  15994. POP EBP
  15995. JMP [_GetNumaNodeProcessorMask]
  15996. end;
  15997. end;
  15998. var
  15999. _GetNumaAvailableMemoryNode: Pointer;
  16000. function GetNumaAvailableMemoryNode;
  16001. begin
  16002. GetProcedureAddress(_GetNumaAvailableMemoryNode, kernel32, 'GetNumaAvailableMemoryNode');
  16003. asm
  16004. MOV ESP, EBP
  16005. POP EBP
  16006. JMP [_GetNumaAvailableMemoryNode]
  16007. end;
  16008. end;
  16009. {$ELSE}
  16010. function InterlockedCompareExchange64; external kernel32 name 'InterlockedCompareExchange64';
  16011. function InterlockedIncrement; external kernel32 name 'InterlockedIncrement';
  16012. function InterlockedDecrement; external kernel32 name 'InterlockedDecrement';
  16013. function InterlockedExchange; external kernel32 name 'InterlockedExchange';
  16014. function InterlockedExchangeAdd; external kernel32 name 'InterlockedExchangeAdd';
  16015. function InterlockedCompareExchange; external kernel32 name 'InterlockedCompareExchange';
  16016. procedure InitializeSListHead; external kernel32 name 'InitializeSListHead';
  16017. function InterlockedPopEntrySList; external kernel32 name 'InterlockedPopEntrySList';
  16018. function InterlockedPushEntrySList; external kernel32 name 'InterlockedPushEntrySList';
  16019. function InterlockedFlushSList; external kernel32 name 'InterlockedFlushSList';
  16020. function QueryDepthSList; external kernel32 name 'QueryDepthSList';
  16021. function FreeResource; external kernel32 name 'FreeResource';
  16022. function LockResource; external kernel32 name 'LockResource';
  16023. function FreeLibrary; external kernel32 name 'FreeLibrary';
  16024. procedure FreeLibraryAndExitThread; external kernel32 name 'FreeLibraryAndExitThread';
  16025. function DisableThreadLibraryCalls; external kernel32 name 'DisableThreadLibraryCalls';
  16026. function GetProcAddress; external kernel32 name 'GetProcAddress';
  16027. function GetVersion; external kernel32 name 'GetVersion';
  16028. function GlobalAlloc; external kernel32 name 'GlobalAlloc';
  16029. function GlobalReAlloc; external kernel32 name 'GlobalReAlloc';
  16030. function GlobalSize; external kernel32 name 'GlobalSize';
  16031. function GlobalFlags; external kernel32 name 'GlobalFlags';
  16032. function GlobalLock; external kernel32 name 'GlobalLock';
  16033. function GlobalHandle; external kernel32 name 'GlobalHandle';
  16034. function GlobalUnlock; external kernel32 name 'GlobalUnlock';
  16035. function GlobalFree; external kernel32 name 'GlobalFree';
  16036. function GlobalCompact; external kernel32 name 'GlobalCompact';
  16037. procedure GlobalFix; external kernel32 name 'GlobalFix';
  16038. procedure GlobalUnfix; external kernel32 name 'GlobalUnfix';
  16039. function GlobalWire; external kernel32 name 'GlobalWire';
  16040. function GlobalUnWire; external kernel32 name 'GlobalUnWire';
  16041. procedure GlobalMemoryStatus; external kernel32 name 'GlobalMemoryStatus';
  16042. function GlobalMemoryStatusEx; external kernel32 name 'GlobalMemoryStatusEx';
  16043. function LocalAlloc; external kernel32 name 'LocalAlloc';
  16044. function LocalReAlloc; external kernel32 name 'LocalReAlloc';
  16045. function LocalLock; external kernel32 name 'LocalLock';
  16046. function LocalHandle; external kernel32 name 'LocalHandle';
  16047. function LocalUnlock; external kernel32 name 'LocalUnlock';
  16048. function LocalSize; external kernel32 name 'LocalSize';
  16049. function LocalFlags; external kernel32 name 'LocalFlags';
  16050. function LocalFree; external kernel32 name 'LocalFree';
  16051. function LocalShrink; external kernel32 name 'LocalShrink';
  16052. function LocalCompact; external kernel32 name 'LocalCompact';
  16053. function FlushInstructionCache; external kernel32 name 'FlushInstructionCache';
  16054. function VirtualAlloc; external kernel32 name 'VirtualAlloc';
  16055. function VirtualFree; external kernel32 name 'VirtualFree';
  16056. function VirtualProtect; external kernel32 name 'VirtualProtect';
  16057. function VirtualQuery; external kernel32 name 'VirtualQuery';
  16058. function VirtualAllocEx; external kernel32 name 'VirtualAllocEx';
  16059. function GetWriteWatch; external kernel32 name 'GetWriteWatch';
  16060. function ResetWriteWatch; external kernel32 name 'ResetWriteWatch';
  16061. function GetLargePageMinimum; external kernel32 name 'GetLargePageMinimum';
  16062. function VirtualFreeEx; external kernel32 name 'VirtualFreeEx';
  16063. function VirtualProtectEx; external kernel32 name 'VirtualProtectEx';
  16064. function VirtualQueryEx; external kernel32 name 'VirtualQueryEx';
  16065. function HeapCreate; external kernel32 name 'HeapCreate';
  16066. function HeapDestroy; external kernel32 name 'HeapDestroy';
  16067. function HeapAlloc; external kernel32 name 'HeapAlloc';
  16068. function HeapReAlloc; external kernel32 name 'HeapReAlloc';
  16069. function HeapFree; external kernel32 name 'HeapFree';
  16070. function HeapSize; external kernel32 name 'HeapSize';
  16071. function HeapValidate; external kernel32 name 'HeapValidate';
  16072. function HeapCompact; external kernel32 name 'HeapCompact';
  16073. function GetProcessHeap; external kernel32 name 'GetProcessHeap';
  16074. function GetProcessHeaps; external kernel32 name 'GetProcessHeaps';
  16075. function HeapLock; external kernel32 name 'HeapLock';
  16076. function HeapUnlock; external kernel32 name 'HeapUnlock';
  16077. function HeapWalk; external kernel32 name 'HeapWalk';
  16078. function HeapSetInformation; external kernel32 name 'HeapSetInformation';
  16079. function HeapQueryInformation; external kernel32 name 'HeapQueryInformation';
  16080. function GetBinaryTypeA; external kernel32 name 'GetBinaryTypeA';
  16081. function GetBinaryTypeW; external kernel32 name 'GetBinaryTypeW';
  16082. function GetBinaryType; external kernel32 name 'GetBinaryType' + AWSuffix;
  16083. function GetShortPathNameA; external kernel32 name 'GetShortPathNameA';
  16084. function GetShortPathNameW; external kernel32 name 'GetShortPathNameW';
  16085. function GetShortPathName; external kernel32 name 'GetShortPathName' + AWSuffix;
  16086. function GetLongPathNameA; external kernel32 name 'GetLongPathNameA';
  16087. function GetLongPathNameW; external kernel32 name 'GetLongPathNameW';
  16088. function GetLongPathName; external kernel32 name 'GetLongPathName' + AWSuffix;
  16089. function GetProcessAffinityMask; external kernel32 name 'GetProcessAffinityMask';
  16090. function SetProcessAffinityMask; external kernel32 name 'SetProcessAffinityMask';
  16091. function GetProcessHandleCount; external kernel32 name 'GetProcessHandleCount';
  16092. function GetProcessTimes; external kernel32 name 'GetProcessTimes';
  16093. function GetProcessIoCounters; external kernel32 name 'GetProcessIoCounters';
  16094. function GetProcessWorkingSetSize; external kernel32 name 'GetProcessWorkingSetSize';
  16095. function GetProcessWorkingSetSizeEx; external kernel32 name 'GetProcessWorkingSetSizeEx';
  16096. function SetProcessWorkingSetSize; external kernel32 name 'SetProcessWorkingSetSize';
  16097. function SetProcessWorkingSetSizeEx; external kernel32 name 'SetProcessWorkingSetSizeEx';
  16098. function OpenProcess; external kernel32 name 'OpenProcess';
  16099. function GetCurrentProcess; external kernel32 name 'GetCurrentProcess';
  16100. function GetCurrentProcessId; external kernel32 name 'GetCurrentProcessId';
  16101. procedure ExitProcess; external kernel32 name 'ExitProcess';
  16102. function TerminateProcess; external kernel32 name 'TerminateProcess';
  16103. function GetExitCodeProcess; external kernel32 name 'GetExitCodeProcess';
  16104. procedure FatalExit; external kernel32 name 'FatalExit';
  16105. function GetEnvironmentStringsW; external kernel32 name 'GetEnvironmentStringsW';
  16106. function GetEnvironmentStrings; external kernel32 name 'GetEnvironmentStrings' + AWSuffix;
  16107. {$IFNDEF UNICODE}
  16108. function GetEnvironmentStringsA; external kernel32 name 'GetEnvironmentStringsA';
  16109. {$ENDIF !UNICODE}
  16110. function SetEnvironmentStringsA; external kernel32 name 'SetEnvironmentStringsA';
  16111. function SetEnvironmentStringsW; external kernel32 name 'SetEnvironmentStringsW';
  16112. function SetEnvironmentStrings; external kernel32 name 'SetEnvironmentStrings' + AWSuffix;
  16113. function FreeEnvironmentStringsA; external kernel32 name 'FreeEnvironmentStringsA';
  16114. function FreeEnvironmentStringsW; external kernel32 name 'FreeEnvironmentStringsW';
  16115. function FreeEnvironmentStrings; external kernel32 name 'FreeEnvironmentStrings' + AWSuffix;
  16116. procedure RaiseException; external kernel32 name 'RaiseException';
  16117. function UnhandledExceptionFilter; external kernel32 name 'UnhandledExceptionFilter';
  16118. function SetUnhandledExceptionFilter; external kernel32 name 'SetUnhandledExceptionFilter';
  16119. function CreateFiber; external kernel32 name 'CreateFiber';
  16120. function CreateFiberEx; external kernel32 name 'CreateFiberEx';
  16121. procedure DeleteFiber; external kernel32 name 'DeleteFiber';
  16122. function ConvertThreadToFiber; external kernel32 name 'ConvertThreadToFiber';
  16123. function ConvertThreadToFiberEx; external kernel32 name 'ConvertThreadToFiberEx';
  16124. function ConvertFiberToThread; external kernel32 name 'ConvertFiberToThread';
  16125. procedure SwitchToFiber; external kernel32 name 'SwitchToFiber';
  16126. function SwitchToThread; external kernel32 name 'SwitchToThread';
  16127. function CreateThread; external kernel32 name 'CreateThread';
  16128. function CreateRemoteThread; external kernel32 name 'CreateRemoteThread';
  16129. function GetCurrentThread; external kernel32 name 'GetCurrentThread';
  16130. function GetCurrentThreadId; external kernel32 name 'GetCurrentThreadId';
  16131. function GetProcessIdOfThread; external kernel32 name 'GetProcessIdOfThread';
  16132. function GetThreadId; external kernel32 name 'GetThreadId';
  16133. function GetProcessId; external kernel32 name 'GetProcessId';
  16134. function GetCurrentProcessorNumber; external kernel32 name 'GetCurrentProcessorNumber';
  16135. function SetThreadAffinityMask; external kernel32 name 'SetThreadAffinityMask';
  16136. function SetThreadIdealProcessor; external kernel32 name 'SetThreadIdealProcessor';
  16137. function SetProcessPriorityBoost; external kernel32 name 'SetProcessPriorityBoost';
  16138. function GetProcessPriorityBoost; external kernel32 name 'GetProcessPriorityBoost';
  16139. function RequestWakeupLatency; external kernel32 name 'RequestWakeupLatency';
  16140. function IsSystemResumeAutomatic; external kernel32 name 'IsSystemResumeAutomatic';
  16141. function OpenThread; external kernel32 name 'OpenThread';
  16142. function SetThreadPriority; external kernel32 name 'SetThreadPriority';
  16143. function SetThreadPriorityBoost; external kernel32 name 'SetThreadPriorityBoost';
  16144. function GetThreadPriorityBoost; external kernel32 name 'GetThreadPriorityBoost';
  16145. function GetThreadPriority; external kernel32 name 'GetThreadPriority';
  16146. function GetThreadTimes; external kernel32 name 'GetThreadTimes';
  16147. function GetThreadIOPendingFlag; external kernel32 name 'GetThreadIOPendingFlag';
  16148. procedure ExitThread; external kernel32 name 'ExitThread';
  16149. function TerminateThread; external kernel32 name 'TerminateThread';
  16150. function GetExitCodeThread; external kernel32 name 'GetExitCodeThread';
  16151. function GetThreadSelectorEntry; external kernel32 name 'GetThreadSelectorEntry';
  16152. function SetThreadExecutionState; external kernel32 name 'SetThreadExecutionState';
  16153. function GetLastError; external kernel32 name 'GetLastError';
  16154. procedure SetLastError; external kernel32 name 'SetLastError';
  16155. procedure RestoreLastError; external kernel32 name 'RestoreLastError';
  16156. function GetOverlappedResult; external kernel32 name 'GetOverlappedResult';
  16157. function CreateIoCompletionPort; external kernel32 name 'CreateIoCompletionPort';
  16158. function GetQueuedCompletionStatus; external kernel32 name 'GetQueuedCompletionStatus';
  16159. function PostQueuedCompletionStatus; external kernel32 name 'PostQueuedCompletionStatus';
  16160. function SetErrorMode; external kernel32 name 'SetErrorMode';
  16161. function ReadProcessMemory; external kernel32 name 'ReadProcessMemory';
  16162. function WriteProcessMemory; external kernel32 name 'WriteProcessMemory';
  16163. function GetThreadContext; external kernel32 name 'GetThreadContext';
  16164. function SetThreadContext; external kernel32 name 'SetThreadContext';
  16165. function SuspendThread; external kernel32 name 'SuspendThread';
  16166. function ResumeThread; external kernel32 name 'ResumeThread';
  16167. function QueueUserAPC; external kernel32 name 'QueueUserAPC';
  16168. function IsDebuggerPresent; external kernel32 name 'IsDebuggerPresent';
  16169. function CheckRemoteDebuggerPresent; external kernel32 name 'CheckRemoteDebuggerPresent';
  16170. procedure DebugBreak; external kernel32 name 'DebugBreak';
  16171. function WaitForDebugEvent; external kernel32 name 'WaitForDebugEvent';
  16172. function ContinueDebugEvent; external kernel32 name 'ContinueDebugEvent';
  16173. function DebugActiveProcess; external kernel32 name 'DebugActiveProcess';
  16174. function DebugActiveProcessStop; external kernel32 name 'DebugActiveProcessStop';
  16175. function DebugSetProcessKillOnExit; external kernel32 name 'DebugSetProcessKillOnExit';
  16176. function DebugBreakProcess; external kernel32 name 'DebugBreakProcess';
  16177. procedure InitializeCriticalSection; external kernel32 name 'InitializeCriticalSection';
  16178. procedure EnterCriticalSection; external kernel32 name 'EnterCriticalSection';
  16179. procedure LeaveCriticalSection; external kernel32 name 'LeaveCriticalSection';
  16180. function InitializeCriticalSectionAndSpinCount; external kernel32 name 'InitializeCriticalSectionAndSpinCount';
  16181. function SetCriticalSectionSpinCount; external kernel32 name 'SetCriticalSectionSpinCount';
  16182. function TryEnterCriticalSection; external kernel32 name 'TryEnterCriticalSection';
  16183. procedure DeleteCriticalSection; external kernel32 name 'DeleteCriticalSection';
  16184. function SetEvent; external kernel32 name 'SetEvent';
  16185. function ResetEvent; external kernel32 name 'ResetEvent';
  16186. function PulseEvent; external kernel32 name 'PulseEvent';
  16187. function ReleaseSemaphore; external kernel32 name 'ReleaseSemaphore';
  16188. function ReleaseMutex; external kernel32 name 'ReleaseMutex';
  16189. function WaitForSingleObject; external kernel32 name 'WaitForSingleObject';
  16190. function WaitForMultipleObjects; external kernel32 name 'WaitForMultipleObjects';
  16191. procedure Sleep; external kernel32 name 'Sleep';
  16192. function LoadResource; external kernel32 name 'LoadResource';
  16193. function SizeofResource; external kernel32 name 'SizeofResource';
  16194. function GlobalDeleteAtom; external kernel32 name 'GlobalDeleteAtom';
  16195. function InitAtomTable; external kernel32 name 'InitAtomTable';
  16196. function DeleteAtom; external kernel32 name 'DeleteAtom';
  16197. function SetHandleCount; external kernel32 name 'SetHandleCount';
  16198. function GetLogicalDrives; external kernel32 name 'GetLogicalDrives';
  16199. function LockFile; external kernel32 name 'LockFile';
  16200. function UnlockFile; external kernel32 name 'UnlockFile';
  16201. function LockFileEx; external kernel32 name 'LockFileEx';
  16202. function UnlockFileEx; external kernel32 name 'UnlockFileEx';
  16203. function GetFileInformationByHandle; external kernel32 name 'GetFileInformationByHandle';
  16204. function GetFileType; external kernel32 name 'GetFileType';
  16205. function GetFileSize; external kernel32 name 'GetFileSize';
  16206. function GetFileSizeEx; external kernel32 name 'GetFileSizeEx';
  16207. function GetStdHandle; external kernel32 name 'GetStdHandle';
  16208. function SetStdHandle; external kernel32 name 'SetStdHandle';
  16209. function WriteFile; external kernel32 name 'WriteFile';
  16210. function ReadFile; external kernel32 name 'ReadFile';
  16211. function FlushFileBuffers; external kernel32 name 'FlushFileBuffers';
  16212. function DeviceIoControl; external kernel32 name 'DeviceIoControl';
  16213. function RequestDeviceWakeup; external kernel32 name 'RequestDeviceWakeup';
  16214. function CancelDeviceWakeupRequest; external kernel32 name 'CancelDeviceWakeupRequest';
  16215. function GetDevicePowerState; external kernel32 name 'GetDevicePowerState';
  16216. function SetMessageWaitingIndicator; external kernel32 name 'SetMessageWaitingIndicator';
  16217. function SetEndOfFile; external kernel32 name 'SetEndOfFile';
  16218. function SetFilePointer; external kernel32 name 'SetFilePointer';
  16219. function SetFilePointerEx; external kernel32 name 'SetFilePointerEx';
  16220. function FindClose; external kernel32 name 'FindClose';
  16221. function GetFileTime; external kernel32 name 'GetFileTime';
  16222. function SetFileTime; external kernel32 name 'SetFileTime';
  16223. function SetFileValidData; external kernel32 name 'SetFileValidData';
  16224. function SetFileShortNameA; external kernel32 name 'SetFileShortNameA';
  16225. function SetFileShortNameW; external kernel32 name 'SetFileShortNameW';
  16226. function SetFileShortName; external kernel32 name 'SetFileShortName' + AWSuffix;
  16227. function CloseHandle; external kernel32 name 'CloseHandle';
  16228. function DuplicateHandle; external kernel32 name 'DuplicateHandle';
  16229. function GetHandleInformation; external kernel32 name 'GetHandleInformation';
  16230. function SetHandleInformation; external kernel32 name 'SetHandleInformation';
  16231. function LoadModule; external kernel32 name 'LoadModule';
  16232. function WinExec; external kernel32 name 'WinExec';
  16233. function ClearCommBreak; external kernel32 name 'ClearCommBreak';
  16234. function ClearCommError; external kernel32 name 'ClearCommError';
  16235. function SetupComm; external kernel32 name 'SetupComm';
  16236. function EscapeCommFunction; external kernel32 name 'EscapeCommFunction';
  16237. function GetCommConfig; external kernel32 name 'GetCommConfig';
  16238. function GetCommMask; external kernel32 name 'GetCommMask';
  16239. function GetCommProperties; external kernel32 name 'GetCommProperties';
  16240. function GetCommModemStatus; external kernel32 name 'GetCommModemStatus';
  16241. function GetCommState; external kernel32 name 'GetCommState';
  16242. function GetCommTimeouts; external kernel32 name 'GetCommTimeouts';
  16243. function PurgeComm; external kernel32 name 'PurgeComm';
  16244. function SetCommBreak; external kernel32 name 'SetCommBreak';
  16245. function SetCommConfig; external kernel32 name 'SetCommConfig';
  16246. function SetCommMask; external kernel32 name 'SetCommMask';
  16247. function SetCommState; external kernel32 name 'SetCommState';
  16248. function SetCommTimeouts; external kernel32 name 'SetCommTimeouts';
  16249. function TransmitCommChar; external kernel32 name 'TransmitCommChar';
  16250. function WaitCommEvent; external kernel32 name 'WaitCommEvent';
  16251. function SetTapePosition; external kernel32 name 'SetTapePosition';
  16252. function GetTapePosition; external kernel32 name 'GetTapePosition';
  16253. function PrepareTape; external kernel32 name 'PrepareTape';
  16254. function EraseTape; external kernel32 name 'EraseTape';
  16255. function CreateTapePartition; external kernel32 name 'CreateTapePartition';
  16256. function WriteTapemark; external kernel32 name 'WriteTapemark';
  16257. function GetTapeStatus; external kernel32 name 'GetTapeStatus';
  16258. function GetTapeParameters; external kernel32 name 'GetTapeParameters';
  16259. function SetTapeParameters; external kernel32 name 'SetTapeParameters';
  16260. function Beep; external kernel32 name 'Beep';
  16261. function MulDiv; external kernel32 name 'MulDiv';
  16262. procedure GetSystemTime; external kernel32 name 'GetSystemTime';
  16263. procedure GetSystemTimeAsFileTime; external kernel32 name 'GetSystemTimeAsFileTime';
  16264. function SetSystemTime; external kernel32 name 'SetSystemTime';
  16265. procedure GetLocalTime; external kernel32 name 'GetLocalTime';
  16266. function SetLocalTime; external kernel32 name 'SetLocalTime';
  16267. procedure GetSystemInfo; external kernel32 name 'GetSystemInfo';
  16268. function GetSystemRegistryQuota; external kernel32 name 'GetSystemRegistryQuota';
  16269. function GetSystemTimes; external kernel32 name 'GetSystemTimes';
  16270. procedure GetNativeSystemInfo; external kernel32 name 'GetNativeSystemInfo';
  16271. function IsProcessorFeaturePresent; external kernel32 name 'IsProcessorFeaturePresent';
  16272. function SystemTimeToTzSpecificLocalTime; external kernel32 name 'SystemTimeToTzSpecificLocalTime';
  16273. function TzSpecificLocalTimeToSystemTime; external kernel32 name 'TzSpecificLocalTimeToSystemTime';
  16274. function GetTimeZoneInformation; external kernel32 name 'GetTimeZoneInformation';
  16275. function SetTimeZoneInformation; external kernel32 name 'SetTimeZoneInformation';
  16276. function SystemTimeToFileTime; external kernel32 name 'SystemTimeToFileTime';
  16277. function FileTimeToLocalFileTime; external kernel32 name 'FileTimeToLocalFileTime';
  16278. function LocalFileTimeToFileTime; external kernel32 name 'LocalFileTimeToFileTime';
  16279. function FileTimeToSystemTime; external kernel32 name 'FileTimeToSystemTime';
  16280. function CompareFileTime; external kernel32 name 'CompareFileTime';
  16281. function FileTimeToDosDateTime; external kernel32 name 'FileTimeToDosDateTime';
  16282. function DosDateTimeToFileTime; external kernel32 name 'DosDateTimeToFileTime';
  16283. function GetTickCount; external kernel32 name 'GetTickCount';
  16284. function SetSystemTimeAdjustment; external kernel32 name 'SetSystemTimeAdjustment';
  16285. function GetSystemTimeAdjustment; external kernel32 name 'GetSystemTimeAdjustment';
  16286. function FormatMessageA; external kernel32 name 'FormatMessageA';
  16287. function FormatMessageW; external kernel32 name 'FormatMessageW';
  16288. function FormatMessage; external kernel32 name 'FormatMessage' + AWSuffix;
  16289. function CreatePipe; external kernel32 name 'CreatePipe';
  16290. function ConnectNamedPipe; external kernel32 name 'ConnectNamedPipe';
  16291. function DisconnectNamedPipe; external kernel32 name 'DisconnectNamedPipe';
  16292. function SetNamedPipeHandleState; external kernel32 name 'SetNamedPipeHandleState';
  16293. function GetNamedPipeInfo; external kernel32 name 'GetNamedPipeInfo';
  16294. function PeekNamedPipe; external kernel32 name 'PeekNamedPipe';
  16295. function TransactNamedPipe; external kernel32 name 'TransactNamedPipe';
  16296. function CreateMailslotA; external kernel32 name 'CreateMailslotA';
  16297. function CreateMailslotW; external kernel32 name 'CreateMailslotW';
  16298. function CreateMailslot; external kernel32 name 'CreateMailslot' + AWSuffix;
  16299. function GetMailslotInfo; external kernel32 name 'GetMailslotInfo';
  16300. function SetMailslotInfo; external kernel32 name 'SetMailslotInfo';
  16301. function MapViewOfFile; external kernel32 name 'MapViewOfFile';
  16302. function FlushViewOfFile; external kernel32 name 'FlushViewOfFile';
  16303. function UnmapViewOfFile; external kernel32 name 'UnmapViewOfFile';
  16304. function EncryptFileA; external advapi32 name 'EncryptFileA';
  16305. function EncryptFileW; external advapi32 name 'EncryptFileW';
  16306. function EncryptFile; external advapi32 name 'EncryptFile' + AWSuffix;
  16307. function DecryptFileA; external advapi32 name 'DecryptFileA';
  16308. function DecryptFileW; external advapi32 name 'DecryptFileW';
  16309. function DecryptFile; external advapi32 name 'DecryptFile' + AWSuffix;
  16310. function FileEncryptionStatusA; external advapi32 name 'FileEncryptionStatusA';
  16311. function FileEncryptionStatusW; external advapi32 name 'FileEncryptionStatusW';
  16312. function FileEncryptionStatus; external advapi32 name 'FileEncryptionStatus' + AWSuffix;
  16313. function OpenEncryptedFileRawA; external advapi32 name 'OpenEncryptedFileRawA';
  16314. function OpenEncryptedFileRawW; external advapi32 name 'OpenEncryptedFileRawW';
  16315. function OpenEncryptedFileRaw; external advapi32 name 'OpenEncryptedFileRaw' + AWSuffix;
  16316. function ReadEncryptedFileRaw; external advapi32 name 'ReadEncryptedFileRaw';
  16317. function WriteEncryptedFileRaw; external advapi32 name 'WriteEncryptedFileRaw';
  16318. procedure CloseEncryptedFileRaw; external advapi32 name 'CloseEncryptedFileRaw';
  16319. function lstrcmpA; external kernel32 name 'lstrcmpA';
  16320. function lstrcmpW; external kernel32 name 'lstrcmpW';
  16321. function lstrcmp; external kernel32 name 'lstrcmp' + AWSuffix;
  16322. function lstrcmpiA; external kernel32 name 'lstrcmpiA';
  16323. function lstrcmpiW; external kernel32 name 'lstrcmpiW';
  16324. function lstrcmpi; external kernel32 name 'lstrcmpi' + AWSuffix;
  16325. function lstrcpynA; external kernel32 name 'lstrcpynA';
  16326. function lstrcpynW; external kernel32 name 'lstrcpynW';
  16327. function lstrcpyn; external kernel32 name 'lstrcpyn' + AWSuffix;
  16328. function lstrcpyA; external kernel32 name 'lstrcpyA';
  16329. function lstrcpyW; external kernel32 name 'lstrcpyW';
  16330. function lstrcpy; external kernel32 name 'lstrcpy' + AWSuffix;
  16331. function lstrcatA; external kernel32 name 'lstrcatA';
  16332. function lstrcatW; external kernel32 name 'lstrcatW';
  16333. function lstrcat; external kernel32 name 'lstrcat' + AWSuffix;
  16334. function lstrlenA; external kernel32 name 'lstrlenA';
  16335. function lstrlenW; external kernel32 name 'lstrlenW';
  16336. function lstrlen; external kernel32 name 'lstrlen' + AWSuffix;
  16337. function OpenFile; external kernel32 name 'OpenFile';
  16338. function _lopen; external kernel32 name '_lopen';
  16339. function _lcreat; external kernel32 name '_lcreat';
  16340. function _lread; external kernel32 name '_lread';
  16341. function _lwrite; external kernel32 name '_lwrite';
  16342. function _hread; external kernel32 name '_hread';
  16343. function _hwrite; external kernel32 name '_hwrite';
  16344. function _lclose; external kernel32 name '_lclose';
  16345. function _llseek; external kernel32 name '_llseek';
  16346. function IsTextUnicode; external advapi32 name 'IsTextUnicode';
  16347. function FlsAlloc; external kernel32 name 'FlsAlloc';
  16348. function FlsGetValue; external kernel32 name 'FlsGetValue';
  16349. function FlsSetValue; external kernel32 name 'FlsSetValue';
  16350. function FlsFree; external kernel32 name 'FlsFree';
  16351. function TlsAlloc; external kernel32 name 'TlsAlloc';
  16352. function TlsGetValue; external kernel32 name 'TlsGetValue';
  16353. function TlsSetValue; external kernel32 name 'TlsSetValue';
  16354. function TlsFree; external kernel32 name 'TlsFree';
  16355. function SleepEx; external kernel32 name 'SleepEx';
  16356. function WaitForSingleObjectEx; external kernel32 name 'WaitForSingleObjectEx';
  16357. function WaitForMultipleObjectsEx; external kernel32 name 'WaitForMultipleObjectsEx';
  16358. function SignalObjectAndWait; external kernel32 name 'SignalObjectAndWait';
  16359. function ReadFileEx; external kernel32 name 'ReadFileEx';
  16360. function WriteFileEx; external kernel32 name 'WriteFileEx';
  16361. function BackupRead; external kernel32 name 'BackupRead';
  16362. function BackupSeek; external kernel32 name 'BackupSeek';
  16363. function BackupWrite; external kernel32 name 'BackupWrite';
  16364. function ReadFileScatter; external kernel32 name 'ReadFileScatter';
  16365. function WriteFileGather; external kernel32 name 'WriteFileGather';
  16366. function OpenMutexA; external kernel32 name 'OpenMutexA';
  16367. function OpenMutexW; external kernel32 name 'OpenMutexW';
  16368. function OpenMutex; external kernel32 name 'OpenMutex' + AWSuffix;
  16369. function CreateEventA; external kernel32 name 'CreateEventA';
  16370. function CreateEventW; external kernel32 name 'CreateEventW';
  16371. function CreateEvent; external kernel32 name 'CreateEvent' + AWSuffix;
  16372. function OpenEventA; external kernel32 name 'OpenEventA';
  16373. function OpenEventW; external kernel32 name 'OpenEventW';
  16374. function OpenEvent; external kernel32 name 'OpenEvent' + AWSuffix;
  16375. function CreateSemaphoreA; external kernel32 name 'CreateSemaphoreA';
  16376. function CreateSemaphoreW; external kernel32 name 'CreateSemaphoreW';
  16377. function CreateSemaphore; external kernel32 name 'CreateSemaphore' + AWSuffix;
  16378. function OpenSemaphoreA; external kernel32 name 'OpenSemaphoreA';
  16379. function OpenSemaphoreW; external kernel32 name 'OpenSemaphoreW';
  16380. function OpenSemaphore; external kernel32 name 'OpenSemaphore' + AWSuffix;
  16381. function CreateWaitableTimerA; external kernel32 name 'CreateWaitableTimerA';
  16382. function CreateWaitableTimerW; external kernel32 name 'CreateWaitableTimerW';
  16383. function CreateWaitableTimer; external kernel32 name 'CreateWaitableTimer' + AWSuffix;
  16384. function OpenWaitableTimerA; external kernel32 name 'OpenWaitableTimerA';
  16385. function OpenWaitableTimerW; external kernel32 name 'OpenWaitableTimerW';
  16386. function OpenWaitableTimer; external kernel32 name 'OpenWaitableTimer' + AWSuffix;
  16387. function SetWaitableTimer; external kernel32 name 'SetWaitableTimer';
  16388. function CancelWaitableTimer; external kernel32 name 'CancelWaitableTimer';
  16389. function CreateFileMappingA; external kernel32 name 'CreateFileMappingA';
  16390. function CreateFileMappingW; external kernel32 name 'CreateFileMappingW';
  16391. function CreateFileMapping; external kernel32 name 'CreateFileMapping' + AWSuffix;
  16392. function OpenFileMappingA; external kernel32 name 'OpenFileMappingA';
  16393. function OpenFileMappingW; external kernel32 name 'OpenFileMappingW';
  16394. function OpenFileMapping; external kernel32 name 'OpenFileMapping' + AWSuffix;
  16395. function GetLogicalDriveStringsA; external kernel32 name 'GetLogicalDriveStringsA';
  16396. function GetLogicalDriveStringsW; external kernel32 name 'GetLogicalDriveStringsW';
  16397. function GetLogicalDriveStrings; external kernel32 name 'GetLogicalDriveStrings' + AWSuffix;
  16398. function CreateMemoryResourceNotification; external kernel32 name 'CreateMemoryResourceNotification';
  16399. function QueryMemoryResourceNotification; external kernel32 name 'QueryMemoryResourceNotification';
  16400. function LoadLibraryA; external kernel32 name 'LoadLibraryA';
  16401. function LoadLibraryW; external kernel32 name 'LoadLibraryW';
  16402. function LoadLibrary; external kernel32 name 'LoadLibrary' + AWSuffix;
  16403. function LoadLibraryExA; external kernel32 name 'LoadLibraryExA';
  16404. function LoadLibraryExW; external kernel32 name 'LoadLibraryExW';
  16405. function LoadLibraryEx; external kernel32 name 'LoadLibraryEx' + AWSuffix;
  16406. function GetModuleFileNameA; external kernel32 name 'GetModuleFileNameA';
  16407. function GetModuleFileNameW; external kernel32 name 'GetModuleFileNameW';
  16408. function GetModuleFileName; external kernel32 name 'GetModuleFileName' + AWSuffix;
  16409. function GetModuleHandleA; external kernel32 name 'GetModuleHandleA';
  16410. function GetModuleHandleW; external kernel32 name 'GetModuleHandleW';
  16411. function GetModuleHandle; external kernel32 name 'GetModuleHandle' + AWSuffix;
  16412. function CreateProcessA; external kernel32 name 'CreateProcessA';
  16413. function CreateProcessW; external kernel32 name 'CreateProcessW';
  16414. function CreateProcess; external kernel32 name 'CreateProcess' + AWSuffix;
  16415. function GetModuleHandleExA; external kernel32 name 'GetModuleHandleExA';
  16416. function GetModuleHandleExW; external kernel32 name 'GetModuleHandleExW';
  16417. function GetModuleHandleEx; external kernel32 name 'GetModuleHandleEx' + AWSuffix;
  16418. function NeedCurrentDirectoryForExePathA; external kernel32 name 'NeedCurrentDirectoryForExePathA';
  16419. function NeedCurrentDirectoryForExePathW; external kernel32 name 'NeedCurrentDirectoryForExePathW';
  16420. function NeedCurrentDirectoryForExePath; external kernel32 name 'NeedCurrentDirectoryForExePath' + AWSuffix;
  16421. function SetProcessShutdownParameters; external kernel32 name 'SetProcessShutdownParameters';
  16422. function GetProcessShutdownParameters; external kernel32 name 'GetProcessShutdownParameters';
  16423. function GetProcessVersion; external kernel32 name 'GetProcessVersion';
  16424. procedure FatalAppExitA; external kernel32 name 'FatalAppExitA';
  16425. procedure FatalAppExitW; external kernel32 name 'FatalAppExitW';
  16426. procedure FatalAppExit; external kernel32 name 'FatalAppExit' + AWSuffix;
  16427. procedure GetStartupInfoA; external kernel32 name 'GetStartupInfoA';
  16428. procedure GetStartupInfoW; external kernel32 name 'GetStartupInfoW';
  16429. procedure GetStartupInfo; external kernel32 name 'GetStartupInfo' + AWSuffix;
  16430. function GetCommandLineA; external kernel32 name 'GetCommandLineA';
  16431. function GetCommandLineW; external kernel32 name 'GetCommandLineW';
  16432. function GetCommandLine; external kernel32 name 'GetCommandLine' + AWSuffix;
  16433. function GetEnvironmentVariableA; external kernel32 name 'GetEnvironmentVariableA';
  16434. function GetEnvironmentVariableW; external kernel32 name 'GetEnvironmentVariableW';
  16435. function GetEnvironmentVariable; external kernel32 name 'GetEnvironmentVariable' + AWSuffix;
  16436. function SetEnvironmentVariableA; external kernel32 name 'SetEnvironmentVariableA';
  16437. function SetEnvironmentVariableW; external kernel32 name 'SetEnvironmentVariableW';
  16438. function SetEnvironmentVariable; external kernel32 name 'SetEnvironmentVariable' + AWSuffix;
  16439. function ExpandEnvironmentStringsA; external kernel32 name 'ExpandEnvironmentStringsA';
  16440. function ExpandEnvironmentStringsW; external kernel32 name 'ExpandEnvironmentStringsW';
  16441. function ExpandEnvironmentStrings; external kernel32 name 'ExpandEnvironmentStrings' + AWSuffix;
  16442. function GetFirmwareEnvironmentVariableA; external kernel32 name 'GetFirmwareEnvironmentVariableA';
  16443. function GetFirmwareEnvironmentVariableW; external kernel32 name 'GetFirmwareEnvironmentVariableW';
  16444. function GetFirmwareEnvironmentVariable; external kernel32 name 'GetFirmwareEnvironmentVariable' + AWSuffix;
  16445. function SetFirmwareEnvironmentVariableA; external kernel32 name 'SetFirmwareEnvironmentVariableA';
  16446. function SetFirmwareEnvironmentVariableW; external kernel32 name 'SetFirmwareEnvironmentVariableW';
  16447. function SetFirmwareEnvironmentVariable; external kernel32 name 'SetFirmwareEnvironmentVariable' + AWSuffix;
  16448. procedure OutputDebugStringA; external kernel32 name 'OutputDebugStringA';
  16449. procedure OutputDebugStringW; external kernel32 name 'OutputDebugStringW';
  16450. procedure OutputDebugString; external kernel32 name 'OutputDebugString' + AWSuffix;
  16451. function FindResourceA; external kernel32 name 'FindResourceA';
  16452. function FindResourceW; external kernel32 name 'FindResourceW';
  16453. function FindResource; external kernel32 name 'FindResource' + AWSuffix;
  16454. function FindResourceExA; external kernel32 name 'FindResourceExA';
  16455. function FindResourceExW; external kernel32 name 'FindResourceExW';
  16456. function FindResourceEx; external kernel32 name 'FindResourceEx' + AWSuffix;
  16457. function EnumResourceTypesA; external kernel32 name 'EnumResourceTypesA';
  16458. function EnumResourceTypesW; external kernel32 name 'EnumResourceTypesW';
  16459. function EnumResourceTypes; external kernel32 name 'EnumResourceTypes' + AWSuffix;
  16460. function EnumResourceNamesA; external kernel32 name 'EnumResourceNamesA';
  16461. function EnumResourceNamesW; external kernel32 name 'EnumResourceNamesW';
  16462. function EnumResourceNames; external kernel32 name 'EnumResourceNames' + AWSuffix;
  16463. function EnumResourceLanguagesA; external kernel32 name 'EnumResourceLanguagesA';
  16464. function EnumResourceLanguagesW; external kernel32 name 'EnumResourceLanguagesW';
  16465. function EnumResourceLanguages; external kernel32 name 'EnumResourceLanguages' + AWSuffix;
  16466. function BeginUpdateResourceA; external kernel32 name 'BeginUpdateResourceA';
  16467. function BeginUpdateResourceW; external kernel32 name 'BeginUpdateResourceW';
  16468. function BeginUpdateResource; external kernel32 name 'BeginUpdateResource' + AWSuffix;
  16469. function UpdateResourceA; external kernel32 name 'UpdateResourceA';
  16470. function UpdateResourceW; external kernel32 name 'UpdateResourceW';
  16471. function UpdateResource; external kernel32 name 'UpdateResource' + AWSuffix;
  16472. function EndUpdateResourceA; external kernel32 name 'EndUpdateResourceA';
  16473. function EndUpdateResourceW; external kernel32 name 'EndUpdateResourceW';
  16474. function EndUpdateResource; external kernel32 name 'EndUpdateResource' + AWSuffix;
  16475. function GlobalAddAtomA; external kernel32 name 'GlobalAddAtomA';
  16476. function GlobalAddAtomW; external kernel32 name 'GlobalAddAtomW';
  16477. function GlobalAddAtom; external kernel32 name 'GlobalAddAtom' + AWSuffix;
  16478. function GlobalFindAtomA; external kernel32 name 'GlobalFindAtomA';
  16479. function GlobalFindAtomW; external kernel32 name 'GlobalFindAtomW';
  16480. function GlobalFindAtom; external kernel32 name 'GlobalFindAtom' + AWSuffix;
  16481. function GlobalGetAtomNameA; external kernel32 name 'GlobalGetAtomNameA';
  16482. function GlobalGetAtomNameW; external kernel32 name 'GlobalGetAtomNameW';
  16483. function GlobalGetAtomName; external kernel32 name 'GlobalGetAtomName' + AWSuffix;
  16484. function AddAtomA; external kernel32 name 'AddAtomA';
  16485. function AddAtomW; external kernel32 name 'AddAtomW';
  16486. function AddAtom; external kernel32 name 'AddAtom' + AWSuffix;
  16487. function FindAtomA; external kernel32 name 'FindAtomA';
  16488. function FindAtomW; external kernel32 name 'FindAtomW';
  16489. function FindAtom; external kernel32 name 'FindAtom' + AWSuffix;
  16490. function GetAtomNameA; external kernel32 name 'GetAtomNameA';
  16491. function GetAtomNameW; external kernel32 name 'GetAtomNameW';
  16492. function GetAtomName; external kernel32 name 'GetAtomName' + AWSuffix;
  16493. function GetProfileIntA; external kernel32 name 'GetProfileIntA';
  16494. function GetProfileIntW; external kernel32 name 'GetProfileIntW';
  16495. function GetProfileInt; external kernel32 name 'GetProfileInt' + AWSuffix;
  16496. function GetProfileStringA; external kernel32 name 'GetProfileStringA';
  16497. function GetProfileStringW; external kernel32 name 'GetProfileStringW';
  16498. function GetProfileString; external kernel32 name 'GetProfileString' + AWSuffix;
  16499. function WriteProfileStringA; external kernel32 name 'WriteProfileStringA';
  16500. function WriteProfileStringW; external kernel32 name 'WriteProfileStringW';
  16501. function WriteProfileString; external kernel32 name 'WriteProfileString' + AWSuffix;
  16502. function GetProfileSectionA; external kernel32 name 'GetProfileSectionA';
  16503. function GetProfileSectionW; external kernel32 name 'GetProfileSectionW';
  16504. function GetProfileSection; external kernel32 name 'GetProfileSection' + AWSuffix;
  16505. function WriteProfileSectionA; external kernel32 name 'WriteProfileSectionA';
  16506. function WriteProfileSectionW; external kernel32 name 'WriteProfileSectionW';
  16507. function WriteProfileSection; external kernel32 name 'WriteProfileSection' + AWSuffix;
  16508. function GetPrivateProfileIntA; external kernel32 name 'GetPrivateProfileIntA';
  16509. function GetPrivateProfileIntW; external kernel32 name 'GetPrivateProfileIntW';
  16510. function GetPrivateProfileInt; external kernel32 name 'GetPrivateProfileInt' + AWSuffix;
  16511. function GetPrivateProfileStringA; external kernel32 name 'GetPrivateProfileStringA';
  16512. function GetPrivateProfileStringW; external kernel32 name 'GetPrivateProfileStringW';
  16513. function GetPrivateProfileString; external kernel32 name 'GetPrivateProfileString' + AWSuffix;
  16514. function WritePrivateProfileStringA; external kernel32 name 'WritePrivateProfileStringA';
  16515. function WritePrivateProfileStringW; external kernel32 name 'WritePrivateProfileStringW';
  16516. function WritePrivateProfileString; external kernel32 name 'WritePrivateProfileString' + AWSuffix;
  16517. function GetPrivateProfileSectionA; external kernel32 name 'GetPrivateProfileSectionA';
  16518. function GetPrivateProfileSectionW; external kernel32 name 'GetPrivateProfileSectionW';
  16519. function GetPrivateProfileSection; external kernel32 name 'GetPrivateProfileSection' + AWSuffix;
  16520. function WritePrivateProfileSectionA; external kernel32 name 'WritePrivateProfileSectionA';
  16521. function WritePrivateProfileSectionW; external kernel32 name 'WritePrivateProfileSectionW';
  16522. function WritePrivateProfileSection; external kernel32 name 'WritePrivateProfileSection' + AWSuffix;
  16523. function GetPrivateProfileSectionNamesA; external kernel32 name 'GetPrivateProfileSectionNamesA';
  16524. function GetPrivateProfileSectionNamesW; external kernel32 name 'GetPrivateProfileSectionNamesW';
  16525. function GetPrivateProfileSectionNames; external kernel32 name 'GetPrivateProfileSectionNames' + AWSuffix;
  16526. function GetPrivateProfileStructA; external kernel32 name 'GetPrivateProfileStructA';
  16527. function GetPrivateProfileStructW; external kernel32 name 'GetPrivateProfileStructW';
  16528. function GetPrivateProfileStruct; external kernel32 name 'GetPrivateProfileStruct' + AWSuffix;
  16529. function WritePrivateProfileStructA; external kernel32 name 'WritePrivateProfileStructA';
  16530. function WritePrivateProfileStructW; external kernel32 name 'WritePrivateProfileStructW';
  16531. function WritePrivateProfileStruct; external kernel32 name 'WritePrivateProfileStruct' + AWSuffix;
  16532. function GetDriveTypeA; external kernel32 name 'GetDriveTypeA';
  16533. function GetDriveTypeW; external kernel32 name 'GetDriveTypeW';
  16534. function GetDriveType; external kernel32 name 'GetDriveType' + AWSuffix;
  16535. function GetSystemDirectoryA; external kernel32 name 'GetSystemDirectoryA';
  16536. function GetSystemDirectoryW; external kernel32 name 'GetSystemDirectoryW';
  16537. function GetSystemDirectory; external kernel32 name 'GetSystemDirectory' + AWSuffix;
  16538. function GetTempPathA; external kernel32 name 'GetTempPathA';
  16539. function GetTempPathW; external kernel32 name 'GetTempPathW';
  16540. function GetTempPath; external kernel32 name 'GetTempPath' + AWSuffix;
  16541. function GetTempFileNameA; external kernel32 name 'GetTempFileNameA';
  16542. function GetTempFileNameW; external kernel32 name 'GetTempFileNameW';
  16543. function GetTempFileName; external kernel32 name 'GetTempFileName' + AWSuffix;
  16544. function GetWindowsDirectoryA; external kernel32 name 'GetWindowsDirectoryA';
  16545. function GetWindowsDirectoryW; external kernel32 name 'GetWindowsDirectoryW';
  16546. function GetWindowsDirectory; external kernel32 name 'GetWindowsDirectory' + AWSuffix;
  16547. function GetSystemWindowsDirectoryA; external kernel32 name 'GetSystemWindowsDirectoryA';
  16548. function GetSystemWindowsDirectoryW; external kernel32 name 'GetSystemWindowsDirectoryW';
  16549. function GetSystemWindowsDirectory; external kernel32 name 'GetSystemWindowsDirectory' + AWSuffix;
  16550. function GetSystemWow64DirectoryA; external kernel32 name 'GetSystemWow64DirectoryA';
  16551. function GetSystemWow64DirectoryW; external kernel32 name 'GetSystemWow64DirectoryW';
  16552. function GetSystemWow64Directory; external kernel32 name 'GetSystemWow64Directory' + AWSuffix;
  16553. function Wow64EnableWow64FsRedirection; external kernel32 name 'Wow64EnableWow64FsRedirection';
  16554. function SetCurrentDirectoryA; external kernel32 name 'SetCurrentDirectoryA';
  16555. function SetCurrentDirectoryW; external kernel32 name 'SetCurrentDirectoryW';
  16556. function SetCurrentDirectory; external kernel32 name 'SetCurrentDirectory' + AWSuffix;
  16557. function GetCurrentDirectoryA; external kernel32 name 'GetCurrentDirectoryA';
  16558. function GetCurrentDirectoryW; external kernel32 name 'GetCurrentDirectoryW';
  16559. function GetCurrentDirectory; external kernel32 name 'GetCurrentDirectory' + AWSuffix;
  16560. function SetDllDirectoryA; external kernel32 name 'SetDllDirectoryA';
  16561. function SetDllDirectoryW; external kernel32 name 'SetDllDirectoryW';
  16562. function SetDllDirectory; external kernel32 name 'SetDllDirectory' + AWSuffix;
  16563. function GetDllDirectoryA; external kernel32 name 'GetDllDirectoryA';
  16564. function GetDllDirectoryW; external kernel32 name 'GetDllDirectoryW';
  16565. function GetDllDirectory; external kernel32 name 'GetDllDirectory' + AWSuffix;
  16566. function GetDiskFreeSpaceA; external kernel32 name 'GetDiskFreeSpaceA';
  16567. function GetDiskFreeSpaceW; external kernel32 name 'GetDiskFreeSpaceW';
  16568. function GetDiskFreeSpace; external kernel32 name 'GetDiskFreeSpace' + AWSuffix;
  16569. function GetDiskFreeSpaceExA; external kernel32 name 'GetDiskFreeSpaceExA';
  16570. function GetDiskFreeSpaceExW; external kernel32 name 'GetDiskFreeSpaceExW';
  16571. function GetDiskFreeSpaceEx; external kernel32 name 'GetDiskFreeSpaceEx' + AWSuffix;
  16572. function CreateDirectoryA; external kernel32 name 'CreateDirectoryA';
  16573. function CreateDirectoryW; external kernel32 name 'CreateDirectoryW';
  16574. function CreateDirectory; external kernel32 name 'CreateDirectory' + AWSuffix;
  16575. function CreateDirectoryExA; external kernel32 name 'CreateDirectoryExA';
  16576. function CreateDirectoryExW; external kernel32 name 'CreateDirectoryExW';
  16577. function CreateDirectoryEx; external kernel32 name 'CreateDirectoryEx' + AWSuffix;
  16578. function RemoveDirectoryA; external kernel32 name 'RemoveDirectoryA';
  16579. function RemoveDirectoryW; external kernel32 name 'RemoveDirectoryW';
  16580. function RemoveDirectory; external kernel32 name 'RemoveDirectory' + AWSuffix;
  16581. function GetFullPathNameA; external kernel32 name 'GetFullPathNameA';
  16582. function GetFullPathNameW; external kernel32 name 'GetFullPathNameW';
  16583. function GetFullPathName; external kernel32 name 'GetFullPathName' + AWSuffix;
  16584. function DefineDosDeviceA; external kernel32 name 'DefineDosDeviceA';
  16585. function DefineDosDeviceW; external kernel32 name 'DefineDosDeviceW';
  16586. function DefineDosDevice; external kernel32 name 'DefineDosDevice' + AWSuffix;
  16587. function QueryDosDeviceA; external kernel32 name 'QueryDosDeviceA';
  16588. function QueryDosDeviceW; external kernel32 name 'QueryDosDeviceW';
  16589. function QueryDosDevice; external kernel32 name 'QueryDosDevice' + AWSuffix;
  16590. function CreateFileA; external kernel32 name 'CreateFileA';
  16591. function CreateFileW; external kernel32 name 'CreateFileW';
  16592. function CreateFile; external kernel32 name 'CreateFile' + AWSuffix;
  16593. function ReOpenFile; external kernel32 name 'ReOpenFile';
  16594. function SetFileAttributesA; external kernel32 name 'SetFileAttributesA';
  16595. function SetFileAttributesW; external kernel32 name 'SetFileAttributesW';
  16596. function SetFileAttributes; external kernel32 name 'SetFileAttributes' + AWSuffix;
  16597. function GetFileAttributesA; external kernel32 name 'GetFileAttributesA';
  16598. function GetFileAttributesW; external kernel32 name 'GetFileAttributesW';
  16599. function GetFileAttributes; external kernel32 name 'GetFileAttributes' + AWSuffix;
  16600. function GetFileAttributesExA; external kernel32 name 'GetFileAttributesExA';
  16601. function GetFileAttributesExW; external kernel32 name 'GetFileAttributesExW';
  16602. function GetFileAttributesEx; external kernel32 name 'GetFileAttributesEx' + AWSuffix;
  16603. function GetCompressedFileSizeA; external kernel32 name 'GetCompressedFileSizeA';
  16604. function GetCompressedFileSizeW; external kernel32 name 'GetCompressedFileSizeW';
  16605. function GetCompressedFileSize; external kernel32 name 'GetCompressedFileSize' + AWSuffix;
  16606. function DeleteFileA; external kernel32 name 'DeleteFileA';
  16607. function DeleteFileW; external kernel32 name 'DeleteFileW';
  16608. function DeleteFile; external kernel32 name 'DeleteFile' + AWSuffix;
  16609. function FindFirstFileExA; external kernel32 name 'FindFirstFileExA';
  16610. function FindFirstFileExW; external kernel32 name 'FindFirstFileExW';
  16611. function FindFirstFileEx; external kernel32 name 'FindFirstFileEx' + AWSuffix;
  16612. function FindFirstFileA; external kernel32 name 'FindFirstFileA';
  16613. function FindFirstFileW; external kernel32 name 'FindFirstFileW';
  16614. function FindFirstFile; external kernel32 name 'FindFirstFile' + AWSuffix;
  16615. function FindNextFileA; external kernel32 name 'FindNextFileA';
  16616. function FindNextFileW; external kernel32 name 'FindNextFileW';
  16617. function FindNextFile; external kernel32 name 'FindNextFile' + AWSuffix;
  16618. function SearchPathA; external kernel32 name 'SearchPathA';
  16619. function SearchPathW; external kernel32 name 'SearchPathW';
  16620. function SearchPath; external kernel32 name 'SearchPath' + AWSuffix;
  16621. function CopyFileA; external kernel32 name 'CopyFileA';
  16622. function CopyFileW; external kernel32 name 'CopyFileW';
  16623. function CopyFile; external kernel32 name 'CopyFile' + AWSuffix;
  16624. function CopyFileExA; external kernel32 name 'CopyFileExA';
  16625. function CopyFileExW; external kernel32 name 'CopyFileExW';
  16626. function CopyFileEx; external kernel32 name 'CopyFileEx' + AWSuffix;
  16627. function MoveFileA; external kernel32 name 'MoveFileA';
  16628. function MoveFileW; external kernel32 name 'MoveFileW';
  16629. function MoveFile; external kernel32 name 'MoveFile' + AWSuffix;
  16630. function MoveFileExA; external kernel32 name 'MoveFileExA';
  16631. function MoveFileExW; external kernel32 name 'MoveFileExW';
  16632. function MoveFileEx; external kernel32 name 'MoveFileEx' + AWSuffix;
  16633. function MoveFileWithProgressA; external kernel32 name 'MoveFileWithProgressA';
  16634. function MoveFileWithProgressW; external kernel32 name 'MoveFileWithProgressW';
  16635. function MoveFileWithProgress; external kernel32 name 'MoveFileWithProgress' + AWSuffix;
  16636. function ReplaceFileA; external kernel32 name 'ReplaceFileA';
  16637. function ReplaceFileW; external kernel32 name 'ReplaceFileW';
  16638. function ReplaceFile; external kernel32 name 'ReplaceFile' + AWSuffix;
  16639. function CreateHardLinkA; external kernel32 name 'CreateHardLinkA';
  16640. function CreateHardLinkW; external kernel32 name 'CreateHardLinkW';
  16641. function CreateHardLink; external kernel32 name 'CreateHardLink' + AWSuffix;
  16642. function FindFirstStreamW; external kernel32 name 'FindFirstStreamW';
  16643. function FindNextStreamW; external kernel32 name 'FindNextStreamW';
  16644. function CreateNamedPipeA; external kernel32 name 'CreateNamedPipeA';
  16645. function CreateNamedPipeW; external kernel32 name 'CreateNamedPipeW';
  16646. function CreateNamedPipe; external kernel32 name 'CreateNamedPipe' + AWSuffix;
  16647. function GetNamedPipeHandleStateA; external kernel32 name 'GetNamedPipeHandleStateA';
  16648. function GetNamedPipeHandleStateW; external kernel32 name 'GetNamedPipeHandleStateW';
  16649. function GetNamedPipeHandleState; external kernel32 name 'GetNamedPipeHandleState' + AWSuffix;
  16650. function CallNamedPipeA; external kernel32 name 'CallNamedPipeA';
  16651. function CallNamedPipeW; external kernel32 name 'CallNamedPipeW';
  16652. function CallNamedPipe; external kernel32 name 'CallNamedPipe' + AWSuffix;
  16653. function WaitNamedPipeA; external kernel32 name 'WaitNamedPipeA';
  16654. function WaitNamedPipeW; external kernel32 name 'WaitNamedPipeW';
  16655. function WaitNamedPipe; external kernel32 name 'WaitNamedPipe' + AWSuffix;
  16656. function SetVolumeLabelA; external kernel32 name 'SetVolumeLabelA';
  16657. function SetVolumeLabelW; external kernel32 name 'SetVolumeLabelW';
  16658. function SetVolumeLabel; external kernel32 name 'SetVolumeLabel' + AWSuffix;
  16659. procedure SetFileApisToOEM; external kernel32 name 'SetFileApisToOEM';
  16660. procedure SetFileApisToANSI; external kernel32 name 'SetFileApisToANSI';
  16661. function AreFileApisANSI; external kernel32 name 'AreFileApisANSI';
  16662. function GetVolumeInformationA; external kernel32 name 'GetVolumeInformationA';
  16663. function GetVolumeInformationW; external kernel32 name 'GetVolumeInformationW';
  16664. function GetVolumeInformation; external kernel32 name 'GetVolumeInformation' + AWSuffix;
  16665. function CancelIo; external kernel32 name 'CancelIo';
  16666. function ClearEventLogA; external advapi32 name 'ClearEventLogA';
  16667. function ClearEventLogW; external advapi32 name 'ClearEventLogW';
  16668. function ClearEventLog; external advapi32 name 'ClearEventLog' + AWSuffix;
  16669. function BackupEventLogA; external advapi32 name 'BackupEventLogA';
  16670. function BackupEventLogW; external advapi32 name 'BackupEventLogW';
  16671. function BackupEventLog; external advapi32 name 'BackupEventLog' + AWSuffix;
  16672. function CloseEventLog; external advapi32 name 'CloseEventLog';
  16673. function DeregisterEventSource; external advapi32 name 'DeregisterEventSource';
  16674. function NotifyChangeEventLog; external advapi32 name 'NotifyChangeEventLog';
  16675. function GetNumberOfEventLogRecords; external advapi32 name 'GetNumberOfEventLogRecords';
  16676. function GetOldestEventLogRecord; external advapi32 name 'GetOldestEventLogRecord';
  16677. function OpenEventLogA; external advapi32 name 'OpenEventLogA';
  16678. function OpenEventLogW; external advapi32 name 'OpenEventLogW';
  16679. function OpenEventLog; external advapi32 name 'OpenEventLog' + AWSuffix;
  16680. function RegisterEventSourceA; external advapi32 name 'RegisterEventSourceA';
  16681. function RegisterEventSourceW; external advapi32 name 'RegisterEventSourceW';
  16682. function RegisterEventSource; external advapi32 name 'RegisterEventSource' + AWSuffix;
  16683. function OpenBackupEventLogA; external advapi32 name 'OpenBackupEventLogA';
  16684. function OpenBackupEventLogW; external advapi32 name 'OpenBackupEventLogW';
  16685. function OpenBackupEventLog; external advapi32 name 'OpenBackupEventLog' + AWSuffix;
  16686. function ReadEventLogA; external advapi32 name 'ReadEventLogA';
  16687. function ReadEventLogW; external advapi32 name 'ReadEventLogW';
  16688. function ReadEventLog; external advapi32 name 'ReadEventLog' + AWSuffix;
  16689. function ReportEventA; external advapi32 name 'ReportEventA';
  16690. function ReportEventW; external advapi32 name 'ReportEventW';
  16691. function ReportEvent; external advapi32 name 'ReportEvent' + AWSuffix;
  16692. function GetEventLogInformation; external advapi32 name 'GetEventLogInformation';
  16693. function DuplicateToken; external advapi32 name 'DuplicateToken';
  16694. function GetKernelObjectSecurity; external advapi32 name 'GetKernelObjectSecurity';
  16695. function ImpersonateNamedPipeClient; external advapi32 name 'ImpersonateNamedPipeClient';
  16696. function ImpersonateSelf; external advapi32 name 'ImpersonateSelf';
  16697. function RevertToSelf; external advapi32 name 'RevertToSelf';
  16698. function SetThreadToken; external advapi32 name 'SetThreadToken';
  16699. function AccessCheck; external advapi32 name 'AccessCheck';
  16700. function AccessCheckByType; external advapi32 name 'AccessCheckByType';
  16701. function AccessCheckByTypeResultList; external advapi32 name 'AccessCheckByTypeResultList';
  16702. function OpenProcessToken; external advapi32 name 'OpenProcessToken';
  16703. function OpenThreadToken; external advapi32 name 'OpenThreadToken';
  16704. function GetTokenInformation; external advapi32 name 'GetTokenInformation';
  16705. function SetTokenInformation; external advapi32 name 'SetTokenInformation';
  16706. function AdjustTokenPrivileges; external advapi32 name 'AdjustTokenPrivileges';
  16707. function AdjustTokenGroups; external advapi32 name 'AdjustTokenGroups';
  16708. function PrivilegeCheck; external advapi32 name 'PrivilegeCheck';
  16709. function AccessCheckAndAuditAlarmA; external advapi32 name 'AccessCheckAndAuditAlarmA';
  16710. function AccessCheckAndAuditAlarmW; external advapi32 name 'AccessCheckAndAuditAlarmW';
  16711. function AccessCheckAndAuditAlarm; external advapi32 name 'AccessCheckAndAuditAlarm' + AWSuffix;
  16712. function AccessCheckByTypeAndAuditAlarmA; external advapi32 name 'AccessCheckByTypeAndAuditAlarmA';
  16713. function AccessCheckByTypeAndAuditAlarmW; external advapi32 name 'AccessCheckByTypeAndAuditAlarmW';
  16714. function AccessCheckByTypeAndAuditAlarm; external advapi32 name 'AccessCheckByTypeAndAuditAlarm' + AWSuffix;
  16715. function AccessCheckByTypeResultListAndAuditAlarmA; external advapi32 name 'AccessCheckByTypeResultListAndAuditAlarmA';
  16716. function AccessCheckByTypeResultListAndAuditAlarmW; external advapi32 name 'AccessCheckByTypeResultListAndAuditAlarmW';
  16717. function AccessCheckByTypeResultListAndAuditAlarm; external advapi32 name 'AccessCheckByTypeResultListAndAuditAlarm' + AWSuffix;
  16718. function AccessCheckByTypeResultListAndAuditAlarmByHandleA; external advapi32 name 'AccessCheckByTypeResultListAndAuditAlarmByHandleA';
  16719. function AccessCheckByTypeResultListAndAuditAlarmByHandleW; external advapi32 name 'AccessCheckByTypeResultListAndAuditAlarmByHandleW';
  16720. function AccessCheckByTypeResultListAndAuditAlarmByHandle; external advapi32 name 'AccessCheckByTypeResultListAndAuditAlarmByHandle' + AWSuffix;
  16721. function ObjectOpenAuditAlarmA; external advapi32 name 'ObjectOpenAuditAlarmA';
  16722. function ObjectOpenAuditAlarmW; external advapi32 name 'ObjectOpenAuditAlarmW';
  16723. function ObjectOpenAuditAlarm; external advapi32 name 'ObjectOpenAuditAlarm' + AWSuffix;
  16724. function ObjectPrivilegeAuditAlarmA; external advapi32 name 'ObjectPrivilegeAuditAlarmA';
  16725. function ObjectPrivilegeAuditAlarmW; external advapi32 name 'ObjectPrivilegeAuditAlarmW';
  16726. function ObjectPrivilegeAuditAlarm; external advapi32 name 'ObjectPrivilegeAuditAlarm' + AWSuffix;
  16727. function ObjectCloseAuditAlarmA; external advapi32 name 'ObjectCloseAuditAlarmA';
  16728. function ObjectCloseAuditAlarmW; external advapi32 name 'ObjectCloseAuditAlarmW';
  16729. function ObjectCloseAuditAlarm; external advapi32 name 'ObjectCloseAuditAlarm' + AWSuffix;
  16730. function ObjectDeleteAuditAlarmA; external advapi32 name 'ObjectDeleteAuditAlarmA';
  16731. function ObjectDeleteAuditAlarmW; external advapi32 name 'ObjectDeleteAuditAlarmW';
  16732. function ObjectDeleteAuditAlarm; external advapi32 name 'ObjectDeleteAuditAlarm' + AWSuffix;
  16733. function PrivilegedServiceAuditAlarmA; external advapi32 name 'PrivilegedServiceAuditAlarmA';
  16734. function PrivilegedServiceAuditAlarmW; external advapi32 name 'PrivilegedServiceAuditAlarmW';
  16735. function PrivilegedServiceAuditAlarm; external advapi32 name 'PrivilegedServiceAuditAlarm' + AWSuffix;
  16736. function IsWellKnownSid; external advapi32 name 'IsWellKnownSid';
  16737. function CreateWellKnownSid; external advapi32 name 'CreateWellKnownSid';
  16738. function EqualDomainSid; external advapi32 name 'EqualDomainSid';
  16739. function GetWindowsAccountDomainSid; external advapi32 name 'GetWindowsAccountDomainSid';
  16740. function IsValidSid; external advapi32 name 'IsValidSid';
  16741. function EqualSid; external advapi32 name 'EqualSid';
  16742. function EqualPrefixSid; external advapi32 name 'EqualPrefixSid';
  16743. function GetSidLengthRequired; external advapi32 name 'GetSidLengthRequired';
  16744. function AllocateAndInitializeSid; external advapi32 name 'AllocateAndInitializeSid';
  16745. function FreeSid; external advapi32 name 'FreeSid';
  16746. function InitializeSid; external advapi32 name 'InitializeSid';
  16747. function GetSidIdentifierAuthority; external advapi32 name 'GetSidIdentifierAuthority';
  16748. function GetSidSubAuthority; external advapi32 name 'GetSidSubAuthority';
  16749. function GetSidSubAuthorityCount; external advapi32 name 'GetSidSubAuthorityCount';
  16750. function GetLengthSid; external advapi32 name 'GetLengthSid';
  16751. function CopySid; external advapi32 name 'CopySid';
  16752. function AreAllAccessesGranted; external advapi32 name 'AreAllAccessesGranted';
  16753. function AreAnyAccessesGranted; external advapi32 name 'AreAnyAccessesGranted';
  16754. procedure MapGenericMask; external advapi32 name 'MapGenericMask';
  16755. function IsValidAcl; external advapi32 name 'IsValidAcl';
  16756. function InitializeAcl; external advapi32 name 'InitializeAcl';
  16757. function GetAclInformation; external advapi32 name 'GetAclInformation';
  16758. function SetAclInformation; external advapi32 name 'SetAclInformation';
  16759. function AddAce; external advapi32 name 'AddAce';
  16760. function DeleteAce; external advapi32 name 'DeleteAce';
  16761. function GetAce; external advapi32 name 'GetAce';
  16762. function AddAccessAllowedAce; external advapi32 name 'AddAccessAllowedAce';
  16763. function AddAccessAllowedAceEx; external advapi32 name 'AddAccessAllowedAceEx';
  16764. function AddAccessDeniedAce; external advapi32 name 'AddAccessDeniedAce';
  16765. function AddAccessDeniedAceEx; external advapi32 name 'AddAccessDeniedAceEx';
  16766. function AddAuditAccessAce; external advapi32 name 'AddAuditAccessAce';
  16767. function AddAuditAccessAceEx; external advapi32 name 'AddAuditAccessAceEx';
  16768. function AddAccessAllowedObjectAce; external advapi32 name 'AddAccessAllowedObjectAce';
  16769. function AddAccessDeniedObjectAce; external advapi32 name 'AddAccessDeniedObjectAce';
  16770. function AddAuditAccessObjectAce; external advapi32 name 'AddAuditAccessObjectAce';
  16771. function FindFirstFreeAce; external advapi32 name 'FindFirstFreeAce';
  16772. function InitializeSecurityDescriptor; external advapi32 name 'InitializeSecurityDescriptor';
  16773. function IsValidSecurityDescriptor; external advapi32 name 'IsValidSecurityDescriptor';
  16774. function GetSecurityDescriptorLength; external advapi32 name 'GetSecurityDescriptorLength';
  16775. function GetSecurityDescriptorControl; external advapi32 name 'GetSecurityDescriptorControl';
  16776. function SetSecurityDescriptorControl; external advapi32 name 'SetSecurityDescriptorControl';
  16777. function SetSecurityDescriptorDacl; external advapi32 name 'SetSecurityDescriptorDacl';
  16778. function GetSecurityDescriptorDacl; external advapi32 name 'GetSecurityDescriptorDacl';
  16779. function SetSecurityDescriptorSacl; external advapi32 name 'SetSecurityDescriptorSacl';
  16780. function GetSecurityDescriptorSacl; external advapi32 name 'GetSecurityDescriptorSacl';
  16781. function SetSecurityDescriptorOwner; external advapi32 name 'SetSecurityDescriptorOwner';
  16782. function GetSecurityDescriptorOwner; external advapi32 name 'GetSecurityDescriptorOwner';
  16783. function SetSecurityDescriptorGroup; external advapi32 name 'SetSecurityDescriptorGroup';
  16784. function GetSecurityDescriptorGroup; external advapi32 name 'GetSecurityDescriptorGroup';
  16785. function SetSecurityDescriptorRMControl; external advapi32 name 'SetSecurityDescriptorRMControl';
  16786. function GetSecurityDescriptorRMControl; external advapi32 name 'GetSecurityDescriptorRMControl';
  16787. function CreatePrivateObjectSecurity; external advapi32 name 'CreatePrivateObjectSecurity';
  16788. function ConvertToAutoInheritPrivateObjectSecurity; external advapi32 name 'ConvertToAutoInheritPrivateObjectSecurity';
  16789. function CreatePrivateObjectSecurityEx; external advapi32 name 'CreatePrivateObjectSecurityEx';
  16790. function SetPrivateObjectSecurity; external advapi32 name 'SetPrivateObjectSecurity';
  16791. function SetPrivateObjectSecurityEx; external advapi32 name 'SetPrivateObjectSecurityEx';
  16792. function GetPrivateObjectSecurity; external advapi32 name 'GetPrivateObjectSecurity';
  16793. function DestroyPrivateObjectSecurity; external advapi32 name 'DestroyPrivateObjectSecurity';
  16794. function MakeSelfRelativeSD; external advapi32 name 'MakeSelfRelativeSD';
  16795. function MakeAbsoluteSD; external advapi32 name 'MakeAbsoluteSD';
  16796. function MakeAbsoluteSD2; external advapi32 name 'MakeAbsoluteSD2';
  16797. function SetFileSecurityA; external advapi32 name 'SetFileSecurityA';
  16798. function SetFileSecurityW; external advapi32 name 'SetFileSecurityW';
  16799. function SetFileSecurity; external advapi32 name 'SetFileSecurity' + AWSuffix;
  16800. function GetFileSecurityA; external advapi32 name 'GetFileSecurityA';
  16801. function GetFileSecurityW; external advapi32 name 'GetFileSecurityW';
  16802. function GetFileSecurity; external advapi32 name 'GetFileSecurity' + AWSuffix;
  16803. function SetKernelObjectSecurity; external advapi32 name 'SetKernelObjectSecurity';
  16804. function FindFirstChangeNotificationA; external kernel32 name 'FindFirstChangeNotificationA';
  16805. function FindFirstChangeNotificationW; external kernel32 name 'FindFirstChangeNotificationW';
  16806. function FindFirstChangeNotification; external kernel32 name 'FindFirstChangeNotification' + AWSuffix;
  16807. function FindNextChangeNotification; external kernel32 name 'FindNextChangeNotification';
  16808. function FindCloseChangeNotification; external kernel32 name 'FindCloseChangeNotification';
  16809. function ReadDirectoryChangesW; external kernel32 name 'ReadDirectoryChangesW';
  16810. function VirtualLock; external kernel32 name 'VirtualLock';
  16811. function VirtualUnlock; external kernel32 name 'VirtualUnlock';
  16812. function MapViewOfFileEx; external kernel32 name 'MapViewOfFileEx';
  16813. function SetPriorityClass; external kernel32 name 'SetPriorityClass';
  16814. function GetPriorityClass; external kernel32 name 'GetPriorityClass';
  16815. function IsBadReadPtr; external kernel32 name 'IsBadReadPtr';
  16816. function IsBadWritePtr; external kernel32 name 'IsBadWritePtr';
  16817. function IsBadHugeReadPtr; external kernel32 name 'IsBadHugeReadPtr';
  16818. function IsBadHugeWritePtr; external kernel32 name 'IsBadHugeWritePtr';
  16819. function IsBadCodePtr; external kernel32 name 'IsBadCodePtr';
  16820. function IsBadStringPtrA; external kernel32 name 'IsBadStringPtrA';
  16821. function IsBadStringPtrW; external kernel32 name 'IsBadStringPtrW';
  16822. function IsBadStringPtr; external kernel32 name 'IsBadStringPtr' + AWSuffix;
  16823. function LookupAccountSidA; external advapi32 name 'LookupAccountSidA';
  16824. function LookupAccountSidW; external advapi32 name 'LookupAccountSidW';
  16825. function LookupAccountSid; external advapi32 name 'LookupAccountSid' + AWSuffix;
  16826. function LookupAccountNameA; external advapi32 name 'LookupAccountNameA';
  16827. function LookupAccountNameW; external advapi32 name 'LookupAccountNameW';
  16828. function LookupAccountName; external advapi32 name 'LookupAccountName' + AWSuffix;
  16829. function LookupPrivilegeValueA; external advapi32 name 'LookupPrivilegeValueA';
  16830. function LookupPrivilegeValueW; external advapi32 name 'LookupPrivilegeValueW';
  16831. function LookupPrivilegeValue; external advapi32 name 'LookupPrivilegeValue' + AWSuffix;
  16832. function LookupPrivilegeNameA; external advapi32 name 'LookupPrivilegeNameA';
  16833. function LookupPrivilegeNameW; external advapi32 name 'LookupPrivilegeNameW';
  16834. function LookupPrivilegeName; external advapi32 name 'LookupPrivilegeName' + AWSuffix;
  16835. function LookupPrivilegeDisplayNameA; external advapi32 name 'LookupPrivilegeDisplayNameA';
  16836. function LookupPrivilegeDisplayNameW; external advapi32 name 'LookupPrivilegeDisplayNameW';
  16837. function LookupPrivilegeDisplayName; external advapi32 name 'LookupPrivilegeDisplayName' + AWSuffix;
  16838. function AllocateLocallyUniqueId; external advapi32 name 'AllocateLocallyUniqueId';
  16839. function BuildCommDCBA; external kernel32 name 'BuildCommDCBA';
  16840. function BuildCommDCBW; external kernel32 name 'BuildCommDCBW';
  16841. function BuildCommDCB; external kernel32 name 'BuildCommDCB' + AWSuffix;
  16842. function BuildCommDCBAndTimeoutsA; external kernel32 name 'BuildCommDCBAndTimeoutsA';
  16843. function BuildCommDCBAndTimeoutsW; external kernel32 name 'BuildCommDCBAndTimeoutsW';
  16844. function BuildCommDCBAndTimeouts; external kernel32 name 'BuildCommDCBAndTimeouts' + AWSuffix;
  16845. function CommConfigDialogA; external kernel32 name 'CommConfigDialogA';
  16846. function CommConfigDialogW; external kernel32 name 'CommConfigDialogW';
  16847. function CommConfigDialog; external kernel32 name 'CommConfigDialog' + AWSuffix;
  16848. function GetDefaultCommConfigA; external kernel32 name 'GetDefaultCommConfigA';
  16849. function GetDefaultCommConfigW; external kernel32 name 'GetDefaultCommConfigW';
  16850. function GetDefaultCommConfig; external kernel32 name 'GetDefaultCommConfig' + AWSuffix;
  16851. function SetDefaultCommConfigA; external kernel32 name 'SetDefaultCommConfigA';
  16852. function SetDefaultCommConfigW; external kernel32 name 'SetDefaultCommConfigW';
  16853. function SetDefaultCommConfig; external kernel32 name 'SetDefaultCommConfig' + AWSuffix;
  16854. function GetComputerNameA; external kernel32 name 'GetComputerNameA';
  16855. function GetComputerNameW; external kernel32 name 'GetComputerNameW';
  16856. function GetComputerName; external kernel32 name 'GetComputerName' + AWSuffix;
  16857. function SetComputerNameA; external kernel32 name 'SetComputerNameA';
  16858. function SetComputerNameW; external kernel32 name 'SetComputerNameW';
  16859. function SetComputerName; external kernel32 name 'SetComputerName' + AWSuffix;
  16860. function GetComputerNameExA; external kernel32 name 'GetComputerNameExA';
  16861. function GetComputerNameExW; external kernel32 name 'GetComputerNameExW';
  16862. function GetComputerNameEx; external kernel32 name 'GetComputerNameEx' + AWSuffix;
  16863. function SetComputerNameExA; external kernel32 name 'SetComputerNameExA';
  16864. function SetComputerNameExW; external kernel32 name 'SetComputerNameExW';
  16865. function SetComputerNameEx; external kernel32 name 'SetComputerNameEx' + AWSuffix;
  16866. function DnsHostnameToComputerNameA; external kernel32 name 'DnsHostnameToComputerNameA';
  16867. function DnsHostnameToComputerNameW; external kernel32 name 'DnsHostnameToComputerNameW';
  16868. function DnsHostnameToComputerName; external kernel32 name 'DnsHostnameToComputerName' + AWSuffix;
  16869. function GetUserNameA; external advapi32 name 'GetUserNameA';
  16870. function GetUserNameW; external advapi32 name 'GetUserNameW';
  16871. function GetUserName; external advapi32 name 'GetUserName' + AWSuffix;
  16872. function LogonUserA; external advapi32 name 'LogonUserA';
  16873. function LogonUserW; external advapi32 name 'LogonUserW';
  16874. function LogonUser; external advapi32 name 'LogonUser' + AWSuffix;
  16875. function LogonUserExA; external advapi32 name 'LogonUserExA';
  16876. function LogonUserExW; external advapi32 name 'LogonUserExW';
  16877. function LogonUserEx; external advapi32 name 'LogonUserEx' + AWSuffix;
  16878. function ImpersonateLoggedOnUser; external advapi32 name 'ImpersonateLoggedOnUser';
  16879. function CreateProcessAsUserA; external advapi32 name 'CreateProcessAsUserA';
  16880. function CreateProcessAsUserW; external advapi32 name 'CreateProcessAsUserW';
  16881. function CreateProcessAsUser; external advapi32 name 'CreateProcessAsUser' + AWSuffix;
  16882. function CreateProcessWithLogonW; external advapi32 name 'CreateProcessWithLogonW';
  16883. function CreateProcessWithTokenW; external advapi32 name 'CreateProcessWithTokenW';
  16884. function ImpersonateAnonymousToken; external advapi32 name 'ImpersonateAnonymousToken';
  16885. function DuplicateTokenEx; external advapi32 name 'DuplicateTokenEx';
  16886. function CreateRestrictedToken; external advapi32 name 'CreateRestrictedToken';
  16887. function IsTokenRestricted; external advapi32 name 'IsTokenRestricted';
  16888. function CheckTokenMembership; external advapi32 name 'CheckTokenMembership';
  16889. function IsTokenUntrusted; external advapi32 name 'IsTokenUntrusted';
  16890. function RegisterWaitForSingleObject; external kernel32 name 'RegisterWaitForSingleObject';
  16891. function RegisterWaitForSingleObjectEx; external kernel32 name 'RegisterWaitForSingleObjectEx';
  16892. function UnregisterWait; external kernel32 name 'UnregisterWait';
  16893. function UnregisterWaitEx; external kernel32 name 'UnregisterWaitEx';
  16894. function QueueUserWorkItem; external kernel32 name 'QueueUserWorkItem';
  16895. function BindIoCompletionCallback; external kernel32 name 'BindIoCompletionCallback';
  16896. function CreateTimerQueue; external kernel32 name 'CreateTimerQueue';
  16897. function CreateTimerQueueTimer; external kernel32 name 'CreateTimerQueueTimer';
  16898. function ChangeTimerQueueTimer; external kernel32 name 'ChangeTimerQueueTimer';
  16899. function DeleteTimerQueueTimer; external kernel32 name 'DeleteTimerQueueTimer';
  16900. function DeleteTimerQueueEx; external kernel32 name 'DeleteTimerQueueEx';
  16901. function SetTimerQueueTimer; external kernel32 name 'SetTimerQueueTimer';
  16902. function CancelTimerQueueTimer; external kernel32 name 'CancelTimerQueueTimer';
  16903. function DeleteTimerQueue; external kernel32 name 'DeleteTimerQueue';
  16904. function GetCurrentHwProfileA; external advapi32 name 'GetCurrentHwProfileA';
  16905. function GetCurrentHwProfileW; external advapi32 name 'GetCurrentHwProfileW';
  16906. function GetCurrentHwProfile; external advapi32 name 'GetCurrentHwProfile' + AWSuffix;
  16907. function QueryPerformanceCounter; external kernel32 name 'QueryPerformanceCounter';
  16908. function QueryPerformanceFrequency; external kernel32 name 'QueryPerformanceFrequency';
  16909. function GetVersionExA; external kernel32 name 'GetVersionExA';
  16910. function GetVersionExW; external kernel32 name 'GetVersionExW';
  16911. function GetVersionEx; external kernel32 name 'GetVersionEx' + AWSuffix;
  16912. function VerifyVersionInfoA; external kernel32 name 'VerifyVersionInfoA';
  16913. function VerifyVersionInfoW; external kernel32 name 'VerifyVersionInfoW';
  16914. function VerifyVersionInfo; external kernel32 name 'VerifyVersionInfo' + AWSuffix;
  16915. function GetSystemPowerStatus; external kernel32 name 'GetSystemPowerStatus';
  16916. function SetSystemPowerState; external kernel32 name 'SetSystemPowerState';
  16917. function AllocateUserPhysicalPages; external kernel32 name 'AllocateUserPhysicalPages';
  16918. function FreeUserPhysicalPages; external kernel32 name 'FreeUserPhysicalPages';
  16919. function MapUserPhysicalPages; external kernel32 name 'MapUserPhysicalPages';
  16920. function MapUserPhysicalPagesScatter; external kernel32 name 'MapUserPhysicalPagesScatter';
  16921. function CreateJobObjectA; external kernel32 name 'CreateJobObjectA';
  16922. function CreateJobObjectW; external kernel32 name 'CreateJobObjectW';
  16923. function CreateJobObject; external kernel32 name 'CreateJobObject' + AWSuffix;
  16924. function OpenJobObjectA; external kernel32 name 'OpenJobObjectA';
  16925. function OpenJobObjectW; external kernel32 name 'OpenJobObjectW';
  16926. function OpenJobObject; external kernel32 name 'OpenJobObject' + AWSuffix;
  16927. function AssignProcessToJobObject; external kernel32 name 'AssignProcessToJobObject';
  16928. function TerminateJobObject; external kernel32 name 'TerminateJobObject';
  16929. function QueryInformationJobObject; external kernel32 name 'QueryInformationJobObject';
  16930. function SetInformationJobObject; external kernel32 name 'SetInformationJobObject';
  16931. function IsProcessInJob; external kernel32 name 'IsProcessInJob';
  16932. function CreateJobSet; external kernel32 name 'CreateJobSet';
  16933. function AddVectoredExceptionHandler; external kernel32 name 'AddVectoredExceptionHandler';
  16934. function RemoveVectoredExceptionHandler; external kernel32 name 'RemoveVectoredExceptionHandler';
  16935. function FindFirstVolumeA; external kernel32 name 'FindFirstVolumeA';
  16936. function FindFirstVolumeW; external kernel32 name 'FindFirstVolumeW';
  16937. function FindFirstVolume; external kernel32 name 'FindFirstVolume' + AWSuffix;
  16938. function FindNextVolumeA; external kernel32 name 'FindNextVolumeA';
  16939. function FindNextVolumeW; external kernel32 name 'FindNextVolumeW';
  16940. function FindNextVolume; external kernel32 name 'FindNextVolume' + AWSuffix;
  16941. function FindVolumeClose; external kernel32 name 'FindVolumeClose';
  16942. function FindFirstVolumeMountPointA; external kernel32 name 'FindFirstVolumeMountPointA';
  16943. function FindFirstVolumeMountPointW; external kernel32 name 'FindFirstVolumeMountPointW';
  16944. function FindFirstVolumeMountPoint; external kernel32 name 'FindFirstVolumeMountPoint' + AWSuffix;
  16945. function FindNextVolumeMountPointA; external kernel32 name 'FindNextVolumeMountPointA';
  16946. function FindNextVolumeMountPointW; external kernel32 name 'FindNextVolumeMountPointW';
  16947. function FindNextVolumeMountPoint; external kernel32 name 'FindNextVolumeMountPoint' + AWSuffix;
  16948. function FindVolumeMountPointClose; external kernel32 name 'FindVolumeMountPointClose';
  16949. function SetVolumeMountPointA; external kernel32 name 'SetVolumeMountPointA';
  16950. function SetVolumeMountPointW; external kernel32 name 'SetVolumeMountPointW';
  16951. function SetVolumeMountPoint; external kernel32 name 'SetVolumeMountPoint' + AWSuffix;
  16952. function DeleteVolumeMountPointA; external kernel32 name 'DeleteVolumeMountPointA';
  16953. function DeleteVolumeMountPointW; external kernel32 name 'DeleteVolumeMountPointW';
  16954. function DeleteVolumeMountPoint; external kernel32 name 'DeleteVolumeMountPoint' + AWSuffix;
  16955. function GetVolumeNameForVolumeMountPointA; external kernel32 name 'GetVolumeNameForVolumeMountPointA';
  16956. function GetVolumeNameForVolumeMountPointW; external kernel32 name 'GetVolumeNameForVolumeMountPointW';
  16957. function GetVolumeNameForVolumeMountPoint; external kernel32 name 'GetVolumeNameForVolumeMountPoint' + AWSuffix;
  16958. function GetVolumePathNameA; external kernel32 name 'GetVolumePathNameA';
  16959. function GetVolumePathNameW; external kernel32 name 'GetVolumePathNameW';
  16960. function GetVolumePathName; external kernel32 name 'GetVolumePathName' + AWSuffix;
  16961. function GetVolumePathNamesForVolumeNameA; external kernel32 name 'GetVolumePathNamesForVolumeNameA';
  16962. function GetVolumePathNamesForVolumeNameW; external kernel32 name 'GetVolumePathNamesForVolumeNameW';
  16963. function GetVolumePathNamesForVolumeName; external kernel32 name 'GetVolumePathNamesForVolumeName' + AWSuffix;
  16964. function CreateActCtxA; external kernel32 name 'CreateActCtxA';
  16965. function CreateActCtxW; external kernel32 name 'CreateActCtxW';
  16966. function CreateActCtx; external kernel32 name 'CreateActCtx' + AWSuffix;
  16967. procedure AddRefActCtx; external kernel32 name 'AddRefActCtx';
  16968. procedure ReleaseActCtx; external kernel32 name 'ReleaseActCtx';
  16969. function ZombifyActCtx; external kernel32 name 'ZombifyActCtx';
  16970. function ActivateActCtx; external kernel32 name 'ActivateActCtx';
  16971. function DeactivateActCtx; external kernel32 name 'DeactivateActCtx';
  16972. function GetCurrentActCtx; external kernel32 name 'GetCurrentActCtx';
  16973. function FindActCtxSectionStringA; external kernel32 name 'FindActCtxSectionStringA';
  16974. function FindActCtxSectionStringW; external kernel32 name 'FindActCtxSectionStringW';
  16975. function FindActCtxSectionString; external kernel32 name 'FindActCtxSectionString' + AWSuffix;
  16976. function FindActCtxSectionGuid; external kernel32 name 'FindActCtxSectionGuid';
  16977. function QueryActCtxW; external kernel32 name 'QueryActCtxW';
  16978. function ProcessIdToSessionId; external kernel32 name 'ProcessIdToSessionId';
  16979. function WTSGetActiveConsoleSessionId; external kernel32 name 'WTSGetActiveConsoleSessionId';
  16980. function IsWow64Process; external kernel32 name 'IsWow64Process';
  16981. function GetLogicalProcessorInformation; external kernel32 name 'GetLogicalProcessorInformation';
  16982. function GetNumaHighestNodeNumber; external kernel32 name 'GetNumaHighestNodeNumber';
  16983. function GetNumaProcessorNode; external kernel32 name 'GetNumaProcessorNode';
  16984. function GetNumaNodeProcessorMask; external kernel32 name 'GetNumaNodeProcessorMask';
  16985. function GetNumaAvailableMemoryNode; external kernel32 name 'GetNumaAvailableMemoryNode';
  16986. {$ENDIF DYNAMIC_LINK}
  16987. end.