123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258 |
- {******************************************************************************}
- { }
- { Interface unit for the Windows NT Native API }
- { Copyright (C) 1999, 2000, 2005 Marcel van Brakel (brakelm) }
- { Copyright (C) 2000-2001, 2005 Oliver Schneider (assarbad) }
- { }
- { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
- { }
- { You may retrieve the latest version of this file at the Project JEDI }
- { APILIB home page, located at http://jedi-apilib.sourceforge.net }
- { }
- { The contents of this file are used with permission, subject to the Mozilla }
- { Public License Version 1.1 (the "License"); you may not use this file except }
- { in compliance with the License. You may obtain a copy of the License at }
- { http://www.mozilla.org/MPL/MPL-1.1.html }
- { }
- { Software distributed under the License is distributed on an "AS IS" basis, }
- { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
- { the specific language governing rights and limitations under the License. }
- { }
- { Alternatively, the contents of this file may be used under the terms of the }
- { GNU Lesser General Public License (the "LGPL License"), in which case the }
- { provisions of the LGPL License are applicable instead of those above. }
- { If you wish to allow use of your version of this file only under the terms }
- { of the LGPL License and not to allow others to use your version of this file }
- { under the MPL, indicate your decision by deleting the provisions above and }
- { replace them with the notice and other provisions required by the LGPL }
- { License. If you do not delete the provisions above, a recipient may use }
- { your version of this file under either the MPL or the LGPL License. }
- { }
- { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
- { }
- {******************************************************************************}
- // $Id: JwaNative.pas,v 1.24 2007/09/14 06:48:46 marquardt Exp $
- {******************************************************************************}
- {** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING **}
- {******************************************************************************}
- {** **}
- {** The prototypes, declarations and information in this file has been **}
- {** compiled from various sources as well as through reverse engineering **}
- {** techniques. We make no guarantee as to the correctness of the contents. **}
- {** Caution is recommended, USE AT YOUR OWN RISK. **}
- {** **}
- {******************************************************************************}
- {** About the Native API ** }
- {******************************************************************************}
- {** **}
- {** The functions herein are usually referred to as the NT Native API. **}
- {** The Native API is subdivided into several functional categories, which **}
- {** you can distinguish by the function name prefix: **}
- {** **}
- {** Cc = Cache Controller **}
- {** Cm = Configuration Manager **}
- {** Csr = Client Server support functions (LPC; related: CSRSS.EXE) **}
- {** Dbg = Debugger support functions **}
- {** Etw = Event Tracing for Windows **}
- {** Ex = Executive **}
- {** Fs = File system support functions **}
- {** Hal = Hardware abstraction layer functions **}
- {** Inbv = Something like: _In_itial _B_oot _V_ideo functions **}
- {** Io = I/O manager support functions **}
- {** Kd = Kernel debugger support functions **}
- {** Ke = General Kernel **}
- {** Ki = Kernel internal support functions (???) **}
- {** Ldr = PE image loader support functions **}
- {** Lpc = LPC support functions **}
- {** Lsa = Local security authority support functions **}
- {** Mm = Memory manager support functions **}
- {** Nls = National Language Support **}
- {** Nt = Generic Native APIs **}
- {** Ob = Object manager functions **}
- {** Pfx = Name prefix support functions (???) **}
- {** Po = Power management support functions **}
- {** Ps = Process management support functions **}
- {** Rtl = Runtime library functions **}
- {** Rtlp = Private runtime library functions 1) **}
- {** Se = Security support functions **}
- {** Wmi = Windows management instrumentation support functions **}
- {** Vf = Driver Verifier **}
- {** Zw = Nt* counterparts. Zw == "Zero Warranty"??? **}
- {** 1) "p" after the prefix means "private" **}
- {** **}
- {** The Native API is split into a user mode component (mainly NTDLL.DLL) **}
- {** and a kernel mode component (mainly NTOSKRNL.EXE). While a large part of **}
- {** the Native API is available both from usermode and kernelmode, some **}
- {** functions are exclusive to either mode. This unit only deals with **}
- {** functions that are available to usermode code. **}
- {** **}
- {** Note that the functions prefixed with "Nt" and "Zw" usually appear in **}
- {** pairs, though not always! For details see http://native.assarbad.net **}
- {** **}
- {** Most of the Native API is undocumented. However, Microsoft recently **}
- {** started to document a subset of the API in "winternl.h" in the Platform **}
- {** SDK. A small part of the Native API functions, specifically those useful **}
- {** for kernel mode development (device drivers) are documented in the DDK. **}
- {** **}
- {******************************************************************************}
- {** Special notes **}
- {******************************************************************************}
- {** **}
- {** Some functions herein have been implemented instead of being imported. **}
- {** That's due to the fact, that the FASTCALL calling convention is not **}
- {** available in Delphi. These functions include: **}
- {** - RtlUshortByteSwap() **}
- {** - RtlUlongByteSwap() **}
- {** - RtlUlonglongByteSwap() **}
- {** **}
- {** Other functions are implemented and also imported, but have been made **}
- {** available for OS versions not actually supporting them. These are: **}
- {** - RtlGetLastWin32Error() **}
- {** - RtlSetLastWin32Error() **}
- {** **}
- {** Starting with Windows XP, the Kernel32!GetLastError() and counterpart **}
- {** Kernel32!SetLastError() have been moved into NTDLL and are only function **}
- {** forwarders to the NTDLL functions with the names above. **}
- {** By importing them directly from Kernel32.dll via their old names we **}
- {** enable you to use these functions transparently without regard to the OS **}
- {** version. **}
- {** **}
- {** RtlCopyMemory() had to be implemented via Delphi means because it's only **}
- {** a macro (pointing to memcpy) in the C-world. **}
- {** **}
- {** Last but not least we've implemented our own versions of some of the **}
- {** functions available through NTDLL [declared private Ntp*, Rtlp*]: **}
- {** - NtpGetProcessHeap() **}
- {** - NtpCurrentTeb() **}
- {** - RtlpGetCurrentPeb() **}
- {** **}
- {** Plus a function that is available starting from Windows XP, but could be **}
- {** useful on earlier versions as well [declared private Rtlp*]: **}
- {** - RtlpValidateUnicodeString() **}
- {** **}
- {** And our own flavor of it, omitting the first (currently unused) **}
- {** parameter: **}
- {** - RtlpValidateUnicodeString2() **}
- {** **}
- {******************************************************************************}
- {** References, Tools, Docs **}
- {******************************************************************************}
- {** **}
- {** - Windows NT/2000 Native API References (Gary Nebbett) **}
- {** ISBN 1-57870-199-6 **}
- {** - Undocumented Windows 2000 Secrets (Sven B. Schreiber) **}
- {** ISBN 0-201-72187-2 **}
- {** - Undocumented Windows NT (Prasad Dabak, Sandeep Phadke, Milind Borate) **}
- {** ISBN 0-7645-4569-8 **}
- {** - Platform SDK for Windows 2003 Server (or later version) **}
- {** http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ **}
- {** - Windows 2003 DDK (or similar DDK version **}
- {** http://www.microsoft.com/whdc/ddk/ **}
- {** - WinDbg - a debugger that is usually badly underestimated! **}
- {** http://www.microsoft.com/whdc/devtools/debugging **}
- {** - IDA Pro Standard 4.7 (or later) - world's best disassembler **}
- {** http://www.datarescue.com/idabase/ **}
- {** - NTDEV, NTFSD, WINDBG mailing lists and more ... **}
- {** http://www.osronline.com/ **}
- {** - Sysinternals tools and documentation of some "Windows secrets" **}
- {** http://www.sysinternals.com/ **}
- {** - A nicely done online compilation of NT Native APIs **}
- {** http://undocumented.ntinternals.net/ **}
- {** - ReactOS (to cross-check own assumptions with those of other smart guys)**}
- {** http://www.reactos.com/ **}
- {** **}
- {******************************************************************************}
- {$IFNDEF JWA_OMIT_SECTIONS}
- unit JwaNative;
- interface
- {$INCLUDE jediapilib.inc}
- uses
- JwaWinType, JwaWinNT, JwaWinBase, JwaNtStatus;
- {$WEAKPACKAGEUNIT}
- // For native APIs we consider RTDL the better method of importing
- {.$DEFINE RTDL}
- {$IFDEF RTDL}{$DEFINE DYNAMIC_LINK}{$ENDIF}
- const
- ntdll = 'ntdll.dll';
- //------------------------------------------------------------------------------
- {$ENDIF JWA_OMIT_SECTIONS}
- {$IFNDEF JWA_IMPLEMENTATIONSECTION}
- type
-
- _CLIENT_ID = record
- UniqueProcess: HANDLE;
- UniqueThread: HANDLE;
- end;
- CLIENT_ID = _CLIENT_ID;
- PCLIENT_ID = ^CLIENT_ID;
- TClientID = CLIENT_ID;
- PClientID = ^TClientID;
- KPRIORITY = LONG;
- _KWAIT_REASON = (
- Executive,
- FreePage,
- PageIn,
- PoolAllocation,
- DelayExecution,
- Suspended,
- UserRequest,
- WrExecutive,
- WrFreePage,
- WrPageIn,
- WrPoolAllocation,
- WrDelayExecution,
- WrSuspended,
- WrUserRequest,
- WrEventPair,
- WrQueue,
- WrLpcReceive,
- WrLpcReply,
- WrVirtualMemory,
- WrPageOut,
- WrRendezvous,
- Spare2,
- Spare3,
- Spare4,
- Spare5,
- Spare6,
- WrKernel,
- MaximumWaitReason);
- KWAIT_REASON = _KWAIT_REASON;
- TKWaitReason = KWAIT_REASON;
- _VM_COUNTERS = record
- PeakVirtualSize: SIZE_T;
- VirtualSize: SIZE_T;
- PageFaultCount: ULONG;
- PeakWorkingSetSize: SIZE_T;
- WorkingSetSize: SIZE_T;
- QuotaPeakPagedPoolUsage: SIZE_T;
- QuotaPagedPoolUsage: SIZE_T;
- QuotaPeakNonPagedPoolUsage: SIZE_T;
- QuotaNonPagedPoolUsage: SIZE_T;
- PagefileUsage: SIZE_T;
- PeakPagefileUsage: SIZE_T;
- end;
- VM_COUNTERS = _VM_COUNTERS;
- PVM_COUNTERS = ^VM_COUNTERS;
- TVmCounters = VM_COUNTERS;
- PVmCounters = ^TVmCounters;
- const
- NonPagedPool = 0;
- PagedPool = 1;
- NonPagedPoolMustSucceed = 2;
- DontUseThisType = 3;
- NonPagedPoolCacheAligned = 4;
- PagedPoolCacheAligned = 5;
- NonPagedPoolCacheAlignedMustS = 6;
- MaxPoolType = 7;
- NonPagedPoolSession = 32;
- PagedPoolSession = NonPagedPoolSession + 1;
- NonPagedPoolMustSucceedSession = PagedPoolSession + 1;
- DontUseThisTypeSession = NonPagedPoolMustSucceedSession + 1;
- NonPagedPoolCacheAlignedSession = DontUseThisTypeSession + 1;
- PagedPoolCacheAlignedSession = NonPagedPoolCacheAlignedSession + 1;
- NonPagedPoolCacheAlignedMustSSession = PagedPoolCacheAlignedSession + 1;
- type
- POOL_TYPE = NonPagedPool..NonPagedPoolCacheAlignedMustSSession;
- _IO_STATUS_BLOCK = record
- //union {
- Status: NTSTATUS;
- // PVOID Pointer;
- //}
- Information: ULONG_PTR;
- end;
- IO_STATUS_BLOCK = _IO_STATUS_BLOCK;
- PIO_STATUS_BLOCK = ^IO_STATUS_BLOCK;
- TIoStatusBlock = IO_STATUS_BLOCK;
- PIoStatusBlock = ^TIoStatusBlock;
- const
- ViewShare = 1;
- ViewUnmap = 2;
- type
- SECTION_INHERIT = ViewShare..ViewUnmap;
- {.$IFNDEF JWA_INCLUDEMODE}
- _THREADINFOCLASS = (
- ThreadBasicInformation,
- ThreadTimes,
- ThreadPriority,
- ThreadBasePriority,
- ThreadAffinityMask,
- ThreadImpersonationToken,
- ThreadDescriptorTableEntry,
- ThreadEnableAlignmentFaultFixup,
- ThreadEventPair_Reusable,
- ThreadQuerySetWin32StartAddress,
- ThreadZeroTlsCell,
- ThreadPerformanceCount,
- ThreadAmILastThread,
- ThreadIdealProcessor,
- ThreadPriorityBoost,
- ThreadSetTlsArrayAddress,
- ThreadIsIoPending,
- ThreadHideFromDebugger,
- ThreadBreakOnTermination, // was added in XP - used by RtlSetThreadIsCritical()
- MaxThreadInfoClass);
- THREADINFOCLASS = _THREADINFOCLASS;
- {.$ENDIF JWA_INCLUDEMODE}
- THREAD_INFORMATION_CLASS = THREADINFOCLASS;
- TThreadInfoClass = THREADINFOCLASS;
- {$IFNDEF JWA_INCLUDEMODE}
- KAFFINITY = ULONG;
- PKAFFINITY = ^KAFFINITY;
- {$ENDIF JWA_INCLUDEMODE}
- PKNORMAL_ROUTINE = procedure(NormalContext, SystemArgument1, SystemArgument2: PVOID); stdcall;
- _PROCESSINFOCLASS = (
- ProcessBasicInformation,
- ProcessQuotaLimits,
- ProcessIoCounters,
- ProcessVmCounters,
- ProcessTimes,
- ProcessBasePriority,
- ProcessRaisePriority,
- ProcessDebugPort,
- ProcessExceptionPort,
- ProcessAccessToken,
- ProcessLdtInformation,
- ProcessLdtSize,
- ProcessDefaultHardErrorMode,
- ProcessIoPortHandlers, // Note: this is kernel mode only
- ProcessPooledUsageAndLimits,
- ProcessWorkingSetWatch,
- ProcessUserModeIOPL,
- ProcessEnableAlignmentFaultFixup,
- ProcessPriorityClass,
- ProcessWx86Information,
- ProcessHandleCount,
- ProcessAffinityMask,
- ProcessPriorityBoost,
- ProcessDeviceMap,
- ProcessSessionInformation,
- ProcessForegroundInformation,
- ProcessWow64Information, // = 26
- ProcessImageFileName, // added after W2K
- ProcessLUIDDeviceMapsEnabled,
- ProcessBreakOnTermination, // used by RtlSetProcessIsCritical()
- ProcessDebugObjectHandle,
- ProcessDebugFlags,
- ProcessHandleTracing,
- MaxProcessInfoClass);
- PROCESSINFOCLASS = _PROCESSINFOCLASS;
- PROCESS_INFORMATION_CLASS = PROCESSINFOCLASS;
- TProcessInfoClass = PROCESSINFOCLASS;
- _KPROFILE_SOURCE = (
- ProfileTime,
- ProfileAlignmentFixup,
- ProfileTotalIssues,
- ProfilePipelineDry,
- ProfileLoadInstructions,
- ProfilePipelineFrozen,
- ProfileBranchInstructions,
- ProfileTotalNonissues,
- ProfileDcacheMisses,
- ProfileIcacheMisses,
- ProfileCacheMisses,
- ProfileBranchMispredictions,
- ProfileStoreInstructions,
- ProfileFpInstructions,
- ProfileIntegerInstructions,
- Profile2Issue,
- Profile3Issue,
- Profile4Issue,
- ProfileSpecialInstructions,
- ProfileTotalCycles,
- ProfileIcacheIssues,
- ProfileDcacheAccesses,
- ProfileMemoryBarrierCycles,
- ProfileLoadLinkedIssues,
- ProfileMaximum);
- KPROFILE_SOURCE = _KPROFILE_SOURCE;
- TKProfileSource = KPROFILE_SOURCE;
- PIO_APC_ROUTINE = procedure(ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Reserved: ULONG); stdcall;
- _FILE_FULL_EA_INFORMATION = record
- NextEntryOffset: ULONG;
- Flags: UCHAR;
- EaNameLength: UCHAR;
- EaValueLength: USHORT;
- EaName: array[0..0] of CHAR;
- end;
- FILE_FULL_EA_INFORMATION = _FILE_FULL_EA_INFORMATION;
- PFILE_FULL_EA_INFORMATION = ^FILE_FULL_EA_INFORMATION;
- TFileFullEaInformation = FILE_FULL_EA_INFORMATION;
- PFileFullEaInformation = ^TFileFullEaInformation;
- _FSINFOCLASS = (
- FileFsFiller0,
- FileFsVolumeInformation, // 1
- FileFsLabelInformation, // 2
- FileFsSizeInformation, // 3
- FileFsDeviceInformation, // 4
- FileFsAttributeInformation, // 5
- FileFsControlInformation, // 6
- FileFsFullSizeInformation, // 7
- FileFsObjectIdInformation, // 8
- FileFsMaximumInformation);
- FS_INFORMATION_CLASS = _FSINFOCLASS;
- PFS_INFORMATION_CLASS = ^FS_INFORMATION_CLASS;
- TFsInformationClass = FS_INFORMATION_CLASS;
- PFsInformationClass = ^TFsInformationClass;
- {$IFNDEF JWA_INCLUDEMODE} //defined in jwaWindows.pas
- UUID = GUID;
- {$ENDIF JWA_INCLUDEMODE}
- _FILE_BASIC_INFORMATION = record
- CreationTime: LARGE_INTEGER;
- LastAccessTime: LARGE_INTEGER;
- LastWriteTime: LARGE_INTEGER;
- ChangeTime: LARGE_INTEGER;
- FileAttributes: ULONG;
- end;
- FILE_BASIC_INFORMATION = _FILE_BASIC_INFORMATION;
- PFILE_BASIC_INFORMATION = ^FILE_BASIC_INFORMATION;
- TFileBasicInformation = FILE_BASIC_INFORMATION;
- PFileBasicInformation = ^TFileBasicInformation;
- _FILE_NETWORK_OPEN_INFORMATION = record
- CreationTime: LARGE_INTEGER;
- LastAccessTime: LARGE_INTEGER;
- LastWriteTime: LARGE_INTEGER;
- ChangeTime: LARGE_INTEGER;
- AllocationSize: LARGE_INTEGER;
- EndOfFile: LARGE_INTEGER;
- FileAttributes: ULONG;
- end;
- FILE_NETWORK_OPEN_INFORMATION = _FILE_NETWORK_OPEN_INFORMATION;
- PFILE_NETWORK_OPEN_INFORMATION = ^FILE_NETWORK_OPEN_INFORMATION;
- TFileNetworkOpenInformation = FILE_NETWORK_OPEN_INFORMATION;
- PFileNetworkOpenInformation = ^TFileNetworkOpenInformation;
-
- _FILE_INFORMATION_CLASS = (
- FileFiller0,
- FileDirectoryInformation, // 1
- FileFullDirectoryInformation, // 2
- FileBothDirectoryInformation, // 3
- FileBasicInformation, // 4 wdm
- FileStandardInformation, // 5 wdm
- FileInternalInformation, // 6
- FileEaInformation, // 7
- FileAccessInformation, // 8
- FileNameInformation, // 9
- FileRenameInformation, // 10
- FileLinkInformation, // 11
- FileNamesInformation, // 12
- FileDispositionInformation, // 13
- FilePositionInformation, // 14 wdm
- FileFullEaInformation, // 15
- FileModeInformation, // 16
- FileAlignmentInformation, // 17
- FileAllInformation, // 18
- FileAllocationInformation, // 19
- FileEndOfFileInformation, // 20 wdm
- FileAlternateNameInformation, // 21
- FileStreamInformation, // 22
- FilePipeInformation, // 23
- FilePipeLocalInformation, // 24
- FilePipeRemoteInformation, // 25
- FileMailslotQueryInformation, // 26
- FileMailslotSetInformation, // 27
- FileCompressionInformation, // 28
- FileObjectIdInformation, // 29
- FileCompletionInformation, // 30
- FileMoveClusterInformation, // 31
- FileQuotaInformation, // 32
- FileReparsePointInformation, // 33
- FileNetworkOpenInformation, // 34
- FileAttributeTagInformation, // 35
- FileTrackingInformation, // 36
- FileMaximumInformation);
- FILE_INFORMATION_CLASS = _FILE_INFORMATION_CLASS;
- PFILE_INFORMATION_CLASS = ^FILE_INFORMATION_CLASS;
- TFileInformationClass = FILE_INFORMATION_CLASS;
- PFileInformationClass = ^TFileInformationClass;
- _FILE_STANDARD_INFORMATION = record
- AllocationSize: LARGE_INTEGER;
- EndOfFile: LARGE_INTEGER;
- NumberOfLinks: ULONG;
- DeletePending: ByteBool;
- Directory: ByteBool;
- end;
- FILE_STANDARD_INFORMATION = _FILE_STANDARD_INFORMATION;
- PFILE_STANDARD_INFORMATION = ^FILE_STANDARD_INFORMATION;
- TFileStandardInformation = FILE_STANDARD_INFORMATION;
- PFileStandardInformation = ^TFileStandardInformation;
- _FILE_POSITION_INFORMATION = record
- CurrentByteOffset: LARGE_INTEGER;
- end;
- FILE_POSITION_INFORMATION = _FILE_POSITION_INFORMATION;
- PFILE_POSITION_INFORMATION = ^FILE_POSITION_INFORMATION;
- TFilePositionInformation = FILE_POSITION_INFORMATION;
- PFilePositionInformation = ^TFilePositionInformation;
- _FILE_ALIGNMENT_INFORMATION = record
- AlignmentRequirement: ULONG;
- end;
- FILE_ALIGNMENT_INFORMATION = _FILE_ALIGNMENT_INFORMATION;
- PFILE_ALIGNMENT_INFORMATION = ^FILE_ALIGNMENT_INFORMATION;
- TFileAlignmentInformation = FILE_ALIGNMENT_INFORMATION;
- PFileAlignmentInformation = ^TFileAlignmentInformation;
- _KEY_SET_INFORMATION_CLASS = (KeyWriteTimeInformation);
- KEY_SET_INFORMATION_CLASS = _KEY_SET_INFORMATION_CLASS;
- _KEY_INFORMATION_CLASS = (
- KeyBasicInformation,
- KeyNodeInformation,
- KeyFullInformation,
- KeyNameInformation);
- KEY_INFORMATION_CLASS = _KEY_INFORMATION_CLASS;
- TKeyInformationClass = KEY_INFORMATION_CLASS;
- _KEY_VALUE_INFORMATION_CLASS = (
- KeyValueBasicInformation,
- KeyValueFullInformation,
- KeyValuePartialInformation,
- KeyValueFullInformationAlign64,
- KeyValuePartialInformationAlign64);
- KEY_VALUE_INFORMATION_CLASS = _KEY_VALUE_INFORMATION_CLASS;
- TKeyValueInformationClass = KEY_VALUE_INFORMATION_CLASS;
- _KEY_VALUE_ENTRY = record
- ValueName: PUNICODE_STRING;
- DataLength: ULONG;
- DataOffset: ULONG;
- Type_: ULONG;
- end;
- KEY_VALUE_ENTRY = _KEY_VALUE_ENTRY;
- PKEY_VALUE_ENTRY = ^KEY_VALUE_ENTRY;
- TKeyValueEntry = KEY_VALUE_ENTRY;
- PKeyValueEntry = ^TKeyValueEntry;
- {$IFNDEF JWA_INCLUDEMODE}
- _DEVICE_POWER_STATE = (
- PowerDeviceUnspecified,
- PowerDeviceD0,
- PowerDeviceD1,
- PowerDeviceD2,
- PowerDeviceD3,
- PowerDeviceMaximum);
- DEVICE_POWER_STATE = _DEVICE_POWER_STATE;
- PDEVICE_POWER_STATE = ^DEVICE_POWER_STATE;
- TDevicePowerState = DEVICE_POWER_STATE;
- POWER_ACTION = (
- PowerActionNone,
- PowerActionReserved,
- PowerActionSleep,
- PowerActionHibernate,
- PowerActionShutdown,
- PowerActionShutdownReset,
- PowerActionShutdownOff,
- PowerActionWarmEject);
- PPOWER_ACTION = ^POWER_ACTION;
- TPowerAction = POWER_ACTION;
- _SYSTEM_POWER_STATE = (
- PowerSystemUnspecified,
- PowerSystemWorking,
- PowerSystemSleeping1,
- PowerSystemSleeping2,
- PowerSystemSleeping3,
- PowerSystemHibernate,
- PowerSystemShutdown,
- PowerSystemMaximum);
- SYSTEM_POWER_STATE = _SYSTEM_POWER_STATE;
- PSYSTEM_POWER_STATE = ^SYSTEM_POWER_STATE;
- TSystemPowerState = SYSTEM_POWER_STATE;
- POWER_INFORMATION_LEVEL = (
- SystemPowerPolicyAc,
- SystemPowerPolicyDc,
- VerifySystemPolicyAc,
- VerifySystemPolicyDc,
- SystemPowerCapabilities,
- SystemBatteryState,
- SystemPowerStateHandler,
- ProcessorStateHandler,
- SystemPowerPolicyCurrent,
- AdministratorPowerPolicy,
- SystemReserveHiberFile,
- ProcessorInformation,
- SystemPowerInformation);
- TPowerInformationLevel = POWER_INFORMATION_LEVEL;
- {$ENDIF JWA_INCLUDEMODE}
- _RTL_RANGE = record
- // The start of the range
- Start: ULONGLONG; // Read only
- // The end of the range
- End_: ULONGLONG; // Read only
- // Data the user passed in when they created the range
- UserData: PVOID; // Read/Write
- // The owner of the range
- Owner: PVOID; // Read/Write
- // User defined flags the user specified when they created the range
- Attributes: UCHAR; // Read/Write
- // Flags (RTL_RANGE_*)
- Flags: UCHAR; // Read only
- end;
- RTL_RANGE = _RTL_RANGE;
- PRTL_RANGE = ^RTL_RANGE;
- TRtlRange = RTL_RANGE;
- PRtlRange = ^TRtlRange;
- const
- RTL_RANGE_SHARED = $01;
- RTL_RANGE_CONFLICT = $02;
- type
- _RTL_RANGE_LIST = record
- // The list of ranges
- ListHead: LIST_ENTRY;
- // These always come in useful
- Flags: ULONG; // use RANGE_LIST_FLAG_*
- // The number of entries in the list
- Count: ULONG;
- // Every time an add/delete operation is performed on the list this is
- // incremented. It is checked during iteration to ensure that the list
- // hasn't changed between GetFirst/GetNext or GetNext/GetNext calls
- Stamp: ULONG;
- end;
- RTL_RANGE_LIST = _RTL_RANGE_LIST;
- PRTL_RANGE_LIST = ^RTL_RANGE_LIST;
- TRtlRangeList = RTL_RANGE_LIST;
- PRtlRangeList = ^TRtlRangeList;
- _RANGE_LIST_ITERATOR = record
- RangeListHead: PLIST_ENTRY;
- MergedHead: PLIST_ENTRY;
- Current: PVOID;
- Stamp: ULONG;
- end;
- RTL_RANGE_LIST_ITERATOR = _RANGE_LIST_ITERATOR;
- PRTL_RANGE_LIST_ITERATOR = ^RTL_RANGE_LIST_ITERATOR;
- TRtlRangeListIterator = RTL_RANGE_LIST_ITERATOR;
- PRtlRangeListIterator = ^TRtlRangeListIterator;
- // End of NTDDK.H
- //==============================================================================
- // NT System Services
- //==============================================================================
- type
- _SYSTEM_INFORMATION_CLASS = (
- SystemBasicInformation,
- SystemProcessorInformation,
- SystemPerformanceInformation,
- SystemTimeOfDayInformation,
- SystemNotImplemented1,
- SystemProcessesAndThreadsInformation,
- SystemCallCounts,
- SystemConfigurationInformation,
- SystemProcessorTimes,
- SystemGlobalFlag,
- SystemNotImplemented2,
- SystemModuleInformation,
- SystemLockInformation,
- SystemNotImplemented3,
- SystemNotImplemented4,
- SystemNotImplemented5,
- SystemHandleInformation,
- SystemObjectInformation,
- SystemPagefileInformation,
- SystemInstructionEmulationCounts,
- SystemInvalidInfoClass1,
- SystemCacheInformation,
- SystemPoolTagInformation,
- SystemProcessorStatistics,
- SystemDpcInformation,
- SystemNotImplemented6,
- SystemLoadImage,
- SystemUnloadImage,
- SystemTimeAdjustment,
- SystemNotImplemented7,
- SystemNotImplemented8,
- SystemNotImplemented9,
- SystemCrashDumpInformation,
- SystemExceptionInformation,
- SystemCrashDumpStateInformation,
- SystemKernelDebuggerInformation,
- SystemContextSwitchInformation,
- SystemRegistryQuotaInformation,
- SystemLoadAndCallImage,
- SystemPrioritySeparation,
- SystemNotImplemented10,
- SystemNotImplemented11,
- SystemInvalidInfoClass2,
- SystemInvalidInfoClass3,
- SystemTimeZoneInformation,
- SystemLookasideInformation,
- SystemSetTimeSlipEvent,
- SystemCreateSession,
- SystemDeleteSession,
- SystemInvalidInfoClass4,
- SystemRangeStartInformation,
- SystemVerifierInformation,
- SystemAddVerifier,
- SystemSessionProcessesInformation);
- SYSTEM_INFORMATION_CLASS = _SYSTEM_INFORMATION_CLASS;
- TSystemInformationClass = SYSTEM_INFORMATION_CLASS;
- type
- {$IFNDEF JWA_INCLUDEMODE}
- _SYSTEM_BASIC_INFORMATION = record // Information Class 0
- Unknown: ULONG;
- MaximumIncrement: ULONG;
- PhysicalPageSize: ULONG;
- NumberOfPhysicalPages: ULONG;
- LowestPhysicalPage: ULONG;
- HighestPhysicalPage: ULONG;
- AllocationGranularity: ULONG;
- LowestUserAddress: ULONG;
- HighestUserAddress: ULONG;
- ActiveProcessors: ULONG;
- NumberProcessors: UCHAR;
- end;
- SYSTEM_BASIC_INFORMATION = _SYSTEM_BASIC_INFORMATION;
- PSYSTEM_BASIC_INFORMATION = ^SYSTEM_BASIC_INFORMATION;
- TSystemBasicInformation = SYSTEM_BASIC_INFORMATION;
- PSystemBasicInformation = ^TSystemBasicInformation;
- {$ENDIF JWA_INCLUDEMODE}
- _SYSTEM_PROCESSOR_INFORMATION = record // Information Class 1
- ProcessorArchitecture: USHORT;
- ProcessorLevel: USHORT;
- ProcessorRevision: USHORT;
- Unknown: USHORT;
- FeatureBits: ULONG;
- end;
- SYSTEM_PROCESSOR_INFORMATION = _SYSTEM_PROCESSOR_INFORMATION;
- PSYSTEM_PROCESSOR_INFORMATION = ^SYSTEM_PROCESSOR_INFORMATION;
- {$IFNDEF JWA_INCLUDEMODE}
- TSystemProcessorInformation = SYSTEM_PROCESSOR_INFORMATION;
- PSystemProcessorInformation = ^TSystemProcessorInformation;
- _SYSTEM_PERFORMANCE_INFORMATION = record // Information Class 2
- IdleTime: LARGE_INTEGER;
- ReadTransferCount: LARGE_INTEGER;
- WriteTransferCount: LARGE_INTEGER;
- OtherTransferCount: LARGE_INTEGER;
- ReadOperationCount: ULONG;
- WriteOperationCount: ULONG;
- OtherOperationCount: ULONG;
- AvailablePages: ULONG;
- TotalCommittedPages: ULONG;
- TotalCommitLimit: ULONG;
- PeakCommitment: ULONG;
- PageFaults: ULONG;
- WriteCopyFaults: ULONG;
- TransistionFaults: ULONG;
- Reserved1: ULONG;
- DemandZeroFaults: ULONG;
- PagesRead: ULONG;
- PageReadIos: ULONG;
- Reserved2: array[0..1] of ULONG;
- PagefilePagesWritten: ULONG;
- PagefilePageWriteIos: ULONG;
- MappedFilePagesWritten: ULONG;
- MappedFilePageWriteIos: ULONG;
- PagedPoolUsage: ULONG;
- NonPagedPoolUsage: ULONG;
- PagedPoolAllocs: ULONG;
- PagedPoolFrees: ULONG;
- NonPagedPoolAllocs: ULONG;
- NonPagedPoolFrees: ULONG;
- TotalFreeSystemPtes: ULONG;
- SystemCodePage: ULONG;
- TotalSystemDriverPages: ULONG;
- TotalSystemCodePages: ULONG;
- SmallNonPagedLookasideListAllocateHits: ULONG;
- SmallPagedLookasideListAllocateHits: ULONG;
- Reserved3: ULONG;
- MmSystemCachePage: ULONG;
- PagedPoolPage: ULONG;
- SystemDriverPage: ULONG;
- FastReadNoWait: ULONG;
- FastReadWait: ULONG;
- FastReadResourceMiss: ULONG;
- FastReadNotPossible: ULONG;
- FastMdlReadNoWait: ULONG;
- FastMdlReadWait: ULONG;
- FastMdlReadResourceMiss: ULONG;
- FastMdlReadNotPossible: ULONG;
- MapDataNoWait: ULONG;
- MapDataWait: ULONG;
- MapDataNoWaitMiss: ULONG;
- MapDataWaitMiss: ULONG;
- PinMappedDataCount: ULONG;
- PinReadNoWait: ULONG;
- PinReadWait: ULONG;
- PinReadNoWaitMiss: ULONG;
- PinReadWaitMiss: ULONG;
- CopyReadNoWait: ULONG;
- CopyReadWait: ULONG;
- CopyReadNoWaitMiss: ULONG;
- CopyReadWaitMiss: ULONG;
- MdlReadNoWait: ULONG;
- MdlReadWait: ULONG;
- MdlReadNoWaitMiss: ULONG;
- MdlReadWaitMiss: ULONG;
- ReadAheadIos: ULONG;
- LazyWriteIos: ULONG;
- LazyWritePages: ULONG;
- DataFlushes: ULONG;
- DataPages: ULONG;
- ContextSwitches: ULONG;
- FirstLevelTbFills: ULONG;
- SecondLevelTbFills: ULONG;
- SystemCalls: ULONG;
- end;
- SYSTEM_PERFORMANCE_INFORMATION = _SYSTEM_PERFORMANCE_INFORMATION;
- PSYSTEM_PERFORMANCE_INFORMATION = ^SYSTEM_PERFORMANCE_INFORMATION;
- TSystemPerformanceInformation = SYSTEM_PERFORMANCE_INFORMATION;
- PSystemPerformanceInformation = ^TSystemPerformanceInformation;
- {$ENDIF JWA_INCLUDEMODE}
- _SYSTEM_TIME_OF_DAY_INFORMATION = record // Information Class 3
- BootTime: LARGE_INTEGER;
- CurrentTime: LARGE_INTEGER;
- TimeZoneBias: LARGE_INTEGER;
- CurrentTimeZoneId: ULONG;
- end;
- SYSTEM_TIME_OF_DAY_INFORMATION = _SYSTEM_TIME_OF_DAY_INFORMATION;
- PSYSTEM_TIME_OF_DAY_INFORMATION = ^SYSTEM_TIME_OF_DAY_INFORMATION;
- {$IFNDEF JWA_INCLUDEMODE}
- TSystemTimeOfDayInformation = SYSTEM_TIME_OF_DAY_INFORMATION;
- PSystemTimeOfDayInformation = ^TSystemTimeOfDayInformation;
- {$ENDIF JWA_INCLUDEMODE}
- _IO_COUNTERSEX = record
- ReadOperationCount: LARGE_INTEGER;
- WriteOperationCount: LARGE_INTEGER;
- OtherOperationCount: LARGE_INTEGER;
- ReadTransferCount: LARGE_INTEGER;
- WriteTransferCount: LARGE_INTEGER;
- OtherTransferCount: LARGE_INTEGER;
- end;
- IO_COUNTERSEX = _IO_COUNTERSEX;
- PIO_COUNTERSEX = ^IO_COUNTERSEX;
- TIoCountersEx = IO_COUNTERSEX;
- PIoCountersEx = ^TIoCountersEx;
- THREAD_STATE = (
- StateInitialized,
- StateReady,
- StateRunning,
- StateStandby,
- StateTerminated,
- StateWait,
- StateTransition,
- StateUnknown);
- TThreadState = THREAD_STATE;
- _SYSTEM_THREADS = record
- KernelTime: LARGE_INTEGER;
- UserTime: LARGE_INTEGER;
- CreateTime: LARGE_INTEGER;
- WaitTime: ULONG;
- StartAddress: PVOID;
- ClientId: CLIENT_ID;
- Priority: KPRIORITY;
- BasePriority: KPRIORITY;
- ContextSwitchCount: ULONG;
- State: THREAD_STATE;
- WaitReason: KWAIT_REASON;
- end;
- SYSTEM_THREADS = _SYSTEM_THREADS;
- PSYSTEM_THREADS = ^SYSTEM_THREADS;
- TSystemThreads = SYSTEM_THREADS;
- PSystemThreads = PSYSTEM_THREADS;
- _SYSTEM_PROCESSES = record // Information Class 5
- NextEntryDelta: ULONG;
- ThreadCount: ULONG;
- Reserved1: array[0..5] of ULONG;
- CreateTime: LARGE_INTEGER;
- UserTime: LARGE_INTEGER;
- KernelTime: LARGE_INTEGER;
- ProcessName: UNICODE_STRING;
- BasePriority: KPRIORITY;
- ProcessId: ULONG;
- InheritedFromProcessId: ULONG;
- HandleCount: ULONG;
- // next two were Reserved2: array [0..1] of ULONG; thanks to Nico Bendlin
- SessionId: ULONG;
- Reserved2: ULONG;
- VmCounters: VM_COUNTERS;
- PrivatePageCount: ULONG;
- IoCounters: IO_COUNTERSEX; // Windows 2000 only
- Threads: array[0..0] of SYSTEM_THREADS;
- end;
- SYSTEM_PROCESSES = _SYSTEM_PROCESSES;
- PSYSTEM_PROCESSES = ^SYSTEM_PROCESSES;
- TSystemProcesses = SYSTEM_PROCESSES;
- PSystemProcesses = PSYSTEM_PROCESSES;
- _SYSTEM_CALLS_INFORMATION = record // Information Class 6
- Size: ULONG;
- NumberOfDescriptorTables: ULONG;
- NumberOfRoutinesInTable: array[0..0] of ULONG;
- // ULONG CallCounts[];
- end;
- SYSTEM_CALLS_INFORMATION = _SYSTEM_CALLS_INFORMATION;
- PSYSTEM_CALLS_INFORMATION = ^SYSTEM_CALLS_INFORMATION;
- TSystemCallsInformation = SYSTEM_CALLS_INFORMATION;
- PSystemCallsInformation = ^TSystemCallsInformation;
- _SYSTEM_CONFIGURATION_INFORMATION = record // Information Class 7
- DiskCount: ULONG;
- FloppyCount: ULONG;
- CdRomCount: ULONG;
- TapeCount: ULONG;
- SerialCount: ULONG;
- ParallelCount: ULONG;
- end;
- SYSTEM_CONFIGURATION_INFORMATION = _SYSTEM_CONFIGURATION_INFORMATION;
- PSYSTEM_CONFIGURATION_INFORMATION = ^SYSTEM_CONFIGURATION_INFORMATION;
- TSystemConfigurationInformation = SYSTEM_CONFIGURATION_INFORMATION;
- PSystemConfigurationInformation = ^TSystemConfigurationInformation;
- _SYSTEM_PROCESSOR_TIMES = record // Information Class 8
- IdleTime: LARGE_INTEGER;
- KernelTime: LARGE_INTEGER;
- UserTime: LARGE_INTEGER;
- DpcTime: LARGE_INTEGER;
- InterruptTime: LARGE_INTEGER;
- InterruptCount: ULONG;
- end;
- SYSTEM_PROCESSOR_TIMES = _SYSTEM_PROCESSOR_TIMES;
- PSYSTEM_PROCESSOR_TIMES = ^SYSTEM_PROCESSOR_TIMES;
- TSystemProcessorTimes = SYSTEM_PROCESSOR_TIMES;
- PSystemProcessorTimes = ^TSystemProcessorTimes;
- _SYSTEM_GLOBAL_FLAG = record // Information Class 9
- GlobalFlag: ULONG;
- end;
- SYSTEM_GLOBAL_FLAG = _SYSTEM_GLOBAL_FLAG;
- PSYSTEM_GLOBAL_FLAG = ^SYSTEM_GLOBAL_FLAG;
- TSystemGlobalFlag = SYSTEM_GLOBAL_FLAG;
- PSystemGlobalFlag = ^TSystemGlobalFlag;
- _SYSTEM_MODULE_INFORMATION = record // Information Class 11
- Reserved: array[0..1] of ULONG;
- Base: PVOID;
- Size: ULONG;
- Flags: ULONG;
- Index: USHORT;
- Unknown: USHORT;
- LoadCount: USHORT;
- ModuleNameOffset: USHORT;
- ImageName: array[0..255] of CHAR;
- end;
- SYSTEM_MODULE_INFORMATION = _SYSTEM_MODULE_INFORMATION;
- PSYSTEM_MODULE_INFORMATION = ^SYSTEM_MODULE_INFORMATION;
- TSystemModuleInformation = SYSTEM_MODULE_INFORMATION;
- PSystemModuleInformation = PSYSTEM_MODULE_INFORMATION;
- _SYSTEM_LOCK_INFORMATION = record // Information Class 12
- Address: PVOID;
- Type_: USHORT;
- Reserved1: USHORT;
- ExclusiveOwnerThreadId: ULONG;
- ActiveCount: ULONG;
- ContentionCount: ULONG;
- Reserved2: array[0..1] of ULONG;
- NumberOfSharedWaiters: ULONG;
- NumberOfExclusiveWaiters: ULONG;
- end;
- SYSTEM_LOCK_INFORMATION = _SYSTEM_LOCK_INFORMATION;
- PSYSTEM_LOCK_INFORMATION = ^SYSTEM_LOCK_INFORMATION;
- TSystemLockInformation = SYSTEM_LOCK_INFORMATION;
- PSystemLockInformation = ^TSystemLockInformation;
- _SYSTEM_HANDLE_INFORMATION = record // Information Class 16
- ProcessId: ULONG;
- ObjectTypeNumber: UCHAR;
- Flags: UCHAR; // 0x01 = PROTECT_FROM_CLOSE, 0x02 = INHERIT
- Handle: USHORT;
- Object_: PVOID;
- GrantedAccess: ACCESS_MASK;
- end;
- SYSTEM_HANDLE_INFORMATION = _SYSTEM_HANDLE_INFORMATION;
- PSYSTEM_HANDLE_INFORMATION = ^SYSTEM_HANDLE_INFORMATION;
- TSystemHandleInformation = SYSTEM_HANDLE_INFORMATION;
- PSystemHandleInformation = ^TSystemHandleInformation;
- _SYSTEM_OBJECT_TYPE_INFORMATION = record // Information Class 17
- NextEntryOffset: ULONG;
- ObjectCount: ULONG;
- HandleCount: ULONG;
- TypeNumber: ULONG;
- InvalidAttributes: ULONG;
- GenericMapping: GENERIC_MAPPING;
- ValidAccessMask: ACCESS_MASK;
- PoolType: POOL_TYPE;
- Unknown: UCHAR;
- Name: UNICODE_STRING;
- end;
- SYSTEM_OBJECT_TYPE_INFORMATION = _SYSTEM_OBJECT_TYPE_INFORMATION;
- PSYSTEM_OBJECT_TYPE_INFORMATION = ^SYSTEM_OBJECT_TYPE_INFORMATION;
- TSystemObjectTypeInformation = SYSTEM_OBJECT_TYPE_INFORMATION;
- PSystemObjectTypeInformation = ^TSystemObjectTypeInformation;
- _SYSTEM_OBJECT_INFORMATION = record
- NextEntryOffset: ULONG;
- Object_: PVOID;
- CreatorProcessId: ULONG;
- Unknown: USHORT;
- Flags: USHORT;
- PointerCount: ULONG;
- HandleCount: ULONG;
- PagedPoolUsage: ULONG;
- NonPagedPoolUsage: ULONG;
- ExclusiveProcessId: ULONG;
- SecurityDescriptor: PSECURITY_DESCRIPTOR;
- Name: UNICODE_STRING;
- end;
- SYSTEM_OBJECT_INFORMATION = _SYSTEM_OBJECT_INFORMATION;
- PSYSTEM_OBJECT_INFORMATION = ^SYSTEM_OBJECT_INFORMATION;
- TSystemObjectInformation = SYSTEM_OBJECT_INFORMATION;
- PSystemObjectInformation = ^TSystemObjectInformation;
- _SYSTEM_PAGEFILE_INFORMATION = record // Information Class 18
- NextEntryOffset: ULONG;
- CurrentSize: ULONG;
- TotalUsed: ULONG;
- PeakUsed: ULONG;
- FileName: UNICODE_STRING;
- end;
- SYSTEM_PAGEFILE_INFORMATION = _SYSTEM_PAGEFILE_INFORMATION;
- PSYSTEM_PAGEFILE_INFORMATION = ^SYSTEM_PAGEFILE_INFORMATION;
- TSystemPageFileInformation = SYSTEM_PAGEFILE_INFORMATION;
- PSystemPageFileInformation = PSYSTEM_PAGEFILE_INFORMATION;
- _SYSTEM_INSTRUCTION_EMULATION_INFORMATION = record // Info Class 19
- GenericInvalidOpcode: ULONG;
- TwoByteOpcode: ULONG;
- ESprefix: ULONG;
- CSprefix: ULONG;
- SSprefix: ULONG;
- DSprefix: ULONG;
- FSPrefix: ULONG;
- GSprefix: ULONG;
- OPER32prefix: ULONG;
- ADDR32prefix: ULONG;
- INSB: ULONG;
- INSW: ULONG;
- OUTSB: ULONG;
- OUTSW: ULONG;
- PUSHFD: ULONG;
- POPFD: ULONG;
- INTnn: ULONG;
- INTO: ULONG;
- IRETD: ULONG;
- FloatingPointOpcode: ULONG;
- INBimm: ULONG;
- INWimm: ULONG;
- OUTBimm: ULONG;
- OUTWimm: ULONG;
- INB: ULONG;
- INW: ULONG;
- OUTB: ULONG;
- OUTW: ULONG;
- LOCKprefix: ULONG;
- REPNEprefix: ULONG;
- REPprefix: ULONG;
- CLI: ULONG;
- STI: ULONG;
- HLT: ULONG;
- end;
- SYSTEM_INSTRUCTION_EMULATION_INFORMATION = _SYSTEM_INSTRUCTION_EMULATION_INFORMATION;
- PSYSTEM_INSTRUCTION_EMULATION_INFORMATION = ^SYSTEM_INSTRUCTION_EMULATION_INFORMATION;
- TSystemInstructionEmulationInformation = SYSTEM_INSTRUCTION_EMULATION_INFORMATION;
- PSystemInstructionEmulationInformation = ^TSystemInstructionEmulationInformation;
- _SYSTEM_CACHE_INFORMATION = record // Information Class 21
- SystemCacheWsSize: ULONG;
- SystemCacheWsPeakSize: ULONG;
- SystemCacheWsFaults: ULONG;
- SystemCacheWsMinimum: ULONG;
- SystemCacheWsMaximum: ULONG;
- TransitionSharedPages: ULONG;
- TransitionSharedPagesPeak: ULONG;
- Reserved: array[0..1] of ULONG;
- end;
- SYSTEM_CACHE_INFORMATION = _SYSTEM_CACHE_INFORMATION;
- PSYSTEM_CACHE_INFORMATION = ^SYSTEM_CACHE_INFORMATION;
- TSystemCacheInformation = SYSTEM_CACHE_INFORMATION;
- PSystemCacheInformation = ^TSystemCacheInformation;
- _SYSTEM_POOL_TAG_INFORMATION = record // Information Class 22
- Tag: array[0..3] of CHAR;
- PagedPoolAllocs: ULONG;
- PagedPoolFrees: ULONG;
- PagedPoolUsage: ULONG;
- NonPagedPoolAllocs: ULONG;
- NonPagedPoolFrees: ULONG;
- NonPagedPoolUsage: ULONG;
- end;
- SYSTEM_POOL_TAG_INFORMATION = _SYSTEM_POOL_TAG_INFORMATION;
- PSYSTEM_POOL_TAG_INFORMATION = ^SYSTEM_POOL_TAG_INFORMATION;
- TSystemPoolTagInformation = SYSTEM_POOL_TAG_INFORMATION;
- PSystemPoolTagInformation = ^TSystemPoolTagInformation;
- _SYSTEM_PROCESSOR_STATISTICS = record // Information Class 23
- ContextSwitches: ULONG;
- DpcCount: ULONG;
- DpcRequestRate: ULONG;
- TimeIncrement: ULONG;
- DpcBypassCount: ULONG;
- ApcBypassCount: ULONG;
- end;
- SYSTEM_PROCESSOR_STATISTICS = _SYSTEM_PROCESSOR_STATISTICS;
- PSYSTEM_PROCESSOR_STATISTICS = ^SYSTEM_PROCESSOR_STATISTICS;
- TSystemProcessorStatistics = SYSTEM_PROCESSOR_STATISTICS;
- PSystemProcessorStatistics = ^TSystemProcessorStatistics;
- _SYSTEM_DPC_INFORMATION = record // Information Class 24
- Reserved: ULONG;
- MaximumDpcQueueDepth: ULONG;
- MinimumDpcRate: ULONG;
- AdjustDpcThreshold: ULONG;
- IdealDpcRate: ULONG;
- end;
- SYSTEM_DPC_INFORMATION = _SYSTEM_DPC_INFORMATION;
- PSYSTEM_DPC_INFORMATION = ^SYSTEM_DPC_INFORMATION;
- TSystemDpcInformation = SYSTEM_DPC_INFORMATION;
- PSystemDpcInformation = ^TSystemDpcInformation;
- _SYSTEM_LOAD_IMAGE = record // Information Class 26
- ModuleName: UNICODE_STRING;
- ModuleBase: PVOID;
- Unknown: PVOID;
- EntryPoint: PVOID;
- ExportDirectory: PVOID;
- end;
- SYSTEM_LOAD_IMAGE = _SYSTEM_LOAD_IMAGE;
- PSYSTEM_LOAD_IMAGE = ^SYSTEM_LOAD_IMAGE;
- TSystemLoadImage = SYSTEM_LOAD_IMAGE;
- PSystemLoadImage = ^TSystemLoadImage;
- _SYSTEM_UNLOAD_IMAGE = record // Information Class 27
- ModuleBase: PVOID;
- end;
- SYSTEM_UNLOAD_IMAGE = _SYSTEM_UNLOAD_IMAGE;
- PSYSTEM_UNLOAD_IMAGE = ^SYSTEM_UNLOAD_IMAGE;
- TSystemUnloadImage = SYSTEM_UNLOAD_IMAGE;
- PSystemUnloadImage = ^TSystemUnloadImage;
- _SYSTEM_QUERY_TIME_ADJUSTMENT = record // Information Class 28
- TimeAdjustment: ULONG;
- MaximumIncrement: ULONG;
- TimeSynchronization: ByteBool;
- end;
- SYSTEM_QUERY_TIME_ADJUSTMENT = _SYSTEM_QUERY_TIME_ADJUSTMENT;
- PSYSTEM_QUERY_TIME_ADJUSTMENT = ^SYSTEM_QUERY_TIME_ADJUSTMENT;
- TSystemQueryTimeAdjustment = SYSTEM_QUERY_TIME_ADJUSTMENT;
- PSystemQueryTimeAdjustment = ^TSystemQueryTimeAdjustment;
- _SYSTEM_SET_TIME_ADJUSTMENT = record // Information Class 28
- TimeAdjustment: ULONG;
- TimeSynchronization: ByteBool;
- end;
- SYSTEM_SET_TIME_ADJUSTMENT = _SYSTEM_SET_TIME_ADJUSTMENT;
- PSYSTEM_SET_TIME_ADJUSTMENT = ^SYSTEM_SET_TIME_ADJUSTMENT;
- TSystemSetTimeAdjustment = SYSTEM_SET_TIME_ADJUSTMENT;
- PSystemSetTimeAdjustment = ^TSystemSetTimeAdjustment;
- _SYSTEM_CRASH_DUMP_INFORMATION = record // Information Class 32
- CrashDumpSectionHandle: HANDLE;
- Unknown: HANDLE; // Windows 2000 only
- end;
- SYSTEM_CRASH_DUMP_INFORMATION = _SYSTEM_CRASH_DUMP_INFORMATION;
- PSYSTEM_CRASH_DUMP_INFORMATION = ^SYSTEM_CRASH_DUMP_INFORMATION;
- TSystemCrashDumpInformation = SYSTEM_CRASH_DUMP_INFORMATION;
- PSystemCrashDumpInformation = ^TSystemCrashDumpInformation;
- {$IFNDEF JWA_INCLUDEMODE}
- _SYSTEM_EXCEPTION_INFORMATION = record // Information Class 33
- AlignmentFixupCount: ULONG;
- ExceptionDispatchCount: ULONG;
- FloatingEmulationCount: ULONG;
- Reserved: ULONG;
- end;
- SYSTEM_EXCEPTION_INFORMATION = _SYSTEM_EXCEPTION_INFORMATION;
- PSYSTEM_EXCEPTION_INFORMATION = ^SYSTEM_EXCEPTION_INFORMATION;
- TSystemExceptionInformation = SYSTEM_EXCEPTION_INFORMATION;
- PSystemExceptionInformation = ^TSystemExceptionInformation;
- {$ENDIF JWA_INCLUDEMODE}
- _SYSTEM_CRASH_STATE_INFORMATION = record // Information Class 34
- ValidCrashDump: ULONG;
- Unknown: ULONG; // Windows 2000 only
- end;
- SYSTEM_CRASH_STATE_INFORMATION = _SYSTEM_CRASH_STATE_INFORMATION;
- PSYSTEM_CRASH_STATE_INFORMATION = ^SYSTEM_CRASH_STATE_INFORMATION;
- TSystemCrashStateInformation = SYSTEM_CRASH_STATE_INFORMATION;
- PSystemCrashStateInformation = ^TSystemCrashStateInformation;
- _SYSTEM_KERNEL_DEBUGGER_INFORMATION = record // Information Class 35
- DebuggerEnabled: ByteBool;
- DebuggerNotPresent: ByteBool;
- end;
- SYSTEM_KERNEL_DEBUGGER_INFORMATION = _SYSTEM_KERNEL_DEBUGGER_INFORMATION;
- PSYSTEM_KERNEL_DEBUGGER_INFORMATION = ^SYSTEM_KERNEL_DEBUGGER_INFORMATION;
- TSystemKernelDebuggerInformation = SYSTEM_KERNEL_DEBUGGER_INFORMATION;
- PSystemKernelDebuggerInformation = ^TSystemKernelDebuggerInformation;
- _SYSTEM_CONTEXT_SWITCH_INFORMATION = record // Information Class 36
- ContextSwitches: ULONG;
- ContextSwitchCounters: array[0..10] of ULONG;
- end;
- SYSTEM_CONTEXT_SWITCH_INFORMATION = _SYSTEM_CONTEXT_SWITCH_INFORMATION;
- PSYSTEM_CONTEXT_SWITCH_INFORMATION = ^SYSTEM_CONTEXT_SWITCH_INFORMATION;
- TSystemContextSwitchInformation = SYSTEM_CONTEXT_SWITCH_INFORMATION;
- PSystemContextSwitchInformation = ^TSystemContextSwitchInformation;
- {$IFNDEF JWA_INCLUDEMODE}
- _SYSTEM_REGISTRY_QUOTA_INFORMATION = record // Information Class 37
- RegistryQuota: ULONG;
- RegistryQuotaInUse: ULONG;
- PagedPoolSize: ULONG;
- end;
- SYSTEM_REGISTRY_QUOTA_INFORMATION = _SYSTEM_REGISTRY_QUOTA_INFORMATION;
- PSYSTEM_REGISTRY_QUOTA_INFORMATION = ^SYSTEM_REGISTRY_QUOTA_INFORMATION;
- TSystemRegistryQuotaInformation = SYSTEM_REGISTRY_QUOTA_INFORMATION;
- PSystemRegistryQuotaInformation = ^TSystemRegistryQuotaInformation;
- {$ENDIF JWA_INCLUDEMODE}
- _SYSTEM_LOAD_AND_CALL_IMAGE = record // Information Class 38
- ModuleName: UNICODE_STRING;
- end;
- SYSTEM_LOAD_AND_CALL_IMAGE = _SYSTEM_LOAD_AND_CALL_IMAGE;
- PSYSTEM_LOAD_AND_CALL_IMAGE = ^SYSTEM_LOAD_AND_CALL_IMAGE;
- TSystemLoadAndCallImage = SYSTEM_LOAD_AND_CALL_IMAGE;
- PSystemLoadAndCallImage = ^TSystemLoadAndCallImage;
- _SYSTEM_PRIORITY_SEPARATION = record // Information Class 39
- PrioritySeparation: ULONG;
- end;
- SYSTEM_PRIORITY_SEPARATION = _SYSTEM_PRIORITY_SEPARATION;
- PSYSTEM_PRIORITY_SEPARATION = ^SYSTEM_PRIORITY_SEPARATION;
- TSystemPrioritySeparation = SYSTEM_PRIORITY_SEPARATION;
- PSystemPrioritySeparation = ^TSystemPrioritySeparation;
- _SYSTEM_TIME_ZONE_INFORMATION = record // Information Class 44
- Bias: LONG;
- StandardName: array[0..31] of WCHAR;
- StandardDate: SYSTEMTIME;
- StandardBias: LONG;
- DaylightName: array[0..31] of WCHAR;
- DaylightDate: SYSTEMTIME;
- DaylightBias: LONG;
- end;
- SYSTEM_TIME_ZONE_INFORMATION = _SYSTEM_TIME_ZONE_INFORMATION;
- PSYSTEM_TIME_ZONE_INFORMATION = ^SYSTEM_TIME_ZONE_INFORMATION;
- TSystemTimeZoneInformation = SYSTEM_TIME_ZONE_INFORMATION;
- PSystemTimeZoneInformation = ^TSystemTimeZoneInformation;
- {$IFNDEF JWA_INCLUDEMODE}
- _SYSTEM_LOOKASIDE_INFORMATION = record // Information Class 45
- Depth: USHORT;
- MaximumDepth: USHORT;
- TotalAllocates: ULONG;
- AllocateMisses: ULONG;
- TotalFrees: ULONG;
- FreeMisses: ULONG;
- Type_: POOL_TYPE;
- Tag: ULONG;
- Size: ULONG;
- end;
- SYSTEM_LOOKASIDE_INFORMATION = _SYSTEM_LOOKASIDE_INFORMATION;
- PSYSTEM_LOOKASIDE_INFORMATION = ^SYSTEM_LOOKASIDE_INFORMATION;
- TSystemLookAsideInformation = SYSTEM_LOOKASIDE_INFORMATION;
- PSystemLookAsideInformation = ^TSystemLookAsideInformation;
- {$ENDIF JWA_INCLUDEMODE}
- _SYSTEM_SET_TIME_SLIP_EVENT = record // Information Class 46
- TimeSlipEvent: HANDLE;
- end;
- SYSTEM_SET_TIME_SLIP_EVENT = _SYSTEM_SET_TIME_SLIP_EVENT;
- PSYSTEM_SET_TIME_SLIP_EVENT = ^SYSTEM_SET_TIME_SLIP_EVENT;
- TSystemSetTimeSlipEvent = SYSTEM_SET_TIME_SLIP_EVENT;
- PSystemSetTimeSlipEvent = ^TSystemSetTimeSlipEvent;
- _SYSTEM_CREATE_SESSION = record // Information Class 47
- Session: ULONG;
- end;
- SYSTEM_CREATE_SESSION = _SYSTEM_CREATE_SESSION;
- PSYSTEM_CREATE_SESSION = ^SYSTEM_CREATE_SESSION;
- TSystemCreateSession = SYSTEM_CREATE_SESSION;
- PSystemCreateSession = ^TSystemCreateSession;
- _SYSTEM_DELETE_SESSION = record // Information Class 48
- Session: ULONG;
- end;
- SYSTEM_DELETE_SESSION = _SYSTEM_DELETE_SESSION;
- PSYSTEM_DELETE_SESSION = ^SYSTEM_DELETE_SESSION;
- TSystemDeleteSession = SYSTEM_DELETE_SESSION;
- PSystemDeleteSession = ^TSystemDeleteSession;
- _SYSTEM_RANGE_START_INFORMATION = record // Information Class 50
- SystemRangeStart: PVOID;
- end;
- SYSTEM_RANGE_START_INFORMATION = _SYSTEM_RANGE_START_INFORMATION;
- PSYSTEM_RANGE_START_INFORMATION = ^SYSTEM_RANGE_START_INFORMATION;
- TSystemRangeStartInformation = SYSTEM_RANGE_START_INFORMATION;
- PSystemRangeStartInformation = ^TSystemRangeStartInformation;
- _SYSTEM_POOL_BLOCK = record
- Allocated: ByteBool;
- Unknown: USHORT;
- Size: ULONG;
- Tag: array[0..3] of CHAR;
- end;
- SYSTEM_POOL_BLOCK = _SYSTEM_POOL_BLOCK;
- PSYSTEM_POOL_BLOCK = ^SYSTEM_POOL_BLOCK;
- TSystemPoolBlock = SYSTEM_POOL_BLOCK;
- PSystemPoolBlock = ^TSystemPoolBlock;
- _SYSTEM_POOL_BLOCKS_INFORMATION = record // Info Classes 14 and 15
- PoolSize: ULONG;
- PoolBase: PVOID;
- Unknown: USHORT;
- NumberOfBlocks: ULONG;
- PoolBlocks: array[0..0] of SYSTEM_POOL_BLOCK;
- end;
- SYSTEM_POOL_BLOCKS_INFORMATION = _SYSTEM_POOL_BLOCKS_INFORMATION;
- PSYSTEM_POOL_BLOCKS_INFORMATION = ^SYSTEM_POOL_BLOCKS_INFORMATION;
- TSystemPoolBlocksInformation = SYSTEM_POOL_BLOCKS_INFORMATION;
- PSystemPoolBlocksInformation = ^TSystemPoolBlocksInformation;
- _SYSTEM_MEMORY_USAGE = record
- Name: PVOID;
- Valid: USHORT;
- Standby: USHORT;
- Modified: USHORT;
- PageTables: USHORT;
- end;
- SYSTEM_MEMORY_USAGE = _SYSTEM_MEMORY_USAGE;
- PSYSTEM_MEMORY_USAGE = ^SYSTEM_MEMORY_USAGE;
- TSystemMemoryUsage = SYSTEM_MEMORY_USAGE;
- PSystemMemoryUsage = ^TSystemMemoryUsage;
- _SYSTEM_MEMORY_USAGE_INFORMATION = record // Info Classes 25 and 29
- Reserved: ULONG;
- EndOfData: PVOID;
- MemoryUsage: array[0..0] of SYSTEM_MEMORY_USAGE;
- end;
- SYSTEM_MEMORY_USAGE_INFORMATION = _SYSTEM_MEMORY_USAGE_INFORMATION;
- PSYSTEM_MEMORY_USAGE_INFORMATION = ^SYSTEM_MEMORY_USAGE_INFORMATION;
- TSystemMemoryUsageInformation = SYSTEM_MEMORY_USAGE_INFORMATION;
- PSystemMemoryUsageInformation = ^TSystemMemoryUsageInformation;
- type
- _SHUTDOWN_ACTION = (
- ShutdownNoReboot,
- ShutdownReboot,
- ShutdownPowerOff);
- SHUTDOWN_ACTION = _SHUTDOWN_ACTION;
- TShutdownAction = SHUTDOWN_ACTION;
- type
- _DEBUG_CONTROL_CODE = (
- DebugFiller0,
- DebugGetTraceInformation,
- DebugSetInternalBreakpoint,
- DebugSetSpecialCall,
- DebugClearSpecialCalls,
- DebugQuerySpecialCalls,
- DebugDbgBreakPoint);
- DEBUG_CONTROL_CODE = _DEBUG_CONTROL_CODE;
- TDebugControlCode = DEBUG_CONTROL_CODE;
- type
- _OBJECT_INFORMATION_CLASS = (
- ObjectBasicInformation,
- ObjectNameInformation,
- ObjectTypeInformation,
- ObjectAllTypesInformation,
- ObjectHandleInformation);
- OBJECT_INFORMATION_CLASS = _OBJECT_INFORMATION_CLASS;
- TObjectInformationClass = OBJECT_INFORMATION_CLASS;
- type
- _OBJECT_BASIC_INFORMATION = record // Information Class 0
- Attributes: ULONG;
- GrantedAccess: ACCESS_MASK;
- HandleCount: ULONG;
- PointerCount: ULONG;
- PagedPoolUsage: ULONG;
- NonPagedPoolUsage: ULONG;
- Reserved: array[0..2] of ULONG;
- NameInformationLength: ULONG;
- TypeInformationLength: ULONG;
- SecurityDescriptorLength: ULONG;
- CreateTime: LARGE_INTEGER;
- end;
- OBJECT_BASIC_INFORMATION = _OBJECT_BASIC_INFORMATION;
- POBJECT_BASIC_INFORMATION = ^OBJECT_BASIC_INFORMATION;
- TObjectBasicInformation = OBJECT_BASIC_INFORMATION;
- PObjectBasicInformation = ^TObjectBasicInformation;
- _OBJECT_TYPE_INFORMATION = record // Information Class 2
- Name: UNICODE_STRING;
- ObjectCount: ULONG;
- HandleCount: ULONG;
- Reserved1: array[0..3] of ULONG;
- PeakObjectCount: ULONG;
- PeakHandleCount: ULONG;
- Reserved2: array[0..3] of ULONG;
- InvalidAttributes: ULONG;
- GenericMapping: GENERIC_MAPPING;
- ValidAccess: ULONG;
- Unknown: UCHAR;
- MaintainHandleDatabase: ByteBool;
- Reserved3: array[0..1] of UCHAR;
- PoolType: POOL_TYPE;
- PagedPoolUsage: ULONG;
- NonPagedPoolUsage: ULONG;
- end;
- OBJECT_TYPE_INFORMATION = _OBJECT_TYPE_INFORMATION;
- POBJECT_TYPE_INFORMATION = ^OBJECT_TYPE_INFORMATION;
- TObjectTypeInformation = OBJECT_TYPE_INFORMATION;
- PObjectTypeInformation = ^TObjectTypeInformation;
- _OBJECT_ALL_TYPES_INFORMATION = record // Information Class 3
- NumberOfTypes: ULONG;
- TypeInformation: OBJECT_TYPE_INFORMATION;
- end;
- OBJECT_ALL_TYPES_INFORMATION = _OBJECT_ALL_TYPES_INFORMATION;
- POBJECT_ALL_TYPES_INFORMATION = ^OBJECT_ALL_TYPES_INFORMATION;
- TObjectAllTypesInformation = OBJECT_ALL_TYPES_INFORMATION;
- PObjectAllTypesInformation = ^TObjectAllTypesInformation;
- _OBJECT_HANDLE_ATTRIBUTE_INFORMATION = record // Information Class 4
- Inherit: ByteBool;
- ProtectFromClose: ByteBool;
- end;
- OBJECT_HANDLE_ATTRIBUTE_INFORMATION = _OBJECT_HANDLE_ATTRIBUTE_INFORMATION;
- POBJECT_HANDLE_ATTRIBUTE_INFORMATION = ^OBJECT_HANDLE_ATTRIBUTE_INFORMATION;
- TObjectHandleAttributeInformation = OBJECT_HANDLE_ATTRIBUTE_INFORMATION;
- PObjectHandleAttributeInformation = ^TObjectHandleAttributeInformation;
- type
- _DIRECTORY_BASIC_INFORMATION = record
- ObjectName: UNICODE_STRING;
- ObjectTypeName: UNICODE_STRING;
- end;
- DIRECTORY_BASIC_INFORMATION = _DIRECTORY_BASIC_INFORMATION;
- PDIRECTORY_BASIC_INFORMATION = ^DIRECTORY_BASIC_INFORMATION;
- TDirectoryBasicInformation = DIRECTORY_BASIC_INFORMATION;
- PDirectoryBasicInformation = ^TDirectoryBasicInformation;
- type
- _MEMORY_INFORMATION_CLASS = (
- MemoryBasicInformation,
- MemoryWorkingSetList,
- MemorySectionName,
- MemoryBasicVlmInformation);
- MEMORY_INFORMATION_CLASS = _MEMORY_INFORMATION_CLASS;
- TMemoryInformationClass = MEMORY_INFORMATION_CLASS;
- PMemoryInformationClass = ^TMemoryInformationClass;
- type
- {$IFNDEF JWA_INCLUDEMODE}
- _MEMORY_BASIC_INFORMATION = record // Information Class 0
- BaseAddress: PVOID;
- AllocationBase: PVOID;
- AllocationProtect: ULONG;
- RegionSize: ULONG;
- State: ULONG;
- Protect: ULONG;
- Type_: ULONG;
- end;
- MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION;
- PMEMORY_BASIC_INFORMATION = ^MEMORY_BASIC_INFORMATION;
- TMemoryBasicInformation = MEMORY_BASIC_INFORMATION;
- PMemoryBasicInformation = ^TMemoryBasicInformation;
- {$ENDIF JWA_INCLUDEMODE}
- _MEMORY_WORKING_SET_LIST = record // Information Class 1
- NumberOfPages: ULONG;
- WorkingSetList: array[0..0] of ULONG;
- end;
- MEMORY_WORKING_SET_LIST = _MEMORY_WORKING_SET_LIST;
- PMEMORY_WORKING_SET_LIST = ^MEMORY_WORKING_SET_LIST;
- TMemoryWorkingSetList = MEMORY_WORKING_SET_LIST;
- PMemoryWorkingSetList = ^TMemoryWorkingSetList;
- _MEMORY_SECTION_NAME = record // Information Class 2
- SectionFileName: UNICODE_STRING;
- end;
- MEMORY_SECTION_NAME = _MEMORY_SECTION_NAME;
- PMEMORY_SECTION_NAME = ^MEMORY_SECTION_NAME;
- TMemorySectionName = MEMORY_SECTION_NAME;
- PMemorySectionName = ^TMemorySectionName;
- type
- _SECTION_INFORMATION_CLASS = (
- SectionBasicInformation,
- SectionImageInformation);
- SECTION_INFORMATION_CLASS = _SECTION_INFORMATION_CLASS;
- TSectionInformationClass = SECTION_INFORMATION_CLASS;
- type
- _SECTION_BASIC_INFORMATION = record // Information Class 0
- BaseAddress: PVOID;
- Attributes: ULONG;
- Size: LARGE_INTEGER;
- end;
- SECTION_BASIC_INFORMATION = _SECTION_BASIC_INFORMATION;
- PSECTION_BASIC_INFORMATION = ^SECTION_BASIC_INFORMATION;
- TSectionBasicInformation = SECTION_BASIC_INFORMATION;
- PSectionBasicInformation = ^TSectionBasicInformation;
- _SECTION_IMAGE_INFORMATION = record // Information Class 1
- EntryPoint: PVOID;
- Unknown1: ULONG;
- StackReserve: ULONG;
- StackCommit: ULONG;
- Subsystem: ULONG;
- MinorSubsystemVersion: USHORT;
- MajorSubsystemVersion: USHORT;
- Unknown2: ULONG;
- Characteristics: ULONG;
- ImageNumber: USHORT;
- Executable: ByteBool;
- Unknown3: UCHAR;
- Unknown4: array[0..2] of ULONG;
- end;
- SECTION_IMAGE_INFORMATION = _SECTION_IMAGE_INFORMATION;
- PSECTION_IMAGE_INFORMATION = ^SECTION_IMAGE_INFORMATION;
- TSectionImageInformation = SECTION_IMAGE_INFORMATION;
- PSectionImageInformation = TSectionImageInformation;
- type
- _USER_STACK = record
- FixedStackBase: PVOID;
- FixedStackLimit: PVOID;
- ExpandableStackBase: PVOID;
- ExpandableStackLimit: PVOID;
- ExpandableStackBottom: PVOID;
- end;
- USER_STACK = _USER_STACK;
- PUSER_STACK = ^USER_STACK;
- TUserStack = USER_STACK;
- PUserStack = ^TUserStack;
- type
- _THREAD_BASIC_INFORMATION = record // Information Class 0
- ExitStatus: NTSTATUS;
- TebBaseAddress: PNT_TIB;
- ClientId: CLIENT_ID;
- AffinityMask: KAFFINITY;
- Priority: KPRIORITY;
- BasePriority: KPRIORITY;
- end;
- THREAD_BASIC_INFORMATION = _THREAD_BASIC_INFORMATION;
- PTHREAD_BASIC_INFORMATION = ^THREAD_BASIC_INFORMATION;
- TThreadBasicInformation = THREAD_BASIC_INFORMATION;
- PThreadBasicInformation = ^TThreadBasicInformation;
- type
- _PROCESS_PRIORITY_CLASS = record // Information Class 18
- Foreground: ByteBool;
- PriorityClass: UCHAR;
- end;
- PROCESS_PRIORITY_CLASS = _PROCESS_PRIORITY_CLASS;
- PPROCESS_PRIORITY_CLASS = ^PROCESS_PRIORITY_CLASS;
- TProcessPriorityClass = PROCESS_PRIORITY_CLASS;
- PProcessPriorityClass = ^TProcessPriorityClass;
- _RTL_PROCESS_INFORMATION = record
- Size: ULONG;
- hProcess: HANDLE;
- hThread: HANDLE;
- ClientId: CLIENT_ID;
- ImageInfo: SECTION_IMAGE_INFORMATION;
- end;
- RTL_PROCESS_INFORMATION = _RTL_PROCESS_INFORMATION;
- PRTL_PROCESS_INFORMATION = ^RTL_PROCESS_INFORMATION;
- TRtlProcessInformation = RTL_PROCESS_INFORMATION;
- PRtlProcessInformation = ^RTL_PROCESS_INFORMATION;
- type
- _DEBUG_BUFFER = record
- SectionHandle: HANDLE;
- SectionBase: PVOID;
- RemoteSectionBase: PVOID;
- SectionBaseDelta: ULONG;
- EventPairHandle: HANDLE;
- Unknown: array[0..1] of ULONG;
- RemoteThreadHandle: HANDLE;
- InfoClassMask: ULONG;
- SizeOfInfo: ULONG;
- AllocatedSize: ULONG;
- SectionSize: ULONG;
- ModuleInformation: PVOID;
- BackTraceInformation: PVOID;
- HeapInformation: PVOID;
- LockInformation: PVOID;
- Reserved: array[0..7] of PVOID;
- end;
- DEBUG_BUFFER = _DEBUG_BUFFER;
- PDEBUG_BUFFER = ^DEBUG_BUFFER;
- TDebugBuffer = DEBUG_BUFFER;
- PDebugBuffer = ^TDebugBuffer;
- const
- PDI_MODULES = $01;
- PDI_BACKTRACE = $02;
- PDI_HEAPS = $04;
- PDI_HEAP_TAGS = $08;
- PDI_HEAP_BLOCKS = $10;
- PDI_LOCKS = $20;
- type
- _DEBUG_MODULE_INFORMATION = record // c.f. SYSTEM_MODULE_INFORMATION
- Reserved: array[0..1] of ULONG;
- Base: ULONG;
- Size: ULONG;
- Flags: ULONG;
- Index: USHORT;
- Unknown: USHORT;
- LoadCount: USHORT;
- ModuleNameOffset: USHORT;
- ImageName: array[0..255] of CHAR;
- end;
- DEBUG_MODULE_INFORMATION = _DEBUG_MODULE_INFORMATION;
- PDEBUG_MODULE_INFORMATION = ^DEBUG_MODULE_INFORMATION;
- TDebugModuleInformation = DEBUG_MODULE_INFORMATION;
- PDebugModuleInformation = ^TDebugModuleInformation;
- _DEBUG_HEAP_INFORMATION = record
- Base: ULONG;
- Flags: ULONG;
- Granularity: USHORT;
- Unknown: USHORT;
- Allocated: ULONG;
- Committed: ULONG;
- TagCount: ULONG;
- BlockCount: ULONG;
- Reserved: array[0..6] of ULONG;
- Tags: PVOID;
- Blocks: PVOID;
- end;
- DEBUG_HEAP_INFORMATION = _DEBUG_HEAP_INFORMATION;
- PDEBUG_HEAP_INFORMATION = ^DEBUG_HEAP_INFORMATION;
- TDebugHeapInformation = DEBUG_HEAP_INFORMATION;
- PDebugHeapInformation = ^TDebugHeapInformation;
- _DEBUG_LOCK_INFORMATION = record // c.f. SYSTEM_LOCK_INFORMATION
- Address: PVOID;
- Type_: USHORT;
- CreatorBackTraceIndex: USHORT;
- OwnerThreadId: ULONG;
- ActiveCount: ULONG;
- ContentionCount: ULONG;
- EntryCount: ULONG;
- RecursionCount: ULONG;
- NumberOfSharedWaiters: ULONG;
- NumberOfExclusiveWaiters: ULONG;
- end;
- DEBUG_LOCK_INFORMATION = _DEBUG_LOCK_INFORMATION;
- PDEBUG_LOCK_INFORMATION = ^DEBUG_LOCK_INFORMATION;
- TDebugLockInformation = DEBUG_LOCK_INFORMATION;
- PDebugLockInformation = ^TDebugLockInformation;
- type
- PTIMER_APC_ROUTINE = procedure(TimerContext: PVOID; TimerLowValue: ULONG; TimerHighValue: LONG); stdcall;
- type
- _TIMER_INFORMATION_CLASS = (TimerBasicInformation);
- TIMER_INFORMATION_CLASS = _TIMER_INFORMATION_CLASS;
- TTimerInformationClass = TIMER_INFORMATION_CLASS;
- type
- _TIMER_BASIC_INFORMATION = record
- TimeRemaining: LARGE_INTEGER;
- SignalState: ByteBool;
- end;
- TIMER_BASIC_INFORMATION = _TIMER_BASIC_INFORMATION;
- PTIMER_BASIC_INFORMATION = ^TIMER_BASIC_INFORMATION;
- TTimerBasicInformation = TIMER_BASIC_INFORMATION;
- PTimerBasicInformation = ^TTimerBasicInformation;
- type
- _EVENT_INFORMATION_CLASS = (EventBasicInformation);
- EVENT_INFORMATION_CLASS = _EVENT_INFORMATION_CLASS;
- TEventInformationClass = EVENT_INFORMATION_CLASS;
- type
- _EVENT_BASIC_INFORMATION = record
- EventType: EVENT_TYPE;
- SignalState: LONG;
- end;
- EVENT_BASIC_INFORMATION = _EVENT_BASIC_INFORMATION;
- PEVENT_BASIC_INFORMATION = ^EVENT_BASIC_INFORMATION;
- TEventBasicInformation = EVENT_BASIC_INFORMATION;
- PEventBasicInformation = ^TEventBasicInformation;
- type
- _SEMAPHORE_INFORMATION_CLASS = (SemaphoreBasicInformation);
- SEMAPHORE_INFORMATION_CLASS = _SEMAPHORE_INFORMATION_CLASS;
- TSemaphoreInformationClass = SEMAPHORE_INFORMATION_CLASS;
- type
- _SEMAPHORE_BASIC_INFORMATION = record
- CurrentCount: LONG;
- MaximumCount: LONG;
- end;
- SEMAPHORE_BASIC_INFORMATION = _SEMAPHORE_BASIC_INFORMATION;
- PSEMAPHORE_BASIC_INFORMATION = ^SEMAPHORE_BASIC_INFORMATION;
- TSemaphoreBasicInformation = SEMAPHORE_BASIC_INFORMATION;
- type
- _MUTANT_INFORMATION_CLASS = (MutantBasicInformation);
- MUTANT_INFORMATION_CLASS = _MUTANT_INFORMATION_CLASS;
- TMutantInformationClass = MUTANT_INFORMATION_CLASS;
- type
- _MUTANT_BASIC_INFORMATION = record
- SignalState: LONG;
- Owned: ByteBool;
- Abandoned: ByteBool;
- end;
- MUTANT_BASIC_INFORMATION = _MUTANT_BASIC_INFORMATION;
- PMUTANT_BASIC_INFORMATION = ^MUTANT_BASIC_INFORMATION;
- TMutantBasicInformation = MUTANT_BASIC_INFORMATION;
- PMutantBasicInformation = ^TMutantBasicInformation;
- type
- _IO_COMPLETION_INFORMATION_CLASS = (IoCompletionBasicInformation);
- IO_COMPLETION_INFORMATION_CLASS = _IO_COMPLETION_INFORMATION_CLASS;
- TIoCompletionInformationClass = IO_COMPLETION_INFORMATION_CLASS;
- type
- _IO_COMPLETION_BASIC_INFORMATION = record
- SignalState: LONG;
- end;
- IO_COMPLETION_BASIC_INFORMATION = _IO_COMPLETION_BASIC_INFORMATION;
- PIO_COMPLETION_BASIC_INFORMATION = ^IO_COMPLETION_BASIC_INFORMATION;
- TIoCompletionBasicInformation = IO_COMPLETION_BASIC_INFORMATION;
- PIoCompletionBasicInformation = ^TIoCompletionBasicInformation;
- type
- _PORT_MESSAGE = record
- DataSize: USHORT;
- MessageSize: USHORT;
- MessageType: USHORT;
- VirtualRangesOffset: USHORT;
- ClientId: CLIENT_ID;
- MessageId: ULONG;
- SectionSize: ULONG;
- // UCHAR Data[];
- end;
- PORT_MESSAGE = _PORT_MESSAGE;
- PPORT_MESSAGE = ^PORT_MESSAGE;
- TPortMessage = PORT_MESSAGE;
- PPortMessage = ^TPortMessage;
- _LPC_TYPE = (
- LPC_NEW_MESSAGE, // A new message
- LPC_REQUEST, // A request message
- LPC_REPLY, // A reply to a request message
- LPC_DATAGRAM, //
- LPC_LOST_REPLY, //
- LPC_PORT_CLOSED, // Sent when port is deleted
- LPC_CLIENT_DIED, // Messages to thread termination ports
- LPC_EXCEPTION, // Messages to thread exception port
- LPC_DEBUG_EVENT, // Messages to thread debug port
- LPC_ERROR_EVENT, // Used by ZwRaiseHardError
- LPC_CONNECTION_REQUEST); // Used by ZwConnectPort
- LPC_TYPE = _LPC_TYPE;
- TLpcType = LPC_TYPE;
- _PORT_SECTION_WRITE = record
- Length: ULONG;
- SectionHandle: HANDLE;
- SectionOffset: ULONG;
- ViewSize: ULONG;
- ViewBase: PVOID;
- TargetViewBase: PVOID;
- end;
- PORT_SECTION_WRITE = _PORT_SECTION_WRITE;
- PPORT_SECTION_WRITE = ^PORT_SECTION_WRITE;
- TPortSectionWrite = PORT_SECTION_WRITE;
- PPortSectionWrite = ^TPortSectionWrite;
- _PORT_SECTION_READ = record
- Length: ULONG;
- ViewSize: ULONG;
- ViewBase: ULONG;
- end;
- PORT_SECTION_READ = _PORT_SECTION_READ;
- PPORT_SECTION_READ = ^PORT_SECTION_READ;
- TPortSectionRead = PORT_SECTION_READ;
- PPortSectionRead = ^TPortSectionRead;
- type
- _PORT_INFORMATION_CLASS = (PortBasicInformation);
- PORT_INFORMATION_CLASS = _PORT_INFORMATION_CLASS;
- TPortInformationClass = PORT_INFORMATION_CLASS;
- type
- _PORT_BASIC_INFORMATION = record
- end;
- PORT_BASIC_INFORMATION = _PORT_BASIC_INFORMATION;
- PPORT_BASIC_INFORMATION = ^PORT_BASIC_INFORMATION;
- TPortBasicInformation = PORT_BASIC_INFORMATION;
- PPortBasicInformation = ^TPortBasicInformation;
- type
- _FILE_GET_EA_INFORMATION = record
- NextEntryOffset: ULONG;
- EaNameLength: UCHAR;
- EaName: array[0..0] of CHAR;
- end;
- FILE_GET_EA_INFORMATION = _FILE_GET_EA_INFORMATION;
- PFILE_GET_EA_INFORMATION = ^FILE_GET_EA_INFORMATION;
- TFileGetEaInformation = FILE_GET_EA_INFORMATION;
- PFileGetEaInformation = ^TFileGetEaInformation;
- type
- _FILE_FS_VOLUME_INFORMATION = record
- VolumeCreationTime: LARGE_INTEGER;
- VolumeSerialNumber: ULONG;
- VolumeLabelLength: ULONG;
- Unknown: UCHAR;
- VolumeLabel: array[0..0] of WCHAR;
- end;
- FILE_FS_VOLUME_INFORMATION = _FILE_FS_VOLUME_INFORMATION;
- PFILE_FS_VOLUME_INFORMATION = ^FILE_FS_VOLUME_INFORMATION;
- TFileFsVolumeInformation = FILE_FS_VOLUME_INFORMATION;
- PFileFsVolumeInformation = ^TFileFsVolumeInformation;
- _FILE_FS_LABEL_INFORMATION = record
- VolumeLabelLength: ULONG;
- VolumeLabel: WCHAR;
- end;
- FILE_FS_LABEL_INFORMATION = _FILE_FS_LABEL_INFORMATION;
- PFILE_FS_LABEL_INFORMATION = ^FILE_FS_LABEL_INFORMATION;
- TFileFsLabelInformation = FILE_FS_LABEL_INFORMATION;
- PFileFsLabelInformation = ^TFileFsLabelInformation;
- _FILE_FS_SIZE_INFORMATION = record
- TotalAllocationUnits: LARGE_INTEGER;
- AvailableAllocationUnits: LARGE_INTEGER;
- SectorsPerAllocationUnit: ULONG;
- BytesPerSector: ULONG;
- end;
- FILE_FS_SIZE_INFORMATION = _FILE_FS_SIZE_INFORMATION;
- PFILE_FS_SIZE_INFORMATION = ^FILE_FS_SIZE_INFORMATION;
- TFileFsSizeInformation = FILE_FS_SIZE_INFORMATION;
- PFileFsSizeInformation = ^TFileFsSizeInformation;
- _FILE_FS_ATTRIBUTE_INFORMATION = record
- FileSystemFlags: ULONG;
- MaximumComponentNameLength: ULONG;
- FileSystemNameLength: ULONG;
- FileSystemName: array[0..0] of WCHAR;
- end;
- FILE_FS_ATTRIBUTE_INFORMATION = _FILE_FS_ATTRIBUTE_INFORMATION;
- PFILE_FS_ATTRIBUTE_INFORMATION = ^FILE_FS_ATTRIBUTE_INFORMATION;
- TFileFsAttributeInformation = FILE_FS_ATTRIBUTE_INFORMATION;
- PFileFsAttributeInformation = ^TFileFsAttributeInformation;
- _FILE_FS_CONTROL_INFORMATION = record
- Reserved: array[0..2] of LARGE_INTEGER;
- DefaultQuotaThreshold: LARGE_INTEGER;
- DefaultQuotaLimit: LARGE_INTEGER;
- QuotaFlags: ULONG;
- end;
- FILE_FS_CONTROL_INFORMATION = _FILE_FS_CONTROL_INFORMATION;
- PFILE_FS_CONTROL_INFORMATION = ^FILE_FS_CONTROL_INFORMATION;
- TFileFsControlInformation = FILE_FS_CONTROL_INFORMATION;
- PFileFsControlInformation = ^TFileFsControlInformation;
- _FILE_FS_FULL_SIZE_INFORMATION = record
- TotalQuotaAllocationUnits: LARGE_INTEGER;
- AvailableQuotaAllocationUnits: LARGE_INTEGER;
- AvailableAllocationUnits: LARGE_INTEGER;
- SectorsPerAllocationUnit: ULONG;
- BytesPerSector: ULONG;
- end;
- FILE_FS_FULL_SIZE_INFORMATION = _FILE_FS_FULL_SIZE_INFORMATION;
- PFILE_FS_FULL_SIZE_INFORMATION = ^FILE_FS_FULL_SIZE_INFORMATION;
- TFileFsFullSizeInformation = FILE_FS_FULL_SIZE_INFORMATION;
- PFileFsFullSizeInformation = ^TFileFsFullSizeInformation;
- _FILE_FS_OBJECT_ID_INFORMATION = record
- VolumeObjectId: UUID;
- VolumeObjectIdExtendedInfo: array[0..11] of ULONG;
- end;
- FILE_FS_OBJECT_ID_INFORMATION = _FILE_FS_OBJECT_ID_INFORMATION;
- PFILE_FS_OBJECT_ID_INFORMATION = ^FILE_FS_OBJECT_ID_INFORMATION;
- TFileFsObjectIdInformation = FILE_FS_OBJECT_ID_INFORMATION;
- PFileFsObjectIdInformation = ^TFileFsObjectIdInformation;
- _FILE_USER_QUOTA_INFORMATION = record
- NextEntryOffset: ULONG;
- SidLength: ULONG;
- ChangeTime: LARGE_INTEGER;
- QuotaUsed: LARGE_INTEGER;
- QuotaThreshold: LARGE_INTEGER;
- QuotaLimit: LARGE_INTEGER;
- Sid: array[0..0] of SID;
- end;
- FILE_USER_QUOTA_INFORMATION = _FILE_USER_QUOTA_INFORMATION;
- PFILE_USER_QUOTA_INFORMATION = ^FILE_USER_QUOTA_INFORMATION;
- TFileUserQuotaInformation = FILE_USER_QUOTA_INFORMATION;
- PFileUserQuotaInformation = ^TFileUserQuotaInformation;
- _FILE_QUOTA_LIST_INFORMATION = record
- NextEntryOffset: ULONG;
- SidLength: ULONG;
- Sid: array[0..0] of SID;
- end;
- FILE_QUOTA_LIST_INFORMATION = _FILE_QUOTA_LIST_INFORMATION;
- PFILE_QUOTA_LIST_INFORMATION = ^FILE_QUOTA_LIST_INFORMATION;
- TFileQuotaListInformation = FILE_QUOTA_LIST_INFORMATION;
- PFileQuotaListInformation = ^TFileQuotaListInformation;
- type
- _FILE_DIRECTORY_INFORMATION = record // Information Class 1
- NextEntryOffset: ULONG;
- Unknown: ULONG;
- CreationTime: LARGE_INTEGER;
- LastAccessTime: LARGE_INTEGER;
- LastWriteTime: LARGE_INTEGER;
- ChangeTime: LARGE_INTEGER;
- EndOfFile: LARGE_INTEGER;
- AllocationSize: LARGE_INTEGER;
- FileAttributes: ULONG;
- FileNameLength: ULONG;
- FileName: array[0..0] of WCHAR;
- end;
- FILE_DIRECTORY_INFORMATION = _FILE_DIRECTORY_INFORMATION;
- PFILE_DIRECTORY_INFORMATION = ^FILE_DIRECTORY_INFORMATION;
- TFileDirectoryInformation = FILE_DIRECTORY_INFORMATION;
- PFileDirectoryInformation = ^TFileDirectoryInformation;
- _FILE_FULL_DIRECTORY_INFORMATION = record // Information Class 2
- NextEntryOffset: ULONG;
- Unknown: ULONG;
- CreationTime: LARGE_INTEGER;
- LastAccessTime: LARGE_INTEGER;
- LastWriteTime: LARGE_INTEGER;
- ChangeTime: LARGE_INTEGER;
- EndOfFile: LARGE_INTEGER;
- AllocationSize: LARGE_INTEGER;
- FileAttributes: ULONG;
- FileNameLength: ULONG;
- EaInformationLength: ULONG;
- FileName: array[0..0] of WCHAR;
- end;
- FILE_FULL_DIRECTORY_INFORMATION = _FILE_FULL_DIRECTORY_INFORMATION;
- PFILE_FULL_DIRECTORY_INFORMATION = ^FILE_FULL_DIRECTORY_INFORMATION;
- TFileFullDirectoryInformation = FILE_FULL_DIRECTORY_INFORMATION;
- PFileFullDirectoryInformation = ^TFileFullDirectoryInformation;
- _FILE_BOTH_DIRECTORY_INFORMATION = record // Information Class 3
- NextEntryOffset: ULONG;
- Unknown: ULONG;
- CreationTime: LARGE_INTEGER;
- LastAccessTime: LARGE_INTEGER;
- LastWriteTime: LARGE_INTEGER;
- ChangeTime: LARGE_INTEGER;
- EndOfFile: LARGE_INTEGER;
- AllocationSize: LARGE_INTEGER;
- FileAttributes: ULONG;
- FileNameLength: ULONG;
- EaInformationLength: ULONG;
- AlternateNameLength: UCHAR;
- AlternateName: array[0..11] of WCHAR;
- FileName: array[0..0] of WCHAR;
- end;
- FILE_BOTH_DIRECTORY_INFORMATION = _FILE_BOTH_DIRECTORY_INFORMATION;
- PFILE_BOTH_DIRECTORY_INFORMATION = ^FILE_BOTH_DIRECTORY_INFORMATION;
- TFileBothDirectoryInformation = FILE_BOTH_DIRECTORY_INFORMATION;
- PFileBothDirectoryInformation = ^TFileBothDirectoryInformation;
- _FILE_INTERNAL_INFORMATION = record // Information Class 6
- FileId: LARGE_INTEGER;
- end;
- FILE_INTERNAL_INFORMATION = _FILE_INTERNAL_INFORMATION;
- PFILE_INTERNAL_INFORMATION = ^FILE_INTERNAL_INFORMATION;
- TFileInternalInformation = FILE_INTERNAL_INFORMATION;
- PFileInternalInformation = ^TFileInternalInformation;
- _FILE_EA_INFORMATION = record // Information Class 7
- EaInformationLength: ULONG;
- end;
- FILE_EA_INFORMATION = _FILE_EA_INFORMATION;
- PFILE_EA_INFORMATION = ^FILE_EA_INFORMATION;
- TFileEaInformation = FILE_EA_INFORMATION;
- PFileEaInformation = ^TFileEaInformation;
- _FILE_ACCESS_INFORMATION = record // Information Class 8
- GrantedAccess: ACCESS_MASK;
- end;
- FILE_ACCESS_INFORMATION = _FILE_ACCESS_INFORMATION;
- PFILE_ACCESS_INFORMATION = ^FILE_ACCESS_INFORMATION;
- TFileAccessInformation = FILE_ACCESS_INFORMATION;
- PFileAccessInformation = ^TFileAccessInformation;
- _FILE_NAME_INFORMATION = record // Information Classes 9 and 21
- FileNameLength: ULONG;
- FileName: array[0..0] of WCHAR;
- end;
- FILE_NAME_INFORMATION = _FILE_NAME_INFORMATION;
- PFILE_NAME_INFORMATION = ^FILE_NAME_INFORMATION;
- FILE_ALTERNATE_NAME_INFORMATION = _FILE_NAME_INFORMATION;
- PFILE_ALTERNATE_NAME_INFORMATION = ^FILE_ALTERNATE_NAME_INFORMATION;
- TFileNameInformation = FILE_NAME_INFORMATION;
- PFileNameInformation = ^TFileNameInformation;
- _FILE_LINK_RENAME_INFORMATION = record // Info Classes 10 and 11
- ReplaceIfExists: ByteBool;
- RootDirectory: HANDLE;
- FileNameLength: ULONG;
- FileName: array[0..0] of WCHAR;
- end;
- FILE_LINK_INFORMATION = _FILE_LINK_RENAME_INFORMATION;
- PFILE_LINK_INFORMATION = ^FILE_LINK_INFORMATION;
- FILE_RENAME_INFORMATION = _FILE_LINK_RENAME_INFORMATION;
- PFILE_RENAME_INFORMATION = ^FILE_RENAME_INFORMATION;
- TFileLinkInformation = FILE_LINK_INFORMATION;
- PFileLinkInformation = ^TFileLinkInformation;
- _FILE_NAMES_INFORMATION = record // Information Class 12
- NextEntryOffset: ULONG;
- Unknown: ULONG;
- FileNameLength: ULONG;
- FileName: array[0..0] of WCHAR;
- end;
- FILE_NAMES_INFORMATION = _FILE_NAMES_INFORMATION;
- PFILE_NAMES_INFORMATION = ^FILE_NAMES_INFORMATION;
- TFileNamesInformation = FILE_NAMES_INFORMATION;
- PFileNamesInformation = ^TFileNamesInformation;
- _FILE_MODE_INFORMATION = record // Information Class 16
- Mode: ULONG;
- end;
- FILE_MODE_INFORMATION = _FILE_MODE_INFORMATION;
- PFILE_MODE_INFORMATION = ^FILE_MODE_INFORMATION;
- TFileModeInformation = FILE_MODE_INFORMATION;
- PFileModeInformation = ^TFileModeInformation;
- _FILE_ALL_INFORMATION = record // Information Class 18
- BasicInformation: FILE_BASIC_INFORMATION;
- StandardInformation: FILE_STANDARD_INFORMATION;
- InternalInformation: FILE_INTERNAL_INFORMATION;
- EaInformation: FILE_EA_INFORMATION;
- AccessInformation: FILE_ACCESS_INFORMATION;
- PositionInformation: FILE_POSITION_INFORMATION;
- ModeInformation: FILE_MODE_INFORMATION;
- AlignmentInformation: FILE_ALIGNMENT_INFORMATION;
- NameInformation: FILE_NAME_INFORMATION;
- end;
- FILE_ALL_INFORMATION = _FILE_ALL_INFORMATION;
- PFILE_ALL_INFORMATION = ^FILE_ALL_INFORMATION;
- TFileAllInformation = FILE_ALL_INFORMATION;
- PFileAllInformation = ^TFileAllInformation;
- _FILE_ALLOCATION_INFORMATION = record // Information Class 19
- AllocationSize: LARGE_INTEGER;
- end;
- FILE_ALLOCATION_INFORMATION = _FILE_ALLOCATION_INFORMATION;
- PFILE_ALLOCATION_INFORMATION = ^FILE_ALLOCATION_INFORMATION;
- TFileAllocationInformation = FILE_ALLOCATION_INFORMATION;
- PFileAllocationInformation = ^TFileAllocationInformation;
- _FILE_STREAM_INFORMATION = record // Information Class 22
- NextEntryOffset: ULONG;
- StreamNameLength: ULONG;
- EndOfStream: LARGE_INTEGER;
- AllocationSize: LARGE_INTEGER;
- StreamName: array[0..0] of WCHAR;
- end;
- FILE_STREAM_INFORMATION = _FILE_STREAM_INFORMATION;
- PFILE_STREAM_INFORMATION = ^FILE_STREAM_INFORMATION;
- TFileStreamInformation = FILE_STREAM_INFORMATION;
- PFileStreamInformation = ^TFileStreamInformation;
- _FILE_PIPE_INFORMATION = record // Information Class 23
- ReadModeMessage: ULONG;
- WaitModeBlocking: ULONG;
- end;
- FILE_PIPE_INFORMATION = _FILE_PIPE_INFORMATION;
- PFILE_PIPE_INFORMATION = ^FILE_PIPE_INFORMATION;
- TFilePipeInformation = FILE_PIPE_INFORMATION;
- PFilePipeInformation = ^TFilePipeInformation;
- _FILE_PIPE_LOCAL_INFORMATION = record // Information Class 24
- MessageType: ULONG;
- Unknown1: ULONG;
- MaxInstances: ULONG;
- CurInstances: ULONG;
- InBufferSize: ULONG;
- Unknown2: ULONG;
- OutBufferSize: ULONG;
- Unknown3: array[0..1] of ULONG;
- ServerEnd: ULONG;
- end;
- FILE_PIPE_LOCAL_INFORMATION = _FILE_PIPE_LOCAL_INFORMATION;
- PFILE_PIPE_LOCAL_INFORMATION = ^FILE_PIPE_LOCAL_INFORMATION;
- TFilePipeLocalInformation = FILE_PIPE_LOCAL_INFORMATION;
- PFilePipeLocalInformation = ^TFilePipeLocalInformation;
- _FILE_PIPE_REMOTE_INFORMATION = record // Information Class 25
- CollectDataTimeout: LARGE_INTEGER;
- MaxCollectionCount: ULONG;
- end;
- FILE_PIPE_REMOTE_INFORMATION = _FILE_PIPE_REMOTE_INFORMATION;
- PFILE_PIPE_REMOTE_INFORMATION = ^FILE_PIPE_REMOTE_INFORMATION;
- TFilePipeRemoteInformation = FILE_PIPE_REMOTE_INFORMATION;
- PFilePipeRemoteInformation = ^TFilePipeRemoteInformation;
- _FILE_MAILSLOT_QUERY_INFORMATION = record // Information Class 26
- MaxMessageSize: ULONG;
- Unknown: ULONG;
- NextSize: ULONG;
- MessageCount: ULONG;
- ReadTimeout: LARGE_INTEGER;
- end;
- FILE_MAILSLOT_QUERY_INFORMATION = _FILE_MAILSLOT_QUERY_INFORMATION;
- PFILE_MAILSLOT_QUERY_INFORMATION = ^FILE_MAILSLOT_QUERY_INFORMATION;
- TFileMailslotQueryInformation = FILE_MAILSLOT_QUERY_INFORMATION;
- PFileMailslotQueryInformation = ^TFileMailslotQueryInformation;
- _FILE_MAILSLOT_SET_INFORMATION = record // Information Class 27
- ReadTimeout: LARGE_INTEGER;
- end;
- FILE_MAILSLOT_SET_INFORMATION = _FILE_MAILSLOT_SET_INFORMATION;
- PFILE_MAILSLOT_SET_INFORMATION = ^FILE_MAILSLOT_SET_INFORMATION;
- TFileMailslotSetInformation = FILE_MAILSLOT_SET_INFORMATION;
- PFileMailslotSetInformation = ^TFileMailslotSetInformation;
- _FILE_COMPRESSION_INFORMATION = record // Information Class 28
- CompressedSize: LARGE_INTEGER;
- CompressionFormat: USHORT;
- CompressionUnitShift: UCHAR;
- Unknown: UCHAR;
- ClusterSizeShift: UCHAR;
- end;
- FILE_COMPRESSION_INFORMATION = _FILE_COMPRESSION_INFORMATION;
- PFILE_COMPRESSION_INFORMATION = ^FILE_COMPRESSION_INFORMATION;
- TFileCompressionInformation = FILE_COMPRESSION_INFORMATION;
- PFileCompressionInformation = ^TFileCompressionInformation;
- _FILE_COMPLETION_INFORMATION = record // Information Class 30
- IoCompletionHandle: HANDLE;
- CompletionKey: ULONG;
- end;
- FILE_COMPLETION_INFORMATION = _FILE_COMPLETION_INFORMATION;
- PFILE_COMPLETION_INFORMATION = ^FILE_COMPLETION_INFORMATION;
- TFileCompletionInformation = FILE_COMPLETION_INFORMATION;
- PFileCompletionInformation = ^TFileCompletionInformation;
- type
- PEXECUTION_STATE = ^EXECUTION_STATE;
- PExecutionState = PEXECUTION_STATE;
- {$IFNDEF JWA_INCLUDEMODE}
- type
- PLANGID = ^LANGID;
- {$ENDIF JWA_INCLUDEMODE}
- type
- _ATOM_INFORMATION_CLASS = (AtomBasicInformation, AtomListInformation);
- ATOM_INFORMATION_CLASS = _ATOM_INFORMATION_CLASS;
- TAtomInformationClass = ATOM_INFORMATION_CLASS;
- type
- _ATOM_BASIC_INFORMATION = record
- ReferenceCount: USHORT;
- Pinned: USHORT;
- NameLength: USHORT;
- Name: array[0..0] of WCHAR;
- end;
- ATOM_BASIC_INFORMATION = _ATOM_BASIC_INFORMATION;
- PATOM_BASIC_INFORMATION = ^ATOM_BASIC_INFORMATION;
- TAtomBasicInformation = ATOM_BASIC_INFORMATION;
- PAtomBasicInformation = ^TAtomBasicInformation;
- _ATOM_LIST_INFORMATION = record
- NumberOfAtoms: ULONG;
- Atoms: array[0..0] of ATOM;
- end;
- ATOM_LIST_INFORMATION = _ATOM_LIST_INFORMATION;
- PATOM_LIST_INFORMATION = ^ATOM_LIST_INFORMATION;
- TAtomListInformation = ATOM_LIST_INFORMATION;
- PAtomListInformation = ^TAtomListInformation;
- //==============================================================================
- // NTFS on disk structure structures
- //==============================================================================
- type
- _NTFS_RECORD_HEADER = record
- Type_: ULONG;
- UsaOffset: USHORT;
- UsaCount: USHORT;
- Usn: USN;
- end;
- NTFS_RECORD_HEADER = _NTFS_RECORD_HEADER;
- PNTFS_RECORD_HEADER = ^NTFS_RECORD_HEADER;
- TNtfsRecordHeader = NTFS_RECORD_HEADER;
- PNtfsRecordHeader = ^TNtfsRecordHeader;
- _FILE_RECORD_HEADER = record
- Ntfs: NTFS_RECORD_HEADER;
- SequenceNumber: USHORT;
- LinkCount: USHORT;
- AttributesOffset: USHORT;
- Flags: USHORT; // 0x0001 = InUse, 0x0002 = Directory
- BytesInUse: ULONG;
- BytesAllocated: ULONG;
- BaseFileRecord: ULONGLONG;
- NextAttributeNumber: USHORT;
- end;
- FILE_RECORD_HEADER = _FILE_RECORD_HEADER;
- PFILE_RECORD_HEADER = ^FILE_RECORD_HEADER;
- TFileRecordHeader = FILE_RECORD_HEADER;
- PFileRecordHeader = ^TFileRecordHeader;
- const
- AttributeStandardInformation = $10;
- AttributeAttributeList = $20;
- AttributeFileName = $30;
- AttributeObjectId = $40;
- AttributeSecurityDescriptor = $50;
- AttributeVolumeName = $60;
- AttributeVolumeInformation = $70;
- AttributeData = $80;
- AttributeIndexRoot = $90;
- AttributeIndexAllocation = $A0;
- AttributeBitmap = $B0;
- AttributeReparsePoint = $C0;
- AttributeEAInformation = $D0;
- AttributeEA = $E0;
- AttributePropertySet = $F0;
- AttributeLoggedUtilityStream = $100;
- type
- ATTRIBUTE_TYPE = AttributeStandardInformation..AttributeLoggedUtilityStream;
- PATTRIBUTE_TYPE = ^ATTRIBUTE_TYPE;
- TAttributeType = ATTRIBUTE_TYPE;
- _ATTRIBUTE = record
- AttributeType: ATTRIBUTE_TYPE;
- Length: ULONG;
- Nonresident: ByteBool;
- NameLength: UCHAR;
- NameOffset: USHORT;
- Flags: USHORT; // 0x0001 = Compressed
- AttributeNumber: USHORT;
- end;
- ATTRIBUTE = _ATTRIBUTE;
- PATTRIBUTE = ^ATTRIBUTE;
- TAttribute = ATTRIBUTE;
- _RESIDENT_ATTRIBUTE = record
- Attribute: ATTRIBUTE;
- ValueLength: ULONG;
- ValueOffset: USHORT;
- Flags: USHORT; // 0x0001 = Indexed
- end;
- RESIDENT_ATTRIBUTE = _RESIDENT_ATTRIBUTE;
- PRESIDENT_ATTRIBUTE = ^RESIDENT_ATTRIBUTE;
- TResidentAttribute = RESIDENT_ATTRIBUTE;
- PResidentAttribute = ^TResidentAttribute;
- _NONRESIDENT_ATTRIBUTE = record
- Attribute: ATTRIBUTE;
- LowVcn: ULONGLONG;
- HighVcn: ULONGLONG;
- RunArrayOffset: USHORT;
- CompressionUnit: UCHAR;
- AlignmentOrReserved: array[0..4] of UCHAR;
- AllocatedSize: ULONGLONG;
- DataSize: ULONGLONG;
- InitializedSize: ULONGLONG;
- CompressedSize: ULONGLONG; // Only when compressed
- end;
- NONRESIDENT_ATTRIBUTE = _NONRESIDENT_ATTRIBUTE;
- PNONRESIDENT_ATTRIBUTE = ^NONRESIDENT_ATTRIBUTE;
- TNonResidentAttribute = NONRESIDENT_ATTRIBUTE;
- PNonResidentAttribute = ^TNonResidentAttribute;
- _STANDARD_INFORMATION = record
- CreationTime: ULONGLONG;
- ChangeTime: ULONGLONG;
- LastWriteTime: ULONGLONG;
- LastAccessTime: ULONGLONG;
- FileAttributes: ULONG;
- AlignmentOrReservedOrUnknown: array[0..2] of ULONG;
- QuotaId: ULONG; // NTFS 3.0 only
- SecurityId: ULONG; // NTFS 3.0 only
- QuotaCharge: ULONGLONG; // NTFS 3.0 only
- Usn: USN; // NTFS 3.0 only
- end;
- STANDARD_INFORMATION = _STANDARD_INFORMATION;
- PSTANDARD_INFORMATION = ^STANDARD_INFORMATION;
- TStandardInformation = STANDARD_INFORMATION;
- PStandardInformation = ^TStandardInformation;
- _ATTRIBUTE_LIST = record
- AttributeType: ATTRIBUTE_TYPE;
- Length: USHORT;
- NameLength: UCHAR;
- NameOffset: UCHAR;
- LowVcn: ULONGLONG;
- FileReferenceNumber: ULONGLONG;
- AttributeNumber: USHORT;
- AlignmentOrReserved: array[0..2] of USHORT;
- end;
- ATTRIBUTE_LIST = _ATTRIBUTE_LIST;
- PATTRIBUTE_LIST = ^ATTRIBUTE_LIST;
- TAttributeList = ATTRIBUTE_LIST;
- PAttributeList = ^TAttributeList;
- _FILENAME_ATTRIBUTE = record
- DirectoryFileReferenceNumber: ULONGLONG;
- CreationTime: ULONGLONG; // Saved when filename last changed
- ChangeTime: ULONGLONG; // ditto
- LastWriteTime: ULONGLONG; // ditto
- LastAccessTime: ULONGLONG; // ditto
- AllocatedSize: ULONGLONG; // ditto
- DataSize: ULONGLONG; // ditto
- FileAttributes: ULONG; // ditto
- AlignmentOrReserved: ULONG;
- NameLength: UCHAR;
- NameType: UCHAR; // 0x01 = Long, 0x02 = Short
- Name: array[0..0] of UCHAR;
- end;
- FILENAME_ATTRIBUTE = _FILENAME_ATTRIBUTE;
- PFILENAME_ATTRIBUTE = ^FILENAME_ATTRIBUTE;
- TFilenameAttribute = FILENAME_ATTRIBUTE;
- PFilenameAttribute = ^TFilenameAttribute;
- _OBJECTID_ATTRIBUTE = record
- ObjectId: GUID;
- case Integer of
- 0: (
- BirthVolumeId: GUID;
- BirthObjectId: GUID;
- DomainId: GUID);
- 1: (
- ExtendedInfo: array[0..47] of UCHAR
- );
- end;
- OBJECTID_ATTRIBUTE = _OBJECTID_ATTRIBUTE;
- POBJECTID_ATTRIBUTE = ^OBJECTID_ATTRIBUTE;
- TObjectIdAttribute = OBJECTID_ATTRIBUTE;
- PObjectIdAttribute = ^TObjectIdAttribute;
- _VOLUME_INFORMATION = record
- Unknown: array[0..1] of ULONG;
- MajorVersion: UCHAR;
- MinorVersion: UCHAR;
- Flags: USHORT;
- end;
- VOLUME_INFORMATION = _VOLUME_INFORMATION;
- PVOLUME_INFORMATION = ^VOLUME_INFORMATION;
- TVolumeInformation = VOLUME_INFORMATION;
- PVolumeInformation = ^TVolumeInformation;
- _DIRECTORY_INDEX = record
- EntriesOffset: ULONG;
- IndexBlockLength: ULONG;
- AllocatedSize: ULONG;
- Flags: ULONG; // 0x00 = Small directory, 0x01 = Large directory
- end;
- DIRECTORY_INDEX = _DIRECTORY_INDEX;
- PDIRECTORY_INDEX = ^DIRECTORY_INDEX;
- TDirectoryIndex = DIRECTORY_INDEX;
- PDirectoryIndex = ^TDirectoryIndex;
- _DIRECTORY_ENTRY = record
- FileReferenceNumber: ULONGLONG;
- Length: USHORT;
- AttributeLength: USHORT;
- Flags: ULONG; // 0x01 = Has trailing VCN, 0x02 = Last entry
- // FILENAME_ATTRIBUTE Name;
- // ULONGLONG Vcn; // VCN in IndexAllocation of earlier entries
- end;
- DIRECTORY_ENTRY = _DIRECTORY_ENTRY;
- PDIRECTORY_ENTRY = ^DIRECTORY_ENTRY;
- TDirectoryEntry = DIRECTORY_ENTRY;
- PDirectoryEntry = ^TDirectoryEntry;
- _INDEX_ROOT = record
- Type_: ATTRIBUTE_TYPE;
- CollationRule: ULONG;
- BytesPerIndexBlock: ULONG;
- ClustersPerIndexBlock: ULONG;
- DirectoryIndex: DIRECTORY_INDEX;
- end;
- INDEX_ROOT = _INDEX_ROOT;
- PINDEX_ROOT = ^INDEX_ROOT;
- TIndexRoot = INDEX_ROOT;
- PIndexRoot = ^TIndexRoot;
- _INDEX_BLOCK_HEADER = record
- Ntfs: NTFS_RECORD_HEADER;
- IndexBlockVcn: ULONGLONG;
- DirectoryIndex: DIRECTORY_INDEX;
- end;
- INDEX_BLOCK_HEADER = _INDEX_BLOCK_HEADER;
- PINDEX_BLOCK_HEADER = ^INDEX_BLOCK_HEADER;
- TIndexBlockHeader = _INDEX_BLOCK_HEADER;
- PIndexBlockHeader = ^TIndexBlockHeader;
- _REPARSE_POINT = record
- ReparseTag: ULONG;
- ReparseDataLength: USHORT;
- Reserved: USHORT;
- ReparseData: array[0..0] of UCHAR;
- end;
- REPARSE_POINT = _REPARSE_POINT;
- PREPARSE_POINT = ^REPARSE_POINT;
- TReparsePoint = REPARSE_POINT;
- PReparsePoint = ^TReparsePoint;
- _EA_INFORMATION = record
- EaLength: ULONG;
- EaQueryLength: ULONG;
- end;
- EA_INFORMATION = _EA_INFORMATION;
- PEA_INFORMATION = ^EA_INFORMATION;
- TEaInformation = EA_INFORMATION;
- PEaInformation = ^TEaInformation;
- _EA_ATTRIBUTE = record
- NextEntryOffset: ULONG;
- Flags: UCHAR;
- EaNameLength: UCHAR;
- EaValueLength: USHORT;
- EaName: array[0..0] of CHAR;
- // UCHAR EaData[];
- end;
- EA_ATTRIBUTE = _EA_ATTRIBUTE;
- PEA_ATTRIBUTE = ^EA_ATTRIBUTE;
- TEaAttribute = EA_ATTRIBUTE;
- PEaAttribute = ^TEaAttribute;
- _ATTRIBUTE_DEFINITION = record
- AttributeName: array[0..63] of WCHAR;
- AttributeNumber: ULONG;
- Unknown: array[0..1] of ULONG;
- Flags: ULONG;
- MinimumSize: ULONGLONG;
- MaximumSize: ULONGLONG;
- end;
- ATTRIBUTE_DEFINITION = _ATTRIBUTE_DEFINITION;
- PATTRIBUTE_DEFINITION = ^ATTRIBUTE_DEFINITION;
- TAttributeDefinition = ATTRIBUTE_DEFINITION;
- PAttributeDefinition = ^TAttributeDefinition;
- _BOOT_BLOCK = record
- Jump: array[0..2] of UCHAR;
- Format: array[0..7] of UCHAR;
- BytesPerSector: USHORT;
- SectorsPerCluster: UCHAR;
- BootSectors: USHORT;
- Mbz1: UCHAR;
- Mbz2: USHORT;
- Reserved1: USHORT;
- MediaType: UCHAR;
- Mbz3: USHORT;
- SectorsPerTrack: USHORT;
- NumberOfHeads: USHORT;
- PartitionOffset: ULONG;
- Reserved2: array[0..1] of ULONG;
- TotalSectors: ULONGLONG;
- MftStartLcn: ULONGLONG;
- Mft2StartLcn: ULONGLONG;
- ClustersPerFileRecord: ULONG;
- ClustersPerIndexBlock: ULONG;
- VolumeSerialNumber: ULONGLONG;
- Code: array[0..$1AD] of UCHAR;
- BootSignature: USHORT;
- end;
- BOOT_BLOCK = _BOOT_BLOCK;
- PBOOT_BLOCK = ^BOOT_BLOCK;
- TBootBlock = BOOT_BLOCK;
- PBootBlock = ^TBootBlock;
- const
- DBG_STATUS_CONTROL_C = 1;
- DBG_STATUS_SYSRQ = 2;
- DBG_STATUS_BUGCHECK_FIRST = 3;
- DBG_STATUS_BUGCHECK_SECOND = 4;
- DBG_STATUS_FATAL = 5;
- DBG_STATUS_DEBUG_CONTROL = 6;
- //function DbgPrint(Format: PCH; ...): ULONG; cdecl;
- //function DbgPrintReturnControlC(Format: PCH; ...): ULONG; cdecl;
- //==============================================================================
- // Runtime Library
- //==============================================================================
- const
- RTL_RANGE_LIST_ADD_IF_CONFLICT = $00000001;
- RTL_RANGE_LIST_ADD_SHARED = $00000002;
- const
- RTL_RANGE_LIST_SHARED_OK = $00000001;
- RTL_RANGE_LIST_NULL_CONFLICT_OK = $00000002;
- type
- PRTL_CONFLICT_RANGE_CALLBACK = function(Context: PVOID; Range: PRTL_RANGE): ByteBool; stdcall;
- {$IFNDEF JWA_INCLUDEMODE}
- type
- _OSVERSIONINFOW = record
- dwOSVersionInfoSize: ULONG;
- dwMajorVersion: ULONG;
- dwMinorVersion: ULONG;
- dwBuildNumber: ULONG;
- dwPlatformId: ULONG;
- szCSDVersion: array[0..127] of WCHAR; // Maintenance string for PSS usage
- end;
- OSVERSIONINFOW = _OSVERSIONINFOW;
- POSVERSIONINFOW = ^OSVERSIONINFOW;
- LPOSVERSIONINFOW = ^OSVERSIONINFOW;
- RTL_OSVERSIONINFOW = OSVERSIONINFOW;
- {$ENDIF JWA_INCLUDEMODE}
- PRTL_OSVERSIONINFOW = ^OSVERSIONINFOW;
- {$IFNDEF JWA_INCLUDEMODE}
- TOsVersionInfoW = OSVERSIONINFOW;
- //POsVersionInfoW = ^TOsVersionInfoW;
- OSVERSIONINFO = OSVERSIONINFOW;
- POSVERSIONINFO = POSVERSIONINFOW;
- LPOSVERSIONINFO = LPOSVERSIONINFOW;
- {$ENDIF JWA_INCLUDEMODE}
- {$IFNDEF JWA_INCLUDEMODE}
- const
- VER_PLATFORM_WIN32s = 0;
- VER_PLATFORM_WIN32_WINDOWS = 1;
- VER_PLATFORM_WIN32_NT = 2;
- {$ENDIF JWA_INCLUDEMODE}
- type
- _RTL_BITMAP = record
- SizeOfBitMap: ULONG; // Number of bits in bit map
- Buffer: PULONG; // Pointer to the bit map itself
- end;
- RTL_BITMAP = _RTL_BITMAP;
- PRTL_BITMAP = ^RTL_BITMAP;
- TRtlBitmap = RTL_BITMAP;
- PRtlBitmap = ^TRtlBitmap;
- const
- RTL_REGISTRY_ABSOLUTE = 0; // Path is a full path
- RTL_REGISTRY_SERVICES = 1; // \Registry\Machine\System\CurrentControlSet\Services
- RTL_REGISTRY_CONTROL = 2; // \Registry\Machine\System\CurrentControlSet\Control
- RTL_REGISTRY_WINDOWS_NT = 3; // \Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion
- RTL_REGISTRY_DEVICEMAP = 4; // \Registry\Machine\Hardware\DeviceMap
- RTL_REGISTRY_USER = 5; // \Registry\User\CurrentUser
- RTL_REGISTRY_MAXIMUM = 6;
- RTL_REGISTRY_HANDLE = $40000000; // Low order bits are registry handle
- RTL_REGISTRY_OPTIONAL = $80000000; // Indicates the key node is optional
- type
- _TIME_FIELDS = record
- Year: CSHORT; // range [1601...]
- Month: CSHORT; // range [1..12]
- Day: CSHORT; // range [1..31]
- Hour: CSHORT; // range [0..23]
- Minute: CSHORT; // range [0..59]
- Second: CSHORT; // range [0..59]
- Milliseconds: CSHORT; // range [0..999]
- Weekday: CSHORT; // range [0..6] == [Sunday..Saturday]
- end;
- TIME_FIELDS = _TIME_FIELDS;
- PTIME_FIELDS = ^TIME_FIELDS;
- TTimeFields = TIME_FIELDS;
- PTimeFields = ^TTimeFields;
- {$IFNDEF JWA_INCLUDEMODE}
- type
- _OSVERSIONINFOEXW = record
- dwOSVersionInfoSize: ULONG;
- dwMajorVersion: ULONG;
- dwMinorVersion: ULONG;
- dwBuildNumber: ULONG;
- dwPlatformId: ULONG;
- szCSDVersion: array[0..127] of WCHAR; // Maintenance string for PSS usage
- wServicePackMajor: USHORT;
- wServicePackMinor: USHORT;
- wSuiteMask: USHORT;
- wProductType: UCHAR;
- wReserved: UCHAR;
- end;
- OSVERSIONINFOEXW = _OSVERSIONINFOEXW;
- POSVERSIONINFOEXW = ^OSVERSIONINFOEXW;
- LPOSVERSIONINFOEXW = ^OSVERSIONINFOEXW;
- RTL_OSVERSIONINFOEXW = OSVERSIONINFOEXW;
- PRTL_OSVERSIONINFOEXW = ^OSVERSIONINFOEXW;
- TOsVersionInfoExW = OSVERSIONINFOEXW;
- //POsVersionInfoExW = ^TOsVersionInfoExW;
- OSVERSIONINFOEX = OSVERSIONINFOEXW;
- POSVERSIONINFOEX = POSVERSIONINFOEXW;
- LPOSVERSIONINFOEX = LPOSVERSIONINFOEXW;
- {$ENDIF JWA_INCLUDEMODE}
- //
- // RtlVerifyVersionInfo() conditions
- //
- const
- {$IFNDEF JWA_INCLUDEMODE}
- VER_EQUAL = 1;
- VER_GREATER = 2;
- VER_GREATER_EQUAL = 3;
- VER_LESS = 4;
- VER_LESS_EQUAL = 5;
- VER_AND = 6;
- VER_OR = 7;
- VER_CONDITION_MASK = 7;
- VER_NUM_BITS_PER_CONDITION_MASK = 3;
- //
- // RtlVerifyVersionInfo() type mask bits
- //
- VER_MINORVERSION = $0000001;
- VER_MAJORVERSION = $0000002;
- VER_BUILDNUMBER = $0000004;
- VER_PLATFORMID = $0000008;
- VER_SERVICEPACKMINOR = $0000010;
- VER_SERVICEPACKMAJOR = $0000020;
- VER_SUITENAME = $0000040;
- VER_PRODUCT_TYPE = $0000080;
- //
- // RtlVerifyVersionInfo() os product type values
- //
- VER_NT_WORKSTATION = $0000001;
- VER_NT_DOMAIN_CONTROLLER = $0000002;
- VER_NT_SERVER = $0000003;
- {$ENDIF JWA_INCLUDEMODE}
- //
- // Related constant(s) for RtlDetermineDosPathNameType_U()
- //
- INVALID_PATH = 0;
- UNC_PATH = 1;
- ABSOLUTE_DRIVE_PATH = 2;
- RELATIVE_DRIVE_PATH = 3;
- ABSOLUTE_PATH = 4;
- RELATIVE_PATH = 5;
- DEVICE_PATH = 6;
- UNC_DOT_PATH = 7;
- type
- PRTL_QUERY_REGISTRY_ROUTINE = function(ValueName: PWSTR; ValueType: ULONG;
- ValueData: PVOID; ValueLength: ULONG; Context, EntryContext: PVOID): NTSTATUS; stdcall;
- _RTL_QUERY_REGISTRY_TABLE = record
- QueryRoutine: PRTL_QUERY_REGISTRY_ROUTINE;
- Flags: ULONG;
- Name: PWSTR;
- EntryContext: PVOID;
- DefaultType: ULONG;
- DefaultData: PVOID;
- DefaultLength: ULONG;
- end;
- RTL_QUERY_REGISTRY_TABLE = _RTL_QUERY_REGISTRY_TABLE;
- PRTL_QUERY_REGISTRY_TABLE = ^RTL_QUERY_REGISTRY_TABLE;
- TRtlQueryRegistryTable = RTL_QUERY_REGISTRY_TABLE;
- PRtlQueryRegistryTable = ^TRtlQueryRegistryTable;
- REFGUID = ^GUID;
- TRefGuid = REFGUID;
- {$IFNDEF JWA_INCLUDEMODE}
- const
- // Should be defined, but isn't
- HEAP_ZERO_MEMORY = $00000008;
- {$ENDIF JWA_INCLUDEMODE}
- type
- // =================================================================
- // PROCESS ENVIRONMENT BLOCK (PEB)
- // =================================================================
- // Verified in XP using WinDbg
- _LDR_DATA_TABLE_ENTRY = record // not packed!
- case Integer of
- (* *)0: (
- (*000*)InLoadOrderLinks: LIST_ENTRY
- );
- (* *)1: (
- (*000*)InMemoryOrderLinks: LIST_ENTRY
- );
- (* *)2: (
- (*000*)InInitializationOrderLinks: LIST_ENTRY;
- (*008*)DllBase: PVOID;
- (*00c*)EntryPoint: PVOID;
- (*010*)SizeOfImage: ULONG;
- (*014*)FullDllName: UNICODE_STRING;
- (*01c*)BaseDllName: UNICODE_STRING;
- (*024*)Flags: ULONG;
- (*028*)LoadCount: USHORT;
- (*02a*)TlsIndex: USHORT;
- (*02c*)HashLinks: LIST_ENTRY;
- (*034*)SectionPointer: PVOID;
- (*038*)CheckSum: ULONG;
- (*03C*)TimeDateStamp: ULONG;
- (*040*)LoadedImports: PVOID;
- (*044*)EntryPointActivationContext: PVOID; // PACTIVATION_CONTEXT
- (*048*)PatchInformation: PVOID;
- )
- end;
- LDR_DATA_TABLE_ENTRY = _LDR_DATA_TABLE_ENTRY;
- PLDR_DATA_TABLE_ENTRY = ^_LDR_DATA_TABLE_ENTRY;
- PPLDR_DATA_TABLE_ENTRY = ^PLDR_DATA_TABLE_ENTRY;
- TLdrDataTableEntry = _LDR_DATA_TABLE_ENTRY;
- PLdrDataTableEntry = ^_LDR_DATA_TABLE_ENTRY;
- // Verified in XP using WinDbg
- _PEB_LDR_DATA = record // not packed!
- (*000*)Length: ULONG;
- (*004*)Initialized: BOOLEAN;
- (*008*)SsHandle: PVOID;
- (*00c*)InLoadOrderModuleList: LIST_ENTRY;
- (*014*)InMemoryOrderModuleList: LIST_ENTRY;
- (*01c*)InInitializationOrderModuleList: LIST_ENTRY;
- (*024*)EntryInProgress: PVOID;
- end;
- PEB_LDR_DATA = _PEB_LDR_DATA;
- PPEB_LDR_DATA = ^_PEB_LDR_DATA;
- PPPEB_LDR_DATA = ^PPEB_LDR_DATA;
- TPebLdrData = _PEB_LDR_DATA;
- PPebLdrData = ^_PEB_LDR_DATA;
- // Verified in XP using WinDbg
- _RTL_DRIVE_LETTER_CURDIR = record // not packed!
- (*000*)Flags: USHORT;
- (*002*)Length: USHORT;
- (*004*)TimeStamp: ULONG;
- (*008*)DosPath: _STRING;
- end;
- RTL_DRIVE_LETTER_CURDIR = _RTL_DRIVE_LETTER_CURDIR;
- PRTL_DRIVE_LETTER_CURDIR = ^_RTL_DRIVE_LETTER_CURDIR;
- PPRTL_DRIVE_LETTER_CURDIR = ^PRTL_DRIVE_LETTER_CURDIR;
- TRtlDriveLetterCurdir = _RTL_DRIVE_LETTER_CURDIR;
- PRtlDriveLetterCurdir = ^_RTL_DRIVE_LETTER_CURDIR;
- _CURDIR = record // not packed!
- (*000*)DosPath: UNICODE_STRING;
- (*008*)Handle: HANDLE;
- end;
- CURDIR = _CURDIR;
- PCURDIR = ^_CURDIR;
- PPCURDIR = ^PCURDIR;
- TCurdir = _CURDIR;
- // PCurdir = ^_CURDIR; // <--- Pascal is case-insensitive
- // Verified in XP using WinDbg
- _RTL_USER_PROCESS_PARAMETERS = record // not packed!
- (*000*)MaximumLength: ULONG;
- (*004*)Length: ULONG;
- (*008*)Flags: ULONG; // Bit 0: all pointers normalized
- (*00c*)DebugFlags: ULONG;
- (*010*)ConsoleHandle: HANDLE;
- (*014*)ConsoleFlags: ULONG;
- (*018*)StandardInput: HANDLE;
- (*01c*)StandardOutput: HANDLE;
- (*020*)StandardError: HANDLE;
- (*024*)CurrentDirectory: CURDIR;
- (*030*)DllPath: UNICODE_STRING;
- (*038*)ImagePathName: UNICODE_STRING;
- (*040*)CommandLine: UNICODE_STRING;
- (*048*)Environment: PVOID;
- (*04c*)StartingX: ULONG;
- (*050*)StartingY: ULONG;
- (*054*)CountX: ULONG;
- (*058*)CountY: ULONG;
- (*05c*)CountCharsX: ULONG;
- (*060*)CountCharsY: ULONG;
- (*064*)FillAttribute: ULONG;
- (*068*)WindowFlags: ULONG;
- (*06c*)ShowWindowFlags: ULONG;
- (*070*)WindowTitle: UNICODE_STRING;
- (*078*)DesktopInfo: UNICODE_STRING;
- (*080*)ShellInfo: UNICODE_STRING;
- (*088*)RuntimeData: UNICODE_STRING;
- (*090*)CurrentDirectories: array[0..31] of RTL_DRIVE_LETTER_CURDIR;
- end;
- RTL_USER_PROCESS_PARAMETERS = _RTL_USER_PROCESS_PARAMETERS;
- PRTL_USER_PROCESS_PARAMETERS = ^_RTL_USER_PROCESS_PARAMETERS;
- PPRTL_USER_PROCESS_PARAMETERS = ^PRTL_USER_PROCESS_PARAMETERS;
- TRtlUserProcessParameters = _RTL_USER_PROCESS_PARAMETERS;
- PRtlUserProcessParameters = ^_RTL_USER_PROCESS_PARAMETERS;
- TProcessParameters = _RTL_USER_PROCESS_PARAMETERS;
- PProcessParameters = ^_RTL_USER_PROCESS_PARAMETERS;
- _SYSTEM_STRINGS = record // not packed!
- (*000*)SystemRoot: UNICODE_STRING; // %SystemRoot%
- (*008*)System32Root: UNICODE_STRING; // %SystemRoot%\System32
- (*010*)BaseNamedObjects: UNICODE_STRING; // \BaseNamedObjects
- end;
- SYSTEM_STRINGS = _SYSTEM_STRINGS;
- PSYSTEM_STRINGS = ^_SYSTEM_STRINGS;
- PPSYSTEM_STRINGS = ^PSYSTEM_STRINGS;
- TSystemStrings = _SYSTEM_STRINGS;
- PSystemStrings = ^_SYSTEM_STRINGS;
- // Verified in XP using WinDbg
- _TEXT_INFO = record // not packed!
- (*000*)Reserved: PVOID;
- (*004*)SystemStrings: PSYSTEM_STRINGS;
- end;
- TEXT_INFO = _TEXT_INFO;
- PTEXT_INFO = ^_TEXT_INFO;
- PPTEXT_INFO = ^PTEXT_INFO;
- TTextInfo = _TEXT_INFO;
- PTextInfo = ^_TEXT_INFO;
- // Verified in XP using WinDbg
- PPEB_FREE_BLOCK = ^_PEB_FREE_BLOCK;
- _PEB_FREE_BLOCK = record // not packed!
- (*000*)Next: PPEB_FREE_BLOCK;
- (*004*)Size: ULONG;
- end;
- PEB_FREE_BLOCK = _PEB_FREE_BLOCK;
- PPPEB_FREE_BLOCK = ^PPEB_FREE_BLOCK;
- TPebFreeBlock = _PEB_FREE_BLOCK;
- PPebFreeBlock = ^_PEB_FREE_BLOCK;
- // Verified in W2K, WXP and W2K3 using WinDbg
- _PEB_W2K = packed record // packed!
- (*000*)InheritedAddressSpace: BOOLEAN;
- (*001*)ReadImageFileExecOptions: BOOLEAN;
- (*002*)BeingDebugged: BOOLEAN;
- (*003*)SpareBool: BOOLEAN;
- (*004*)Mutant: PVOID;
- (*008*)ImageBaseAddress: PVOID;
- (*00c*)Ldr: PPEB_LDR_DATA;
- (*010*)ProcessParameters: PRTL_USER_PROCESS_PARAMETERS;
- (*014*)SubSystemData: PVOID;
- (*018*)ProcessHeap: PVOID;
- (*01c*)FastPebLock: PRTL_CRITICAL_SECTION;
- (*020*)FastPebLockRoutine: PVOID; // RtlEnterCriticalSection
- (*024*)FastPebUnlockRoutine: PVOID; // RtlLeaveCriticalSection
- (*028*)EnvironmentUpdateCount: ULONG;
- (*02c*)KernelCallbackTable: PPVOID; // List of callback functions
- (*030*)SystemReserved: array[0..0] of ULONG;
- (*034*)d034: ULONG;
- (*038*)FreeList: PPEB_FREE_BLOCK;
- (*03c*)TlsExpansionCounter: ULONG;
- (*040*)TlsBitmap: PVOID; // ntdll!TlsBitMap of type PRTL_BITMAP
- (*044*)TlsBitmapBits: array[0..1] of ULONG; // 64 bits
- (*04c*)ReadOnlySharedMemoryBase: PVOID;
- (*050*)ReadOnlySharedMemoryHeap: PVOID;
- (*054*)ReadOnlyStaticServerData: PTEXT_INFO;
- (*058*)AnsiCodePageData: PVOID;
- (*05c*)OemCodePageData: PVOID;
- (*060*)UnicodeCaseTableData: PVOID;
- (*064*)NumberOfProcessors: ULONG;
- (*068*)NtGlobalFlag: ULONG;
- (*06C*)Unknown01: ULONG; // Padding or something
- (*070*)CriticalSectionTimeout: LARGE_INTEGER;
- (*078*)HeapSegmentReserve: ULONG;
- (*07c*)HeapSegmentCommit: ULONG;
- (*080*)HeapDeCommitTotalFreeThreshold: ULONG;
- (*084*)HeapDeCommitFreeBlockThreshold: ULONG;
- (*088*)NumberOfHeaps: ULONG;
- (*08c*)MaximumNumberOfHeaps: ULONG;
- (*090*)ProcessHeaps: PPVOID;
- (*094*)GdiSharedHandleTable: PPVOID;
- (*098*)ProcessStarterHelper: PVOID;
- (*09c*)GdiDCAttributeList: ULONG;
- (*0a0*)LoaderLock: PCRITICAL_SECTION;
- (*0a4*)OSMajorVersion: ULONG;
- (*0a8*)OSMinorVersion: ULONG;
- (*0ac*)OSBuildNumber: USHORT;
- (*0ae*)OSCSDVersion: USHORT;
- (*0b0*)OSPlatformId: ULONG;
- (*0b4*)ImageSubsystem: ULONG;
- (*0b8*)ImageSubsystemMajorVersion: ULONG;
- (*0bc*)ImageSubsystemMinorVersion: ULONG;
- (*0c0*)ImageProcessAffinityMask: ULONG;
- (*0c4*)GdiHandleBuffer: array[0..33] of HANDLE;
- (*14c*)PostProcessInitRoutine: PVOID;
- (*150*)TlsExpansionBitmap: PVOID;
- (*154*)TlsExpansionBitmapBits: array[0..31] of ULONG;
- (*1d4*)SessionId: ULONG;
- // Windows 2000
- (*1d8*)AppCompatInfo: PVOID;
- (*1dc*)CSDVersion: UNICODE_STRING;
- end;
- // Verified in W2K, WXP and W2K3 using WinDbg
- _PEB_WXP = packed record // packed!
- (*000*)InheritedAddressSpace: BOOLEAN;
- (*001*)ReadImageFileExecOptions: BOOLEAN;
- (*002*)BeingDebugged: BOOLEAN;
- (*003*)SpareBool: BOOLEAN;
- (*004*)Mutant: PVOID;
- (*008*)ImageBaseAddress: PVOID;
- (*00c*)Ldr: PPEB_LDR_DATA;
- (*010*)ProcessParameters: PRTL_USER_PROCESS_PARAMETERS;
- (*014*)SubSystemData: PVOID;
- (*018*)ProcessHeap: PVOID;
- (*01c*)FastPebLock: PRTL_CRITICAL_SECTION;
- (*020*)FastPebLockRoutine: PVOID; // RtlEnterCriticalSection
- (*024*)FastPebUnlockRoutine: PVOID; // RtlLeaveCriticalSection
- (*028*)EnvironmentUpdateCount: ULONG;
- (*02c*)KernelCallbackTable: PPVOID; // List of callback functions
- (*030*)SystemReserved: array[0..0] of ULONG;
- (*034*)AtlThunkSListPtr32: PVOID; // (Windows XP)
- (*038*)FreeList: PPEB_FREE_BLOCK;
- (*03c*)TlsExpansionCounter: ULONG;
- (*040*)TlsBitmap: PVOID; // ntdll!TlsBitMap of type PRTL_BITMAP
- (*044*)TlsBitmapBits: array[0..1] of ULONG; // 64 bits
- (*04c*)ReadOnlySharedMemoryBase: PVOID;
- (*050*)ReadOnlySharedMemoryHeap: PVOID;
- (*054*)ReadOnlyStaticServerData: PTEXT_INFO;
- (*058*)AnsiCodePageData: PVOID;
- (*05c*)OemCodePageData: PVOID;
- (*060*)UnicodeCaseTableData: PVOID;
- (*064*)NumberOfProcessors: ULONG;
- (*068*)NtGlobalFlag: ULONG;
- (*06C*)Unknown01: ULONG; // Padding or something
- (*070*)CriticalSectionTimeout: LARGE_INTEGER;
- (*078*)HeapSegmentReserve: ULONG;
- (*07c*)HeapSegmentCommit: ULONG;
- (*080*)HeapDeCommitTotalFreeThreshold: ULONG;
- (*084*)HeapDeCommitFreeBlockThreshold: ULONG;
- (*088*)NumberOfHeaps: ULONG;
- (*08c*)MaximumNumberOfHeaps: ULONG;
- (*090*)ProcessHeaps: PPVOID;
- (*094*)GdiSharedHandleTable: PPVOID;
- (*098*)ProcessStarterHelper: PVOID;
- (*09c*)GdiDCAttributeList: ULONG;
- (*0a0*)LoaderLock: PCRITICAL_SECTION;
- (*0a4*)OSMajorVersion: ULONG;
- (*0a8*)OSMinorVersion: ULONG;
- (*0ac*)OSBuildNumber: USHORT;
- (*0ae*)OSCSDVersion: USHORT;
- (*0b0*)OSPlatformId: ULONG;
- (*0b4*)ImageSubsystem: ULONG;
- (*0b8*)ImageSubsystemMajorVersion: ULONG;
- (*0bc*)ImageSubsystemMinorVersion: ULONG;
- (*0c0*)ImageProcessAffinityMask: ULONG;
- (*0c4*)GdiHandleBuffer: array[0..33] of HANDLE;
- (*14c*)PostProcessInitRoutine: PVOID;
- (*150*)TlsExpansionBitmap: PVOID;
- (*154*)TlsExpansionBitmapBits: array[0..31] of ULONG;
- (*1d4*)SessionId: ULONG;
- // Windows XP
- (*1d8*)AppCompatFlags: ULARGE_INTEGER;
- (*1e0*)AppCompatFlagsUser: ULARGE_INTEGER;
- (*1e8*)pShimData: PVOID;
- (*1ec*)AppCompatInfo: PVOID;
- (*1f0*)CSDVersion: UNICODE_STRING;
- (*1f8*)ActivationContextData: PVOID; // PACTIVATION_CONTEXT_DATA
- (*1fc*)ProcessAssemblyStorageMap: PVOID; // PASSEMBLY_STORAGE_MAP
- (*200*)SystemDefaultActivationContextData: PVOID; // PACTIVATION_CONTEXT_DATA
- (*204*)SystemAssemblyStorageMap: PVOID; // PASSEMBLY_STORAGE_MAP
- (*208*)MinimumStackCommit: ULONG;
- end;
- // Verified in W2K, WXP and W2K3 using WinDbg
- _PEB_2K3 = packed record // packed!
- (*000*)InheritedAddressSpace: BOOLEAN;
- (*001*)ReadImageFileExecOptions: BOOLEAN;
- (*002*)BeingDebugged: BOOLEAN;
- (*003*)SpareBool: BOOLEAN;
- (*004*)Mutant: PVOID;
- (*008*)ImageBaseAddress: PVOID;
- (*00c*)Ldr: PPEB_LDR_DATA;
- (*010*)ProcessParameters: PRTL_USER_PROCESS_PARAMETERS;
- (*014*)SubSystemData: PVOID;
- (*018*)ProcessHeap: PVOID;
- (*01c*)FastPebLock: PRTL_CRITICAL_SECTION;
- (*020*)FastPebLockRoutine: PVOID; // RtlEnterCriticalSection
- (*024*)FastPebUnlockRoutine: PVOID; // RtlLeaveCriticalSection
- (*028*)EnvironmentUpdateCount: ULONG;
- (*02c*)KernelCallbackTable: PPVOID; // List of callback functions
- (*030*)SystemReserved: array[0..0] of ULONG;
- (*034*)ExecuteOptions: ULONG; // 2 Bits used (Windows 2003)
- (*038*)FreeList: PPEB_FREE_BLOCK;
- (*03c*)TlsExpansionCounter: ULONG;
- (*040*)TlsBitmap: PVOID; // ntdll!TlsBitMap of type PRTL_BITMAP
- (*044*)TlsBitmapBits: array[0..1] of ULONG; // 64 bits
- (*04c*)ReadOnlySharedMemoryBase: PVOID;
- (*050*)ReadOnlySharedMemoryHeap: PVOID;
- (*054*)ReadOnlyStaticServerData: PTEXT_INFO;
- (*058*)AnsiCodePageData: PVOID;
- (*05c*)OemCodePageData: PVOID;
- (*060*)UnicodeCaseTableData: PVOID;
- (*064*)NumberOfProcessors: ULONG;
- (*068*)NtGlobalFlag: ULONG;
- (*06C*)Unknown01: ULONG; // Padding or something
- (*070*)CriticalSectionTimeout: LARGE_INTEGER;
- (*078*)HeapSegmentReserve: ULONG;
- (*07c*)HeapSegmentCommit: ULONG;
- (*080*)HeapDeCommitTotalFreeThreshold: ULONG;
- (*084*)HeapDeCommitFreeBlockThreshold: ULONG;
- (*088*)NumberOfHeaps: ULONG;
- (*08c*)MaximumNumberOfHeaps: ULONG;
- (*090*)ProcessHeaps: PPVOID;
- (*094*)GdiSharedHandleTable: PPVOID;
- (*098*)ProcessStarterHelper: PVOID;
- (*09c*)GdiDCAttributeList: ULONG;
- (*0a0*)LoaderLock: PCRITICAL_SECTION;
- (*0a4*)OSMajorVersion: ULONG;
- (*0a8*)OSMinorVersion: ULONG;
- (*0ac*)OSBuildNumber: USHORT;
- (*0ae*)OSCSDVersion: USHORT;
- (*0b0*)OSPlatformId: ULONG;
- (*0b4*)ImageSubsystem: ULONG;
- (*0b8*)ImageSubsystemMajorVersion: ULONG;
- (*0bc*)ImageSubsystemMinorVersion: ULONG;
- (*0c0*)ImageProcessAffinityMask: ULONG;
- (*0c4*)GdiHandleBuffer: array[0..33] of HANDLE;
- (*14c*)PostProcessInitRoutine: PVOID;
- (*150*)TlsExpansionBitmap: PVOID;
- (*154*)TlsExpansionBitmapBits: array[0..31] of ULONG;
- (*1d4*)SessionId: ULONG;
- // Windows XP
- (*1d8*)AppCompatFlags: ULARGE_INTEGER;
- (*1e0*)AppCompatFlagsUser: ULARGE_INTEGER;
- (*1e8*)pShimData: PVOID;
- (*1ec*)AppCompatInfo: PVOID;
- (*1f0*)CSDVersion: UNICODE_STRING;
- (*1f8*)ActivationContextData: PVOID; // PACTIVATION_CONTEXT_DATA
- (*1fc*)ProcessAssemblyStorageMap: PVOID; // PASSEMBLY_STORAGE_MAP
- (*200*)SystemDefaultActivationContextData: PVOID; // PACTIVATION_CONTEXT_DATA
- (*204*)SystemAssemblyStorageMap: PVOID; // PASSEMBLY_STORAGE_MAP
- (*208*)MinimumStackCommit: ULONG;
- // New members in Windows 2003
- (*20c*)FlsCallback: PPVOID;
- (*210*)FlsListHead: LIST_ENTRY;
- (*218*)FlsBitmap: PVOID;
- (*21c*)FlsBitmapBits: array[0..3] of ULONG;
- (*22c*)FlsHighIndex: ULONG;
- end;
- {$IFDEF WINNT4}
- _PEB = _PEB_W2K; // Exact layout for NT4 unknown
- {$ENDIF WINNT4}
- {$IFDEF WIN2000}
- _PEB = _PEB_W2K;
- {$ENDIF WIN2000}
- {$IFDEF WINXP}
- _PEB = _PEB_WXP;
- {$ENDIF WINXP}
- {$IFDEF WIN2003}
- _PEB = _PEB_2K3;
- {$ENDIF WIN2003}
- PEB = _PEB;
- PPEB = ^_PEB;
- PPPEB = ^PPEB;
- {$IFNDEF JWA_INCLUDEMODE}
- // =================================================================
- // THREAD ENVIRONMENT BLOCK (TEB)
- // =================================================================
- PNT_TIB = ^_NT_TIB;
- _NT_TIB = record
- ExceptionList: Pointer; // ^_EXCEPTION_REGISTRATION_RECORD
- StackBase,
- StackLimit,
- SubSystemTib: Pointer;
- case Integer of
- 0: (
- FiberData: Pointer
- );
- 1: (
- Version: ULONG;
- ArbitraryUserPointer: Pointer;
- Self: PNT_TIB;
- )
- end;
- NT_TIB = _NT_TIB;
- {$ENDIF JWA_INCLUDEMODE}
- PPNT_TIB = ^PNT_TIB;
- tagACTCTX = record // not packed!
- (*000*)cbSize: ULONG;
- (*004*)dwFlags: DWORD;
- (*008*)lpSource: LPCWSTR;
- (*00C*)wProcessorArchitecture: USHORT;
- (*00E*)wLangId: LANGID;
- (*010*)lpAssemblyDirectory: LPCTSTR;
- (*014*)lpResourceName: LPCTSTR;
- (*018*)lpApplicationName: LPCTSTR;
- (*01C*)hModule: HMODULE;
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- ACTCTX = tagACTCTX;
- PACTCTX = ^tagACTCTX;
- {$ENDIF JWA_INCLUDEMODE}
- ACTIVATION_CONTEXT = tagACTCTX;
- PACTIVATION_CONTEXT = ^tagACTCTX;
- PPACTIVATION_CONTEXT = ^PACTIVATION_CONTEXT;
- PRTL_ACTIVATION_CONTEXT_STACK_FRAME = ^_RTL_ACTIVATION_CONTEXT_STACK_FRAME;
- _RTL_ACTIVATION_CONTEXT_STACK_FRAME = record // not packed!
- (*000*)Previous: PRTL_ACTIVATION_CONTEXT_STACK_FRAME;
- (*004*)ActivationContext: PACTIVATION_CONTEXT;
- (*008*)Flags: ULONG;
- end;
- RTL_ACTIVATION_CONTEXT_STACK_FRAME = _RTL_ACTIVATION_CONTEXT_STACK_FRAME;
- PPRTL_ACTIVATION_CONTEXT_STACK_FRAME = ^PRTL_ACTIVATION_CONTEXT_STACK_FRAME;
- // Verified in XP using WinDbg
- _ACTIVATION_CONTEXT_STACK = record // not packed!
- (*000*)Flags: ULONG;
- (*004*)NextCookieSequenceNumber: ULONG;
- (*008*)ActiveFrame: PRTL_ACTIVATION_CONTEXT_STACK_FRAME;
- (*00c*)FrameListCache: LIST_ENTRY;
- end;
- ACTIVATION_CONTEXT_STACK = _ACTIVATION_CONTEXT_STACK;
- PACTIVATION_CONTEXT_STACK = ^_ACTIVATION_CONTEXT_STACK;
- PPACTIVATION_CONTEXT_STACK = ^PACTIVATION_CONTEXT_STACK;
- // Verified in XP using WinDbg
- _GDI_TEB_BATCH = record // not packed!
- (*000*)Offset: ULONG;
- (*004*)HDC: HANDLE;
- (*008*)Buffer: array[0..309] of ULONG;
- end;
- GDI_TEB_BATCH = _GDI_TEB_BATCH;
- PGDI_TEB_BATCH = ^_GDI_TEB_BATCH;
- PPGDI_TEB_BATCH = ^PGDI_TEB_BATCH;
- // Verified in XP using WinDbg
- _Wx86ThreadState = packed record // packed!
- (*000*)CallBx86Eip: PULONG;
- (*004*)DeallocationCpu: PVOID;
- (*008*)UseKnownWx86Dll: BOOLEAN;
- (*009*)OleStubInvoked: CHAR;
- end;
- Wx86ThreadState = _Wx86ThreadState;
- PWx86ThreadState = ^_Wx86ThreadState;
- PPWx86ThreadState = ^PWx86ThreadState;
- // Verified in XP using WinDbg
- _TEB_ACTIVE_FRAME_CONTEXT = record // not packed!
- (*000*)Flags: ULONG;
- (*004*)FrameName: PCHAR;
- end;
- TEB_ACTIVE_FRAME_CONTEXT = _TEB_ACTIVE_FRAME_CONTEXT;
- PTEB_ACTIVE_FRAME_CONTEXT = ^_TEB_ACTIVE_FRAME_CONTEXT;
- PPTEB_ACTIVE_FRAME_CONTEXT = ^PTEB_ACTIVE_FRAME_CONTEXT;
- // Verified in XP using WinDbg
- PTEB_ACTIVE_FRAME = ^_TEB_ACTIVE_FRAME;
- _TEB_ACTIVE_FRAME = record // not packed!
- (*000*)Flags: ULONG;
- (*004*)Previous: PTEB_ACTIVE_FRAME;
- (*008*)Context: PTEB_ACTIVE_FRAME_CONTEXT;
- end;
- TEB_ACTIVE_FRAME = _TEB_ACTIVE_FRAME;
- PPTEB_ACTIVE_FRAME = ^PTEB_ACTIVE_FRAME;
- // Verified in W2K, WXP and W2K3 using WinDbg
- _TEB = record // not packed!
- (*000*)NtTib: NT_TIB;
- (*01c*)EnvironmentPointer: PVOID;
- (*020*)ClientId: CLIENT_ID;
- (*028*)ActiveRpcHandle: PVOID;
- (*02c*)ThreadLocalStoragePointer: PVOID;
- (*030*)Peb: PPEB;
- (*034*)LastErrorValue: ULONG;
- (*038*)CountOfOwnedCriticalSections: ULONG;
- (*03c*)CsrClientThread: PVOID;
- (*040*)Win32ThreadInfo: PVOID;
- (*044*)User32Reserved: array[0..25] of ULONG;
- (*0ac*)UserReserved: array[0..4] of ULONG;
- (*0c0*)WOW32Reserved: PVOID;
- (*0c4*)CurrentLocale: LCID;
- (*0c8*)FpSoftwareStatusRegister: ULONG;
- (*0cc*)SystemReserved1: array[0..53] of PVOID;
- (*1a4*)ExceptionCode: LONG;
- (*1a8*)ActivationContextStack: ACTIVATION_CONTEXT_STACK;
- (*1bc*)SpareBytes1: array[0..23] of UCHAR;
- (*1d4*)GdiTebBatch: GDI_TEB_BATCH;
- (*6b4*)RealClientId: CLIENT_ID;
- (*6bc*)GdiCachedProcessHandle: PVOID;
- (*6c0*)GdiClientPID: ULONG;
- (*6c4*)GdiClientTID: ULONG;
- (*6c8*)GdiThreadLocalInfo: PVOID;
- (*6cc*)Win32ClientInfo: array[0..61] of ULONG;
- (*7c4*)glDispatchTable: array[0..232] of PVOID;
- (*b68*)glReserved1: array[0..28] of ULONG;
- (*bdc*)glReserved2: PVOID;
- (*be0*)glSectionInfo: PVOID;
- (*be4*)glSection: PVOID;
- (*be8*)glTable: PVOID;
- (*bec*)glCurrentRC: PVOID;
- (*bf0*)glContext: PVOID;
- (*bf4*)LastStatusValue: ULONG;
- (*bf8*)StaticUnicodeString: UNICODE_STRING;
- (*c00*)StaticUnicodeBuffer: array[0..MAX_PATH] of WCHAR;
- (*e0a*)Padding: USHORT;
- (*e0c*)DeallocationStack: PVOID;
- (*e10*)TlsSlots: array[0..63] of PVOID;
- (*f10*)TlsLinks: LIST_ENTRY;
- (*f18*)Vdm: PVOID;
- (*f1c*)ReservedForNtRpc: PVOID;
- (*f20*)DbgSsReserved: array[0..1] of PVOID;
- case Integer of
- (* *)0: (
- (*f28*)HardErrorMode: ULONG // (Windows 2003)
- );
- (* *)1: (
- (*f28*)HardErrorsAreDisabled: ULONG; // (Windows XP)
- (*f2c*)Instrumentation: array[0..15] of PVOID;
- (*f6c*)WinSockData: PVOID;
- (*f70*)GdiBatchCount: ULONG;
- (*f74*)InDbgPrint: BOOLEAN;
- (*f75*)FreeStackOnTermination: BOOLEAN;
- (*f76*)HasFiberData: BOOLEAN;
- (*f77*)IdealProcessor: BOOLEAN;
- (*f78*)Spare3: ULONG;
- (*f7c*)ReservedForPerf: PVOID;
- (*f80*)ReservedForOle: PVOID;
- (*f84*)WaitingOnLoaderLock: PVOID;
- (*f88*)Wx86Thread: Wx86ThreadState;
- (*f94*)TlsExpansionSlots: PPVOID;
- (*f98*)ImpersonationLocale: LCID;
- (*f9c*)IsImpersonating: ULONG;
- (*fa0*)NlsCache: PVOID;
- (*fa4*)pShimData: PVOID;
- (*fa8*)HeapVirtualAffinity: ULONG;
- (*fac*)CurrentTransactionHandle: PVOID;
- (*fb0*)ActiveFrame: PTEB_ACTIVE_FRAME;
- case Integer of
- 0: (
- (*fb4*)SafeThunkCall: BOOLEAN; // Before Windows 2003
- (*fb5*)BooleanSpare: array[0..2] of BOOLEAN // Before Windows 2003
- );
- 1: (
- (*fb4*)FlsData: PVOID; // Starting with Windows 2003
- )
- )
- end;
- TEB = _TEB;
- PTEB = ^_TEB;
- PPTEB = ^PTEB;
- type
- _OBJECT_NAME_INFORMATION = record
- Name: UNICODE_STRING;
- end;
- OBJECT_NAME_INFORMATION = _OBJECT_NAME_INFORMATION;
- POBJECT_NAME_INFORMATION = ^OBJECT_NAME_INFORMATION;
- TObjectNameInformation = OBJECT_NAME_INFORMATION;
- PObjectNameInformation = ^OBJECT_NAME_INFORMATION;
- const
- NtCurrentProcess = HANDLE(-1);
- NtCurrentThread = HANDLE(-2);
- // Object Manager specific stuff
- OBJ_NAME_PATH_SEPARATOR = '\';
- // Object Manager Object Type Specific Access Rights.
- OBJECT_TYPE_CREATE = $0001;
- OBJECT_TYPE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or $1;
- // Object Manager Directory Specific Access Rights.
- DIRECTORY_QUERY = $0001;
- DIRECTORY_TRAVERSE = $0002;
- DIRECTORY_CREATE_OBJECT = $0004;
- DIRECTORY_CREATE_SUBDIRECTORY = $0008;
- DIRECTORY_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or $F;
- // Object Manager Symbolic Link Specific Access Rights.
- SYMBOLIC_LINK_QUERY = $0001;
- SYMBOLIC_LINK_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or $1;
- {$IFNDEF JWA_INCLUDEMODE}
- DUPLICATE_CLOSE_SOURCE = $00000001;
- DUPLICATE_SAME_ACCESS = $00000002;
- DUPLICATE_SAME_ATTRIBUTES = $00000004;
- {$ENDIF JWA_INCLUDEMODE}
- //
- // Define the access check value for any access
- //
- //
- // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
- // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
- // constants *MUST* always be in sync.
- //
- //
- // FILE_SPECIAL_ACCESS is checked by the NT I/O system the same as FILE_ANY_ACCESS.
- // The file systems, however, may add additional access checks for I/O and FS controls
- // that use this value.
- //
- {$IFNDEF JWA_INCLUDEMODE}
- FILE_ANY_ACCESS = 0;
- FILE_SPECIAL_ACCESS = FILE_ANY_ACCESS;
- FILE_READ_ACCESS = $0001; // file & pipe
- FILE_WRITE_ACCESS = $0002; // file & pipe
- //
- // Define share access rights to files and directories
- //
- FILE_SHARE_READ = $00000001; // JwaWindows.pas
- FILE_SHARE_WRITE = $00000002; // JwaWindows.pas
- FILE_SHARE_DELETE = $00000004; // JwaWindows.pas
- {$ENDIF JWA_INCLUDEMODE}
- FILE_SHARE_VALID_FLAGS = $00000007;
- //
- // Define the file attributes values
- //
- // Note: = $00000008 is reserved for use for the old DOS VOLID (volume ID)
- // and is therefore not considered valid in NT.
- //
- // Note: = $00000010 is reserved for use for the old DOS SUBDIRECTORY flag
- // and is therefore not considered valid in NT. This flag has
- // been disassociated with file attributes since the other flags are
- // protected with READ_ and WRITE_ATTRIBUTES access to the file.
- //
- // Note: Note also that the order of these flags is set to allow both the
- // FAT and the Pinball File Systems to directly set the attributes
- // flags in attributes words without having to pick each flag out
- // individually. The order of these flags should not be changed!
- //
- {$IFNDEF JWA_INCLUDEMODE}
- FILE_ATTRIBUTE_READONLY = $00000001; // JwaWindows.pas
- FILE_ATTRIBUTE_HIDDEN = $00000002; // JwaWindows.pas
- FILE_ATTRIBUTE_SYSTEM = $00000004; // JwaWindows.pas
- //OLD DOS VOLID = $00000008
- FILE_ATTRIBUTE_DIRECTORY = $00000010; // JwaWindows.pas
- FILE_ATTRIBUTE_ARCHIVE = $00000020; // JwaWindows.pas
- FILE_ATTRIBUTE_DEVICE = $00000040; // JwaWindows.pas
- FILE_ATTRIBUTE_NORMAL = $00000080; // JwaWindows.pas
- FILE_ATTRIBUTE_TEMPORARY = $00000100; // JwaWindows.pas
- FILE_ATTRIBUTE_SPARSE_FILE = $00000200; // JwaWindows.pas
- FILE_ATTRIBUTE_REPARSE_POINT = $00000400; // JwaWindows.pas
- FILE_ATTRIBUTE_COMPRESSED = $00000800; // JwaWindows.pas
- FILE_ATTRIBUTE_OFFLINE = $00001000; // JwaWindows.pas
- FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = $00002000; // JwaWindows.pas
- FILE_ATTRIBUTE_ENCRYPTED = $00004000; // JwaWindows.pas
- //
- // This definition is old and will disappear shortly
- //
- FILE_ATTRIBUTE_VALID_FLAGS = $00007FB7;
- FILE_ATTRIBUTE_VALID_SET_FLAGS = $000031A7;
- {$ENDIF JWA_INCLUDEMODE}
- //
- // Define the create disposition values
- //
- FILE_SUPERSEDE = $00000000;
- FILE_OPEN = $00000001;
- FILE_CREATE = $00000002;
- FILE_OPEN_IF = $00000003;
- FILE_OVERWRITE = $00000004;
- FILE_OVERWRITE_IF = $00000005;
- FILE_MAXIMUM_DISPOSITION = $00000005;
- //
- // Define the create/open option flags
- //
- FILE_DIRECTORY_FILE = $00000001;
- FILE_WRITE_THROUGH = $00000002;
- FILE_SEQUENTIAL_ONLY = $00000004;
- FILE_NO_INTERMEDIATE_BUFFERING = $00000008;
- FILE_SYNCHRONOUS_IO_ALERT = $00000010;
- FILE_SYNCHRONOUS_IO_NONALERT = $00000020;
- FILE_NON_DIRECTORY_FILE = $00000040;
- FILE_CREATE_TREE_CONNECTION = $00000080;
- FILE_COMPLETE_IF_OPLOCKED = $00000100;
- FILE_NO_EA_KNOWLEDGE = $00000200;
- FILE_OPEN_FOR_RECOVERY = $00000400;
- FILE_RANDOM_ACCESS = $00000800;
- FILE_DELETE_ON_CLOSE = $00001000;
- FILE_OPEN_BY_FILE_ID = $00002000;
- FILE_OPEN_FOR_BACKUP_INTENT = $00004000;
- FILE_NO_COMPRESSION = $00008000;
- FILE_RESERVE_OPFILTER = $00100000;
- FILE_OPEN_REPARSE_POINT = $00200000;
- FILE_OPEN_NO_RECALL = $00400000;
- FILE_OPEN_FOR_FREE_SPACE_QUERY = $00800000;
- FILE_COPY_STRUCTURED_STORAGE = $00000041;
- FILE_STRUCTURED_STORAGE = $00000441;
- FILE_VALID_OPTION_FLAGS = $00FFFFFF;
- FILE_VALID_PIPE_OPTION_FLAGS = $00000032;
- FILE_VALID_MAILSLOT_OPTION_FLAGS = $00000032;
- FILE_VALID_SET_FLAGS = $00000036;
- //
- // Define the I/O status information return values for NtCreateFile/NtOpenFile
- //
- FILE_SUPERSEDED = $00000000;
- FILE_OPENED = $00000001;
- FILE_CREATED = $00000002;
- FILE_OVERWRITTEN = $00000003;
- FILE_EXISTS = $00000004;
- FILE_DOES_NOT_EXIST = $00000005;
- //
- // Define special ByteOffset parameters for read and write operations
- //
- FILE_WRITE_TO_END_OF_FILE = $FFFFFFFF;
- FILE_USE_FILE_POINTER_POSITION = $FFFFFFFE;
- //
- // Define alignment requirement values
- //
- FILE_BYTE_ALIGNMENT = $00000000;
- FILE_WORD_ALIGNMENT = $00000001;
- FILE_LONG_ALIGNMENT = $00000003;
- FILE_QUAD_ALIGNMENT = $00000007;
- FILE_OCTA_ALIGNMENT = $0000000F;
- FILE_32_BYTE_ALIGNMENT = $0000001F;
- FILE_64_BYTE_ALIGNMENT = $0000003F;
- FILE_128_BYTE_ALIGNMENT = $0000007F;
- FILE_256_BYTE_ALIGNMENT = $000000FF;
- FILE_512_BYTE_ALIGNMENT = $000001FF;
- //
- // Define the maximum length of a filename string
- //
- MAXIMUM_FILENAME_LENGTH = 256;
- //
- // Define the various device characteristics flags
- //
- FILE_REMOVABLE_MEDIA = $00000001;
- FILE_READ_ONLY_DEVICE = $00000002;
- FILE_FLOPPY_DISKETTE = $00000004;
- FILE_WRITE_ONCE_MEDIA = $00000008;
- FILE_REMOTE_DEVICE = $00000010;
- FILE_DEVICE_IS_MOUNTED = $00000020;
- FILE_VIRTUAL_VOLUME = $00000040;
- FILE_AUTOGENERATED_DEVICE_NAME = $00000080;
- FILE_DEVICE_SECURE_OPEN = $00000100;
- //
- // Define kernel debugger print prototypes and macros.
- //
- // N.B. The following function cannot be directly imported because there are
- // a few places in the source tree where this function is redefined.
- //
- //procedure DbgBreakPoint(); stdcall;
- //procedure DbgUserBreakPoint(); stdcall;
- //procedure DbgBreakPointWithStatus(Status: ULONG); stdcall;
- //// BEGIN: Reverse function forwarders and custom functions
- //// Using Kernel32 function with same functionality for macros and "future version" functions
- (* Compatibility: All *)
- procedure RtlCopyMemory(
- Destination: PVOID;
- Source: PVOID;
- Length: SIZE_T
- ); stdcall; // Own replacement function
- (* XREF: see GetLastError()! *)
- (* Compatibility: All *)
- // This functions was introduced with Windows XP. The Kernel32 version
- // is a function forwarder for this function.
- function RtlGetLastWin32Error(): DWORD; external 'kernel32.dll' name 'GetLastError'; // imported as kernel32!GetLastError
- (* XREF: see SetLastError()! *)
- (* Compatibility: All *)
- // This functions was introduced with Windows XP. The Kernel32 version
- // is a function forwarder for this function.
- procedure RtlSetLastWin32Error(dwErrCode: DWORD); external 'kernel32.dll' name 'SetLastError'; // imported as kernel32!SetLastError
- // Own function to retrieve the process's heap handle
- (* XREF: see GetProcessHeap()! *)
- (* Compatibility: All *)
- function NtpGetProcessHeap(): HANDLE;
- // Own function to retrieve the thread environment block (TEB) pointer
- (* Compatibility: All *)
- function NtpCurrentTeb(): PTEB;
- // Own function to retrieve the process environment block (PEB) pointer
- (* Compatibility: All *)
- function RtlpGetCurrentPeb(): PPEB;
- // No FASTCALL directive exists in Delphi so we write our own versions ...
- // Own function to swap bytes in 16bit values
- function RtlUshortByteSwap(Source: USHORT): USHORT;
- // Own function to swap bytes in 32bit values
- function RtlUlongByteSwap(Source: ULONG): ULONG;
- // Own function to swap bytes in 64bit values
- function RtlUlonglongByteSwap(Source: ULONGLONG): ULONGLONG;
- // Resembles the RtlValidateUnicodeString() function available from Windows XP
- // on exactly as it is on this OS version, except for the calling convention.
- function RtlpValidateUnicodeString(dwMustBeNull: DWORD; UnicodeString: PUNICODE_STRING): NTSTATUS;
- // Resembles the RtlValidateUnicodeString() function available from Windows XP
- // on, but does not require the first parameter which anyway must be zero.
- function RtlpValidateUnicodeString2(UnicodeString: PUNICODE_STRING): NTSTATUS;
- //// END : Reverse function forwarders and custom functions
- //// BEGIN: Function prototypes
- // Compatibility: WXP, 2K3
- function CsrGetProcessId(): DWORD; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function DbgQueryDebugFilterState(
- ComponentId : ULONG;
- Level : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function DbgSetDebugFilterState(
- ComponentId : ULONG;
- Level : ULONG;
- State : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Unknown return value, maybe NTSTATUS?
- // Compatibility: NT4, W2K, WXP, 2K3
- function KiRaiseUserExceptionDispatcher(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrAccessResource(
- hModule : HANDLE;
- ResourceDataEntry : PIMAGE_RESOURCE_DATA_ENTRY;
- Address : PPVOID;
- dwSize : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function LdrAlternateResourcesEnabled(): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrDisableThreadCalloutsForDll(
- hModule : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetModuleHandle() from Kernel32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrGetDllHandle(
- pwPath : PWORD;
- pReserved : PVOID;
- pusPath : PUNICODE_STRING;
- var phModule : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetProcAddress() from Kernel32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrGetProcedureAddress(
- hModule : HANDLE;
- dwOrdinal : ULONG;
- psName : PSTRING;
- var pProcedure : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to LoadLibrary() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrLoadDll(
- pwPath : PWORD;
- pdwFlags : PDWORD;
- pusPath : PUNICODE_STRING;
- var phModule : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrQueryImageFileExecutionOptions(
- pusImagePath : PUNICODE_STRING;
- pwOptionName : PWORD;
- dwRequestedType : DWORD;
- pData : PVOID;
- dwSize : DWORD;
- pdwSize : PDWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrQueryProcessModuleInformation(
- psmi : PSYSTEM_MODULE_INFORMATION;
- dwSize : DWORD;
- pdwSize : PDWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to TerminateProcess() from Kernel32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure LdrShutdownProcess(); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to TerminateThread() from Kernel32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure LdrShutdownThread(); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to FreeLibrary() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function LdrUnloadDll(
- hModule : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAcceptConnectPort(
- PortHandle : PHANDLE;
- PortIdentifier : ULONG;
- Message : PPORT_MESSAGE;
- Accept : BOOLEAN;
- WriteSection : PPORT_SECTION_WRITE;
- ReadSection : PPORT_SECTION_READ
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAcceptConnectPort(PortHandle: PHANDLE; PortIdentifier: ULONG; Message: PPORT_MESSAGE; Accept: BOOLEAN; WriteSection: PPORT_SECTION_WRITE; ReadSection: PPORT_SECTION_READ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;
- {$ENDIF}
- // This function is very similar to AccessCheck() from Advapi32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAccessCheck(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAccessCheck(SecurityDescriptor: PSECURITY_DESCRIPTOR; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; GenericMapping: PGENERIC_MAPPING; PrivilegeSet: PPRIVILEGE_SET; PrivilegeSetLength: PULONG; GrantedAccess: PACCESS_MASK;
- AccessStatus: PBOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AccessCheckAndAuditAlarm() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAccessCheckAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- DesiredAccess : ACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PBOOLEAN;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAccessCheckAndAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; DesiredAccess: ACCESS_MASK;
- GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOLEAN; GrantedAccess: PACCESS_MASK; AccessStatus: PBOOLEAN; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AccessCheckByType() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: W2K, WXP, 2K3
- function NtAccessCheckByType(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAccessCheckByType(SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG;
- GenericMapping: PGENERIC_MAPPING; PrivilegeSet: PPRIVILEGE_SET; PrivilegeSetLength: PULONG; GrantedAccess: PACCESS_MASK; AccessStatus: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AccessCheckByTypeAndAuditAlarm() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function NtAccessCheckByTypeAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PULONG;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAccessCheckByTypeAndAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
- DesiredAccess: ACCESS_MASK; AuditType: AUDIT_EVENT_TYPE; Flags: ULONG; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG; GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOLEAN; GrantedAccess: PACCESS_MASK;
- AccessStatus: PULONG; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AccessCheckByTypeResultList() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function NtAccessCheckByTypeResultList(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAccessCheckByTypeResultList(SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG;
- GenericMapping: PGENERIC_MAPPING; PrivilegeSet: PPRIVILEGE_SET; PrivilegeSetLength: PULONG; GrantedAccessList: PACCESS_MASK; AccessStatusList: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to
- // AccessCheckByTypeResultListAndAuditAlarm() from Advapi32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function NtAccessCheckByTypeResultListAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG;
- GenerateOnClose : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAccessCheckByTypeResultListAndAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
- DesiredAccess: ACCESS_MASK; AuditType: AUDIT_EVENT_TYPE; Flags: ULONG; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG; GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOLEAN; GrantedAccessList: PACCESS_MASK;
- AccessStatusList: PULONG; GenerateOnClose: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to
- // AccessCheckByTypeResultListAndAuditAlarmByHandle() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: W2K, WXP, 2K3
- function NtAccessCheckByTypeResultListAndAuditAlarmByHandle(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- TokenHandle : HANDLE;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG;
- GenerateOnClose : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAccessCheckByTypeResultListAndAuditAlarmByHandle(SubsystemName: PUNICODE_STRING; HandleId: PVOID; TokenHandle: HANDLE; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR;
- PrincipalSelfSid: PSID; DesiredAccess: ACCESS_MASK; AuditType: AUDIT_EVENT_TYPE; Flags: ULONG; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG; GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOLEAN;
- GrantedAccessList: PACCESS_MASK; AccessStatusList: PULONG; GenerateOnClose: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtAddAtom(
- Str : PWSTR;
- StringLength : ULONG;
- Atom : PUSHORT
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAddAtom(Str: PWSTR; StringLength: ULONG; Atom: PUSHORT): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAdjustGroupsToken(
- TokenHandle : HANDLE;
- ResetToDefault : BOOLEAN;
- NewState : PTOKEN_GROUPS;
- BufferLength : ULONG;
- PreviousState : PTOKEN_GROUPS;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAdjustGroupsToken(TokenHandle: HANDLE; ResetToDefault: BOOLEAN; NewState: PTOKEN_GROUPS; BufferLength: ULONG; PreviousState: PTOKEN_GROUPS; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAdjustPrivilegesToken(
- TokenHandle : HANDLE;
- DisableAllPrivileges : BOOLEAN;
- NewState : PTOKEN_PRIVILEGES;
- BufferLength : ULONG;
- PreviousState : PTOKEN_PRIVILEGES;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAdjustPrivilegesToken(TokenHandle: HANDLE; DisableAllPrivileges: BOOLEAN; NewState: PTOKEN_PRIVILEGES; BufferLength: ULONG; PreviousState: PTOKEN_PRIVILEGES; ReturnLength: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAlertResumeThread(
- ThreadHandle : HANDLE;
- PreviousSuspendCount : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAlertResumeThread(ThreadHandle: HANDLE; PreviousSuspendCount: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAlertThread(
- ThreadHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAlertThread(ThreadHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAllocateLocallyUniqueId(
- Luid : PLUID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAllocateLocallyUniqueId(Luid: PLUID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtAllocateUserPhysicalPages(
- ProcessHandle : HANDLE;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAllocateUserPhysicalPages(ProcessHandle: HANDLE; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAllocateUuids(
- UuidLastTimeAllocated : PLARGE_INTEGER;
- UuidDeltaTime : PULONG;
- UuidSequenceNumber : PULONG;
- UuidSeed : PUCHAR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAllocateUuids(UuidLastTimeAllocated: PLARGE_INTEGER; UuidDeltaTime: PULONG; UuidSequenceNumber: PULONG; UuidSeed: PUCHAR): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtAllocateVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ZeroBits : ULONG;
- AllocationSize : PULONG;
- AllocationType : ULONG;
- Protect : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAllocateVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; ZeroBits: ULONG; AllocationSize: PULONG; AllocationType: ULONG; Protect: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtAreMappedFilesTheSame(
- Address1 : PVOID;
- Address2 : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAreMappedFilesTheSame(Address1: PVOID; Address2: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtAssignProcessToJobObject(
- JobHandle : HANDLE;
- ProcessHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwAssignProcessToJobObject(JobHandle: HANDLE; ProcessHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCallbackReturn(
- Result_ : PVOID;
- ResultLength : ULONG;
- Status : NTSTATUS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCallbackReturn(Result_: PVOID; ResultLength: ULONG; Status: NTSTATUS): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtCancelDeviceWakeupRequest(
- DeviceHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCancelDeviceWakeupRequest(DeviceHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCancelIoFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCancelIoFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCancelTimer(
- TimerHandle : HANDLE;
- PreviousState : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCancelTimer(TimerHandle: HANDLE; PreviousState: PBOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtClearEvent(
- EventHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwClearEvent(EventHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to CloseHandle() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Documented in the DDK as ZwClose().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- {$IFNDEF JWA_INCLUDEMODE}
- function NtClose(
- Handle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL} external ntdll; {$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwClose(Handle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCloseObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- GenerateOnClose : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCloseObjectAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; GenerateOnClose: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCompleteConnectPort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCompleteConnectPort(PortHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtConnectPort(
- PortHandle : PHANDLE;
- PortName : PUNICODE_STRING;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE;
- WriteSection : PPORT_SECTION_WRITE;
- ReadSection : PPORT_SECTION_READ;
- MaxMessageSize : PULONG;
- ConnectData : PVOID;
- ConnectDataLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwConnectPort(PortHandle: PHANDLE; PortName: PUNICODE_STRING; SecurityQos: PSECURITY_QUALITY_OF_SERVICE; WriteSection: PPORT_SECTION_WRITE; ReadSection: PPORT_SECTION_READ; MaxMessageSize: PULONG; ConnectData: PVOID;
- ConnectDataLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtContinue(
- Context : PCONTEXT;
- TestAlert : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwContinue(Context: PCONTEXT; TestAlert: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
- //
- // !!!DO NOT USE!!!
- // Compatibility: NT4, W2K
- function NtCreateChannel(
- ChannelHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateChannel(ChannelHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwCreateDirectoryObject().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateDirectoryObject(
- DirectoryHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateDirectoryObject(DirectoryHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateEvent(
- EventHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- EventType : EVENT_TYPE;
- InitialState : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateEvent(EventHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; EventType: EVENT_TYPE; InitialState: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateEventPair(
- EventPairHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateEventPair(EventPairHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Documented in the DDK as ZwCreateFile().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- AllocationSize : PLARGE_INTEGER;
- FileAttributes : ULONG;
- ShareAccess : ULONG;
- CreateDisposition : ULONG;
- CreateOptions : ULONG;
- EaBuffer : PVOID;
- EaLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwCreateFile(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; AllocationSize: PLARGE_INTEGER; FileAttributes: ULONG; ShareAccess: ULONG;
- CreateDisposition: ULONG; CreateOptions: ULONG; EaBuffer: PVOID; EaLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateIoCompletion(
- IoCompletionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- NumberOfConcurrentThreads : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateIoCompletion(IoCompletionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; NumberOfConcurrentThreads: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtCreateJobObject(
- JobHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateJobObject(JobHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwCreateKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TitleIndex : ULONG;
- Class_ : PUNICODE_STRING;
- CreateOptions : ULONG;
- Disposition : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateKey(KeyHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TitleIndex: ULONG; Class_: PUNICODE_STRING; CreateOptions: ULONG; Disposition: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateMailslotFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- CreateOptions : ULONG;
- Unknown : ULONG;
- MaxMessageSize : ULONG;
- ReadTimeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateMailslotFile(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; CreateOptions: ULONG; Unknown: ULONG; MaxMessageSize: ULONG;
- ReadTimeout: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateMutant(
- MutantHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InitialOwner : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateMutant(MutantHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InitialOwner: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateNamedPipeFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- ShareAccess : ULONG;
- CreateDisposition : ULONG;
- CreateOptions : ULONG;
- TypeMessage : BOOLEAN;
- ReadmodeMessage : BOOLEAN;
- Nonblocking : BOOLEAN;
- MaxInstances : ULONG;
- InBufferSize : ULONG;
- OutBufferSize : ULONG;
- DefaultTimeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateNamedPipeFile(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; ShareAccess: ULONG; CreateDisposition: ULONG; CreateOptions: ULONG;
- TypeMessage: BOOLEAN; ReadmodeMessage: BOOLEAN; Nonblocking: BOOLEAN; MaxInstances: ULONG; InBufferSize: ULONG; OutBufferSize: ULONG; DefaultTimeout: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreatePagingFile(
- FileName : PUNICODE_STRING;
- InitialSize : PULARGE_INTEGER;
- MaximumSize : PULARGE_INTEGER;
- Reserved : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreatePagingFile(FileName: PUNICODE_STRING; InitialSize: PULARGE_INTEGER; MaximumSize: PULARGE_INTEGER; Reserved: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreatePort(
- PortHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- MaxDataSize : ULONG;
- MaxMessageSize : ULONG;
- Reserved : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreatePort(PortHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES; MaxDataSize: ULONG; MaxMessageSize: ULONG; Reserved: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateProcess(
- ProcessHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InheritFromProcessHandle : HANDLE;
- InheritHandles : BOOLEAN;
- SectionHandle : HANDLE;
- DebugPort : HANDLE;
- ExceptionPort : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateProcess(ProcessHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InheritFromProcessHandle: HANDLE; InheritHandles: BOOLEAN; SectionHandle: HANDLE; DebugPort: HANDLE;
- ExceptionPort: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateProfile(
- ProfileHandle : PHANDLE;
- ProcessHandle : HANDLE;
- Base : PVOID;
- Size : ULONG;
- BucketShift : ULONG;
- Buffer : PULONG;
- BufferLength : ULONG;
- Source : KPROFILE_SOURCE;
- ProcessorMask : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateProfile(ProfileHandle: PHANDLE; ProcessHandle: HANDLE; Base: PVOID; Size: ULONG; BucketShift: ULONG; Buffer: PULONG; BufferLength: ULONG; Source: KPROFILE_SOURCE; ProcessorMask: ULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwCreateSection().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateSection(
- SectionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- SectionSize : PLARGE_INTEGER;
- Protect : ULONG;
- Attributes : ULONG;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateSection(SectionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; SectionSize: PLARGE_INTEGER; Protect: ULONG; Attributes: ULONG; FileHandle: HANDLE): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateSemaphore(
- SemaphoreHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InitialCount : LONG;
- MaximumCount : LONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateSemaphore(SemaphoreHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InitialCount: LONG; MaximumCount: LONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateSymbolicLinkObject(
- SymbolicLinkHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TargetName : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateSymbolicLinkObject(SymbolicLinkHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TargetName: PUNICODE_STRING): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateThread(
- ThreadHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ProcessHandle : HANDLE;
- ClientId : PCLIENT_ID;
- ThreadContext : PCONTEXT;
- UserStack : PUSER_STACK;
- CreateSuspended : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateThread(ThreadHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ProcessHandle: HANDLE; ClientId: PCLIENT_ID; ThreadContext: PCONTEXT; UserStack: PUSER_STACK;
- CreateSuspended: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateTimer(
- TimerHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TimerType : TIMER_TYPE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateTimer(TimerHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TimerType: TIMER_TYPE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCreateToken(
- TokenHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- Type_ : TOKEN_TYPE;
- AuthenticationId : PLUID;
- ExpirationTime : PLARGE_INTEGER;
- User : PTOKEN_USER;
- Groups : PTOKEN_GROUPS;
- Privileges : PTOKEN_PRIVILEGES;
- Owner : PTOKEN_OWNER;
- PrimaryGroup : PTOKEN_PRIMARY_GROUP;
- DefaultDacl : PTOKEN_DEFAULT_DACL;
- Source : PTOKEN_SOURCE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateToken(TokenHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; Type_: TOKEN_TYPE; AuthenticationId: PLUID; ExpirationTime: PLARGE_INTEGER; User: PTOKEN_USER; Groups: PTOKEN_GROUPS;
- Privileges: PTOKEN_PRIVILEGES; Owner: PTOKEN_OWNER; PrimaryGroup: PTOKEN_PRIMARY_GROUP; DefaultDacl: PTOKEN_DEFAULT_DACL; Source: PTOKEN_SOURCE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtCreateWaitablePort(
- PortHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- MaxDataSize : ULONG;
- MaxMessageSize : ULONG;
- Reserved : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCreateWaitablePort(PortHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES; MaxDataSize: ULONG; MaxMessageSize: ULONG; Reserved: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtCurrentTeb(): PTEB; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwCurrentTeb(): PTEB; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function NtDebugActiveProcess(
- hProcess : HANDLE;
- hDebugObject : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDebugActiveProcess(hProcess: HANDLE; hDebugObject: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDelayExecution(
- Alertable : BOOLEAN;
- Interval : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDelayExecution(Alertable: BOOLEAN; Interval: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtDeleteAtom(
- Atom : USHORT
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDeleteAtom(Atom: USHORT): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDeleteFile(
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDeleteFile(ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwDeleteKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDeleteKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDeleteKey(KeyHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtDeleteObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- GenerateOnClose : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDeleteObjectAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; GenerateOnClose: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDeleteValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDeleteValueKey(KeyHandle: HANDLE; ValueName: PUNICODE_STRING): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDeviceIoControlFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- IoControlCode : ULONG;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwDeviceIoControlFile(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; IoControlCode: ULONG; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID;
- OutputBufferLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDisplayString(
- Str : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDisplayString(Str: PUNICODE_STRING): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDuplicateObject(
- SourceProcessHandle : HANDLE;
- SourceHandle : HANDLE;
- TargetProcessHandle : HANDLE;
- TargetHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- Attributes : ULONG;
- Options : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDuplicateObject(SourceProcessHandle: HANDLE; SourceHandle: HANDLE; TargetProcessHandle: HANDLE; TargetHandle: PHANDLE; DesiredAccess: ACCESS_MASK; Attributes: ULONG; Options: ULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtDuplicateToken(
- ExistingTokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- EffectiveOnly : BOOLEAN;
- TokenType : TOKEN_TYPE;
- NewTokenHandle : PHANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwDuplicateToken(ExistingTokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; EffectiveOnly: BOOLEAN; TokenType: TOKEN_TYPE; NewTokenHandle: PHANDLE): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwEnumerateKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtEnumerateKey(
- KeyHandle : HANDLE;
- Index : ULONG;
- KeyInformationClass : KEY_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwEnumerateKey(KeyHandle: HANDLE; Index: ULONG; KeyInformationClass: KEY_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwEnumerateValueKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtEnumerateValueKey(
- KeyHandle : HANDLE;
- Index : ULONG;
- KeyValueInformationClass : KEY_VALUE_INFORMATION_CLASS;
- KeyValueInformation : PVOID;
- KeyValueInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwEnumerateValueKey(KeyHandle: HANDLE; Index: ULONG; KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS; KeyValueInformation: PVOID; KeyValueInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtExtendSection(
- SectionHandle : HANDLE;
- SectionSize : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwExtendSection(SectionHandle: HANDLE; SectionSize: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtFilterToken(
- ExistingTokenHandle : HANDLE;
- Flags : ULONG;
- SidsToDisable : PTOKEN_GROUPS;
- PrivilegesToDelete : PTOKEN_PRIVILEGES;
- SidsToRestricted : PTOKEN_GROUPS;
- NewTokenHandle : PHANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFilterToken(ExistingTokenHandle: HANDLE; Flags: ULONG; SidsToDisable: PTOKEN_GROUPS; PrivilegesToDelete: PTOKEN_PRIVILEGES; SidsToRestricted: PTOKEN_GROUPS; NewTokenHandle: PHANDLE): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtFindAtom(
- Str : PWSTR;
- StringLength : ULONG;
- Atom : PUSHORT
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFindAtom(Str: PWSTR; StringLength: ULONG; Atom: PUSHORT): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtFlushBuffersFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFlushBuffersFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtFlushInstructionCache(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- FlushSize : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFlushInstructionCache(ProcessHandle: HANDLE; BaseAddress: PVOID; FlushSize: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwFlushKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtFlushKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFlushKey(KeyHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtFlushVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- FlushSize : PULONG;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFlushVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; FlushSize: PULONG; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtFlushWriteBuffer(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFlushWriteBuffer(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtFreeUserPhysicalPages(
- ProcessHandle : HANDLE;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFreeUserPhysicalPages(ProcessHandle: HANDLE; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtFreeVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- FreeSize : PULONG;
- FreeType : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFreeVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; FreeSize: PULONG; FreeType: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtFsControlFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FsControlCode : ULONG;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwFsControlFile(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; FsControlCode: ULONG; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID;
- OutputBufferLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtGetContextThread(
- ThreadHandle : HANDLE;
- Context : PCONTEXT
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwGetContextThread(ThreadHandle: HANDLE; Context: PCONTEXT): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: 2K3
- function NtGetCurrentProcessorNumber(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwGetCurrentProcessorNumber(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtGetDevicePowerState(
- DeviceHandle : HANDLE;
- DevicePowerState : PDEVICE_POWER_STATE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwGetDevicePowerState(DeviceHandle: HANDLE; DevicePowerState: PDEVICE_POWER_STATE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtGetPlugPlayEvent(
- Reserved1 : ULONG;
- Reserved2 : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwGetPlugPlayEvent(Reserved1: ULONG; Reserved2: ULONG; Buffer: PVOID; BufferLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, 2K3
- function NtGetTickCount(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwGetTickCount(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtGetWriteWatch(
- ProcessHandle : HANDLE;
- Flags : ULONG;
- BaseAddress : PVOID;
- RegionSize : ULONG;
- Buffer : PULONG;
- BufferEntries : PULONG;
- Granularity : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwGetWriteWatch(ProcessHandle: HANDLE; Flags: ULONG; BaseAddress: PVOID; RegionSize: ULONG; Buffer: PULONG; BufferEntries: PULONG; Granularity: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtImpersonateAnonymousToken(
- ThreadHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwImpersonateAnonymousToken(ThreadHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtImpersonateClientOfPort(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwImpersonateClientOfPort(PortHandle: HANDLE; Message: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtImpersonateThread(
- ThreadHandle : HANDLE;
- TargetThreadHandle : HANDLE;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwImpersonateThread(ThreadHandle: HANDLE; TargetThreadHandle: HANDLE; SecurityQos: PSECURITY_QUALITY_OF_SERVICE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtInitializeRegistry(
- Setup : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwInitializeRegistry(Setup: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtInitiatePowerAction(
- SystemAction : POWER_ACTION;
- MinSystemState : SYSTEM_POWER_STATE;
- Flags : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwInitiatePowerAction(SystemAction: POWER_ACTION; MinSystemState: SYSTEM_POWER_STATE; Flags: ULONG; Asynchronous: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtIsSystemResumeAutomatic(): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwIsSystemResumeAutomatic(): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
- //
- // !!!DO NOT USE!!!
- // Compatibility: NT4, W2K
- function NtListenChannel(
- x : PVOID;
- y : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwListenChannel(x: PVOID; y: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtListenPort(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwListenPort(PortHandle: HANDLE; Message: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtLoadDriver(
- DriverServiceName : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwLoadDriver(DriverServiceName: PUNICODE_STRING): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Relates to RegLoadKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtLoadKey(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- FileObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwLoadKey(KeyObjectAttributes: POBJECT_ATTRIBUTES; FileObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Relates to RegLoadKey().
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtLoadKey2(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- FileObjectAttributes : POBJECT_ATTRIBUTES;
- Flags : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwLoadKey2(KeyObjectAttributes: POBJECT_ATTRIBUTES; FileObjectAttributes: POBJECT_ATTRIBUTES; Flags: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtLockFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- LockOffset : PULARGE_INTEGER;
- LockLength : PULARGE_INTEGER;
- Key : ULONG;
- FailImmediately : BOOLEAN;
- ExclusiveLock : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwLockFile(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; LockOffset: PULARGE_INTEGER; LockLength: PULARGE_INTEGER; Key: ULONG; FailImmediately: BOOLEAN;
- ExclusiveLock: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtLockVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- LockSize : PULONG;
- LockType : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwLockVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; LockSize: PULONG; LockType: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function NtMakePermanentObject(
- Handle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwMakePermanentObject(Handle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwMakeTemporaryObject().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtMakeTemporaryObject(
- Handle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwMakeTemporaryObject(Handle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtMapUserPhysicalPages(
- BaseAddress : PVOID;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwMapUserPhysicalPages(BaseAddress: PVOID; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtMapUserPhysicalPagesScatter(
- BaseAddresses : PPVOID;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwMapUserPhysicalPagesScatter(BaseAddresses: PPVOID; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwMapViewOfSection().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtMapViewOfSection(
- SectionHandle : HANDLE;
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ZeroBits : ULONG;
- CommitSize : ULONG;
- SectionOffset : PLARGE_INTEGER;
- ViewSize : PULONG;
- InheritDisposition : SECTION_INHERIT;
- AllocationType : ULONG;
- Protect : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwMapViewOfSection(SectionHandle: HANDLE; ProcessHandle: HANDLE; BaseAddress: PPVOID; ZeroBits: ULONG; CommitSize: ULONG; SectionOffset: PLARGE_INTEGER; ViewSize: PULONG; InheritDisposition: SECTION_INHERIT; AllocationType: ULONG;
- Protect: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtNotifyChangeDirectoryFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_NOTIFY_INFORMATION;
- BufferLength : ULONG;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwNotifyChangeDirectoryFile(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_NOTIFY_INFORMATION; BufferLength: ULONG; NotifyFilter: ULONG;
- WatchSubtree: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtNotifyChangeKey(
- KeyHandle : HANDLE;
- EventHandle : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN;
- Buffer : PVOID;
- BufferLength : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwNotifyChangeKey(KeyHandle: HANDLE; EventHandle: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; NotifyFilter: ULONG; WatchSubtree: BOOLEAN; Buffer: PVOID; BufferLength: ULONG;
- Asynchronous: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtNotifyChangeMultipleKeys(
- KeyHandle : HANDLE;
- Flags : ULONG;
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- EventHandle : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN;
- Buffer : PVOID;
- BufferLength : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwNotifyChangeMultipleKeys(KeyHandle: HANDLE; Flags: ULONG; KeyObjectAttributes: POBJECT_ATTRIBUTES; EventHandle: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; NotifyFilter: ULONG;
- WatchSubtree: BOOLEAN; Buffer: PVOID; BufferLength: ULONG; Asynchronous: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
- //
- // !!!DO NOT USE!!!
- // Compatibility: NT4, W2K
- function NtOpenChannel(
- ChannelHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenChannel(ChannelHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenDirectoryObject(
- DirectoryHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenDirectoryObject(DirectoryHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenEvent(
- EventHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenEvent(EventHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenEventPair(
- EventPairHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenEventPair(EventPairHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Documented in the DDK as ZwOpenFile().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- ShareAccess : ULONG;
- OpenOptions : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwOpenFile(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; ShareAccess: ULONG; OpenOptions: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenIoCompletion(
- IoCompletionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenIoCompletion(IoCompletionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtOpenJobObject(
- JobHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenJobObject(JobHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwOpenKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenKey(KeyHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenMutant(
- MutantHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenMutant(MutantHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PPVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- GrantedAccess : ACCESS_MASK;
- Privileges : PPRIVILEGE_SET;
- ObjectCreation : BOOLEAN;
- AccessGranted : BOOLEAN;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenObjectAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PPVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK;
- GrantedAccess: ACCESS_MASK; Privileges: PPRIVILEGE_SET; ObjectCreation: BOOLEAN; AccessGranted: BOOLEAN; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenProcess(
- ProcessHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenProcess(ProcessHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ClientId: PCLIENT_ID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenProcessToken(
- ProcessHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- TokenHandle : PHANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenProcessToken(ProcessHandle: HANDLE; DesiredAccess: ACCESS_MASK; TokenHandle: PHANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwOpenSection().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenSection(
- SectionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenSection(SectionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenSemaphore(
- SemaphoreHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenSemaphore(SemaphoreHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwOpenSymbolicLinkObject().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenSymbolicLinkObject(
- SymbolicLinkHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenSymbolicLinkObject(SymbolicLinkHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenThread(
- ThreadHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenThread(ThreadHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ClientId: PCLIENT_ID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenThreadToken(
- ThreadHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- OpenAsSelf : BOOLEAN;
- TokenHandle : PHANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenThreadToken(ThreadHandle: HANDLE; DesiredAccess: ACCESS_MASK; OpenAsSelf: BOOLEAN; TokenHandle: PHANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtOpenTimer(
- TimerHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwOpenTimer(TimerHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtPlugPlayControl(
- ControlCode : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwPlugPlayControl(ControlCode: ULONG; Buffer: PVOID; BufferLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtPowerInformation(
- PowerInformationLevel : POWER_INFORMATION_LEVEL;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwPowerInformation(PowerInformationLevel: POWER_INFORMATION_LEVEL; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID; OutputBufferLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to PrivilegeCheck() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtPrivilegeCheck(
- TokenHandle : HANDLE;
- RequiredPrivileges : PPRIVILEGE_SET;
- Result_ : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwPrivilegeCheck(TokenHandle: HANDLE; RequiredPrivileges: PPRIVILEGE_SET; Result_: PBOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to PrivilegedServiceAuditAlarm() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtPrivilegedServiceAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- ServiceName : PUNICODE_STRING;
- TokenHandle : HANDLE;
- Privileges : PPRIVILEGE_SET;
- AccessGranted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwPrivilegedServiceAuditAlarm(SubsystemName: PUNICODE_STRING; ServiceName: PUNICODE_STRING; TokenHandle: HANDLE; Privileges: PPRIVILEGE_SET; AccessGranted: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtPrivilegeObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- Privileges : PPRIVILEGE_SET;
- AccessGranted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwPrivilegeObjectAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; Privileges: PPRIVILEGE_SET; AccessGranted: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;
- {$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtProtectVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ProtectSize : PULONG;
- NewProtect : ULONG;
- OldProtect : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwProtectVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; ProtectSize: PULONG; NewProtect: ULONG; OldProtect: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtPulseEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwPulseEvent(EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryAttributesFile(
- ObjectAttributes : POBJECT_ATTRIBUTES;
- FileInformation : PFILE_BASIC_INFORMATION
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryAttributesFile(ObjectAttributes: POBJECT_ATTRIBUTES; FileInformation: PFILE_BASIC_INFORMATION): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryDefaultLocale(
- ThreadOrSystem : BOOLEAN;
- Locale : PLCID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryDefaultLocale(ThreadOrSystem: BOOLEAN; Locale: PLCID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtQueryDefaultUILanguage(
- LanguageId : PLANGID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryDefaultUILanguage(LanguageId: PLANGID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryDirectoryFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS;
- ReturnSingleEntry : BOOLEAN;
- FileName : PUNICODE_STRING;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryDirectoryFile(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG;
- FileInformationClass: FILE_INFORMATION_CLASS; ReturnSingleEntry: BOOLEAN; FileName: PUNICODE_STRING; RestartScan: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryDirectoryObject(
- DirectoryHandle : HANDLE;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- RestartScan : BOOLEAN;
- Context : PULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryDirectoryObject(DirectoryHandle: HANDLE; Buffer: PVOID; BufferLength: ULONG; ReturnSingleEntry: BOOLEAN; RestartScan: BOOLEAN; Context: PULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;
- {$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryEaFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_FULL_EA_INFORMATION;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- EaList : PFILE_GET_EA_INFORMATION;
- EaListLength : ULONG;
- EaIndex : PULONG;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryEaFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_FULL_EA_INFORMATION; BufferLength: ULONG; ReturnSingleEntry: BOOLEAN; EaList: PFILE_GET_EA_INFORMATION; EaListLength: ULONG; EaIndex: PULONG;
- RestartScan: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryEvent(
- EventHandle : HANDLE;
- EventInformationClass : EVENT_INFORMATION_CLASS;
- EventInformation : PVOID;
- EventInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryEvent(EventHandle: HANDLE; EventInformationClass: EVENT_INFORMATION_CLASS; EventInformation: PVOID; EventInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtQueryFullAttributesFile(
- ObjectAttributes : POBJECT_ATTRIBUTES;
- FileInformation : PFILE_NETWORK_OPEN_INFORMATION
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryFullAttributesFile(ObjectAttributes: POBJECT_ATTRIBUTES; FileInformation: PFILE_NETWORK_OPEN_INFORMATION): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtQueryInformationAtom(
- Atom : USHORT;
- AtomInformationClass : ATOM_INFORMATION_CLASS;
- AtomInformation : PVOID;
- AtomInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryInformationAtom(Atom: USHORT; AtomInformationClass: ATOM_INFORMATION_CLASS; AtomInformation: PVOID; AtomInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwQueryInformationFile().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG; FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;
- {$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtQueryInformationJobObject(
- JobHandle : HANDLE;
- JobInformationClass : JOBOBJECTINFOCLASS;
- JobInformation : PVOID;
- JobInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryInformationJobObject(JobHandle: HANDLE; JobInformationClass: JOBOBJECTINFOCLASS; JobInformation: PVOID; JobInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryInformationPort(
- PortHandle : HANDLE;
- PortInformationClass : PORT_INFORMATION_CLASS;
- PortInformation : PVOID;
- PortInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryInformationPort(PortHandle: HANDLE; PortInformationClass: PORT_INFORMATION_CLASS; PortInformation: PVOID; PortInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryInformationProcess(
- ProcessHandle : HANDLE;
- ProcessInformationClass : PROCESSINFOCLASS;
- ProcessInformation : PVOID;
- ProcessInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwQueryInformationProcess(ProcessHandle: HANDLE; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: PVOID; ProcessInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryInformationThread(
- ThreadHandle : HANDLE;
- ThreadInformationClass : THREADINFOCLASS;
- ThreadInformation : PVOID;
- ThreadInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwQueryInformationThread(ThreadHandle: HANDLE; ThreadInformationClass: THREADINFOCLASS; ThreadInformation: PVOID; ThreadInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryInformationToken(
- TokenHandle : HANDLE;
- TokenInformationClass : TOKEN_INFORMATION_CLASS;
- TokenInformation : PVOID;
- TokenInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryInformationToken(TokenHandle: HANDLE; TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: PVOID; TokenInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtQueryInstallUILanguage(
- LanguageId : PLANGID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryInstallUILanguage(LanguageId: PLANGID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryIntervalProfile(
- Source : KPROFILE_SOURCE;
- Interval : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryIntervalProfile(Source: KPROFILE_SOURCE; Interval: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryIoCompletion(
- IoCompletionHandle : HANDLE;
- IoCompletionInformationClass : IO_COMPLETION_INFORMATION_CLASS;
- IoCompletionInformation : PVOID;
- IoCompletionInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryIoCompletion(IoCompletionHandle: HANDLE; IoCompletionInformationClass: IO_COMPLETION_INFORMATION_CLASS; IoCompletionInformation: PVOID; IoCompletionInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwQueryKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryKey(
- KeyHandle : HANDLE;
- KeyInformationClass : KEY_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryKey(KeyHandle: HANDLE; KeyInformationClass: KEY_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtQueryMultipleValueKey(
- KeyHandle : HANDLE;
- ValueList : PKEY_VALUE_ENTRY;
- NumberOfValues : ULONG;
- Buffer : PVOID;
- Length : PULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryMultipleValueKey(KeyHandle: HANDLE; ValueList: PKEY_VALUE_ENTRY; NumberOfValues: ULONG; Buffer: PVOID; Length: PULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryMutant(
- MutantHandle : HANDLE;
- MutantInformationClass : MUTANT_INFORMATION_CLASS;
- MutantInformation : PVOID;
- MutantInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryMutant(MutantHandle: HANDLE; MutantInformationClass: MUTANT_INFORMATION_CLASS; MutantInformation: PVOID; MutantInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryObject(
- ObjectHandle : HANDLE;
- ObjectInformationClass : OBJECT_INFORMATION_CLASS;
- ObjectInformation : PVOID;
- ObjectInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryObject(ObjectHandle: HANDLE; ObjectInformationClass: OBJECT_INFORMATION_CLASS; ObjectInformation: PVOID; ObjectInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtQueryOpenSubKeys(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- NumberOfKey : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryOpenSubKeys(KeyObjectAttributes: POBJECT_ATTRIBUTES; NumberOfKey: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryPerformanceCounter(
- PerformanceCount : PLARGE_INTEGER;
- PerformanceFrequency : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryPerformanceCounter(PerformanceCount: PLARGE_INTEGER; PerformanceFrequency: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function NtQueryPortInformationProcess(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryPortInformationProcess(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtQueryQuotaInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_USER_QUOTA_INFORMATION;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- QuotaList : PFILE_QUOTA_LIST_INFORMATION;
- QuotaListLength : ULONG;
- ResumeSid : PSID;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryQuotaInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_USER_QUOTA_INFORMATION; BufferLength: ULONG; ReturnSingleEntry: BOOLEAN; QuotaList: PFILE_QUOTA_LIST_INFORMATION;
- QuotaListLength: ULONG; ResumeSid: PSID; RestartScan: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQuerySection(
- SectionHandle : HANDLE;
- SectionInformationClass : SECTION_INFORMATION_CLASS;
- SectionInformation : PVOID;
- SectionInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQuerySection(SectionHandle: HANDLE; SectionInformationClass: SECTION_INFORMATION_CLASS; SectionInformation: PVOID; SectionInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQuerySecurityObject(
- Handle : HANDLE;
- RequestedInformation : SECURITY_INFORMATION;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- SecurityDescriptorLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQuerySecurityObject(Handle: HANDLE; RequestedInformation: SECURITY_INFORMATION; SecurityDescriptor: PSECURITY_DESCRIPTOR; SecurityDescriptorLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;
- {$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQuerySemaphore(
- SemaphoreHandle : HANDLE;
- SemaphoreInformationClass : SEMAPHORE_INFORMATION_CLASS;
- SemaphoreInformation : PVOID;
- SemaphoreInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQuerySemaphore(SemaphoreHandle: HANDLE; SemaphoreInformationClass: SEMAPHORE_INFORMATION_CLASS; SemaphoreInformation: PVOID; SemaphoreInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwQuerySymbolicLinkObject().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQuerySymbolicLinkObject(
- SymbolicLinkHandle : HANDLE;
- TargetName : PUNICODE_STRING;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQuerySymbolicLinkObject(SymbolicLinkHandle: HANDLE; TargetName: PUNICODE_STRING; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQuerySystemEnvironmentValue(
- Name : PUNICODE_STRING;
- Value : PVOID;
- ValueLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQuerySystemEnvironmentValue(Name: PUNICODE_STRING; Value: PVOID; ValueLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQuerySystemInformation(
- SystemInformationClass : SYSTEM_INFORMATION_CLASS;
- SystemInformation : PVOID;
- SystemInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwQuerySystemInformation(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: PVOID; SystemInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- {$IFNDEF JWA_INCLUDEMODE}
- function NtQuerySystemTime(
- CurrentTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwQuerySystemTime(CurrentTime: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryTimer(
- TimerHandle : HANDLE;
- TimerInformationClass : TIMER_INFORMATION_CLASS;
- TimerInformation : PVOID;
- TimerInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryTimer(TimerHandle: HANDLE; TimerInformationClass: TIMER_INFORMATION_CLASS; TimerInformation: PVOID; TimerInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryTimerResolution(
- CoarsestResolution : PULONG;
- FinestResolution : PULONG;
- ActualResolution : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryTimerResolution(CoarsestResolution: PULONG; FinestResolution: PULONG; ActualResolution: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwQueryValueKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING;
- KeyValueInformationClass : KEY_VALUE_INFORMATION_CLASS;
- KeyValueInformation : PVOID;
- KeyValueInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryValueKey(KeyHandle: HANDLE; ValueName: PUNICODE_STRING; KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS; KeyValueInformation: PVOID; KeyValueInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- MemoryInformationClass : MEMORY_INFORMATION_CLASS;
- MemoryInformation : PVOID;
- MemoryInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PVOID; MemoryInformationClass: MEMORY_INFORMATION_CLASS; MemoryInformation: PVOID; MemoryInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtQueryVolumeInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- VolumeInformation : PVOID;
- VolumeInformationLength : ULONG;
- VolumeInformationClass : FS_INFORMATION_CLASS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueryVolumeInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; VolumeInformation: PVOID; VolumeInformationLength: ULONG; VolumeInformationClass: FS_INFORMATION_CLASS): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtQueueApcThread(
- ThreadHandle : HANDLE;
- ApcRoutine : PKNORMAL_ROUTINE;
- ApcContext : PVOID;
- Argument1 : PVOID;
- Argument2 : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwQueueApcThread(ThreadHandle: HANDLE; ApcRoutine: PKNORMAL_ROUTINE; ApcContext: PVOID; Argument1: PVOID; Argument2: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtRaiseException(
- ExceptionRecord : PEXCEPTION_RECORD;
- Context : PCONTEXT;
- SearchFrames : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRaiseException(ExceptionRecord: PEXCEPTION_RECORD; Context: PCONTEXT; SearchFrames: BOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtRaiseHardError(
- Status : NTSTATUS;
- NumberOfArguments : ULONG;
- StringArgumentsMask : ULONG;
- Arguments : PULONG;
- MessageBoxType : ULONG;
- MessageBoxResult : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRaiseHardError(Status: NTSTATUS; NumberOfArguments: ULONG; StringArgumentsMask: ULONG; Arguments: PULONG; MessageBoxType: ULONG; MessageBoxResult: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwReadFile().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReadFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReadFile(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PVOID; Length: ULONG; ByteOffset: PLARGE_INTEGER; Key: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtReadFileScatter(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_SEGMENT_ELEMENT;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReadFileScatter(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_SEGMENT_ELEMENT; Length: ULONG; ByteOffset: PLARGE_INTEGER;
- Key: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReadRequestData(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE;
- Index : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReadRequestData(PortHandle: HANDLE; Message: PPORT_MESSAGE; Index: ULONG; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReadVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReadVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PVOID; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtRegisterThreadTerminatePort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRegisterThreadTerminatePort(PortHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReleaseMutant(
- MutantHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReleaseMutant(MutantHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReleaseSemaphore(
- SemaphoreHandle : HANDLE;
- ReleaseCount : LONG;
- PreviousCount : PLONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReleaseSemaphore(SemaphoreHandle: HANDLE; ReleaseCount: LONG; PreviousCount: PLONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtRemoveIoCompletion(
- IoCompletionHandle : HANDLE;
- CompletionKey : PULONG;
- CompletionValue : PULONG;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRemoveIoCompletion(IoCompletionHandle: HANDLE; CompletionKey: PULONG; CompletionValue: PULONG; IoStatusBlock: PIO_STATUS_BLOCK; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function NtRemoveProcessDebug(
- hProcess : HANDLE;
- hDebugObject : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRemoveProcessDebug(hProcess: HANDLE; hDebugObject: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReplaceKey(
- NewFileObjectAttributes : POBJECT_ATTRIBUTES;
- KeyHandle : HANDLE;
- OldFileObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReplaceKey(NewFileObjectAttributes: POBJECT_ATTRIBUTES; KeyHandle: HANDLE; OldFileObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReplyPort(
- PortHandle : HANDLE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReplyPort(PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReplyWaitReceivePort(
- PortHandle : HANDLE;
- PortIdentifier : PULONG;
- ReplyMessage : PPORT_MESSAGE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReplyWaitReceivePort(PortHandle: HANDLE; PortIdentifier: PULONG; ReplyMessage: PPORT_MESSAGE; Message: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtReplyWaitReceivePortEx(
- PortHandle : HANDLE;
- PortIdentifier : PULONG;
- ReplyMessage : PPORT_MESSAGE;
- Message : PPORT_MESSAGE;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReplyWaitReceivePortEx(PortHandle: HANDLE; PortIdentifier: PULONG; ReplyMessage: PPORT_MESSAGE; Message: PPORT_MESSAGE; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtReplyWaitReplyPort(
- PortHandle : HANDLE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReplyWaitReplyPort(PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
- //
- // !!!DO NOT USE!!!
- // Compatibility: NT4, W2K
- function NtReplyWaitSendChannel(
- x : PVOID;
- y : PVOID;
- z : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwReplyWaitSendChannel(x: PVOID; y: PVOID; z: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtRequestDeviceWakeup(
- DeviceHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRequestDeviceWakeup(DeviceHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtRequestPort(
- PortHandle : HANDLE;
- RequestMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRequestPort(PortHandle: HANDLE; RequestMessage: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtRequestWaitReplyPort(
- PortHandle : HANDLE;
- RequestMessage : PPORT_MESSAGE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRequestWaitReplyPort(PortHandle: HANDLE; RequestMessage: PPORT_MESSAGE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtRequestWakeupLatency(
- Latency : LATENCY_TIME
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRequestWakeupLatency(Latency: LATENCY_TIME): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtResetEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwResetEvent(EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtResetWriteWatch(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- RegionSize : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwResetWriteWatch(ProcessHandle: HANDLE; BaseAddress: PVOID; RegionSize: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtRestoreKey(
- KeyHandle : HANDLE;
- FileHandle : HANDLE;
- Flags : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwRestoreKey(KeyHandle: HANDLE; FileHandle: HANDLE; Flags: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function NtResumeProcess(
- hProcess : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwResumeProcess(hProcess: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to ResumeThread() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtResumeThread(
- hThread : HANDLE;
- dwResumeCount : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwResumeThread(hThread: HANDLE; dwResumeCount: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Relates to RegSaveKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSaveKey(
- KeyHandle : HANDLE;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSaveKey(KeyHandle: HANDLE; FileHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Relates to RegSaveKeyEx().
- // Compatibility: WXP, 2K3
- function NtSaveKeyEx(
- KeyHandle : HANDLE;
- FileHandle : HANDLE;
- Flags : DWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSaveKeyEx(KeyHandle: HANDLE; FileHandle: HANDLE; Flags: DWORD): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtSaveMergedKeys(
- KeyHandle1 : HANDLE;
- KeyHandle2 : HANDLE;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSaveMergedKeys(KeyHandle1: HANDLE; KeyHandle2: HANDLE; FileHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtSecureConnectPort(
- PortHandle : PHANDLE;
- PortName : PUNICODE_STRING;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE;
- WriteSection : PPORT_SECTION_WRITE;
- ServerSid : PSID;
- ReadSection : PPORT_SECTION_READ;
- MaxMessageSize : PULONG;
- ConnectData : PVOID;
- ConnectDataLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSecureConnectPort(PortHandle: PHANDLE; PortName: PUNICODE_STRING; SecurityQos: PSECURITY_QUALITY_OF_SERVICE; WriteSection: PPORT_SECTION_WRITE; ServerSid: PSID; ReadSection: PPORT_SECTION_READ; MaxMessageSize: PULONG;
- ConnectData: PVOID; ConnectDataLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
- //
- // !!!DO NOT USE!!!
- // Compatibility: NT4, W2K
- function NtSendWaitReplyChannel(
- x : PVOID;
- y : PVOID;
- z : PVOID;
- z2 : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSendWaitReplyChannel(x: PVOID; y: PVOID; z: PVOID; z2: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Returns STATUS_NOT_IMPLEMENTED. Only MS knows the intention behind this.
- //
- // !!!DO NOT USE!!!
- // Compatibility: NT4, W2K
- function NtSetContextChannel(
- x : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetContextChannel(x: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetContextThread(
- ThreadHandle : HANDLE;
- Context : PCONTEXT
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetContextThread(ThreadHandle: HANDLE; Context: PCONTEXT): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetDefaultHardErrorPort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetDefaultHardErrorPort(PortHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetDefaultLocale(
- ThreadOrSystem : BOOLEAN;
- Locale : LCID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetDefaultLocale(ThreadOrSystem: BOOLEAN; Locale: LCID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtSetDefaultUILanguage(
- LanguageId : LANGID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetDefaultUILanguage(LanguageId: LANGID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetEaFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_FULL_EA_INFORMATION;
- BufferLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetEaFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_FULL_EA_INFORMATION; BufferLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetEvent(EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetHighEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetHighWaitLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetHighWaitLowEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4
- function NtSetHighWaitLowThread(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetHighWaitLowThread(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwSetInformationFile().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG; FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;
- {$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtSetInformationJobObject(
- JobHandle : HANDLE;
- JobInformationClass : JOBOBJECTINFOCLASS;
- JobInformation : PVOID;
- JobInformationLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetInformationJobObject(JobHandle: HANDLE; JobInformationClass: JOBOBJECTINFOCLASS; JobInformation: PVOID; JobInformationLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetInformationKey(
- KeyHandle : HANDLE;
- KeyInformationClass : KEY_SET_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetInformationKey(KeyHandle: HANDLE; KeyInformationClass: KEY_SET_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetInformationObject(
- ObjectHandle : HANDLE;
- ObjectInformationClass : OBJECT_INFORMATION_CLASS;
- ObjectInformation : PVOID;
- ObjectInformationLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetInformationObject(ObjectHandle: HANDLE; ObjectInformationClass: OBJECT_INFORMATION_CLASS; ObjectInformation: PVOID; ObjectInformationLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetInformationProcess(
- ProcessHandle : HANDLE;
- ProcessInformationClass : PROCESSINFOCLASS;
- ProcessInformation : PVOID;
- ProcessInformationLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetInformationProcess(ProcessHandle: HANDLE; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: PVOID; ProcessInformationLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwSetInformationThread().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetInformationThread(
- ThreadHandle : HANDLE;
- ThreadInformationClass : THREADINFOCLASS;
- ThreadInformation : PVOID;
- ThreadInformationLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetInformationThread(ThreadHandle: HANDLE; ThreadInformationClass: THREADINFOCLASS; ThreadInformation: PVOID; ThreadInformationLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetInformationToken(
- TokenHandle : HANDLE;
- TokenInformationClass : TOKEN_INFORMATION_CLASS;
- TokenInformation : PVOID;
- TokenInformationLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetInformationToken(TokenHandle: HANDLE; TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: PVOID; TokenInformationLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetIntervalProfile(
- Interval : ULONG;
- Source : KPROFILE_SOURCE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetIntervalProfile(Interval: ULONG; Source: KPROFILE_SOURCE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetIoCompletion(
- IoCompletionHandle : HANDLE;
- CompletionKey : ULONG;
- CompletionValue : ULONG;
- Status : NTSTATUS;
- Information : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetIoCompletion(IoCompletionHandle: HANDLE; CompletionKey: ULONG; CompletionValue: ULONG; Status: NTSTATUS; Information: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetLdtEntries(
- Selector1 : ULONG;
- LdtEntry1 : LDT_ENTRY;
- Selector2 : ULONG;
- LdtEntry2 : LDT_ENTRY
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetLdtEntries(Selector1: ULONG; LdtEntry1: LDT_ENTRY; Selector2: ULONG; LdtEntry2: LDT_ENTRY): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetLowEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetLowWaitHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetLowWaitHighEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4
- function NtSetLowWaitHighThread(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetLowWaitHighThread(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtSetQuotaInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_USER_QUOTA_INFORMATION;
- BufferLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetQuotaInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_USER_QUOTA_INFORMATION; BufferLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetSecurityObject(
- Handle : HANDLE;
- SecurityInformation : SECURITY_INFORMATION;
- SecurityDescriptor : PSECURITY_DESCRIPTOR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetSecurityObject(Handle: HANDLE; SecurityInformation: SECURITY_INFORMATION; SecurityDescriptor: PSECURITY_DESCRIPTOR): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetSystemEnvironmentValue(
- Name : PUNICODE_STRING;
- Value : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetSystemEnvironmentValue(Name: PUNICODE_STRING; Value: PUNICODE_STRING): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetSystemInformation(
- SystemInformationClass : SYSTEM_INFORMATION_CLASS;
- SystemInformation : PVOID;
- SystemInformationLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetSystemInformation(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: PVOID; SystemInformationLength: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetSystemPowerState(
- SystemAction : POWER_ACTION;
- MinSystemState : SYSTEM_POWER_STATE;
- Flags : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetSystemPowerState(SystemAction: POWER_ACTION; MinSystemState: SYSTEM_POWER_STATE; Flags: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetSystemTime(
- NewTime : PLARGE_INTEGER;
- OldTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetSystemTime(NewTime: PLARGE_INTEGER; OldTime: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtSetThreadExecutionState(
- ExecutionState : EXECUTION_STATE;
- PreviousExecutionState : PEXECUTION_STATE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetThreadExecutionState(ExecutionState: EXECUTION_STATE; PreviousExecutionState: PEXECUTION_STATE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetTimer(
- TimerHandle : HANDLE;
- DueTime : PLARGE_INTEGER;
- TimerApcRoutine : PTIMER_APC_ROUTINE;
- TimerContext : PVOID;
- Resume : BOOLEAN;
- Period : LONG;
- PreviousState : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetTimer(TimerHandle: HANDLE; DueTime: PLARGE_INTEGER; TimerApcRoutine: PTIMER_APC_ROUTINE; TimerContext: PVOID; Resume: BOOLEAN; Period: LONG; PreviousState: PBOOLEAN): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetTimerResolution(
- RequestedResolution : ULONG;
- Set_ : BOOLEAN;
- ActualResolution : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetTimerResolution(RequestedResolution: ULONG; Set_: BOOLEAN; ActualResolution: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtSetUuidSeed(
- UuidSeed : PUCHAR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetUuidSeed(UuidSeed: PUCHAR): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwSetValueKey().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING;
- TitleIndex : ULONG;
- Type_ : ULONG;
- Data : PVOID;
- DataSize : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetValueKey(KeyHandle: HANDLE; ValueName: PUNICODE_STRING; TitleIndex: ULONG; Type_: ULONG; Data: PVOID; DataSize: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSetVolumeInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- BufferLength : ULONG;
- VolumeInformationClass : FS_INFORMATION_CLASS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSetVolumeInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PVOID; BufferLength: ULONG; VolumeInformationClass: FS_INFORMATION_CLASS): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtShutdownSystem(
- Action : SHUTDOWN_ACTION
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwShutdownSystem(Action: SHUTDOWN_ACTION): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtSignalAndWaitForSingleObject(
- HandleToSignal : HANDLE;
- HandleToWait : HANDLE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSignalAndWaitForSingleObject(HandleToSignal: HANDLE; HandleToWait: HANDLE; Alertable: BOOLEAN; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtStartProfile(
- ProfileHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwStartProfile(ProfileHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtStopProfile(
- ProfileHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwStopProfile(ProfileHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function NtSuspendProcess(
- hProcess : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSuspendProcess(hProcess: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to SuspendThread() from Kernel32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSuspendThread(
- hThread : HANDLE;
- dwLastResumeCount : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSuspendThread(hThread: HANDLE; dwLastResumeCount: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtSystemDebugControl(
- ControlCode : DEBUG_CONTROL_CODE;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwSystemDebugControl(ControlCode: DEBUG_CONTROL_CODE; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID; OutputBufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function NtTerminateJobObject(
- JobHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwTerminateJobObject(JobHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtTerminateProcess(
- ProcessHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwTerminateProcess(ProcessHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtTerminateThread(
- ThreadHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwTerminateThread(ThreadHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtTestAlert(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwTestAlert(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtUnloadDriver(
- DriverServiceName : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwUnloadDriver(DriverServiceName: PUNICODE_STRING): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtUnloadKey(
- KeyObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwUnloadKey(KeyObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtUnlockFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- LockOffset : PULARGE_INTEGER;
- LockLength : PULARGE_INTEGER;
- Key : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwUnlockFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; LockOffset: PULARGE_INTEGER; LockLength: PULARGE_INTEGER; Key: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtUnlockVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- LockSize : PULONG;
- LockType : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwUnlockVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; LockSize: PULONG; LockType: ULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwUnmapViewOfSection().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtUnmapViewOfSection(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwUnmapViewOfSection(ProcessHandle: HANDLE; BaseAddress: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtVdmControl(
- ControlCode : ULONG;
- ControlData : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwVdmControl(ControlCode: ULONG; ControlData: PVOID): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3
- function NtW32Call(
- RoutineIndex : ULONG;
- Argument : PVOID;
- ArgumentLength : ULONG;
- Result_ : PPVOID;
- ResultLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwW32Call(RoutineIndex: ULONG; Argument: PVOID; ArgumentLength: ULONG; Result_: PPVOID; ResultLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWaitForMultipleObjects(
- HandleCount : ULONG;
- Handles : PHANDLE;
- WaitType : WAIT_TYPE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwWaitForMultipleObjects(HandleCount: ULONG; Handles: PHANDLE; WaitType: WAIT_TYPE; Alertable: BOOLEAN; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWaitForSingleObject(
- Handle : HANDLE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- function ZwWaitForSingleObject(Handle: HANDLE; Alertable: BOOLEAN; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWaitHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwWaitHighEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWaitLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwWaitLowEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK as ZwWriteFile().
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWriteFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwWriteFile(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PVOID; Length: ULONG; ByteOffset: PLARGE_INTEGER; Key: PULONG): NTSTATUS; stdcall;
- {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtWriteFileGather(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_SEGMENT_ELEMENT;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwWriteFileGather(FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_SEGMENT_ELEMENT; Length: ULONG; ByteOffset: PLARGE_INTEGER;
- Key: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWriteRequestData(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE;
- Index : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwWriteRequestData(PortHandle: HANDLE; Message: PPORT_MESSAGE; Index: ULONG; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWriteVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwWriteVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PVOID; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function NtYieldExecution(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- function ZwYieldExecution(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to MakeSelfRelativeSD() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAbsoluteToSelfRelativeSD(
- pAbsoluteSD : PSECURITY_DESCRIPTOR;
- pSelfRelativeSD : PSECURITY_DESCRIPTOR;
- lpdwBufferLength : LPDWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlAcquirePebLock(); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AddAccessAllowedAce() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAddAccessAllowedAce(
- pAcl: PACL;
- dwAceRevision : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AddAccessAllowedAceEx() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function RtlAddAccessAllowedAceEx(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AceFlags : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AddAccessDeniedAce() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAddAccessDeniedAce(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AddAccessDeniedAceEx() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function RtlAddAccessDeniedAceEx(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AceFlags : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AddAce() from Advapi32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAddAce(
- pAcl : PACL;
- dwAceRevision : DWORD;
- dwStartingAceIndex : DWORD;
- pAceList : PVOID;
- nAceListLength : DWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AddAuditAccessAce() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAddAuditAccessAce(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID;
- bAuditSuccess : BOOLEAN;
- bAuditFailure : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AddAuditAccessAceEx() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function RtlAddAuditAccessAceEx(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AceFlags : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID;
- bAuditSuccess : BOOLEAN;
- bAuditFailure : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlAddRange(
- RangeList : PRTL_RANGE_LIST;
- Start : ULONGLONG;
- End_ : ULONGLONG;
- Attributes : UCHAR;
- Flags : ULONG;
- UserData : PVOID;
- Owner : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlAddVectoredExceptionHandler(
- FirstHandler : ULONG;
- VectoredHandler : PVECTORED_EXCEPTION_HANDLER
- ): PVOID; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAdjustPrivilege(
- Privilege : ULONG;
- Enable : BOOLEAN;
- CurrentThread : BOOLEAN;
- Enabled : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AllocateAndInitializeSid() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAllocateAndInitializeSid(
- pIdentifierAuthority : PSID_IDENTIFIER_AUTHORITY;
- SubAuthorityCount : BYTE;
- nSubAuthority0 : DWORD;
- nSubAuthority1 : DWORD;
- nSubAuthority2 : DWORD;
- nSubAuthority3 : DWORD;
- nSubAuthority4 : DWORD;
- nSubAuthority5 : DWORD;
- nSubAuthority6 : DWORD;
- nSubAuthority7 : DWORD;
- var pSid : PSID
- ): BOOL; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function HeapAlloc() from Kernel32.dll is an export forwarder to
- // this function. This means you can refer to the documentation of
- // HeapAlloc()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAllocateHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- Size : ULONG
- ): PVOID; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAnsiCharToUnicodeChar(
- AnsiChar : CHAR
- ): WCHAR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAnsiStringToUnicodeSize(
- AnsiString : PANSI_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAnsiStringToUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PANSI_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAppendAsciizToString(
- DestinationString : PSTRING;
- AppendThisString : LPCSTR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAppendStringToString(
- DestinationString : PSTRING;
- AppendThisString : PSTRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAppendUnicodeStringToString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAppendUnicodeToString(
- Destination : PUNICODE_STRING;
- Source : LPCWSTR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AreAllAccessesGranted() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAreAllAccessesGranted(
- GrantedAccess : ACCESS_MASK;
- WantedAccess : ACCESS_MASK
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to AreAnyAccessesGranted() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAreAnyAccessesGranted(
- GrantedAccess : ACCESS_MASK;
- WantedAccess : ACCESS_MASK
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAreBitsClear(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- Length : ULONG
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlAreBitsSet(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- Length : ULONG
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Mentioned in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlAssert(
- FailedAssertion : PVOID;
- FileName : PVOID;
- LineNumber : ULONG;
- Message : PCHAR
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // The function RtlCaptureContext() from Kernel32.dll is an export
- // forwarder to this function. This means you can refer to the
- // documentation of RtlCaptureContext()!
- // Compatibility: WXP, 2K3
- procedure RtlCaptureContext(
- ContextRecord : PCONTEXT
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- {$IFNDEF JWA_INCLUDEMODE}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCharToInteger(
- Str : PCSZ;
- Base : ULONG;
- Value : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Somehow internally used.
- // Compatibility: W2K, WXP, 2K3
- procedure RtlCheckForOrphanedCriticalSections(
- hThread : HANDLE
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCheckRegistryKey(
- RelativeTo : ULONG;
- Path : PWSTR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlClearAllBits(
- BitMapHeader : PRTL_BITMAP
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlClearBits(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- NumberToClear : ULONG
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to HeapCompact() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCompactHeap(
- hHeap : HANDLE;
- dwFlags : ULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCompareMemory(
- Source1 : PVOID;
- Source2 : PVOID;
- Length : SIZE_T
- ): SIZE_T; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCompareMemoryUlong(
- Source : PVOID;
- Length : ULONG;
- Value : ULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCompareString(
- String1 : PSTRING;
- String2 : PSTRING;
- CaseInsensitive : BOOLEAN
- ): LONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCompareUnicodeString(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING;
- CaseInsensitive : BOOLEAN
- ): LONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlConvertLongToLargeInteger(
- SignedInteger : LONG
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // This function is very similar to ConvertSidToStringSid() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlConvertSidToUnicodeString(
- UnicodeString : PUNICODE_STRING;
- Sid : PSID;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlConvertUlongToLargeInteger(
- UnsignedInteger : ULONG
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlCopyLuid(
- Destination : PLUID;
- Source : PLUID
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlCopyRangeList(
- CopyRangeList : PRTL_RANGE_LIST;
- RangeList : PRTL_RANGE_LIST
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCopySecurityDescriptor(
- Source : PSECURITY_DESCRIPTOR;
- var Destination : PSECURITY_DESCRIPTOR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to CopySid() from Advapi32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCopySid(
- DestinationLength : ULONG;
- Destination : PSID;
- Source : PSID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlCopyString(
- DestinationString : PSTRING;
- SourceString : PSTRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlCopyUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to InitializeAcl() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateAcl(
- pAcl : PACL;
- nAclLength : DWORD;
- dwAclRevision : DWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to HeapCreate() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateHeap(
- dwOptions : ULONG;
- Base : PVOID;
- dwMaximumSize : SIZE_T;
- dwInitialSize : SIZE_T;
- UnknownOptional1 : PVOID;
- UnknownOptional2 : PVOID
- ): HANDLE; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateProcessParameters(
- ProcessParameters : PPRTL_USER_PROCESS_PARAMETERS;
- ImageFile : PUNICODE_STRING;
- DllPath : PUNICODE_STRING;
- CurrentDirectory : PUNICODE_STRING;
- CommandLine : PUNICODE_STRING;
- CreationFlags : ULONG;
- WindowTitle : PUNICODE_STRING;
- Desktop : PUNICODE_STRING;
- Reserved : PUNICODE_STRING;
- Reserved2 : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateQueryDebugBuffer(
- Size : ULONG;
- EventPair : BOOLEAN
- ): PDEBUG_BUFFER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateRegistryKey(
- RelativeTo : ULONG;
- Path : PWSTR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- Revision : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PWSTR
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateUnicodeStringFromAsciiz(
- DestinationString : PUNICODE_STRING;
- SourceString : PCHAR
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateUserProcess(
- ImageFileName : PUNICODE_STRING;
- Attributes : ULONG;
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS;
- ProcessSecurityDescriptor : PSECURITY_DESCRIPTOR;
- ThreadSecurityDescriptor : PSECURITY_DESCRIPTOR;
- ParentProcess : HANDLE;
- InheritHandles : BOOLEAN;
- DebugPort : HANDLE;
- ExceptionPort : HANDLE;
- ProcessInfo : PRTL_PROCESS_INFORMATION
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCreateUserThread(
- hProcess : HANDLE;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- CreateSuspended : BOOLEAN;
- StackZeroBits : ULONG;
- StackReserve : ULONG;
- StackCommit : ULONG;
- lpStartAddress : PTHREAD_START_ROUTINE;
- lpParameter : PVOID;
- phThread : PHANDLE;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // #->REVIEW LAST PARAMETER
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlCutoverTimeToSystemTime(
- TargetTimeFields : PTIME_FIELDS;
- Time : PLARGE_INTEGER;
- CurrentTime : PLARGE_INTEGER;
- bUnknown : BOOLEAN
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to DeleteAce() from Advapi32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDeleteAce(
- pAcl : PACL;
- dwAceIndex : DWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function DeleteCriticalSection() from Kernel32.dll is an export
- // forwarder to this function. This means you can refer to the
- // documentation of DeleteCriticalSection()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlDeleteCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlDeleteOwnersRanges(
- RangeList : PRTL_RANGE_LIST;
- Owner : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlDeleteRange(
- RangeList : PRTL_RANGE_LIST;
- Start : ULONGLONG;
- End_ : ULONGLONG;
- Owner : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDeleteRegistryValue(
- RelativeTo : ULONG;
- Path : LPCWSTR;
- ValueName : LPCWSTR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDeNormalizeProcessParams(
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS
- ): PRTL_USER_PROCESS_PARAMETERS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to HeapDestroy() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDestroyHeap(
- HeapHandle : HANDLE
- ): HANDLE; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDestroyProcessParameters(
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDestroyQueryDebugBuffer(
- DebugBuffer : PDEBUG_BUFFER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDetermineDosPathNameType_U(
- wcsPathNameType : PWSTR
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function RtlDnsHostNameToComputerName(
- ComputerName : PUNICODE_STRING;
- DnsName : PUNICODE_STRING;
- AllocateComputerNameString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDoesFileExists_U(
- FileName : PWSTR
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDosPathNameToNtPathName_U(
- DosName : PWSTR;
- var NtName : UNICODE_STRING;
- DosFilePath : PPWSTR;
- NtFilePath : PUNICODE_STRING
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlDosSearchPath_U(
- SearchPath : PWSTR;
- Name : PWSTR;
- Ext : PWSTR;
- cbBuf : ULONG;
- Buffer : PWSTR;
- var Shortname : PWSTR
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlDowncaseUnicodeChar(
- Source : WCHAR
- ): WCHAR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function RtlDowncaseUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // #->REVIEW First parameter must be 0..3, but details have to be
- // investigated!!!
- // Compatibility: WXP, 2K3
- function RtlDuplicateUnicodeString(
- AddTerminatingZero : ULONG;
- Source : PUNICODE_STRING;
- Destination : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- procedure RtlEnableEarlyCriticalSectionEventCreation(); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEnlargedIntegerMultiply(
- Multiplicand : LONG;
- Multiplier : LONG
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEnlargedUnsignedDivide(
- Dividend : ULARGE_INTEGER;
- Divisor : ULONG;
- Remainder : PULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEnlargedUnsignedMultiply(
- Multiplicand : ULONG;
- Multiplier : ULONG
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function EnterCriticalSection() from Kernel32.dll is an export
- // forwarder to this function. This means you can refer to the
- // documentation of EnterCriticalSection()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlEnterCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEqualComputerName(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEqualDomainName(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEqualLuid(
- Luid1 : PLUID;
- Luid2 : PLUID
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to EqualPrefixSid() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEqualPrefixSid(
- pSid1 : PSID;
- pSid2 : PSID
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to EqualSid() from Advapi32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEqualSid(
- pSid1 : PSID;
- pSid2 : PSID
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEqualString(
- String1 : PSTRING;
- String2 : PSTRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlEqualUnicodeString(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlEraseUnicodeString(
- Str : PUNICODE_STRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlExpandEnvironmentStrings_U(
- Environment : PVOID;
- Source : PUNICODE_STRING;
- Destination : PUNICODE_STRING;
- ReturnedLength : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlExtendedIntegerMultiply(
- Multiplicand : LARGE_INTEGER;
- Multiplier : LONG
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlExtendedLargeIntegerDivide(
- Dividend : LARGE_INTEGER;
- Divisor : ULONG;
- Remainder : PULONG
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlExtendedMagicDivide(
- Dividend : LARGE_INTEGER;
- MagicDivisor : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function RtlFillMemory() from Kernel32.dll is an export forwarder to
- // this function. This means you can refer to the documentation of
- // RtlFillMemory()!
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlFillMemory(
- Destination : PVOID;
- Length : SIZE_T;
- Fill : UCHAR
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlFillMemoryUlong(
- Destination : PVOID;
- Length : ULONG;
- Fill : ULONG
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Finds characters out of the set contained in CharactersToFind inside
- // UnicodeString - description of flags will follow. Only the lower 3 bits
- // are valid!!!
- // Compatibility: WXP, 2K3
- function RtlFindCharInUnicodeString(
- dwFlags : ULONG;
- UnicodeString : PUNICODE_STRING;
- CharactersToFind : PUNICODE_STRING;
- Positions : PUSHORT
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFindClearBits(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFindClearBitsAndSet(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlFindLastBackwardRunClear(
- BitMapHeader : PRTL_BITMAP;
- FromIndex : ULONG;
- StartingRunIndex : PULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlFindLeastSignificantBit(
- Set_ : ULONGLONG
- ): CCHAR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFindLongestRunClear(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : PULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function RtlFindMostSignificantBit(
- Set_ : ULONGLONG
- ): CCHAR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlFindNextForwardRunClear(
- BitMapHeader : PRTL_BITMAP;
- FromIndex : ULONG;
- StartingRunIndex : PULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlFindRange(
- RangeList : PRTL_RANGE_LIST;
- Minimum : ULONGLONG;
- Maximum : ULONGLONG;
- Length : ULONG;
- Alignment : ULONG;
- Flags : ULONG;
- AttributeAvailableMask : UCHAR;
- Context : PVOID;
- Callback : PRTL_CONFLICT_RANGE_CALLBACK;
- Start : PULONGLONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFindSetBits(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFindSetBitsAndClear(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to FindFirstFreeAce() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFirstFreeAce(
- pAcl : PACL;
- var pAce : PVOID
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFormatCurrentUserKeyPath(
- CurrentUserKeyPath : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlFreeAnsiString(
- AnsiString : PANSI_STRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function HeapFree() from Kernel32.dll is an export forwarder to this
- // function. This means you can refer to the documentation of HeapFree()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFreeHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- MemoryPointer : PVOID
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlFreeOemString(
- OemString : POEM_STRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- procedure RtlFreeRangeList(
- RangeList : PRTL_RANGE_LIST
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to FreeSid() from Advapi32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlFreeSid(
- pSid : PSID
- ): PVOID; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlFreeUnicodeString(
- UnicodeString : PUNICODE_STRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetAce() from Advapi32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetAce(
- pAcl : PACL;
- dwAceIndex : DWORD;
- var pAce : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Mentioned in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlGetCallersAddress(
- CallersAddress : PPVOID;
- CallersCaller : PPVOID
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSecurityDescriptorControl() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetControlSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var Control : SECURITY_DESCRIPTOR_CONTROL;
- var dwRevision : DWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetCurrentDirectory_U(
- MaximumLength : ULONG;
- Buffer : PWSTR
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlGetCurrentPeb(): PPEB; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSecurityDescriptorDacl() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetDaclSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var bDaclPresent : BOOLEAN;
- var Dacl : PACL;
- var bDaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlGetFirstRange(
- RangeList : PRTL_RANGE_LIST;
- Iterator : PRTL_RANGE_LIST_ITERATOR;
- var Range : PRTL_RANGE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetFullPathName_U(
- DosName : PWSTR;
- Size : ULONG;
- Buf : PWSTR;
- var Shortname : PWSTR
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSecurityDescriptorGroup() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetGroupSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var pGroup : PSID;
- var bGroupDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlGetLastNtStatus(): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetLongestNtPathLength(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlGetNextRange(
- Iterator : PRTL_RANGE_LIST_ITERATOR;
- var Range : PRTL_RANGE;
- MoveForwards : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetNtGlobalFlags(): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetNtProductType(
- var ProductType : ULONG
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // #->REVIEW LAST PARAMETER
- // Compatibility: WXP, 2K3
- procedure RtlGetNtVersionNumbers(
- var dwMajorVersion : ULONG;
- var dwMinorVersion : ULONG;
- UnknownCanBeNull : PDWORD
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSecurityDescriptorOwner() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetOwnerSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var pOwner : PSID;
- var OwnerDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetProcessHeaps() from Kernel32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetProcessHeaps(
- ArraySize : ULONG;
- HeapArray : PHANDLE
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSecurityDescriptorSacl() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlGetSaclSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var bSaclPresent : BOOLEAN;
- var Sacl : PACL;
- var bSaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetVersionEx() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlGetVersion(
- lpVersionInformation : PRTL_OSVERSIONINFOW
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlGUIDFromString(
- GuidString : PUNICODE_STRING;
- Guid : LPGUID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSidIdentifierAuthority() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlIdentifierAuthoritySid(
- Sid : PSID
- ): PSID_IDENTIFIER_AUTHORITY; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to ImageDirectoryEntryToData() from
- // Dbghelp.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlImageDirectoryEntryToData(
- ImageBase : HMODULE;
- MappedAsImage : BOOLEAN;
- DirectoryEntry : USHORT;
- Size : PULONG
- ): PVOID; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to ImageNtHeader() from Dbghelp.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlImageNtHeader(
- ImageBase : HMODULE
- ): PIMAGE_NT_HEADERS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to ImageNtHeader() from Dbghelp.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // With dwFlags equal 1 it shows the same behavior as RtlImageNtHeader()
- // Compatibility: 2K3
- function RtlImageNtHeaderEx(
- dwFlags : DWORD;
- ImageBase : HMODULE
- ): PIMAGE_NT_HEADERS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to ImageRvaToSection() from Dbghelp.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT4, W2K, WXP, 2K3
- function RtlImageRvaToSection(
- NtHeaders : PIMAGE_NT_HEADERS;
- ImageBase : HMODULE;
- Rva : ULONG
- ): PIMAGE_SECTION_HEADER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to ImageRvaToVa() from Dbghelp.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT4, W2K, WXP, 2K3
- function RtlImageRvaToVa(
- NtHeaders : PIMAGE_NT_HEADERS;
- ImageBase : HMODULE;
- Rva : ULONG;
- var LastRvaSection : PIMAGE_SECTION_HEADER
- ): PVOID; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to ImpersonateSelf() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlImpersonateSelf(
- ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlInitAnsiString(
- DestinationString : PANSI_STRING;
- SourceString : PCSZ
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: 2K3
- function RtlInitAnsiStringEx(
- DestinationString : PANSI_STRING;
- SourceString : PCSZ
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlInitializeBitMap(
- BitMapHeader : PRTL_BITMAP;
- BitMapBuffer : PULONG;
- SizeOfBitMap : ULONG
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlInitializeCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT4, W2K, WXP, 2K3
- function RtlInitializeCriticalSectionAndSpinCount(
- lpCriticalSection : PRTL_CRITICAL_SECTION;
- dwSpinCount : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- procedure RtlInitializeRangeList(
- RangeList : PRTL_RANGE_LIST
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to InitializeSid() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlInitializeSid(
- pSid : PSID;
- pIdentifierAuthority : PSID_IDENTIFIER_AUTHORITY;
- nSubAuthorityCount : UCHAR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: WXP, 2K3
- procedure RtlInitializeSListHead(
- ListHead : PSLIST_HEADER
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlInitString(
- DestinationString : PSTRING;
- SourceString : PCSZ
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlInitUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : LPCWSTR
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlInitUnicodeStringEx(
- DestinationString : PUNICODE_STRING;
- SourceString : LPCWSTR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlInt64ToUnicodeString(
- Value : ULONGLONG;
- Base : ULONG;
- Str : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlIntegerToChar(
- Value : ULONG;
- Base : ULONG;
- Length : ULONG;
- Str : PCHAR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlIntegerToUnicodeString(
- Value : ULONG;
- Base : ULONG;
- Str : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: WXP, 2K3
- function RtlInterlockedFlushSList(
- ListHead : PSLIST_HEADER
- ): PSLIST_ENTRY; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlInterlockedPopEntrySList(
- ListHead : PSLIST_HEADER
- ): PSLIST_ENTRY; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Compatibility: WXP, 2K3
- function RtlInterlockedPushEntrySList(
- ListHead : PSLIST_HEADER;
- ListEntry : PSLIST_ENTRY
- ): PSLIST_ENTRY; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlInvertRangeList(
- InvertedRangeList : PRTL_RANGE_LIST;
- RangeList : PRTL_RANGE_LIST
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlIpv4AddressToStringA(
- IP : PULONG;
- Buffer : LPSTR
- ): LPSTR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlIpv4AddressToStringW(
- IP : PULONG;
- Buffer : LPWSTR
- ): LPWSTR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlIsDosDeviceName_U(
- TestString : LPCWSTR
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlIsNameLegalDOS8Dot3(
- Name : PUNICODE_STRING;
- OemName : POEM_STRING;
- NameContainsSpaces : PBOOLEAN
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Compatibility: W2K, WXP
- function RtlIsRangeAvailable(
- RangeList : PRTL_RANGE_LIST;
- Start : ULONGLONG;
- End_ : ULONGLONG;
- Flags : ULONG;
- AttributeAvailableMask : UCHAR;
- Context : PVOID;
- Callback : PRTL_CONFLICT_RANGE_CALLBACK;
- Available : PBOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to IsTextUnicode() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlIsTextUnicode(
- lpBuffer : PVOID;
- cb : Integer;
- lpi : LPINT
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerAdd(
- Addend1 : LARGE_INTEGER;
- Addend2 : LARGE_INTEGER
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerArithmeticShift(
- LargeInteger : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerDivide(
- Dividend : LARGE_INTEGER;
- Divisor : LARGE_INTEGER;
- Remainder : PLARGE_INTEGER
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerNegate(
- NegateThis : LARGE_INTEGER
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerShiftLeft(
- LargeInteger : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerShiftRight(
- LargeInteger : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerSubtract(
- Number : LARGE_INTEGER;
- Subtrahend : LARGE_INTEGER
- ): LARGE_INTEGER; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLargeIntegerToChar(
- Value : PLARGE_INTEGER;
- Base : ULONG;
- BufferLength : ULONG;
- Buffer : PCHAR
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function LeaveCriticalSection() from Kernel32.dll is an export
- // forwarder to this function. This means you can refer to the
- // documentation of LeaveCriticalSection()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlLeaveCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSidLengthRequired() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLengthRequiredSid(
- nSubAuthorityCount : ULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSecurityDescriptorLength() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLengthSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetLengthSid() from Advapi32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLengthSid(
- pSid : PSID
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLocalTimeToSystemTime(
- LocalTime : PLARGE_INTEGER;
- SystemTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // This function is very similar to HeapLock() from Kernel32.dll. Refer to
- // the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLockHeap(
- hHeap : PVOID
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to MakeSelfRelativeSD() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlMakeSelfRelativeSD(
- pAbsoluteSD : PSECURITY_DESCRIPTOR;
- pSelfRelativeSD : PSECURITY_DESCRIPTOR;
- lpdwBufferLength : LPDWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to MapGenericMask() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlMapGenericMask(
- AccessMask : PACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Maps an error from the security subsystem to a native error status.
- // Compatibility: WXP, 2K3
- function RtlMapSecurityErrorToNtStatus(
- SecurityError : DWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP
- function RtlMergeRangeLists(
- MergedRangeList : PRTL_RANGE_LIST;
- RangeList1 : PRTL_RANGE_LIST;
- RangeList2 : PRTL_RANGE_LIST;
- Flags : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlMoveMemory(
- Destination : PVOID;
- Source : PVOID;
- Length : SIZE_T
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlNormalizeProcessParams(
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS
- ): PRTL_USER_PROCESS_PARAMETERS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlNtStatusToDosError(
- Status : NTSTATUS
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlNtStatusToDosErrorNoTeb(
- Status : NTSTATUS
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlNumberOfClearBits(
- BitMapHeader : PRTL_BITMAP
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlNumberOfSetBits(
- BitMapHeader : PRTL_BITMAP
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlOemStringToUnicodeSize(
- AnsiString : POEM_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlOemStringToUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : POEM_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlOemToUnicodeN(
- UnicodeString : PWSTR;
- UnicodeSize : ULONG;
- var ResultSize : ULONG;
- OemString : PCHAR;
- OemSize : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlOpenCurrentUser(
- samDesired : ACCESS_MASK;
- phkResult : PHKEY
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Either raises an exception of type STATUS_RESOURCE_NOT_OWNED or returns
- // a BOOLEAN value.
- // Should perhaps not be called explicitly.
- // Compatibility: WXP, 2K3
- function RtlpNotOwnerCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This is a private wrapper for NtCreateKey().
- // However, 2 of the parameters are not being used!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlpNtCreateKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- Unused1 : ULONG;
- Unused2 : ULONG;
- Disposition : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlpNtEnumerateSubKey(
- KeyHandle : HANDLE;
- SubKeyName : PUNICODE_STRING;
- Index : ULONG;
- Unused1 : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to NtCreateKey() from Ntdll.dll. Usually
- // the same or similar flags apply.
- // This is exactly the same as NtDeleteKey() by now!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlpNtMakeTemporaryKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlpNtOpenKey(
- KeyHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- Unused : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlpNtQueryValueKey(
- KeyHandle : HANDLE;
- Type_ : PULONG;
- Data : PVOID;
- DataSize : PULONG;
- Unused : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This is a private wrapper for NtSetValueKey().
- // The parameters of TitleIndex and ValueName are not being passed, that is
- // empty.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlpNtSetValueKey(
- KeyHandle : HANDLE;
- Type_ : ULONG;
- Data : PVOID;
- DataSize : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlPrefixString(
- String1 : PANSI_STRING;
- String2 : PANSI_STRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlPrefixUnicodeString(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: WXP, 2K3
- function RtlQueryDepthSList(
- ListHead : PSLIST_HEADER
- ): USHORT; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // VarValue has to have a buffer assigned big enough to hold the value.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlQueryEnvironmentVariable_U(
- Environment : PVOID;
- VarName : PUNICODE_STRING;
- VarValue : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetAclInformation() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlQueryInformationAcl(
- pAcl : PACL;
- pAclInformation : PVOID;
- nAclInformationLength : DWORD;
- dwAclInformationClass : ACL_INFORMATION_CLASS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlQueryProcessDebugInformation(
- ProcessId : ULONG;
- DebugInfoClassMask : ULONG;
- DebugBuffer : PDEBUG_BUFFER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlQueryRegistryValues(
- RelativeTo : ULONG;
- Path : LPCWSTR;
- QueryTable : PRTL_QUERY_REGISTRY_TABLE;
- Context : PVOID;
- Environment : PVOID
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlRaiseStatus(
- Status : NTSTATUS
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlRandom(
- Seed : PULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlRandomEx(
- Seed : PULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function HeapReAlloc() from Kernel32.dll is an export forwarder to
- // this function. This means you can refer to the documentation of
- // HeapReAlloc()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlReAllocateHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- lpMem : PVOID;
- dwBytes : SIZE_T
- ): PVOID; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlReleasePebLock(); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlRemoveVectoredExceptionHandler(
- VectoredHandlerHandle : PVOID
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- procedure RtlRestoreLastWin32Error(
- dwErrCode : DWORD
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlRunDecodeUnicodeString(
- CodeSeed : UCHAR;
- StringToDecode : PUNICODE_STRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // If CodeSeed == 0 it will be assigned a value by the function. Use this
- // very value in a call to RtlRunDecodeUnicodeString()! To decode the
- // string afterwards.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlRunEncodeUnicodeString(
- var CodeSeed : UCHAR;
- StringToEncode : PUNICODE_STRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlSecondsSince1970ToTime(
- SecondsSince1970 : ULONG;
- Time : PLARGE_INTEGER
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlSecondsSince1980ToTime(
- SecondsSince1980 : ULONG;
- Time : PLARGE_INTEGER
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to MakeAbsoluteSD() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSelfRelativeToAbsoluteSD(
- pSelfRelativeSD : PSECURITY_DESCRIPTOR;
- pAbsoluteSD : PSECURITY_DESCRIPTOR;
- lpdwAbsoluteSDSize : LPDWORD;
- pDacl : PACL;
- lpdwDaclSize : LPDWORD;
- pSacl : PACL;
- lpdwSaclSize : LPDWORD;
- pOwner : PSID;
- lpdwOwnerSize : LPDWORD;
- pPrimaryGroup : PSID;
- lpdwPrimaryGroupSize : LPDWORD
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlSetAllBits(
- BitMapHeader : PRTL_BITMAP
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlSetBits(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- NumberToSet : ULONG
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to SetSecurityDescriptorControl() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function RtlSetControlSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- ControlBitsOfInterest : SECURITY_DESCRIPTOR_CONTROL;
- ControlBitsToSet : SECURITY_DESCRIPTOR_CONTROL
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function SetCriticalSectionSpinCount() from Kernel32.dll is an
- // export forwarder to this function. This means you can refer to the
- // documentation of SetCriticalSectionSpinCount()!
- // Compatibility: NT4, W2K, WXP, 2K3
- function RtlSetCriticalSectionSpinCount(
- lpCriticalSection : PRTL_CRITICAL_SECTION;
- dwSpinCount : ULONG
- ): DWORD; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSetCurrentDirectory_U(
- NewCurrentDirectory : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSetDaclSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- DaclPresent : BOOLEAN;
- Dacl : PACL;
- DaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSetGroupSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- pGroup : PSID;
- bGroupDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to SetAclInformation() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSetInformationAcl(
- pAcl : PACL;
- pAclInformation : PVOID;
- nInformationLength : DWORD;
- dwAclInformationClass : ACL_INFORMATION_CLASS
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlSetLastWin32ErrorAndNtStatusFromNtStatus(
- Status : NTSTATUS
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSetOwnerSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- pOwner : PSID;
- bOwnerDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlSetProcessIsCritical(
- bIsCritical : BOOLEAN;
- pbOldIsCriticalValue : PBOOLEAN;
- bUnknownCanBeFalse : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to SetSecurityDescriptorSacl() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSetSaclSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- bSaclPresent : BOOLEAN;
- pSacl : PACL;
- SaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlSetThreadIsCritical(
- bIsCritical : BOOLEAN;
- pbOldIsCriticalValue : PBOOLEAN;
- bUnknownCanBeFalse : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function HeapSize() from Kernel32.dll is an export forwarder to this
- // function. This means you can refer to the documentation of HeapSize()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSizeHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- lpMem : PVOID
- ): SIZE_T; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlStringFromGUID(
- Guid : REFGUID;
- GuidString : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSidSubAuthorityCount() from
- // Advapi32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSubAuthorityCountSid(
- pSid : PSID
- ): PUCHAR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to GetSidSubAuthority() from Advapi32.dll.
- // Refer to the PSDK for additional information. Usually the same flags
- // apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSubAuthoritySid(
- pSid : PSID;
- nSubAuthority : DWORD
- ): PDWORD; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlSystemTimeToLocalTime(
- SystemTime : PLARGE_INTEGER;
- LocalTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlTimeFieldsToTime(
- TimeFields : PTIME_FIELDS;
- Time : PLARGE_INTEGER
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlTimeToElapsedTimeFields(
- Time : PLARGE_INTEGER;
- TimeFields : PTIME_FIELDS
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlTimeToSecondsSince1970(
- Time : PLARGE_INTEGER;
- ElapsedSeconds : PULONG
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlTimeToSecondsSince1980(
- Time : PLARGE_INTEGER;
- ElapsedSeconds : PULONG
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlTimeToTimeFields(
- Time : PLARGE_INTEGER;
- TimeFields : PTIME_FIELDS
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // The function TryEnterCriticalSection() from Kernel32.dll is an export
- // forwarder to this function. This means you can refer to the
- // documentation of TryEnterCriticalSection()!
- // Compatibility: NT4, W2K, WXP, 2K3
- function RtlTryEnterCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ): BOOL; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUnicodeStringToAnsiSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- {$IFNDEF JWA_INCLUDEMODE}
- function RtlUnicodeStringToAnsiString(
- DestinationString : PANSI_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUnicodeStringToCountedOemString(
- DestinationString : POEM_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUnicodeStringToInteger(
- Str : PUNICODE_STRING;
- Base : ULONG;
- Value : PULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUnicodeStringToOemSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUnicodeStringToOemString(
- DestinationString : POEM_STRING;
- SourceString : PCUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- {$IFNDEF JWA_INCLUDEMODE}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUnicodeToMultiByteSize(
- BytesInMultiByteString : PULONG;
- UnicodeString : PWSTR;
- BytesInUnicodeString : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUniform(
- Seed : PULONG
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- // The function RtlUnwind() from Kernel32.dll is an export forwarder to
- // this function. This means you can refer to the documentation of
- // RtlUnwind()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlUnwind(
- TargetFrame : PVOID;
- TargetIp : PVOID;
- ExceptionRecord : PEXCEPTION_RECORD;
- ReturnValue : PVOID
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpcaseUnicodeChar(
- SourceCharacter : WCHAR
- ): WCHAR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpcaseUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpcaseUnicodeStringToAnsiString(
- DestinationString : PSTRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpcaseUnicodeStringToCountedOemString(
- DestinationString : PSTRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpcaseUnicodeStringToOemString(
- DestinationString : PSTRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpcaseUnicodeToMultiByteN(
- MbString : PCHAR;
- MbSize : ULONG;
- var ResultSize : ULONG;
- UnicodeString : PWSTR;
- UnicodeSize : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpcaseUnicodeToOemN(
- OemString : PCHAR;
- OemSize : ULONG;
- var ResultSize : ULONG;
- UnicodeString : PWSTR;
- UnicodeSize : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUpperChar(
- Character : CHAR
- ): CHAR; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlUpperString(
- DestinationString : PSTRING;
- SourceString : PSTRING
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // #->REVIEW NUMBER OF PARAMETERS
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlValidAcl(
- Acl : PACL
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // This function is very similar to HeapValidate() from Kernel32.dll. Refer
- // to the PSDK for additional information. Usually the same flags apply.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlValidateHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- lpMem : LPCVOID
- ): BOOL; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: WXP, 2K3
- function RtlValidateUnicodeString(
- dwMustBeNull : ULONG;
- ValidateThis : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: W2K, WXP, 2K3
- function RtlValidRelativeSecurityDescriptor(
- SecurityDescriptorInput : PSECURITY_DESCRIPTOR;
- SecurityDescriptorLength : ULONG;
- RequiredInformation : SECURITY_INFORMATION
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlValidSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // #->REVIEW NUMBER OF PARAMETERS; XREF: see IsValidSid()!
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlValidSid(
- pSid : PSID
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: W2K, WXP, 2K3
- function RtlVerifyVersionInfo(
- VersionInfo : PRTL_OSVERSIONINFOEXW;
- TypeMask : ULONG;
- ConditionMask : ULONGLONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- function RtlVolumeDeviceToDosName(
- VolumeDeviceObject : PVOID;
- DosName : PUNICODE_STRING
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlWriteRegistryValue(
- RelativeTo : ULONG;
- Path : LPCWSTR;
- ValueName : LPCWSTR;
- ValueType : ULONG;
- ValueData : PVOID;
- ValueLength : ULONG
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlxAnsiStringToUnicodeSize(
- AnsiString : PANSI_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlxOemStringToUnicodeSize(
- AnsiString : POEM_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlxUnicodeStringToAnsiSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlxUnicodeStringToOemSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlZeroHeap(
- hHeap : HANDLE;
- dwFlags : ULONG
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // Documented in the DDK.
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- procedure RtlZeroMemory(
- Destination : PVOID;
- Length : SIZE_T
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$IFNDEF JWA_INCLUDEMODE}
- // This function is very similar to VerSetConditionMask() from
- // Kernel32.dll. Refer to the PSDK for additional information. Usually the
- // same flags apply.
- // Compatibility: W2K, WXP, 2K3
- function VerSetConditionMask(
- ConditionMask : ULONGLONG;
- dwTypeMask : DWORD;
- Condition : BYTE
- ): ULONGLONG; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- {$ENDIF JWA_INCLUDEMODE}
- //// 810 automatically created prototype entries.
- //// END : Function prototypes
- {$ENDIF JWA_IMPLEMENTATIONSECTION}
- {$IFNDEF JWA_OMIT_SECTIONS}
- implementation
- {$ENDIF JWA_OMIT_SECTIONS}
- {$IFNDEF JWA_INTERFACESECTION}
- // This function is actually declared as a macro defined as memcpy()
- procedure RtlCopyMemory(Destination: PVOID; Source: PVOID; Length: SIZE_T); stdcall;
- begin
- Move(Source^, Destination^, Length);
- end;
- // Own function to retrieve the process's heap handle
- function NtpGetProcessHeap(): HANDLE;
- asm
- {$ifdef CPU386}
- mov EAX, FS:[018h] // EAX now holds the TEB address
- mov EAX, [EAX+030h] // TEB+$30 holds the PEB address
- mov EAX, DWORD PTR [EAX+018h] // PEB+$30 holds the ProcessHeap's handle
- {$endif}
- {$ifdef cpux86_64}
- mov RAX, GS:[48] // EAX now holds the TEB address
- mov RAX, [RAX+060h] // TEB+$30 holds the PEB address
- mov RAX, DWORD PTR [RAX+48] // PEB+$30 holds the ProcessHeap's handle
- {$endif cpux86_64}
- end;
- // Own function to retrieve the thread environment block (TEB) pointer
- function NtpCurrentTeb(): PTEB;
- asm
- {$ifdef cpu386}
- mov EAX, FS:[018h]
- {$endif cpu386}
- {$ifdef cpux86_64}
- mov RAX, GS:[48]
- {$endif cpux86_64}
-
- end;
- // Own function to retrieve the process environment block (PEB) pointer
- function RtlpGetCurrentPeb(): PPEB;
- asm
- {$ifdef cpu386}
- mov EAX, FS:[018h]
- mov EAX, [EAX+030h]
- {$endif cpu386}
- {$ifdef cpux86_64}
- mov RAX, GS:[24]
- mov RAX, [RAX+060h]
- {$endif cpux86_64}
- end;
- (* Own function to swap bytes in 16bit values
- The RtlUshortByteSwap routine converts a USHORT from
- little-endian to big-endian, and vice versa. *)
- function RtlUshortByteSwap(Source: USHORT): USHORT;
- asm
- {$ifdef cpux86_64}
- mov CX, AX
- {$endif cpux86_64}
- rol AX, 08h
- end;
- (* Own function to swap bytes in 32bit values
- The RtlUlongByteSwap routine converts a ULONG from little-endian to
- big-endian, and vice versa. *)
- function RtlUlongByteSwap(Source: ULONG): ULONG;
- asm
- {$ifndef FPC}
- // This is not written as mnemonics to be compatible with D4!
- db 0Fh, 0C8h // "bswap EAX" can only be executed on 486+!!!
- {$else}
- {$ifdef cpux86_64}
- mov ECX, EAX
- {$endif cpux86_64}
- bswap EAX // .. but bswap EAX is also 64-bit!!! 0F C8 isn't.
- {$endif}
-
- (*
- // Does the same but perhaps slower ...
- // Source = $11223344
- rol AX, 08h // Source = $11224433
- rol EAX, 0Fh // Source = $44331122
- rol AX, 08h // Source = $44332211
- *)
- end;
- (* Own function to swap bytes in 64bit values
- The RtlUlonglongByteSwap routine converts a ULONGLONG from
- little-endian to big-endian, and vice versa. *)
- function RtlUlonglongByteSwap(Source: ULONGLONG): ULONGLONG;
- asm
- {$ifdef cpu386}
- mov EAX, [ESP+0Ch] // Get the high part of the ULONGLONG into EAX
- mov EDX, [ESP+08h] // Get the low part of the ULONGLONG into EDX
- // This is not written as mnemonics to be compatible with D4!
- db 0Fh, 0C8h // "bswap EAX" can only be executed on 486+!!!
- db 0Fh, 0CAh // "bswap EDX" can only be executed on 486+!!!
- // High part returns in EDX, low part in EAX
- {$endif}
- {$ifdef cpux86_64}
- MOV RCX,RAX
- BSWAP EAX
- {$endif cpux86_64}
- end;
- // Resembles the RtlValidateUnicodeString() function available from Windows XP
- // on exactly as it is on this OS version, except for the calling convention.
- function RtlpValidateUnicodeString(dwMustBeNull: DWORD; UnicodeString: PUNICODE_STRING): NTSTATUS;
- begin
- result := STATUS_INVALID_PARAMETER;
- if (dwMustBeNull = 0) then
- begin
- result := STATUS_SUCCESS;
- if (Assigned(UnicodeString)) then
- begin
- result := STATUS_INVALID_PARAMETER;
- if ((UnicodeString^.Length mod 2 = 0) and (UnicodeString^.MaximumLength mod 2 = 0) and (UnicodeString^.Length <= UnicodeString^.MaximumLength)) then
- if ((UnicodeString^.Length > 0) and (UnicodeString^.MaximumLength > 0)) then
- if (Assigned(UnicodeString^.Buffer)) then
- result := STATUS_SUCCESS;
- end;
- end;
- end;
- // Resembles the RtlValidateUnicodeString() function available from Windows XP
- // on, but does not require the first parameter which anyway must be zero.
- function RtlpValidateUnicodeString2(UnicodeString: PUNICODE_STRING): NTSTATUS;
- begin
- result := STATUS_SUCCESS;
- if (Assigned(UnicodeString)) then
- begin
- result := STATUS_INVALID_PARAMETER;
- if ((UnicodeString^.Length mod 2 = 0) and (UnicodeString^.MaximumLength mod 2 = 0) and (UnicodeString^.Length <= UnicodeString^.MaximumLength)) then
- if ((UnicodeString^.Length > 0) and (UnicodeString^.MaximumLength > 0)) then
- if (Assigned(UnicodeString^.Buffer)) then
- result := STATUS_SUCCESS;
- end;
- end;
- {$IFDEF RTDL}
- /// Function types
- type
- TFNCsrGetProcessId = function (): DWORD; stdcall;
- TFNDbgQueryDebugFilterState = function (ComponentId: ULONG; Level: ULONG): NTSTATUS; stdcall;
- TFNDbgSetDebugFilterState = function (ComponentId: ULONG; Level: ULONG; State: BOOLEAN): NTSTATUS; stdcall;
- TFNKiRaiseUserExceptionDispatcher = function (): ULONG; stdcall;
- TFNLdrAccessResource = function (hModule: HANDLE; ResourceDataEntry: PIMAGE_RESOURCE_DATA_ENTRY; Address: PPVOID; dwSize: PULONG): NTSTATUS; stdcall;
- TFNLdrAlternateResourcesEnabled = function (): BOOLEAN; stdcall;
- TFNLdrDisableThreadCalloutsForDll = function (hModule: HANDLE): NTSTATUS; stdcall;
- TFNLdrGetDllHandle = function (pwPath: PWORD; pReserved: PVOID; pusPath: PUNICODE_STRING; var phModule: HANDLE): NTSTATUS; stdcall;
- TFNLdrGetProcedureAddress = function (hModule: HANDLE; dwOrdinal: ULONG; psName: PSTRING; var pProcedure: PVOID): NTSTATUS; stdcall;
- TFNLdrLoadDll = function (pwPath: PWORD; pdwFlags: PDWORD; pusPath: PUNICODE_STRING; var phModule: HANDLE): NTSTATUS; stdcall;
- TFNLdrQueryImageFileExecutionOptions = function (pusImagePath: PUNICODE_STRING; pwOptionName: PWORD; dwRequestedType: DWORD; pData: PVOID; dwSize: DWORD; pdwSize: PDWORD): NTSTATUS; stdcall;
- TFNLdrQueryProcessModuleInformation = function (psmi: PSYSTEM_MODULE_INFORMATION; dwSize: DWORD; pdwSize: PDWORD): NTSTATUS; stdcall;
- TFNLdrShutdownProcess = procedure(); stdcall;
- TFNLdrShutdownThread = procedure(); stdcall;
- TFNLdrUnloadDll = function (hModule: HANDLE): NTSTATUS; stdcall;
- TFNNtAcceptConnectPort = function (PortHandle: PHANDLE; PortIdentifier: ULONG; Message: PPORT_MESSAGE; Accept: BOOLEAN; WriteSection: PPORT_SECTION_WRITE; ReadSection: PPORT_SECTION_READ): NTSTATUS; stdcall;
- TFNNtAccessCheck = function (SecurityDescriptor: PSECURITY_DESCRIPTOR; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; GenericMapping: PGENERIC_MAPPING; PrivilegeSet: PPRIVILEGE_SET; PrivilegeSetLength: PULONG;
- GrantedAccess: PACCESS_MASK; AccessStatus: PBOOLEAN): NTSTATUS; stdcall;
- TFNNtAccessCheckAndAuditAlarm = function (SubsystemName: PUNICODE_STRING; HandleId: PVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; DesiredAccess: ACCESS_MASK;
- GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOLEAN; GrantedAccess: PACCESS_MASK; AccessStatus: PBOOLEAN; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall;
- TFNNtAccessCheckByType = function (SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG;
- GenericMapping: PGENERIC_MAPPING; PrivilegeSet: PPRIVILEGE_SET; PrivilegeSetLength: PULONG; GrantedAccess: PACCESS_MASK; AccessStatus: PULONG): NTSTATUS; stdcall;
- TFNNtAccessCheckByTypeAndAuditAlarm = function (SubsystemName: PUNICODE_STRING; HandleId: PVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
- DesiredAccess: ACCESS_MASK; AuditType: AUDIT_EVENT_TYPE; Flags: ULONG; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG; GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOLEAN; GrantedAccess: PACCESS_MASK;
- AccessStatus: PULONG; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall;
- TFNNtAccessCheckByTypeResultList = function (SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG;
- GenericMapping: PGENERIC_MAPPING; PrivilegeSet: PPRIVILEGE_SET; PrivilegeSetLength: PULONG; GrantedAccessList: PACCESS_MASK; AccessStatusList: PULONG): NTSTATUS; stdcall;
- TFNNtAccessCheckByTypeResultListAndAuditAlarm = function (SubsystemName: PUNICODE_STRING; HandleId: PVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID;
- DesiredAccess: ACCESS_MASK; AuditType: AUDIT_EVENT_TYPE; Flags: ULONG; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG; GenericMapping: PGENERIC_MAPPING; ObjectCreation: BOOLEAN; GrantedAccessList: PACCESS_MASK;
- AccessStatusList: PULONG; GenerateOnClose: PULONG): NTSTATUS; stdcall;
- TFNNtAccessCheckByTypeResultListAndAuditAlarmByHandle = function (SubsystemName: PUNICODE_STRING; HandleId: PVOID; TokenHandle: HANDLE; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING;
- SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID; DesiredAccess: ACCESS_MASK; AuditType: AUDIT_EVENT_TYPE; Flags: ULONG; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG; GenericMapping: PGENERIC_MAPPING;
- ObjectCreation: BOOLEAN; GrantedAccessList: PACCESS_MASK; AccessStatusList: PULONG; GenerateOnClose: PULONG): NTSTATUS; stdcall;
- TFNNtAddAtom = function (Str: PWSTR; StringLength: ULONG; Atom: PUSHORT): NTSTATUS; stdcall;
- TFNNtAdjustGroupsToken = function (TokenHandle: HANDLE; ResetToDefault: BOOLEAN; NewState: PTOKEN_GROUPS; BufferLength: ULONG; PreviousState: PTOKEN_GROUPS; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtAdjustPrivilegesToken = function (TokenHandle: HANDLE; DisableAllPrivileges: BOOLEAN; NewState: PTOKEN_PRIVILEGES; BufferLength: ULONG; PreviousState: PTOKEN_PRIVILEGES; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtAlertResumeThread = function (ThreadHandle: HANDLE; PreviousSuspendCount: PULONG): NTSTATUS; stdcall;
- TFNNtAlertThread = function (ThreadHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtAllocateLocallyUniqueId = function (Luid: PLUID): NTSTATUS; stdcall;
- TFNNtAllocateUserPhysicalPages = function (ProcessHandle: HANDLE; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall;
- TFNNtAllocateUuids = function (UuidLastTimeAllocated: PLARGE_INTEGER; UuidDeltaTime: PULONG; UuidSequenceNumber: PULONG; UuidSeed: PUCHAR): NTSTATUS; stdcall;
- TFNNtAllocateVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PPVOID; ZeroBits: ULONG; AllocationSize: PULONG; AllocationType: ULONG; Protect: ULONG): NTSTATUS; stdcall;
- TFNNtAreMappedFilesTheSame = function (Address1: PVOID; Address2: PVOID): NTSTATUS; stdcall;
- TFNNtAssignProcessToJobObject = function (JobHandle: HANDLE; ProcessHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtCallbackReturn = function (Result_: PVOID; ResultLength: ULONG; Status: NTSTATUS): NTSTATUS; stdcall;
- TFNNtCancelDeviceWakeupRequest = function (DeviceHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtCancelIoFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall;
- TFNNtCancelTimer = function (TimerHandle: HANDLE; PreviousState: PBOOLEAN): NTSTATUS; stdcall;
- TFNNtClearEvent = function (EventHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtClose = function (Handle: HANDLE): NTSTATUS; stdcall;
- TFNNtCloseObjectAuditAlarm = function (SubsystemName: PUNICODE_STRING; HandleId: PVOID; GenerateOnClose: BOOLEAN): NTSTATUS; stdcall;
- TFNNtCompleteConnectPort = function (PortHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtConnectPort = function (PortHandle: PHANDLE; PortName: PUNICODE_STRING; SecurityQos: PSECURITY_QUALITY_OF_SERVICE; WriteSection: PPORT_SECTION_WRITE; ReadSection: PPORT_SECTION_READ; MaxMessageSize: PULONG; ConnectData: PVOID;
- ConnectDataLength: PULONG): NTSTATUS; stdcall;
- TFNNtContinue = function (Context: PCONTEXT; TestAlert: BOOLEAN): NTSTATUS; stdcall;
- TFNNtCreateChannel = function (ChannelHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtCreateDirectoryObject = function (DirectoryHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtCreateEvent = function (EventHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; EventType: EVENT_TYPE; InitialState: BOOLEAN): NTSTATUS; stdcall;
- TFNNtCreateEventPair = function (EventPairHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtCreateFile = function (FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; AllocationSize: PLARGE_INTEGER; FileAttributes: ULONG; ShareAccess: ULONG;
- CreateDisposition: ULONG; CreateOptions: ULONG; EaBuffer: PVOID; EaLength: ULONG): NTSTATUS; stdcall;
- TFNNtCreateIoCompletion = function (IoCompletionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; NumberOfConcurrentThreads: ULONG): NTSTATUS; stdcall;
- TFNNtCreateJobObject = function (JobHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtCreateKey = function (KeyHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TitleIndex: ULONG; Class_: PUNICODE_STRING; CreateOptions: ULONG; Disposition: PULONG): NTSTATUS; stdcall;
- TFNNtCreateMailslotFile = function (FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; CreateOptions: ULONG; Unknown: ULONG; MaxMessageSize: ULONG;
- ReadTimeout: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtCreateMutant = function (MutantHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InitialOwner: BOOLEAN): NTSTATUS; stdcall;
- TFNNtCreateNamedPipeFile = function (FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; ShareAccess: ULONG; CreateDisposition: ULONG; CreateOptions: ULONG;
- TypeMessage: BOOLEAN; ReadmodeMessage: BOOLEAN; Nonblocking: BOOLEAN; MaxInstances: ULONG; InBufferSize: ULONG; OutBufferSize: ULONG; DefaultTimeout: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtCreatePagingFile = function (FileName: PUNICODE_STRING; InitialSize: PULARGE_INTEGER; MaximumSize: PULARGE_INTEGER; Reserved: ULONG): NTSTATUS; stdcall;
- TFNNtCreatePort = function (PortHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES; MaxDataSize: ULONG; MaxMessageSize: ULONG; Reserved: ULONG): NTSTATUS; stdcall;
- TFNNtCreateProcess = function (ProcessHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InheritFromProcessHandle: HANDLE; InheritHandles: BOOLEAN; SectionHandle: HANDLE; DebugPort: HANDLE;
- ExceptionPort: HANDLE): NTSTATUS; stdcall;
- TFNNtCreateProfile = function (ProfileHandle: PHANDLE; ProcessHandle: HANDLE; Base: PVOID; Size: ULONG; BucketShift: ULONG; Buffer: PULONG; BufferLength: ULONG; Source: KPROFILE_SOURCE; ProcessorMask: ULONG): NTSTATUS; stdcall;
- TFNNtCreateSection = function (SectionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; SectionSize: PLARGE_INTEGER; Protect: ULONG; Attributes: ULONG; FileHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtCreateSemaphore = function (SemaphoreHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InitialCount: LONG; MaximumCount: LONG): NTSTATUS; stdcall;
- TFNNtCreateSymbolicLinkObject = function (SymbolicLinkHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TargetName: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNNtCreateThread = function (ThreadHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ProcessHandle: HANDLE; ClientId: PCLIENT_ID; ThreadContext: PCONTEXT; UserStack: PUSER_STACK;
- CreateSuspended: BOOLEAN): NTSTATUS; stdcall;
- TFNNtCreateTimer = function (TimerHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TimerType: TIMER_TYPE): NTSTATUS; stdcall;
- TFNNtCreateToken = function (TokenHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; Type_: TOKEN_TYPE; AuthenticationId: PLUID; ExpirationTime: PLARGE_INTEGER; User: PTOKEN_USER; Groups: PTOKEN_GROUPS;
- Privileges: PTOKEN_PRIVILEGES; Owner: PTOKEN_OWNER; PrimaryGroup: PTOKEN_PRIMARY_GROUP; DefaultDacl: PTOKEN_DEFAULT_DACL; Source: PTOKEN_SOURCE): NTSTATUS; stdcall;
- TFNNtCreateWaitablePort = function (PortHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES; MaxDataSize: ULONG; MaxMessageSize: ULONG; Reserved: ULONG): NTSTATUS; stdcall;
- TFNNtCurrentTeb = function (): PTEB; stdcall;
- TFNNtDebugActiveProcess = function (hProcess: HANDLE; hDebugObject: HANDLE): NTSTATUS; stdcall;
- TFNNtDelayExecution = function (Alertable: BOOLEAN; Interval: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtDeleteAtom = function (Atom: USHORT): NTSTATUS; stdcall;
- TFNNtDeleteFile = function (ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtDeleteKey = function (KeyHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtDeleteObjectAuditAlarm = function (SubsystemName: PUNICODE_STRING; HandleId: PVOID; GenerateOnClose: BOOLEAN): NTSTATUS; stdcall;
- TFNNtDeleteValueKey = function (KeyHandle: HANDLE; ValueName: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNNtDeviceIoControlFile = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; IoControlCode: ULONG; InputBuffer: PVOID; InputBufferLength: ULONG;
- OutputBuffer: PVOID; OutputBufferLength: ULONG): NTSTATUS; stdcall;
- TFNNtDisplayString = function (Str: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNNtDuplicateObject = function (SourceProcessHandle: HANDLE; SourceHandle: HANDLE; TargetProcessHandle: HANDLE; TargetHandle: PHANDLE; DesiredAccess: ACCESS_MASK; Attributes: ULONG; Options: ULONG): NTSTATUS; stdcall;
- TFNNtDuplicateToken = function (ExistingTokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; EffectiveOnly: BOOLEAN; TokenType: TOKEN_TYPE; NewTokenHandle: PHANDLE): NTSTATUS; stdcall;
- TFNNtEnumerateKey = function (KeyHandle: HANDLE; Index: ULONG; KeyInformationClass: KEY_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtEnumerateValueKey = function (KeyHandle: HANDLE; Index: ULONG; KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS; KeyValueInformation: PVOID; KeyValueInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtExtendSection = function (SectionHandle: HANDLE; SectionSize: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtFilterToken = function (ExistingTokenHandle: HANDLE; Flags: ULONG; SidsToDisable: PTOKEN_GROUPS; PrivilegesToDelete: PTOKEN_PRIVILEGES; SidsToRestricted: PTOKEN_GROUPS; NewTokenHandle: PHANDLE): NTSTATUS; stdcall;
- TFNNtFindAtom = function (Str: PWSTR; StringLength: ULONG; Atom: PUSHORT): NTSTATUS; stdcall;
- TFNNtFlushBuffersFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall;
- TFNNtFlushInstructionCache = function (ProcessHandle: HANDLE; BaseAddress: PVOID; FlushSize: ULONG): NTSTATUS; stdcall;
- TFNNtFlushKey = function (KeyHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtFlushVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PPVOID; FlushSize: PULONG; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall;
- TFNNtFlushWriteBuffer = function (): NTSTATUS; stdcall;
- TFNNtFreeUserPhysicalPages = function (ProcessHandle: HANDLE; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall;
- TFNNtFreeVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PPVOID; FreeSize: PULONG; FreeType: ULONG): NTSTATUS; stdcall;
- TFNNtFsControlFile = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; FsControlCode: ULONG; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID;
- OutputBufferLength: ULONG): NTSTATUS; stdcall;
- TFNNtGetContextThread = function (ThreadHandle: HANDLE; Context: PCONTEXT): NTSTATUS; stdcall;
- TFNNtGetCurrentProcessorNumber = function (): ULONG; stdcall;
- TFNNtGetDevicePowerState = function (DeviceHandle: HANDLE; DevicePowerState: PDEVICE_POWER_STATE): NTSTATUS; stdcall;
- TFNNtGetPlugPlayEvent = function (Reserved1: ULONG; Reserved2: ULONG; Buffer: PVOID; BufferLength: ULONG): NTSTATUS; stdcall;
- TFNNtGetTickCount = function (): ULONG; stdcall;
- TFNNtGetWriteWatch = function (ProcessHandle: HANDLE; Flags: ULONG; BaseAddress: PVOID; RegionSize: ULONG; Buffer: PULONG; BufferEntries: PULONG; Granularity: PULONG): NTSTATUS; stdcall;
- TFNNtImpersonateAnonymousToken = function (ThreadHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtImpersonateClientOfPort = function (PortHandle: HANDLE; Message: PPORT_MESSAGE): NTSTATUS; stdcall;
- TFNNtImpersonateThread = function (ThreadHandle: HANDLE; TargetThreadHandle: HANDLE; SecurityQos: PSECURITY_QUALITY_OF_SERVICE): NTSTATUS; stdcall;
- TFNNtInitializeRegistry = function (Setup: BOOLEAN): NTSTATUS; stdcall;
- TFNNtInitiatePowerAction = function (SystemAction: POWER_ACTION; MinSystemState: SYSTEM_POWER_STATE; Flags: ULONG; Asynchronous: BOOLEAN): NTSTATUS; stdcall;
- TFNNtIsSystemResumeAutomatic = function (): BOOLEAN; stdcall;
- TFNNtListenChannel = function (x: PVOID; y: PVOID): NTSTATUS; stdcall;
- TFNNtListenPort = function (PortHandle: HANDLE; Message: PPORT_MESSAGE): NTSTATUS; stdcall;
- TFNNtLoadDriver = function (DriverServiceName: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNNtLoadKey = function (KeyObjectAttributes: POBJECT_ATTRIBUTES; FileObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtLoadKey2 = function (KeyObjectAttributes: POBJECT_ATTRIBUTES; FileObjectAttributes: POBJECT_ATTRIBUTES; Flags: ULONG): NTSTATUS; stdcall;
- TFNNtLockFile = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; LockOffset: PULARGE_INTEGER; LockLength: PULARGE_INTEGER; Key: ULONG; FailImmediately: BOOLEAN;
- ExclusiveLock: BOOLEAN): NTSTATUS; stdcall;
- TFNNtLockVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PPVOID; LockSize: PULONG; LockType: ULONG): NTSTATUS; stdcall;
- TFNNtMakePermanentObject = function (Handle: HANDLE): NTSTATUS; stdcall;
- TFNNtMakeTemporaryObject = function (Handle: HANDLE): NTSTATUS; stdcall;
- TFNNtMapUserPhysicalPages = function (BaseAddress: PVOID; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall;
- TFNNtMapUserPhysicalPagesScatter = function (BaseAddresses: PPVOID; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall;
- TFNNtMapViewOfSection = function (SectionHandle: HANDLE; ProcessHandle: HANDLE; BaseAddress: PPVOID; ZeroBits: ULONG; CommitSize: ULONG; SectionOffset: PLARGE_INTEGER; ViewSize: PULONG; InheritDisposition: SECTION_INHERIT;
- AllocationType: ULONG; Protect: ULONG): NTSTATUS; stdcall;
- TFNNtNotifyChangeDirectoryFile = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_NOTIFY_INFORMATION; BufferLength: ULONG; NotifyFilter: ULONG;
- WatchSubtree: BOOLEAN): NTSTATUS; stdcall;
- TFNNtNotifyChangeKey = function (KeyHandle: HANDLE; EventHandle: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; NotifyFilter: ULONG; WatchSubtree: BOOLEAN; Buffer: PVOID; BufferLength: ULONG;
- Asynchronous: BOOLEAN): NTSTATUS; stdcall;
- TFNNtNotifyChangeMultipleKeys = function (KeyHandle: HANDLE; Flags: ULONG; KeyObjectAttributes: POBJECT_ATTRIBUTES; EventHandle: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; NotifyFilter: ULONG;
- WatchSubtree: BOOLEAN; Buffer: PVOID; BufferLength: ULONG; Asynchronous: BOOLEAN): NTSTATUS; stdcall;
- TFNNtOpenChannel = function (ChannelHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenDirectoryObject = function (DirectoryHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenEvent = function (EventHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenEventPair = function (EventPairHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenFile = function (FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; ShareAccess: ULONG; OpenOptions: ULONG): NTSTATUS; stdcall;
- TFNNtOpenIoCompletion = function (IoCompletionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenJobObject = function (JobHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenKey = function (KeyHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenMutant = function (MutantHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenObjectAuditAlarm = function (SubsystemName: PUNICODE_STRING; HandleId: PPVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; TokenHandle: HANDLE;
- DesiredAccess: ACCESS_MASK; GrantedAccess: ACCESS_MASK; Privileges: PPRIVILEGE_SET; ObjectCreation: BOOLEAN; AccessGranted: BOOLEAN; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall;
- TFNNtOpenProcess = function (ProcessHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ClientId: PCLIENT_ID): NTSTATUS; stdcall;
- TFNNtOpenProcessToken = function (ProcessHandle: HANDLE; DesiredAccess: ACCESS_MASK; TokenHandle: PHANDLE): NTSTATUS; stdcall;
- TFNNtOpenSection = function (SectionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenSemaphore = function (SemaphoreHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenSymbolicLinkObject = function (SymbolicLinkHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtOpenThread = function (ThreadHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ClientId: PCLIENT_ID): NTSTATUS; stdcall;
- TFNNtOpenThreadToken = function (ThreadHandle: HANDLE; DesiredAccess: ACCESS_MASK; OpenAsSelf: BOOLEAN; TokenHandle: PHANDLE): NTSTATUS; stdcall;
- TFNNtOpenTimer = function (TimerHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtPlugPlayControl = function (ControlCode: ULONG; Buffer: PVOID; BufferLength: ULONG): NTSTATUS; stdcall;
- TFNNtPowerInformation = function (PowerInformationLevel: POWER_INFORMATION_LEVEL; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID; OutputBufferLength: ULONG): NTSTATUS; stdcall;
- TFNNtPrivilegeCheck = function (TokenHandle: HANDLE; RequiredPrivileges: PPRIVILEGE_SET; Result_: PBOOLEAN): NTSTATUS; stdcall;
- TFNNtPrivilegeObjectAuditAlarm = function (SubsystemName: PUNICODE_STRING; HandleId: PVOID; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; Privileges: PPRIVILEGE_SET; AccessGranted: BOOLEAN): NTSTATUS; stdcall;
- TFNNtPrivilegedServiceAuditAlarm = function (SubsystemName: PUNICODE_STRING; ServiceName: PUNICODE_STRING; TokenHandle: HANDLE; Privileges: PPRIVILEGE_SET; AccessGranted: BOOLEAN): NTSTATUS; stdcall;
- TFNNtProtectVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PPVOID; ProtectSize: PULONG; NewProtect: ULONG; OldProtect: PULONG): NTSTATUS; stdcall;
- TFNNtPulseEvent = function (EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall;
- TFNNtQueryAttributesFile = function (ObjectAttributes: POBJECT_ATTRIBUTES; FileInformation: PFILE_BASIC_INFORMATION): NTSTATUS; stdcall;
- TFNNtQueryDefaultLocale = function (ThreadOrSystem: BOOLEAN; Locale: PLCID): NTSTATUS; stdcall;
- TFNNtQueryDefaultUILanguage = function (LanguageId: PLANGID): NTSTATUS; stdcall;
- TFNNtQueryDirectoryFile = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG;
- FileInformationClass: FILE_INFORMATION_CLASS; ReturnSingleEntry: BOOLEAN; FileName: PUNICODE_STRING; RestartScan: BOOLEAN): NTSTATUS; stdcall;
- TFNNtQueryDirectoryObject = function (DirectoryHandle: HANDLE; Buffer: PVOID; BufferLength: ULONG; ReturnSingleEntry: BOOLEAN; RestartScan: BOOLEAN; Context: PULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryEaFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_FULL_EA_INFORMATION; BufferLength: ULONG; ReturnSingleEntry: BOOLEAN; EaList: PFILE_GET_EA_INFORMATION; EaListLength: ULONG; EaIndex: PULONG;
- RestartScan: BOOLEAN): NTSTATUS; stdcall;
- TFNNtQueryEvent = function (EventHandle: HANDLE; EventInformationClass: EVENT_INFORMATION_CLASS; EventInformation: PVOID; EventInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryFullAttributesFile = function (ObjectAttributes: POBJECT_ATTRIBUTES; FileInformation: PFILE_NETWORK_OPEN_INFORMATION): NTSTATUS; stdcall;
- TFNNtQueryInformationAtom = function (Atom: USHORT; AtomInformationClass: ATOM_INFORMATION_CLASS; AtomInformation: PVOID; AtomInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryInformationFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG; FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS; stdcall;
- TFNNtQueryInformationJobObject = function (JobHandle: HANDLE; JobInformationClass: JOBOBJECTINFOCLASS; JobInformation: PVOID; JobInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryInformationPort = function (PortHandle: HANDLE; PortInformationClass: PORT_INFORMATION_CLASS; PortInformation: PVOID; PortInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryInformationProcess = function (ProcessHandle: HANDLE; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: PVOID; ProcessInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryInformationThread = function (ThreadHandle: HANDLE; ThreadInformationClass: THREADINFOCLASS; ThreadInformation: PVOID; ThreadInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryInformationToken = function (TokenHandle: HANDLE; TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: PVOID; TokenInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryInstallUILanguage = function (LanguageId: PLANGID): NTSTATUS; stdcall;
- TFNNtQueryIntervalProfile = function (Source: KPROFILE_SOURCE; Interval: PULONG): NTSTATUS; stdcall;
- TFNNtQueryIoCompletion = function (IoCompletionHandle: HANDLE; IoCompletionInformationClass: IO_COMPLETION_INFORMATION_CLASS; IoCompletionInformation: PVOID; IoCompletionInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryKey = function (KeyHandle: HANDLE; KeyInformationClass: KEY_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryMultipleValueKey = function (KeyHandle: HANDLE; ValueList: PKEY_VALUE_ENTRY; NumberOfValues: ULONG; Buffer: PVOID; Length: PULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryMutant = function (MutantHandle: HANDLE; MutantInformationClass: MUTANT_INFORMATION_CLASS; MutantInformation: PVOID; MutantInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryObject = function (ObjectHandle: HANDLE; ObjectInformationClass: OBJECT_INFORMATION_CLASS; ObjectInformation: PVOID; ObjectInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryOpenSubKeys = function (KeyObjectAttributes: POBJECT_ATTRIBUTES; NumberOfKey: PULONG): NTSTATUS; stdcall;
- TFNNtQueryPerformanceCounter = function (PerformanceCount: PLARGE_INTEGER; PerformanceFrequency: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtQueryPortInformationProcess = function (): ULONG; stdcall;
- TFNNtQueryQuotaInformationFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_USER_QUOTA_INFORMATION; BufferLength: ULONG; ReturnSingleEntry: BOOLEAN; QuotaList: PFILE_QUOTA_LIST_INFORMATION;
- QuotaListLength: ULONG; ResumeSid: PSID; RestartScan: BOOLEAN): NTSTATUS; stdcall;
- TFNNtQuerySection = function (SectionHandle: HANDLE; SectionInformationClass: SECTION_INFORMATION_CLASS; SectionInformation: PVOID; SectionInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQuerySecurityObject = function (Handle: HANDLE; RequestedInformation: SECURITY_INFORMATION; SecurityDescriptor: PSECURITY_DESCRIPTOR; SecurityDescriptorLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQuerySemaphore = function (SemaphoreHandle: HANDLE; SemaphoreInformationClass: SEMAPHORE_INFORMATION_CLASS; SemaphoreInformation: PVOID; SemaphoreInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQuerySymbolicLinkObject = function (SymbolicLinkHandle: HANDLE; TargetName: PUNICODE_STRING; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQuerySystemEnvironmentValue = function (Name: PUNICODE_STRING; Value: PVOID; ValueLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQuerySystemInformation = function (SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: PVOID; SystemInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQuerySystemTime = function (CurrentTime: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtQueryTimer = function (TimerHandle: HANDLE; TimerInformationClass: TIMER_INFORMATION_CLASS; TimerInformation: PVOID; TimerInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryTimerResolution = function (CoarsestResolution: PULONG; FinestResolution: PULONG; ActualResolution: PULONG): NTSTATUS; stdcall;
- TFNNtQueryValueKey = function (KeyHandle: HANDLE; ValueName: PUNICODE_STRING; KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS; KeyValueInformation: PVOID; KeyValueInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PVOID; MemoryInformationClass: MEMORY_INFORMATION_CLASS; MemoryInformation: PVOID; MemoryInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtQueryVolumeInformationFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; VolumeInformation: PVOID; VolumeInformationLength: ULONG; VolumeInformationClass: FS_INFORMATION_CLASS): NTSTATUS; stdcall;
- TFNNtQueueApcThread = function (ThreadHandle: HANDLE; ApcRoutine: PKNORMAL_ROUTINE; ApcContext: PVOID; Argument1: PVOID; Argument2: PVOID): NTSTATUS; stdcall;
- TFNNtRaiseException = function (ExceptionRecord: PEXCEPTION_RECORD; Context: PCONTEXT; SearchFrames: BOOLEAN): NTSTATUS; stdcall;
- TFNNtRaiseHardError = function (Status: NTSTATUS; NumberOfArguments: ULONG; StringArgumentsMask: ULONG; Arguments: PULONG; MessageBoxType: ULONG; MessageBoxResult: PULONG): NTSTATUS; stdcall;
- TFNNtReadFile = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PVOID; Length: ULONG; ByteOffset: PLARGE_INTEGER; Key: PULONG): NTSTATUS; stdcall;
- TFNNtReadFileScatter = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_SEGMENT_ELEMENT; Length: ULONG; ByteOffset: PLARGE_INTEGER;
- Key: PULONG): NTSTATUS; stdcall;
- TFNNtReadRequestData = function (PortHandle: HANDLE; Message: PPORT_MESSAGE; Index: ULONG; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtReadVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PVOID; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtRegisterThreadTerminatePort = function (PortHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtReleaseMutant = function (MutantHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall;
- TFNNtReleaseSemaphore = function (SemaphoreHandle: HANDLE; ReleaseCount: LONG; PreviousCount: PLONG): NTSTATUS; stdcall;
- TFNNtRemoveIoCompletion = function (IoCompletionHandle: HANDLE; CompletionKey: PULONG; CompletionValue: PULONG; IoStatusBlock: PIO_STATUS_BLOCK; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtRemoveProcessDebug = function (hProcess: HANDLE; hDebugObject: HANDLE): NTSTATUS; stdcall;
- TFNNtReplaceKey = function (NewFileObjectAttributes: POBJECT_ATTRIBUTES; KeyHandle: HANDLE; OldFileObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtReplyPort = function (PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall;
- TFNNtReplyWaitReceivePort = function (PortHandle: HANDLE; PortIdentifier: PULONG; ReplyMessage: PPORT_MESSAGE; Message: PPORT_MESSAGE): NTSTATUS; stdcall;
- TFNNtReplyWaitReceivePortEx = function (PortHandle: HANDLE; PortIdentifier: PULONG; ReplyMessage: PPORT_MESSAGE; Message: PPORT_MESSAGE; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtReplyWaitReplyPort = function (PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall;
- TFNNtReplyWaitSendChannel = function (x: PVOID; y: PVOID; z: PVOID): NTSTATUS; stdcall;
- TFNNtRequestDeviceWakeup = function (DeviceHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtRequestPort = function (PortHandle: HANDLE; RequestMessage: PPORT_MESSAGE): NTSTATUS; stdcall;
- TFNNtRequestWaitReplyPort = function (PortHandle: HANDLE; RequestMessage: PPORT_MESSAGE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall;
- TFNNtRequestWakeupLatency = function (Latency: LATENCY_TIME): NTSTATUS; stdcall;
- TFNNtResetEvent = function (EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall;
- TFNNtResetWriteWatch = function (ProcessHandle: HANDLE; BaseAddress: PVOID; RegionSize: ULONG): NTSTATUS; stdcall;
- TFNNtRestoreKey = function (KeyHandle: HANDLE; FileHandle: HANDLE; Flags: ULONG): NTSTATUS; stdcall;
- TFNNtResumeProcess = function (hProcess: HANDLE): NTSTATUS; stdcall;
- TFNNtResumeThread = function (hThread: HANDLE; dwResumeCount: PULONG): NTSTATUS; stdcall;
- TFNNtSaveKey = function (KeyHandle: HANDLE; FileHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSaveKeyEx = function (KeyHandle: HANDLE; FileHandle: HANDLE; Flags: DWORD): NTSTATUS; stdcall;
- TFNNtSaveMergedKeys = function (KeyHandle1: HANDLE; KeyHandle2: HANDLE; FileHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSecureConnectPort = function (PortHandle: PHANDLE; PortName: PUNICODE_STRING; SecurityQos: PSECURITY_QUALITY_OF_SERVICE; WriteSection: PPORT_SECTION_WRITE; ServerSid: PSID; ReadSection: PPORT_SECTION_READ; MaxMessageSize: PULONG;
- ConnectData: PVOID; ConnectDataLength: PULONG): NTSTATUS; stdcall;
- TFNNtSendWaitReplyChannel = function (x: PVOID; y: PVOID; z: PVOID; z2: PVOID): NTSTATUS; stdcall;
- TFNNtSetContextChannel = function (x: PVOID): NTSTATUS; stdcall;
- TFNNtSetContextThread = function (ThreadHandle: HANDLE; Context: PCONTEXT): NTSTATUS; stdcall;
- TFNNtSetDefaultHardErrorPort = function (PortHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSetDefaultLocale = function (ThreadOrSystem: BOOLEAN; Locale: LCID): NTSTATUS; stdcall;
- TFNNtSetDefaultUILanguage = function (LanguageId: LANGID): NTSTATUS; stdcall;
- TFNNtSetEaFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_FULL_EA_INFORMATION; BufferLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetEvent = function (EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall;
- TFNNtSetHighEventPair = function (EventPairHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSetHighWaitLowEventPair = function (EventPairHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSetHighWaitLowThread = function (): NTSTATUS; stdcall;
- TFNNtSetInformationFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG; FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS; stdcall;
- TFNNtSetInformationJobObject = function (JobHandle: HANDLE; JobInformationClass: JOBOBJECTINFOCLASS; JobInformation: PVOID; JobInformationLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetInformationKey = function (KeyHandle: HANDLE; KeyInformationClass: KEY_SET_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetInformationObject = function (ObjectHandle: HANDLE; ObjectInformationClass: OBJECT_INFORMATION_CLASS; ObjectInformation: PVOID; ObjectInformationLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetInformationProcess = function (ProcessHandle: HANDLE; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: PVOID; ProcessInformationLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetInformationThread = function (ThreadHandle: HANDLE; ThreadInformationClass: THREADINFOCLASS; ThreadInformation: PVOID; ThreadInformationLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetInformationToken = function (TokenHandle: HANDLE; TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: PVOID; TokenInformationLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetIntervalProfile = function (Interval: ULONG; Source: KPROFILE_SOURCE): NTSTATUS; stdcall;
- TFNNtSetIoCompletion = function (IoCompletionHandle: HANDLE; CompletionKey: ULONG; CompletionValue: ULONG; Status: NTSTATUS; Information: ULONG): NTSTATUS; stdcall;
- TFNNtSetLdtEntries = function (Selector1: ULONG; LdtEntry1: LDT_ENTRY; Selector2: ULONG; LdtEntry2: LDT_ENTRY): NTSTATUS; stdcall;
- TFNNtSetLowEventPair = function (EventPairHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSetLowWaitHighEventPair = function (EventPairHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSetLowWaitHighThread = function (): NTSTATUS; stdcall;
- TFNNtSetQuotaInformationFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_USER_QUOTA_INFORMATION; BufferLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetSecurityObject = function (Handle: HANDLE; SecurityInformation: SECURITY_INFORMATION; SecurityDescriptor: PSECURITY_DESCRIPTOR): NTSTATUS; stdcall;
- TFNNtSetSystemEnvironmentValue = function (Name: PUNICODE_STRING; Value: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNNtSetSystemInformation = function (SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: PVOID; SystemInformationLength: ULONG): NTSTATUS; stdcall;
- TFNNtSetSystemPowerState = function (SystemAction: POWER_ACTION; MinSystemState: SYSTEM_POWER_STATE; Flags: ULONG): NTSTATUS; stdcall;
- TFNNtSetSystemTime = function (NewTime: PLARGE_INTEGER; OldTime: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtSetThreadExecutionState = function (ExecutionState: EXECUTION_STATE; PreviousExecutionState: PEXECUTION_STATE): NTSTATUS; stdcall;
- TFNNtSetTimer = function (TimerHandle: HANDLE; DueTime: PLARGE_INTEGER; TimerApcRoutine: PTIMER_APC_ROUTINE; TimerContext: PVOID; Resume: BOOLEAN; Period: LONG; PreviousState: PBOOLEAN): NTSTATUS; stdcall;
- TFNNtSetTimerResolution = function (RequestedResolution: ULONG; Set_: BOOLEAN; ActualResolution: PULONG): NTSTATUS; stdcall;
- TFNNtSetUuidSeed = function (UuidSeed: PUCHAR): NTSTATUS; stdcall;
- TFNNtSetValueKey = function (KeyHandle: HANDLE; ValueName: PUNICODE_STRING; TitleIndex: ULONG; Type_: ULONG; Data: PVOID; DataSize: ULONG): NTSTATUS; stdcall;
- TFNNtSetVolumeInformationFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PVOID; BufferLength: ULONG; VolumeInformationClass: FS_INFORMATION_CLASS): NTSTATUS; stdcall;
- TFNNtShutdownSystem = function (Action: SHUTDOWN_ACTION): NTSTATUS; stdcall;
- TFNNtSignalAndWaitForSingleObject = function (HandleToSignal: HANDLE; HandleToWait: HANDLE; Alertable: BOOLEAN; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtStartProfile = function (ProfileHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtStopProfile = function (ProfileHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtSuspendProcess = function (hProcess: HANDLE): NTSTATUS; stdcall;
- TFNNtSuspendThread = function (hThread: HANDLE; dwLastResumeCount: PULONG): NTSTATUS; stdcall;
- TFNNtSystemDebugControl = function (ControlCode: DEBUG_CONTROL_CODE; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID; OutputBufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtTerminateJobObject = function (JobHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall;
- TFNNtTerminateProcess = function (ProcessHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall;
- TFNNtTerminateThread = function (ThreadHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall;
- TFNNtTestAlert = function (): NTSTATUS; stdcall;
- TFNNtUnloadDriver = function (DriverServiceName: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNNtUnloadKey = function (KeyObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall;
- TFNNtUnlockFile = function (FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; LockOffset: PULARGE_INTEGER; LockLength: PULARGE_INTEGER; Key: ULONG): NTSTATUS; stdcall;
- TFNNtUnlockVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PPVOID; LockSize: PULONG; LockType: ULONG): NTSTATUS; stdcall;
- TFNNtUnmapViewOfSection = function (ProcessHandle: HANDLE; BaseAddress: PVOID): NTSTATUS; stdcall;
- TFNNtVdmControl = function (ControlCode: ULONG; ControlData: PVOID): NTSTATUS; stdcall;
- TFNNtW32Call = function (RoutineIndex: ULONG; Argument: PVOID; ArgumentLength: ULONG; Result_: PPVOID; ResultLength: PULONG): NTSTATUS; stdcall;
- TFNNtWaitForMultipleObjects = function (HandleCount: ULONG; Handles: PHANDLE; WaitType: WAIT_TYPE; Alertable: BOOLEAN; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtWaitForSingleObject = function (Handle: HANDLE; Alertable: BOOLEAN; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNNtWaitHighEventPair = function (EventPairHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtWaitLowEventPair = function (EventPairHandle: HANDLE): NTSTATUS; stdcall;
- TFNNtWriteFile = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PVOID; Length: ULONG; ByteOffset: PLARGE_INTEGER; Key: PULONG): NTSTATUS; stdcall;
- TFNNtWriteFileGather = function (FileHandle: HANDLE; Event: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_SEGMENT_ELEMENT; Length: ULONG; ByteOffset: PLARGE_INTEGER;
- Key: PULONG): NTSTATUS; stdcall;
- TFNNtWriteRequestData = function (PortHandle: HANDLE; Message: PPORT_MESSAGE; Index: ULONG; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtWriteVirtualMemory = function (ProcessHandle: HANDLE; BaseAddress: PVOID; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;
- TFNNtYieldExecution = function (): NTSTATUS; stdcall;
- TFNRtlAbsoluteToSelfRelativeSD = function (pAbsoluteSD: PSECURITY_DESCRIPTOR; pSelfRelativeSD: PSECURITY_DESCRIPTOR; lpdwBufferLength: LPDWORD): NTSTATUS; stdcall;
- TFNRtlAcquirePebLock = procedure(); stdcall;
- TFNRtlAddAccessAllowedAce = function (pAcl: PACL; dwAceRevision: DWORD; AccessMask: ACCESS_MASK; pSid: PSID): NTSTATUS; stdcall;
- TFNRtlAddAccessAllowedAceEx = function (pAcl: PACL; dwAceRevision: DWORD; AceFlags: DWORD; AccessMask: ACCESS_MASK; pSid: PSID): NTSTATUS; stdcall;
- TFNRtlAddAccessDeniedAce = function (pAcl: PACL; dwAceRevision: DWORD; AccessMask: ACCESS_MASK; pSid: PSID): NTSTATUS; stdcall;
- TFNRtlAddAccessDeniedAceEx = function (pAcl: PACL; dwAceRevision: DWORD; AceFlags: DWORD; AccessMask: ACCESS_MASK; pSid: PSID): NTSTATUS; stdcall;
- TFNRtlAddAce = function (pAcl: PACL; dwAceRevision: DWORD; dwStartingAceIndex: DWORD; pAceList: PVOID; nAceListLength: DWORD): NTSTATUS; stdcall;
- TFNRtlAddAuditAccessAce = function (pAcl: PACL; dwAceRevision: DWORD; AccessMask: ACCESS_MASK; pSid: PSID; bAuditSuccess: BOOLEAN; bAuditFailure: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlAddAuditAccessAceEx = function (pAcl: PACL; dwAceRevision: DWORD; AceFlags: DWORD; AccessMask: ACCESS_MASK; pSid: PSID; bAuditSuccess: BOOLEAN; bAuditFailure: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlAddRange = function (RangeList: PRTL_RANGE_LIST; Start: ULONGLONG; End_: ULONGLONG; Attributes: UCHAR; Flags: ULONG; UserData: PVOID; Owner: PVOID): NTSTATUS; stdcall;
- TFNRtlAddVectoredExceptionHandler = function (FirstHandler: ULONG; VectoredHandler: PVECTORED_EXCEPTION_HANDLER): PVOID; stdcall;
- TFNRtlAdjustPrivilege = function (Privilege: ULONG; Enable: BOOLEAN; CurrentThread: BOOLEAN; Enabled: PBOOLEAN): NTSTATUS; stdcall;
- TFNRtlAllocateAndInitializeSid = function (pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY; SubAuthorityCount: BYTE; nSubAuthority0: DWORD; nSubAuthority1: DWORD; nSubAuthority2: DWORD; nSubAuthority3: DWORD; nSubAuthority4: DWORD;
- nSubAuthority5: DWORD; nSubAuthority6: DWORD; nSubAuthority7: DWORD; var pSid: PSID): BOOL; stdcall;
- TFNRtlAllocateHeap = function (hHeap: HANDLE; dwFlags: ULONG; Size: ULONG): PVOID; stdcall;
- TFNRtlAnsiCharToUnicodeChar = function (AnsiChar: CHAR): WCHAR; stdcall;
- TFNRtlAnsiStringToUnicodeSize = function (AnsiString: PANSI_STRING): ULONG; stdcall;
- TFNRtlAnsiStringToUnicodeString = function (DestinationString: PUNICODE_STRING; SourceString: PANSI_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlAppendAsciizToString = function (DestinationString: PSTRING; AppendThisString: LPCSTR): NTSTATUS; stdcall;
- TFNRtlAppendStringToString = function (DestinationString: PSTRING; AppendThisString: PSTRING): NTSTATUS; stdcall;
- TFNRtlAppendUnicodeStringToString = function (DestinationString: PUNICODE_STRING; SourceString: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlAppendUnicodeToString = function (Destination: PUNICODE_STRING; Source: LPCWSTR): NTSTATUS; stdcall;
- TFNRtlAreAllAccessesGranted = function (GrantedAccess: ACCESS_MASK; WantedAccess: ACCESS_MASK): BOOLEAN; stdcall;
- TFNRtlAreAnyAccessesGranted = function (GrantedAccess: ACCESS_MASK; WantedAccess: ACCESS_MASK): BOOLEAN; stdcall;
- TFNRtlAreBitsClear = function (BitMapHeader: PRTL_BITMAP; StartingIndex: ULONG; Length: ULONG): BOOLEAN; stdcall;
- TFNRtlAreBitsSet = function (BitMapHeader: PRTL_BITMAP; StartingIndex: ULONG; Length: ULONG): BOOLEAN; stdcall;
- TFNRtlAssert = procedure(FailedAssertion: PVOID; FileName: PVOID; LineNumber: ULONG; Message: PCHAR); stdcall;
- TFNRtlCaptureContext = procedure(ContextRecord: PCONTEXT); stdcall;
- TFNRtlCharToInteger = function (Str: PCSZ; Base: ULONG; Value: PULONG): NTSTATUS; stdcall;
- TFNRtlCheckForOrphanedCriticalSections = procedure(hThread: HANDLE); stdcall;
- TFNRtlCheckRegistryKey = function (RelativeTo: ULONG; Path: PWSTR): NTSTATUS; stdcall;
- TFNRtlClearAllBits = procedure(BitMapHeader: PRTL_BITMAP); stdcall;
- TFNRtlClearBits = procedure(BitMapHeader: PRTL_BITMAP; StartingIndex: ULONG; NumberToClear: ULONG); stdcall;
- TFNRtlCompactHeap = function (hHeap: HANDLE; dwFlags: ULONG): ULONG; stdcall;
- TFNRtlCompareMemory = function (Source1: PVOID; Source2: PVOID; Length: SIZE_T): SIZE_T; stdcall;
- TFNRtlCompareMemoryUlong = function (Source: PVOID; Length: ULONG; Value: ULONG): ULONG; stdcall;
- TFNRtlCompareString = function (String1: PSTRING; String2: PSTRING; CaseInsensitive: BOOLEAN): LONG; stdcall;
- TFNRtlCompareUnicodeString = function (String1: PUNICODE_STRING; String2: PUNICODE_STRING; CaseInsensitive: BOOLEAN): LONG; stdcall;
- TFNRtlConvertLongToLargeInteger = function (SignedInteger: LONG): LARGE_INTEGER; stdcall;
- TFNRtlConvertSidToUnicodeString = function (UnicodeString: PUNICODE_STRING; Sid: PSID; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlConvertUlongToLargeInteger = function (UnsignedInteger: ULONG): LARGE_INTEGER; stdcall;
- TFNRtlCopyLuid = procedure(Destination: PLUID; Source: PLUID); stdcall;
- TFNRtlCopyRangeList = function (CopyRangeList: PRTL_RANGE_LIST; RangeList: PRTL_RANGE_LIST): NTSTATUS; stdcall;
- TFNRtlCopySecurityDescriptor = function (Source: PSECURITY_DESCRIPTOR; var Destination: PSECURITY_DESCRIPTOR): NTSTATUS; stdcall;
- TFNRtlCopySid = function (DestinationLength: ULONG; Destination: PSID; Source: PSID): NTSTATUS; stdcall;
- TFNRtlCopyString = procedure(DestinationString: PSTRING; SourceString: PSTRING); stdcall;
- TFNRtlCopyUnicodeString = procedure(DestinationString: PUNICODE_STRING; SourceString: PUNICODE_STRING); stdcall;
- TFNRtlCreateAcl = function (pAcl: PACL; nAclLength: DWORD; dwAclRevision: DWORD): NTSTATUS; stdcall;
- TFNRtlCreateHeap = function (dwOptions: ULONG; Base: PVOID; dwMaximumSize: SIZE_T; dwInitialSize: SIZE_T; UnknownOptional1: PVOID; UnknownOptional2: PVOID): HANDLE; stdcall;
- TFNRtlCreateProcessParameters = function (ProcessParameters: PPRTL_USER_PROCESS_PARAMETERS; ImageFile: PUNICODE_STRING; DllPath: PUNICODE_STRING; CurrentDirectory: PUNICODE_STRING; CommandLine: PUNICODE_STRING; CreationFlags: ULONG;
- WindowTitle: PUNICODE_STRING; Desktop: PUNICODE_STRING; Reserved: PUNICODE_STRING; Reserved2: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlCreateQueryDebugBuffer = function (Size: ULONG; EventPair: BOOLEAN): PDEBUG_BUFFER; stdcall;
- TFNRtlCreateRegistryKey = function (RelativeTo: ULONG; Path: PWSTR): NTSTATUS; stdcall;
- TFNRtlCreateSecurityDescriptor = function (SecurityDescriptor: PSECURITY_DESCRIPTOR; Revision: ULONG): NTSTATUS; stdcall;
- TFNRtlCreateUnicodeString = function (DestinationString: PUNICODE_STRING; SourceString: PWSTR): BOOLEAN; stdcall;
- TFNRtlCreateUnicodeStringFromAsciiz = function (DestinationString: PUNICODE_STRING; SourceString: PCHAR): BOOLEAN; stdcall;
- TFNRtlCreateUserProcess = function (ImageFileName: PUNICODE_STRING; Attributes: ULONG; ProcessParameters: PRTL_USER_PROCESS_PARAMETERS; ProcessSecurityDescriptor: PSECURITY_DESCRIPTOR; ThreadSecurityDescriptor: PSECURITY_DESCRIPTOR;
- ParentProcess: HANDLE; InheritHandles: BOOLEAN; DebugPort: HANDLE; ExceptionPort: HANDLE; ProcessInfo: PRTL_PROCESS_INFORMATION): NTSTATUS; stdcall;
- TFNRtlCreateUserThread = function (hProcess: HANDLE; SecurityDescriptor: PSECURITY_DESCRIPTOR; CreateSuspended: BOOLEAN; StackZeroBits: ULONG; StackReserve: ULONG; StackCommit: ULONG; lpStartAddress: PTHREAD_START_ROUTINE;
- lpParameter: PVOID; phThread: PHANDLE; ClientId: PCLIENT_ID): NTSTATUS; stdcall;
- TFNRtlCutoverTimeToSystemTime = function (TargetTimeFields: PTIME_FIELDS; Time: PLARGE_INTEGER; CurrentTime: PLARGE_INTEGER; bUnknown: BOOLEAN): BOOLEAN; stdcall;
- TFNRtlDeNormalizeProcessParams = function (ProcessParameters: PRTL_USER_PROCESS_PARAMETERS): PRTL_USER_PROCESS_PARAMETERS; stdcall;
- TFNRtlDeleteAce = function (pAcl: PACL; dwAceIndex: DWORD): NTSTATUS; stdcall;
- TFNRtlDeleteCriticalSection = procedure(lpCriticalSection: PRTL_CRITICAL_SECTION); stdcall;
- TFNRtlDeleteOwnersRanges = function (RangeList: PRTL_RANGE_LIST; Owner: PVOID): NTSTATUS; stdcall;
- TFNRtlDeleteRange = function (RangeList: PRTL_RANGE_LIST; Start: ULONGLONG; End_: ULONGLONG; Owner: PVOID): NTSTATUS; stdcall;
- TFNRtlDeleteRegistryValue = function (RelativeTo: ULONG; Path: LPCWSTR; ValueName: LPCWSTR): NTSTATUS; stdcall;
- TFNRtlDestroyHeap = function (HeapHandle: HANDLE): HANDLE; stdcall;
- TFNRtlDestroyProcessParameters = function (ProcessParameters: PRTL_USER_PROCESS_PARAMETERS): NTSTATUS; stdcall;
- TFNRtlDestroyQueryDebugBuffer = function (DebugBuffer: PDEBUG_BUFFER): NTSTATUS; stdcall;
- TFNRtlDetermineDosPathNameType_U = function (wcsPathNameType: PWSTR): ULONG; stdcall;
- TFNRtlDnsHostNameToComputerName = function (ComputerName: PUNICODE_STRING; DnsName: PUNICODE_STRING; AllocateComputerNameString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlDoesFileExists_U = function (FileName: PWSTR): BOOLEAN; stdcall;
- TFNRtlDosPathNameToNtPathName_U = function (DosName: PWSTR; var NtName: UNICODE_STRING; DosFilePath: PPWSTR; NtFilePath: PUNICODE_STRING): BOOLEAN; stdcall;
- TFNRtlDosSearchPath_U = function (SearchPath: PWSTR; Name: PWSTR; Ext: PWSTR; cbBuf: ULONG; Buffer: PWSTR; var Shortname: PWSTR): ULONG; stdcall;
- TFNRtlDowncaseUnicodeChar = function (Source: WCHAR): WCHAR; stdcall;
- TFNRtlDowncaseUnicodeString = function (DestinationString: PUNICODE_STRING; SourceString: PUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlDuplicateUnicodeString = function (AddTerminatingZero: ULONG; Source: PUNICODE_STRING; Destination: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlEnableEarlyCriticalSectionEventCreation = procedure(); stdcall;
- TFNRtlEnlargedIntegerMultiply = function (Multiplicand: LONG; Multiplier: LONG): LARGE_INTEGER; stdcall;
- TFNRtlEnlargedUnsignedDivide = function (Dividend: ULARGE_INTEGER; Divisor: ULONG; Remainder: PULONG): ULONG; stdcall;
- TFNRtlEnlargedUnsignedMultiply = function (Multiplicand: ULONG; Multiplier: ULONG): LARGE_INTEGER; stdcall;
- TFNRtlEnterCriticalSection = procedure(lpCriticalSection: PRTL_CRITICAL_SECTION); stdcall;
- TFNRtlEqualComputerName = function (String1: PUNICODE_STRING; String2: PUNICODE_STRING): BOOLEAN; stdcall;
- TFNRtlEqualDomainName = function (String1: PUNICODE_STRING; String2: PUNICODE_STRING): BOOLEAN; stdcall;
- TFNRtlEqualLuid = function (Luid1: PLUID; Luid2: PLUID): BOOLEAN; stdcall;
- TFNRtlEqualPrefixSid = function (pSid1: PSID; pSid2: PSID): BOOLEAN; stdcall;
- TFNRtlEqualSid = function (pSid1: PSID; pSid2: PSID): BOOLEAN; stdcall;
- TFNRtlEqualString = function (String1: PSTRING; String2: PSTRING; CaseInsensitive: BOOLEAN): BOOLEAN; stdcall;
- TFNRtlEqualUnicodeString = function (String1: PUNICODE_STRING; String2: PUNICODE_STRING; CaseInsensitive: BOOLEAN): BOOLEAN; stdcall;
- TFNRtlEraseUnicodeString = procedure(Str: PUNICODE_STRING); stdcall;
- TFNRtlExpandEnvironmentStrings_U = function (Environment: PVOID; Source: PUNICODE_STRING; Destination: PUNICODE_STRING; ReturnedLength: PULONG): NTSTATUS; stdcall;
- TFNRtlExtendedIntegerMultiply = function (Multiplicand: LARGE_INTEGER; Multiplier: LONG): LARGE_INTEGER; stdcall;
- TFNRtlExtendedLargeIntegerDivide = function (Dividend: LARGE_INTEGER; Divisor: ULONG; Remainder: PULONG): LARGE_INTEGER; stdcall;
- TFNRtlExtendedMagicDivide = function (Dividend: LARGE_INTEGER; MagicDivisor: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall;
- TFNRtlFillMemory = procedure(Destination: PVOID; Length: SIZE_T; Fill: UCHAR); stdcall;
- TFNRtlFillMemoryUlong = procedure(Destination: PVOID; Length: ULONG; Fill: ULONG); stdcall;
- TFNRtlFindCharInUnicodeString = function (dwFlags: ULONG; UnicodeString: PUNICODE_STRING; CharactersToFind: PUNICODE_STRING; Positions: PUSHORT): NTSTATUS; stdcall;
- TFNRtlFindClearBits = function (BitMapHeader: PRTL_BITMAP; NumberToFind: ULONG; HintIndex: ULONG): ULONG; stdcall;
- TFNRtlFindClearBitsAndSet = function (BitMapHeader: PRTL_BITMAP; NumberToFind: ULONG; HintIndex: ULONG): ULONG; stdcall;
- TFNRtlFindLastBackwardRunClear = function (BitMapHeader: PRTL_BITMAP; FromIndex: ULONG; StartingRunIndex: PULONG): ULONG; stdcall;
- TFNRtlFindLeastSignificantBit = function (Set_: ULONGLONG): CCHAR; stdcall;
- TFNRtlFindLongestRunClear = function (BitMapHeader: PRTL_BITMAP; StartingIndex: PULONG): ULONG; stdcall;
- TFNRtlFindMostSignificantBit = function (Set_: ULONGLONG): CCHAR; stdcall;
- TFNRtlFindNextForwardRunClear = function (BitMapHeader: PRTL_BITMAP; FromIndex: ULONG; StartingRunIndex: PULONG): ULONG; stdcall;
- TFNRtlFindRange = function (RangeList: PRTL_RANGE_LIST; Minimum: ULONGLONG; Maximum: ULONGLONG; Length: ULONG; Alignment: ULONG; Flags: ULONG; AttributeAvailableMask: UCHAR; Context: PVOID; Callback: PRTL_CONFLICT_RANGE_CALLBACK;
- Start: PULONGLONG): NTSTATUS; stdcall;
- TFNRtlFindSetBits = function (BitMapHeader: PRTL_BITMAP; NumberToFind: ULONG; HintIndex: ULONG): ULONG; stdcall;
- TFNRtlFindSetBitsAndClear = function (BitMapHeader: PRTL_BITMAP; NumberToFind: ULONG; HintIndex: ULONG): ULONG; stdcall;
- TFNRtlFirstFreeAce = function (pAcl: PACL; var pAce: PVOID): BOOLEAN; stdcall;
- TFNRtlFormatCurrentUserKeyPath = function (CurrentUserKeyPath: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlFreeAnsiString = procedure(AnsiString: PANSI_STRING); stdcall;
- TFNRtlFreeHeap = function (hHeap: HANDLE; dwFlags: ULONG; MemoryPointer: PVOID): BOOLEAN; stdcall;
- TFNRtlFreeOemString = procedure(OemString: POEM_STRING); stdcall;
- TFNRtlFreeRangeList = procedure(RangeList: PRTL_RANGE_LIST); stdcall;
- TFNRtlFreeSid = function (pSid: PSID): PVOID; stdcall;
- TFNRtlFreeUnicodeString = procedure(UnicodeString: PUNICODE_STRING); stdcall;
- TFNRtlGUIDFromString = function (GuidString: PUNICODE_STRING; Guid: LPGUID): NTSTATUS; stdcall;
- TFNRtlGetAce = function (pAcl: PACL; dwAceIndex: DWORD; var pAce: PVOID): NTSTATUS; stdcall;
- TFNRtlGetCallersAddress = procedure(CallersAddress: PPVOID; CallersCaller: PPVOID); stdcall;
- TFNRtlGetControlSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; var Control: SECURITY_DESCRIPTOR_CONTROL; var dwRevision: DWORD): NTSTATUS; stdcall;
- TFNRtlGetCurrentDirectory_U = function (MaximumLength: ULONG; Buffer: PWSTR): ULONG; stdcall;
- TFNRtlGetCurrentPeb = function (): PPEB; stdcall;
- TFNRtlGetDaclSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; var bDaclPresent: BOOLEAN; var Dacl: PACL; var bDaclDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlGetFirstRange = function (RangeList: PRTL_RANGE_LIST; Iterator: PRTL_RANGE_LIST_ITERATOR; var Range: PRTL_RANGE): NTSTATUS; stdcall;
- TFNRtlGetFullPathName_U = function (DosName: PWSTR; Size: ULONG; Buf: PWSTR; var Shortname: PWSTR): ULONG; stdcall;
- TFNRtlGetGroupSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; var pGroup: PSID; var bGroupDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlGetLastNtStatus = function (): NTSTATUS; stdcall;
- TFNRtlGetLongestNtPathLength = function (): ULONG; stdcall;
- TFNRtlGetNextRange = function (Iterator: PRTL_RANGE_LIST_ITERATOR; var Range: PRTL_RANGE; MoveForwards: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlGetNtGlobalFlags = function (): ULONG; stdcall;
- TFNRtlGetNtProductType = function (var ProductType: ULONG): BOOLEAN; stdcall;
- TFNRtlGetNtVersionNumbers = procedure(var dwMajorVersion: ULONG; var dwMinorVersion: ULONG; UnknownCanBeNull: PDWORD); stdcall;
- TFNRtlGetOwnerSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; var pOwner: PSID; var OwnerDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlGetProcessHeaps = function (ArraySize: ULONG; HeapArray: PHANDLE): ULONG; stdcall;
- TFNRtlGetSaclSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; var bSaclPresent: BOOLEAN; var Sacl: PACL; var bSaclDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlGetVersion = function (lpVersionInformation: PRTL_OSVERSIONINFOW): NTSTATUS; stdcall;
- TFNRtlIdentifierAuthoritySid = function (Sid: PSID): PSID_IDENTIFIER_AUTHORITY; stdcall;
- TFNRtlImageDirectoryEntryToData = function (ImageBase: HMODULE; MappedAsImage: BOOLEAN; DirectoryEntry: USHORT; Size: PULONG): PVOID; stdcall;
- TFNRtlImageNtHeader = function (ImageBase: HMODULE): PIMAGE_NT_HEADERS; stdcall;
- TFNRtlImageNtHeaderEx = function (dwFlags: DWORD; ImageBase: HMODULE): PIMAGE_NT_HEADERS; stdcall;
- TFNRtlImageRvaToSection = function (NtHeaders: PIMAGE_NT_HEADERS; ImageBase: HMODULE; Rva: ULONG): PIMAGE_SECTION_HEADER; stdcall;
- TFNRtlImageRvaToVa = function (NtHeaders: PIMAGE_NT_HEADERS; ImageBase: HMODULE; Rva: ULONG; var LastRvaSection: PIMAGE_SECTION_HEADER): PVOID; stdcall;
- TFNRtlImpersonateSelf = function (ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL): NTSTATUS; stdcall;
- TFNRtlInitAnsiString = procedure(DestinationString: PANSI_STRING; SourceString: PCSZ); stdcall;
- TFNRtlInitAnsiStringEx = function (DestinationString: PANSI_STRING; SourceString: PCSZ): NTSTATUS; stdcall;
- TFNRtlInitString = procedure(DestinationString: PSTRING; SourceString: PCSZ); stdcall;
- TFNRtlInitUnicodeString = procedure(DestinationString: PUNICODE_STRING; SourceString: LPCWSTR); stdcall;
- TFNRtlInitUnicodeStringEx = function (DestinationString: PUNICODE_STRING; SourceString: LPCWSTR): NTSTATUS; stdcall;
- TFNRtlInitializeBitMap = procedure(BitMapHeader: PRTL_BITMAP; BitMapBuffer: PULONG; SizeOfBitMap: ULONG); stdcall;
- TFNRtlInitializeCriticalSection = function (lpCriticalSection: PRTL_CRITICAL_SECTION): NTSTATUS; stdcall;
- TFNRtlInitializeCriticalSectionAndSpinCount = function (lpCriticalSection: PRTL_CRITICAL_SECTION; dwSpinCount: ULONG): NTSTATUS; stdcall;
- TFNRtlInitializeRangeList = procedure(RangeList: PRTL_RANGE_LIST); stdcall;
- TFNRtlInitializeSListHead = procedure(ListHead: PSLIST_HEADER); stdcall;
- TFNRtlInitializeSid = function (pSid: PSID; pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY; nSubAuthorityCount: UCHAR): NTSTATUS; stdcall;
- TFNRtlInt64ToUnicodeString = function (Value: ULONGLONG; Base: ULONG; Str: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlIntegerToChar = function (Value: ULONG; Base: ULONG; Length: ULONG; Str: PCHAR): NTSTATUS; stdcall;
- TFNRtlIntegerToUnicodeString = function (Value: ULONG; Base: ULONG; Str: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlInterlockedFlushSList = function (ListHead: PSLIST_HEADER): PSLIST_ENTRY; stdcall;
- TFNRtlInterlockedPopEntrySList = function (ListHead: PSLIST_HEADER): PSLIST_ENTRY; stdcall;
- TFNRtlInterlockedPushEntrySList = function (ListHead: PSLIST_HEADER; ListEntry: PSLIST_ENTRY): PSLIST_ENTRY; stdcall;
- TFNRtlInvertRangeList = function (InvertedRangeList: PRTL_RANGE_LIST; RangeList: PRTL_RANGE_LIST): NTSTATUS; stdcall;
- TFNRtlIpv4AddressToStringA = function (IP: PULONG; Buffer: LPSTR): LPSTR; stdcall;
- TFNRtlIpv4AddressToStringW = function (IP: PULONG; Buffer: LPWSTR): LPWSTR; stdcall;
- TFNRtlIsDosDeviceName_U = function (TestString: LPCWSTR): ULONG; stdcall;
- TFNRtlIsNameLegalDOS8Dot3 = function (Name: PUNICODE_STRING; OemName: POEM_STRING; NameContainsSpaces: PBOOLEAN): BOOLEAN; stdcall;
- TFNRtlIsRangeAvailable = function (RangeList: PRTL_RANGE_LIST; Start: ULONGLONG; End_: ULONGLONG; Flags: ULONG; AttributeAvailableMask: UCHAR; Context: PVOID; Callback: PRTL_CONFLICT_RANGE_CALLBACK; Available: PBOOLEAN): NTSTATUS;
- stdcall;
- TFNRtlIsTextUnicode = function (lpBuffer: PVOID; cb: Integer; lpi: LPINT): BOOLEAN; stdcall;
- TFNRtlLargeIntegerAdd = function (Addend1: LARGE_INTEGER; Addend2: LARGE_INTEGER): LARGE_INTEGER; stdcall;
- TFNRtlLargeIntegerArithmeticShift = function (LargeInteger: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall;
- TFNRtlLargeIntegerDivide = function (Dividend: LARGE_INTEGER; Divisor: LARGE_INTEGER; Remainder: PLARGE_INTEGER): LARGE_INTEGER; stdcall;
- TFNRtlLargeIntegerNegate = function (NegateThis: LARGE_INTEGER): LARGE_INTEGER; stdcall;
- TFNRtlLargeIntegerShiftLeft = function (LargeInteger: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall;
- TFNRtlLargeIntegerShiftRight = function (LargeInteger: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall;
- TFNRtlLargeIntegerSubtract = function (Number: LARGE_INTEGER; Subtrahend: LARGE_INTEGER): LARGE_INTEGER; stdcall;
- TFNRtlLargeIntegerToChar = function (Value: PLARGE_INTEGER; Base: ULONG; BufferLength: ULONG; Buffer: PCHAR): NTSTATUS; stdcall;
- TFNRtlLeaveCriticalSection = procedure(lpCriticalSection: PRTL_CRITICAL_SECTION); stdcall;
- TFNRtlLengthRequiredSid = function (nSubAuthorityCount: ULONG): ULONG; stdcall;
- TFNRtlLengthSecurityDescriptor = function (SecurityDescriptor: PSECURITY_DESCRIPTOR): ULONG; stdcall;
- TFNRtlLengthSid = function (pSid: PSID): ULONG; stdcall;
- TFNRtlLocalTimeToSystemTime = function (LocalTime: PLARGE_INTEGER; SystemTime: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNRtlLockHeap = function (hHeap: PVOID): BOOLEAN; stdcall;
- TFNRtlMakeSelfRelativeSD = function (pAbsoluteSD: PSECURITY_DESCRIPTOR; pSelfRelativeSD: PSECURITY_DESCRIPTOR; lpdwBufferLength: LPDWORD): NTSTATUS; stdcall;
- TFNRtlMapGenericMask = procedure(AccessMask: PACCESS_MASK; GenericMapping: PGENERIC_MAPPING); stdcall;
- TFNRtlMapSecurityErrorToNtStatus = function (SecurityError: DWORD): NTSTATUS; stdcall;
- TFNRtlMergeRangeLists = function (MergedRangeList: PRTL_RANGE_LIST; RangeList1: PRTL_RANGE_LIST; RangeList2: PRTL_RANGE_LIST; Flags: ULONG): NTSTATUS; stdcall;
- TFNRtlMoveMemory = procedure(Destination: PVOID; Source: PVOID; Length: SIZE_T); stdcall;
- TFNRtlNormalizeProcessParams = function (ProcessParameters: PRTL_USER_PROCESS_PARAMETERS): PRTL_USER_PROCESS_PARAMETERS; stdcall;
- TFNRtlNtStatusToDosError = function (Status: NTSTATUS): ULONG; stdcall;
- TFNRtlNtStatusToDosErrorNoTeb = function (Status: NTSTATUS): ULONG; stdcall;
- TFNRtlNumberOfClearBits = function (BitMapHeader: PRTL_BITMAP): ULONG; stdcall;
- TFNRtlNumberOfSetBits = function (BitMapHeader: PRTL_BITMAP): ULONG; stdcall;
- TFNRtlOemStringToUnicodeSize = function (AnsiString: POEM_STRING): ULONG; stdcall;
- TFNRtlOemStringToUnicodeString = function (DestinationString: PUNICODE_STRING; SourceString: POEM_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlOemToUnicodeN = function (UnicodeString: PWSTR; UnicodeSize: ULONG; var ResultSize: ULONG; OemString: PCHAR; OemSize: ULONG): NTSTATUS; stdcall;
- TFNRtlOpenCurrentUser = function (samDesired: ACCESS_MASK; phkResult: PHKEY): NTSTATUS; stdcall;
- TFNRtlPrefixString = function (String1: PANSI_STRING; String2: PANSI_STRING; CaseInsensitive: BOOLEAN): BOOLEAN; stdcall;
- TFNRtlPrefixUnicodeString = function (String1: PUNICODE_STRING; String2: PUNICODE_STRING; CaseInsensitive: BOOLEAN): BOOLEAN; stdcall;
- TFNRtlQueryDepthSList = function (ListHead: PSLIST_HEADER): USHORT; stdcall;
- TFNRtlQueryEnvironmentVariable_U = function (Environment: PVOID; VarName: PUNICODE_STRING; VarValue: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlQueryInformationAcl = function (pAcl: PACL; pAclInformation: PVOID; nAclInformationLength: DWORD; dwAclInformationClass: ACL_INFORMATION_CLASS): NTSTATUS; stdcall;
- TFNRtlQueryProcessDebugInformation = function (ProcessId: ULONG; DebugInfoClassMask: ULONG; DebugBuffer: PDEBUG_BUFFER): NTSTATUS; stdcall;
- TFNRtlQueryRegistryValues = function (RelativeTo: ULONG; Path: LPCWSTR; QueryTable: PRTL_QUERY_REGISTRY_TABLE; Context: PVOID; Environment: PVOID): NTSTATUS; stdcall;
- TFNRtlRaiseStatus = procedure(Status: NTSTATUS); stdcall;
- TFNRtlRandom = function (Seed: PULONG): ULONG; stdcall;
- TFNRtlRandomEx = function (Seed: PULONG): ULONG; stdcall;
- TFNRtlReAllocateHeap = function (hHeap: HANDLE; dwFlags: ULONG; lpMem: PVOID; dwBytes: SIZE_T): PVOID; stdcall;
- TFNRtlReleasePebLock = procedure(); stdcall;
- TFNRtlRemoveVectoredExceptionHandler = function (VectoredHandlerHandle: PVOID): ULONG; stdcall;
- TFNRtlRestoreLastWin32Error = procedure(dwErrCode: DWORD); stdcall;
- TFNRtlRunDecodeUnicodeString = procedure(CodeSeed: UCHAR; StringToDecode: PUNICODE_STRING); stdcall;
- TFNRtlRunEncodeUnicodeString = procedure(var CodeSeed: UCHAR; StringToEncode: PUNICODE_STRING); stdcall;
- TFNRtlSecondsSince1970ToTime = procedure(SecondsSince1970: ULONG; Time: PLARGE_INTEGER); stdcall;
- TFNRtlSecondsSince1980ToTime = procedure(SecondsSince1980: ULONG; Time: PLARGE_INTEGER); stdcall;
- TFNRtlSelfRelativeToAbsoluteSD = function (pSelfRelativeSD: PSECURITY_DESCRIPTOR; pAbsoluteSD: PSECURITY_DESCRIPTOR; lpdwAbsoluteSDSize: LPDWORD; pDacl: PACL; lpdwDaclSize: LPDWORD; pSacl: PACL; lpdwSaclSize: LPDWORD; pOwner: PSID;
- lpdwOwnerSize: LPDWORD; pPrimaryGroup: PSID; lpdwPrimaryGroupSize: LPDWORD): NTSTATUS; stdcall;
- TFNRtlSetAllBits = procedure(BitMapHeader: PRTL_BITMAP); stdcall;
- TFNRtlSetBits = procedure(BitMapHeader: PRTL_BITMAP; StartingIndex: ULONG; NumberToSet: ULONG); stdcall;
- TFNRtlSetControlSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL; ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL): NTSTATUS; stdcall;
- TFNRtlSetCriticalSectionSpinCount = function (lpCriticalSection: PRTL_CRITICAL_SECTION; dwSpinCount: ULONG): DWORD; stdcall;
- TFNRtlSetCurrentDirectory_U = function (NewCurrentDirectory: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlSetDaclSecurityDescriptor = function (SecurityDescriptor: PSECURITY_DESCRIPTOR; DaclPresent: BOOLEAN; Dacl: PACL; DaclDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlSetGroupSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; pGroup: PSID; bGroupDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlSetInformationAcl = function (pAcl: PACL; pAclInformation: PVOID; nInformationLength: DWORD; dwAclInformationClass: ACL_INFORMATION_CLASS): NTSTATUS; stdcall;
- TFNRtlSetLastWin32ErrorAndNtStatusFromNtStatus = function (Status: NTSTATUS): ULONG; stdcall;
- TFNRtlSetOwnerSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; pOwner: PSID; bOwnerDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlSetProcessIsCritical = function (bIsCritical: BOOLEAN; pbOldIsCriticalValue: PBOOLEAN; bUnknownCanBeFalse: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlSetSaclSecurityDescriptor = function (pSecurityDescriptor: PSECURITY_DESCRIPTOR; bSaclPresent: BOOLEAN; pSacl: PACL; SaclDefaulted: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlSetThreadIsCritical = function (bIsCritical: BOOLEAN; pbOldIsCriticalValue: PBOOLEAN; bUnknownCanBeFalse: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlSizeHeap = function (hHeap: HANDLE; dwFlags: ULONG; lpMem: PVOID): SIZE_T; stdcall;
- TFNRtlStringFromGUID = function (Guid: REFGUID; GuidString: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlSubAuthorityCountSid = function (pSid: PSID): PUCHAR; stdcall;
- TFNRtlSubAuthoritySid = function (pSid: PSID; nSubAuthority: DWORD): PDWORD; stdcall;
- TFNRtlSystemTimeToLocalTime = function (SystemTime: PLARGE_INTEGER; LocalTime: PLARGE_INTEGER): NTSTATUS; stdcall;
- TFNRtlTimeFieldsToTime = function (TimeFields: PTIME_FIELDS; Time: PLARGE_INTEGER): BOOLEAN; stdcall;
- TFNRtlTimeToElapsedTimeFields = procedure(Time: PLARGE_INTEGER; TimeFields: PTIME_FIELDS); stdcall;
- TFNRtlTimeToSecondsSince1970 = function (Time: PLARGE_INTEGER; ElapsedSeconds: PULONG): BOOLEAN; stdcall;
- TFNRtlTimeToSecondsSince1980 = function (Time: PLARGE_INTEGER; ElapsedSeconds: PULONG): BOOLEAN; stdcall;
- TFNRtlTimeToTimeFields = procedure(Time: PLARGE_INTEGER; TimeFields: PTIME_FIELDS); stdcall;
- TFNRtlTryEnterCriticalSection = function (lpCriticalSection: PRTL_CRITICAL_SECTION): BOOL; stdcall;
- TFNRtlUnicodeStringToAnsiSize = function (UnicodeString: PUNICODE_STRING): ULONG; stdcall;
- TFNRtlUnicodeStringToAnsiString = function (DestinationString: PANSI_STRING; SourceString: PUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlUnicodeStringToCountedOemString = function (DestinationString: POEM_STRING; SourceString: PUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlUnicodeStringToInteger = function (Str: PUNICODE_STRING; Base: ULONG; Value: PULONG): NTSTATUS; stdcall;
- TFNRtlUnicodeStringToOemSize = function (UnicodeString: PUNICODE_STRING): ULONG; stdcall;
- TFNRtlUnicodeStringToOemString = function (DestinationString: POEM_STRING; SourceString: PCUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlUnicodeToMultiByteSize = function (BytesInMultiByteString: PULONG; UnicodeString: PWSTR; BytesInUnicodeString: ULONG): NTSTATUS; stdcall;
- TFNRtlUniform = function (Seed: PULONG): ULONG; stdcall;
- TFNRtlUnwind = procedure(TargetFrame: PVOID; TargetIp: PVOID; ExceptionRecord: PEXCEPTION_RECORD; ReturnValue: PVOID); stdcall;
- TFNRtlUpcaseUnicodeChar = function (SourceCharacter: WCHAR): WCHAR; stdcall;
- TFNRtlUpcaseUnicodeString = function (DestinationString: PUNICODE_STRING; SourceString: PUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlUpcaseUnicodeStringToAnsiString = function (DestinationString: PSTRING; SourceString: PUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlUpcaseUnicodeStringToCountedOemString = function (DestinationString: PSTRING; SourceString: PUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlUpcaseUnicodeStringToOemString = function (DestinationString: PSTRING; SourceString: PUNICODE_STRING; AllocateDestinationString: BOOLEAN): NTSTATUS; stdcall;
- TFNRtlUpcaseUnicodeToMultiByteN = function (MbString: PCHAR; MbSize: ULONG; var ResultSize: ULONG; UnicodeString: PWSTR; UnicodeSize: ULONG): NTSTATUS; stdcall;
- TFNRtlUpcaseUnicodeToOemN = function (OemString: PCHAR; OemSize: ULONG; var ResultSize: ULONG; UnicodeString: PWSTR; UnicodeSize: ULONG): NTSTATUS; stdcall;
- TFNRtlUpperChar = function (Character: CHAR): CHAR; stdcall;
- TFNRtlUpperString = procedure(DestinationString: PSTRING; SourceString: PSTRING); stdcall;
- TFNRtlValidAcl = function (Acl: PACL): BOOLEAN; stdcall;
- TFNRtlValidRelativeSecurityDescriptor = function (SecurityDescriptorInput: PSECURITY_DESCRIPTOR; SecurityDescriptorLength: ULONG; RequiredInformation: SECURITY_INFORMATION): BOOLEAN; stdcall;
- TFNRtlValidSecurityDescriptor = function (SecurityDescriptor: PSECURITY_DESCRIPTOR): BOOLEAN; stdcall;
- TFNRtlValidSid = function (pSid: PSID): BOOLEAN; stdcall;
- TFNRtlValidateHeap = function (hHeap: HANDLE; dwFlags: ULONG; lpMem: LPCVOID): BOOL; stdcall;
- TFNRtlValidateUnicodeString = function (dwMustBeNull: ULONG; ValidateThis: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlVerifyVersionInfo = function (VersionInfo: PRTL_OSVERSIONINFOEXW; TypeMask: ULONG; ConditionMask: ULONGLONG): NTSTATUS; stdcall;
- TFNRtlVolumeDeviceToDosName = function (VolumeDeviceObject: PVOID; DosName: PUNICODE_STRING): NTSTATUS; stdcall;
- TFNRtlWriteRegistryValue = function (RelativeTo: ULONG; Path: LPCWSTR; ValueName: LPCWSTR; ValueType: ULONG; ValueData: PVOID; ValueLength: ULONG): NTSTATUS; stdcall;
- TFNRtlZeroHeap = function (hHeap: HANDLE; dwFlags: ULONG): BOOLEAN; stdcall;
- TFNRtlZeroMemory = procedure(Destination: PVOID; Length: SIZE_T); stdcall;
- TFNRtlpNotOwnerCriticalSection = function (lpCriticalSection: PRTL_CRITICAL_SECTION): BOOLEAN; stdcall;
- TFNRtlpNtCreateKey = function (KeyHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; Unused1: ULONG; Unused2: ULONG; Disposition: PULONG): NTSTATUS; stdcall;
- TFNRtlpNtEnumerateSubKey = function (KeyHandle: HANDLE; SubKeyName: PUNICODE_STRING; Index: ULONG; Unused1: ULONG): NTSTATUS; stdcall;
- TFNRtlpNtMakeTemporaryKey = function (KeyHandle: HANDLE): NTSTATUS; stdcall;
- TFNRtlpNtOpenKey = function (KeyHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; Unused: ULONG): NTSTATUS; stdcall;
- TFNRtlpNtQueryValueKey = function (KeyHandle: HANDLE; Type_: PULONG; Data: PVOID; DataSize: PULONG; Unused: ULONG): NTSTATUS; stdcall;
- TFNRtlpNtSetValueKey = function (KeyHandle: HANDLE; Type_: ULONG; Data: PVOID; DataSize: ULONG): NTSTATUS; stdcall;
- TFNRtlxAnsiStringToUnicodeSize = function (AnsiString: PANSI_STRING): ULONG; stdcall;
- TFNRtlxOemStringToUnicodeSize = function (AnsiString: POEM_STRING): ULONG; stdcall;
- TFNRtlxUnicodeStringToAnsiSize = function (UnicodeString: PUNICODE_STRING): ULONG; stdcall;
- TFNRtlxUnicodeStringToOemSize = function (UnicodeString: PUNICODE_STRING): ULONG; stdcall;
- TFNVerSetConditionMask = function (ConditionMask: ULONGLONG; dwTypeMask: DWORD; Condition: BYTE): ULONGLONG; stdcall;
- TFNZwAcceptConnectPort = TFNNtAcceptConnectPort;
- TFNZwAccessCheck = TFNNtAccessCheck;
- TFNZwAccessCheckAndAuditAlarm = TFNNtAccessCheckAndAuditAlarm;
- TFNZwAccessCheckByType = TFNNtAccessCheckByType;
- TFNZwAccessCheckByTypeAndAuditAlarm = TFNNtAccessCheckByTypeAndAuditAlarm;
- TFNZwAccessCheckByTypeResultList = TFNNtAccessCheckByTypeResultList;
- TFNZwAccessCheckByTypeResultListAndAuditAlarm = TFNNtAccessCheckByTypeResultListAndAuditAlarm;
- TFNZwAccessCheckByTypeResultListAndAuditAlarmByHandle = TFNNtAccessCheckByTypeResultListAndAuditAlarmByHandle;
- TFNZwAddAtom = TFNNtAddAtom;
- TFNZwAdjustGroupsToken = TFNNtAdjustGroupsToken;
- TFNZwAdjustPrivilegesToken = TFNNtAdjustPrivilegesToken;
- TFNZwAlertResumeThread = TFNNtAlertResumeThread;
- TFNZwAlertThread = TFNNtAlertThread;
- TFNZwAllocateLocallyUniqueId = TFNNtAllocateLocallyUniqueId;
- TFNZwAllocateUserPhysicalPages = TFNNtAllocateUserPhysicalPages;
- TFNZwAllocateUuids = TFNNtAllocateUuids;
- TFNZwAllocateVirtualMemory = TFNNtAllocateVirtualMemory;
- TFNZwAreMappedFilesTheSame = TFNNtAreMappedFilesTheSame;
- TFNZwAssignProcessToJobObject = TFNNtAssignProcessToJobObject;
- TFNZwCallbackReturn = TFNNtCallbackReturn;
- TFNZwCancelDeviceWakeupRequest = TFNNtCancelDeviceWakeupRequest;
- TFNZwCancelIoFile = TFNNtCancelIoFile;
- TFNZwCancelTimer = TFNNtCancelTimer;
- TFNZwClearEvent = TFNNtClearEvent;
- TFNZwClose = TFNNtClose;
- TFNZwCloseObjectAuditAlarm = TFNNtCloseObjectAuditAlarm;
- TFNZwCompleteConnectPort = TFNNtCompleteConnectPort;
- TFNZwConnectPort = TFNNtConnectPort;
- TFNZwContinue = TFNNtContinue;
- TFNZwCreateChannel = TFNNtCreateChannel;
- TFNZwCreateDirectoryObject = TFNNtCreateDirectoryObject;
- TFNZwCreateEvent = TFNNtCreateEvent;
- TFNZwCreateEventPair = TFNNtCreateEventPair;
- TFNZwCreateFile = TFNNtCreateFile;
- TFNZwCreateIoCompletion = TFNNtCreateIoCompletion;
- TFNZwCreateJobObject = TFNNtCreateJobObject;
- TFNZwCreateKey = TFNNtCreateKey;
- TFNZwCreateMailslotFile = TFNNtCreateMailslotFile;
- TFNZwCreateMutant = TFNNtCreateMutant;
- TFNZwCreateNamedPipeFile = TFNNtCreateNamedPipeFile;
- TFNZwCreatePagingFile = TFNNtCreatePagingFile;
- TFNZwCreatePort = TFNNtCreatePort;
- TFNZwCreateProcess = TFNNtCreateProcess;
- TFNZwCreateProfile = TFNNtCreateProfile;
- TFNZwCreateSection = TFNNtCreateSection;
- TFNZwCreateSemaphore = TFNNtCreateSemaphore;
- TFNZwCreateSymbolicLinkObject = TFNNtCreateSymbolicLinkObject;
- TFNZwCreateThread = TFNNtCreateThread;
- TFNZwCreateTimer = TFNNtCreateTimer;
- TFNZwCreateToken = TFNNtCreateToken;
- TFNZwCreateWaitablePort = TFNNtCreateWaitablePort;
- TFNZwCurrentTeb = TFNNtCurrentTeb;
- TFNZwDebugActiveProcess = TFNNtDebugActiveProcess;
- TFNZwDelayExecution = TFNNtDelayExecution;
- TFNZwDeleteAtom = TFNNtDeleteAtom;
- TFNZwDeleteFile = TFNNtDeleteFile;
- TFNZwDeleteKey = TFNNtDeleteKey;
- TFNZwDeleteObjectAuditAlarm = TFNNtDeleteObjectAuditAlarm;
- TFNZwDeleteValueKey = TFNNtDeleteValueKey;
- TFNZwDeviceIoControlFile = TFNNtDeviceIoControlFile;
- TFNZwDisplayString = TFNNtDisplayString;
- TFNZwDuplicateObject = TFNNtDuplicateObject;
- TFNZwDuplicateToken = TFNNtDuplicateToken;
- TFNZwEnumerateKey = TFNNtEnumerateKey;
- TFNZwEnumerateValueKey = TFNNtEnumerateValueKey;
- TFNZwExtendSection = TFNNtExtendSection;
- TFNZwFilterToken = TFNNtFilterToken;
- TFNZwFindAtom = TFNNtFindAtom;
- TFNZwFlushBuffersFile = TFNNtFlushBuffersFile;
- TFNZwFlushInstructionCache = TFNNtFlushInstructionCache;
- TFNZwFlushKey = TFNNtFlushKey;
- TFNZwFlushVirtualMemory = TFNNtFlushVirtualMemory;
- TFNZwFlushWriteBuffer = TFNNtFlushWriteBuffer;
- TFNZwFreeUserPhysicalPages = TFNNtFreeUserPhysicalPages;
- TFNZwFreeVirtualMemory = TFNNtFreeVirtualMemory;
- TFNZwFsControlFile = TFNNtFsControlFile;
- TFNZwGetContextThread = TFNNtGetContextThread;
- TFNZwGetCurrentProcessorNumber = TFNNtGetCurrentProcessorNumber;
- TFNZwGetDevicePowerState = TFNNtGetDevicePowerState;
- TFNZwGetPlugPlayEvent = TFNNtGetPlugPlayEvent;
- TFNZwGetTickCount = TFNNtGetTickCount;
- TFNZwGetWriteWatch = TFNNtGetWriteWatch;
- TFNZwImpersonateAnonymousToken = TFNNtImpersonateAnonymousToken;
- TFNZwImpersonateClientOfPort = TFNNtImpersonateClientOfPort;
- TFNZwImpersonateThread = TFNNtImpersonateThread;
- TFNZwInitializeRegistry = TFNNtInitializeRegistry;
- TFNZwInitiatePowerAction = TFNNtInitiatePowerAction;
- TFNZwIsSystemResumeAutomatic = TFNNtIsSystemResumeAutomatic;
- TFNZwListenChannel = TFNNtListenChannel;
- TFNZwListenPort = TFNNtListenPort;
- TFNZwLoadDriver = TFNNtLoadDriver;
- TFNZwLoadKey = TFNNtLoadKey;
- TFNZwLoadKey2 = TFNNtLoadKey2;
- TFNZwLockFile = TFNNtLockFile;
- TFNZwLockVirtualMemory = TFNNtLockVirtualMemory;
- TFNZwMakePermanentObject = TFNNtMakePermanentObject;
- TFNZwMakeTemporaryObject = TFNNtMakeTemporaryObject;
- TFNZwMapUserPhysicalPages = TFNNtMapUserPhysicalPages;
- TFNZwMapUserPhysicalPagesScatter = TFNNtMapUserPhysicalPagesScatter;
- TFNZwMapViewOfSection = TFNNtMapViewOfSection;
- TFNZwNotifyChangeDirectoryFile = TFNNtNotifyChangeDirectoryFile;
- TFNZwNotifyChangeKey = TFNNtNotifyChangeKey;
- TFNZwNotifyChangeMultipleKeys = TFNNtNotifyChangeMultipleKeys;
- TFNZwOpenChannel = TFNNtOpenChannel;
- TFNZwOpenDirectoryObject = TFNNtOpenDirectoryObject;
- TFNZwOpenEvent = TFNNtOpenEvent;
- TFNZwOpenEventPair = TFNNtOpenEventPair;
- TFNZwOpenFile = TFNNtOpenFile;
- TFNZwOpenIoCompletion = TFNNtOpenIoCompletion;
- TFNZwOpenJobObject = TFNNtOpenJobObject;
- TFNZwOpenKey = TFNNtOpenKey;
- TFNZwOpenMutant = TFNNtOpenMutant;
- TFNZwOpenObjectAuditAlarm = TFNNtOpenObjectAuditAlarm;
- TFNZwOpenProcess = TFNNtOpenProcess;
- TFNZwOpenProcessToken = TFNNtOpenProcessToken;
- TFNZwOpenSection = TFNNtOpenSection;
- TFNZwOpenSemaphore = TFNNtOpenSemaphore;
- TFNZwOpenSymbolicLinkObject = TFNNtOpenSymbolicLinkObject;
- TFNZwOpenThread = TFNNtOpenThread;
- TFNZwOpenThreadToken = TFNNtOpenThreadToken;
- TFNZwOpenTimer = TFNNtOpenTimer;
- TFNZwPlugPlayControl = TFNNtPlugPlayControl;
- TFNZwPowerInformation = TFNNtPowerInformation;
- TFNZwPrivilegeCheck = TFNNtPrivilegeCheck;
- TFNZwPrivilegeObjectAuditAlarm = TFNNtPrivilegeObjectAuditAlarm;
- TFNZwPrivilegedServiceAuditAlarm = TFNNtPrivilegedServiceAuditAlarm;
- TFNZwProtectVirtualMemory = TFNNtProtectVirtualMemory;
- TFNZwPulseEvent = TFNNtPulseEvent;
- TFNZwQueryAttributesFile = TFNNtQueryAttributesFile;
- TFNZwQueryDefaultLocale = TFNNtQueryDefaultLocale;
- TFNZwQueryDefaultUILanguage = TFNNtQueryDefaultUILanguage;
- TFNZwQueryDirectoryFile = TFNNtQueryDirectoryFile;
- TFNZwQueryDirectoryObject = TFNNtQueryDirectoryObject;
- TFNZwQueryEaFile = TFNNtQueryEaFile;
- TFNZwQueryEvent = TFNNtQueryEvent;
- TFNZwQueryFullAttributesFile = TFNNtQueryFullAttributesFile;
- TFNZwQueryInformationAtom = TFNNtQueryInformationAtom;
- TFNZwQueryInformationFile = TFNNtQueryInformationFile;
- TFNZwQueryInformationJobObject = TFNNtQueryInformationJobObject;
- TFNZwQueryInformationPort = TFNNtQueryInformationPort;
- TFNZwQueryInformationProcess = TFNNtQueryInformationProcess;
- TFNZwQueryInformationThread = TFNNtQueryInformationThread;
- TFNZwQueryInformationToken = TFNNtQueryInformationToken;
- TFNZwQueryInstallUILanguage = TFNNtQueryInstallUILanguage;
- TFNZwQueryIntervalProfile = TFNNtQueryIntervalProfile;
- TFNZwQueryIoCompletion = TFNNtQueryIoCompletion;
- TFNZwQueryKey = TFNNtQueryKey;
- TFNZwQueryMultipleValueKey = TFNNtQueryMultipleValueKey;
- TFNZwQueryMutant = TFNNtQueryMutant;
- TFNZwQueryObject = TFNNtQueryObject;
- TFNZwQueryOpenSubKeys = TFNNtQueryOpenSubKeys;
- TFNZwQueryPerformanceCounter = TFNNtQueryPerformanceCounter;
- TFNZwQueryPortInformationProcess = TFNNtQueryPortInformationProcess;
- TFNZwQueryQuotaInformationFile = TFNNtQueryQuotaInformationFile;
- TFNZwQuerySection = TFNNtQuerySection;
- TFNZwQuerySecurityObject = TFNNtQuerySecurityObject;
- TFNZwQuerySemaphore = TFNNtQuerySemaphore;
- TFNZwQuerySymbolicLinkObject = TFNNtQuerySymbolicLinkObject;
- TFNZwQuerySystemEnvironmentValue = TFNNtQuerySystemEnvironmentValue;
- TFNZwQuerySystemInformation = TFNNtQuerySystemInformation;
- TFNZwQuerySystemTime = TFNNtQuerySystemTime;
- TFNZwQueryTimer = TFNNtQueryTimer;
- TFNZwQueryTimerResolution = TFNNtQueryTimerResolution;
- TFNZwQueryValueKey = TFNNtQueryValueKey;
- TFNZwQueryVirtualMemory = TFNNtQueryVirtualMemory;
- TFNZwQueryVolumeInformationFile = TFNNtQueryVolumeInformationFile;
- TFNZwQueueApcThread = TFNNtQueueApcThread;
- TFNZwRaiseException = TFNNtRaiseException;
- TFNZwRaiseHardError = TFNNtRaiseHardError;
- TFNZwReadFile = TFNNtReadFile;
- TFNZwReadFileScatter = TFNNtReadFileScatter;
- TFNZwReadRequestData = TFNNtReadRequestData;
- TFNZwReadVirtualMemory = TFNNtReadVirtualMemory;
- TFNZwRegisterThreadTerminatePort = TFNNtRegisterThreadTerminatePort;
- TFNZwReleaseMutant = TFNNtReleaseMutant;
- TFNZwReleaseSemaphore = TFNNtReleaseSemaphore;
- TFNZwRemoveIoCompletion = TFNNtRemoveIoCompletion;
- TFNZwRemoveProcessDebug = TFNNtRemoveProcessDebug;
- TFNZwReplaceKey = TFNNtReplaceKey;
- TFNZwReplyPort = TFNNtReplyPort;
- TFNZwReplyWaitReceivePort = TFNNtReplyWaitReceivePort;
- TFNZwReplyWaitReceivePortEx = TFNNtReplyWaitReceivePortEx;
- TFNZwReplyWaitReplyPort = TFNNtReplyWaitReplyPort;
- TFNZwReplyWaitSendChannel = TFNNtReplyWaitSendChannel;
- TFNZwRequestDeviceWakeup = TFNNtRequestDeviceWakeup;
- TFNZwRequestPort = TFNNtRequestPort;
- TFNZwRequestWaitReplyPort = TFNNtRequestWaitReplyPort;
- TFNZwRequestWakeupLatency = TFNNtRequestWakeupLatency;
- TFNZwResetEvent = TFNNtResetEvent;
- TFNZwResetWriteWatch = TFNNtResetWriteWatch;
- TFNZwRestoreKey = TFNNtRestoreKey;
- TFNZwResumeProcess = TFNNtResumeProcess;
- TFNZwResumeThread = TFNNtResumeThread;
- TFNZwSaveKey = TFNNtSaveKey;
- TFNZwSaveKeyEx = TFNNtSaveKeyEx;
- TFNZwSaveMergedKeys = TFNNtSaveMergedKeys;
- TFNZwSecureConnectPort = TFNNtSecureConnectPort;
- TFNZwSendWaitReplyChannel = TFNNtSendWaitReplyChannel;
- TFNZwSetContextChannel = TFNNtSetContextChannel;
- TFNZwSetContextThread = TFNNtSetContextThread;
- TFNZwSetDefaultHardErrorPort = TFNNtSetDefaultHardErrorPort;
- TFNZwSetDefaultLocale = TFNNtSetDefaultLocale;
- TFNZwSetDefaultUILanguage = TFNNtSetDefaultUILanguage;
- TFNZwSetEaFile = TFNNtSetEaFile;
- TFNZwSetEvent = TFNNtSetEvent;
- TFNZwSetHighEventPair = TFNNtSetHighEventPair;
- TFNZwSetHighWaitLowEventPair = TFNNtSetHighWaitLowEventPair;
- TFNZwSetHighWaitLowThread = TFNNtSetHighWaitLowThread;
- TFNZwSetInformationFile = TFNNtSetInformationFile;
- TFNZwSetInformationJobObject = TFNNtSetInformationJobObject;
- TFNZwSetInformationKey = TFNNtSetInformationKey;
- TFNZwSetInformationObject = TFNNtSetInformationObject;
- TFNZwSetInformationProcess = TFNNtSetInformationProcess;
- TFNZwSetInformationThread = TFNNtSetInformationThread;
- TFNZwSetInformationToken = TFNNtSetInformationToken;
- TFNZwSetIntervalProfile = TFNNtSetIntervalProfile;
- TFNZwSetIoCompletion = TFNNtSetIoCompletion;
- TFNZwSetLdtEntries = TFNNtSetLdtEntries;
- TFNZwSetLowEventPair = TFNNtSetLowEventPair;
- TFNZwSetLowWaitHighEventPair = TFNNtSetLowWaitHighEventPair;
- TFNZwSetLowWaitHighThread = TFNNtSetLowWaitHighThread;
- TFNZwSetQuotaInformationFile = TFNNtSetQuotaInformationFile;
- TFNZwSetSecurityObject = TFNNtSetSecurityObject;
- TFNZwSetSystemEnvironmentValue = TFNNtSetSystemEnvironmentValue;
- TFNZwSetSystemInformation = TFNNtSetSystemInformation;
- TFNZwSetSystemPowerState = TFNNtSetSystemPowerState;
- TFNZwSetSystemTime = TFNNtSetSystemTime;
- TFNZwSetThreadExecutionState = TFNNtSetThreadExecutionState;
- TFNZwSetTimer = TFNNtSetTimer;
- TFNZwSetTimerResolution = TFNNtSetTimerResolution;
- TFNZwSetUuidSeed = TFNNtSetUuidSeed;
- TFNZwSetValueKey = TFNNtSetValueKey;
- TFNZwSetVolumeInformationFile = TFNNtSetVolumeInformationFile;
- TFNZwShutdownSystem = TFNNtShutdownSystem;
- TFNZwSignalAndWaitForSingleObject = TFNNtSignalAndWaitForSingleObject;
- TFNZwStartProfile = TFNNtStartProfile;
- TFNZwStopProfile = TFNNtStopProfile;
- TFNZwSuspendProcess = TFNNtSuspendProcess;
- TFNZwSuspendThread = TFNNtSuspendThread;
- TFNZwSystemDebugControl = TFNNtSystemDebugControl;
- TFNZwTerminateJobObject = TFNNtTerminateJobObject;
- TFNZwTerminateProcess = TFNNtTerminateProcess;
- TFNZwTerminateThread = TFNNtTerminateThread;
- TFNZwTestAlert = TFNNtTestAlert;
- TFNZwUnloadDriver = TFNNtUnloadDriver;
- TFNZwUnloadKey = TFNNtUnloadKey;
- TFNZwUnlockFile = TFNNtUnlockFile;
- TFNZwUnlockVirtualMemory = TFNNtUnlockVirtualMemory;
- TFNZwUnmapViewOfSection = TFNNtUnmapViewOfSection;
- TFNZwVdmControl = TFNNtVdmControl;
- TFNZwW32Call = TFNNtW32Call;
- TFNZwWaitForMultipleObjects = TFNNtWaitForMultipleObjects;
- TFNZwWaitForSingleObject = TFNNtWaitForSingleObject;
- TFNZwWaitHighEventPair = TFNNtWaitHighEventPair;
- TFNZwWaitLowEventPair = TFNNtWaitLowEventPair;
- TFNZwWriteFile = TFNNtWriteFile;
- TFNZwWriteFileGather = TFNNtWriteFileGather;
- TFNZwWriteRequestData = TFNNtWriteRequestData;
- TFNZwWriteVirtualMemory = TFNNtWriteVirtualMemory;
- TFNZwYieldExecution = TFNNtYieldExecution;
- /// (Global) function pointers
- var
- _CsrGetProcessId : Pointer = nil;
- _DbgQueryDebugFilterState : Pointer = nil;
- _DbgSetDebugFilterState : Pointer = nil;
- _KiRaiseUserExceptionDispatcher : Pointer = nil;
- _LdrAccessResource : Pointer = nil;
- _LdrAlternateResourcesEnabled : Pointer = nil;
- _LdrDisableThreadCalloutsForDll : Pointer = nil;
- _LdrGetDllHandle : Pointer = nil;
- _LdrGetProcedureAddress : Pointer = nil;
- _LdrLoadDll : Pointer = nil;
- _LdrQueryImageFileExecutionOptions : Pointer = nil;
- _LdrQueryProcessModuleInformation : Pointer = nil;
- _LdrShutdownProcess : Pointer = nil;
- _LdrShutdownThread : Pointer = nil;
- _LdrUnloadDll : Pointer = nil;
- _NtAcceptConnectPort : Pointer = nil;
- _NtAccessCheck : Pointer = nil;
- _NtAccessCheckAndAuditAlarm : Pointer = nil;
- _NtAccessCheckByType : Pointer = nil;
- _NtAccessCheckByTypeAndAuditAlarm : Pointer = nil;
- _NtAccessCheckByTypeResultList : Pointer = nil;
- _NtAccessCheckByTypeResultListAndAuditAlarm : Pointer = nil;
- _NtAccessCheckByTypeResultListAndAuditAlarmByHandle : Pointer = nil;
- _NtAddAtom : Pointer = nil;
- _NtAdjustGroupsToken : Pointer = nil;
- _NtAdjustPrivilegesToken : Pointer = nil;
- _NtAlertResumeThread : Pointer = nil;
- _NtAlertThread : Pointer = nil;
- _NtAllocateLocallyUniqueId : Pointer = nil;
- _NtAllocateUserPhysicalPages : Pointer = nil;
- _NtAllocateUuids : Pointer = nil;
- _NtAllocateVirtualMemory : Pointer = nil;
- _NtAreMappedFilesTheSame : Pointer = nil;
- _NtAssignProcessToJobObject : Pointer = nil;
- _NtCallbackReturn : Pointer = nil;
- _NtCancelDeviceWakeupRequest : Pointer = nil;
- _NtCancelIoFile : Pointer = nil;
- _NtCancelTimer : Pointer = nil;
- _NtClearEvent : Pointer = nil;
- _NtClose : Pointer = nil;
- _NtCloseObjectAuditAlarm : Pointer = nil;
- _NtCompleteConnectPort : Pointer = nil;
- _NtConnectPort : Pointer = nil;
- _NtContinue : Pointer = nil;
- _NtCreateChannel : Pointer = nil;
- _NtCreateDirectoryObject : Pointer = nil;
- _NtCreateEvent : Pointer = nil;
- _NtCreateEventPair : Pointer = nil;
- _NtCreateFile : Pointer = nil;
- _NtCreateIoCompletion : Pointer = nil;
- _NtCreateJobObject : Pointer = nil;
- _NtCreateKey : Pointer = nil;
- _NtCreateMailslotFile : Pointer = nil;
- _NtCreateMutant : Pointer = nil;
- _NtCreateNamedPipeFile : Pointer = nil;
- _NtCreatePagingFile : Pointer = nil;
- _NtCreatePort : Pointer = nil;
- _NtCreateProcess : Pointer = nil;
- _NtCreateProfile : Pointer = nil;
- _NtCreateSection : Pointer = nil;
- _NtCreateSemaphore : Pointer = nil;
- _NtCreateSymbolicLinkObject : Pointer = nil;
- _NtCreateThread : Pointer = nil;
- _NtCreateTimer : Pointer = nil;
- _NtCreateToken : Pointer = nil;
- _NtCreateWaitablePort : Pointer = nil;
- _NtCurrentTeb : Pointer = nil;
- _NtDebugActiveProcess : Pointer = nil;
- _NtDelayExecution : Pointer = nil;
- _NtDeleteAtom : Pointer = nil;
- _NtDeleteFile : Pointer = nil;
- _NtDeleteKey : Pointer = nil;
- _NtDeleteObjectAuditAlarm : Pointer = nil;
- _NtDeleteValueKey : Pointer = nil;
- _NtDeviceIoControlFile : Pointer = nil;
- _NtDisplayString : Pointer = nil;
- _NtDuplicateObject : Pointer = nil;
- _NtDuplicateToken : Pointer = nil;
- _NtEnumerateKey : Pointer = nil;
- _NtEnumerateValueKey : Pointer = nil;
- _NtExtendSection : Pointer = nil;
- _NtFilterToken : Pointer = nil;
- _NtFindAtom : Pointer = nil;
- _NtFlushBuffersFile : Pointer = nil;
- _NtFlushInstructionCache : Pointer = nil;
- _NtFlushKey : Pointer = nil;
- _NtFlushVirtualMemory : Pointer = nil;
- _NtFlushWriteBuffer : Pointer = nil;
- _NtFreeUserPhysicalPages : Pointer = nil;
- _NtFreeVirtualMemory : Pointer = nil;
- _NtFsControlFile : Pointer = nil;
- _NtGetContextThread : Pointer = nil;
- _NtGetCurrentProcessorNumber : Pointer = nil;
- _NtGetDevicePowerState : Pointer = nil;
- _NtGetPlugPlayEvent : Pointer = nil;
- _NtGetTickCount : Pointer = nil;
- _NtGetWriteWatch : Pointer = nil;
- _NtImpersonateAnonymousToken : Pointer = nil;
- _NtImpersonateClientOfPort : Pointer = nil;
- _NtImpersonateThread : Pointer = nil;
- _NtInitializeRegistry : Pointer = nil;
- _NtInitiatePowerAction : Pointer = nil;
- _NtIsSystemResumeAutomatic : Pointer = nil;
- _NtListenChannel : Pointer = nil;
- _NtListenPort : Pointer = nil;
- _NtLoadDriver : Pointer = nil;
- _NtLoadKey : Pointer = nil;
- _NtLoadKey2 : Pointer = nil;
- _NtLockFile : Pointer = nil;
- _NtLockVirtualMemory : Pointer = nil;
- _NtMakePermanentObject : Pointer = nil;
- _NtMakeTemporaryObject : Pointer = nil;
- _NtMapUserPhysicalPages : Pointer = nil;
- _NtMapUserPhysicalPagesScatter : Pointer = nil;
- _NtMapViewOfSection : Pointer = nil;
- _NtNotifyChangeDirectoryFile : Pointer = nil;
- _NtNotifyChangeKey : Pointer = nil;
- _NtNotifyChangeMultipleKeys : Pointer = nil;
- _NtOpenChannel : Pointer = nil;
- _NtOpenDirectoryObject : Pointer = nil;
- _NtOpenEvent : Pointer = nil;
- _NtOpenEventPair : Pointer = nil;
- _NtOpenFile : Pointer = nil;
- _NtOpenIoCompletion : Pointer = nil;
- _NtOpenJobObject : Pointer = nil;
- _NtOpenKey : Pointer = nil;
- _NtOpenMutant : Pointer = nil;
- _NtOpenObjectAuditAlarm : Pointer = nil;
- _NtOpenProcess : Pointer = nil;
- _NtOpenProcessToken : Pointer = nil;
- _NtOpenSection : Pointer = nil;
- _NtOpenSemaphore : Pointer = nil;
- _NtOpenSymbolicLinkObject : Pointer = nil;
- _NtOpenThread : Pointer = nil;
- _NtOpenThreadToken : Pointer = nil;
- _NtOpenTimer : Pointer = nil;
- _NtPlugPlayControl : Pointer = nil;
- _NtPowerInformation : Pointer = nil;
- _NtPrivilegeCheck : Pointer = nil;
- _NtPrivilegeObjectAuditAlarm : Pointer = nil;
- _NtPrivilegedServiceAuditAlarm : Pointer = nil;
- _NtProtectVirtualMemory : Pointer = nil;
- _NtPulseEvent : Pointer = nil;
- _NtQueryAttributesFile : Pointer = nil;
- _NtQueryDefaultLocale : Pointer = nil;
- _NtQueryDefaultUILanguage : Pointer = nil;
- _NtQueryDirectoryFile : Pointer = nil;
- _NtQueryDirectoryObject : Pointer = nil;
- _NtQueryEaFile : Pointer = nil;
- _NtQueryEvent : Pointer = nil;
- _NtQueryFullAttributesFile : Pointer = nil;
- _NtQueryInformationAtom : Pointer = nil;
- _NtQueryInformationFile : Pointer = nil;
- _NtQueryInformationJobObject : Pointer = nil;
- _NtQueryInformationPort : Pointer = nil;
- _NtQueryInformationProcess : Pointer = nil;
- _NtQueryInformationThread : Pointer = nil;
- _NtQueryInformationToken : Pointer = nil;
- _NtQueryInstallUILanguage : Pointer = nil;
- _NtQueryIntervalProfile : Pointer = nil;
- _NtQueryIoCompletion : Pointer = nil;
- _NtQueryKey : Pointer = nil;
- _NtQueryMultipleValueKey : Pointer = nil;
- _NtQueryMutant : Pointer = nil;
- _NtQueryObject : Pointer = nil;
- _NtQueryOpenSubKeys : Pointer = nil;
- _NtQueryPerformanceCounter : Pointer = nil;
- _NtQueryPortInformationProcess : Pointer = nil;
- _NtQueryQuotaInformationFile : Pointer = nil;
- _NtQuerySection : Pointer = nil;
- _NtQuerySecurityObject : Pointer = nil;
- _NtQuerySemaphore : Pointer = nil;
- _NtQuerySymbolicLinkObject : Pointer = nil;
- _NtQuerySystemEnvironmentValue : Pointer = nil;
- _NtQuerySystemInformation : Pointer = nil;
- _NtQuerySystemTime : Pointer = nil;
- _NtQueryTimer : Pointer = nil;
- _NtQueryTimerResolution : Pointer = nil;
- _NtQueryValueKey : Pointer = nil;
- _NtQueryVirtualMemory : Pointer = nil;
- _NtQueryVolumeInformationFile : Pointer = nil;
- _NtQueueApcThread : Pointer = nil;
- _NtRaiseException : Pointer = nil;
- _NtRaiseHardError : Pointer = nil;
- _NtReadFile : Pointer = nil;
- _NtReadFileScatter : Pointer = nil;
- _NtReadRequestData : Pointer = nil;
- _NtReadVirtualMemory : Pointer = nil;
- _NtRegisterThreadTerminatePort : Pointer = nil;
- _NtReleaseMutant : Pointer = nil;
- _NtReleaseSemaphore : Pointer = nil;
- _NtRemoveIoCompletion : Pointer = nil;
- _NtRemoveProcessDebug : Pointer = nil;
- _NtReplaceKey : Pointer = nil;
- _NtReplyPort : Pointer = nil;
- _NtReplyWaitReceivePort : Pointer = nil;
- _NtReplyWaitReceivePortEx : Pointer = nil;
- _NtReplyWaitReplyPort : Pointer = nil;
- _NtReplyWaitSendChannel : Pointer = nil;
- _NtRequestDeviceWakeup : Pointer = nil;
- _NtRequestPort : Pointer = nil;
- _NtRequestWaitReplyPort : Pointer = nil;
- _NtRequestWakeupLatency : Pointer = nil;
- _NtResetEvent : Pointer = nil;
- _NtResetWriteWatch : Pointer = nil;
- _NtRestoreKey : Pointer = nil;
- _NtResumeProcess : Pointer = nil;
- _NtResumeThread : Pointer = nil;
- _NtSaveKey : Pointer = nil;
- _NtSaveKeyEx : Pointer = nil;
- _NtSaveMergedKeys : Pointer = nil;
- _NtSecureConnectPort : Pointer = nil;
- _NtSendWaitReplyChannel : Pointer = nil;
- _NtSetContextChannel : Pointer = nil;
- _NtSetContextThread : Pointer = nil;
- _NtSetDefaultHardErrorPort : Pointer = nil;
- _NtSetDefaultLocale : Pointer = nil;
- _NtSetDefaultUILanguage : Pointer = nil;
- _NtSetEaFile : Pointer = nil;
- _NtSetEvent : Pointer = nil;
- _NtSetHighEventPair : Pointer = nil;
- _NtSetHighWaitLowEventPair : Pointer = nil;
- _NtSetHighWaitLowThread : Pointer = nil;
- _NtSetInformationFile : Pointer = nil;
- _NtSetInformationJobObject : Pointer = nil;
- _NtSetInformationKey : Pointer = nil;
- _NtSetInformationObject : Pointer = nil;
- _NtSetInformationProcess : Pointer = nil;
- _NtSetInformationThread : Pointer = nil;
- _NtSetInformationToken : Pointer = nil;
- _NtSetIntervalProfile : Pointer = nil;
- _NtSetIoCompletion : Pointer = nil;
- _NtSetLdtEntries : Pointer = nil;
- _NtSetLowEventPair : Pointer = nil;
- _NtSetLowWaitHighEventPair : Pointer = nil;
- _NtSetLowWaitHighThread : Pointer = nil;
- _NtSetQuotaInformationFile : Pointer = nil;
- _NtSetSecurityObject : Pointer = nil;
- _NtSetSystemEnvironmentValue : Pointer = nil;
- _NtSetSystemInformation : Pointer = nil;
- _NtSetSystemPowerState : Pointer = nil;
- _NtSetSystemTime : Pointer = nil;
- _NtSetThreadExecutionState : Pointer = nil;
- _NtSetTimer : Pointer = nil;
- _NtSetTimerResolution : Pointer = nil;
- _NtSetUuidSeed : Pointer = nil;
- _NtSetValueKey : Pointer = nil;
- _NtSetVolumeInformationFile : Pointer = nil;
- _NtShutdownSystem : Pointer = nil;
- _NtSignalAndWaitForSingleObject : Pointer = nil;
- _NtStartProfile : Pointer = nil;
- _NtStopProfile : Pointer = nil;
- _NtSuspendProcess : Pointer = nil;
- _NtSuspendThread : Pointer = nil;
- _NtSystemDebugControl : Pointer = nil;
- _NtTerminateJobObject : Pointer = nil;
- _NtTerminateProcess : Pointer = nil;
- _NtTerminateThread : Pointer = nil;
- _NtTestAlert : Pointer = nil;
- _NtUnloadDriver : Pointer = nil;
- _NtUnloadKey : Pointer = nil;
- _NtUnlockFile : Pointer = nil;
- _NtUnlockVirtualMemory : Pointer = nil;
- _NtUnmapViewOfSection : Pointer = nil;
- _NtVdmControl : Pointer = nil;
- _NtW32Call : Pointer = nil;
- _NtWaitForMultipleObjects : Pointer = nil;
- _NtWaitForSingleObject : Pointer = nil;
- _NtWaitHighEventPair : Pointer = nil;
- _NtWaitLowEventPair : Pointer = nil;
- _NtWriteFile : Pointer = nil;
- _NtWriteFileGather : Pointer = nil;
- _NtWriteRequestData : Pointer = nil;
- _NtWriteVirtualMemory : Pointer = nil;
- _NtYieldExecution : Pointer = nil;
- _RtlAbsoluteToSelfRelativeSD : Pointer = nil;
- _RtlAcquirePebLock : Pointer = nil;
- _RtlAddAccessAllowedAce : Pointer = nil;
- _RtlAddAccessAllowedAceEx : Pointer = nil;
- _RtlAddAccessDeniedAce : Pointer = nil;
- _RtlAddAccessDeniedAceEx : Pointer = nil;
- _RtlAddAce : Pointer = nil;
- _RtlAddAuditAccessAce : Pointer = nil;
- _RtlAddAuditAccessAceEx : Pointer = nil;
- _RtlAddRange : Pointer = nil;
- _RtlAddVectoredExceptionHandler : Pointer = nil;
- _RtlAdjustPrivilege : Pointer = nil;
- _RtlAllocateAndInitializeSid : Pointer = nil;
- _RtlAllocateHeap : Pointer = nil;
- _RtlAnsiCharToUnicodeChar : Pointer = nil;
- _RtlAnsiStringToUnicodeSize : Pointer = nil;
- _RtlAnsiStringToUnicodeString : Pointer = nil;
- _RtlAppendAsciizToString : Pointer = nil;
- _RtlAppendStringToString : Pointer = nil;
- _RtlAppendUnicodeStringToString : Pointer = nil;
- _RtlAppendUnicodeToString : Pointer = nil;
- _RtlAreAllAccessesGranted : Pointer = nil;
- _RtlAreAnyAccessesGranted : Pointer = nil;
- _RtlAreBitsClear : Pointer = nil;
- _RtlAreBitsSet : Pointer = nil;
- _RtlAssert : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlCaptureContext : Pointer = nil;
- _RtlCharToInteger : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlCheckForOrphanedCriticalSections : Pointer = nil;
- _RtlCheckRegistryKey : Pointer = nil;
- _RtlClearAllBits : Pointer = nil;
- _RtlClearBits : Pointer = nil;
- _RtlCompactHeap : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlCompareMemory : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlCompareMemoryUlong : Pointer = nil;
- _RtlCompareString : Pointer = nil;
- _RtlCompareUnicodeString : Pointer = nil;
- _RtlConvertLongToLargeInteger : Pointer = nil;
- _RtlConvertSidToUnicodeString : Pointer = nil;
- _RtlConvertUlongToLargeInteger : Pointer = nil;
- _RtlCopyLuid : Pointer = nil;
- _RtlCopyRangeList : Pointer = nil;
- _RtlCopySecurityDescriptor : Pointer = nil;
- _RtlCopySid : Pointer = nil;
- _RtlCopyString : Pointer = nil;
- _RtlCopyUnicodeString : Pointer = nil;
- _RtlCreateAcl : Pointer = nil;
- _RtlCreateHeap : Pointer = nil;
- _RtlCreateProcessParameters : Pointer = nil;
- _RtlCreateQueryDebugBuffer : Pointer = nil;
- _RtlCreateRegistryKey : Pointer = nil;
- _RtlCreateSecurityDescriptor : Pointer = nil;
- _RtlCreateUnicodeString : Pointer = nil;
- _RtlCreateUnicodeStringFromAsciiz : Pointer = nil;
- _RtlCreateUserProcess : Pointer = nil;
- _RtlCreateUserThread : Pointer = nil;
- _RtlCutoverTimeToSystemTime : Pointer = nil;
- _RtlDeNormalizeProcessParams : Pointer = nil;
- _RtlDeleteAce : Pointer = nil;
- _RtlDeleteCriticalSection : Pointer = nil;
- _RtlDeleteOwnersRanges : Pointer = nil;
- _RtlDeleteRange : Pointer = nil;
- _RtlDeleteRegistryValue : Pointer = nil;
- _RtlDestroyHeap : Pointer = nil;
- _RtlDestroyProcessParameters : Pointer = nil;
- _RtlDestroyQueryDebugBuffer : Pointer = nil;
- _RtlDetermineDosPathNameType_U : Pointer = nil;
- _RtlDnsHostNameToComputerName : Pointer = nil;
- _RtlDoesFileExists_U : Pointer = nil;
- _RtlDosPathNameToNtPathName_U : Pointer = nil;
- _RtlDosSearchPath_U : Pointer = nil;
- _RtlDowncaseUnicodeChar : Pointer = nil;
- _RtlDowncaseUnicodeString : Pointer = nil;
- _RtlDuplicateUnicodeString : Pointer = nil;
- _RtlEnableEarlyCriticalSectionEventCreation : Pointer = nil;
- _RtlEnlargedIntegerMultiply : Pointer = nil;
- _RtlEnlargedUnsignedDivide : Pointer = nil;
- _RtlEnlargedUnsignedMultiply : Pointer = nil;
- _RtlEnterCriticalSection : Pointer = nil;
- _RtlEqualComputerName : Pointer = nil;
- _RtlEqualDomainName : Pointer = nil;
- _RtlEqualLuid : Pointer = nil;
- _RtlEqualPrefixSid : Pointer = nil;
- _RtlEqualSid : Pointer = nil;
- _RtlEqualString : Pointer = nil;
- _RtlEqualUnicodeString : Pointer = nil;
- _RtlEraseUnicodeString : Pointer = nil;
- _RtlExpandEnvironmentStrings_U : Pointer = nil;
- _RtlExtendedIntegerMultiply : Pointer = nil;
- _RtlExtendedLargeIntegerDivide : Pointer = nil;
- _RtlExtendedMagicDivide : Pointer = nil;
- _RtlFillMemory : Pointer = nil;
- _RtlFillMemoryUlong : Pointer = nil;
- _RtlFindCharInUnicodeString : Pointer = nil;
- _RtlFindClearBits : Pointer = nil;
- _RtlFindClearBitsAndSet : Pointer = nil;
- _RtlFindLastBackwardRunClear : Pointer = nil;
- _RtlFindLeastSignificantBit : Pointer = nil;
- _RtlFindLongestRunClear : Pointer = nil;
- _RtlFindMostSignificantBit : Pointer = nil;
- _RtlFindNextForwardRunClear : Pointer = nil;
- _RtlFindRange : Pointer = nil;
- _RtlFindSetBits : Pointer = nil;
- _RtlFindSetBitsAndClear : Pointer = nil;
- _RtlFirstFreeAce : Pointer = nil;
- _RtlFormatCurrentUserKeyPath : Pointer = nil;
- _RtlFreeAnsiString : Pointer = nil;
- _RtlFreeHeap : Pointer = nil;
- _RtlFreeOemString : Pointer = nil;
- _RtlFreeRangeList : Pointer = nil;
- _RtlFreeSid : Pointer = nil;
- _RtlFreeUnicodeString : Pointer = nil;
- _RtlGUIDFromString : Pointer = nil;
- _RtlGetAce : Pointer = nil;
- _RtlGetCallersAddress : Pointer = nil;
- _RtlGetControlSecurityDescriptor : Pointer = nil;
- _RtlGetCurrentDirectory_U : Pointer = nil;
- _RtlGetCurrentPeb : Pointer = nil;
- _RtlGetDaclSecurityDescriptor : Pointer = nil;
- _RtlGetFirstRange : Pointer = nil;
- _RtlGetFullPathName_U : Pointer = nil;
- _RtlGetGroupSecurityDescriptor : Pointer = nil;
- _RtlGetLastNtStatus : Pointer = nil;
- _RtlGetLongestNtPathLength : Pointer = nil;
- _RtlGetNextRange : Pointer = nil;
- _RtlGetNtGlobalFlags : Pointer = nil;
- _RtlGetNtProductType : Pointer = nil;
- _RtlGetNtVersionNumbers : Pointer = nil;
- _RtlGetOwnerSecurityDescriptor : Pointer = nil;
- _RtlGetProcessHeaps : Pointer = nil;
- _RtlGetSaclSecurityDescriptor : Pointer = nil;
- _RtlGetVersion : Pointer = nil;
- _RtlIdentifierAuthoritySid : Pointer = nil;
- _RtlImageDirectoryEntryToData : Pointer = nil;
- _RtlImageNtHeader : Pointer = nil;
- _RtlImageNtHeaderEx : Pointer = nil;
- _RtlImageRvaToSection : Pointer = nil;
- _RtlImageRvaToVa : Pointer = nil;
- _RtlImpersonateSelf : Pointer = nil;
- _RtlInitAnsiString : Pointer = nil;
- _RtlInitAnsiStringEx : Pointer = nil;
- _RtlInitString : Pointer = nil;
- _RtlInitUnicodeString : Pointer = nil;
- _RtlInitUnicodeStringEx : Pointer = nil;
- _RtlInitializeBitMap : Pointer = nil;
- _RtlInitializeCriticalSection : Pointer = nil;
- _RtlInitializeCriticalSectionAndSpinCount : Pointer = nil;
- _RtlInitializeRangeList : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlInitializeSListHead : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlInitializeSid : Pointer = nil;
- _RtlInt64ToUnicodeString : Pointer = nil;
- _RtlIntegerToChar : Pointer = nil;
- _RtlIntegerToUnicodeString : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlInterlockedFlushSList : Pointer = nil;
- _RtlInterlockedPopEntrySList : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlInterlockedPushEntrySList : Pointer = nil;
- _RtlInvertRangeList : Pointer = nil;
- _RtlIpv4AddressToStringA : Pointer = nil;
- _RtlIpv4AddressToStringW : Pointer = nil;
- _RtlIsDosDeviceName_U : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlIsNameLegalDOS8Dot3 : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlIsRangeAvailable : Pointer = nil;
- _RtlIsTextUnicode : Pointer = nil;
- _RtlLargeIntegerAdd : Pointer = nil;
- _RtlLargeIntegerArithmeticShift : Pointer = nil;
- _RtlLargeIntegerDivide : Pointer = nil;
- _RtlLargeIntegerNegate : Pointer = nil;
- _RtlLargeIntegerShiftLeft : Pointer = nil;
- _RtlLargeIntegerShiftRight : Pointer = nil;
- _RtlLargeIntegerSubtract : Pointer = nil;
- _RtlLargeIntegerToChar : Pointer = nil;
- _RtlLeaveCriticalSection : Pointer = nil;
- _RtlLengthRequiredSid : Pointer = nil;
- _RtlLengthSecurityDescriptor : Pointer = nil;
- _RtlLengthSid : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlLocalTimeToSystemTime : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlLockHeap : Pointer = nil;
- _RtlMakeSelfRelativeSD : Pointer = nil;
- _RtlMapGenericMask : Pointer = nil;
- _RtlMapSecurityErrorToNtStatus : Pointer = nil;
- _RtlMergeRangeLists : Pointer = nil;
- _RtlMoveMemory : Pointer = nil;
- _RtlNormalizeProcessParams : Pointer = nil;
- _RtlNtStatusToDosError : Pointer = nil;
- _RtlNtStatusToDosErrorNoTeb : Pointer = nil;
- _RtlNumberOfClearBits : Pointer = nil;
- _RtlNumberOfSetBits : Pointer = nil;
- _RtlOemStringToUnicodeSize : Pointer = nil;
- _RtlOemStringToUnicodeString : Pointer = nil;
- _RtlOemToUnicodeN : Pointer = nil;
- _RtlOpenCurrentUser : Pointer = nil;
- _RtlPrefixString : Pointer = nil;
- _RtlPrefixUnicodeString : Pointer = nil;
- _RtlQueryDepthSList : Pointer = nil;
- _RtlQueryEnvironmentVariable_U : Pointer = nil;
- _RtlQueryInformationAcl : Pointer = nil;
- _RtlQueryProcessDebugInformation : Pointer = nil;
- _RtlQueryRegistryValues : Pointer = nil;
- _RtlRaiseStatus : Pointer = nil;
- _RtlRandom : Pointer = nil;
- _RtlRandomEx : Pointer = nil;
- _RtlReAllocateHeap : Pointer = nil;
- _RtlReleasePebLock : Pointer = nil;
- _RtlRemoveVectoredExceptionHandler : Pointer = nil;
- _RtlRestoreLastWin32Error : Pointer = nil;
- _RtlRunDecodeUnicodeString : Pointer = nil;
- _RtlRunEncodeUnicodeString : Pointer = nil;
- _RtlSecondsSince1970ToTime : Pointer = nil;
- _RtlSecondsSince1980ToTime : Pointer = nil;
- _RtlSelfRelativeToAbsoluteSD : Pointer = nil;
- _RtlSetAllBits : Pointer = nil;
- _RtlSetBits : Pointer = nil;
- _RtlSetControlSecurityDescriptor : Pointer = nil;
- _RtlSetCriticalSectionSpinCount : Pointer = nil;
- _RtlSetCurrentDirectory_U : Pointer = nil;
- _RtlSetDaclSecurityDescriptor : Pointer = nil;
- _RtlSetGroupSecurityDescriptor : Pointer = nil;
- _RtlSetInformationAcl : Pointer = nil;
- _RtlSetLastWin32ErrorAndNtStatusFromNtStatus : Pointer = nil;
- _RtlSetOwnerSecurityDescriptor : Pointer = nil;
- _RtlSetProcessIsCritical : Pointer = nil;
- _RtlSetSaclSecurityDescriptor : Pointer = nil;
- _RtlSetThreadIsCritical : Pointer = nil;
- _RtlSizeHeap : Pointer = nil;
- _RtlStringFromGUID : Pointer = nil;
- _RtlSubAuthorityCountSid : Pointer = nil;
- _RtlSubAuthoritySid : Pointer = nil;
- _RtlSystemTimeToLocalTime : Pointer = nil;
- _RtlTimeFieldsToTime : Pointer = nil;
- _RtlTimeToElapsedTimeFields : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlTimeToSecondsSince1970 : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlTimeToSecondsSince1980 : Pointer = nil;
- _RtlTimeToTimeFields : Pointer = nil;
- _RtlTryEnterCriticalSection : Pointer = nil;
- _RtlUnicodeStringToAnsiSize : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlUnicodeStringToAnsiString : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlUnicodeStringToCountedOemString : Pointer = nil;
- _RtlUnicodeStringToInteger : Pointer = nil;
- _RtlUnicodeStringToOemSize : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _RtlUnicodeStringToOemString : Pointer = nil;
- _RtlUnicodeToMultiByteSize : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- _RtlUniform : Pointer = nil;
- _RtlUnwind : Pointer = nil;
- _RtlUpcaseUnicodeChar : Pointer = nil;
- _RtlUpcaseUnicodeString : Pointer = nil;
- _RtlUpcaseUnicodeStringToAnsiString : Pointer = nil;
- _RtlUpcaseUnicodeStringToCountedOemString : Pointer = nil;
- _RtlUpcaseUnicodeStringToOemString : Pointer = nil;
- _RtlUpcaseUnicodeToMultiByteN : Pointer = nil;
- _RtlUpcaseUnicodeToOemN : Pointer = nil;
- _RtlUpperChar : Pointer = nil;
- _RtlUpperString : Pointer = nil;
- _RtlValidAcl : Pointer = nil;
- _RtlValidRelativeSecurityDescriptor : Pointer = nil;
- _RtlValidSecurityDescriptor : Pointer = nil;
- _RtlValidSid : Pointer = nil;
- _RtlValidateHeap : Pointer = nil;
- _RtlValidateUnicodeString : Pointer = nil;
- _RtlVerifyVersionInfo : Pointer = nil;
- _RtlVolumeDeviceToDosName : Pointer = nil;
- _RtlWriteRegistryValue : Pointer = nil;
- _RtlZeroHeap : Pointer = nil;
- _RtlZeroMemory : Pointer = nil;
- _RtlpNotOwnerCriticalSection : Pointer = nil;
- _RtlpNtCreateKey : Pointer = nil;
- _RtlpNtEnumerateSubKey : Pointer = nil;
- _RtlpNtMakeTemporaryKey : Pointer = nil;
- _RtlpNtOpenKey : Pointer = nil;
- _RtlpNtQueryValueKey : Pointer = nil;
- _RtlpNtSetValueKey : Pointer = nil;
- _RtlxAnsiStringToUnicodeSize : Pointer = nil;
- _RtlxOemStringToUnicodeSize : Pointer = nil;
- _RtlxUnicodeStringToAnsiSize : Pointer = nil;
- _RtlxUnicodeStringToOemSize : Pointer = nil;
- {$IFNDEF JWA_INCLUDEMODE}
- _VerSetConditionMask : Pointer = nil;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of CsrGetProcessId
- function CsrGetProcessId(): DWORD; stdcall;
- begin
- GetProcedureAddress(_CsrGetProcessId, ntdll, 'CsrGetProcessId');
- Result := TFNCsrGetProcessId(_CsrGetProcessId)();
- end;
- // Dynamic version of DbgQueryDebugFilterState
- function DbgQueryDebugFilterState(
- ComponentId : ULONG;
- Level : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_DbgQueryDebugFilterState, ntdll, 'DbgQueryDebugFilterState');
- Result := TFNDbgQueryDebugFilterState(_DbgQueryDebugFilterState)(
- ComponentId, Level
- );
- end;
- // Dynamic version of DbgSetDebugFilterState
- function DbgSetDebugFilterState(
- ComponentId : ULONG;
- Level : ULONG;
- State : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_DbgSetDebugFilterState, ntdll, 'DbgSetDebugFilterState');
- Result := TFNDbgSetDebugFilterState(_DbgSetDebugFilterState)(
- ComponentId, Level, State
- );
- end;
- // Dynamic version of KiRaiseUserExceptionDispatcher
- function KiRaiseUserExceptionDispatcher(): ULONG; stdcall;
- begin
- GetProcedureAddress(_KiRaiseUserExceptionDispatcher, ntdll, 'KiRaiseUserExceptionDispatcher');
- Result := TFNKiRaiseUserExceptionDispatcher(_KiRaiseUserExceptionDispatcher)();
- end;
- // Dynamic version of LdrAccessResource
- function LdrAccessResource(
- hModule : HANDLE;
- ResourceDataEntry : PIMAGE_RESOURCE_DATA_ENTRY;
- Address : PPVOID;
- dwSize : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrAccessResource, ntdll, 'LdrAccessResource');
- Result := TFNLdrAccessResource(_LdrAccessResource)(
- hModule, ResourceDataEntry, Address, dwSize
- );
- end;
- // Dynamic version of LdrAlternateResourcesEnabled
- function LdrAlternateResourcesEnabled(): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_LdrAlternateResourcesEnabled, ntdll, 'LdrAlternateResourcesEnabled');
- Result := TFNLdrAlternateResourcesEnabled(_LdrAlternateResourcesEnabled)();
- end;
- // Dynamic version of LdrDisableThreadCalloutsForDll
- function LdrDisableThreadCalloutsForDll(
- hModule : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrDisableThreadCalloutsForDll, ntdll, 'LdrDisableThreadCalloutsForDll');
- Result := TFNLdrDisableThreadCalloutsForDll(_LdrDisableThreadCalloutsForDll)(
- hModule
- );
- end;
- // Dynamic version of LdrGetDllHandle
- function LdrGetDllHandle(
- pwPath : PWORD;
- pReserved : PVOID;
- pusPath : PUNICODE_STRING;
- var phModule : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrGetDllHandle, ntdll, 'LdrGetDllHandle');
- Result := TFNLdrGetDllHandle(_LdrGetDllHandle)(
- pwPath, pReserved, pusPath, phModule
- );
- end;
- // Dynamic version of LdrGetProcedureAddress
- function LdrGetProcedureAddress(
- hModule : HANDLE;
- dwOrdinal : ULONG;
- psName : PSTRING;
- var pProcedure : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrGetProcedureAddress, ntdll, 'LdrGetProcedureAddress');
- Result := TFNLdrGetProcedureAddress(_LdrGetProcedureAddress)(
- hModule, dwOrdinal, psName, pProcedure
- );
- end;
- // Dynamic version of LdrLoadDll
- function LdrLoadDll(
- pwPath : PWORD;
- pdwFlags : PDWORD;
- pusPath : PUNICODE_STRING;
- var phModule : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrLoadDll, ntdll, 'LdrLoadDll');
- Result := TFNLdrLoadDll(_LdrLoadDll)(
- pwPath, pdwFlags, pusPath, phModule
- );
- end;
- // Dynamic version of LdrQueryImageFileExecutionOptions
- function LdrQueryImageFileExecutionOptions(
- pusImagePath : PUNICODE_STRING;
- pwOptionName : PWORD;
- dwRequestedType : DWORD;
- pData : PVOID;
- dwSize : DWORD;
- pdwSize : PDWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrQueryImageFileExecutionOptions, ntdll, 'LdrQueryImageFileExecutionOptions');
- Result := TFNLdrQueryImageFileExecutionOptions(_LdrQueryImageFileExecutionOptions)(
- pusImagePath, pwOptionName, dwRequestedType, pData, dwSize, pdwSize
- );
- end;
- // Dynamic version of LdrQueryProcessModuleInformation
- function LdrQueryProcessModuleInformation(
- psmi : PSYSTEM_MODULE_INFORMATION;
- dwSize : DWORD;
- pdwSize : PDWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrQueryProcessModuleInformation, ntdll, 'LdrQueryProcessModuleInformation');
- Result := TFNLdrQueryProcessModuleInformation(_LdrQueryProcessModuleInformation)(
- psmi, dwSize, pdwSize
- );
- end;
- // Dynamic version of LdrShutdownProcess
- procedure LdrShutdownProcess(); stdcall;
- begin
- GetProcedureAddress(_LdrShutdownProcess, ntdll, 'LdrShutdownProcess');
- TFNLdrShutdownProcess(_LdrShutdownProcess)();
- end;
- // Dynamic version of LdrShutdownThread
- procedure LdrShutdownThread(); stdcall;
- begin
- GetProcedureAddress(_LdrShutdownThread, ntdll, 'LdrShutdownThread');
- TFNLdrShutdownThread(_LdrShutdownThread)();
- end;
- // Dynamic version of LdrUnloadDll
- function LdrUnloadDll(
- hModule : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_LdrUnloadDll, ntdll, 'LdrUnloadDll');
- Result := TFNLdrUnloadDll(_LdrUnloadDll)(
- hModule
- );
- end;
- // Dynamic version of NtAcceptConnectPort
- function NtAcceptConnectPort(
- PortHandle : PHANDLE;
- PortIdentifier : ULONG;
- Message : PPORT_MESSAGE;
- Accept : BOOLEAN;
- WriteSection : PPORT_SECTION_WRITE;
- ReadSection : PPORT_SECTION_READ
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAcceptConnectPort, ntdll, 'NtAcceptConnectPort');
- Result := TFNNtAcceptConnectPort(_NtAcceptConnectPort)(
- PortHandle, PortIdentifier, Message, Accept, WriteSection, ReadSection
- );
- end;
- // Dynamic version of NtAcceptConnectPort
- function ZwAcceptConnectPort(
- PortHandle : PHANDLE;
- PortIdentifier : ULONG;
- Message : PPORT_MESSAGE;
- Accept : BOOLEAN;
- WriteSection : PPORT_SECTION_WRITE;
- ReadSection : PPORT_SECTION_READ
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAcceptConnectPort, ntdll, 'NtAcceptConnectPort');
- Result := TFNNtAcceptConnectPort(_NtAcceptConnectPort)(
- PortHandle, PortIdentifier, Message, Accept, WriteSection, ReadSection
- );
- end;
- // Dynamic version of NtAccessCheck
- function NtAccessCheck(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheck, ntdll, 'NtAccessCheck');
- Result := TFNNtAccessCheck(_NtAccessCheck)(
- SecurityDescriptor, TokenHandle, DesiredAccess, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus
- );
- end;
- // Dynamic version of NtAccessCheck
- function ZwAccessCheck(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheck, ntdll, 'NtAccessCheck');
- Result := TFNNtAccessCheck(_NtAccessCheck)(
- SecurityDescriptor, TokenHandle, DesiredAccess, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus
- );
- end;
- // Dynamic version of NtAccessCheckAndAuditAlarm
- function NtAccessCheckAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- DesiredAccess : ACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PBOOLEAN;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckAndAuditAlarm, ntdll, 'NtAccessCheckAndAuditAlarm');
- Result := TFNNtAccessCheckAndAuditAlarm(_NtAccessCheckAndAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, DesiredAccess, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus, GenerateOnClose
- );
- end;
- // Dynamic version of NtAccessCheckAndAuditAlarm
- function ZwAccessCheckAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- DesiredAccess : ACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PBOOLEAN;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckAndAuditAlarm, ntdll, 'NtAccessCheckAndAuditAlarm');
- Result := TFNNtAccessCheckAndAuditAlarm(_NtAccessCheckAndAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, DesiredAccess, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus, GenerateOnClose
- );
- end;
- // Dynamic version of NtAccessCheckByType
- function NtAccessCheckByType(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByType, ntdll, 'NtAccessCheckByType');
- Result := TFNNtAccessCheckByType(_NtAccessCheckByType)(
- SecurityDescriptor, PrincipalSelfSid, TokenHandle, DesiredAccess, ObjectTypeList, ObjectTypeListLength, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus
- );
- end;
- // Dynamic version of NtAccessCheckByType
- function ZwAccessCheckByType(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByType, ntdll, 'NtAccessCheckByType');
- Result := TFNNtAccessCheckByType(_NtAccessCheckByType)(
- SecurityDescriptor, PrincipalSelfSid, TokenHandle, DesiredAccess, ObjectTypeList, ObjectTypeListLength, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, AccessStatus
- );
- end;
- // Dynamic version of NtAccessCheckByTypeAndAuditAlarm
- function NtAccessCheckByTypeAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PULONG;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeAndAuditAlarm, ntdll, 'NtAccessCheckByTypeAndAuditAlarm');
- Result := TFNNtAccessCheckByTypeAndAuditAlarm(_NtAccessCheckByTypeAndAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, PrincipalSelfSid, DesiredAccess, AuditType, Flags, ObjectTypeList, ObjectTypeListLength, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus,
- GenerateOnClose
- );
- end;
- // Dynamic version of NtAccessCheckByTypeAndAuditAlarm
- function ZwAccessCheckByTypeAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccess : PACCESS_MASK;
- AccessStatus : PULONG;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeAndAuditAlarm, ntdll, 'NtAccessCheckByTypeAndAuditAlarm');
- Result := TFNNtAccessCheckByTypeAndAuditAlarm(_NtAccessCheckByTypeAndAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, PrincipalSelfSid, DesiredAccess, AuditType, Flags, ObjectTypeList, ObjectTypeListLength, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus,
- GenerateOnClose
- );
- end;
- // Dynamic version of NtAccessCheckByTypeResultList
- function NtAccessCheckByTypeResultList(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeResultList, ntdll, 'NtAccessCheckByTypeResultList');
- Result := TFNNtAccessCheckByTypeResultList(_NtAccessCheckByTypeResultList)(
- SecurityDescriptor, PrincipalSelfSid, TokenHandle, DesiredAccess, ObjectTypeList, ObjectTypeListLength, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccessList, AccessStatusList
- );
- end;
- // Dynamic version of NtAccessCheckByTypeResultList
- function ZwAccessCheckByTypeResultList(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- PrivilegeSet : PPRIVILEGE_SET;
- PrivilegeSetLength : PULONG;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeResultList, ntdll, 'NtAccessCheckByTypeResultList');
- Result := TFNNtAccessCheckByTypeResultList(_NtAccessCheckByTypeResultList)(
- SecurityDescriptor, PrincipalSelfSid, TokenHandle, DesiredAccess, ObjectTypeList, ObjectTypeListLength, GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccessList, AccessStatusList
- );
- end;
- // Dynamic version of NtAccessCheckByTypeResultListAndAuditAlarm
- function NtAccessCheckByTypeResultListAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG;
- GenerateOnClose : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeResultListAndAuditAlarm, ntdll, 'NtAccessCheckByTypeResultListAndAuditAlarm');
- Result := TFNNtAccessCheckByTypeResultListAndAuditAlarm(_NtAccessCheckByTypeResultListAndAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, PrincipalSelfSid, DesiredAccess, AuditType, Flags, ObjectTypeList, ObjectTypeListLength, GenericMapping, ObjectCreation, GrantedAccessList, AccessStatusList,
- GenerateOnClose
- );
- end;
- // Dynamic version of NtAccessCheckByTypeResultListAndAuditAlarm
- function ZwAccessCheckByTypeResultListAndAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG;
- GenerateOnClose : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeResultListAndAuditAlarm, ntdll, 'NtAccessCheckByTypeResultListAndAuditAlarm');
- Result := TFNNtAccessCheckByTypeResultListAndAuditAlarm(_NtAccessCheckByTypeResultListAndAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, PrincipalSelfSid, DesiredAccess, AuditType, Flags, ObjectTypeList, ObjectTypeListLength, GenericMapping, ObjectCreation, GrantedAccessList, AccessStatusList,
- GenerateOnClose
- );
- end;
- // Dynamic version of NtAccessCheckByTypeResultListAndAuditAlarmByHandle
- function NtAccessCheckByTypeResultListAndAuditAlarmByHandle(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- TokenHandle : HANDLE;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG;
- GenerateOnClose : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeResultListAndAuditAlarmByHandle, ntdll, 'NtAccessCheckByTypeResultListAndAuditAlarmByHandle');
- Result := TFNNtAccessCheckByTypeResultListAndAuditAlarmByHandle(_NtAccessCheckByTypeResultListAndAuditAlarmByHandle)(
- SubsystemName, HandleId, TokenHandle, ObjectTypeName, ObjectName, SecurityDescriptor, PrincipalSelfSid, DesiredAccess, AuditType, Flags, ObjectTypeList, ObjectTypeListLength, GenericMapping, ObjectCreation, GrantedAccessList,
- AccessStatusList, GenerateOnClose
- );
- end;
- // Dynamic version of NtAccessCheckByTypeResultListAndAuditAlarmByHandle
- function ZwAccessCheckByTypeResultListAndAuditAlarmByHandle(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- TokenHandle : HANDLE;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- PrincipalSelfSid : PSID;
- DesiredAccess : ACCESS_MASK;
- AuditType : AUDIT_EVENT_TYPE;
- Flags : ULONG;
- ObjectTypeList : POBJECT_TYPE_LIST;
- ObjectTypeListLength : ULONG;
- GenericMapping : PGENERIC_MAPPING;
- ObjectCreation : BOOLEAN;
- GrantedAccessList : PACCESS_MASK;
- AccessStatusList : PULONG;
- GenerateOnClose : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAccessCheckByTypeResultListAndAuditAlarmByHandle, ntdll, 'NtAccessCheckByTypeResultListAndAuditAlarmByHandle');
- Result := TFNNtAccessCheckByTypeResultListAndAuditAlarmByHandle(_NtAccessCheckByTypeResultListAndAuditAlarmByHandle)(
- SubsystemName, HandleId, TokenHandle, ObjectTypeName, ObjectName, SecurityDescriptor, PrincipalSelfSid, DesiredAccess, AuditType, Flags, ObjectTypeList, ObjectTypeListLength, GenericMapping, ObjectCreation, GrantedAccessList,
- AccessStatusList, GenerateOnClose
- );
- end;
- // Dynamic version of NtAddAtom
- function NtAddAtom(
- Str : PWSTR;
- StringLength : ULONG;
- Atom : PUSHORT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAddAtom, ntdll, 'NtAddAtom');
- Result := TFNNtAddAtom(_NtAddAtom)(
- Str, StringLength, Atom
- );
- end;
- // Dynamic version of NtAddAtom
- function ZwAddAtom(
- Str : PWSTR;
- StringLength : ULONG;
- Atom : PUSHORT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAddAtom, ntdll, 'NtAddAtom');
- Result := TFNNtAddAtom(_NtAddAtom)(
- Str, StringLength, Atom
- );
- end;
- // Dynamic version of NtAdjustGroupsToken
- function NtAdjustGroupsToken(
- TokenHandle : HANDLE;
- ResetToDefault : BOOLEAN;
- NewState : PTOKEN_GROUPS;
- BufferLength : ULONG;
- PreviousState : PTOKEN_GROUPS;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAdjustGroupsToken, ntdll, 'NtAdjustGroupsToken');
- Result := TFNNtAdjustGroupsToken(_NtAdjustGroupsToken)(
- TokenHandle, ResetToDefault, NewState, BufferLength, PreviousState, ReturnLength
- );
- end;
- // Dynamic version of NtAdjustGroupsToken
- function ZwAdjustGroupsToken(
- TokenHandle : HANDLE;
- ResetToDefault : BOOLEAN;
- NewState : PTOKEN_GROUPS;
- BufferLength : ULONG;
- PreviousState : PTOKEN_GROUPS;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAdjustGroupsToken, ntdll, 'NtAdjustGroupsToken');
- Result := TFNNtAdjustGroupsToken(_NtAdjustGroupsToken)(
- TokenHandle, ResetToDefault, NewState, BufferLength, PreviousState, ReturnLength
- );
- end;
- // Dynamic version of NtAdjustPrivilegesToken
- function NtAdjustPrivilegesToken(
- TokenHandle : HANDLE;
- DisableAllPrivileges : BOOLEAN;
- NewState : PTOKEN_PRIVILEGES;
- BufferLength : ULONG;
- PreviousState : PTOKEN_PRIVILEGES;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAdjustPrivilegesToken, ntdll, 'NtAdjustPrivilegesToken');
- Result := TFNNtAdjustPrivilegesToken(_NtAdjustPrivilegesToken)(
- TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength
- );
- end;
- // Dynamic version of NtAdjustPrivilegesToken
- function ZwAdjustPrivilegesToken(
- TokenHandle : HANDLE;
- DisableAllPrivileges : BOOLEAN;
- NewState : PTOKEN_PRIVILEGES;
- BufferLength : ULONG;
- PreviousState : PTOKEN_PRIVILEGES;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAdjustPrivilegesToken, ntdll, 'NtAdjustPrivilegesToken');
- Result := TFNNtAdjustPrivilegesToken(_NtAdjustPrivilegesToken)(
- TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength
- );
- end;
- // Dynamic version of NtAlertResumeThread
- function NtAlertResumeThread(
- ThreadHandle : HANDLE;
- PreviousSuspendCount : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAlertResumeThread, ntdll, 'NtAlertResumeThread');
- Result := TFNNtAlertResumeThread(_NtAlertResumeThread)(
- ThreadHandle, PreviousSuspendCount
- );
- end;
- // Dynamic version of NtAlertResumeThread
- function ZwAlertResumeThread(
- ThreadHandle : HANDLE;
- PreviousSuspendCount : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAlertResumeThread, ntdll, 'NtAlertResumeThread');
- Result := TFNNtAlertResumeThread(_NtAlertResumeThread)(
- ThreadHandle, PreviousSuspendCount
- );
- end;
- // Dynamic version of NtAlertThread
- function NtAlertThread(
- ThreadHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAlertThread, ntdll, 'NtAlertThread');
- Result := TFNNtAlertThread(_NtAlertThread)(
- ThreadHandle
- );
- end;
- // Dynamic version of NtAlertThread
- function ZwAlertThread(
- ThreadHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAlertThread, ntdll, 'NtAlertThread');
- Result := TFNNtAlertThread(_NtAlertThread)(
- ThreadHandle
- );
- end;
- // Dynamic version of NtAllocateLocallyUniqueId
- function NtAllocateLocallyUniqueId(
- Luid : PLUID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateLocallyUniqueId, ntdll, 'NtAllocateLocallyUniqueId');
- Result := TFNNtAllocateLocallyUniqueId(_NtAllocateLocallyUniqueId)(
- Luid
- );
- end;
- // Dynamic version of NtAllocateLocallyUniqueId
- function ZwAllocateLocallyUniqueId(
- Luid : PLUID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateLocallyUniqueId, ntdll, 'NtAllocateLocallyUniqueId');
- Result := TFNNtAllocateLocallyUniqueId(_NtAllocateLocallyUniqueId)(
- Luid
- );
- end;
- // Dynamic version of NtAllocateUserPhysicalPages
- function NtAllocateUserPhysicalPages(
- ProcessHandle : HANDLE;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateUserPhysicalPages, ntdll, 'NtAllocateUserPhysicalPages');
- Result := TFNNtAllocateUserPhysicalPages(_NtAllocateUserPhysicalPages)(
- ProcessHandle, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtAllocateUserPhysicalPages
- function ZwAllocateUserPhysicalPages(
- ProcessHandle : HANDLE;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateUserPhysicalPages, ntdll, 'NtAllocateUserPhysicalPages');
- Result := TFNNtAllocateUserPhysicalPages(_NtAllocateUserPhysicalPages)(
- ProcessHandle, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtAllocateUuids
- function NtAllocateUuids(
- UuidLastTimeAllocated : PLARGE_INTEGER;
- UuidDeltaTime : PULONG;
- UuidSequenceNumber : PULONG;
- UuidSeed : PUCHAR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateUuids, ntdll, 'NtAllocateUuids');
- Result := TFNNtAllocateUuids(_NtAllocateUuids)(
- UuidLastTimeAllocated, UuidDeltaTime, UuidSequenceNumber, UuidSeed
- );
- end;
- // Dynamic version of NtAllocateUuids
- function ZwAllocateUuids(
- UuidLastTimeAllocated : PLARGE_INTEGER;
- UuidDeltaTime : PULONG;
- UuidSequenceNumber : PULONG;
- UuidSeed : PUCHAR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateUuids, ntdll, 'NtAllocateUuids');
- Result := TFNNtAllocateUuids(_NtAllocateUuids)(
- UuidLastTimeAllocated, UuidDeltaTime, UuidSequenceNumber, UuidSeed
- );
- end;
- // Dynamic version of NtAllocateVirtualMemory
- function NtAllocateVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ZeroBits : ULONG;
- AllocationSize : PULONG;
- AllocationType : ULONG;
- Protect : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateVirtualMemory, ntdll, 'NtAllocateVirtualMemory');
- Result := TFNNtAllocateVirtualMemory(_NtAllocateVirtualMemory)(
- ProcessHandle, BaseAddress, ZeroBits, AllocationSize, AllocationType, Protect
- );
- end;
- // Dynamic version of NtAllocateVirtualMemory
- function ZwAllocateVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ZeroBits : ULONG;
- AllocationSize : PULONG;
- AllocationType : ULONG;
- Protect : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAllocateVirtualMemory, ntdll, 'NtAllocateVirtualMemory');
- Result := TFNNtAllocateVirtualMemory(_NtAllocateVirtualMemory)(
- ProcessHandle, BaseAddress, ZeroBits, AllocationSize, AllocationType, Protect
- );
- end;
- // Dynamic version of NtAreMappedFilesTheSame
- function NtAreMappedFilesTheSame(
- Address1 : PVOID;
- Address2 : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAreMappedFilesTheSame, ntdll, 'NtAreMappedFilesTheSame');
- Result := TFNNtAreMappedFilesTheSame(_NtAreMappedFilesTheSame)(
- Address1, Address2
- );
- end;
- // Dynamic version of NtAreMappedFilesTheSame
- function ZwAreMappedFilesTheSame(
- Address1 : PVOID;
- Address2 : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAreMappedFilesTheSame, ntdll, 'NtAreMappedFilesTheSame');
- Result := TFNNtAreMappedFilesTheSame(_NtAreMappedFilesTheSame)(
- Address1, Address2
- );
- end;
- // Dynamic version of NtAssignProcessToJobObject
- function NtAssignProcessToJobObject(
- JobHandle : HANDLE;
- ProcessHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAssignProcessToJobObject, ntdll, 'NtAssignProcessToJobObject');
- Result := TFNNtAssignProcessToJobObject(_NtAssignProcessToJobObject)(
- JobHandle, ProcessHandle
- );
- end;
- // Dynamic version of NtAssignProcessToJobObject
- function ZwAssignProcessToJobObject(
- JobHandle : HANDLE;
- ProcessHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtAssignProcessToJobObject, ntdll, 'NtAssignProcessToJobObject');
- Result := TFNNtAssignProcessToJobObject(_NtAssignProcessToJobObject)(
- JobHandle, ProcessHandle
- );
- end;
- // Dynamic version of NtCallbackReturn
- function NtCallbackReturn(
- Result_ : PVOID;
- ResultLength : ULONG;
- Status : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCallbackReturn, ntdll, 'NtCallbackReturn');
- Result := TFNNtCallbackReturn(_NtCallbackReturn)(
- Result_, ResultLength, Status
- );
- end;
- // Dynamic version of NtCallbackReturn
- function ZwCallbackReturn(
- Result_ : PVOID;
- ResultLength : ULONG;
- Status : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCallbackReturn, ntdll, 'NtCallbackReturn');
- Result := TFNNtCallbackReturn(_NtCallbackReturn)(
- Result_, ResultLength, Status
- );
- end;
- // Dynamic version of NtCancelDeviceWakeupRequest
- function NtCancelDeviceWakeupRequest(
- DeviceHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCancelDeviceWakeupRequest, ntdll, 'NtCancelDeviceWakeupRequest');
- Result := TFNNtCancelDeviceWakeupRequest(_NtCancelDeviceWakeupRequest)(
- DeviceHandle
- );
- end;
- // Dynamic version of NtCancelDeviceWakeupRequest
- function ZwCancelDeviceWakeupRequest(
- DeviceHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCancelDeviceWakeupRequest, ntdll, 'NtCancelDeviceWakeupRequest');
- Result := TFNNtCancelDeviceWakeupRequest(_NtCancelDeviceWakeupRequest)(
- DeviceHandle
- );
- end;
- // Dynamic version of NtCancelIoFile
- function NtCancelIoFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCancelIoFile, ntdll, 'NtCancelIoFile');
- Result := TFNNtCancelIoFile(_NtCancelIoFile)(
- FileHandle, IoStatusBlock
- );
- end;
- // Dynamic version of NtCancelIoFile
- function ZwCancelIoFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCancelIoFile, ntdll, 'NtCancelIoFile');
- Result := TFNNtCancelIoFile(_NtCancelIoFile)(
- FileHandle, IoStatusBlock
- );
- end;
- // Dynamic version of NtCancelTimer
- function NtCancelTimer(
- TimerHandle : HANDLE;
- PreviousState : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCancelTimer, ntdll, 'NtCancelTimer');
- Result := TFNNtCancelTimer(_NtCancelTimer)(
- TimerHandle, PreviousState
- );
- end;
- // Dynamic version of NtCancelTimer
- function ZwCancelTimer(
- TimerHandle : HANDLE;
- PreviousState : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCancelTimer, ntdll, 'NtCancelTimer');
- Result := TFNNtCancelTimer(_NtCancelTimer)(
- TimerHandle, PreviousState
- );
- end;
- // Dynamic version of NtClearEvent
- function NtClearEvent(
- EventHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtClearEvent, ntdll, 'NtClearEvent');
- Result := TFNNtClearEvent(_NtClearEvent)(
- EventHandle
- );
- end;
- // Dynamic version of NtClearEvent
- function ZwClearEvent(
- EventHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtClearEvent, ntdll, 'NtClearEvent');
- Result := TFNNtClearEvent(_NtClearEvent)(
- EventHandle
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtClose
- function NtClose(
- Handle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtClose, ntdll, 'NtClose');
- Result := TFNNtClose(_NtClose)(
- Handle
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtClose
- function ZwClose(
- Handle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtClose, ntdll, 'NtClose');
- Result := TFNNtClose(_NtClose)(
- Handle
- );
- end;
- // Dynamic version of NtCloseObjectAuditAlarm
- function NtCloseObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- GenerateOnClose : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCloseObjectAuditAlarm, ntdll, 'NtCloseObjectAuditAlarm');
- Result := TFNNtCloseObjectAuditAlarm(_NtCloseObjectAuditAlarm)(
- SubsystemName, HandleId, GenerateOnClose
- );
- end;
- // Dynamic version of NtCloseObjectAuditAlarm
- function ZwCloseObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- GenerateOnClose : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCloseObjectAuditAlarm, ntdll, 'NtCloseObjectAuditAlarm');
- Result := TFNNtCloseObjectAuditAlarm(_NtCloseObjectAuditAlarm)(
- SubsystemName, HandleId, GenerateOnClose
- );
- end;
- // Dynamic version of NtCompleteConnectPort
- function NtCompleteConnectPort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCompleteConnectPort, ntdll, 'NtCompleteConnectPort');
- Result := TFNNtCompleteConnectPort(_NtCompleteConnectPort)(
- PortHandle
- );
- end;
- // Dynamic version of NtCompleteConnectPort
- function ZwCompleteConnectPort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCompleteConnectPort, ntdll, 'NtCompleteConnectPort');
- Result := TFNNtCompleteConnectPort(_NtCompleteConnectPort)(
- PortHandle
- );
- end;
- // Dynamic version of NtConnectPort
- function NtConnectPort(
- PortHandle : PHANDLE;
- PortName : PUNICODE_STRING;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE;
- WriteSection : PPORT_SECTION_WRITE;
- ReadSection : PPORT_SECTION_READ;
- MaxMessageSize : PULONG;
- ConnectData : PVOID;
- ConnectDataLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtConnectPort, ntdll, 'NtConnectPort');
- Result := TFNNtConnectPort(_NtConnectPort)(
- PortHandle, PortName, SecurityQos, WriteSection, ReadSection, MaxMessageSize, ConnectData, ConnectDataLength
- );
- end;
- // Dynamic version of NtConnectPort
- function ZwConnectPort(
- PortHandle : PHANDLE;
- PortName : PUNICODE_STRING;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE;
- WriteSection : PPORT_SECTION_WRITE;
- ReadSection : PPORT_SECTION_READ;
- MaxMessageSize : PULONG;
- ConnectData : PVOID;
- ConnectDataLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtConnectPort, ntdll, 'NtConnectPort');
- Result := TFNNtConnectPort(_NtConnectPort)(
- PortHandle, PortName, SecurityQos, WriteSection, ReadSection, MaxMessageSize, ConnectData, ConnectDataLength
- );
- end;
- // Dynamic version of NtContinue
- function NtContinue(
- Context : PCONTEXT;
- TestAlert : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtContinue, ntdll, 'NtContinue');
- Result := TFNNtContinue(_NtContinue)(
- Context, TestAlert
- );
- end;
- // Dynamic version of NtContinue
- function ZwContinue(
- Context : PCONTEXT;
- TestAlert : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtContinue, ntdll, 'NtContinue');
- Result := TFNNtContinue(_NtContinue)(
- Context, TestAlert
- );
- end;
- // Dynamic version of NtCreateChannel
- function NtCreateChannel(
- ChannelHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateChannel, ntdll, 'NtCreateChannel');
- Result := TFNNtCreateChannel(_NtCreateChannel)(
- ChannelHandle, ObjectAttributes
- );
- end;
- // Dynamic version of NtCreateChannel
- function ZwCreateChannel(
- ChannelHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateChannel, ntdll, 'NtCreateChannel');
- Result := TFNNtCreateChannel(_NtCreateChannel)(
- ChannelHandle, ObjectAttributes
- );
- end;
- // Dynamic version of NtCreateDirectoryObject
- function NtCreateDirectoryObject(
- DirectoryHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateDirectoryObject, ntdll, 'NtCreateDirectoryObject');
- Result := TFNNtCreateDirectoryObject(_NtCreateDirectoryObject)(
- DirectoryHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtCreateDirectoryObject
- function ZwCreateDirectoryObject(
- DirectoryHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateDirectoryObject, ntdll, 'NtCreateDirectoryObject');
- Result := TFNNtCreateDirectoryObject(_NtCreateDirectoryObject)(
- DirectoryHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtCreateEvent
- function NtCreateEvent(
- EventHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- EventType : EVENT_TYPE;
- InitialState : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateEvent, ntdll, 'NtCreateEvent');
- Result := TFNNtCreateEvent(_NtCreateEvent)(
- EventHandle, DesiredAccess, ObjectAttributes, EventType, InitialState
- );
- end;
- // Dynamic version of NtCreateEvent
- function ZwCreateEvent(
- EventHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- EventType : EVENT_TYPE;
- InitialState : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateEvent, ntdll, 'NtCreateEvent');
- Result := TFNNtCreateEvent(_NtCreateEvent)(
- EventHandle, DesiredAccess, ObjectAttributes, EventType, InitialState
- );
- end;
- // Dynamic version of NtCreateEventPair
- function NtCreateEventPair(
- EventPairHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateEventPair, ntdll, 'NtCreateEventPair');
- Result := TFNNtCreateEventPair(_NtCreateEventPair)(
- EventPairHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtCreateEventPair
- function ZwCreateEventPair(
- EventPairHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateEventPair, ntdll, 'NtCreateEventPair');
- Result := TFNNtCreateEventPair(_NtCreateEventPair)(
- EventPairHandle, DesiredAccess, ObjectAttributes
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtCreateFile
- function NtCreateFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- AllocationSize : PLARGE_INTEGER;
- FileAttributes : ULONG;
- ShareAccess : ULONG;
- CreateDisposition : ULONG;
- CreateOptions : ULONG;
- EaBuffer : PVOID;
- EaLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateFile, ntdll, 'NtCreateFile');
- Result := TFNNtCreateFile(_NtCreateFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, EaBuffer, EaLength
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtCreateFile
- function ZwCreateFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- AllocationSize : PLARGE_INTEGER;
- FileAttributes : ULONG;
- ShareAccess : ULONG;
- CreateDisposition : ULONG;
- CreateOptions : ULONG;
- EaBuffer : PVOID;
- EaLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateFile, ntdll, 'NtCreateFile');
- Result := TFNNtCreateFile(_NtCreateFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, EaBuffer, EaLength
- );
- end;
- // Dynamic version of NtCreateIoCompletion
- function NtCreateIoCompletion(
- IoCompletionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- NumberOfConcurrentThreads : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateIoCompletion, ntdll, 'NtCreateIoCompletion');
- Result := TFNNtCreateIoCompletion(_NtCreateIoCompletion)(
- IoCompletionHandle, DesiredAccess, ObjectAttributes, NumberOfConcurrentThreads
- );
- end;
- // Dynamic version of NtCreateIoCompletion
- function ZwCreateIoCompletion(
- IoCompletionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- NumberOfConcurrentThreads : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateIoCompletion, ntdll, 'NtCreateIoCompletion');
- Result := TFNNtCreateIoCompletion(_NtCreateIoCompletion)(
- IoCompletionHandle, DesiredAccess, ObjectAttributes, NumberOfConcurrentThreads
- );
- end;
- // Dynamic version of NtCreateJobObject
- function NtCreateJobObject(
- JobHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateJobObject, ntdll, 'NtCreateJobObject');
- Result := TFNNtCreateJobObject(_NtCreateJobObject)(
- JobHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtCreateJobObject
- function ZwCreateJobObject(
- JobHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateJobObject, ntdll, 'NtCreateJobObject');
- Result := TFNNtCreateJobObject(_NtCreateJobObject)(
- JobHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtCreateKey
- function NtCreateKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TitleIndex : ULONG;
- Class_ : PUNICODE_STRING;
- CreateOptions : ULONG;
- Disposition : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateKey, ntdll, 'NtCreateKey');
- Result := TFNNtCreateKey(_NtCreateKey)(
- KeyHandle, DesiredAccess, ObjectAttributes, TitleIndex, Class_, CreateOptions, Disposition
- );
- end;
- // Dynamic version of NtCreateKey
- function ZwCreateKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TitleIndex : ULONG;
- Class_ : PUNICODE_STRING;
- CreateOptions : ULONG;
- Disposition : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateKey, ntdll, 'NtCreateKey');
- Result := TFNNtCreateKey(_NtCreateKey)(
- KeyHandle, DesiredAccess, ObjectAttributes, TitleIndex, Class_, CreateOptions, Disposition
- );
- end;
- // Dynamic version of NtCreateMailslotFile
- function NtCreateMailslotFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- CreateOptions : ULONG;
- Unknown : ULONG;
- MaxMessageSize : ULONG;
- ReadTimeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateMailslotFile, ntdll, 'NtCreateMailslotFile');
- Result := TFNNtCreateMailslotFile(_NtCreateMailslotFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, CreateOptions, Unknown, MaxMessageSize, ReadTimeout
- );
- end;
- // Dynamic version of NtCreateMailslotFile
- function ZwCreateMailslotFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- CreateOptions : ULONG;
- Unknown : ULONG;
- MaxMessageSize : ULONG;
- ReadTimeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateMailslotFile, ntdll, 'NtCreateMailslotFile');
- Result := TFNNtCreateMailslotFile(_NtCreateMailslotFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, CreateOptions, Unknown, MaxMessageSize, ReadTimeout
- );
- end;
- // Dynamic version of NtCreateMutant
- function NtCreateMutant(
- MutantHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InitialOwner : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateMutant, ntdll, 'NtCreateMutant');
- Result := TFNNtCreateMutant(_NtCreateMutant)(
- MutantHandle, DesiredAccess, ObjectAttributes, InitialOwner
- );
- end;
- // Dynamic version of NtCreateMutant
- function ZwCreateMutant(
- MutantHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InitialOwner : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateMutant, ntdll, 'NtCreateMutant');
- Result := TFNNtCreateMutant(_NtCreateMutant)(
- MutantHandle, DesiredAccess, ObjectAttributes, InitialOwner
- );
- end;
- // Dynamic version of NtCreateNamedPipeFile
- function NtCreateNamedPipeFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- ShareAccess : ULONG;
- CreateDisposition : ULONG;
- CreateOptions : ULONG;
- TypeMessage : BOOLEAN;
- ReadmodeMessage : BOOLEAN;
- Nonblocking : BOOLEAN;
- MaxInstances : ULONG;
- InBufferSize : ULONG;
- OutBufferSize : ULONG;
- DefaultTimeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateNamedPipeFile, ntdll, 'NtCreateNamedPipeFile');
- Result := TFNNtCreateNamedPipeFile(_NtCreateNamedPipeFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, CreateDisposition, CreateOptions, TypeMessage, ReadmodeMessage, Nonblocking, MaxInstances, InBufferSize, OutBufferSize, DefaultTimeout
- );
- end;
- // Dynamic version of NtCreateNamedPipeFile
- function ZwCreateNamedPipeFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- ShareAccess : ULONG;
- CreateDisposition : ULONG;
- CreateOptions : ULONG;
- TypeMessage : BOOLEAN;
- ReadmodeMessage : BOOLEAN;
- Nonblocking : BOOLEAN;
- MaxInstances : ULONG;
- InBufferSize : ULONG;
- OutBufferSize : ULONG;
- DefaultTimeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateNamedPipeFile, ntdll, 'NtCreateNamedPipeFile');
- Result := TFNNtCreateNamedPipeFile(_NtCreateNamedPipeFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, CreateDisposition, CreateOptions, TypeMessage, ReadmodeMessage, Nonblocking, MaxInstances, InBufferSize, OutBufferSize, DefaultTimeout
- );
- end;
- // Dynamic version of NtCreatePagingFile
- function NtCreatePagingFile(
- FileName : PUNICODE_STRING;
- InitialSize : PULARGE_INTEGER;
- MaximumSize : PULARGE_INTEGER;
- Reserved : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreatePagingFile, ntdll, 'NtCreatePagingFile');
- Result := TFNNtCreatePagingFile(_NtCreatePagingFile)(
- FileName, InitialSize, MaximumSize, Reserved
- );
- end;
- // Dynamic version of NtCreatePagingFile
- function ZwCreatePagingFile(
- FileName : PUNICODE_STRING;
- InitialSize : PULARGE_INTEGER;
- MaximumSize : PULARGE_INTEGER;
- Reserved : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreatePagingFile, ntdll, 'NtCreatePagingFile');
- Result := TFNNtCreatePagingFile(_NtCreatePagingFile)(
- FileName, InitialSize, MaximumSize, Reserved
- );
- end;
- // Dynamic version of NtCreatePort
- function NtCreatePort(
- PortHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- MaxDataSize : ULONG;
- MaxMessageSize : ULONG;
- Reserved : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreatePort, ntdll, 'NtCreatePort');
- Result := TFNNtCreatePort(_NtCreatePort)(
- PortHandle, ObjectAttributes, MaxDataSize, MaxMessageSize, Reserved
- );
- end;
- // Dynamic version of NtCreatePort
- function ZwCreatePort(
- PortHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- MaxDataSize : ULONG;
- MaxMessageSize : ULONG;
- Reserved : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreatePort, ntdll, 'NtCreatePort');
- Result := TFNNtCreatePort(_NtCreatePort)(
- PortHandle, ObjectAttributes, MaxDataSize, MaxMessageSize, Reserved
- );
- end;
- // Dynamic version of NtCreateProcess
- function NtCreateProcess(
- ProcessHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InheritFromProcessHandle : HANDLE;
- InheritHandles : BOOLEAN;
- SectionHandle : HANDLE;
- DebugPort : HANDLE;
- ExceptionPort : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateProcess, ntdll, 'NtCreateProcess');
- Result := TFNNtCreateProcess(_NtCreateProcess)(
- ProcessHandle, DesiredAccess, ObjectAttributes, InheritFromProcessHandle, InheritHandles, SectionHandle, DebugPort, ExceptionPort
- );
- end;
- // Dynamic version of NtCreateProcess
- function ZwCreateProcess(
- ProcessHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InheritFromProcessHandle : HANDLE;
- InheritHandles : BOOLEAN;
- SectionHandle : HANDLE;
- DebugPort : HANDLE;
- ExceptionPort : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateProcess, ntdll, 'NtCreateProcess');
- Result := TFNNtCreateProcess(_NtCreateProcess)(
- ProcessHandle, DesiredAccess, ObjectAttributes, InheritFromProcessHandle, InheritHandles, SectionHandle, DebugPort, ExceptionPort
- );
- end;
- // Dynamic version of NtCreateProfile
- function NtCreateProfile(
- ProfileHandle : PHANDLE;
- ProcessHandle : HANDLE;
- Base : PVOID;
- Size : ULONG;
- BucketShift : ULONG;
- Buffer : PULONG;
- BufferLength : ULONG;
- Source : KPROFILE_SOURCE;
- ProcessorMask : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateProfile, ntdll, 'NtCreateProfile');
- Result := TFNNtCreateProfile(_NtCreateProfile)(
- ProfileHandle, ProcessHandle, Base, Size, BucketShift, Buffer, BufferLength, Source, ProcessorMask
- );
- end;
- // Dynamic version of NtCreateProfile
- function ZwCreateProfile(
- ProfileHandle : PHANDLE;
- ProcessHandle : HANDLE;
- Base : PVOID;
- Size : ULONG;
- BucketShift : ULONG;
- Buffer : PULONG;
- BufferLength : ULONG;
- Source : KPROFILE_SOURCE;
- ProcessorMask : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateProfile, ntdll, 'NtCreateProfile');
- Result := TFNNtCreateProfile(_NtCreateProfile)(
- ProfileHandle, ProcessHandle, Base, Size, BucketShift, Buffer, BufferLength, Source, ProcessorMask
- );
- end;
- // Dynamic version of NtCreateSection
- function NtCreateSection(
- SectionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- SectionSize : PLARGE_INTEGER;
- Protect : ULONG;
- Attributes : ULONG;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateSection, ntdll, 'NtCreateSection');
- Result := TFNNtCreateSection(_NtCreateSection)(
- SectionHandle, DesiredAccess, ObjectAttributes, SectionSize, Protect, Attributes, FileHandle
- );
- end;
- // Dynamic version of NtCreateSection
- function ZwCreateSection(
- SectionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- SectionSize : PLARGE_INTEGER;
- Protect : ULONG;
- Attributes : ULONG;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateSection, ntdll, 'NtCreateSection');
- Result := TFNNtCreateSection(_NtCreateSection)(
- SectionHandle, DesiredAccess, ObjectAttributes, SectionSize, Protect, Attributes, FileHandle
- );
- end;
- // Dynamic version of NtCreateSemaphore
- function NtCreateSemaphore(
- SemaphoreHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InitialCount : LONG;
- MaximumCount : LONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateSemaphore, ntdll, 'NtCreateSemaphore');
- Result := TFNNtCreateSemaphore(_NtCreateSemaphore)(
- SemaphoreHandle, DesiredAccess, ObjectAttributes, InitialCount, MaximumCount
- );
- end;
- // Dynamic version of NtCreateSemaphore
- function ZwCreateSemaphore(
- SemaphoreHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- InitialCount : LONG;
- MaximumCount : LONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateSemaphore, ntdll, 'NtCreateSemaphore');
- Result := TFNNtCreateSemaphore(_NtCreateSemaphore)(
- SemaphoreHandle, DesiredAccess, ObjectAttributes, InitialCount, MaximumCount
- );
- end;
- // Dynamic version of NtCreateSymbolicLinkObject
- function NtCreateSymbolicLinkObject(
- SymbolicLinkHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TargetName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateSymbolicLinkObject, ntdll, 'NtCreateSymbolicLinkObject');
- Result := TFNNtCreateSymbolicLinkObject(_NtCreateSymbolicLinkObject)(
- SymbolicLinkHandle, DesiredAccess, ObjectAttributes, TargetName
- );
- end;
- // Dynamic version of NtCreateSymbolicLinkObject
- function ZwCreateSymbolicLinkObject(
- SymbolicLinkHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TargetName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateSymbolicLinkObject, ntdll, 'NtCreateSymbolicLinkObject');
- Result := TFNNtCreateSymbolicLinkObject(_NtCreateSymbolicLinkObject)(
- SymbolicLinkHandle, DesiredAccess, ObjectAttributes, TargetName
- );
- end;
- // Dynamic version of NtCreateThread
- function NtCreateThread(
- ThreadHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ProcessHandle : HANDLE;
- ClientId : PCLIENT_ID;
- ThreadContext : PCONTEXT;
- UserStack : PUSER_STACK;
- CreateSuspended : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateThread, ntdll, 'NtCreateThread');
- Result := TFNNtCreateThread(_NtCreateThread)(
- ThreadHandle, DesiredAccess, ObjectAttributes, ProcessHandle, ClientId, ThreadContext, UserStack, CreateSuspended
- );
- end;
- // Dynamic version of NtCreateThread
- function ZwCreateThread(
- ThreadHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ProcessHandle : HANDLE;
- ClientId : PCLIENT_ID;
- ThreadContext : PCONTEXT;
- UserStack : PUSER_STACK;
- CreateSuspended : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateThread, ntdll, 'NtCreateThread');
- Result := TFNNtCreateThread(_NtCreateThread)(
- ThreadHandle, DesiredAccess, ObjectAttributes, ProcessHandle, ClientId, ThreadContext, UserStack, CreateSuspended
- );
- end;
- // Dynamic version of NtCreateTimer
- function NtCreateTimer(
- TimerHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TimerType : TIMER_TYPE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateTimer, ntdll, 'NtCreateTimer');
- Result := TFNNtCreateTimer(_NtCreateTimer)(
- TimerHandle, DesiredAccess, ObjectAttributes, TimerType
- );
- end;
- // Dynamic version of NtCreateTimer
- function ZwCreateTimer(
- TimerHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- TimerType : TIMER_TYPE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateTimer, ntdll, 'NtCreateTimer');
- Result := TFNNtCreateTimer(_NtCreateTimer)(
- TimerHandle, DesiredAccess, ObjectAttributes, TimerType
- );
- end;
- // Dynamic version of NtCreateToken
- function NtCreateToken(
- TokenHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- Type_ : TOKEN_TYPE;
- AuthenticationId : PLUID;
- ExpirationTime : PLARGE_INTEGER;
- User : PTOKEN_USER;
- Groups : PTOKEN_GROUPS;
- Privileges : PTOKEN_PRIVILEGES;
- Owner : PTOKEN_OWNER;
- PrimaryGroup : PTOKEN_PRIMARY_GROUP;
- DefaultDacl : PTOKEN_DEFAULT_DACL;
- Source : PTOKEN_SOURCE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateToken, ntdll, 'NtCreateToken');
- Result := TFNNtCreateToken(_NtCreateToken)(
- TokenHandle, DesiredAccess, ObjectAttributes, Type_, AuthenticationId, ExpirationTime, User, Groups, Privileges, Owner, PrimaryGroup, DefaultDacl, Source
- );
- end;
- // Dynamic version of NtCreateToken
- function ZwCreateToken(
- TokenHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- Type_ : TOKEN_TYPE;
- AuthenticationId : PLUID;
- ExpirationTime : PLARGE_INTEGER;
- User : PTOKEN_USER;
- Groups : PTOKEN_GROUPS;
- Privileges : PTOKEN_PRIVILEGES;
- Owner : PTOKEN_OWNER;
- PrimaryGroup : PTOKEN_PRIMARY_GROUP;
- DefaultDacl : PTOKEN_DEFAULT_DACL;
- Source : PTOKEN_SOURCE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateToken, ntdll, 'NtCreateToken');
- Result := TFNNtCreateToken(_NtCreateToken)(
- TokenHandle, DesiredAccess, ObjectAttributes, Type_, AuthenticationId, ExpirationTime, User, Groups, Privileges, Owner, PrimaryGroup, DefaultDacl, Source
- );
- end;
- // Dynamic version of NtCreateWaitablePort
- function NtCreateWaitablePort(
- PortHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- MaxDataSize : ULONG;
- MaxMessageSize : ULONG;
- Reserved : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateWaitablePort, ntdll, 'NtCreateWaitablePort');
- Result := TFNNtCreateWaitablePort(_NtCreateWaitablePort)(
- PortHandle, ObjectAttributes, MaxDataSize, MaxMessageSize, Reserved
- );
- end;
- // Dynamic version of NtCreateWaitablePort
- function ZwCreateWaitablePort(
- PortHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- MaxDataSize : ULONG;
- MaxMessageSize : ULONG;
- Reserved : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtCreateWaitablePort, ntdll, 'NtCreateWaitablePort');
- Result := TFNNtCreateWaitablePort(_NtCreateWaitablePort)(
- PortHandle, ObjectAttributes, MaxDataSize, MaxMessageSize, Reserved
- );
- end;
- {.$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtCurrentTeb
- function NtCurrentTeb(): PTEB; stdcall;
- begin
- GetProcedureAddress(_NtCurrentTeb, ntdll, 'NtCurrentTeb');
- Result := TFNNtCurrentTeb(_NtCurrentTeb)();
- end;
- {.$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtCurrentTeb
- function ZwCurrentTeb(): PTEB; stdcall;
- begin
- GetProcedureAddress(_NtCurrentTeb, ntdll, 'NtCurrentTeb');
- Result := TFNNtCurrentTeb(_NtCurrentTeb)();
- end;
- // Dynamic version of NtDebugActiveProcess
- function NtDebugActiveProcess(
- hProcess : HANDLE;
- hDebugObject : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDebugActiveProcess, ntdll, 'NtDebugActiveProcess');
- Result := TFNNtDebugActiveProcess(_NtDebugActiveProcess)(
- hProcess, hDebugObject
- );
- end;
- // Dynamic version of NtDebugActiveProcess
- function ZwDebugActiveProcess(
- hProcess : HANDLE;
- hDebugObject : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDebugActiveProcess, ntdll, 'NtDebugActiveProcess');
- Result := TFNNtDebugActiveProcess(_NtDebugActiveProcess)(
- hProcess, hDebugObject
- );
- end;
- // Dynamic version of NtDelayExecution
- function NtDelayExecution(
- Alertable : BOOLEAN;
- Interval : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDelayExecution, ntdll, 'NtDelayExecution');
- Result := TFNNtDelayExecution(_NtDelayExecution)(
- Alertable, Interval
- );
- end;
- // Dynamic version of NtDelayExecution
- function ZwDelayExecution(
- Alertable : BOOLEAN;
- Interval : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDelayExecution, ntdll, 'NtDelayExecution');
- Result := TFNNtDelayExecution(_NtDelayExecution)(
- Alertable, Interval
- );
- end;
- // Dynamic version of NtDeleteAtom
- function NtDeleteAtom(
- Atom : USHORT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteAtom, ntdll, 'NtDeleteAtom');
- Result := TFNNtDeleteAtom(_NtDeleteAtom)(
- Atom
- );
- end;
- // Dynamic version of NtDeleteAtom
- function ZwDeleteAtom(
- Atom : USHORT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteAtom, ntdll, 'NtDeleteAtom');
- Result := TFNNtDeleteAtom(_NtDeleteAtom)(
- Atom
- );
- end;
- // Dynamic version of NtDeleteFile
- function NtDeleteFile(
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteFile, ntdll, 'NtDeleteFile');
- Result := TFNNtDeleteFile(_NtDeleteFile)(
- ObjectAttributes
- );
- end;
- // Dynamic version of NtDeleteFile
- function ZwDeleteFile(
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteFile, ntdll, 'NtDeleteFile');
- Result := TFNNtDeleteFile(_NtDeleteFile)(
- ObjectAttributes
- );
- end;
- // Dynamic version of NtDeleteKey
- function NtDeleteKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteKey, ntdll, 'NtDeleteKey');
- Result := TFNNtDeleteKey(_NtDeleteKey)(
- KeyHandle
- );
- end;
- // Dynamic version of NtDeleteKey
- function ZwDeleteKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteKey, ntdll, 'NtDeleteKey');
- Result := TFNNtDeleteKey(_NtDeleteKey)(
- KeyHandle
- );
- end;
- // Dynamic version of NtDeleteObjectAuditAlarm
- function NtDeleteObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- GenerateOnClose : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteObjectAuditAlarm, ntdll, 'NtDeleteObjectAuditAlarm');
- Result := TFNNtDeleteObjectAuditAlarm(_NtDeleteObjectAuditAlarm)(
- SubsystemName, HandleId, GenerateOnClose
- );
- end;
- // Dynamic version of NtDeleteObjectAuditAlarm
- function ZwDeleteObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- GenerateOnClose : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteObjectAuditAlarm, ntdll, 'NtDeleteObjectAuditAlarm');
- Result := TFNNtDeleteObjectAuditAlarm(_NtDeleteObjectAuditAlarm)(
- SubsystemName, HandleId, GenerateOnClose
- );
- end;
- // Dynamic version of NtDeleteValueKey
- function NtDeleteValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteValueKey, ntdll, 'NtDeleteValueKey');
- Result := TFNNtDeleteValueKey(_NtDeleteValueKey)(
- KeyHandle, ValueName
- );
- end;
- // Dynamic version of NtDeleteValueKey
- function ZwDeleteValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeleteValueKey, ntdll, 'NtDeleteValueKey');
- Result := TFNNtDeleteValueKey(_NtDeleteValueKey)(
- KeyHandle, ValueName
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtDeviceIoControlFile
- function NtDeviceIoControlFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- IoControlCode : ULONG;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeviceIoControlFile, ntdll, 'NtDeviceIoControlFile');
- Result := TFNNtDeviceIoControlFile(_NtDeviceIoControlFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, IoControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtDeviceIoControlFile
- function ZwDeviceIoControlFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- IoControlCode : ULONG;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDeviceIoControlFile, ntdll, 'NtDeviceIoControlFile');
- Result := TFNNtDeviceIoControlFile(_NtDeviceIoControlFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, IoControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength
- );
- end;
- // Dynamic version of NtDisplayString
- function NtDisplayString(
- Str : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDisplayString, ntdll, 'NtDisplayString');
- Result := TFNNtDisplayString(_NtDisplayString)(
- Str
- );
- end;
- // Dynamic version of NtDisplayString
- function ZwDisplayString(
- Str : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDisplayString, ntdll, 'NtDisplayString');
- Result := TFNNtDisplayString(_NtDisplayString)(
- Str
- );
- end;
- // Dynamic version of NtDuplicateObject
- function NtDuplicateObject(
- SourceProcessHandle : HANDLE;
- SourceHandle : HANDLE;
- TargetProcessHandle : HANDLE;
- TargetHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- Attributes : ULONG;
- Options : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDuplicateObject, ntdll, 'NtDuplicateObject');
- Result := TFNNtDuplicateObject(_NtDuplicateObject)(
- SourceProcessHandle, SourceHandle, TargetProcessHandle, TargetHandle, DesiredAccess, Attributes, Options
- );
- end;
- // Dynamic version of NtDuplicateObject
- function ZwDuplicateObject(
- SourceProcessHandle : HANDLE;
- SourceHandle : HANDLE;
- TargetProcessHandle : HANDLE;
- TargetHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- Attributes : ULONG;
- Options : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDuplicateObject, ntdll, 'NtDuplicateObject');
- Result := TFNNtDuplicateObject(_NtDuplicateObject)(
- SourceProcessHandle, SourceHandle, TargetProcessHandle, TargetHandle, DesiredAccess, Attributes, Options
- );
- end;
- // Dynamic version of NtDuplicateToken
- function NtDuplicateToken(
- ExistingTokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- EffectiveOnly : BOOLEAN;
- TokenType : TOKEN_TYPE;
- NewTokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDuplicateToken, ntdll, 'NtDuplicateToken');
- Result := TFNNtDuplicateToken(_NtDuplicateToken)(
- ExistingTokenHandle, DesiredAccess, ObjectAttributes, EffectiveOnly, TokenType, NewTokenHandle
- );
- end;
- // Dynamic version of NtDuplicateToken
- function ZwDuplicateToken(
- ExistingTokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- EffectiveOnly : BOOLEAN;
- TokenType : TOKEN_TYPE;
- NewTokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtDuplicateToken, ntdll, 'NtDuplicateToken');
- Result := TFNNtDuplicateToken(_NtDuplicateToken)(
- ExistingTokenHandle, DesiredAccess, ObjectAttributes, EffectiveOnly, TokenType, NewTokenHandle
- );
- end;
- // Dynamic version of NtEnumerateKey
- function NtEnumerateKey(
- KeyHandle : HANDLE;
- Index : ULONG;
- KeyInformationClass : KEY_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtEnumerateKey, ntdll, 'NtEnumerateKey');
- Result := TFNNtEnumerateKey(_NtEnumerateKey)(
- KeyHandle, Index, KeyInformationClass, KeyInformation, KeyInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtEnumerateKey
- function ZwEnumerateKey(
- KeyHandle : HANDLE;
- Index : ULONG;
- KeyInformationClass : KEY_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtEnumerateKey, ntdll, 'NtEnumerateKey');
- Result := TFNNtEnumerateKey(_NtEnumerateKey)(
- KeyHandle, Index, KeyInformationClass, KeyInformation, KeyInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtEnumerateValueKey
- function NtEnumerateValueKey(
- KeyHandle : HANDLE;
- Index : ULONG;
- KeyValueInformationClass : KEY_VALUE_INFORMATION_CLASS;
- KeyValueInformation : PVOID;
- KeyValueInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtEnumerateValueKey, ntdll, 'NtEnumerateValueKey');
- Result := TFNNtEnumerateValueKey(_NtEnumerateValueKey)(
- KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, KeyValueInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtEnumerateValueKey
- function ZwEnumerateValueKey(
- KeyHandle : HANDLE;
- Index : ULONG;
- KeyValueInformationClass : KEY_VALUE_INFORMATION_CLASS;
- KeyValueInformation : PVOID;
- KeyValueInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtEnumerateValueKey, ntdll, 'NtEnumerateValueKey');
- Result := TFNNtEnumerateValueKey(_NtEnumerateValueKey)(
- KeyHandle, Index, KeyValueInformationClass, KeyValueInformation, KeyValueInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtExtendSection
- function NtExtendSection(
- SectionHandle : HANDLE;
- SectionSize : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtExtendSection, ntdll, 'NtExtendSection');
- Result := TFNNtExtendSection(_NtExtendSection)(
- SectionHandle, SectionSize
- );
- end;
- // Dynamic version of NtExtendSection
- function ZwExtendSection(
- SectionHandle : HANDLE;
- SectionSize : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtExtendSection, ntdll, 'NtExtendSection');
- Result := TFNNtExtendSection(_NtExtendSection)(
- SectionHandle, SectionSize
- );
- end;
- // Dynamic version of NtFilterToken
- function NtFilterToken(
- ExistingTokenHandle : HANDLE;
- Flags : ULONG;
- SidsToDisable : PTOKEN_GROUPS;
- PrivilegesToDelete : PTOKEN_PRIVILEGES;
- SidsToRestricted : PTOKEN_GROUPS;
- NewTokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFilterToken, ntdll, 'NtFilterToken');
- Result := TFNNtFilterToken(_NtFilterToken)(
- ExistingTokenHandle, Flags, SidsToDisable, PrivilegesToDelete, SidsToRestricted, NewTokenHandle
- );
- end;
- // Dynamic version of NtFilterToken
- function ZwFilterToken(
- ExistingTokenHandle : HANDLE;
- Flags : ULONG;
- SidsToDisable : PTOKEN_GROUPS;
- PrivilegesToDelete : PTOKEN_PRIVILEGES;
- SidsToRestricted : PTOKEN_GROUPS;
- NewTokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFilterToken, ntdll, 'NtFilterToken');
- Result := TFNNtFilterToken(_NtFilterToken)(
- ExistingTokenHandle, Flags, SidsToDisable, PrivilegesToDelete, SidsToRestricted, NewTokenHandle
- );
- end;
- // Dynamic version of NtFindAtom
- function NtFindAtom(
- Str : PWSTR;
- StringLength : ULONG;
- Atom : PUSHORT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFindAtom, ntdll, 'NtFindAtom');
- Result := TFNNtFindAtom(_NtFindAtom)(
- Str, StringLength, Atom
- );
- end;
- // Dynamic version of NtFindAtom
- function ZwFindAtom(
- Str : PWSTR;
- StringLength : ULONG;
- Atom : PUSHORT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFindAtom, ntdll, 'NtFindAtom');
- Result := TFNNtFindAtom(_NtFindAtom)(
- Str, StringLength, Atom
- );
- end;
- // Dynamic version of NtFlushBuffersFile
- function NtFlushBuffersFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushBuffersFile, ntdll, 'NtFlushBuffersFile');
- Result := TFNNtFlushBuffersFile(_NtFlushBuffersFile)(
- FileHandle, IoStatusBlock
- );
- end;
- // Dynamic version of NtFlushBuffersFile
- function ZwFlushBuffersFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushBuffersFile, ntdll, 'NtFlushBuffersFile');
- Result := TFNNtFlushBuffersFile(_NtFlushBuffersFile)(
- FileHandle, IoStatusBlock
- );
- end;
- // Dynamic version of NtFlushInstructionCache
- function NtFlushInstructionCache(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- FlushSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushInstructionCache, ntdll, 'NtFlushInstructionCache');
- Result := TFNNtFlushInstructionCache(_NtFlushInstructionCache)(
- ProcessHandle, BaseAddress, FlushSize
- );
- end;
- // Dynamic version of NtFlushInstructionCache
- function ZwFlushInstructionCache(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- FlushSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushInstructionCache, ntdll, 'NtFlushInstructionCache');
- Result := TFNNtFlushInstructionCache(_NtFlushInstructionCache)(
- ProcessHandle, BaseAddress, FlushSize
- );
- end;
- // Dynamic version of NtFlushKey
- function NtFlushKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushKey, ntdll, 'NtFlushKey');
- Result := TFNNtFlushKey(_NtFlushKey)(
- KeyHandle
- );
- end;
- // Dynamic version of NtFlushKey
- function ZwFlushKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushKey, ntdll, 'NtFlushKey');
- Result := TFNNtFlushKey(_NtFlushKey)(
- KeyHandle
- );
- end;
- // Dynamic version of NtFlushVirtualMemory
- function NtFlushVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- FlushSize : PULONG;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushVirtualMemory, ntdll, 'NtFlushVirtualMemory');
- Result := TFNNtFlushVirtualMemory(_NtFlushVirtualMemory)(
- ProcessHandle, BaseAddress, FlushSize, IoStatusBlock
- );
- end;
- // Dynamic version of NtFlushVirtualMemory
- function ZwFlushVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- FlushSize : PULONG;
- IoStatusBlock : PIO_STATUS_BLOCK
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushVirtualMemory, ntdll, 'NtFlushVirtualMemory');
- Result := TFNNtFlushVirtualMemory(_NtFlushVirtualMemory)(
- ProcessHandle, BaseAddress, FlushSize, IoStatusBlock
- );
- end;
- // Dynamic version of NtFlushWriteBuffer
- function NtFlushWriteBuffer(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushWriteBuffer, ntdll, 'NtFlushWriteBuffer');
- Result := TFNNtFlushWriteBuffer(_NtFlushWriteBuffer)();
- end;
- // Dynamic version of NtFlushWriteBuffer
- function ZwFlushWriteBuffer(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFlushWriteBuffer, ntdll, 'NtFlushWriteBuffer');
- Result := TFNNtFlushWriteBuffer(_NtFlushWriteBuffer)();
- end;
- // Dynamic version of NtFreeUserPhysicalPages
- function NtFreeUserPhysicalPages(
- ProcessHandle : HANDLE;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFreeUserPhysicalPages, ntdll, 'NtFreeUserPhysicalPages');
- Result := TFNNtFreeUserPhysicalPages(_NtFreeUserPhysicalPages)(
- ProcessHandle, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtFreeUserPhysicalPages
- function ZwFreeUserPhysicalPages(
- ProcessHandle : HANDLE;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFreeUserPhysicalPages, ntdll, 'NtFreeUserPhysicalPages');
- Result := TFNNtFreeUserPhysicalPages(_NtFreeUserPhysicalPages)(
- ProcessHandle, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtFreeVirtualMemory
- function NtFreeVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- FreeSize : PULONG;
- FreeType : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFreeVirtualMemory, ntdll, 'NtFreeVirtualMemory');
- Result := TFNNtFreeVirtualMemory(_NtFreeVirtualMemory)(
- ProcessHandle, BaseAddress, FreeSize, FreeType
- );
- end;
- // Dynamic version of NtFreeVirtualMemory
- function ZwFreeVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- FreeSize : PULONG;
- FreeType : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFreeVirtualMemory, ntdll, 'NtFreeVirtualMemory');
- Result := TFNNtFreeVirtualMemory(_NtFreeVirtualMemory)(
- ProcessHandle, BaseAddress, FreeSize, FreeType
- );
- end;
- // Dynamic version of NtFsControlFile
- function NtFsControlFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FsControlCode : ULONG;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFsControlFile, ntdll, 'NtFsControlFile');
- Result := TFNNtFsControlFile(_NtFsControlFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FsControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength
- );
- end;
- // Dynamic version of NtFsControlFile
- function ZwFsControlFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FsControlCode : ULONG;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtFsControlFile, ntdll, 'NtFsControlFile');
- Result := TFNNtFsControlFile(_NtFsControlFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FsControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength
- );
- end;
- // Dynamic version of NtGetContextThread
- function NtGetContextThread(
- ThreadHandle : HANDLE;
- Context : PCONTEXT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetContextThread, ntdll, 'NtGetContextThread');
- Result := TFNNtGetContextThread(_NtGetContextThread)(
- ThreadHandle, Context
- );
- end;
- // Dynamic version of NtGetContextThread
- function ZwGetContextThread(
- ThreadHandle : HANDLE;
- Context : PCONTEXT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetContextThread, ntdll, 'NtGetContextThread');
- Result := TFNNtGetContextThread(_NtGetContextThread)(
- ThreadHandle, Context
- );
- end;
- // Dynamic version of NtGetCurrentProcessorNumber
- function NtGetCurrentProcessorNumber(): ULONG; stdcall;
- begin
- GetProcedureAddress(_NtGetCurrentProcessorNumber, ntdll, 'NtGetCurrentProcessorNumber');
- Result := TFNNtGetCurrentProcessorNumber(_NtGetCurrentProcessorNumber)();
- end;
- // Dynamic version of NtGetCurrentProcessorNumber
- function ZwGetCurrentProcessorNumber(): ULONG; stdcall;
- begin
- GetProcedureAddress(_NtGetCurrentProcessorNumber, ntdll, 'NtGetCurrentProcessorNumber');
- Result := TFNNtGetCurrentProcessorNumber(_NtGetCurrentProcessorNumber)();
- end;
- // Dynamic version of NtGetDevicePowerState
- function NtGetDevicePowerState(
- DeviceHandle : HANDLE;
- DevicePowerState : PDEVICE_POWER_STATE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetDevicePowerState, ntdll, 'NtGetDevicePowerState');
- Result := TFNNtGetDevicePowerState(_NtGetDevicePowerState)(
- DeviceHandle, DevicePowerState
- );
- end;
- // Dynamic version of NtGetDevicePowerState
- function ZwGetDevicePowerState(
- DeviceHandle : HANDLE;
- DevicePowerState : PDEVICE_POWER_STATE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetDevicePowerState, ntdll, 'NtGetDevicePowerState');
- Result := TFNNtGetDevicePowerState(_NtGetDevicePowerState)(
- DeviceHandle, DevicePowerState
- );
- end;
- // Dynamic version of NtGetPlugPlayEvent
- function NtGetPlugPlayEvent(
- Reserved1 : ULONG;
- Reserved2 : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetPlugPlayEvent, ntdll, 'NtGetPlugPlayEvent');
- Result := TFNNtGetPlugPlayEvent(_NtGetPlugPlayEvent)(
- Reserved1, Reserved2, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtGetPlugPlayEvent
- function ZwGetPlugPlayEvent(
- Reserved1 : ULONG;
- Reserved2 : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetPlugPlayEvent, ntdll, 'NtGetPlugPlayEvent');
- Result := TFNNtGetPlugPlayEvent(_NtGetPlugPlayEvent)(
- Reserved1, Reserved2, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtGetTickCount
- function NtGetTickCount(): ULONG; stdcall;
- begin
- GetProcedureAddress(_NtGetTickCount, ntdll, 'NtGetTickCount');
- Result := TFNNtGetTickCount(_NtGetTickCount)();
- end;
- // Dynamic version of NtGetTickCount
- function ZwGetTickCount(): ULONG; stdcall;
- begin
- GetProcedureAddress(_NtGetTickCount, ntdll, 'NtGetTickCount');
- Result := TFNNtGetTickCount(_NtGetTickCount)();
- end;
- // Dynamic version of NtGetWriteWatch
- function NtGetWriteWatch(
- ProcessHandle : HANDLE;
- Flags : ULONG;
- BaseAddress : PVOID;
- RegionSize : ULONG;
- Buffer : PULONG;
- BufferEntries : PULONG;
- Granularity : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetWriteWatch, ntdll, 'NtGetWriteWatch');
- Result := TFNNtGetWriteWatch(_NtGetWriteWatch)(
- ProcessHandle, Flags, BaseAddress, RegionSize, Buffer, BufferEntries, Granularity
- );
- end;
- // Dynamic version of NtGetWriteWatch
- function ZwGetWriteWatch(
- ProcessHandle : HANDLE;
- Flags : ULONG;
- BaseAddress : PVOID;
- RegionSize : ULONG;
- Buffer : PULONG;
- BufferEntries : PULONG;
- Granularity : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtGetWriteWatch, ntdll, 'NtGetWriteWatch');
- Result := TFNNtGetWriteWatch(_NtGetWriteWatch)(
- ProcessHandle, Flags, BaseAddress, RegionSize, Buffer, BufferEntries, Granularity
- );
- end;
- // Dynamic version of NtImpersonateAnonymousToken
- function NtImpersonateAnonymousToken(
- ThreadHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtImpersonateAnonymousToken, ntdll, 'NtImpersonateAnonymousToken');
- Result := TFNNtImpersonateAnonymousToken(_NtImpersonateAnonymousToken)(
- ThreadHandle
- );
- end;
- // Dynamic version of NtImpersonateAnonymousToken
- function ZwImpersonateAnonymousToken(
- ThreadHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtImpersonateAnonymousToken, ntdll, 'NtImpersonateAnonymousToken');
- Result := TFNNtImpersonateAnonymousToken(_NtImpersonateAnonymousToken)(
- ThreadHandle
- );
- end;
- // Dynamic version of NtImpersonateClientOfPort
- function NtImpersonateClientOfPort(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtImpersonateClientOfPort, ntdll, 'NtImpersonateClientOfPort');
- Result := TFNNtImpersonateClientOfPort(_NtImpersonateClientOfPort)(
- PortHandle, Message
- );
- end;
- // Dynamic version of NtImpersonateClientOfPort
- function ZwImpersonateClientOfPort(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtImpersonateClientOfPort, ntdll, 'NtImpersonateClientOfPort');
- Result := TFNNtImpersonateClientOfPort(_NtImpersonateClientOfPort)(
- PortHandle, Message
- );
- end;
- // Dynamic version of NtImpersonateThread
- function NtImpersonateThread(
- ThreadHandle : HANDLE;
- TargetThreadHandle : HANDLE;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtImpersonateThread, ntdll, 'NtImpersonateThread');
- Result := TFNNtImpersonateThread(_NtImpersonateThread)(
- ThreadHandle, TargetThreadHandle, SecurityQos
- );
- end;
- // Dynamic version of NtImpersonateThread
- function ZwImpersonateThread(
- ThreadHandle : HANDLE;
- TargetThreadHandle : HANDLE;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtImpersonateThread, ntdll, 'NtImpersonateThread');
- Result := TFNNtImpersonateThread(_NtImpersonateThread)(
- ThreadHandle, TargetThreadHandle, SecurityQos
- );
- end;
- // Dynamic version of NtInitializeRegistry
- function NtInitializeRegistry(
- Setup : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtInitializeRegistry, ntdll, 'NtInitializeRegistry');
- Result := TFNNtInitializeRegistry(_NtInitializeRegistry)(
- Setup
- );
- end;
- // Dynamic version of NtInitializeRegistry
- function ZwInitializeRegistry(
- Setup : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtInitializeRegistry, ntdll, 'NtInitializeRegistry');
- Result := TFNNtInitializeRegistry(_NtInitializeRegistry)(
- Setup
- );
- end;
- // Dynamic version of NtInitiatePowerAction
- function NtInitiatePowerAction(
- SystemAction : POWER_ACTION;
- MinSystemState : SYSTEM_POWER_STATE;
- Flags : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtInitiatePowerAction, ntdll, 'NtInitiatePowerAction');
- Result := TFNNtInitiatePowerAction(_NtInitiatePowerAction)(
- SystemAction, MinSystemState, Flags, Asynchronous
- );
- end;
- // Dynamic version of NtInitiatePowerAction
- function ZwInitiatePowerAction(
- SystemAction : POWER_ACTION;
- MinSystemState : SYSTEM_POWER_STATE;
- Flags : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtInitiatePowerAction, ntdll, 'NtInitiatePowerAction');
- Result := TFNNtInitiatePowerAction(_NtInitiatePowerAction)(
- SystemAction, MinSystemState, Flags, Asynchronous
- );
- end;
- // Dynamic version of NtIsSystemResumeAutomatic
- function NtIsSystemResumeAutomatic(): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_NtIsSystemResumeAutomatic, ntdll, 'NtIsSystemResumeAutomatic');
- Result := TFNNtIsSystemResumeAutomatic(_NtIsSystemResumeAutomatic)();
- end;
- // Dynamic version of NtIsSystemResumeAutomatic
- function ZwIsSystemResumeAutomatic(): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_NtIsSystemResumeAutomatic, ntdll, 'NtIsSystemResumeAutomatic');
- Result := TFNNtIsSystemResumeAutomatic(_NtIsSystemResumeAutomatic)();
- end;
- // Dynamic version of NtListenChannel
- function NtListenChannel(
- x : PVOID;
- y : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtListenChannel, ntdll, 'NtListenChannel');
- Result := TFNNtListenChannel(_NtListenChannel)(
- x, y
- );
- end;
- // Dynamic version of NtListenChannel
- function ZwListenChannel(
- x : PVOID;
- y : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtListenChannel, ntdll, 'NtListenChannel');
- Result := TFNNtListenChannel(_NtListenChannel)(
- x, y
- );
- end;
- // Dynamic version of NtListenPort
- function NtListenPort(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtListenPort, ntdll, 'NtListenPort');
- Result := TFNNtListenPort(_NtListenPort)(
- PortHandle, Message
- );
- end;
- // Dynamic version of NtListenPort
- function ZwListenPort(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtListenPort, ntdll, 'NtListenPort');
- Result := TFNNtListenPort(_NtListenPort)(
- PortHandle, Message
- );
- end;
- // Dynamic version of NtLoadDriver
- function NtLoadDriver(
- DriverServiceName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLoadDriver, ntdll, 'NtLoadDriver');
- Result := TFNNtLoadDriver(_NtLoadDriver)(
- DriverServiceName
- );
- end;
- // Dynamic version of NtLoadDriver
- function ZwLoadDriver(
- DriverServiceName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLoadDriver, ntdll, 'NtLoadDriver');
- Result := TFNNtLoadDriver(_NtLoadDriver)(
- DriverServiceName
- );
- end;
- // Dynamic version of NtLoadKey
- function NtLoadKey(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- FileObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLoadKey, ntdll, 'NtLoadKey');
- Result := TFNNtLoadKey(_NtLoadKey)(
- KeyObjectAttributes, FileObjectAttributes
- );
- end;
- // Dynamic version of NtLoadKey
- function ZwLoadKey(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- FileObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLoadKey, ntdll, 'NtLoadKey');
- Result := TFNNtLoadKey(_NtLoadKey)(
- KeyObjectAttributes, FileObjectAttributes
- );
- end;
- // Dynamic version of NtLoadKey2
- function NtLoadKey2(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- FileObjectAttributes : POBJECT_ATTRIBUTES;
- Flags : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLoadKey2, ntdll, 'NtLoadKey2');
- Result := TFNNtLoadKey2(_NtLoadKey2)(
- KeyObjectAttributes, FileObjectAttributes, Flags
- );
- end;
- // Dynamic version of NtLoadKey2
- function ZwLoadKey2(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- FileObjectAttributes : POBJECT_ATTRIBUTES;
- Flags : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLoadKey2, ntdll, 'NtLoadKey2');
- Result := TFNNtLoadKey2(_NtLoadKey2)(
- KeyObjectAttributes, FileObjectAttributes, Flags
- );
- end;
- // Dynamic version of NtLockFile
- function NtLockFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- LockOffset : PULARGE_INTEGER;
- LockLength : PULARGE_INTEGER;
- Key : ULONG;
- FailImmediately : BOOLEAN;
- ExclusiveLock : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLockFile, ntdll, 'NtLockFile');
- Result := TFNNtLockFile(_NtLockFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, LockOffset, LockLength, Key, FailImmediately, ExclusiveLock
- );
- end;
- // Dynamic version of NtLockFile
- function ZwLockFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- LockOffset : PULARGE_INTEGER;
- LockLength : PULARGE_INTEGER;
- Key : ULONG;
- FailImmediately : BOOLEAN;
- ExclusiveLock : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLockFile, ntdll, 'NtLockFile');
- Result := TFNNtLockFile(_NtLockFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, LockOffset, LockLength, Key, FailImmediately, ExclusiveLock
- );
- end;
- // Dynamic version of NtLockVirtualMemory
- function NtLockVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- LockSize : PULONG;
- LockType : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLockVirtualMemory, ntdll, 'NtLockVirtualMemory');
- Result := TFNNtLockVirtualMemory(_NtLockVirtualMemory)(
- ProcessHandle, BaseAddress, LockSize, LockType
- );
- end;
- // Dynamic version of NtLockVirtualMemory
- function ZwLockVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- LockSize : PULONG;
- LockType : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtLockVirtualMemory, ntdll, 'NtLockVirtualMemory');
- Result := TFNNtLockVirtualMemory(_NtLockVirtualMemory)(
- ProcessHandle, BaseAddress, LockSize, LockType
- );
- end;
- // Dynamic version of NtMakePermanentObject
- function NtMakePermanentObject(
- Handle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMakePermanentObject, ntdll, 'NtMakePermanentObject');
- Result := TFNNtMakePermanentObject(_NtMakePermanentObject)(
- Handle
- );
- end;
- // Dynamic version of NtMakePermanentObject
- function ZwMakePermanentObject(
- Handle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMakePermanentObject, ntdll, 'NtMakePermanentObject');
- Result := TFNNtMakePermanentObject(_NtMakePermanentObject)(
- Handle
- );
- end;
- // Dynamic version of NtMakeTemporaryObject
- function NtMakeTemporaryObject(
- Handle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMakeTemporaryObject, ntdll, 'NtMakeTemporaryObject');
- Result := TFNNtMakeTemporaryObject(_NtMakeTemporaryObject)(
- Handle
- );
- end;
- // Dynamic version of NtMakeTemporaryObject
- function ZwMakeTemporaryObject(
- Handle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMakeTemporaryObject, ntdll, 'NtMakeTemporaryObject');
- Result := TFNNtMakeTemporaryObject(_NtMakeTemporaryObject)(
- Handle
- );
- end;
- // Dynamic version of NtMapUserPhysicalPages
- function NtMapUserPhysicalPages(
- BaseAddress : PVOID;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMapUserPhysicalPages, ntdll, 'NtMapUserPhysicalPages');
- Result := TFNNtMapUserPhysicalPages(_NtMapUserPhysicalPages)(
- BaseAddress, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtMapUserPhysicalPages
- function ZwMapUserPhysicalPages(
- BaseAddress : PVOID;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMapUserPhysicalPages, ntdll, 'NtMapUserPhysicalPages');
- Result := TFNNtMapUserPhysicalPages(_NtMapUserPhysicalPages)(
- BaseAddress, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtMapUserPhysicalPagesScatter
- function NtMapUserPhysicalPagesScatter(
- BaseAddresses : PPVOID;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMapUserPhysicalPagesScatter, ntdll, 'NtMapUserPhysicalPagesScatter');
- Result := TFNNtMapUserPhysicalPagesScatter(_NtMapUserPhysicalPagesScatter)(
- BaseAddresses, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtMapUserPhysicalPagesScatter
- function ZwMapUserPhysicalPagesScatter(
- BaseAddresses : PPVOID;
- NumberOfPages : PULONG;
- PageFrameNumbers : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMapUserPhysicalPagesScatter, ntdll, 'NtMapUserPhysicalPagesScatter');
- Result := TFNNtMapUserPhysicalPagesScatter(_NtMapUserPhysicalPagesScatter)(
- BaseAddresses, NumberOfPages, PageFrameNumbers
- );
- end;
- // Dynamic version of NtMapViewOfSection
- function NtMapViewOfSection(
- SectionHandle : HANDLE;
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ZeroBits : ULONG;
- CommitSize : ULONG;
- SectionOffset : PLARGE_INTEGER;
- ViewSize : PULONG;
- InheritDisposition : SECTION_INHERIT;
- AllocationType : ULONG;
- Protect : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMapViewOfSection, ntdll, 'NtMapViewOfSection');
- Result := TFNNtMapViewOfSection(_NtMapViewOfSection)(
- SectionHandle, ProcessHandle, BaseAddress, ZeroBits, CommitSize, SectionOffset, ViewSize, InheritDisposition, AllocationType, Protect
- );
- end;
- // Dynamic version of NtMapViewOfSection
- function ZwMapViewOfSection(
- SectionHandle : HANDLE;
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ZeroBits : ULONG;
- CommitSize : ULONG;
- SectionOffset : PLARGE_INTEGER;
- ViewSize : PULONG;
- InheritDisposition : SECTION_INHERIT;
- AllocationType : ULONG;
- Protect : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtMapViewOfSection, ntdll, 'NtMapViewOfSection');
- Result := TFNNtMapViewOfSection(_NtMapViewOfSection)(
- SectionHandle, ProcessHandle, BaseAddress, ZeroBits, CommitSize, SectionOffset, ViewSize, InheritDisposition, AllocationType, Protect
- );
- end;
- // Dynamic version of NtNotifyChangeDirectoryFile
- function NtNotifyChangeDirectoryFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_NOTIFY_INFORMATION;
- BufferLength : ULONG;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtNotifyChangeDirectoryFile, ntdll, 'NtNotifyChangeDirectoryFile');
- Result := TFNNtNotifyChangeDirectoryFile(_NtNotifyChangeDirectoryFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, BufferLength, NotifyFilter, WatchSubtree
- );
- end;
- // Dynamic version of NtNotifyChangeDirectoryFile
- function ZwNotifyChangeDirectoryFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_NOTIFY_INFORMATION;
- BufferLength : ULONG;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtNotifyChangeDirectoryFile, ntdll, 'NtNotifyChangeDirectoryFile');
- Result := TFNNtNotifyChangeDirectoryFile(_NtNotifyChangeDirectoryFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, BufferLength, NotifyFilter, WatchSubtree
- );
- end;
- // Dynamic version of NtNotifyChangeKey
- function NtNotifyChangeKey(
- KeyHandle : HANDLE;
- EventHandle : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN;
- Buffer : PVOID;
- BufferLength : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtNotifyChangeKey, ntdll, 'NtNotifyChangeKey');
- Result := TFNNtNotifyChangeKey(_NtNotifyChangeKey)(
- KeyHandle, EventHandle, ApcRoutine, ApcContext, IoStatusBlock, NotifyFilter, WatchSubtree, Buffer, BufferLength, Asynchronous
- );
- end;
- // Dynamic version of NtNotifyChangeKey
- function ZwNotifyChangeKey(
- KeyHandle : HANDLE;
- EventHandle : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN;
- Buffer : PVOID;
- BufferLength : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtNotifyChangeKey, ntdll, 'NtNotifyChangeKey');
- Result := TFNNtNotifyChangeKey(_NtNotifyChangeKey)(
- KeyHandle, EventHandle, ApcRoutine, ApcContext, IoStatusBlock, NotifyFilter, WatchSubtree, Buffer, BufferLength, Asynchronous
- );
- end;
- // Dynamic version of NtNotifyChangeMultipleKeys
- function NtNotifyChangeMultipleKeys(
- KeyHandle : HANDLE;
- Flags : ULONG;
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- EventHandle : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN;
- Buffer : PVOID;
- BufferLength : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtNotifyChangeMultipleKeys, ntdll, 'NtNotifyChangeMultipleKeys');
- Result := TFNNtNotifyChangeMultipleKeys(_NtNotifyChangeMultipleKeys)(
- KeyHandle, Flags, KeyObjectAttributes, EventHandle, ApcRoutine, ApcContext, IoStatusBlock, NotifyFilter, WatchSubtree, Buffer, BufferLength, Asynchronous
- );
- end;
- // Dynamic version of NtNotifyChangeMultipleKeys
- function ZwNotifyChangeMultipleKeys(
- KeyHandle : HANDLE;
- Flags : ULONG;
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- EventHandle : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- NotifyFilter : ULONG;
- WatchSubtree : BOOLEAN;
- Buffer : PVOID;
- BufferLength : ULONG;
- Asynchronous : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtNotifyChangeMultipleKeys, ntdll, 'NtNotifyChangeMultipleKeys');
- Result := TFNNtNotifyChangeMultipleKeys(_NtNotifyChangeMultipleKeys)(
- KeyHandle, Flags, KeyObjectAttributes, EventHandle, ApcRoutine, ApcContext, IoStatusBlock, NotifyFilter, WatchSubtree, Buffer, BufferLength, Asynchronous
- );
- end;
- // Dynamic version of NtOpenChannel
- function NtOpenChannel(
- ChannelHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenChannel, ntdll, 'NtOpenChannel');
- Result := TFNNtOpenChannel(_NtOpenChannel)(
- ChannelHandle, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenChannel
- function ZwOpenChannel(
- ChannelHandle : PHANDLE;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenChannel, ntdll, 'NtOpenChannel');
- Result := TFNNtOpenChannel(_NtOpenChannel)(
- ChannelHandle, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenDirectoryObject
- function NtOpenDirectoryObject(
- DirectoryHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenDirectoryObject, ntdll, 'NtOpenDirectoryObject');
- Result := TFNNtOpenDirectoryObject(_NtOpenDirectoryObject)(
- DirectoryHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenDirectoryObject
- function ZwOpenDirectoryObject(
- DirectoryHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenDirectoryObject, ntdll, 'NtOpenDirectoryObject');
- Result := TFNNtOpenDirectoryObject(_NtOpenDirectoryObject)(
- DirectoryHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenEvent
- function NtOpenEvent(
- EventHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenEvent, ntdll, 'NtOpenEvent');
- Result := TFNNtOpenEvent(_NtOpenEvent)(
- EventHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenEvent
- function ZwOpenEvent(
- EventHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenEvent, ntdll, 'NtOpenEvent');
- Result := TFNNtOpenEvent(_NtOpenEvent)(
- EventHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenEventPair
- function NtOpenEventPair(
- EventPairHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenEventPair, ntdll, 'NtOpenEventPair');
- Result := TFNNtOpenEventPair(_NtOpenEventPair)(
- EventPairHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenEventPair
- function ZwOpenEventPair(
- EventPairHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenEventPair, ntdll, 'NtOpenEventPair');
- Result := TFNNtOpenEventPair(_NtOpenEventPair)(
- EventPairHandle, DesiredAccess, ObjectAttributes
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtOpenFile
- function NtOpenFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- ShareAccess : ULONG;
- OpenOptions : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenFile, ntdll, 'NtOpenFile');
- Result := TFNNtOpenFile(_NtOpenFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, OpenOptions
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtOpenFile
- function ZwOpenFile(
- FileHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- IoStatusBlock : PIO_STATUS_BLOCK;
- ShareAccess : ULONG;
- OpenOptions : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenFile, ntdll, 'NtOpenFile');
- Result := TFNNtOpenFile(_NtOpenFile)(
- FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, OpenOptions
- );
- end;
- // Dynamic version of NtOpenIoCompletion
- function NtOpenIoCompletion(
- IoCompletionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenIoCompletion, ntdll, 'NtOpenIoCompletion');
- Result := TFNNtOpenIoCompletion(_NtOpenIoCompletion)(
- IoCompletionHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenIoCompletion
- function ZwOpenIoCompletion(
- IoCompletionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenIoCompletion, ntdll, 'NtOpenIoCompletion');
- Result := TFNNtOpenIoCompletion(_NtOpenIoCompletion)(
- IoCompletionHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenJobObject
- function NtOpenJobObject(
- JobHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenJobObject, ntdll, 'NtOpenJobObject');
- Result := TFNNtOpenJobObject(_NtOpenJobObject)(
- JobHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenJobObject
- function ZwOpenJobObject(
- JobHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenJobObject, ntdll, 'NtOpenJobObject');
- Result := TFNNtOpenJobObject(_NtOpenJobObject)(
- JobHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenKey
- function NtOpenKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenKey, ntdll, 'NtOpenKey');
- Result := TFNNtOpenKey(_NtOpenKey)(
- KeyHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenKey
- function ZwOpenKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenKey, ntdll, 'NtOpenKey');
- Result := TFNNtOpenKey(_NtOpenKey)(
- KeyHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenMutant
- function NtOpenMutant(
- MutantHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenMutant, ntdll, 'NtOpenMutant');
- Result := TFNNtOpenMutant(_NtOpenMutant)(
- MutantHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenMutant
- function ZwOpenMutant(
- MutantHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenMutant, ntdll, 'NtOpenMutant');
- Result := TFNNtOpenMutant(_NtOpenMutant)(
- MutantHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenObjectAuditAlarm
- function NtOpenObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PPVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- GrantedAccess : ACCESS_MASK;
- Privileges : PPRIVILEGE_SET;
- ObjectCreation : BOOLEAN;
- AccessGranted : BOOLEAN;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenObjectAuditAlarm, ntdll, 'NtOpenObjectAuditAlarm');
- Result := TFNNtOpenObjectAuditAlarm(_NtOpenObjectAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, TokenHandle, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, GenerateOnClose
- );
- end;
- // Dynamic version of NtOpenObjectAuditAlarm
- function ZwOpenObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PPVOID;
- ObjectTypeName : PUNICODE_STRING;
- ObjectName : PUNICODE_STRING;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- GrantedAccess : ACCESS_MASK;
- Privileges : PPRIVILEGE_SET;
- ObjectCreation : BOOLEAN;
- AccessGranted : BOOLEAN;
- GenerateOnClose : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenObjectAuditAlarm, ntdll, 'NtOpenObjectAuditAlarm');
- Result := TFNNtOpenObjectAuditAlarm(_NtOpenObjectAuditAlarm)(
- SubsystemName, HandleId, ObjectTypeName, ObjectName, SecurityDescriptor, TokenHandle, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, GenerateOnClose
- );
- end;
- // Dynamic version of NtOpenProcess
- function NtOpenProcess(
- ProcessHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenProcess, ntdll, 'NtOpenProcess');
- Result := TFNNtOpenProcess(_NtOpenProcess)(
- ProcessHandle, DesiredAccess, ObjectAttributes, ClientId
- );
- end;
- // Dynamic version of NtOpenProcess
- function ZwOpenProcess(
- ProcessHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenProcess, ntdll, 'NtOpenProcess');
- Result := TFNNtOpenProcess(_NtOpenProcess)(
- ProcessHandle, DesiredAccess, ObjectAttributes, ClientId
- );
- end;
- // Dynamic version of NtOpenProcessToken
- function NtOpenProcessToken(
- ProcessHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- TokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenProcessToken, ntdll, 'NtOpenProcessToken');
- Result := TFNNtOpenProcessToken(_NtOpenProcessToken)(
- ProcessHandle, DesiredAccess, TokenHandle
- );
- end;
- // Dynamic version of NtOpenProcessToken
- function ZwOpenProcessToken(
- ProcessHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- TokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenProcessToken, ntdll, 'NtOpenProcessToken');
- Result := TFNNtOpenProcessToken(_NtOpenProcessToken)(
- ProcessHandle, DesiredAccess, TokenHandle
- );
- end;
- // Dynamic version of NtOpenSection
- function NtOpenSection(
- SectionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenSection, ntdll, 'NtOpenSection');
- Result := TFNNtOpenSection(_NtOpenSection)(
- SectionHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenSection
- function ZwOpenSection(
- SectionHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenSection, ntdll, 'NtOpenSection');
- Result := TFNNtOpenSection(_NtOpenSection)(
- SectionHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenSemaphore
- function NtOpenSemaphore(
- SemaphoreHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenSemaphore, ntdll, 'NtOpenSemaphore');
- Result := TFNNtOpenSemaphore(_NtOpenSemaphore)(
- SemaphoreHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenSemaphore
- function ZwOpenSemaphore(
- SemaphoreHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenSemaphore, ntdll, 'NtOpenSemaphore');
- Result := TFNNtOpenSemaphore(_NtOpenSemaphore)(
- SemaphoreHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenSymbolicLinkObject
- function NtOpenSymbolicLinkObject(
- SymbolicLinkHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenSymbolicLinkObject, ntdll, 'NtOpenSymbolicLinkObject');
- Result := TFNNtOpenSymbolicLinkObject(_NtOpenSymbolicLinkObject)(
- SymbolicLinkHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenSymbolicLinkObject
- function ZwOpenSymbolicLinkObject(
- SymbolicLinkHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenSymbolicLinkObject, ntdll, 'NtOpenSymbolicLinkObject');
- Result := TFNNtOpenSymbolicLinkObject(_NtOpenSymbolicLinkObject)(
- SymbolicLinkHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenThread
- function NtOpenThread(
- ThreadHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenThread, ntdll, 'NtOpenThread');
- Result := TFNNtOpenThread(_NtOpenThread)(
- ThreadHandle, DesiredAccess, ObjectAttributes, ClientId
- );
- end;
- // Dynamic version of NtOpenThread
- function ZwOpenThread(
- ThreadHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenThread, ntdll, 'NtOpenThread');
- Result := TFNNtOpenThread(_NtOpenThread)(
- ThreadHandle, DesiredAccess, ObjectAttributes, ClientId
- );
- end;
- // Dynamic version of NtOpenThreadToken
- function NtOpenThreadToken(
- ThreadHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- OpenAsSelf : BOOLEAN;
- TokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenThreadToken, ntdll, 'NtOpenThreadToken');
- Result := TFNNtOpenThreadToken(_NtOpenThreadToken)(
- ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle
- );
- end;
- // Dynamic version of NtOpenThreadToken
- function ZwOpenThreadToken(
- ThreadHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- OpenAsSelf : BOOLEAN;
- TokenHandle : PHANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenThreadToken, ntdll, 'NtOpenThreadToken');
- Result := TFNNtOpenThreadToken(_NtOpenThreadToken)(
- ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle
- );
- end;
- // Dynamic version of NtOpenTimer
- function NtOpenTimer(
- TimerHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenTimer, ntdll, 'NtOpenTimer');
- Result := TFNNtOpenTimer(_NtOpenTimer)(
- TimerHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtOpenTimer
- function ZwOpenTimer(
- TimerHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtOpenTimer, ntdll, 'NtOpenTimer');
- Result := TFNNtOpenTimer(_NtOpenTimer)(
- TimerHandle, DesiredAccess, ObjectAttributes
- );
- end;
- // Dynamic version of NtPlugPlayControl
- function NtPlugPlayControl(
- ControlCode : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPlugPlayControl, ntdll, 'NtPlugPlayControl');
- Result := TFNNtPlugPlayControl(_NtPlugPlayControl)(
- ControlCode, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtPlugPlayControl
- function ZwPlugPlayControl(
- ControlCode : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPlugPlayControl, ntdll, 'NtPlugPlayControl');
- Result := TFNNtPlugPlayControl(_NtPlugPlayControl)(
- ControlCode, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtPowerInformation
- function NtPowerInformation(
- PowerInformationLevel : POWER_INFORMATION_LEVEL;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPowerInformation, ntdll, 'NtPowerInformation');
- Result := TFNNtPowerInformation(_NtPowerInformation)(
- PowerInformationLevel, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength
- );
- end;
- // Dynamic version of NtPowerInformation
- function ZwPowerInformation(
- PowerInformationLevel : POWER_INFORMATION_LEVEL;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPowerInformation, ntdll, 'NtPowerInformation');
- Result := TFNNtPowerInformation(_NtPowerInformation)(
- PowerInformationLevel, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength
- );
- end;
- // Dynamic version of NtPrivilegeCheck
- function NtPrivilegeCheck(
- TokenHandle : HANDLE;
- RequiredPrivileges : PPRIVILEGE_SET;
- Result_ : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPrivilegeCheck, ntdll, 'NtPrivilegeCheck');
- Result := TFNNtPrivilegeCheck(_NtPrivilegeCheck)(
- TokenHandle, RequiredPrivileges, Result_
- );
- end;
- // Dynamic version of NtPrivilegeCheck
- function ZwPrivilegeCheck(
- TokenHandle : HANDLE;
- RequiredPrivileges : PPRIVILEGE_SET;
- Result_ : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPrivilegeCheck, ntdll, 'NtPrivilegeCheck');
- Result := TFNNtPrivilegeCheck(_NtPrivilegeCheck)(
- TokenHandle, RequiredPrivileges, Result_
- );
- end;
- // Dynamic version of NtPrivilegeObjectAuditAlarm
- function NtPrivilegeObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- Privileges : PPRIVILEGE_SET;
- AccessGranted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPrivilegeObjectAuditAlarm, ntdll, 'NtPrivilegeObjectAuditAlarm');
- Result := TFNNtPrivilegeObjectAuditAlarm(_NtPrivilegeObjectAuditAlarm)(
- SubsystemName, HandleId, TokenHandle, DesiredAccess, Privileges, AccessGranted
- );
- end;
- // Dynamic version of NtPrivilegeObjectAuditAlarm
- function ZwPrivilegeObjectAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- HandleId : PVOID;
- TokenHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- Privileges : PPRIVILEGE_SET;
- AccessGranted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPrivilegeObjectAuditAlarm, ntdll, 'NtPrivilegeObjectAuditAlarm');
- Result := TFNNtPrivilegeObjectAuditAlarm(_NtPrivilegeObjectAuditAlarm)(
- SubsystemName, HandleId, TokenHandle, DesiredAccess, Privileges, AccessGranted
- );
- end;
- // Dynamic version of NtPrivilegedServiceAuditAlarm
- function NtPrivilegedServiceAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- ServiceName : PUNICODE_STRING;
- TokenHandle : HANDLE;
- Privileges : PPRIVILEGE_SET;
- AccessGranted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPrivilegedServiceAuditAlarm, ntdll, 'NtPrivilegedServiceAuditAlarm');
- Result := TFNNtPrivilegedServiceAuditAlarm(_NtPrivilegedServiceAuditAlarm)(
- SubsystemName, ServiceName, TokenHandle, Privileges, AccessGranted
- );
- end;
- // Dynamic version of NtPrivilegedServiceAuditAlarm
- function ZwPrivilegedServiceAuditAlarm(
- SubsystemName : PUNICODE_STRING;
- ServiceName : PUNICODE_STRING;
- TokenHandle : HANDLE;
- Privileges : PPRIVILEGE_SET;
- AccessGranted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPrivilegedServiceAuditAlarm, ntdll, 'NtPrivilegedServiceAuditAlarm');
- Result := TFNNtPrivilegedServiceAuditAlarm(_NtPrivilegedServiceAuditAlarm)(
- SubsystemName, ServiceName, TokenHandle, Privileges, AccessGranted
- );
- end;
- // Dynamic version of NtProtectVirtualMemory
- function NtProtectVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ProtectSize : PULONG;
- NewProtect : ULONG;
- OldProtect : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtProtectVirtualMemory, ntdll, 'NtProtectVirtualMemory');
- Result := TFNNtProtectVirtualMemory(_NtProtectVirtualMemory)(
- ProcessHandle, BaseAddress, ProtectSize, NewProtect, OldProtect
- );
- end;
- // Dynamic version of NtProtectVirtualMemory
- function ZwProtectVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- ProtectSize : PULONG;
- NewProtect : ULONG;
- OldProtect : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtProtectVirtualMemory, ntdll, 'NtProtectVirtualMemory');
- Result := TFNNtProtectVirtualMemory(_NtProtectVirtualMemory)(
- ProcessHandle, BaseAddress, ProtectSize, NewProtect, OldProtect
- );
- end;
- // Dynamic version of NtPulseEvent
- function NtPulseEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPulseEvent, ntdll, 'NtPulseEvent');
- Result := TFNNtPulseEvent(_NtPulseEvent)(
- EventHandle, PreviousState
- );
- end;
- // Dynamic version of NtPulseEvent
- function ZwPulseEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtPulseEvent, ntdll, 'NtPulseEvent');
- Result := TFNNtPulseEvent(_NtPulseEvent)(
- EventHandle, PreviousState
- );
- end;
- // Dynamic version of NtQueryAttributesFile
- function NtQueryAttributesFile(
- ObjectAttributes : POBJECT_ATTRIBUTES;
- FileInformation : PFILE_BASIC_INFORMATION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryAttributesFile, ntdll, 'NtQueryAttributesFile');
- Result := TFNNtQueryAttributesFile(_NtQueryAttributesFile)(
- ObjectAttributes, FileInformation
- );
- end;
- // Dynamic version of NtQueryAttributesFile
- function ZwQueryAttributesFile(
- ObjectAttributes : POBJECT_ATTRIBUTES;
- FileInformation : PFILE_BASIC_INFORMATION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryAttributesFile, ntdll, 'NtQueryAttributesFile');
- Result := TFNNtQueryAttributesFile(_NtQueryAttributesFile)(
- ObjectAttributes, FileInformation
- );
- end;
- // Dynamic version of NtQueryDefaultLocale
- function NtQueryDefaultLocale(
- ThreadOrSystem : BOOLEAN;
- Locale : PLCID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDefaultLocale, ntdll, 'NtQueryDefaultLocale');
- Result := TFNNtQueryDefaultLocale(_NtQueryDefaultLocale)(
- ThreadOrSystem, Locale
- );
- end;
- // Dynamic version of NtQueryDefaultLocale
- function ZwQueryDefaultLocale(
- ThreadOrSystem : BOOLEAN;
- Locale : PLCID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDefaultLocale, ntdll, 'NtQueryDefaultLocale');
- Result := TFNNtQueryDefaultLocale(_NtQueryDefaultLocale)(
- ThreadOrSystem, Locale
- );
- end;
- // Dynamic version of NtQueryDefaultUILanguage
- function NtQueryDefaultUILanguage(
- LanguageId : PLANGID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDefaultUILanguage, ntdll, 'NtQueryDefaultUILanguage');
- Result := TFNNtQueryDefaultUILanguage(_NtQueryDefaultUILanguage)(
- LanguageId
- );
- end;
- // Dynamic version of NtQueryDefaultUILanguage
- function ZwQueryDefaultUILanguage(
- LanguageId : PLANGID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDefaultUILanguage, ntdll, 'NtQueryDefaultUILanguage');
- Result := TFNNtQueryDefaultUILanguage(_NtQueryDefaultUILanguage)(
- LanguageId
- );
- end;
- // Dynamic version of NtQueryDirectoryFile
- function NtQueryDirectoryFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS;
- ReturnSingleEntry : BOOLEAN;
- FileName : PUNICODE_STRING;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDirectoryFile, ntdll, 'NtQueryDirectoryFile');
- Result := TFNNtQueryDirectoryFile(_NtQueryDirectoryFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FileInformation, FileInformationLength, FileInformationClass, ReturnSingleEntry, FileName, RestartScan
- );
- end;
- // Dynamic version of NtQueryDirectoryFile
- function ZwQueryDirectoryFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS;
- ReturnSingleEntry : BOOLEAN;
- FileName : PUNICODE_STRING;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDirectoryFile, ntdll, 'NtQueryDirectoryFile');
- Result := TFNNtQueryDirectoryFile(_NtQueryDirectoryFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FileInformation, FileInformationLength, FileInformationClass, ReturnSingleEntry, FileName, RestartScan
- );
- end;
- // Dynamic version of NtQueryDirectoryObject
- function NtQueryDirectoryObject(
- DirectoryHandle : HANDLE;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- RestartScan : BOOLEAN;
- Context : PULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDirectoryObject, ntdll, 'NtQueryDirectoryObject');
- Result := TFNNtQueryDirectoryObject(_NtQueryDirectoryObject)(
- DirectoryHandle, Buffer, BufferLength, ReturnSingleEntry, RestartScan, Context, ReturnLength
- );
- end;
- // Dynamic version of NtQueryDirectoryObject
- function ZwQueryDirectoryObject(
- DirectoryHandle : HANDLE;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- RestartScan : BOOLEAN;
- Context : PULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryDirectoryObject, ntdll, 'NtQueryDirectoryObject');
- Result := TFNNtQueryDirectoryObject(_NtQueryDirectoryObject)(
- DirectoryHandle, Buffer, BufferLength, ReturnSingleEntry, RestartScan, Context, ReturnLength
- );
- end;
- // Dynamic version of NtQueryEaFile
- function NtQueryEaFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_FULL_EA_INFORMATION;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- EaList : PFILE_GET_EA_INFORMATION;
- EaListLength : ULONG;
- EaIndex : PULONG;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryEaFile, ntdll, 'NtQueryEaFile');
- Result := TFNNtQueryEaFile(_NtQueryEaFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan
- );
- end;
- // Dynamic version of NtQueryEaFile
- function ZwQueryEaFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_FULL_EA_INFORMATION;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- EaList : PFILE_GET_EA_INFORMATION;
- EaListLength : ULONG;
- EaIndex : PULONG;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryEaFile, ntdll, 'NtQueryEaFile');
- Result := TFNNtQueryEaFile(_NtQueryEaFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan
- );
- end;
- // Dynamic version of NtQueryEvent
- function NtQueryEvent(
- EventHandle : HANDLE;
- EventInformationClass : EVENT_INFORMATION_CLASS;
- EventInformation : PVOID;
- EventInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryEvent, ntdll, 'NtQueryEvent');
- Result := TFNNtQueryEvent(_NtQueryEvent)(
- EventHandle, EventInformationClass, EventInformation, EventInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryEvent
- function ZwQueryEvent(
- EventHandle : HANDLE;
- EventInformationClass : EVENT_INFORMATION_CLASS;
- EventInformation : PVOID;
- EventInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryEvent, ntdll, 'NtQueryEvent');
- Result := TFNNtQueryEvent(_NtQueryEvent)(
- EventHandle, EventInformationClass, EventInformation, EventInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryFullAttributesFile
- function NtQueryFullAttributesFile(
- ObjectAttributes : POBJECT_ATTRIBUTES;
- FileInformation : PFILE_NETWORK_OPEN_INFORMATION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryFullAttributesFile, ntdll, 'NtQueryFullAttributesFile');
- Result := TFNNtQueryFullAttributesFile(_NtQueryFullAttributesFile)(
- ObjectAttributes, FileInformation
- );
- end;
- // Dynamic version of NtQueryFullAttributesFile
- function ZwQueryFullAttributesFile(
- ObjectAttributes : POBJECT_ATTRIBUTES;
- FileInformation : PFILE_NETWORK_OPEN_INFORMATION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryFullAttributesFile, ntdll, 'NtQueryFullAttributesFile');
- Result := TFNNtQueryFullAttributesFile(_NtQueryFullAttributesFile)(
- ObjectAttributes, FileInformation
- );
- end;
- // Dynamic version of NtQueryInformationAtom
- function NtQueryInformationAtom(
- Atom : USHORT;
- AtomInformationClass : ATOM_INFORMATION_CLASS;
- AtomInformation : PVOID;
- AtomInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationAtom, ntdll, 'NtQueryInformationAtom');
- Result := TFNNtQueryInformationAtom(_NtQueryInformationAtom)(
- Atom, AtomInformationClass, AtomInformation, AtomInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInformationAtom
- function ZwQueryInformationAtom(
- Atom : USHORT;
- AtomInformationClass : ATOM_INFORMATION_CLASS;
- AtomInformation : PVOID;
- AtomInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationAtom, ntdll, 'NtQueryInformationAtom');
- Result := TFNNtQueryInformationAtom(_NtQueryInformationAtom)(
- Atom, AtomInformationClass, AtomInformation, AtomInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInformationFile
- function NtQueryInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationFile, ntdll, 'NtQueryInformationFile');
- Result := TFNNtQueryInformationFile(_NtQueryInformationFile)(
- FileHandle, IoStatusBlock, FileInformation, FileInformationLength, FileInformationClass
- );
- end;
- // Dynamic version of NtQueryInformationFile
- function ZwQueryInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationFile, ntdll, 'NtQueryInformationFile');
- Result := TFNNtQueryInformationFile(_NtQueryInformationFile)(
- FileHandle, IoStatusBlock, FileInformation, FileInformationLength, FileInformationClass
- );
- end;
- // Dynamic version of NtQueryInformationJobObject
- function NtQueryInformationJobObject(
- JobHandle : HANDLE;
- JobInformationClass : JOBOBJECTINFOCLASS;
- JobInformation : PVOID;
- JobInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationJobObject, ntdll, 'NtQueryInformationJobObject');
- Result := TFNNtQueryInformationJobObject(_NtQueryInformationJobObject)(
- JobHandle, JobInformationClass, JobInformation, JobInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInformationJobObject
- function ZwQueryInformationJobObject(
- JobHandle : HANDLE;
- JobInformationClass : JOBOBJECTINFOCLASS;
- JobInformation : PVOID;
- JobInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationJobObject, ntdll, 'NtQueryInformationJobObject');
- Result := TFNNtQueryInformationJobObject(_NtQueryInformationJobObject)(
- JobHandle, JobInformationClass, JobInformation, JobInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInformationPort
- function NtQueryInformationPort(
- PortHandle : HANDLE;
- PortInformationClass : PORT_INFORMATION_CLASS;
- PortInformation : PVOID;
- PortInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationPort, ntdll, 'NtQueryInformationPort');
- Result := TFNNtQueryInformationPort(_NtQueryInformationPort)(
- PortHandle, PortInformationClass, PortInformation, PortInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInformationPort
- function ZwQueryInformationPort(
- PortHandle : HANDLE;
- PortInformationClass : PORT_INFORMATION_CLASS;
- PortInformation : PVOID;
- PortInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationPort, ntdll, 'NtQueryInformationPort');
- Result := TFNNtQueryInformationPort(_NtQueryInformationPort)(
- PortHandle, PortInformationClass, PortInformation, PortInformationLength, ReturnLength
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtQueryInformationProcess
- function NtQueryInformationProcess(
- ProcessHandle : HANDLE;
- ProcessInformationClass : PROCESSINFOCLASS;
- ProcessInformation : PVOID;
- ProcessInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationProcess, ntdll, 'NtQueryInformationProcess');
- Result := TFNNtQueryInformationProcess(_NtQueryInformationProcess)(
- ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength, ReturnLength
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtQueryInformationProcess
- function ZwQueryInformationProcess(
- ProcessHandle : HANDLE;
- ProcessInformationClass : PROCESSINFOCLASS;
- ProcessInformation : PVOID;
- ProcessInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationProcess, ntdll, 'NtQueryInformationProcess');
- Result := TFNNtQueryInformationProcess(_NtQueryInformationProcess)(
- ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength, ReturnLength
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtQueryInformationThread
- function NtQueryInformationThread(
- ThreadHandle : HANDLE;
- ThreadInformationClass : THREADINFOCLASS;
- ThreadInformation : PVOID;
- ThreadInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationThread, ntdll, 'NtQueryInformationThread');
- Result := TFNNtQueryInformationThread(_NtQueryInformationThread)(
- ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength, ReturnLength
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtQueryInformationThread
- function ZwQueryInformationThread(
- ThreadHandle : HANDLE;
- ThreadInformationClass : THREADINFOCLASS;
- ThreadInformation : PVOID;
- ThreadInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationThread, ntdll, 'NtQueryInformationThread');
- Result := TFNNtQueryInformationThread(_NtQueryInformationThread)(
- ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInformationToken
- function NtQueryInformationToken(
- TokenHandle : HANDLE;
- TokenInformationClass : TOKEN_INFORMATION_CLASS;
- TokenInformation : PVOID;
- TokenInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationToken, ntdll, 'NtQueryInformationToken');
- Result := TFNNtQueryInformationToken(_NtQueryInformationToken)(
- TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInformationToken
- function ZwQueryInformationToken(
- TokenHandle : HANDLE;
- TokenInformationClass : TOKEN_INFORMATION_CLASS;
- TokenInformation : PVOID;
- TokenInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInformationToken, ntdll, 'NtQueryInformationToken');
- Result := TFNNtQueryInformationToken(_NtQueryInformationToken)(
- TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryInstallUILanguage
- function NtQueryInstallUILanguage(
- LanguageId : PLANGID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInstallUILanguage, ntdll, 'NtQueryInstallUILanguage');
- Result := TFNNtQueryInstallUILanguage(_NtQueryInstallUILanguage)(
- LanguageId
- );
- end;
- // Dynamic version of NtQueryInstallUILanguage
- function ZwQueryInstallUILanguage(
- LanguageId : PLANGID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryInstallUILanguage, ntdll, 'NtQueryInstallUILanguage');
- Result := TFNNtQueryInstallUILanguage(_NtQueryInstallUILanguage)(
- LanguageId
- );
- end;
- // Dynamic version of NtQueryIntervalProfile
- function NtQueryIntervalProfile(
- Source : KPROFILE_SOURCE;
- Interval : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryIntervalProfile, ntdll, 'NtQueryIntervalProfile');
- Result := TFNNtQueryIntervalProfile(_NtQueryIntervalProfile)(
- Source, Interval
- );
- end;
- // Dynamic version of NtQueryIntervalProfile
- function ZwQueryIntervalProfile(
- Source : KPROFILE_SOURCE;
- Interval : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryIntervalProfile, ntdll, 'NtQueryIntervalProfile');
- Result := TFNNtQueryIntervalProfile(_NtQueryIntervalProfile)(
- Source, Interval
- );
- end;
- // Dynamic version of NtQueryIoCompletion
- function NtQueryIoCompletion(
- IoCompletionHandle : HANDLE;
- IoCompletionInformationClass : IO_COMPLETION_INFORMATION_CLASS;
- IoCompletionInformation : PVOID;
- IoCompletionInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryIoCompletion, ntdll, 'NtQueryIoCompletion');
- Result := TFNNtQueryIoCompletion(_NtQueryIoCompletion)(
- IoCompletionHandle, IoCompletionInformationClass, IoCompletionInformation, IoCompletionInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryIoCompletion
- function ZwQueryIoCompletion(
- IoCompletionHandle : HANDLE;
- IoCompletionInformationClass : IO_COMPLETION_INFORMATION_CLASS;
- IoCompletionInformation : PVOID;
- IoCompletionInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryIoCompletion, ntdll, 'NtQueryIoCompletion');
- Result := TFNNtQueryIoCompletion(_NtQueryIoCompletion)(
- IoCompletionHandle, IoCompletionInformationClass, IoCompletionInformation, IoCompletionInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryKey
- function NtQueryKey(
- KeyHandle : HANDLE;
- KeyInformationClass : KEY_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryKey, ntdll, 'NtQueryKey');
- Result := TFNNtQueryKey(_NtQueryKey)(
- KeyHandle, KeyInformationClass, KeyInformation, KeyInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryKey
- function ZwQueryKey(
- KeyHandle : HANDLE;
- KeyInformationClass : KEY_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryKey, ntdll, 'NtQueryKey');
- Result := TFNNtQueryKey(_NtQueryKey)(
- KeyHandle, KeyInformationClass, KeyInformation, KeyInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryMultipleValueKey
- function NtQueryMultipleValueKey(
- KeyHandle : HANDLE;
- ValueList : PKEY_VALUE_ENTRY;
- NumberOfValues : ULONG;
- Buffer : PVOID;
- Length : PULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryMultipleValueKey, ntdll, 'NtQueryMultipleValueKey');
- Result := TFNNtQueryMultipleValueKey(_NtQueryMultipleValueKey)(
- KeyHandle, ValueList, NumberOfValues, Buffer, Length, ReturnLength
- );
- end;
- // Dynamic version of NtQueryMultipleValueKey
- function ZwQueryMultipleValueKey(
- KeyHandle : HANDLE;
- ValueList : PKEY_VALUE_ENTRY;
- NumberOfValues : ULONG;
- Buffer : PVOID;
- Length : PULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryMultipleValueKey, ntdll, 'NtQueryMultipleValueKey');
- Result := TFNNtQueryMultipleValueKey(_NtQueryMultipleValueKey)(
- KeyHandle, ValueList, NumberOfValues, Buffer, Length, ReturnLength
- );
- end;
- // Dynamic version of NtQueryMutant
- function NtQueryMutant(
- MutantHandle : HANDLE;
- MutantInformationClass : MUTANT_INFORMATION_CLASS;
- MutantInformation : PVOID;
- MutantInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryMutant, ntdll, 'NtQueryMutant');
- Result := TFNNtQueryMutant(_NtQueryMutant)(
- MutantHandle, MutantInformationClass, MutantInformation, MutantInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryMutant
- function ZwQueryMutant(
- MutantHandle : HANDLE;
- MutantInformationClass : MUTANT_INFORMATION_CLASS;
- MutantInformation : PVOID;
- MutantInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryMutant, ntdll, 'NtQueryMutant');
- Result := TFNNtQueryMutant(_NtQueryMutant)(
- MutantHandle, MutantInformationClass, MutantInformation, MutantInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryObject
- function NtQueryObject(
- ObjectHandle : HANDLE;
- ObjectInformationClass : OBJECT_INFORMATION_CLASS;
- ObjectInformation : PVOID;
- ObjectInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryObject, ntdll, 'NtQueryObject');
- Result := TFNNtQueryObject(_NtQueryObject)(
- ObjectHandle, ObjectInformationClass, ObjectInformation, ObjectInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryObject
- function ZwQueryObject(
- ObjectHandle : HANDLE;
- ObjectInformationClass : OBJECT_INFORMATION_CLASS;
- ObjectInformation : PVOID;
- ObjectInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryObject, ntdll, 'NtQueryObject');
- Result := TFNNtQueryObject(_NtQueryObject)(
- ObjectHandle, ObjectInformationClass, ObjectInformation, ObjectInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryOpenSubKeys
- function NtQueryOpenSubKeys(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- NumberOfKey : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryOpenSubKeys, ntdll, 'NtQueryOpenSubKeys');
- Result := TFNNtQueryOpenSubKeys(_NtQueryOpenSubKeys)(
- KeyObjectAttributes, NumberOfKey
- );
- end;
- // Dynamic version of NtQueryOpenSubKeys
- function ZwQueryOpenSubKeys(
- KeyObjectAttributes : POBJECT_ATTRIBUTES;
- NumberOfKey : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryOpenSubKeys, ntdll, 'NtQueryOpenSubKeys');
- Result := TFNNtQueryOpenSubKeys(_NtQueryOpenSubKeys)(
- KeyObjectAttributes, NumberOfKey
- );
- end;
- // Dynamic version of NtQueryPerformanceCounter
- function NtQueryPerformanceCounter(
- PerformanceCount : PLARGE_INTEGER;
- PerformanceFrequency : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryPerformanceCounter, ntdll, 'NtQueryPerformanceCounter');
- Result := TFNNtQueryPerformanceCounter(_NtQueryPerformanceCounter)(
- PerformanceCount, PerformanceFrequency
- );
- end;
- // Dynamic version of NtQueryPerformanceCounter
- function ZwQueryPerformanceCounter(
- PerformanceCount : PLARGE_INTEGER;
- PerformanceFrequency : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryPerformanceCounter, ntdll, 'NtQueryPerformanceCounter');
- Result := TFNNtQueryPerformanceCounter(_NtQueryPerformanceCounter)(
- PerformanceCount, PerformanceFrequency
- );
- end;
- // Dynamic version of NtQueryPortInformationProcess
- function NtQueryPortInformationProcess(): ULONG; stdcall;
- begin
- GetProcedureAddress(_NtQueryPortInformationProcess, ntdll, 'NtQueryPortInformationProcess');
- Result := TFNNtQueryPortInformationProcess(_NtQueryPortInformationProcess)();
- end;
- // Dynamic version of NtQueryPortInformationProcess
- function ZwQueryPortInformationProcess(): ULONG; stdcall;
- begin
- GetProcedureAddress(_NtQueryPortInformationProcess, ntdll, 'NtQueryPortInformationProcess');
- Result := TFNNtQueryPortInformationProcess(_NtQueryPortInformationProcess)();
- end;
- // Dynamic version of NtQueryQuotaInformationFile
- function NtQueryQuotaInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_USER_QUOTA_INFORMATION;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- QuotaList : PFILE_QUOTA_LIST_INFORMATION;
- QuotaListLength : ULONG;
- ResumeSid : PSID;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryQuotaInformationFile, ntdll, 'NtQueryQuotaInformationFile');
- Result := TFNNtQueryQuotaInformationFile(_NtQueryQuotaInformationFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength, ReturnSingleEntry, QuotaList, QuotaListLength, ResumeSid, RestartScan
- );
- end;
- // Dynamic version of NtQueryQuotaInformationFile
- function ZwQueryQuotaInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_USER_QUOTA_INFORMATION;
- BufferLength : ULONG;
- ReturnSingleEntry : BOOLEAN;
- QuotaList : PFILE_QUOTA_LIST_INFORMATION;
- QuotaListLength : ULONG;
- ResumeSid : PSID;
- RestartScan : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryQuotaInformationFile, ntdll, 'NtQueryQuotaInformationFile');
- Result := TFNNtQueryQuotaInformationFile(_NtQueryQuotaInformationFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength, ReturnSingleEntry, QuotaList, QuotaListLength, ResumeSid, RestartScan
- );
- end;
- // Dynamic version of NtQuerySection
- function NtQuerySection(
- SectionHandle : HANDLE;
- SectionInformationClass : SECTION_INFORMATION_CLASS;
- SectionInformation : PVOID;
- SectionInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySection, ntdll, 'NtQuerySection');
- Result := TFNNtQuerySection(_NtQuerySection)(
- SectionHandle, SectionInformationClass, SectionInformation, SectionInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQuerySection
- function ZwQuerySection(
- SectionHandle : HANDLE;
- SectionInformationClass : SECTION_INFORMATION_CLASS;
- SectionInformation : PVOID;
- SectionInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySection, ntdll, 'NtQuerySection');
- Result := TFNNtQuerySection(_NtQuerySection)(
- SectionHandle, SectionInformationClass, SectionInformation, SectionInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQuerySecurityObject
- function NtQuerySecurityObject(
- Handle : HANDLE;
- RequestedInformation : SECURITY_INFORMATION;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- SecurityDescriptorLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySecurityObject, ntdll, 'NtQuerySecurityObject');
- Result := TFNNtQuerySecurityObject(_NtQuerySecurityObject)(
- Handle, RequestedInformation, SecurityDescriptor, SecurityDescriptorLength, ReturnLength
- );
- end;
- // Dynamic version of NtQuerySecurityObject
- function ZwQuerySecurityObject(
- Handle : HANDLE;
- RequestedInformation : SECURITY_INFORMATION;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- SecurityDescriptorLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySecurityObject, ntdll, 'NtQuerySecurityObject');
- Result := TFNNtQuerySecurityObject(_NtQuerySecurityObject)(
- Handle, RequestedInformation, SecurityDescriptor, SecurityDescriptorLength, ReturnLength
- );
- end;
- // Dynamic version of NtQuerySemaphore
- function NtQuerySemaphore(
- SemaphoreHandle : HANDLE;
- SemaphoreInformationClass : SEMAPHORE_INFORMATION_CLASS;
- SemaphoreInformation : PVOID;
- SemaphoreInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySemaphore, ntdll, 'NtQuerySemaphore');
- Result := TFNNtQuerySemaphore(_NtQuerySemaphore)(
- SemaphoreHandle, SemaphoreInformationClass, SemaphoreInformation, SemaphoreInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQuerySemaphore
- function ZwQuerySemaphore(
- SemaphoreHandle : HANDLE;
- SemaphoreInformationClass : SEMAPHORE_INFORMATION_CLASS;
- SemaphoreInformation : PVOID;
- SemaphoreInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySemaphore, ntdll, 'NtQuerySemaphore');
- Result := TFNNtQuerySemaphore(_NtQuerySemaphore)(
- SemaphoreHandle, SemaphoreInformationClass, SemaphoreInformation, SemaphoreInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQuerySymbolicLinkObject
- function NtQuerySymbolicLinkObject(
- SymbolicLinkHandle : HANDLE;
- TargetName : PUNICODE_STRING;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySymbolicLinkObject, ntdll, 'NtQuerySymbolicLinkObject');
- Result := TFNNtQuerySymbolicLinkObject(_NtQuerySymbolicLinkObject)(
- SymbolicLinkHandle, TargetName, ReturnLength
- );
- end;
- // Dynamic version of NtQuerySymbolicLinkObject
- function ZwQuerySymbolicLinkObject(
- SymbolicLinkHandle : HANDLE;
- TargetName : PUNICODE_STRING;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySymbolicLinkObject, ntdll, 'NtQuerySymbolicLinkObject');
- Result := TFNNtQuerySymbolicLinkObject(_NtQuerySymbolicLinkObject)(
- SymbolicLinkHandle, TargetName, ReturnLength
- );
- end;
- // Dynamic version of NtQuerySystemEnvironmentValue
- function NtQuerySystemEnvironmentValue(
- Name : PUNICODE_STRING;
- Value : PVOID;
- ValueLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySystemEnvironmentValue, ntdll, 'NtQuerySystemEnvironmentValue');
- Result := TFNNtQuerySystemEnvironmentValue(_NtQuerySystemEnvironmentValue)(
- Name, Value, ValueLength, ReturnLength
- );
- end;
- // Dynamic version of NtQuerySystemEnvironmentValue
- function ZwQuerySystemEnvironmentValue(
- Name : PUNICODE_STRING;
- Value : PVOID;
- ValueLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySystemEnvironmentValue, ntdll, 'NtQuerySystemEnvironmentValue');
- Result := TFNNtQuerySystemEnvironmentValue(_NtQuerySystemEnvironmentValue)(
- Name, Value, ValueLength, ReturnLength
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtQuerySystemInformation
- function NtQuerySystemInformation(
- SystemInformationClass : SYSTEM_INFORMATION_CLASS;
- SystemInformation : PVOID;
- SystemInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySystemInformation, ntdll, 'NtQuerySystemInformation');
- Result := TFNNtQuerySystemInformation(_NtQuerySystemInformation)(
- SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtQuerySystemInformation
- function ZwQuerySystemInformation(
- SystemInformationClass : SYSTEM_INFORMATION_CLASS;
- SystemInformation : PVOID;
- SystemInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySystemInformation, ntdll, 'NtQuerySystemInformation');
- Result := TFNNtQuerySystemInformation(_NtQuerySystemInformation)(
- SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtQuerySystemTime
- function NtQuerySystemTime(
- CurrentTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySystemTime, ntdll, 'NtQuerySystemTime');
- Result := TFNNtQuerySystemTime(_NtQuerySystemTime)(
- CurrentTime
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtQuerySystemTime
- function ZwQuerySystemTime(
- CurrentTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySystemTime, ntdll, 'NtQuerySystemTime');
- Result := TFNNtQuerySystemTime(_NtQuerySystemTime)(
- CurrentTime
- );
- end;
- // Dynamic version of NtQueryTimer
- function NtQueryTimer(
- TimerHandle : HANDLE;
- TimerInformationClass : TIMER_INFORMATION_CLASS;
- TimerInformation : PVOID;
- TimerInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryTimer, ntdll, 'NtQueryTimer');
- Result := TFNNtQueryTimer(_NtQueryTimer)(
- TimerHandle, TimerInformationClass, TimerInformation, TimerInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryTimer
- function ZwQueryTimer(
- TimerHandle : HANDLE;
- TimerInformationClass : TIMER_INFORMATION_CLASS;
- TimerInformation : PVOID;
- TimerInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryTimer, ntdll, 'NtQueryTimer');
- Result := TFNNtQueryTimer(_NtQueryTimer)(
- TimerHandle, TimerInformationClass, TimerInformation, TimerInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryTimerResolution
- function NtQueryTimerResolution(
- CoarsestResolution : PULONG;
- FinestResolution : PULONG;
- ActualResolution : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryTimerResolution, ntdll, 'NtQueryTimerResolution');
- Result := TFNNtQueryTimerResolution(_NtQueryTimerResolution)(
- CoarsestResolution, FinestResolution, ActualResolution
- );
- end;
- // Dynamic version of NtQueryTimerResolution
- function ZwQueryTimerResolution(
- CoarsestResolution : PULONG;
- FinestResolution : PULONG;
- ActualResolution : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryTimerResolution, ntdll, 'NtQueryTimerResolution');
- Result := TFNNtQueryTimerResolution(_NtQueryTimerResolution)(
- CoarsestResolution, FinestResolution, ActualResolution
- );
- end;
- // Dynamic version of NtQueryValueKey
- function NtQueryValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING;
- KeyValueInformationClass : KEY_VALUE_INFORMATION_CLASS;
- KeyValueInformation : PVOID;
- KeyValueInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryValueKey, ntdll, 'NtQueryValueKey');
- Result := TFNNtQueryValueKey(_NtQueryValueKey)(
- KeyHandle, ValueName, KeyValueInformationClass, KeyValueInformation, KeyValueInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryValueKey
- function ZwQueryValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING;
- KeyValueInformationClass : KEY_VALUE_INFORMATION_CLASS;
- KeyValueInformation : PVOID;
- KeyValueInformationLength : ULONG;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryValueKey, ntdll, 'NtQueryValueKey');
- Result := TFNNtQueryValueKey(_NtQueryValueKey)(
- KeyHandle, ValueName, KeyValueInformationClass, KeyValueInformation, KeyValueInformationLength, ResultLength
- );
- end;
- // Dynamic version of NtQueryVirtualMemory
- function NtQueryVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- MemoryInformationClass : MEMORY_INFORMATION_CLASS;
- MemoryInformation : PVOID;
- MemoryInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryVirtualMemory, ntdll, 'NtQueryVirtualMemory');
- Result := TFNNtQueryVirtualMemory(_NtQueryVirtualMemory)(
- ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation, MemoryInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryVirtualMemory
- function ZwQueryVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- MemoryInformationClass : MEMORY_INFORMATION_CLASS;
- MemoryInformation : PVOID;
- MemoryInformationLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryVirtualMemory, ntdll, 'NtQueryVirtualMemory');
- Result := TFNNtQueryVirtualMemory(_NtQueryVirtualMemory)(
- ProcessHandle, BaseAddress, MemoryInformationClass, MemoryInformation, MemoryInformationLength, ReturnLength
- );
- end;
- // Dynamic version of NtQueryVolumeInformationFile
- function NtQueryVolumeInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- VolumeInformation : PVOID;
- VolumeInformationLength : ULONG;
- VolumeInformationClass : FS_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryVolumeInformationFile, ntdll, 'NtQueryVolumeInformationFile');
- Result := TFNNtQueryVolumeInformationFile(_NtQueryVolumeInformationFile)(
- FileHandle, IoStatusBlock, VolumeInformation, VolumeInformationLength, VolumeInformationClass
- );
- end;
- // Dynamic version of NtQueryVolumeInformationFile
- function ZwQueryVolumeInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- VolumeInformation : PVOID;
- VolumeInformationLength : ULONG;
- VolumeInformationClass : FS_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueryVolumeInformationFile, ntdll, 'NtQueryVolumeInformationFile');
- Result := TFNNtQueryVolumeInformationFile(_NtQueryVolumeInformationFile)(
- FileHandle, IoStatusBlock, VolumeInformation, VolumeInformationLength, VolumeInformationClass
- );
- end;
- // Dynamic version of NtQueueApcThread
- function NtQueueApcThread(
- ThreadHandle : HANDLE;
- ApcRoutine : PKNORMAL_ROUTINE;
- ApcContext : PVOID;
- Argument1 : PVOID;
- Argument2 : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueueApcThread, ntdll, 'NtQueueApcThread');
- Result := TFNNtQueueApcThread(_NtQueueApcThread)(
- ThreadHandle, ApcRoutine, ApcContext, Argument1, Argument2
- );
- end;
- // Dynamic version of NtQueueApcThread
- function ZwQueueApcThread(
- ThreadHandle : HANDLE;
- ApcRoutine : PKNORMAL_ROUTINE;
- ApcContext : PVOID;
- Argument1 : PVOID;
- Argument2 : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQueueApcThread, ntdll, 'NtQueueApcThread');
- Result := TFNNtQueueApcThread(_NtQueueApcThread)(
- ThreadHandle, ApcRoutine, ApcContext, Argument1, Argument2
- );
- end;
- // Dynamic version of NtRaiseException
- function NtRaiseException(
- ExceptionRecord : PEXCEPTION_RECORD;
- Context : PCONTEXT;
- SearchFrames : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRaiseException, ntdll, 'NtRaiseException');
- Result := TFNNtRaiseException(_NtRaiseException)(
- ExceptionRecord, Context, SearchFrames
- );
- end;
- // Dynamic version of NtRaiseException
- function ZwRaiseException(
- ExceptionRecord : PEXCEPTION_RECORD;
- Context : PCONTEXT;
- SearchFrames : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRaiseException, ntdll, 'NtRaiseException');
- Result := TFNNtRaiseException(_NtRaiseException)(
- ExceptionRecord, Context, SearchFrames
- );
- end;
- // Dynamic version of NtRaiseHardError
- function NtRaiseHardError(
- Status : NTSTATUS;
- NumberOfArguments : ULONG;
- StringArgumentsMask : ULONG;
- Arguments : PULONG;
- MessageBoxType : ULONG;
- MessageBoxResult : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRaiseHardError, ntdll, 'NtRaiseHardError');
- Result := TFNNtRaiseHardError(_NtRaiseHardError)(
- Status, NumberOfArguments, StringArgumentsMask, Arguments, MessageBoxType, MessageBoxResult
- );
- end;
- // Dynamic version of NtRaiseHardError
- function ZwRaiseHardError(
- Status : NTSTATUS;
- NumberOfArguments : ULONG;
- StringArgumentsMask : ULONG;
- Arguments : PULONG;
- MessageBoxType : ULONG;
- MessageBoxResult : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRaiseHardError, ntdll, 'NtRaiseHardError');
- Result := TFNNtRaiseHardError(_NtRaiseHardError)(
- Status, NumberOfArguments, StringArgumentsMask, Arguments, MessageBoxType, MessageBoxResult
- );
- end;
- // Dynamic version of NtReadFile
- function NtReadFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadFile, ntdll, 'NtReadFile');
- Result := TFNNtReadFile(_NtReadFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtReadFile
- function ZwReadFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadFile, ntdll, 'NtReadFile');
- Result := TFNNtReadFile(_NtReadFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtReadFileScatter
- function NtReadFileScatter(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_SEGMENT_ELEMENT;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadFileScatter, ntdll, 'NtReadFileScatter');
- Result := TFNNtReadFileScatter(_NtReadFileScatter)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtReadFileScatter
- function ZwReadFileScatter(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_SEGMENT_ELEMENT;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadFileScatter, ntdll, 'NtReadFileScatter');
- Result := TFNNtReadFileScatter(_NtReadFileScatter)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtReadRequestData
- function NtReadRequestData(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE;
- Index : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadRequestData, ntdll, 'NtReadRequestData');
- Result := TFNNtReadRequestData(_NtReadRequestData)(
- PortHandle, Message, Index, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtReadRequestData
- function ZwReadRequestData(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE;
- Index : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadRequestData, ntdll, 'NtReadRequestData');
- Result := TFNNtReadRequestData(_NtReadRequestData)(
- PortHandle, Message, Index, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtReadVirtualMemory
- function NtReadVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadVirtualMemory, ntdll, 'NtReadVirtualMemory');
- Result := TFNNtReadVirtualMemory(_NtReadVirtualMemory)(
- ProcessHandle, BaseAddress, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtReadVirtualMemory
- function ZwReadVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReadVirtualMemory, ntdll, 'NtReadVirtualMemory');
- Result := TFNNtReadVirtualMemory(_NtReadVirtualMemory)(
- ProcessHandle, BaseAddress, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtRegisterThreadTerminatePort
- function NtRegisterThreadTerminatePort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRegisterThreadTerminatePort, ntdll, 'NtRegisterThreadTerminatePort');
- Result := TFNNtRegisterThreadTerminatePort(_NtRegisterThreadTerminatePort)(
- PortHandle
- );
- end;
- // Dynamic version of NtRegisterThreadTerminatePort
- function ZwRegisterThreadTerminatePort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRegisterThreadTerminatePort, ntdll, 'NtRegisterThreadTerminatePort');
- Result := TFNNtRegisterThreadTerminatePort(_NtRegisterThreadTerminatePort)(
- PortHandle
- );
- end;
- // Dynamic version of NtReleaseMutant
- function NtReleaseMutant(
- MutantHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReleaseMutant, ntdll, 'NtReleaseMutant');
- Result := TFNNtReleaseMutant(_NtReleaseMutant)(
- MutantHandle, PreviousState
- );
- end;
- // Dynamic version of NtReleaseMutant
- function ZwReleaseMutant(
- MutantHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReleaseMutant, ntdll, 'NtReleaseMutant');
- Result := TFNNtReleaseMutant(_NtReleaseMutant)(
- MutantHandle, PreviousState
- );
- end;
- // Dynamic version of NtReleaseSemaphore
- function NtReleaseSemaphore(
- SemaphoreHandle : HANDLE;
- ReleaseCount : LONG;
- PreviousCount : PLONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReleaseSemaphore, ntdll, 'NtReleaseSemaphore');
- Result := TFNNtReleaseSemaphore(_NtReleaseSemaphore)(
- SemaphoreHandle, ReleaseCount, PreviousCount
- );
- end;
- // Dynamic version of NtReleaseSemaphore
- function ZwReleaseSemaphore(
- SemaphoreHandle : HANDLE;
- ReleaseCount : LONG;
- PreviousCount : PLONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReleaseSemaphore, ntdll, 'NtReleaseSemaphore');
- Result := TFNNtReleaseSemaphore(_NtReleaseSemaphore)(
- SemaphoreHandle, ReleaseCount, PreviousCount
- );
- end;
- // Dynamic version of NtRemoveIoCompletion
- function NtRemoveIoCompletion(
- IoCompletionHandle : HANDLE;
- CompletionKey : PULONG;
- CompletionValue : PULONG;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRemoveIoCompletion, ntdll, 'NtRemoveIoCompletion');
- Result := TFNNtRemoveIoCompletion(_NtRemoveIoCompletion)(
- IoCompletionHandle, CompletionKey, CompletionValue, IoStatusBlock, Timeout
- );
- end;
- // Dynamic version of NtRemoveIoCompletion
- function ZwRemoveIoCompletion(
- IoCompletionHandle : HANDLE;
- CompletionKey : PULONG;
- CompletionValue : PULONG;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRemoveIoCompletion, ntdll, 'NtRemoveIoCompletion');
- Result := TFNNtRemoveIoCompletion(_NtRemoveIoCompletion)(
- IoCompletionHandle, CompletionKey, CompletionValue, IoStatusBlock, Timeout
- );
- end;
- // Dynamic version of NtRemoveProcessDebug
- function NtRemoveProcessDebug(
- hProcess : HANDLE;
- hDebugObject : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRemoveProcessDebug, ntdll, 'NtRemoveProcessDebug');
- Result := TFNNtRemoveProcessDebug(_NtRemoveProcessDebug)(
- hProcess, hDebugObject
- );
- end;
- // Dynamic version of NtRemoveProcessDebug
- function ZwRemoveProcessDebug(
- hProcess : HANDLE;
- hDebugObject : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRemoveProcessDebug, ntdll, 'NtRemoveProcessDebug');
- Result := TFNNtRemoveProcessDebug(_NtRemoveProcessDebug)(
- hProcess, hDebugObject
- );
- end;
- // Dynamic version of NtReplaceKey
- function NtReplaceKey(
- NewFileObjectAttributes : POBJECT_ATTRIBUTES;
- KeyHandle : HANDLE;
- OldFileObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplaceKey, ntdll, 'NtReplaceKey');
- Result := TFNNtReplaceKey(_NtReplaceKey)(
- NewFileObjectAttributes, KeyHandle, OldFileObjectAttributes
- );
- end;
- // Dynamic version of NtReplaceKey
- function ZwReplaceKey(
- NewFileObjectAttributes : POBJECT_ATTRIBUTES;
- KeyHandle : HANDLE;
- OldFileObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplaceKey, ntdll, 'NtReplaceKey');
- Result := TFNNtReplaceKey(_NtReplaceKey)(
- NewFileObjectAttributes, KeyHandle, OldFileObjectAttributes
- );
- end;
- // Dynamic version of NtReplyPort
- function NtReplyPort(
- PortHandle : HANDLE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyPort, ntdll, 'NtReplyPort');
- Result := TFNNtReplyPort(_NtReplyPort)(
- PortHandle, ReplyMessage
- );
- end;
- // Dynamic version of NtReplyPort
- function ZwReplyPort(
- PortHandle : HANDLE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyPort, ntdll, 'NtReplyPort');
- Result := TFNNtReplyPort(_NtReplyPort)(
- PortHandle, ReplyMessage
- );
- end;
- // Dynamic version of NtReplyWaitReceivePort
- function NtReplyWaitReceivePort(
- PortHandle : HANDLE;
- PortIdentifier : PULONG;
- ReplyMessage : PPORT_MESSAGE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitReceivePort, ntdll, 'NtReplyWaitReceivePort');
- Result := TFNNtReplyWaitReceivePort(_NtReplyWaitReceivePort)(
- PortHandle, PortIdentifier, ReplyMessage, Message
- );
- end;
- // Dynamic version of NtReplyWaitReceivePort
- function ZwReplyWaitReceivePort(
- PortHandle : HANDLE;
- PortIdentifier : PULONG;
- ReplyMessage : PPORT_MESSAGE;
- Message : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitReceivePort, ntdll, 'NtReplyWaitReceivePort');
- Result := TFNNtReplyWaitReceivePort(_NtReplyWaitReceivePort)(
- PortHandle, PortIdentifier, ReplyMessage, Message
- );
- end;
- // Dynamic version of NtReplyWaitReceivePortEx
- function NtReplyWaitReceivePortEx(
- PortHandle : HANDLE;
- PortIdentifier : PULONG;
- ReplyMessage : PPORT_MESSAGE;
- Message : PPORT_MESSAGE;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitReceivePortEx, ntdll, 'NtReplyWaitReceivePortEx');
- Result := TFNNtReplyWaitReceivePortEx(_NtReplyWaitReceivePortEx)(
- PortHandle, PortIdentifier, ReplyMessage, Message, Timeout
- );
- end;
- // Dynamic version of NtReplyWaitReceivePortEx
- function ZwReplyWaitReceivePortEx(
- PortHandle : HANDLE;
- PortIdentifier : PULONG;
- ReplyMessage : PPORT_MESSAGE;
- Message : PPORT_MESSAGE;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitReceivePortEx, ntdll, 'NtReplyWaitReceivePortEx');
- Result := TFNNtReplyWaitReceivePortEx(_NtReplyWaitReceivePortEx)(
- PortHandle, PortIdentifier, ReplyMessage, Message, Timeout
- );
- end;
- // Dynamic version of NtReplyWaitReplyPort
- function NtReplyWaitReplyPort(
- PortHandle : HANDLE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitReplyPort, ntdll, 'NtReplyWaitReplyPort');
- Result := TFNNtReplyWaitReplyPort(_NtReplyWaitReplyPort)(
- PortHandle, ReplyMessage
- );
- end;
- // Dynamic version of NtReplyWaitReplyPort
- function ZwReplyWaitReplyPort(
- PortHandle : HANDLE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitReplyPort, ntdll, 'NtReplyWaitReplyPort');
- Result := TFNNtReplyWaitReplyPort(_NtReplyWaitReplyPort)(
- PortHandle, ReplyMessage
- );
- end;
- // Dynamic version of NtReplyWaitSendChannel
- function NtReplyWaitSendChannel(
- x : PVOID;
- y : PVOID;
- z : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitSendChannel, ntdll, 'NtReplyWaitSendChannel');
- Result := TFNNtReplyWaitSendChannel(_NtReplyWaitSendChannel)(
- x, y, z
- );
- end;
- // Dynamic version of NtReplyWaitSendChannel
- function ZwReplyWaitSendChannel(
- x : PVOID;
- y : PVOID;
- z : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtReplyWaitSendChannel, ntdll, 'NtReplyWaitSendChannel');
- Result := TFNNtReplyWaitSendChannel(_NtReplyWaitSendChannel)(
- x, y, z
- );
- end;
- // Dynamic version of NtRequestDeviceWakeup
- function NtRequestDeviceWakeup(
- DeviceHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestDeviceWakeup, ntdll, 'NtRequestDeviceWakeup');
- Result := TFNNtRequestDeviceWakeup(_NtRequestDeviceWakeup)(
- DeviceHandle
- );
- end;
- // Dynamic version of NtRequestDeviceWakeup
- function ZwRequestDeviceWakeup(
- DeviceHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestDeviceWakeup, ntdll, 'NtRequestDeviceWakeup');
- Result := TFNNtRequestDeviceWakeup(_NtRequestDeviceWakeup)(
- DeviceHandle
- );
- end;
- // Dynamic version of NtRequestPort
- function NtRequestPort(
- PortHandle : HANDLE;
- RequestMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestPort, ntdll, 'NtRequestPort');
- Result := TFNNtRequestPort(_NtRequestPort)(
- PortHandle, RequestMessage
- );
- end;
- // Dynamic version of NtRequestPort
- function ZwRequestPort(
- PortHandle : HANDLE;
- RequestMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestPort, ntdll, 'NtRequestPort');
- Result := TFNNtRequestPort(_NtRequestPort)(
- PortHandle, RequestMessage
- );
- end;
- // Dynamic version of NtRequestWaitReplyPort
- function NtRequestWaitReplyPort(
- PortHandle : HANDLE;
- RequestMessage : PPORT_MESSAGE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestWaitReplyPort, ntdll, 'NtRequestWaitReplyPort');
- Result := TFNNtRequestWaitReplyPort(_NtRequestWaitReplyPort)(
- PortHandle, RequestMessage, ReplyMessage
- );
- end;
- // Dynamic version of NtRequestWaitReplyPort
- function ZwRequestWaitReplyPort(
- PortHandle : HANDLE;
- RequestMessage : PPORT_MESSAGE;
- ReplyMessage : PPORT_MESSAGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestWaitReplyPort, ntdll, 'NtRequestWaitReplyPort');
- Result := TFNNtRequestWaitReplyPort(_NtRequestWaitReplyPort)(
- PortHandle, RequestMessage, ReplyMessage
- );
- end;
- // Dynamic version of NtRequestWakeupLatency
- function NtRequestWakeupLatency(
- Latency : LATENCY_TIME
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestWakeupLatency, ntdll, 'NtRequestWakeupLatency');
- Result := TFNNtRequestWakeupLatency(_NtRequestWakeupLatency)(
- Latency
- );
- end;
- // Dynamic version of NtRequestWakeupLatency
- function ZwRequestWakeupLatency(
- Latency : LATENCY_TIME
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRequestWakeupLatency, ntdll, 'NtRequestWakeupLatency');
- Result := TFNNtRequestWakeupLatency(_NtRequestWakeupLatency)(
- Latency
- );
- end;
- // Dynamic version of NtResetEvent
- function NtResetEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResetEvent, ntdll, 'NtResetEvent');
- Result := TFNNtResetEvent(_NtResetEvent)(
- EventHandle, PreviousState
- );
- end;
- // Dynamic version of NtResetEvent
- function ZwResetEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResetEvent, ntdll, 'NtResetEvent');
- Result := TFNNtResetEvent(_NtResetEvent)(
- EventHandle, PreviousState
- );
- end;
- // Dynamic version of NtResetWriteWatch
- function NtResetWriteWatch(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- RegionSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResetWriteWatch, ntdll, 'NtResetWriteWatch');
- Result := TFNNtResetWriteWatch(_NtResetWriteWatch)(
- ProcessHandle, BaseAddress, RegionSize
- );
- end;
- // Dynamic version of NtResetWriteWatch
- function ZwResetWriteWatch(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- RegionSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResetWriteWatch, ntdll, 'NtResetWriteWatch');
- Result := TFNNtResetWriteWatch(_NtResetWriteWatch)(
- ProcessHandle, BaseAddress, RegionSize
- );
- end;
- // Dynamic version of NtRestoreKey
- function NtRestoreKey(
- KeyHandle : HANDLE;
- FileHandle : HANDLE;
- Flags : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRestoreKey, ntdll, 'NtRestoreKey');
- Result := TFNNtRestoreKey(_NtRestoreKey)(
- KeyHandle, FileHandle, Flags
- );
- end;
- // Dynamic version of NtRestoreKey
- function ZwRestoreKey(
- KeyHandle : HANDLE;
- FileHandle : HANDLE;
- Flags : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtRestoreKey, ntdll, 'NtRestoreKey');
- Result := TFNNtRestoreKey(_NtRestoreKey)(
- KeyHandle, FileHandle, Flags
- );
- end;
- // Dynamic version of NtResumeProcess
- function NtResumeProcess(
- hProcess : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResumeProcess, ntdll, 'NtResumeProcess');
- Result := TFNNtResumeProcess(_NtResumeProcess)(
- hProcess
- );
- end;
- // Dynamic version of NtResumeProcess
- function ZwResumeProcess(
- hProcess : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResumeProcess, ntdll, 'NtResumeProcess');
- Result := TFNNtResumeProcess(_NtResumeProcess)(
- hProcess
- );
- end;
- // Dynamic version of NtResumeThread
- function NtResumeThread(
- hThread : HANDLE;
- dwResumeCount : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResumeThread, ntdll, 'NtResumeThread');
- Result := TFNNtResumeThread(_NtResumeThread)(
- hThread, dwResumeCount
- );
- end;
- // Dynamic version of NtResumeThread
- function ZwResumeThread(
- hThread : HANDLE;
- dwResumeCount : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtResumeThread, ntdll, 'NtResumeThread');
- Result := TFNNtResumeThread(_NtResumeThread)(
- hThread, dwResumeCount
- );
- end;
- // Dynamic version of NtSaveKey
- function NtSaveKey(
- KeyHandle : HANDLE;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSaveKey, ntdll, 'NtSaveKey');
- Result := TFNNtSaveKey(_NtSaveKey)(
- KeyHandle, FileHandle
- );
- end;
- // Dynamic version of NtSaveKey
- function ZwSaveKey(
- KeyHandle : HANDLE;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSaveKey, ntdll, 'NtSaveKey');
- Result := TFNNtSaveKey(_NtSaveKey)(
- KeyHandle, FileHandle
- );
- end;
- // Dynamic version of NtSaveKeyEx
- function NtSaveKeyEx(
- KeyHandle : HANDLE;
- FileHandle : HANDLE;
- Flags : DWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSaveKeyEx, ntdll, 'NtSaveKeyEx');
- Result := TFNNtSaveKeyEx(_NtSaveKeyEx)(
- KeyHandle, FileHandle, Flags
- );
- end;
- // Dynamic version of NtSaveKeyEx
- function ZwSaveKeyEx(
- KeyHandle : HANDLE;
- FileHandle : HANDLE;
- Flags : DWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSaveKeyEx, ntdll, 'NtSaveKeyEx');
- Result := TFNNtSaveKeyEx(_NtSaveKeyEx)(
- KeyHandle, FileHandle, Flags
- );
- end;
- // Dynamic version of NtSaveMergedKeys
- function NtSaveMergedKeys(
- KeyHandle1 : HANDLE;
- KeyHandle2 : HANDLE;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSaveMergedKeys, ntdll, 'NtSaveMergedKeys');
- Result := TFNNtSaveMergedKeys(_NtSaveMergedKeys)(
- KeyHandle1, KeyHandle2, FileHandle
- );
- end;
- // Dynamic version of NtSaveMergedKeys
- function ZwSaveMergedKeys(
- KeyHandle1 : HANDLE;
- KeyHandle2 : HANDLE;
- FileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSaveMergedKeys, ntdll, 'NtSaveMergedKeys');
- Result := TFNNtSaveMergedKeys(_NtSaveMergedKeys)(
- KeyHandle1, KeyHandle2, FileHandle
- );
- end;
- // Dynamic version of NtSecureConnectPort
- function NtSecureConnectPort(
- PortHandle : PHANDLE;
- PortName : PUNICODE_STRING;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE;
- WriteSection : PPORT_SECTION_WRITE;
- ServerSid : PSID;
- ReadSection : PPORT_SECTION_READ;
- MaxMessageSize : PULONG;
- ConnectData : PVOID;
- ConnectDataLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSecureConnectPort, ntdll, 'NtSecureConnectPort');
- Result := TFNNtSecureConnectPort(_NtSecureConnectPort)(
- PortHandle, PortName, SecurityQos, WriteSection, ServerSid, ReadSection, MaxMessageSize, ConnectData, ConnectDataLength
- );
- end;
- // Dynamic version of NtSecureConnectPort
- function ZwSecureConnectPort(
- PortHandle : PHANDLE;
- PortName : PUNICODE_STRING;
- SecurityQos : PSECURITY_QUALITY_OF_SERVICE;
- WriteSection : PPORT_SECTION_WRITE;
- ServerSid : PSID;
- ReadSection : PPORT_SECTION_READ;
- MaxMessageSize : PULONG;
- ConnectData : PVOID;
- ConnectDataLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSecureConnectPort, ntdll, 'NtSecureConnectPort');
- Result := TFNNtSecureConnectPort(_NtSecureConnectPort)(
- PortHandle, PortName, SecurityQos, WriteSection, ServerSid, ReadSection, MaxMessageSize, ConnectData, ConnectDataLength
- );
- end;
- // Dynamic version of NtSendWaitReplyChannel
- function NtSendWaitReplyChannel(
- x : PVOID;
- y : PVOID;
- z : PVOID;
- z2 : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSendWaitReplyChannel, ntdll, 'NtSendWaitReplyChannel');
- Result := TFNNtSendWaitReplyChannel(_NtSendWaitReplyChannel)(
- x, y, z, z2
- );
- end;
- // Dynamic version of NtSendWaitReplyChannel
- function ZwSendWaitReplyChannel(
- x : PVOID;
- y : PVOID;
- z : PVOID;
- z2 : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSendWaitReplyChannel, ntdll, 'NtSendWaitReplyChannel');
- Result := TFNNtSendWaitReplyChannel(_NtSendWaitReplyChannel)(
- x, y, z, z2
- );
- end;
- // Dynamic version of NtSetContextChannel
- function NtSetContextChannel(
- x : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetContextChannel, ntdll, 'NtSetContextChannel');
- Result := TFNNtSetContextChannel(_NtSetContextChannel)(
- x
- );
- end;
- // Dynamic version of NtSetContextChannel
- function ZwSetContextChannel(
- x : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetContextChannel, ntdll, 'NtSetContextChannel');
- Result := TFNNtSetContextChannel(_NtSetContextChannel)(
- x
- );
- end;
- // Dynamic version of NtSetContextThread
- function NtSetContextThread(
- ThreadHandle : HANDLE;
- Context : PCONTEXT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetContextThread, ntdll, 'NtSetContextThread');
- Result := TFNNtSetContextThread(_NtSetContextThread)(
- ThreadHandle, Context
- );
- end;
- // Dynamic version of NtSetContextThread
- function ZwSetContextThread(
- ThreadHandle : HANDLE;
- Context : PCONTEXT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetContextThread, ntdll, 'NtSetContextThread');
- Result := TFNNtSetContextThread(_NtSetContextThread)(
- ThreadHandle, Context
- );
- end;
- // Dynamic version of NtSetDefaultHardErrorPort
- function NtSetDefaultHardErrorPort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetDefaultHardErrorPort, ntdll, 'NtSetDefaultHardErrorPort');
- Result := TFNNtSetDefaultHardErrorPort(_NtSetDefaultHardErrorPort)(
- PortHandle
- );
- end;
- // Dynamic version of NtSetDefaultHardErrorPort
- function ZwSetDefaultHardErrorPort(
- PortHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetDefaultHardErrorPort, ntdll, 'NtSetDefaultHardErrorPort');
- Result := TFNNtSetDefaultHardErrorPort(_NtSetDefaultHardErrorPort)(
- PortHandle
- );
- end;
- // Dynamic version of NtSetDefaultLocale
- function NtSetDefaultLocale(
- ThreadOrSystem : BOOLEAN;
- Locale : LCID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetDefaultLocale, ntdll, 'NtSetDefaultLocale');
- Result := TFNNtSetDefaultLocale(_NtSetDefaultLocale)(
- ThreadOrSystem, Locale
- );
- end;
- // Dynamic version of NtSetDefaultLocale
- function ZwSetDefaultLocale(
- ThreadOrSystem : BOOLEAN;
- Locale : LCID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetDefaultLocale, ntdll, 'NtSetDefaultLocale');
- Result := TFNNtSetDefaultLocale(_NtSetDefaultLocale)(
- ThreadOrSystem, Locale
- );
- end;
- // Dynamic version of NtSetDefaultUILanguage
- function NtSetDefaultUILanguage(
- LanguageId : LANGID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetDefaultUILanguage, ntdll, 'NtSetDefaultUILanguage');
- Result := TFNNtSetDefaultUILanguage(_NtSetDefaultUILanguage)(
- LanguageId
- );
- end;
- // Dynamic version of NtSetDefaultUILanguage
- function ZwSetDefaultUILanguage(
- LanguageId : LANGID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetDefaultUILanguage, ntdll, 'NtSetDefaultUILanguage');
- Result := TFNNtSetDefaultUILanguage(_NtSetDefaultUILanguage)(
- LanguageId
- );
- end;
- // Dynamic version of NtSetEaFile
- function NtSetEaFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_FULL_EA_INFORMATION;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetEaFile, ntdll, 'NtSetEaFile');
- Result := TFNNtSetEaFile(_NtSetEaFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtSetEaFile
- function ZwSetEaFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_FULL_EA_INFORMATION;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetEaFile, ntdll, 'NtSetEaFile');
- Result := TFNNtSetEaFile(_NtSetEaFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtSetEvent
- function NtSetEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetEvent, ntdll, 'NtSetEvent');
- Result := TFNNtSetEvent(_NtSetEvent)(
- EventHandle, PreviousState
- );
- end;
- // Dynamic version of NtSetEvent
- function ZwSetEvent(
- EventHandle : HANDLE;
- PreviousState : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetEvent, ntdll, 'NtSetEvent');
- Result := TFNNtSetEvent(_NtSetEvent)(
- EventHandle, PreviousState
- );
- end;
- // Dynamic version of NtSetHighEventPair
- function NtSetHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetHighEventPair, ntdll, 'NtSetHighEventPair');
- Result := TFNNtSetHighEventPair(_NtSetHighEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetHighEventPair
- function ZwSetHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetHighEventPair, ntdll, 'NtSetHighEventPair');
- Result := TFNNtSetHighEventPair(_NtSetHighEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetHighWaitLowEventPair
- function NtSetHighWaitLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetHighWaitLowEventPair, ntdll, 'NtSetHighWaitLowEventPair');
- Result := TFNNtSetHighWaitLowEventPair(_NtSetHighWaitLowEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetHighWaitLowEventPair
- function ZwSetHighWaitLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetHighWaitLowEventPair, ntdll, 'NtSetHighWaitLowEventPair');
- Result := TFNNtSetHighWaitLowEventPair(_NtSetHighWaitLowEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetHighWaitLowThread
- function NtSetHighWaitLowThread(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetHighWaitLowThread, ntdll, 'NtSetHighWaitLowThread');
- Result := TFNNtSetHighWaitLowThread(_NtSetHighWaitLowThread)();
- end;
- // Dynamic version of NtSetHighWaitLowThread
- function ZwSetHighWaitLowThread(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetHighWaitLowThread, ntdll, 'NtSetHighWaitLowThread');
- Result := TFNNtSetHighWaitLowThread(_NtSetHighWaitLowThread)();
- end;
- // Dynamic version of NtSetInformationFile
- function NtSetInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationFile, ntdll, 'NtSetInformationFile');
- Result := TFNNtSetInformationFile(_NtSetInformationFile)(
- FileHandle, IoStatusBlock, FileInformation, FileInformationLength, FileInformationClass
- );
- end;
- // Dynamic version of NtSetInformationFile
- function ZwSetInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- FileInformation : PVOID;
- FileInformationLength : ULONG;
- FileInformationClass : FILE_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationFile, ntdll, 'NtSetInformationFile');
- Result := TFNNtSetInformationFile(_NtSetInformationFile)(
- FileHandle, IoStatusBlock, FileInformation, FileInformationLength, FileInformationClass
- );
- end;
- // Dynamic version of NtSetInformationJobObject
- function NtSetInformationJobObject(
- JobHandle : HANDLE;
- JobInformationClass : JOBOBJECTINFOCLASS;
- JobInformation : PVOID;
- JobInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationJobObject, ntdll, 'NtSetInformationJobObject');
- Result := TFNNtSetInformationJobObject(_NtSetInformationJobObject)(
- JobHandle, JobInformationClass, JobInformation, JobInformationLength
- );
- end;
- // Dynamic version of NtSetInformationJobObject
- function ZwSetInformationJobObject(
- JobHandle : HANDLE;
- JobInformationClass : JOBOBJECTINFOCLASS;
- JobInformation : PVOID;
- JobInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationJobObject, ntdll, 'NtSetInformationJobObject');
- Result := TFNNtSetInformationJobObject(_NtSetInformationJobObject)(
- JobHandle, JobInformationClass, JobInformation, JobInformationLength
- );
- end;
- // Dynamic version of NtSetInformationKey
- function NtSetInformationKey(
- KeyHandle : HANDLE;
- KeyInformationClass : KEY_SET_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationKey, ntdll, 'NtSetInformationKey');
- Result := TFNNtSetInformationKey(_NtSetInformationKey)(
- KeyHandle, KeyInformationClass, KeyInformation, KeyInformationLength
- );
- end;
- // Dynamic version of NtSetInformationKey
- function ZwSetInformationKey(
- KeyHandle : HANDLE;
- KeyInformationClass : KEY_SET_INFORMATION_CLASS;
- KeyInformation : PVOID;
- KeyInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationKey, ntdll, 'NtSetInformationKey');
- Result := TFNNtSetInformationKey(_NtSetInformationKey)(
- KeyHandle, KeyInformationClass, KeyInformation, KeyInformationLength
- );
- end;
- // Dynamic version of NtSetInformationObject
- function NtSetInformationObject(
- ObjectHandle : HANDLE;
- ObjectInformationClass : OBJECT_INFORMATION_CLASS;
- ObjectInformation : PVOID;
- ObjectInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationObject, ntdll, 'NtSetInformationObject');
- Result := TFNNtSetInformationObject(_NtSetInformationObject)(
- ObjectHandle, ObjectInformationClass, ObjectInformation, ObjectInformationLength
- );
- end;
- // Dynamic version of NtSetInformationObject
- function ZwSetInformationObject(
- ObjectHandle : HANDLE;
- ObjectInformationClass : OBJECT_INFORMATION_CLASS;
- ObjectInformation : PVOID;
- ObjectInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationObject, ntdll, 'NtSetInformationObject');
- Result := TFNNtSetInformationObject(_NtSetInformationObject)(
- ObjectHandle, ObjectInformationClass, ObjectInformation, ObjectInformationLength
- );
- end;
- // Dynamic version of NtSetInformationProcess
- function NtSetInformationProcess(
- ProcessHandle : HANDLE;
- ProcessInformationClass : PROCESSINFOCLASS;
- ProcessInformation : PVOID;
- ProcessInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationProcess, ntdll, 'NtSetInformationProcess');
- Result := TFNNtSetInformationProcess(_NtSetInformationProcess)(
- ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength
- );
- end;
- // Dynamic version of NtSetInformationProcess
- function ZwSetInformationProcess(
- ProcessHandle : HANDLE;
- ProcessInformationClass : PROCESSINFOCLASS;
- ProcessInformation : PVOID;
- ProcessInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationProcess, ntdll, 'NtSetInformationProcess');
- Result := TFNNtSetInformationProcess(_NtSetInformationProcess)(
- ProcessHandle, ProcessInformationClass, ProcessInformation, ProcessInformationLength
- );
- end;
- // Dynamic version of NtSetInformationThread
- function NtSetInformationThread(
- ThreadHandle : HANDLE;
- ThreadInformationClass : THREADINFOCLASS;
- ThreadInformation : PVOID;
- ThreadInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationThread, ntdll, 'NtSetInformationThread');
- Result := TFNNtSetInformationThread(_NtSetInformationThread)(
- ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength
- );
- end;
- // Dynamic version of NtSetInformationThread
- function ZwSetInformationThread(
- ThreadHandle : HANDLE;
- ThreadInformationClass : THREADINFOCLASS;
- ThreadInformation : PVOID;
- ThreadInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationThread, ntdll, 'NtSetInformationThread');
- Result := TFNNtSetInformationThread(_NtSetInformationThread)(
- ThreadHandle, ThreadInformationClass, ThreadInformation, ThreadInformationLength
- );
- end;
- // Dynamic version of NtSetInformationToken
- function NtSetInformationToken(
- TokenHandle : HANDLE;
- TokenInformationClass : TOKEN_INFORMATION_CLASS;
- TokenInformation : PVOID;
- TokenInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationToken, ntdll, 'NtSetInformationToken');
- Result := TFNNtSetInformationToken(_NtSetInformationToken)(
- TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength
- );
- end;
- // Dynamic version of NtSetInformationToken
- function ZwSetInformationToken(
- TokenHandle : HANDLE;
- TokenInformationClass : TOKEN_INFORMATION_CLASS;
- TokenInformation : PVOID;
- TokenInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetInformationToken, ntdll, 'NtSetInformationToken');
- Result := TFNNtSetInformationToken(_NtSetInformationToken)(
- TokenHandle, TokenInformationClass, TokenInformation, TokenInformationLength
- );
- end;
- // Dynamic version of NtSetIntervalProfile
- function NtSetIntervalProfile(
- Interval : ULONG;
- Source : KPROFILE_SOURCE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetIntervalProfile, ntdll, 'NtSetIntervalProfile');
- Result := TFNNtSetIntervalProfile(_NtSetIntervalProfile)(
- Interval, Source
- );
- end;
- // Dynamic version of NtSetIntervalProfile
- function ZwSetIntervalProfile(
- Interval : ULONG;
- Source : KPROFILE_SOURCE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetIntervalProfile, ntdll, 'NtSetIntervalProfile');
- Result := TFNNtSetIntervalProfile(_NtSetIntervalProfile)(
- Interval, Source
- );
- end;
- // Dynamic version of NtSetIoCompletion
- function NtSetIoCompletion(
- IoCompletionHandle : HANDLE;
- CompletionKey : ULONG;
- CompletionValue : ULONG;
- Status : NTSTATUS;
- Information : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetIoCompletion, ntdll, 'NtSetIoCompletion');
- Result := TFNNtSetIoCompletion(_NtSetIoCompletion)(
- IoCompletionHandle, CompletionKey, CompletionValue, Status, Information
- );
- end;
- // Dynamic version of NtSetIoCompletion
- function ZwSetIoCompletion(
- IoCompletionHandle : HANDLE;
- CompletionKey : ULONG;
- CompletionValue : ULONG;
- Status : NTSTATUS;
- Information : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetIoCompletion, ntdll, 'NtSetIoCompletion');
- Result := TFNNtSetIoCompletion(_NtSetIoCompletion)(
- IoCompletionHandle, CompletionKey, CompletionValue, Status, Information
- );
- end;
- // Dynamic version of NtSetLdtEntries
- function NtSetLdtEntries(
- Selector1 : ULONG;
- LdtEntry1 : LDT_ENTRY;
- Selector2 : ULONG;
- LdtEntry2 : LDT_ENTRY
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLdtEntries, ntdll, 'NtSetLdtEntries');
- Result := TFNNtSetLdtEntries(_NtSetLdtEntries)(
- Selector1, LdtEntry1, Selector2, LdtEntry2
- );
- end;
- // Dynamic version of NtSetLdtEntries
- function ZwSetLdtEntries(
- Selector1 : ULONG;
- LdtEntry1 : LDT_ENTRY;
- Selector2 : ULONG;
- LdtEntry2 : LDT_ENTRY
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLdtEntries, ntdll, 'NtSetLdtEntries');
- Result := TFNNtSetLdtEntries(_NtSetLdtEntries)(
- Selector1, LdtEntry1, Selector2, LdtEntry2
- );
- end;
- // Dynamic version of NtSetLowEventPair
- function NtSetLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLowEventPair, ntdll, 'NtSetLowEventPair');
- Result := TFNNtSetLowEventPair(_NtSetLowEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetLowEventPair
- function ZwSetLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLowEventPair, ntdll, 'NtSetLowEventPair');
- Result := TFNNtSetLowEventPair(_NtSetLowEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetLowWaitHighEventPair
- function NtSetLowWaitHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLowWaitHighEventPair, ntdll, 'NtSetLowWaitHighEventPair');
- Result := TFNNtSetLowWaitHighEventPair(_NtSetLowWaitHighEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetLowWaitHighEventPair
- function ZwSetLowWaitHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLowWaitHighEventPair, ntdll, 'NtSetLowWaitHighEventPair');
- Result := TFNNtSetLowWaitHighEventPair(_NtSetLowWaitHighEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtSetLowWaitHighThread
- function NtSetLowWaitHighThread(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLowWaitHighThread, ntdll, 'NtSetLowWaitHighThread');
- Result := TFNNtSetLowWaitHighThread(_NtSetLowWaitHighThread)();
- end;
- // Dynamic version of NtSetLowWaitHighThread
- function ZwSetLowWaitHighThread(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetLowWaitHighThread, ntdll, 'NtSetLowWaitHighThread');
- Result := TFNNtSetLowWaitHighThread(_NtSetLowWaitHighThread)();
- end;
- // Dynamic version of NtSetQuotaInformationFile
- function NtSetQuotaInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_USER_QUOTA_INFORMATION;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetQuotaInformationFile, ntdll, 'NtSetQuotaInformationFile');
- Result := TFNNtSetQuotaInformationFile(_NtSetQuotaInformationFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtSetQuotaInformationFile
- function ZwSetQuotaInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_USER_QUOTA_INFORMATION;
- BufferLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetQuotaInformationFile, ntdll, 'NtSetQuotaInformationFile');
- Result := TFNNtSetQuotaInformationFile(_NtSetQuotaInformationFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength
- );
- end;
- // Dynamic version of NtSetSecurityObject
- function NtSetSecurityObject(
- Handle : HANDLE;
- SecurityInformation : SECURITY_INFORMATION;
- SecurityDescriptor : PSECURITY_DESCRIPTOR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSecurityObject, ntdll, 'NtSetSecurityObject');
- Result := TFNNtSetSecurityObject(_NtSetSecurityObject)(
- Handle, SecurityInformation, SecurityDescriptor
- );
- end;
- // Dynamic version of NtSetSecurityObject
- function ZwSetSecurityObject(
- Handle : HANDLE;
- SecurityInformation : SECURITY_INFORMATION;
- SecurityDescriptor : PSECURITY_DESCRIPTOR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSecurityObject, ntdll, 'NtSetSecurityObject');
- Result := TFNNtSetSecurityObject(_NtSetSecurityObject)(
- Handle, SecurityInformation, SecurityDescriptor
- );
- end;
- // Dynamic version of NtSetSystemEnvironmentValue
- function NtSetSystemEnvironmentValue(
- Name : PUNICODE_STRING;
- Value : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemEnvironmentValue, ntdll, 'NtSetSystemEnvironmentValue');
- Result := TFNNtSetSystemEnvironmentValue(_NtSetSystemEnvironmentValue)(
- Name, Value
- );
- end;
- // Dynamic version of NtSetSystemEnvironmentValue
- function ZwSetSystemEnvironmentValue(
- Name : PUNICODE_STRING;
- Value : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemEnvironmentValue, ntdll, 'NtSetSystemEnvironmentValue');
- Result := TFNNtSetSystemEnvironmentValue(_NtSetSystemEnvironmentValue)(
- Name, Value
- );
- end;
- // Dynamic version of NtSetSystemInformation
- function NtSetSystemInformation(
- SystemInformationClass : SYSTEM_INFORMATION_CLASS;
- SystemInformation : PVOID;
- SystemInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemInformation, ntdll, 'NtSetSystemInformation');
- Result := TFNNtSetSystemInformation(_NtSetSystemInformation)(
- SystemInformationClass, SystemInformation, SystemInformationLength
- );
- end;
- // Dynamic version of NtSetSystemInformation
- function ZwSetSystemInformation(
- SystemInformationClass : SYSTEM_INFORMATION_CLASS;
- SystemInformation : PVOID;
- SystemInformationLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemInformation, ntdll, 'NtSetSystemInformation');
- Result := TFNNtSetSystemInformation(_NtSetSystemInformation)(
- SystemInformationClass, SystemInformation, SystemInformationLength
- );
- end;
- // Dynamic version of NtSetSystemPowerState
- function NtSetSystemPowerState(
- SystemAction : POWER_ACTION;
- MinSystemState : SYSTEM_POWER_STATE;
- Flags : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemPowerState, ntdll, 'NtSetSystemPowerState');
- Result := TFNNtSetSystemPowerState(_NtSetSystemPowerState)(
- SystemAction, MinSystemState, Flags
- );
- end;
- // Dynamic version of NtSetSystemPowerState
- function ZwSetSystemPowerState(
- SystemAction : POWER_ACTION;
- MinSystemState : SYSTEM_POWER_STATE;
- Flags : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemPowerState, ntdll, 'NtSetSystemPowerState');
- Result := TFNNtSetSystemPowerState(_NtSetSystemPowerState)(
- SystemAction, MinSystemState, Flags
- );
- end;
- // Dynamic version of NtSetSystemTime
- function NtSetSystemTime(
- NewTime : PLARGE_INTEGER;
- OldTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemTime, ntdll, 'NtSetSystemTime');
- Result := TFNNtSetSystemTime(_NtSetSystemTime)(
- NewTime, OldTime
- );
- end;
- // Dynamic version of NtSetSystemTime
- function ZwSetSystemTime(
- NewTime : PLARGE_INTEGER;
- OldTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetSystemTime, ntdll, 'NtSetSystemTime');
- Result := TFNNtSetSystemTime(_NtSetSystemTime)(
- NewTime, OldTime
- );
- end;
- // Dynamic version of NtSetThreadExecutionState
- function NtSetThreadExecutionState(
- ExecutionState : EXECUTION_STATE;
- PreviousExecutionState : PEXECUTION_STATE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetThreadExecutionState, ntdll, 'NtSetThreadExecutionState');
- Result := TFNNtSetThreadExecutionState(_NtSetThreadExecutionState)(
- ExecutionState, PreviousExecutionState
- );
- end;
- // Dynamic version of NtSetThreadExecutionState
- function ZwSetThreadExecutionState(
- ExecutionState : EXECUTION_STATE;
- PreviousExecutionState : PEXECUTION_STATE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetThreadExecutionState, ntdll, 'NtSetThreadExecutionState');
- Result := TFNNtSetThreadExecutionState(_NtSetThreadExecutionState)(
- ExecutionState, PreviousExecutionState
- );
- end;
- // Dynamic version of NtSetTimer
- function NtSetTimer(
- TimerHandle : HANDLE;
- DueTime : PLARGE_INTEGER;
- TimerApcRoutine : PTIMER_APC_ROUTINE;
- TimerContext : PVOID;
- Resume : BOOLEAN;
- Period : LONG;
- PreviousState : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetTimer, ntdll, 'NtSetTimer');
- Result := TFNNtSetTimer(_NtSetTimer)(
- TimerHandle, DueTime, TimerApcRoutine, TimerContext, Resume, Period, PreviousState
- );
- end;
- // Dynamic version of NtSetTimer
- function ZwSetTimer(
- TimerHandle : HANDLE;
- DueTime : PLARGE_INTEGER;
- TimerApcRoutine : PTIMER_APC_ROUTINE;
- TimerContext : PVOID;
- Resume : BOOLEAN;
- Period : LONG;
- PreviousState : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetTimer, ntdll, 'NtSetTimer');
- Result := TFNNtSetTimer(_NtSetTimer)(
- TimerHandle, DueTime, TimerApcRoutine, TimerContext, Resume, Period, PreviousState
- );
- end;
- // Dynamic version of NtSetTimerResolution
- function NtSetTimerResolution(
- RequestedResolution : ULONG;
- Set_ : BOOLEAN;
- ActualResolution : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetTimerResolution, ntdll, 'NtSetTimerResolution');
- Result := TFNNtSetTimerResolution(_NtSetTimerResolution)(
- RequestedResolution, Set_, ActualResolution
- );
- end;
- // Dynamic version of NtSetTimerResolution
- function ZwSetTimerResolution(
- RequestedResolution : ULONG;
- Set_ : BOOLEAN;
- ActualResolution : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetTimerResolution, ntdll, 'NtSetTimerResolution');
- Result := TFNNtSetTimerResolution(_NtSetTimerResolution)(
- RequestedResolution, Set_, ActualResolution
- );
- end;
- // Dynamic version of NtSetUuidSeed
- function NtSetUuidSeed(
- UuidSeed : PUCHAR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetUuidSeed, ntdll, 'NtSetUuidSeed');
- Result := TFNNtSetUuidSeed(_NtSetUuidSeed)(
- UuidSeed
- );
- end;
- // Dynamic version of NtSetUuidSeed
- function ZwSetUuidSeed(
- UuidSeed : PUCHAR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetUuidSeed, ntdll, 'NtSetUuidSeed');
- Result := TFNNtSetUuidSeed(_NtSetUuidSeed)(
- UuidSeed
- );
- end;
- // Dynamic version of NtSetValueKey
- function NtSetValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING;
- TitleIndex : ULONG;
- Type_ : ULONG;
- Data : PVOID;
- DataSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetValueKey, ntdll, 'NtSetValueKey');
- Result := TFNNtSetValueKey(_NtSetValueKey)(
- KeyHandle, ValueName, TitleIndex, Type_, Data, DataSize
- );
- end;
- // Dynamic version of NtSetValueKey
- function ZwSetValueKey(
- KeyHandle : HANDLE;
- ValueName : PUNICODE_STRING;
- TitleIndex : ULONG;
- Type_ : ULONG;
- Data : PVOID;
- DataSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetValueKey, ntdll, 'NtSetValueKey');
- Result := TFNNtSetValueKey(_NtSetValueKey)(
- KeyHandle, ValueName, TitleIndex, Type_, Data, DataSize
- );
- end;
- // Dynamic version of NtSetVolumeInformationFile
- function NtSetVolumeInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- BufferLength : ULONG;
- VolumeInformationClass : FS_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetVolumeInformationFile, ntdll, 'NtSetVolumeInformationFile');
- Result := TFNNtSetVolumeInformationFile(_NtSetVolumeInformationFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength, VolumeInformationClass
- );
- end;
- // Dynamic version of NtSetVolumeInformationFile
- function ZwSetVolumeInformationFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- BufferLength : ULONG;
- VolumeInformationClass : FS_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSetVolumeInformationFile, ntdll, 'NtSetVolumeInformationFile');
- Result := TFNNtSetVolumeInformationFile(_NtSetVolumeInformationFile)(
- FileHandle, IoStatusBlock, Buffer, BufferLength, VolumeInformationClass
- );
- end;
- // Dynamic version of NtShutdownSystem
- function NtShutdownSystem(
- Action : SHUTDOWN_ACTION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtShutdownSystem, ntdll, 'NtShutdownSystem');
- Result := TFNNtShutdownSystem(_NtShutdownSystem)(
- Action
- );
- end;
- // Dynamic version of NtShutdownSystem
- function ZwShutdownSystem(
- Action : SHUTDOWN_ACTION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtShutdownSystem, ntdll, 'NtShutdownSystem');
- Result := TFNNtShutdownSystem(_NtShutdownSystem)(
- Action
- );
- end;
- // Dynamic version of NtSignalAndWaitForSingleObject
- function NtSignalAndWaitForSingleObject(
- HandleToSignal : HANDLE;
- HandleToWait : HANDLE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSignalAndWaitForSingleObject, ntdll, 'NtSignalAndWaitForSingleObject');
- Result := TFNNtSignalAndWaitForSingleObject(_NtSignalAndWaitForSingleObject)(
- HandleToSignal, HandleToWait, Alertable, Timeout
- );
- end;
- // Dynamic version of NtSignalAndWaitForSingleObject
- function ZwSignalAndWaitForSingleObject(
- HandleToSignal : HANDLE;
- HandleToWait : HANDLE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSignalAndWaitForSingleObject, ntdll, 'NtSignalAndWaitForSingleObject');
- Result := TFNNtSignalAndWaitForSingleObject(_NtSignalAndWaitForSingleObject)(
- HandleToSignal, HandleToWait, Alertable, Timeout
- );
- end;
- // Dynamic version of NtStartProfile
- function NtStartProfile(
- ProfileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtStartProfile, ntdll, 'NtStartProfile');
- Result := TFNNtStartProfile(_NtStartProfile)(
- ProfileHandle
- );
- end;
- // Dynamic version of NtStartProfile
- function ZwStartProfile(
- ProfileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtStartProfile, ntdll, 'NtStartProfile');
- Result := TFNNtStartProfile(_NtStartProfile)(
- ProfileHandle
- );
- end;
- // Dynamic version of NtStopProfile
- function NtStopProfile(
- ProfileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtStopProfile, ntdll, 'NtStopProfile');
- Result := TFNNtStopProfile(_NtStopProfile)(
- ProfileHandle
- );
- end;
- // Dynamic version of NtStopProfile
- function ZwStopProfile(
- ProfileHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtStopProfile, ntdll, 'NtStopProfile');
- Result := TFNNtStopProfile(_NtStopProfile)(
- ProfileHandle
- );
- end;
- // Dynamic version of NtSuspendProcess
- function NtSuspendProcess(
- hProcess : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSuspendProcess, ntdll, 'NtSuspendProcess');
- Result := TFNNtSuspendProcess(_NtSuspendProcess)(
- hProcess
- );
- end;
- // Dynamic version of NtSuspendProcess
- function ZwSuspendProcess(
- hProcess : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSuspendProcess, ntdll, 'NtSuspendProcess');
- Result := TFNNtSuspendProcess(_NtSuspendProcess)(
- hProcess
- );
- end;
- // Dynamic version of NtSuspendThread
- function NtSuspendThread(
- hThread : HANDLE;
- dwLastResumeCount : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSuspendThread, ntdll, 'NtSuspendThread');
- Result := TFNNtSuspendThread(_NtSuspendThread)(
- hThread, dwLastResumeCount
- );
- end;
- // Dynamic version of NtSuspendThread
- function ZwSuspendThread(
- hThread : HANDLE;
- dwLastResumeCount : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSuspendThread, ntdll, 'NtSuspendThread');
- Result := TFNNtSuspendThread(_NtSuspendThread)(
- hThread, dwLastResumeCount
- );
- end;
- // Dynamic version of NtSystemDebugControl
- function NtSystemDebugControl(
- ControlCode : DEBUG_CONTROL_CODE;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSystemDebugControl, ntdll, 'NtSystemDebugControl');
- Result := TFNNtSystemDebugControl(_NtSystemDebugControl)(
- ControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtSystemDebugControl
- function ZwSystemDebugControl(
- ControlCode : DEBUG_CONTROL_CODE;
- InputBuffer : PVOID;
- InputBufferLength : ULONG;
- OutputBuffer : PVOID;
- OutputBufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtSystemDebugControl, ntdll, 'NtSystemDebugControl');
- Result := TFNNtSystemDebugControl(_NtSystemDebugControl)(
- ControlCode, InputBuffer, InputBufferLength, OutputBuffer, OutputBufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtTerminateJobObject
- function NtTerminateJobObject(
- JobHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTerminateJobObject, ntdll, 'NtTerminateJobObject');
- Result := TFNNtTerminateJobObject(_NtTerminateJobObject)(
- JobHandle, ExitStatus
- );
- end;
- // Dynamic version of NtTerminateJobObject
- function ZwTerminateJobObject(
- JobHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTerminateJobObject, ntdll, 'NtTerminateJobObject');
- Result := TFNNtTerminateJobObject(_NtTerminateJobObject)(
- JobHandle, ExitStatus
- );
- end;
- // Dynamic version of NtTerminateProcess
- function NtTerminateProcess(
- ProcessHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTerminateProcess, ntdll, 'NtTerminateProcess');
- Result := TFNNtTerminateProcess(_NtTerminateProcess)(
- ProcessHandle, ExitStatus
- );
- end;
- // Dynamic version of NtTerminateProcess
- function ZwTerminateProcess(
- ProcessHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTerminateProcess, ntdll, 'NtTerminateProcess');
- Result := TFNNtTerminateProcess(_NtTerminateProcess)(
- ProcessHandle, ExitStatus
- );
- end;
- // Dynamic version of NtTerminateThread
- function NtTerminateThread(
- ThreadHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTerminateThread, ntdll, 'NtTerminateThread');
- Result := TFNNtTerminateThread(_NtTerminateThread)(
- ThreadHandle, ExitStatus
- );
- end;
- // Dynamic version of NtTerminateThread
- function ZwTerminateThread(
- ThreadHandle : HANDLE;
- ExitStatus : NTSTATUS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTerminateThread, ntdll, 'NtTerminateThread');
- Result := TFNNtTerminateThread(_NtTerminateThread)(
- ThreadHandle, ExitStatus
- );
- end;
- // Dynamic version of NtTestAlert
- function NtTestAlert(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTestAlert, ntdll, 'NtTestAlert');
- Result := TFNNtTestAlert(_NtTestAlert)();
- end;
- // Dynamic version of NtTestAlert
- function ZwTestAlert(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtTestAlert, ntdll, 'NtTestAlert');
- Result := TFNNtTestAlert(_NtTestAlert)();
- end;
- // Dynamic version of NtUnloadDriver
- function NtUnloadDriver(
- DriverServiceName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnloadDriver, ntdll, 'NtUnloadDriver');
- Result := TFNNtUnloadDriver(_NtUnloadDriver)(
- DriverServiceName
- );
- end;
- // Dynamic version of NtUnloadDriver
- function ZwUnloadDriver(
- DriverServiceName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnloadDriver, ntdll, 'NtUnloadDriver');
- Result := TFNNtUnloadDriver(_NtUnloadDriver)(
- DriverServiceName
- );
- end;
- // Dynamic version of NtUnloadKey
- function NtUnloadKey(
- KeyObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnloadKey, ntdll, 'NtUnloadKey');
- Result := TFNNtUnloadKey(_NtUnloadKey)(
- KeyObjectAttributes
- );
- end;
- // Dynamic version of NtUnloadKey
- function ZwUnloadKey(
- KeyObjectAttributes : POBJECT_ATTRIBUTES
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnloadKey, ntdll, 'NtUnloadKey');
- Result := TFNNtUnloadKey(_NtUnloadKey)(
- KeyObjectAttributes
- );
- end;
- // Dynamic version of NtUnlockFile
- function NtUnlockFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- LockOffset : PULARGE_INTEGER;
- LockLength : PULARGE_INTEGER;
- Key : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnlockFile, ntdll, 'NtUnlockFile');
- Result := TFNNtUnlockFile(_NtUnlockFile)(
- FileHandle, IoStatusBlock, LockOffset, LockLength, Key
- );
- end;
- // Dynamic version of NtUnlockFile
- function ZwUnlockFile(
- FileHandle : HANDLE;
- IoStatusBlock : PIO_STATUS_BLOCK;
- LockOffset : PULARGE_INTEGER;
- LockLength : PULARGE_INTEGER;
- Key : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnlockFile, ntdll, 'NtUnlockFile');
- Result := TFNNtUnlockFile(_NtUnlockFile)(
- FileHandle, IoStatusBlock, LockOffset, LockLength, Key
- );
- end;
- // Dynamic version of NtUnlockVirtualMemory
- function NtUnlockVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- LockSize : PULONG;
- LockType : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnlockVirtualMemory, ntdll, 'NtUnlockVirtualMemory');
- Result := TFNNtUnlockVirtualMemory(_NtUnlockVirtualMemory)(
- ProcessHandle, BaseAddress, LockSize, LockType
- );
- end;
- // Dynamic version of NtUnlockVirtualMemory
- function ZwUnlockVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PPVOID;
- LockSize : PULONG;
- LockType : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnlockVirtualMemory, ntdll, 'NtUnlockVirtualMemory');
- Result := TFNNtUnlockVirtualMemory(_NtUnlockVirtualMemory)(
- ProcessHandle, BaseAddress, LockSize, LockType
- );
- end;
- // Dynamic version of NtUnmapViewOfSection
- function NtUnmapViewOfSection(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnmapViewOfSection, ntdll, 'NtUnmapViewOfSection');
- Result := TFNNtUnmapViewOfSection(_NtUnmapViewOfSection)(
- ProcessHandle, BaseAddress
- );
- end;
- // Dynamic version of NtUnmapViewOfSection
- function ZwUnmapViewOfSection(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtUnmapViewOfSection, ntdll, 'NtUnmapViewOfSection');
- Result := TFNNtUnmapViewOfSection(_NtUnmapViewOfSection)(
- ProcessHandle, BaseAddress
- );
- end;
- // Dynamic version of NtVdmControl
- function NtVdmControl(
- ControlCode : ULONG;
- ControlData : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtVdmControl, ntdll, 'NtVdmControl');
- Result := TFNNtVdmControl(_NtVdmControl)(
- ControlCode, ControlData
- );
- end;
- // Dynamic version of NtVdmControl
- function ZwVdmControl(
- ControlCode : ULONG;
- ControlData : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtVdmControl, ntdll, 'NtVdmControl');
- Result := TFNNtVdmControl(_NtVdmControl)(
- ControlCode, ControlData
- );
- end;
- // Dynamic version of NtW32Call
- function NtW32Call(
- RoutineIndex : ULONG;
- Argument : PVOID;
- ArgumentLength : ULONG;
- Result_ : PPVOID;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtW32Call, ntdll, 'NtW32Call');
- Result := TFNNtW32Call(_NtW32Call)(
- RoutineIndex, Argument, ArgumentLength, Result_, ResultLength
- );
- end;
- // Dynamic version of NtW32Call
- function ZwW32Call(
- RoutineIndex : ULONG;
- Argument : PVOID;
- ArgumentLength : ULONG;
- Result_ : PPVOID;
- ResultLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtW32Call, ntdll, 'NtW32Call');
- Result := TFNNtW32Call(_NtW32Call)(
- RoutineIndex, Argument, ArgumentLength, Result_, ResultLength
- );
- end;
- // Dynamic version of NtWaitForMultipleObjects
- function NtWaitForMultipleObjects(
- HandleCount : ULONG;
- Handles : PHANDLE;
- WaitType : WAIT_TYPE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitForMultipleObjects, ntdll, 'NtWaitForMultipleObjects');
- Result := TFNNtWaitForMultipleObjects(_NtWaitForMultipleObjects)(
- HandleCount, Handles, WaitType, Alertable, Timeout
- );
- end;
- // Dynamic version of NtWaitForMultipleObjects
- function ZwWaitForMultipleObjects(
- HandleCount : ULONG;
- Handles : PHANDLE;
- WaitType : WAIT_TYPE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitForMultipleObjects, ntdll, 'NtWaitForMultipleObjects');
- Result := TFNNtWaitForMultipleObjects(_NtWaitForMultipleObjects)(
- HandleCount, Handles, WaitType, Alertable, Timeout
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of NtWaitForSingleObject
- function NtWaitForSingleObject(
- Handle : HANDLE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitForSingleObject, ntdll, 'NtWaitForSingleObject');
- Result := TFNNtWaitForSingleObject(_NtWaitForSingleObject)(
- Handle, Alertable, Timeout
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of NtWaitForSingleObject
- function ZwWaitForSingleObject(
- Handle : HANDLE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitForSingleObject, ntdll, 'NtWaitForSingleObject');
- Result := TFNNtWaitForSingleObject(_NtWaitForSingleObject)(
- Handle, Alertable, Timeout
- );
- end;
- // Dynamic version of NtWaitHighEventPair
- function NtWaitHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitHighEventPair, ntdll, 'NtWaitHighEventPair');
- Result := TFNNtWaitHighEventPair(_NtWaitHighEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtWaitHighEventPair
- function ZwWaitHighEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitHighEventPair, ntdll, 'NtWaitHighEventPair');
- Result := TFNNtWaitHighEventPair(_NtWaitHighEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtWaitLowEventPair
- function NtWaitLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitLowEventPair, ntdll, 'NtWaitLowEventPair');
- Result := TFNNtWaitLowEventPair(_NtWaitLowEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtWaitLowEventPair
- function ZwWaitLowEventPair(
- EventPairHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWaitLowEventPair, ntdll, 'NtWaitLowEventPair');
- Result := TFNNtWaitLowEventPair(_NtWaitLowEventPair)(
- EventPairHandle
- );
- end;
- // Dynamic version of NtWriteFile
- function NtWriteFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteFile, ntdll, 'NtWriteFile');
- Result := TFNNtWriteFile(_NtWriteFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtWriteFile
- function ZwWriteFile(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PVOID;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteFile, ntdll, 'NtWriteFile');
- Result := TFNNtWriteFile(_NtWriteFile)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtWriteFileGather
- function NtWriteFileGather(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_SEGMENT_ELEMENT;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteFileGather, ntdll, 'NtWriteFileGather');
- Result := TFNNtWriteFileGather(_NtWriteFileGather)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtWriteFileGather
- function ZwWriteFileGather(
- FileHandle : HANDLE;
- Event : HANDLE;
- ApcRoutine : PIO_APC_ROUTINE;
- ApcContext : PVOID;
- IoStatusBlock : PIO_STATUS_BLOCK;
- Buffer : PFILE_SEGMENT_ELEMENT;
- Length : ULONG;
- ByteOffset : PLARGE_INTEGER;
- Key : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteFileGather, ntdll, 'NtWriteFileGather');
- Result := TFNNtWriteFileGather(_NtWriteFileGather)(
- FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, Length, ByteOffset, Key
- );
- end;
- // Dynamic version of NtWriteRequestData
- function NtWriteRequestData(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE;
- Index : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteRequestData, ntdll, 'NtWriteRequestData');
- Result := TFNNtWriteRequestData(_NtWriteRequestData)(
- PortHandle, Message, Index, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtWriteRequestData
- function ZwWriteRequestData(
- PortHandle : HANDLE;
- Message : PPORT_MESSAGE;
- Index : ULONG;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteRequestData, ntdll, 'NtWriteRequestData');
- Result := TFNNtWriteRequestData(_NtWriteRequestData)(
- PortHandle, Message, Index, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtWriteVirtualMemory
- function NtWriteVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteVirtualMemory, ntdll, 'NtWriteVirtualMemory');
- Result := TFNNtWriteVirtualMemory(_NtWriteVirtualMemory)(
- ProcessHandle, BaseAddress, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtWriteVirtualMemory
- function ZwWriteVirtualMemory(
- ProcessHandle : HANDLE;
- BaseAddress : PVOID;
- Buffer : PVOID;
- BufferLength : ULONG;
- ReturnLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtWriteVirtualMemory, ntdll, 'NtWriteVirtualMemory');
- Result := TFNNtWriteVirtualMemory(_NtWriteVirtualMemory)(
- ProcessHandle, BaseAddress, Buffer, BufferLength, ReturnLength
- );
- end;
- // Dynamic version of NtYieldExecution
- function NtYieldExecution(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtYieldExecution, ntdll, 'NtYieldExecution');
- Result := TFNNtYieldExecution(_NtYieldExecution)();
- end;
- // Dynamic version of NtYieldExecution
- function ZwYieldExecution(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtYieldExecution, ntdll, 'NtYieldExecution');
- Result := TFNNtYieldExecution(_NtYieldExecution)();
- end;
- // Dynamic version of RtlAbsoluteToSelfRelativeSD
- function RtlAbsoluteToSelfRelativeSD(
- pAbsoluteSD : PSECURITY_DESCRIPTOR;
- pSelfRelativeSD : PSECURITY_DESCRIPTOR;
- lpdwBufferLength : LPDWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAbsoluteToSelfRelativeSD, ntdll, 'RtlAbsoluteToSelfRelativeSD');
- Result := TFNRtlAbsoluteToSelfRelativeSD(_RtlAbsoluteToSelfRelativeSD)(
- pAbsoluteSD, pSelfRelativeSD, lpdwBufferLength
- );
- end;
- // Dynamic version of RtlAcquirePebLock
- procedure RtlAcquirePebLock(); stdcall;
- begin
- GetProcedureAddress(_RtlAcquirePebLock, ntdll, 'RtlAcquirePebLock');
- TFNRtlAcquirePebLock(_RtlAcquirePebLock)();
- end;
- // Dynamic version of RtlAddAccessAllowedAce
- function RtlAddAccessAllowedAce(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddAccessAllowedAce, ntdll, 'RtlAddAccessAllowedAce');
- Result := TFNRtlAddAccessAllowedAce(_RtlAddAccessAllowedAce)(
- pAcl, dwAceRevision, AccessMask, pSid
- );
- end;
- // Dynamic version of RtlAddAccessAllowedAceEx
- function RtlAddAccessAllowedAceEx(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AceFlags : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddAccessAllowedAceEx, ntdll, 'RtlAddAccessAllowedAceEx');
- Result := TFNRtlAddAccessAllowedAceEx(_RtlAddAccessAllowedAceEx)(
- pAcl, dwAceRevision, AceFlags, AccessMask, pSid
- );
- end;
- // Dynamic version of RtlAddAccessDeniedAce
- function RtlAddAccessDeniedAce(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddAccessDeniedAce, ntdll, 'RtlAddAccessDeniedAce');
- Result := TFNRtlAddAccessDeniedAce(_RtlAddAccessDeniedAce)(
- pAcl, dwAceRevision, AccessMask, pSid
- );
- end;
- // Dynamic version of RtlAddAccessDeniedAceEx
- function RtlAddAccessDeniedAceEx(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AceFlags : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddAccessDeniedAceEx, ntdll, 'RtlAddAccessDeniedAceEx');
- Result := TFNRtlAddAccessDeniedAceEx(_RtlAddAccessDeniedAceEx)(
- pAcl, dwAceRevision, AceFlags, AccessMask, pSid
- );
- end;
- // Dynamic version of RtlAddAce
- function RtlAddAce(
- pAcl : PACL;
- dwAceRevision : DWORD;
- dwStartingAceIndex : DWORD;
- pAceList : PVOID;
- nAceListLength : DWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddAce, ntdll, 'RtlAddAce');
- Result := TFNRtlAddAce(_RtlAddAce)(
- pAcl, dwAceRevision, dwStartingAceIndex, pAceList, nAceListLength
- );
- end;
- // Dynamic version of RtlAddAuditAccessAce
- function RtlAddAuditAccessAce(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID;
- bAuditSuccess : BOOLEAN;
- bAuditFailure : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddAuditAccessAce, ntdll, 'RtlAddAuditAccessAce');
- Result := TFNRtlAddAuditAccessAce(_RtlAddAuditAccessAce)(
- pAcl, dwAceRevision, AccessMask, pSid, bAuditSuccess, bAuditFailure
- );
- end;
- // Dynamic version of RtlAddAuditAccessAceEx
- function RtlAddAuditAccessAceEx(
- pAcl : PACL;
- dwAceRevision : DWORD;
- AceFlags : DWORD;
- AccessMask : ACCESS_MASK;
- pSid : PSID;
- bAuditSuccess : BOOLEAN;
- bAuditFailure : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddAuditAccessAceEx, ntdll, 'RtlAddAuditAccessAceEx');
- Result := TFNRtlAddAuditAccessAceEx(_RtlAddAuditAccessAceEx)(
- pAcl, dwAceRevision, AceFlags, AccessMask, pSid, bAuditSuccess, bAuditFailure
- );
- end;
- // Dynamic version of RtlAddRange
- function RtlAddRange(
- RangeList : PRTL_RANGE_LIST;
- Start : ULONGLONG;
- End_ : ULONGLONG;
- Attributes : UCHAR;
- Flags : ULONG;
- UserData : PVOID;
- Owner : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAddRange, ntdll, 'RtlAddRange');
- Result := TFNRtlAddRange(_RtlAddRange)(
- RangeList, Start, End_, Attributes, Flags, UserData, Owner
- );
- end;
- // Dynamic version of RtlAddVectoredExceptionHandler
- function RtlAddVectoredExceptionHandler(
- FirstHandler : ULONG;
- VectoredHandler : PVECTORED_EXCEPTION_HANDLER
- ): PVOID; stdcall;
- begin
- GetProcedureAddress(_RtlAddVectoredExceptionHandler, ntdll, 'RtlAddVectoredExceptionHandler');
- Result := TFNRtlAddVectoredExceptionHandler(_RtlAddVectoredExceptionHandler)(
- FirstHandler, VectoredHandler
- );
- end;
- // Dynamic version of RtlAdjustPrivilege
- function RtlAdjustPrivilege(
- Privilege : ULONG;
- Enable : BOOLEAN;
- CurrentThread : BOOLEAN;
- Enabled : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAdjustPrivilege, ntdll, 'RtlAdjustPrivilege');
- Result := TFNRtlAdjustPrivilege(_RtlAdjustPrivilege)(
- Privilege, Enable, CurrentThread, Enabled
- );
- end;
- // Dynamic version of RtlAllocateAndInitializeSid
- function RtlAllocateAndInitializeSid(
- pIdentifierAuthority : PSID_IDENTIFIER_AUTHORITY;
- SubAuthorityCount : BYTE;
- nSubAuthority0 : DWORD;
- nSubAuthority1 : DWORD;
- nSubAuthority2 : DWORD;
- nSubAuthority3 : DWORD;
- nSubAuthority4 : DWORD;
- nSubAuthority5 : DWORD;
- nSubAuthority6 : DWORD;
- nSubAuthority7 : DWORD;
- var pSid : PSID
- ): BOOL; stdcall;
- begin
- GetProcedureAddress(_RtlAllocateAndInitializeSid, ntdll, 'RtlAllocateAndInitializeSid');
- Result := TFNRtlAllocateAndInitializeSid(_RtlAllocateAndInitializeSid)(
- pIdentifierAuthority, SubAuthorityCount, nSubAuthority0, nSubAuthority1, nSubAuthority2, nSubAuthority3, nSubAuthority4, nSubAuthority5, nSubAuthority6, nSubAuthority7, pSid
- );
- end;
- // Dynamic version of RtlAllocateHeap
- function RtlAllocateHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- Size : ULONG
- ): PVOID; stdcall;
- begin
- GetProcedureAddress(_RtlAllocateHeap, ntdll, 'RtlAllocateHeap');
- Result := TFNRtlAllocateHeap(_RtlAllocateHeap)(
- hHeap, dwFlags, Size
- );
- end;
- // Dynamic version of RtlAnsiCharToUnicodeChar
- function RtlAnsiCharToUnicodeChar(
- AnsiChar : CHAR
- ): WCHAR; stdcall;
- begin
- GetProcedureAddress(_RtlAnsiCharToUnicodeChar, ntdll, 'RtlAnsiCharToUnicodeChar');
- Result := TFNRtlAnsiCharToUnicodeChar(_RtlAnsiCharToUnicodeChar)(
- AnsiChar
- );
- end;
- // Dynamic version of RtlAnsiStringToUnicodeSize
- function RtlAnsiStringToUnicodeSize(
- AnsiString : PANSI_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlAnsiStringToUnicodeSize, ntdll, 'RtlAnsiStringToUnicodeSize');
- Result := TFNRtlAnsiStringToUnicodeSize(_RtlAnsiStringToUnicodeSize)(
- AnsiString
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlAnsiStringToUnicodeString
- function RtlAnsiStringToUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PANSI_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAnsiStringToUnicodeString, ntdll, 'RtlAnsiStringToUnicodeString');
- Result := TFNRtlAnsiStringToUnicodeString(_RtlAnsiStringToUnicodeString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlAppendAsciizToString
- function RtlAppendAsciizToString(
- DestinationString : PSTRING;
- AppendThisString : LPCSTR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAppendAsciizToString, ntdll, 'RtlAppendAsciizToString');
- Result := TFNRtlAppendAsciizToString(_RtlAppendAsciizToString)(
- DestinationString, AppendThisString
- );
- end;
- // Dynamic version of RtlAppendStringToString
- function RtlAppendStringToString(
- DestinationString : PSTRING;
- AppendThisString : PSTRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAppendStringToString, ntdll, 'RtlAppendStringToString');
- Result := TFNRtlAppendStringToString(_RtlAppendStringToString)(
- DestinationString, AppendThisString
- );
- end;
- // Dynamic version of RtlAppendUnicodeStringToString
- function RtlAppendUnicodeStringToString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAppendUnicodeStringToString, ntdll, 'RtlAppendUnicodeStringToString');
- Result := TFNRtlAppendUnicodeStringToString(_RtlAppendUnicodeStringToString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlAppendUnicodeToString
- function RtlAppendUnicodeToString(
- Destination : PUNICODE_STRING;
- Source : LPCWSTR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlAppendUnicodeToString, ntdll, 'RtlAppendUnicodeToString');
- Result := TFNRtlAppendUnicodeToString(_RtlAppendUnicodeToString)(
- Destination, Source
- );
- end;
- // Dynamic version of RtlAreAllAccessesGranted
- function RtlAreAllAccessesGranted(
- GrantedAccess : ACCESS_MASK;
- WantedAccess : ACCESS_MASK
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlAreAllAccessesGranted, ntdll, 'RtlAreAllAccessesGranted');
- Result := TFNRtlAreAllAccessesGranted(_RtlAreAllAccessesGranted)(
- GrantedAccess, WantedAccess
- );
- end;
- // Dynamic version of RtlAreAnyAccessesGranted
- function RtlAreAnyAccessesGranted(
- GrantedAccess : ACCESS_MASK;
- WantedAccess : ACCESS_MASK
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlAreAnyAccessesGranted, ntdll, 'RtlAreAnyAccessesGranted');
- Result := TFNRtlAreAnyAccessesGranted(_RtlAreAnyAccessesGranted)(
- GrantedAccess, WantedAccess
- );
- end;
- // Dynamic version of RtlAreBitsClear
- function RtlAreBitsClear(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- Length : ULONG
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlAreBitsClear, ntdll, 'RtlAreBitsClear');
- Result := TFNRtlAreBitsClear(_RtlAreBitsClear)(
- BitMapHeader, StartingIndex, Length
- );
- end;
- // Dynamic version of RtlAreBitsSet
- function RtlAreBitsSet(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- Length : ULONG
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlAreBitsSet, ntdll, 'RtlAreBitsSet');
- Result := TFNRtlAreBitsSet(_RtlAreBitsSet)(
- BitMapHeader, StartingIndex, Length
- );
- end;
- // Dynamic version of RtlAssert
- procedure RtlAssert(
- FailedAssertion : PVOID;
- FileName : PVOID;
- LineNumber : ULONG;
- Message : PCHAR
- ); stdcall;
- begin
- GetProcedureAddress(_RtlAssert, ntdll, 'RtlAssert');
- TFNRtlAssert(_RtlAssert)(
- FailedAssertion, FileName, LineNumber, Message
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlCaptureContext
- procedure RtlCaptureContext(
- ContextRecord : PCONTEXT
- ); stdcall;
- begin
- GetProcedureAddress(_RtlCaptureContext, ntdll, 'RtlCaptureContext');
- TFNRtlCaptureContext(_RtlCaptureContext)(
- ContextRecord
- );
- end;
- // Dynamic version of RtlCharToInteger
- function RtlCharToInteger(
- Str : PCSZ;
- Base : ULONG;
- Value : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCharToInteger, ntdll, 'RtlCharToInteger');
- Result := TFNRtlCharToInteger(_RtlCharToInteger)(
- Str, Base, Value
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlCheckForOrphanedCriticalSections
- procedure RtlCheckForOrphanedCriticalSections(
- hThread : HANDLE
- ); stdcall;
- begin
- GetProcedureAddress(_RtlCheckForOrphanedCriticalSections, ntdll, 'RtlCheckForOrphanedCriticalSections');
- TFNRtlCheckForOrphanedCriticalSections(_RtlCheckForOrphanedCriticalSections)(
- hThread
- );
- end;
- // Dynamic version of RtlCheckRegistryKey
- function RtlCheckRegistryKey(
- RelativeTo : ULONG;
- Path : PWSTR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCheckRegistryKey, ntdll, 'RtlCheckRegistryKey');
- Result := TFNRtlCheckRegistryKey(_RtlCheckRegistryKey)(
- RelativeTo, Path
- );
- end;
- // Dynamic version of RtlClearAllBits
- procedure RtlClearAllBits(
- BitMapHeader : PRTL_BITMAP
- ); stdcall;
- begin
- GetProcedureAddress(_RtlClearAllBits, ntdll, 'RtlClearAllBits');
- TFNRtlClearAllBits(_RtlClearAllBits)(
- BitMapHeader
- );
- end;
- // Dynamic version of RtlClearBits
- procedure RtlClearBits(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- NumberToClear : ULONG
- ); stdcall;
- begin
- GetProcedureAddress(_RtlClearBits, ntdll, 'RtlClearBits');
- TFNRtlClearBits(_RtlClearBits)(
- BitMapHeader, StartingIndex, NumberToClear
- );
- end;
- // Dynamic version of RtlCompactHeap
- function RtlCompactHeap(
- hHeap : HANDLE;
- dwFlags : ULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlCompactHeap, ntdll, 'RtlCompactHeap');
- Result := TFNRtlCompactHeap(_RtlCompactHeap)(
- hHeap, dwFlags
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlCompareMemory
- function RtlCompareMemory(
- Source1 : PVOID;
- Source2 : PVOID;
- Length : SIZE_T
- ): SIZE_T; stdcall;
- begin
- GetProcedureAddress(_RtlCompareMemory, ntdll, 'RtlCompareMemory');
- Result := TFNRtlCompareMemory(_RtlCompareMemory)(
- Source1, Source2, Length
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlCompareMemoryUlong
- function RtlCompareMemoryUlong(
- Source : PVOID;
- Length : ULONG;
- Value : ULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlCompareMemoryUlong, ntdll, 'RtlCompareMemoryUlong');
- Result := TFNRtlCompareMemoryUlong(_RtlCompareMemoryUlong)(
- Source, Length, Value
- );
- end;
- // Dynamic version of RtlCompareString
- function RtlCompareString(
- String1 : PSTRING;
- String2 : PSTRING;
- CaseInsensitive : BOOLEAN
- ): LONG; stdcall;
- begin
- GetProcedureAddress(_RtlCompareString, ntdll, 'RtlCompareString');
- Result := TFNRtlCompareString(_RtlCompareString)(
- String1, String2, CaseInsensitive
- );
- end;
- // Dynamic version of RtlCompareUnicodeString
- function RtlCompareUnicodeString(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING;
- CaseInsensitive : BOOLEAN
- ): LONG; stdcall;
- begin
- GetProcedureAddress(_RtlCompareUnicodeString, ntdll, 'RtlCompareUnicodeString');
- Result := TFNRtlCompareUnicodeString(_RtlCompareUnicodeString)(
- String1, String2, CaseInsensitive
- );
- end;
- // Dynamic version of RtlConvertLongToLargeInteger
- function RtlConvertLongToLargeInteger(
- SignedInteger : LONG
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlConvertLongToLargeInteger, ntdll, 'RtlConvertLongToLargeInteger');
- Result := TFNRtlConvertLongToLargeInteger(_RtlConvertLongToLargeInteger)(
- SignedInteger
- );
- end;
- // Dynamic version of RtlConvertSidToUnicodeString
- function RtlConvertSidToUnicodeString(
- UnicodeString : PUNICODE_STRING;
- Sid : PSID;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlConvertSidToUnicodeString, ntdll, 'RtlConvertSidToUnicodeString');
- Result := TFNRtlConvertSidToUnicodeString(_RtlConvertSidToUnicodeString)(
- UnicodeString, Sid, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlConvertUlongToLargeInteger
- function RtlConvertUlongToLargeInteger(
- UnsignedInteger : ULONG
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlConvertUlongToLargeInteger, ntdll, 'RtlConvertUlongToLargeInteger');
- Result := TFNRtlConvertUlongToLargeInteger(_RtlConvertUlongToLargeInteger)(
- UnsignedInteger
- );
- end;
- // Dynamic version of RtlCopyLuid
- procedure RtlCopyLuid(
- Destination : PLUID;
- Source : PLUID
- ); stdcall;
- begin
- GetProcedureAddress(_RtlCopyLuid, ntdll, 'RtlCopyLuid');
- TFNRtlCopyLuid(_RtlCopyLuid)(
- Destination, Source
- );
- end;
- // Dynamic version of RtlCopyRangeList
- function RtlCopyRangeList(
- CopyRangeList : PRTL_RANGE_LIST;
- RangeList : PRTL_RANGE_LIST
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCopyRangeList, ntdll, 'RtlCopyRangeList');
- Result := TFNRtlCopyRangeList(_RtlCopyRangeList)(
- CopyRangeList, RangeList
- );
- end;
- // Dynamic version of RtlCopySecurityDescriptor
- function RtlCopySecurityDescriptor(
- Source : PSECURITY_DESCRIPTOR;
- var Destination : PSECURITY_DESCRIPTOR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCopySecurityDescriptor, ntdll, 'RtlCopySecurityDescriptor');
- Result := TFNRtlCopySecurityDescriptor(_RtlCopySecurityDescriptor)(
- Source, Destination
- );
- end;
- // Dynamic version of RtlCopySid
- function RtlCopySid(
- DestinationLength : ULONG;
- Destination : PSID;
- Source : PSID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCopySid, ntdll, 'RtlCopySid');
- Result := TFNRtlCopySid(_RtlCopySid)(
- DestinationLength, Destination, Source
- );
- end;
- // Dynamic version of RtlCopyString
- procedure RtlCopyString(
- DestinationString : PSTRING;
- SourceString : PSTRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlCopyString, ntdll, 'RtlCopyString');
- TFNRtlCopyString(_RtlCopyString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlCopyUnicodeString
- procedure RtlCopyUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlCopyUnicodeString, ntdll, 'RtlCopyUnicodeString');
- TFNRtlCopyUnicodeString(_RtlCopyUnicodeString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlCreateAcl
- function RtlCreateAcl(
- pAcl : PACL;
- nAclLength : DWORD;
- dwAclRevision : DWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCreateAcl, ntdll, 'RtlCreateAcl');
- Result := TFNRtlCreateAcl(_RtlCreateAcl)(
- pAcl, nAclLength, dwAclRevision
- );
- end;
- // Dynamic version of RtlCreateHeap
- function RtlCreateHeap(
- dwOptions : ULONG;
- Base : PVOID;
- dwMaximumSize : SIZE_T;
- dwInitialSize : SIZE_T;
- UnknownOptional1 : PVOID;
- UnknownOptional2 : PVOID
- ): HANDLE; stdcall;
- begin
- GetProcedureAddress(_RtlCreateHeap, ntdll, 'RtlCreateHeap');
- Result := TFNRtlCreateHeap(_RtlCreateHeap)(
- dwOptions, Base, dwMaximumSize, dwInitialSize, UnknownOptional1, UnknownOptional2
- );
- end;
- // Dynamic version of RtlCreateProcessParameters
- function RtlCreateProcessParameters(
- ProcessParameters : PPRTL_USER_PROCESS_PARAMETERS;
- ImageFile : PUNICODE_STRING;
- DllPath : PUNICODE_STRING;
- CurrentDirectory : PUNICODE_STRING;
- CommandLine : PUNICODE_STRING;
- CreationFlags : ULONG;
- WindowTitle : PUNICODE_STRING;
- Desktop : PUNICODE_STRING;
- Reserved : PUNICODE_STRING;
- Reserved2 : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCreateProcessParameters, ntdll, 'RtlCreateProcessParameters');
- Result := TFNRtlCreateProcessParameters(_RtlCreateProcessParameters)(
- ProcessParameters, ImageFile, DllPath, CurrentDirectory, CommandLine, CreationFlags, WindowTitle, Desktop, Reserved, Reserved2
- );
- end;
- // Dynamic version of RtlCreateQueryDebugBuffer
- function RtlCreateQueryDebugBuffer(
- Size : ULONG;
- EventPair : BOOLEAN
- ): PDEBUG_BUFFER; stdcall;
- begin
- GetProcedureAddress(_RtlCreateQueryDebugBuffer, ntdll, 'RtlCreateQueryDebugBuffer');
- Result := TFNRtlCreateQueryDebugBuffer(_RtlCreateQueryDebugBuffer)(
- Size, EventPair
- );
- end;
- // Dynamic version of RtlCreateRegistryKey
- function RtlCreateRegistryKey(
- RelativeTo : ULONG;
- Path : PWSTR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCreateRegistryKey, ntdll, 'RtlCreateRegistryKey');
- Result := TFNRtlCreateRegistryKey(_RtlCreateRegistryKey)(
- RelativeTo, Path
- );
- end;
- // Dynamic version of RtlCreateSecurityDescriptor
- function RtlCreateSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- Revision : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCreateSecurityDescriptor, ntdll, 'RtlCreateSecurityDescriptor');
- Result := TFNRtlCreateSecurityDescriptor(_RtlCreateSecurityDescriptor)(
- SecurityDescriptor, Revision
- );
- end;
- // Dynamic version of RtlCreateUnicodeString
- function RtlCreateUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PWSTR
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlCreateUnicodeString, ntdll, 'RtlCreateUnicodeString');
- Result := TFNRtlCreateUnicodeString(_RtlCreateUnicodeString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlCreateUnicodeStringFromAsciiz
- function RtlCreateUnicodeStringFromAsciiz(
- DestinationString : PUNICODE_STRING;
- SourceString : PCHAR
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlCreateUnicodeStringFromAsciiz, ntdll, 'RtlCreateUnicodeStringFromAsciiz');
- Result := TFNRtlCreateUnicodeStringFromAsciiz(_RtlCreateUnicodeStringFromAsciiz)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlCreateUserProcess
- function RtlCreateUserProcess(
- ImageFileName : PUNICODE_STRING;
- Attributes : ULONG;
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS;
- ProcessSecurityDescriptor : PSECURITY_DESCRIPTOR;
- ThreadSecurityDescriptor : PSECURITY_DESCRIPTOR;
- ParentProcess : HANDLE;
- InheritHandles : BOOLEAN;
- DebugPort : HANDLE;
- ExceptionPort : HANDLE;
- ProcessInfo : PRTL_PROCESS_INFORMATION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCreateUserProcess, ntdll, 'RtlCreateUserProcess');
- Result := TFNRtlCreateUserProcess(_RtlCreateUserProcess)(
- ImageFileName, Attributes, ProcessParameters, ProcessSecurityDescriptor, ThreadSecurityDescriptor, ParentProcess, InheritHandles, DebugPort, ExceptionPort, ProcessInfo
- );
- end;
- // Dynamic version of RtlCreateUserThread
- function RtlCreateUserThread(
- hProcess : HANDLE;
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- CreateSuspended : BOOLEAN;
- StackZeroBits : ULONG;
- StackReserve : ULONG;
- StackCommit : ULONG;
- lpStartAddress : PTHREAD_START_ROUTINE;
- lpParameter : PVOID;
- phThread : PHANDLE;
- ClientId : PCLIENT_ID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlCreateUserThread, ntdll, 'RtlCreateUserThread');
- Result := TFNRtlCreateUserThread(_RtlCreateUserThread)(
- hProcess, SecurityDescriptor, CreateSuspended, StackZeroBits, StackReserve, StackCommit, lpStartAddress, lpParameter, phThread, ClientId
- );
- end;
- // Dynamic version of RtlCutoverTimeToSystemTime
- function RtlCutoverTimeToSystemTime(
- TargetTimeFields : PTIME_FIELDS;
- Time : PLARGE_INTEGER;
- CurrentTime : PLARGE_INTEGER;
- bUnknown : BOOLEAN
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlCutoverTimeToSystemTime, ntdll, 'RtlCutoverTimeToSystemTime');
- Result := TFNRtlCutoverTimeToSystemTime(_RtlCutoverTimeToSystemTime)(
- TargetTimeFields, Time, CurrentTime, bUnknown
- );
- end;
- // Dynamic version of RtlDeNormalizeProcessParams
- function RtlDeNormalizeProcessParams(
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS
- ): PRTL_USER_PROCESS_PARAMETERS; stdcall;
- begin
- GetProcedureAddress(_RtlDeNormalizeProcessParams, ntdll, 'RtlDeNormalizeProcessParams');
- Result := TFNRtlDeNormalizeProcessParams(_RtlDeNormalizeProcessParams)(
- ProcessParameters
- );
- end;
- // Dynamic version of RtlDeleteAce
- function RtlDeleteAce(
- pAcl : PACL;
- dwAceIndex : DWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDeleteAce, ntdll, 'RtlDeleteAce');
- Result := TFNRtlDeleteAce(_RtlDeleteAce)(
- pAcl, dwAceIndex
- );
- end;
- // Dynamic version of RtlDeleteCriticalSection
- procedure RtlDeleteCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ); stdcall;
- begin
- GetProcedureAddress(_RtlDeleteCriticalSection, ntdll, 'RtlDeleteCriticalSection');
- TFNRtlDeleteCriticalSection(_RtlDeleteCriticalSection)(
- lpCriticalSection
- );
- end;
- // Dynamic version of RtlDeleteOwnersRanges
- function RtlDeleteOwnersRanges(
- RangeList : PRTL_RANGE_LIST;
- Owner : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDeleteOwnersRanges, ntdll, 'RtlDeleteOwnersRanges');
- Result := TFNRtlDeleteOwnersRanges(_RtlDeleteOwnersRanges)(
- RangeList, Owner
- );
- end;
- // Dynamic version of RtlDeleteRange
- function RtlDeleteRange(
- RangeList : PRTL_RANGE_LIST;
- Start : ULONGLONG;
- End_ : ULONGLONG;
- Owner : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDeleteRange, ntdll, 'RtlDeleteRange');
- Result := TFNRtlDeleteRange(_RtlDeleteRange)(
- RangeList, Start, End_, Owner
- );
- end;
- // Dynamic version of RtlDeleteRegistryValue
- function RtlDeleteRegistryValue(
- RelativeTo : ULONG;
- Path : LPCWSTR;
- ValueName : LPCWSTR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDeleteRegistryValue, ntdll, 'RtlDeleteRegistryValue');
- Result := TFNRtlDeleteRegistryValue(_RtlDeleteRegistryValue)(
- RelativeTo, Path, ValueName
- );
- end;
- // Dynamic version of RtlDestroyHeap
- function RtlDestroyHeap(
- HeapHandle : HANDLE
- ): HANDLE; stdcall;
- begin
- GetProcedureAddress(_RtlDestroyHeap, ntdll, 'RtlDestroyHeap');
- Result := TFNRtlDestroyHeap(_RtlDestroyHeap)(
- HeapHandle
- );
- end;
- // Dynamic version of RtlDestroyProcessParameters
- function RtlDestroyProcessParameters(
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDestroyProcessParameters, ntdll, 'RtlDestroyProcessParameters');
- Result := TFNRtlDestroyProcessParameters(_RtlDestroyProcessParameters)(
- ProcessParameters
- );
- end;
- // Dynamic version of RtlDestroyQueryDebugBuffer
- function RtlDestroyQueryDebugBuffer(
- DebugBuffer : PDEBUG_BUFFER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDestroyQueryDebugBuffer, ntdll, 'RtlDestroyQueryDebugBuffer');
- Result := TFNRtlDestroyQueryDebugBuffer(_RtlDestroyQueryDebugBuffer)(
- DebugBuffer
- );
- end;
- // Dynamic version of RtlDetermineDosPathNameType_U
- function RtlDetermineDosPathNameType_U(
- wcsPathNameType : PWSTR
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlDetermineDosPathNameType_U, ntdll, 'RtlDetermineDosPathNameType_U');
- Result := TFNRtlDetermineDosPathNameType_U(_RtlDetermineDosPathNameType_U)(
- wcsPathNameType
- );
- end;
- // Dynamic version of RtlDnsHostNameToComputerName
- function RtlDnsHostNameToComputerName(
- ComputerName : PUNICODE_STRING;
- DnsName : PUNICODE_STRING;
- AllocateComputerNameString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDnsHostNameToComputerName, ntdll, 'RtlDnsHostNameToComputerName');
- Result := TFNRtlDnsHostNameToComputerName(_RtlDnsHostNameToComputerName)(
- ComputerName, DnsName, AllocateComputerNameString
- );
- end;
- // Dynamic version of RtlDoesFileExists_U
- function RtlDoesFileExists_U(
- FileName : PWSTR
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlDoesFileExists_U, ntdll, 'RtlDoesFileExists_U');
- Result := TFNRtlDoesFileExists_U(_RtlDoesFileExists_U)(
- FileName
- );
- end;
- // Dynamic version of RtlDosPathNameToNtPathName_U
- function RtlDosPathNameToNtPathName_U(
- DosName : PWSTR;
- var NtName : UNICODE_STRING;
- DosFilePath : PPWSTR;
- NtFilePath : PUNICODE_STRING
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlDosPathNameToNtPathName_U, ntdll, 'RtlDosPathNameToNtPathName_U');
- Result := TFNRtlDosPathNameToNtPathName_U(_RtlDosPathNameToNtPathName_U)(
- DosName, NtName, DosFilePath, NtFilePath
- );
- end;
- // Dynamic version of RtlDosSearchPath_U
- function RtlDosSearchPath_U(
- SearchPath : PWSTR;
- Name : PWSTR;
- Ext : PWSTR;
- cbBuf : ULONG;
- Buffer : PWSTR;
- var Shortname : PWSTR
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlDosSearchPath_U, ntdll, 'RtlDosSearchPath_U');
- Result := TFNRtlDosSearchPath_U(_RtlDosSearchPath_U)(
- SearchPath, Name, Ext, cbBuf, Buffer, Shortname
- );
- end;
- // Dynamic version of RtlDowncaseUnicodeChar
- function RtlDowncaseUnicodeChar(
- Source : WCHAR
- ): WCHAR; stdcall;
- begin
- GetProcedureAddress(_RtlDowncaseUnicodeChar, ntdll, 'RtlDowncaseUnicodeChar');
- Result := TFNRtlDowncaseUnicodeChar(_RtlDowncaseUnicodeChar)(
- Source
- );
- end;
- // Dynamic version of RtlDowncaseUnicodeString
- function RtlDowncaseUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDowncaseUnicodeString, ntdll, 'RtlDowncaseUnicodeString');
- Result := TFNRtlDowncaseUnicodeString(_RtlDowncaseUnicodeString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlDuplicateUnicodeString
- function RtlDuplicateUnicodeString(
- AddTerminatingZero : ULONG;
- Source : PUNICODE_STRING;
- Destination : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlDuplicateUnicodeString, ntdll, 'RtlDuplicateUnicodeString');
- Result := TFNRtlDuplicateUnicodeString(_RtlDuplicateUnicodeString)(
- AddTerminatingZero, Source, Destination
- );
- end;
- // Dynamic version of RtlEnableEarlyCriticalSectionEventCreation
- procedure RtlEnableEarlyCriticalSectionEventCreation(); stdcall;
- begin
- GetProcedureAddress(_RtlEnableEarlyCriticalSectionEventCreation, ntdll, 'RtlEnableEarlyCriticalSectionEventCreation');
- TFNRtlEnableEarlyCriticalSectionEventCreation(_RtlEnableEarlyCriticalSectionEventCreation)();
- end;
- // Dynamic version of RtlEnlargedIntegerMultiply
- function RtlEnlargedIntegerMultiply(
- Multiplicand : LONG;
- Multiplier : LONG
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlEnlargedIntegerMultiply, ntdll, 'RtlEnlargedIntegerMultiply');
- Result := TFNRtlEnlargedIntegerMultiply(_RtlEnlargedIntegerMultiply)(
- Multiplicand, Multiplier
- );
- end;
- // Dynamic version of RtlEnlargedUnsignedDivide
- function RtlEnlargedUnsignedDivide(
- Dividend : ULARGE_INTEGER;
- Divisor : ULONG;
- Remainder : PULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlEnlargedUnsignedDivide, ntdll, 'RtlEnlargedUnsignedDivide');
- Result := TFNRtlEnlargedUnsignedDivide(_RtlEnlargedUnsignedDivide)(
- Dividend, Divisor, Remainder
- );
- end;
- // Dynamic version of RtlEnlargedUnsignedMultiply
- function RtlEnlargedUnsignedMultiply(
- Multiplicand : ULONG;
- Multiplier : ULONG
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlEnlargedUnsignedMultiply, ntdll, 'RtlEnlargedUnsignedMultiply');
- Result := TFNRtlEnlargedUnsignedMultiply(_RtlEnlargedUnsignedMultiply)(
- Multiplicand, Multiplier
- );
- end;
- // Dynamic version of RtlEnterCriticalSection
- procedure RtlEnterCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ); stdcall;
- begin
- GetProcedureAddress(_RtlEnterCriticalSection, ntdll, 'RtlEnterCriticalSection');
- TFNRtlEnterCriticalSection(_RtlEnterCriticalSection)(
- lpCriticalSection
- );
- end;
- // Dynamic version of RtlEqualComputerName
- function RtlEqualComputerName(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlEqualComputerName, ntdll, 'RtlEqualComputerName');
- Result := TFNRtlEqualComputerName(_RtlEqualComputerName)(
- String1, String2
- );
- end;
- // Dynamic version of RtlEqualDomainName
- function RtlEqualDomainName(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlEqualDomainName, ntdll, 'RtlEqualDomainName');
- Result := TFNRtlEqualDomainName(_RtlEqualDomainName)(
- String1, String2
- );
- end;
- // Dynamic version of RtlEqualLuid
- function RtlEqualLuid(
- Luid1 : PLUID;
- Luid2 : PLUID
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlEqualLuid, ntdll, 'RtlEqualLuid');
- Result := TFNRtlEqualLuid(_RtlEqualLuid)(
- Luid1, Luid2
- );
- end;
- // Dynamic version of RtlEqualPrefixSid
- function RtlEqualPrefixSid(
- pSid1 : PSID;
- pSid2 : PSID
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlEqualPrefixSid, ntdll, 'RtlEqualPrefixSid');
- Result := TFNRtlEqualPrefixSid(_RtlEqualPrefixSid)(
- pSid1, pSid2
- );
- end;
- // Dynamic version of RtlEqualSid
- function RtlEqualSid(
- pSid1 : PSID;
- pSid2 : PSID
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlEqualSid, ntdll, 'RtlEqualSid');
- Result := TFNRtlEqualSid(_RtlEqualSid)(
- pSid1, pSid2
- );
- end;
- // Dynamic version of RtlEqualString
- function RtlEqualString(
- String1 : PSTRING;
- String2 : PSTRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlEqualString, ntdll, 'RtlEqualString');
- Result := TFNRtlEqualString(_RtlEqualString)(
- String1, String2, CaseInsensitive
- );
- end;
- // Dynamic version of RtlEqualUnicodeString
- function RtlEqualUnicodeString(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlEqualUnicodeString, ntdll, 'RtlEqualUnicodeString');
- Result := TFNRtlEqualUnicodeString(_RtlEqualUnicodeString)(
- String1, String2, CaseInsensitive
- );
- end;
- // Dynamic version of RtlEraseUnicodeString
- procedure RtlEraseUnicodeString(
- Str : PUNICODE_STRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlEraseUnicodeString, ntdll, 'RtlEraseUnicodeString');
- TFNRtlEraseUnicodeString(_RtlEraseUnicodeString)(
- Str
- );
- end;
- // Dynamic version of RtlExpandEnvironmentStrings_U
- function RtlExpandEnvironmentStrings_U(
- Environment : PVOID;
- Source : PUNICODE_STRING;
- Destination : PUNICODE_STRING;
- ReturnedLength : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlExpandEnvironmentStrings_U, ntdll, 'RtlExpandEnvironmentStrings_U');
- Result := TFNRtlExpandEnvironmentStrings_U(_RtlExpandEnvironmentStrings_U)(
- Environment, Source, Destination, ReturnedLength
- );
- end;
- // Dynamic version of RtlExtendedIntegerMultiply
- function RtlExtendedIntegerMultiply(
- Multiplicand : LARGE_INTEGER;
- Multiplier : LONG
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlExtendedIntegerMultiply, ntdll, 'RtlExtendedIntegerMultiply');
- Result := TFNRtlExtendedIntegerMultiply(_RtlExtendedIntegerMultiply)(
- Multiplicand, Multiplier
- );
- end;
- // Dynamic version of RtlExtendedLargeIntegerDivide
- function RtlExtendedLargeIntegerDivide(
- Dividend : LARGE_INTEGER;
- Divisor : ULONG;
- Remainder : PULONG
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlExtendedLargeIntegerDivide, ntdll, 'RtlExtendedLargeIntegerDivide');
- Result := TFNRtlExtendedLargeIntegerDivide(_RtlExtendedLargeIntegerDivide)(
- Dividend, Divisor, Remainder
- );
- end;
- // Dynamic version of RtlExtendedMagicDivide
- function RtlExtendedMagicDivide(
- Dividend : LARGE_INTEGER;
- MagicDivisor : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlExtendedMagicDivide, ntdll, 'RtlExtendedMagicDivide');
- Result := TFNRtlExtendedMagicDivide(_RtlExtendedMagicDivide)(
- Dividend, MagicDivisor, ShiftCount
- );
- end;
- // Dynamic version of RtlFillMemory
- procedure RtlFillMemory(
- Destination : PVOID;
- Length : SIZE_T;
- Fill : UCHAR
- ); stdcall;
- begin
- GetProcedureAddress(_RtlFillMemory, ntdll, 'RtlFillMemory');
- TFNRtlFillMemory(_RtlFillMemory)(
- Destination, Length, Fill
- );
- end;
- // Dynamic version of RtlFillMemoryUlong
- procedure RtlFillMemoryUlong(
- Destination : PVOID;
- Length : ULONG;
- Fill : ULONG
- ); stdcall;
- begin
- GetProcedureAddress(_RtlFillMemoryUlong, ntdll, 'RtlFillMemoryUlong');
- TFNRtlFillMemoryUlong(_RtlFillMemoryUlong)(
- Destination, Length, Fill
- );
- end;
- // Dynamic version of RtlFindCharInUnicodeString
- function RtlFindCharInUnicodeString(
- dwFlags : ULONG;
- UnicodeString : PUNICODE_STRING;
- CharactersToFind : PUNICODE_STRING;
- Positions : PUSHORT
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlFindCharInUnicodeString, ntdll, 'RtlFindCharInUnicodeString');
- Result := TFNRtlFindCharInUnicodeString(_RtlFindCharInUnicodeString)(
- dwFlags, UnicodeString, CharactersToFind, Positions
- );
- end;
- // Dynamic version of RtlFindClearBits
- function RtlFindClearBits(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlFindClearBits, ntdll, 'RtlFindClearBits');
- Result := TFNRtlFindClearBits(_RtlFindClearBits)(
- BitMapHeader, NumberToFind, HintIndex
- );
- end;
- // Dynamic version of RtlFindClearBitsAndSet
- function RtlFindClearBitsAndSet(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlFindClearBitsAndSet, ntdll, 'RtlFindClearBitsAndSet');
- Result := TFNRtlFindClearBitsAndSet(_RtlFindClearBitsAndSet)(
- BitMapHeader, NumberToFind, HintIndex
- );
- end;
- // Dynamic version of RtlFindLastBackwardRunClear
- function RtlFindLastBackwardRunClear(
- BitMapHeader : PRTL_BITMAP;
- FromIndex : ULONG;
- StartingRunIndex : PULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlFindLastBackwardRunClear, ntdll, 'RtlFindLastBackwardRunClear');
- Result := TFNRtlFindLastBackwardRunClear(_RtlFindLastBackwardRunClear)(
- BitMapHeader, FromIndex, StartingRunIndex
- );
- end;
- // Dynamic version of RtlFindLeastSignificantBit
- function RtlFindLeastSignificantBit(
- Set_ : ULONGLONG
- ): CCHAR; stdcall;
- begin
- GetProcedureAddress(_RtlFindLeastSignificantBit, ntdll, 'RtlFindLeastSignificantBit');
- Result := TFNRtlFindLeastSignificantBit(_RtlFindLeastSignificantBit)(
- Set_
- );
- end;
- // Dynamic version of RtlFindLongestRunClear
- function RtlFindLongestRunClear(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : PULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlFindLongestRunClear, ntdll, 'RtlFindLongestRunClear');
- Result := TFNRtlFindLongestRunClear(_RtlFindLongestRunClear)(
- BitMapHeader, StartingIndex
- );
- end;
- // Dynamic version of RtlFindMostSignificantBit
- function RtlFindMostSignificantBit(
- Set_ : ULONGLONG
- ): CCHAR; stdcall;
- begin
- GetProcedureAddress(_RtlFindMostSignificantBit, ntdll, 'RtlFindMostSignificantBit');
- Result := TFNRtlFindMostSignificantBit(_RtlFindMostSignificantBit)(
- Set_
- );
- end;
- // Dynamic version of RtlFindNextForwardRunClear
- function RtlFindNextForwardRunClear(
- BitMapHeader : PRTL_BITMAP;
- FromIndex : ULONG;
- StartingRunIndex : PULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlFindNextForwardRunClear, ntdll, 'RtlFindNextForwardRunClear');
- Result := TFNRtlFindNextForwardRunClear(_RtlFindNextForwardRunClear)(
- BitMapHeader, FromIndex, StartingRunIndex
- );
- end;
- // Dynamic version of RtlFindRange
- function RtlFindRange(
- RangeList : PRTL_RANGE_LIST;
- Minimum : ULONGLONG;
- Maximum : ULONGLONG;
- Length : ULONG;
- Alignment : ULONG;
- Flags : ULONG;
- AttributeAvailableMask : UCHAR;
- Context : PVOID;
- Callback : PRTL_CONFLICT_RANGE_CALLBACK;
- Start : PULONGLONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlFindRange, ntdll, 'RtlFindRange');
- Result := TFNRtlFindRange(_RtlFindRange)(
- RangeList, Minimum, Maximum, Length, Alignment, Flags, AttributeAvailableMask, Context, Callback, Start
- );
- end;
- // Dynamic version of RtlFindSetBits
- function RtlFindSetBits(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlFindSetBits, ntdll, 'RtlFindSetBits');
- Result := TFNRtlFindSetBits(_RtlFindSetBits)(
- BitMapHeader, NumberToFind, HintIndex
- );
- end;
- // Dynamic version of RtlFindSetBitsAndClear
- function RtlFindSetBitsAndClear(
- BitMapHeader : PRTL_BITMAP;
- NumberToFind : ULONG;
- HintIndex : ULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlFindSetBitsAndClear, ntdll, 'RtlFindSetBitsAndClear');
- Result := TFNRtlFindSetBitsAndClear(_RtlFindSetBitsAndClear)(
- BitMapHeader, NumberToFind, HintIndex
- );
- end;
- // Dynamic version of RtlFirstFreeAce
- function RtlFirstFreeAce(
- pAcl : PACL;
- var pAce : PVOID
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlFirstFreeAce, ntdll, 'RtlFirstFreeAce');
- Result := TFNRtlFirstFreeAce(_RtlFirstFreeAce)(
- pAcl, pAce
- );
- end;
- // Dynamic version of RtlFormatCurrentUserKeyPath
- function RtlFormatCurrentUserKeyPath(
- CurrentUserKeyPath : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlFormatCurrentUserKeyPath, ntdll, 'RtlFormatCurrentUserKeyPath');
- Result := TFNRtlFormatCurrentUserKeyPath(_RtlFormatCurrentUserKeyPath)(
- CurrentUserKeyPath
- );
- end;
- // Dynamic version of RtlFreeAnsiString
- procedure RtlFreeAnsiString(
- AnsiString : PANSI_STRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlFreeAnsiString, ntdll, 'RtlFreeAnsiString');
- TFNRtlFreeAnsiString(_RtlFreeAnsiString)(
- AnsiString
- );
- end;
- // Dynamic version of RtlFreeHeap
- function RtlFreeHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- MemoryPointer : PVOID
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlFreeHeap, ntdll, 'RtlFreeHeap');
- Result := TFNRtlFreeHeap(_RtlFreeHeap)(
- hHeap, dwFlags, MemoryPointer
- );
- end;
- // Dynamic version of RtlFreeOemString
- procedure RtlFreeOemString(
- OemString : POEM_STRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlFreeOemString, ntdll, 'RtlFreeOemString');
- TFNRtlFreeOemString(_RtlFreeOemString)(
- OemString
- );
- end;
- // Dynamic version of RtlFreeRangeList
- procedure RtlFreeRangeList(
- RangeList : PRTL_RANGE_LIST
- ); stdcall;
- begin
- GetProcedureAddress(_RtlFreeRangeList, ntdll, 'RtlFreeRangeList');
- TFNRtlFreeRangeList(_RtlFreeRangeList)(
- RangeList
- );
- end;
- // Dynamic version of RtlFreeSid
- function RtlFreeSid(
- pSid : PSID
- ): PVOID; stdcall;
- begin
- GetProcedureAddress(_RtlFreeSid, ntdll, 'RtlFreeSid');
- Result := TFNRtlFreeSid(_RtlFreeSid)(
- pSid
- );
- end;
- // Dynamic version of RtlFreeUnicodeString
- procedure RtlFreeUnicodeString(
- UnicodeString : PUNICODE_STRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlFreeUnicodeString, ntdll, 'RtlFreeUnicodeString');
- TFNRtlFreeUnicodeString(_RtlFreeUnicodeString)(
- UnicodeString
- );
- end;
- // Dynamic version of RtlGUIDFromString
- function RtlGUIDFromString(
- GuidString : PUNICODE_STRING;
- Guid : LPGUID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGUIDFromString, ntdll, 'RtlGUIDFromString');
- Result := TFNRtlGUIDFromString(_RtlGUIDFromString)(
- GuidString, Guid
- );
- end;
- // Dynamic version of RtlGetAce
- function RtlGetAce(
- pAcl : PACL;
- dwAceIndex : DWORD;
- var pAce : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetAce, ntdll, 'RtlGetAce');
- Result := TFNRtlGetAce(_RtlGetAce)(
- pAcl, dwAceIndex, pAce
- );
- end;
- // Dynamic version of RtlGetCallersAddress
- procedure RtlGetCallersAddress(
- CallersAddress : PPVOID;
- CallersCaller : PPVOID
- ); stdcall;
- begin
- GetProcedureAddress(_RtlGetCallersAddress, ntdll, 'RtlGetCallersAddress');
- TFNRtlGetCallersAddress(_RtlGetCallersAddress)(
- CallersAddress, CallersCaller
- );
- end;
- // Dynamic version of RtlGetControlSecurityDescriptor
- function RtlGetControlSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var Control : SECURITY_DESCRIPTOR_CONTROL;
- var dwRevision : DWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetControlSecurityDescriptor, ntdll, 'RtlGetControlSecurityDescriptor');
- Result := TFNRtlGetControlSecurityDescriptor(_RtlGetControlSecurityDescriptor)(
- pSecurityDescriptor, Control, dwRevision
- );
- end;
- // Dynamic version of RtlGetCurrentDirectory_U
- function RtlGetCurrentDirectory_U(
- MaximumLength : ULONG;
- Buffer : PWSTR
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlGetCurrentDirectory_U, ntdll, 'RtlGetCurrentDirectory_U');
- Result := TFNRtlGetCurrentDirectory_U(_RtlGetCurrentDirectory_U)(
- MaximumLength, Buffer
- );
- end;
- // Dynamic version of RtlGetCurrentPeb
- function RtlGetCurrentPeb(): PPEB; stdcall;
- begin
- GetProcedureAddress(_RtlGetCurrentPeb, ntdll, 'RtlGetCurrentPeb');
- Result := TFNRtlGetCurrentPeb(_RtlGetCurrentPeb)();
- end;
- // Dynamic version of RtlGetDaclSecurityDescriptor
- function RtlGetDaclSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var bDaclPresent : BOOLEAN;
- var Dacl : PACL;
- var bDaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetDaclSecurityDescriptor, ntdll, 'RtlGetDaclSecurityDescriptor');
- Result := TFNRtlGetDaclSecurityDescriptor(_RtlGetDaclSecurityDescriptor)(
- pSecurityDescriptor, bDaclPresent, Dacl, bDaclDefaulted
- );
- end;
- // Dynamic version of RtlGetFirstRange
- function RtlGetFirstRange(
- RangeList : PRTL_RANGE_LIST;
- Iterator : PRTL_RANGE_LIST_ITERATOR;
- var Range : PRTL_RANGE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetFirstRange, ntdll, 'RtlGetFirstRange');
- Result := TFNRtlGetFirstRange(_RtlGetFirstRange)(
- RangeList, Iterator, Range
- );
- end;
- // Dynamic version of RtlGetFullPathName_U
- function RtlGetFullPathName_U(
- DosName : PWSTR;
- Size : ULONG;
- Buf : PWSTR;
- var Shortname : PWSTR
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlGetFullPathName_U, ntdll, 'RtlGetFullPathName_U');
- Result := TFNRtlGetFullPathName_U(_RtlGetFullPathName_U)(
- DosName, Size, Buf, Shortname
- );
- end;
- // Dynamic version of RtlGetGroupSecurityDescriptor
- function RtlGetGroupSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var pGroup : PSID;
- var bGroupDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetGroupSecurityDescriptor, ntdll, 'RtlGetGroupSecurityDescriptor');
- Result := TFNRtlGetGroupSecurityDescriptor(_RtlGetGroupSecurityDescriptor)(
- pSecurityDescriptor, pGroup, bGroupDefaulted
- );
- end;
- // Dynamic version of RtlGetLastNtStatus
- function RtlGetLastNtStatus(): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetLastNtStatus, ntdll, 'RtlGetLastNtStatus');
- Result := TFNRtlGetLastNtStatus(_RtlGetLastNtStatus)();
- end;
- // Dynamic version of RtlGetLongestNtPathLength
- function RtlGetLongestNtPathLength(): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlGetLongestNtPathLength, ntdll, 'RtlGetLongestNtPathLength');
- Result := TFNRtlGetLongestNtPathLength(_RtlGetLongestNtPathLength)();
- end;
- // Dynamic version of RtlGetNextRange
- function RtlGetNextRange(
- Iterator : PRTL_RANGE_LIST_ITERATOR;
- var Range : PRTL_RANGE;
- MoveForwards : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetNextRange, ntdll, 'RtlGetNextRange');
- Result := TFNRtlGetNextRange(_RtlGetNextRange)(
- Iterator, Range, MoveForwards
- );
- end;
- // Dynamic version of RtlGetNtGlobalFlags
- function RtlGetNtGlobalFlags(): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlGetNtGlobalFlags, ntdll, 'RtlGetNtGlobalFlags');
- Result := TFNRtlGetNtGlobalFlags(_RtlGetNtGlobalFlags)();
- end;
- // Dynamic version of RtlGetNtProductType
- function RtlGetNtProductType(
- var ProductType : ULONG
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlGetNtProductType, ntdll, 'RtlGetNtProductType');
- Result := TFNRtlGetNtProductType(_RtlGetNtProductType)(
- ProductType
- );
- end;
- // Dynamic version of RtlGetNtVersionNumbers
- procedure RtlGetNtVersionNumbers(
- var dwMajorVersion : ULONG;
- var dwMinorVersion : ULONG;
- UnknownCanBeNull : PDWORD
- ); stdcall;
- begin
- GetProcedureAddress(_RtlGetNtVersionNumbers, ntdll, 'RtlGetNtVersionNumbers');
- TFNRtlGetNtVersionNumbers(_RtlGetNtVersionNumbers)(
- dwMajorVersion, dwMinorVersion, UnknownCanBeNull
- );
- end;
- // Dynamic version of RtlGetOwnerSecurityDescriptor
- function RtlGetOwnerSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var pOwner : PSID;
- var OwnerDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetOwnerSecurityDescriptor, ntdll, 'RtlGetOwnerSecurityDescriptor');
- Result := TFNRtlGetOwnerSecurityDescriptor(_RtlGetOwnerSecurityDescriptor)(
- pSecurityDescriptor, pOwner, OwnerDefaulted
- );
- end;
- // Dynamic version of RtlGetProcessHeaps
- function RtlGetProcessHeaps(
- ArraySize : ULONG;
- HeapArray : PHANDLE
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlGetProcessHeaps, ntdll, 'RtlGetProcessHeaps');
- Result := TFNRtlGetProcessHeaps(_RtlGetProcessHeaps)(
- ArraySize, HeapArray
- );
- end;
- // Dynamic version of RtlGetSaclSecurityDescriptor
- function RtlGetSaclSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- var bSaclPresent : BOOLEAN;
- var Sacl : PACL;
- var bSaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetSaclSecurityDescriptor, ntdll, 'RtlGetSaclSecurityDescriptor');
- Result := TFNRtlGetSaclSecurityDescriptor(_RtlGetSaclSecurityDescriptor)(
- pSecurityDescriptor, bSaclPresent, Sacl, bSaclDefaulted
- );
- end;
- // Dynamic version of RtlGetVersion
- function RtlGetVersion(
- lpVersionInformation : PRTL_OSVERSIONINFOW
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlGetVersion, ntdll, 'RtlGetVersion');
- Result := TFNRtlGetVersion(_RtlGetVersion)(
- lpVersionInformation
- );
- end;
- // Dynamic version of RtlIdentifierAuthoritySid
- function RtlIdentifierAuthoritySid(
- Sid : PSID
- ): PSID_IDENTIFIER_AUTHORITY; stdcall;
- begin
- GetProcedureAddress(_RtlIdentifierAuthoritySid, ntdll, 'RtlIdentifierAuthoritySid');
- Result := TFNRtlIdentifierAuthoritySid(_RtlIdentifierAuthoritySid)(
- Sid
- );
- end;
- // Dynamic version of RtlImageDirectoryEntryToData
- function RtlImageDirectoryEntryToData(
- ImageBase : HMODULE;
- MappedAsImage : BOOLEAN;
- DirectoryEntry : USHORT;
- Size : PULONG
- ): PVOID; stdcall;
- begin
- GetProcedureAddress(_RtlImageDirectoryEntryToData, ntdll, 'RtlImageDirectoryEntryToData');
- Result := TFNRtlImageDirectoryEntryToData(_RtlImageDirectoryEntryToData)(
- ImageBase, MappedAsImage, DirectoryEntry, Size
- );
- end;
- // Dynamic version of RtlImageNtHeader
- function RtlImageNtHeader(
- ImageBase : HMODULE
- ): PIMAGE_NT_HEADERS; stdcall;
- begin
- GetProcedureAddress(_RtlImageNtHeader, ntdll, 'RtlImageNtHeader');
- Result := TFNRtlImageNtHeader(_RtlImageNtHeader)(
- ImageBase
- );
- end;
- // Dynamic version of RtlImageNtHeaderEx
- function RtlImageNtHeaderEx(
- dwFlags : DWORD;
- ImageBase : HMODULE
- ): PIMAGE_NT_HEADERS; stdcall;
- begin
- GetProcedureAddress(_RtlImageNtHeaderEx, ntdll, 'RtlImageNtHeaderEx');
- Result := TFNRtlImageNtHeaderEx(_RtlImageNtHeaderEx)(
- dwFlags, ImageBase
- );
- end;
- // Dynamic version of RtlImageRvaToSection
- function RtlImageRvaToSection(
- NtHeaders : PIMAGE_NT_HEADERS;
- ImageBase : HMODULE;
- Rva : ULONG
- ): PIMAGE_SECTION_HEADER; stdcall;
- begin
- GetProcedureAddress(_RtlImageRvaToSection, ntdll, 'RtlImageRvaToSection');
- Result := TFNRtlImageRvaToSection(_RtlImageRvaToSection)(
- NtHeaders, ImageBase, Rva
- );
- end;
- // Dynamic version of RtlImageRvaToVa
- function RtlImageRvaToVa(
- NtHeaders : PIMAGE_NT_HEADERS;
- ImageBase : HMODULE;
- Rva : ULONG;
- var LastRvaSection : PIMAGE_SECTION_HEADER
- ): PVOID; stdcall;
- begin
- GetProcedureAddress(_RtlImageRvaToVa, ntdll, 'RtlImageRvaToVa');
- Result := TFNRtlImageRvaToVa(_RtlImageRvaToVa)(
- NtHeaders, ImageBase, Rva, LastRvaSection
- );
- end;
- // Dynamic version of RtlImpersonateSelf
- function RtlImpersonateSelf(
- ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlImpersonateSelf, ntdll, 'RtlImpersonateSelf');
- Result := TFNRtlImpersonateSelf(_RtlImpersonateSelf)(
- ImpersonationLevel
- );
- end;
- // Dynamic version of RtlInitAnsiString
- procedure RtlInitAnsiString(
- DestinationString : PANSI_STRING;
- SourceString : PCSZ
- ); stdcall;
- begin
- GetProcedureAddress(_RtlInitAnsiString, ntdll, 'RtlInitAnsiString');
- TFNRtlInitAnsiString(_RtlInitAnsiString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlInitAnsiStringEx
- function RtlInitAnsiStringEx(
- DestinationString : PANSI_STRING;
- SourceString : PCSZ
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlInitAnsiStringEx, ntdll, 'RtlInitAnsiStringEx');
- Result := TFNRtlInitAnsiStringEx(_RtlInitAnsiStringEx)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlInitString
- procedure RtlInitString(
- DestinationString : PSTRING;
- SourceString : PCSZ
- ); stdcall;
- begin
- GetProcedureAddress(_RtlInitString, ntdll, 'RtlInitString');
- TFNRtlInitString(_RtlInitString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlInitUnicodeString
- procedure RtlInitUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : LPCWSTR
- ); stdcall;
- begin
- GetProcedureAddress(_RtlInitUnicodeString, ntdll, 'RtlInitUnicodeString');
- TFNRtlInitUnicodeString(_RtlInitUnicodeString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlInitUnicodeStringEx
- function RtlInitUnicodeStringEx(
- DestinationString : PUNICODE_STRING;
- SourceString : LPCWSTR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlInitUnicodeStringEx, ntdll, 'RtlInitUnicodeStringEx');
- Result := TFNRtlInitUnicodeStringEx(_RtlInitUnicodeStringEx)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlInitializeBitMap
- procedure RtlInitializeBitMap(
- BitMapHeader : PRTL_BITMAP;
- BitMapBuffer : PULONG;
- SizeOfBitMap : ULONG
- ); stdcall;
- begin
- GetProcedureAddress(_RtlInitializeBitMap, ntdll, 'RtlInitializeBitMap');
- TFNRtlInitializeBitMap(_RtlInitializeBitMap)(
- BitMapHeader, BitMapBuffer, SizeOfBitMap
- );
- end;
- // Dynamic version of RtlInitializeCriticalSection
- function RtlInitializeCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlInitializeCriticalSection, ntdll, 'RtlInitializeCriticalSection');
- Result := TFNRtlInitializeCriticalSection(_RtlInitializeCriticalSection)(
- lpCriticalSection
- );
- end;
- // Dynamic version of RtlInitializeCriticalSectionAndSpinCount
- function RtlInitializeCriticalSectionAndSpinCount(
- lpCriticalSection : PRTL_CRITICAL_SECTION;
- dwSpinCount : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlInitializeCriticalSectionAndSpinCount, ntdll, 'RtlInitializeCriticalSectionAndSpinCount');
- Result := TFNRtlInitializeCriticalSectionAndSpinCount(_RtlInitializeCriticalSectionAndSpinCount)(
- lpCriticalSection, dwSpinCount
- );
- end;
- // Dynamic version of RtlInitializeRangeList
- procedure RtlInitializeRangeList(
- RangeList : PRTL_RANGE_LIST
- ); stdcall;
- begin
- GetProcedureAddress(_RtlInitializeRangeList, ntdll, 'RtlInitializeRangeList');
- TFNRtlInitializeRangeList(_RtlInitializeRangeList)(
- RangeList
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlInitializeSListHead
- procedure RtlInitializeSListHead(
- ListHead : PSLIST_HEADER
- ); stdcall;
- begin
- GetProcedureAddress(_RtlInitializeSListHead, ntdll, 'RtlInitializeSListHead');
- TFNRtlInitializeSListHead(_RtlInitializeSListHead)(
- ListHead
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlInitializeSid
- function RtlInitializeSid(
- pSid : PSID;
- pIdentifierAuthority : PSID_IDENTIFIER_AUTHORITY;
- nSubAuthorityCount : UCHAR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlInitializeSid, ntdll, 'RtlInitializeSid');
- Result := TFNRtlInitializeSid(_RtlInitializeSid)(
- pSid, pIdentifierAuthority, nSubAuthorityCount
- );
- end;
- // Dynamic version of RtlInt64ToUnicodeString
- function RtlInt64ToUnicodeString(
- Value : ULONGLONG;
- Base : ULONG;
- Str : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlInt64ToUnicodeString, ntdll, 'RtlInt64ToUnicodeString');
- Result := TFNRtlInt64ToUnicodeString(_RtlInt64ToUnicodeString)(
- Value, Base, Str
- );
- end;
- // Dynamic version of RtlIntegerToChar
- function RtlIntegerToChar(
- Value : ULONG;
- Base : ULONG;
- Length : ULONG;
- Str : PCHAR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlIntegerToChar, ntdll, 'RtlIntegerToChar');
- Result := TFNRtlIntegerToChar(_RtlIntegerToChar)(
- Value, Base, Length, Str
- );
- end;
- // Dynamic version of RtlIntegerToUnicodeString
- function RtlIntegerToUnicodeString(
- Value : ULONG;
- Base : ULONG;
- Str : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlIntegerToUnicodeString, ntdll, 'RtlIntegerToUnicodeString');
- Result := TFNRtlIntegerToUnicodeString(_RtlIntegerToUnicodeString)(
- Value, Base, Str
- );
- end;
- {$IFNDEf JWA_INCLUDEMODE}
- // Dynamic version of RtlInterlockedFlushSList
- function RtlInterlockedFlushSList(
- ListHead : PSLIST_HEADER
- ): PSLIST_ENTRY; stdcall;
- begin
- GetProcedureAddress(_RtlInterlockedFlushSList, ntdll, 'RtlInterlockedFlushSList');
- Result := TFNRtlInterlockedFlushSList(_RtlInterlockedFlushSList)(
- ListHead
- );
- end;
- // Dynamic version of RtlInterlockedPopEntrySList
- function RtlInterlockedPopEntrySList(
- ListHead : PSLIST_HEADER
- ): PSLIST_ENTRY; stdcall;
- begin
- GetProcedureAddress(_RtlInterlockedPopEntrySList, ntdll, 'RtlInterlockedPopEntrySList');
- Result := TFNRtlInterlockedPopEntrySList(_RtlInterlockedPopEntrySList)(
- ListHead
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlInterlockedPushEntrySList
- function RtlInterlockedPushEntrySList(
- ListHead : PSLIST_HEADER;
- ListEntry : PSLIST_ENTRY
- ): PSLIST_ENTRY; stdcall;
- begin
- GetProcedureAddress(_RtlInterlockedPushEntrySList, ntdll, 'RtlInterlockedPushEntrySList');
- Result := TFNRtlInterlockedPushEntrySList(_RtlInterlockedPushEntrySList)(
- ListHead, ListEntry
- );
- end;
- // Dynamic version of RtlInvertRangeList
- function RtlInvertRangeList(
- InvertedRangeList : PRTL_RANGE_LIST;
- RangeList : PRTL_RANGE_LIST
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlInvertRangeList, ntdll, 'RtlInvertRangeList');
- Result := TFNRtlInvertRangeList(_RtlInvertRangeList)(
- InvertedRangeList, RangeList
- );
- end;
- // Dynamic version of RtlIpv4AddressToStringA
- function RtlIpv4AddressToStringA(
- IP : PULONG;
- Buffer : LPSTR
- ): LPSTR; stdcall;
- begin
- GetProcedureAddress(_RtlIpv4AddressToStringA, ntdll, 'RtlIpv4AddressToStringA');
- Result := TFNRtlIpv4AddressToStringA(_RtlIpv4AddressToStringA)(
- IP, Buffer
- );
- end;
- // Dynamic version of RtlIpv4AddressToStringW
- function RtlIpv4AddressToStringW(
- IP : PULONG;
- Buffer : LPWSTR
- ): LPWSTR; stdcall;
- begin
- GetProcedureAddress(_RtlIpv4AddressToStringW, ntdll, 'RtlIpv4AddressToStringW');
- Result := TFNRtlIpv4AddressToStringW(_RtlIpv4AddressToStringW)(
- IP, Buffer
- );
- end;
- // Dynamic version of RtlIsDosDeviceName_U
- function RtlIsDosDeviceName_U(
- TestString : LPCWSTR
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlIsDosDeviceName_U, ntdll, 'RtlIsDosDeviceName_U');
- Result := TFNRtlIsDosDeviceName_U(_RtlIsDosDeviceName_U)(
- TestString
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlIsNameLegalDOS8Dot3
- function RtlIsNameLegalDOS8Dot3(
- Name : PUNICODE_STRING;
- OemName : POEM_STRING;
- NameContainsSpaces : PBOOLEAN
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlIsNameLegalDOS8Dot3, ntdll, 'RtlIsNameLegalDOS8Dot3');
- Result := TFNRtlIsNameLegalDOS8Dot3(_RtlIsNameLegalDOS8Dot3)(
- Name, OemName, NameContainsSpaces
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlIsRangeAvailable
- function RtlIsRangeAvailable(
- RangeList : PRTL_RANGE_LIST;
- Start : ULONGLONG;
- End_ : ULONGLONG;
- Flags : ULONG;
- AttributeAvailableMask : UCHAR;
- Context : PVOID;
- Callback : PRTL_CONFLICT_RANGE_CALLBACK;
- Available : PBOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlIsRangeAvailable, ntdll, 'RtlIsRangeAvailable');
- Result := TFNRtlIsRangeAvailable(_RtlIsRangeAvailable)(
- RangeList, Start, End_, Flags, AttributeAvailableMask, Context, Callback, Available
- );
- end;
- // Dynamic version of RtlIsTextUnicode
- function RtlIsTextUnicode(
- lpBuffer : PVOID;
- cb : Integer;
- lpi : LPINT
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlIsTextUnicode, ntdll, 'RtlIsTextUnicode');
- Result := TFNRtlIsTextUnicode(_RtlIsTextUnicode)(
- lpBuffer, cb, lpi
- );
- end;
- // Dynamic version of RtlLargeIntegerAdd
- function RtlLargeIntegerAdd(
- Addend1 : LARGE_INTEGER;
- Addend2 : LARGE_INTEGER
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerAdd, ntdll, 'RtlLargeIntegerAdd');
- Result := TFNRtlLargeIntegerAdd(_RtlLargeIntegerAdd)(
- Addend1, Addend2
- );
- end;
- // Dynamic version of RtlLargeIntegerArithmeticShift
- function RtlLargeIntegerArithmeticShift(
- LargeInteger : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerArithmeticShift, ntdll, 'RtlLargeIntegerArithmeticShift');
- Result := TFNRtlLargeIntegerArithmeticShift(_RtlLargeIntegerArithmeticShift)(
- LargeInteger, ShiftCount
- );
- end;
- // Dynamic version of RtlLargeIntegerDivide
- function RtlLargeIntegerDivide(
- Dividend : LARGE_INTEGER;
- Divisor : LARGE_INTEGER;
- Remainder : PLARGE_INTEGER
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerDivide, ntdll, 'RtlLargeIntegerDivide');
- Result := TFNRtlLargeIntegerDivide(_RtlLargeIntegerDivide)(
- Dividend, Divisor, Remainder
- );
- end;
- // Dynamic version of RtlLargeIntegerNegate
- function RtlLargeIntegerNegate(
- NegateThis : LARGE_INTEGER
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerNegate, ntdll, 'RtlLargeIntegerNegate');
- Result := TFNRtlLargeIntegerNegate(_RtlLargeIntegerNegate)(
- NegateThis
- );
- end;
- // Dynamic version of RtlLargeIntegerShiftLeft
- function RtlLargeIntegerShiftLeft(
- LargeInteger : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerShiftLeft, ntdll, 'RtlLargeIntegerShiftLeft');
- Result := TFNRtlLargeIntegerShiftLeft(_RtlLargeIntegerShiftLeft)(
- LargeInteger, ShiftCount
- );
- end;
- // Dynamic version of RtlLargeIntegerShiftRight
- function RtlLargeIntegerShiftRight(
- LargeInteger : LARGE_INTEGER;
- ShiftCount : CCHAR
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerShiftRight, ntdll, 'RtlLargeIntegerShiftRight');
- Result := TFNRtlLargeIntegerShiftRight(_RtlLargeIntegerShiftRight)(
- LargeInteger, ShiftCount
- );
- end;
- // Dynamic version of RtlLargeIntegerSubtract
- function RtlLargeIntegerSubtract(
- Number : LARGE_INTEGER;
- Subtrahend : LARGE_INTEGER
- ): LARGE_INTEGER; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerSubtract, ntdll, 'RtlLargeIntegerSubtract');
- Result := TFNRtlLargeIntegerSubtract(_RtlLargeIntegerSubtract)(
- Number, Subtrahend
- );
- end;
- // Dynamic version of RtlLargeIntegerToChar
- function RtlLargeIntegerToChar(
- Value : PLARGE_INTEGER;
- Base : ULONG;
- BufferLength : ULONG;
- Buffer : PCHAR
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlLargeIntegerToChar, ntdll, 'RtlLargeIntegerToChar');
- Result := TFNRtlLargeIntegerToChar(_RtlLargeIntegerToChar)(
- Value, Base, BufferLength, Buffer
- );
- end;
- // Dynamic version of RtlLeaveCriticalSection
- procedure RtlLeaveCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ); stdcall;
- begin
- GetProcedureAddress(_RtlLeaveCriticalSection, ntdll, 'RtlLeaveCriticalSection');
- TFNRtlLeaveCriticalSection(_RtlLeaveCriticalSection)(
- lpCriticalSection
- );
- end;
- // Dynamic version of RtlLengthRequiredSid
- function RtlLengthRequiredSid(
- nSubAuthorityCount : ULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlLengthRequiredSid, ntdll, 'RtlLengthRequiredSid');
- Result := TFNRtlLengthRequiredSid(_RtlLengthRequiredSid)(
- nSubAuthorityCount
- );
- end;
- // Dynamic version of RtlLengthSecurityDescriptor
- function RtlLengthSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlLengthSecurityDescriptor, ntdll, 'RtlLengthSecurityDescriptor');
- Result := TFNRtlLengthSecurityDescriptor(_RtlLengthSecurityDescriptor)(
- SecurityDescriptor
- );
- end;
- // Dynamic version of RtlLengthSid
- function RtlLengthSid(
- pSid : PSID
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlLengthSid, ntdll, 'RtlLengthSid');
- Result := TFNRtlLengthSid(_RtlLengthSid)(
- pSid
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlLocalTimeToSystemTime
- function RtlLocalTimeToSystemTime(
- LocalTime : PLARGE_INTEGER;
- SystemTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlLocalTimeToSystemTime, ntdll, 'RtlLocalTimeToSystemTime');
- Result := TFNRtlLocalTimeToSystemTime(_RtlLocalTimeToSystemTime)(
- LocalTime, SystemTime
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlLockHeap
- function RtlLockHeap(
- hHeap : PVOID
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlLockHeap, ntdll, 'RtlLockHeap');
- Result := TFNRtlLockHeap(_RtlLockHeap)(
- hHeap
- );
- end;
- // Dynamic version of RtlMakeSelfRelativeSD
- function RtlMakeSelfRelativeSD(
- pAbsoluteSD : PSECURITY_DESCRIPTOR;
- pSelfRelativeSD : PSECURITY_DESCRIPTOR;
- lpdwBufferLength : LPDWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlMakeSelfRelativeSD, ntdll, 'RtlMakeSelfRelativeSD');
- Result := TFNRtlMakeSelfRelativeSD(_RtlMakeSelfRelativeSD)(
- pAbsoluteSD, pSelfRelativeSD, lpdwBufferLength
- );
- end;
- // Dynamic version of RtlMapGenericMask
- procedure RtlMapGenericMask(
- AccessMask : PACCESS_MASK;
- GenericMapping : PGENERIC_MAPPING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlMapGenericMask, ntdll, 'RtlMapGenericMask');
- TFNRtlMapGenericMask(_RtlMapGenericMask)(
- AccessMask, GenericMapping
- );
- end;
- // Dynamic version of RtlMapSecurityErrorToNtStatus
- function RtlMapSecurityErrorToNtStatus(
- SecurityError : DWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlMapSecurityErrorToNtStatus, ntdll, 'RtlMapSecurityErrorToNtStatus');
- Result := TFNRtlMapSecurityErrorToNtStatus(_RtlMapSecurityErrorToNtStatus)(
- SecurityError
- );
- end;
- // Dynamic version of RtlMergeRangeLists
- function RtlMergeRangeLists(
- MergedRangeList : PRTL_RANGE_LIST;
- RangeList1 : PRTL_RANGE_LIST;
- RangeList2 : PRTL_RANGE_LIST;
- Flags : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlMergeRangeLists, ntdll, 'RtlMergeRangeLists');
- Result := TFNRtlMergeRangeLists(_RtlMergeRangeLists)(
- MergedRangeList, RangeList1, RangeList2, Flags
- );
- end;
- // Dynamic version of RtlMoveMemory
- procedure RtlMoveMemory(
- Destination : PVOID;
- Source : PVOID;
- Length : SIZE_T
- ); stdcall;
- begin
- GetProcedureAddress(_RtlMoveMemory, ntdll, 'RtlMoveMemory');
- TFNRtlMoveMemory(_RtlMoveMemory)(
- Destination, Source, Length
- );
- end;
- // Dynamic version of RtlNormalizeProcessParams
- function RtlNormalizeProcessParams(
- ProcessParameters : PRTL_USER_PROCESS_PARAMETERS
- ): PRTL_USER_PROCESS_PARAMETERS; stdcall;
- begin
- GetProcedureAddress(_RtlNormalizeProcessParams, ntdll, 'RtlNormalizeProcessParams');
- Result := TFNRtlNormalizeProcessParams(_RtlNormalizeProcessParams)(
- ProcessParameters
- );
- end;
- // Dynamic version of RtlNtStatusToDosError
- function RtlNtStatusToDosError(
- Status : NTSTATUS
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlNtStatusToDosError, ntdll, 'RtlNtStatusToDosError');
- Result := TFNRtlNtStatusToDosError(_RtlNtStatusToDosError)(
- Status
- );
- end;
- // Dynamic version of RtlNtStatusToDosErrorNoTeb
- function RtlNtStatusToDosErrorNoTeb(
- Status : NTSTATUS
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlNtStatusToDosErrorNoTeb, ntdll, 'RtlNtStatusToDosErrorNoTeb');
- Result := TFNRtlNtStatusToDosErrorNoTeb(_RtlNtStatusToDosErrorNoTeb)(
- Status
- );
- end;
- // Dynamic version of RtlNumberOfClearBits
- function RtlNumberOfClearBits(
- BitMapHeader : PRTL_BITMAP
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlNumberOfClearBits, ntdll, 'RtlNumberOfClearBits');
- Result := TFNRtlNumberOfClearBits(_RtlNumberOfClearBits)(
- BitMapHeader
- );
- end;
- // Dynamic version of RtlNumberOfSetBits
- function RtlNumberOfSetBits(
- BitMapHeader : PRTL_BITMAP
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlNumberOfSetBits, ntdll, 'RtlNumberOfSetBits');
- Result := TFNRtlNumberOfSetBits(_RtlNumberOfSetBits)(
- BitMapHeader
- );
- end;
- // Dynamic version of RtlOemStringToUnicodeSize
- function RtlOemStringToUnicodeSize(
- AnsiString : POEM_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlOemStringToUnicodeSize, ntdll, 'RtlOemStringToUnicodeSize');
- Result := TFNRtlOemStringToUnicodeSize(_RtlOemStringToUnicodeSize)(
- AnsiString
- );
- end;
- // Dynamic version of RtlOemStringToUnicodeString
- function RtlOemStringToUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : POEM_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlOemStringToUnicodeString, ntdll, 'RtlOemStringToUnicodeString');
- Result := TFNRtlOemStringToUnicodeString(_RtlOemStringToUnicodeString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlOemToUnicodeN
- function RtlOemToUnicodeN(
- UnicodeString : PWSTR;
- UnicodeSize : ULONG;
- var ResultSize : ULONG;
- OemString : PCHAR;
- OemSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlOemToUnicodeN, ntdll, 'RtlOemToUnicodeN');
- Result := TFNRtlOemToUnicodeN(_RtlOemToUnicodeN)(
- UnicodeString, UnicodeSize, ResultSize, OemString, OemSize
- );
- end;
- // Dynamic version of RtlOpenCurrentUser
- function RtlOpenCurrentUser(
- samDesired : ACCESS_MASK;
- phkResult : PHKEY
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlOpenCurrentUser, ntdll, 'RtlOpenCurrentUser');
- Result := TFNRtlOpenCurrentUser(_RtlOpenCurrentUser)(
- samDesired, phkResult
- );
- end;
- // Dynamic version of RtlPrefixString
- function RtlPrefixString(
- String1 : PANSI_STRING;
- String2 : PANSI_STRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlPrefixString, ntdll, 'RtlPrefixString');
- Result := TFNRtlPrefixString(_RtlPrefixString)(
- String1, String2, CaseInsensitive
- );
- end;
- // Dynamic version of RtlPrefixUnicodeString
- function RtlPrefixUnicodeString(
- String1 : PUNICODE_STRING;
- String2 : PUNICODE_STRING;
- CaseInsensitive : BOOLEAN
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlPrefixUnicodeString, ntdll, 'RtlPrefixUnicodeString');
- Result := TFNRtlPrefixUnicodeString(_RtlPrefixUnicodeString)(
- String1, String2, CaseInsensitive
- );
- end;
- // Dynamic version of RtlQueryDepthSList
- function RtlQueryDepthSList(
- ListHead : PSLIST_HEADER
- ): USHORT; stdcall;
- begin
- GetProcedureAddress(_RtlQueryDepthSList, ntdll, 'RtlQueryDepthSList');
- Result := TFNRtlQueryDepthSList(_RtlQueryDepthSList)(
- ListHead
- );
- end;
- // Dynamic version of RtlQueryEnvironmentVariable_U
- function RtlQueryEnvironmentVariable_U(
- Environment : PVOID;
- VarName : PUNICODE_STRING;
- VarValue : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlQueryEnvironmentVariable_U, ntdll, 'RtlQueryEnvironmentVariable_U');
- Result := TFNRtlQueryEnvironmentVariable_U(_RtlQueryEnvironmentVariable_U)(
- Environment, VarName, VarValue
- );
- end;
- // Dynamic version of RtlQueryInformationAcl
- function RtlQueryInformationAcl(
- pAcl : PACL;
- pAclInformation : PVOID;
- nAclInformationLength : DWORD;
- dwAclInformationClass : ACL_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlQueryInformationAcl, ntdll, 'RtlQueryInformationAcl');
- Result := TFNRtlQueryInformationAcl(_RtlQueryInformationAcl)(
- pAcl, pAclInformation, nAclInformationLength, dwAclInformationClass
- );
- end;
- // Dynamic version of RtlQueryProcessDebugInformation
- function RtlQueryProcessDebugInformation(
- ProcessId : ULONG;
- DebugInfoClassMask : ULONG;
- DebugBuffer : PDEBUG_BUFFER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlQueryProcessDebugInformation, ntdll, 'RtlQueryProcessDebugInformation');
- Result := TFNRtlQueryProcessDebugInformation(_RtlQueryProcessDebugInformation)(
- ProcessId, DebugInfoClassMask, DebugBuffer
- );
- end;
- // Dynamic version of RtlQueryRegistryValues
- function RtlQueryRegistryValues(
- RelativeTo : ULONG;
- Path : LPCWSTR;
- QueryTable : PRTL_QUERY_REGISTRY_TABLE;
- Context : PVOID;
- Environment : PVOID
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlQueryRegistryValues, ntdll, 'RtlQueryRegistryValues');
- Result := TFNRtlQueryRegistryValues(_RtlQueryRegistryValues)(
- RelativeTo, Path, QueryTable, Context, Environment
- );
- end;
- // Dynamic version of RtlRaiseStatus
- procedure RtlRaiseStatus(
- Status : NTSTATUS
- ); stdcall;
- begin
- GetProcedureAddress(_RtlRaiseStatus, ntdll, 'RtlRaiseStatus');
- TFNRtlRaiseStatus(_RtlRaiseStatus)(
- Status
- );
- end;
- // Dynamic version of RtlRandom
- function RtlRandom(
- Seed : PULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlRandom, ntdll, 'RtlRandom');
- Result := TFNRtlRandom(_RtlRandom)(
- Seed
- );
- end;
- // Dynamic version of RtlRandomEx
- function RtlRandomEx(
- Seed : PULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlRandomEx, ntdll, 'RtlRandomEx');
- Result := TFNRtlRandomEx(_RtlRandomEx)(
- Seed
- );
- end;
- // Dynamic version of RtlReAllocateHeap
- function RtlReAllocateHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- lpMem : PVOID;
- dwBytes : SIZE_T
- ): PVOID; stdcall;
- begin
- GetProcedureAddress(_RtlReAllocateHeap, ntdll, 'RtlReAllocateHeap');
- Result := TFNRtlReAllocateHeap(_RtlReAllocateHeap)(
- hHeap, dwFlags, lpMem, dwBytes
- );
- end;
- // Dynamic version of RtlReleasePebLock
- procedure RtlReleasePebLock(); stdcall;
- begin
- GetProcedureAddress(_RtlReleasePebLock, ntdll, 'RtlReleasePebLock');
- TFNRtlReleasePebLock(_RtlReleasePebLock)();
- end;
- // Dynamic version of RtlRemoveVectoredExceptionHandler
- function RtlRemoveVectoredExceptionHandler(
- VectoredHandlerHandle : PVOID
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlRemoveVectoredExceptionHandler, ntdll, 'RtlRemoveVectoredExceptionHandler');
- Result := TFNRtlRemoveVectoredExceptionHandler(_RtlRemoveVectoredExceptionHandler)(
- VectoredHandlerHandle
- );
- end;
- // Dynamic version of RtlRestoreLastWin32Error
- procedure RtlRestoreLastWin32Error(
- dwErrCode : DWORD
- ); stdcall;
- begin
- GetProcedureAddress(_RtlRestoreLastWin32Error, ntdll, 'RtlRestoreLastWin32Error');
- TFNRtlRestoreLastWin32Error(_RtlRestoreLastWin32Error)(
- dwErrCode
- );
- end;
- // Dynamic version of RtlRunDecodeUnicodeString
- procedure RtlRunDecodeUnicodeString(
- CodeSeed : UCHAR;
- StringToDecode : PUNICODE_STRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlRunDecodeUnicodeString, ntdll, 'RtlRunDecodeUnicodeString');
- TFNRtlRunDecodeUnicodeString(_RtlRunDecodeUnicodeString)(
- CodeSeed, StringToDecode
- );
- end;
- // Dynamic version of RtlRunEncodeUnicodeString
- procedure RtlRunEncodeUnicodeString(
- var CodeSeed : UCHAR;
- StringToEncode : PUNICODE_STRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlRunEncodeUnicodeString, ntdll, 'RtlRunEncodeUnicodeString');
- TFNRtlRunEncodeUnicodeString(_RtlRunEncodeUnicodeString)(
- CodeSeed, StringToEncode
- );
- end;
- // Dynamic version of RtlSecondsSince1970ToTime
- procedure RtlSecondsSince1970ToTime(
- SecondsSince1970 : ULONG;
- Time : PLARGE_INTEGER
- ); stdcall;
- begin
- GetProcedureAddress(_RtlSecondsSince1970ToTime, ntdll, 'RtlSecondsSince1970ToTime');
- TFNRtlSecondsSince1970ToTime(_RtlSecondsSince1970ToTime)(
- SecondsSince1970, Time
- );
- end;
- // Dynamic version of RtlSecondsSince1980ToTime
- procedure RtlSecondsSince1980ToTime(
- SecondsSince1980 : ULONG;
- Time : PLARGE_INTEGER
- ); stdcall;
- begin
- GetProcedureAddress(_RtlSecondsSince1980ToTime, ntdll, 'RtlSecondsSince1980ToTime');
- TFNRtlSecondsSince1980ToTime(_RtlSecondsSince1980ToTime)(
- SecondsSince1980, Time
- );
- end;
- // Dynamic version of RtlSelfRelativeToAbsoluteSD
- function RtlSelfRelativeToAbsoluteSD(
- pSelfRelativeSD : PSECURITY_DESCRIPTOR;
- pAbsoluteSD : PSECURITY_DESCRIPTOR;
- lpdwAbsoluteSDSize : LPDWORD;
- pDacl : PACL;
- lpdwDaclSize : LPDWORD;
- pSacl : PACL;
- lpdwSaclSize : LPDWORD;
- pOwner : PSID;
- lpdwOwnerSize : LPDWORD;
- pPrimaryGroup : PSID;
- lpdwPrimaryGroupSize : LPDWORD
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSelfRelativeToAbsoluteSD, ntdll, 'RtlSelfRelativeToAbsoluteSD');
- Result := TFNRtlSelfRelativeToAbsoluteSD(_RtlSelfRelativeToAbsoluteSD)(
- pSelfRelativeSD, pAbsoluteSD, lpdwAbsoluteSDSize, pDacl, lpdwDaclSize, pSacl, lpdwSaclSize, pOwner, lpdwOwnerSize, pPrimaryGroup, lpdwPrimaryGroupSize
- );
- end;
- // Dynamic version of RtlSetAllBits
- procedure RtlSetAllBits(
- BitMapHeader : PRTL_BITMAP
- ); stdcall;
- begin
- GetProcedureAddress(_RtlSetAllBits, ntdll, 'RtlSetAllBits');
- TFNRtlSetAllBits(_RtlSetAllBits)(
- BitMapHeader
- );
- end;
- // Dynamic version of RtlSetBits
- procedure RtlSetBits(
- BitMapHeader : PRTL_BITMAP;
- StartingIndex : ULONG;
- NumberToSet : ULONG
- ); stdcall;
- begin
- GetProcedureAddress(_RtlSetBits, ntdll, 'RtlSetBits');
- TFNRtlSetBits(_RtlSetBits)(
- BitMapHeader, StartingIndex, NumberToSet
- );
- end;
- // Dynamic version of RtlSetControlSecurityDescriptor
- function RtlSetControlSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- ControlBitsOfInterest : SECURITY_DESCRIPTOR_CONTROL;
- ControlBitsToSet : SECURITY_DESCRIPTOR_CONTROL
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetControlSecurityDescriptor, ntdll, 'RtlSetControlSecurityDescriptor');
- Result := TFNRtlSetControlSecurityDescriptor(_RtlSetControlSecurityDescriptor)(
- pSecurityDescriptor, ControlBitsOfInterest, ControlBitsToSet
- );
- end;
- // Dynamic version of RtlSetCriticalSectionSpinCount
- function RtlSetCriticalSectionSpinCount(
- lpCriticalSection : PRTL_CRITICAL_SECTION;
- dwSpinCount : ULONG
- ): DWORD; stdcall;
- begin
- GetProcedureAddress(_RtlSetCriticalSectionSpinCount, ntdll, 'RtlSetCriticalSectionSpinCount');
- Result := TFNRtlSetCriticalSectionSpinCount(_RtlSetCriticalSectionSpinCount)(
- lpCriticalSection, dwSpinCount
- );
- end;
- // Dynamic version of RtlSetCurrentDirectory_U
- function RtlSetCurrentDirectory_U(
- NewCurrentDirectory : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetCurrentDirectory_U, ntdll, 'RtlSetCurrentDirectory_U');
- Result := TFNRtlSetCurrentDirectory_U(_RtlSetCurrentDirectory_U)(
- NewCurrentDirectory
- );
- end;
- // Dynamic version of RtlSetDaclSecurityDescriptor
- function RtlSetDaclSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR;
- DaclPresent : BOOLEAN;
- Dacl : PACL;
- DaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetDaclSecurityDescriptor, ntdll, 'RtlSetDaclSecurityDescriptor');
- Result := TFNRtlSetDaclSecurityDescriptor(_RtlSetDaclSecurityDescriptor)(
- SecurityDescriptor, DaclPresent, Dacl, DaclDefaulted
- );
- end;
- // Dynamic version of RtlSetGroupSecurityDescriptor
- function RtlSetGroupSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- pGroup : PSID;
- bGroupDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetGroupSecurityDescriptor, ntdll, 'RtlSetGroupSecurityDescriptor');
- Result := TFNRtlSetGroupSecurityDescriptor(_RtlSetGroupSecurityDescriptor)(
- pSecurityDescriptor, pGroup, bGroupDefaulted
- );
- end;
- // Dynamic version of RtlSetInformationAcl
- function RtlSetInformationAcl(
- pAcl : PACL;
- pAclInformation : PVOID;
- nInformationLength : DWORD;
- dwAclInformationClass : ACL_INFORMATION_CLASS
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetInformationAcl, ntdll, 'RtlSetInformationAcl');
- Result := TFNRtlSetInformationAcl(_RtlSetInformationAcl)(
- pAcl, pAclInformation, nInformationLength, dwAclInformationClass
- );
- end;
- // Dynamic version of RtlSetLastWin32ErrorAndNtStatusFromNtStatus
- function RtlSetLastWin32ErrorAndNtStatusFromNtStatus(
- Status : NTSTATUS
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlSetLastWin32ErrorAndNtStatusFromNtStatus, ntdll, 'RtlSetLastWin32ErrorAndNtStatusFromNtStatus');
- Result := TFNRtlSetLastWin32ErrorAndNtStatusFromNtStatus(_RtlSetLastWin32ErrorAndNtStatusFromNtStatus)(
- Status
- );
- end;
- // Dynamic version of RtlSetOwnerSecurityDescriptor
- function RtlSetOwnerSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- pOwner : PSID;
- bOwnerDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetOwnerSecurityDescriptor, ntdll, 'RtlSetOwnerSecurityDescriptor');
- Result := TFNRtlSetOwnerSecurityDescriptor(_RtlSetOwnerSecurityDescriptor)(
- pSecurityDescriptor, pOwner, bOwnerDefaulted
- );
- end;
- // Dynamic version of RtlSetProcessIsCritical
- function RtlSetProcessIsCritical(
- bIsCritical : BOOLEAN;
- pbOldIsCriticalValue : PBOOLEAN;
- bUnknownCanBeFalse : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetProcessIsCritical, ntdll, 'RtlSetProcessIsCritical');
- Result := TFNRtlSetProcessIsCritical(_RtlSetProcessIsCritical)(
- bIsCritical, pbOldIsCriticalValue, bUnknownCanBeFalse
- );
- end;
- // Dynamic version of RtlSetSaclSecurityDescriptor
- function RtlSetSaclSecurityDescriptor(
- pSecurityDescriptor : PSECURITY_DESCRIPTOR;
- bSaclPresent : BOOLEAN;
- pSacl : PACL;
- SaclDefaulted : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetSaclSecurityDescriptor, ntdll, 'RtlSetSaclSecurityDescriptor');
- Result := TFNRtlSetSaclSecurityDescriptor(_RtlSetSaclSecurityDescriptor)(
- pSecurityDescriptor, bSaclPresent, pSacl, SaclDefaulted
- );
- end;
- // Dynamic version of RtlSetThreadIsCritical
- function RtlSetThreadIsCritical(
- bIsCritical : BOOLEAN;
- pbOldIsCriticalValue : PBOOLEAN;
- bUnknownCanBeFalse : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSetThreadIsCritical, ntdll, 'RtlSetThreadIsCritical');
- Result := TFNRtlSetThreadIsCritical(_RtlSetThreadIsCritical)(
- bIsCritical, pbOldIsCriticalValue, bUnknownCanBeFalse
- );
- end;
- // Dynamic version of RtlSizeHeap
- function RtlSizeHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- lpMem : PVOID
- ): SIZE_T; stdcall;
- begin
- GetProcedureAddress(_RtlSizeHeap, ntdll, 'RtlSizeHeap');
- Result := TFNRtlSizeHeap(_RtlSizeHeap)(
- hHeap, dwFlags, lpMem
- );
- end;
- // Dynamic version of RtlStringFromGUID
- function RtlStringFromGUID(
- Guid : REFGUID;
- GuidString : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlStringFromGUID, ntdll, 'RtlStringFromGUID');
- Result := TFNRtlStringFromGUID(_RtlStringFromGUID)(
- Guid, GuidString
- );
- end;
- // Dynamic version of RtlSubAuthorityCountSid
- function RtlSubAuthorityCountSid(
- pSid : PSID
- ): PUCHAR; stdcall;
- begin
- GetProcedureAddress(_RtlSubAuthorityCountSid, ntdll, 'RtlSubAuthorityCountSid');
- Result := TFNRtlSubAuthorityCountSid(_RtlSubAuthorityCountSid)(
- pSid
- );
- end;
- // Dynamic version of RtlSubAuthoritySid
- function RtlSubAuthoritySid(
- pSid : PSID;
- nSubAuthority : DWORD
- ): PDWORD; stdcall;
- begin
- GetProcedureAddress(_RtlSubAuthoritySid, ntdll, 'RtlSubAuthoritySid');
- Result := TFNRtlSubAuthoritySid(_RtlSubAuthoritySid)(
- pSid, nSubAuthority
- );
- end;
- // Dynamic version of RtlSystemTimeToLocalTime
- function RtlSystemTimeToLocalTime(
- SystemTime : PLARGE_INTEGER;
- LocalTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlSystemTimeToLocalTime, ntdll, 'RtlSystemTimeToLocalTime');
- Result := TFNRtlSystemTimeToLocalTime(_RtlSystemTimeToLocalTime)(
- SystemTime, LocalTime
- );
- end;
- // Dynamic version of RtlTimeFieldsToTime
- function RtlTimeFieldsToTime(
- TimeFields : PTIME_FIELDS;
- Time : PLARGE_INTEGER
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlTimeFieldsToTime, ntdll, 'RtlTimeFieldsToTime');
- Result := TFNRtlTimeFieldsToTime(_RtlTimeFieldsToTime)(
- TimeFields, Time
- );
- end;
- // Dynamic version of RtlTimeToElapsedTimeFields
- procedure RtlTimeToElapsedTimeFields(
- Time : PLARGE_INTEGER;
- TimeFields : PTIME_FIELDS
- ); stdcall;
- begin
- GetProcedureAddress(_RtlTimeToElapsedTimeFields, ntdll, 'RtlTimeToElapsedTimeFields');
- TFNRtlTimeToElapsedTimeFields(_RtlTimeToElapsedTimeFields)(
- Time, TimeFields
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlTimeToSecondsSince1970
- function RtlTimeToSecondsSince1970(
- Time : PLARGE_INTEGER;
- ElapsedSeconds : PULONG
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlTimeToSecondsSince1970, ntdll, 'RtlTimeToSecondsSince1970');
- Result := TFNRtlTimeToSecondsSince1970(_RtlTimeToSecondsSince1970)(
- Time, ElapsedSeconds
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlTimeToSecondsSince1980
- function RtlTimeToSecondsSince1980(
- Time : PLARGE_INTEGER;
- ElapsedSeconds : PULONG
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlTimeToSecondsSince1980, ntdll, 'RtlTimeToSecondsSince1980');
- Result := TFNRtlTimeToSecondsSince1980(_RtlTimeToSecondsSince1980)(
- Time, ElapsedSeconds
- );
- end;
- // Dynamic version of RtlTimeToTimeFields
- procedure RtlTimeToTimeFields(
- Time : PLARGE_INTEGER;
- TimeFields : PTIME_FIELDS
- ); stdcall;
- begin
- GetProcedureAddress(_RtlTimeToTimeFields, ntdll, 'RtlTimeToTimeFields');
- TFNRtlTimeToTimeFields(_RtlTimeToTimeFields)(
- Time, TimeFields
- );
- end;
- // Dynamic version of RtlTryEnterCriticalSection
- function RtlTryEnterCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ): BOOL; stdcall;
- begin
- GetProcedureAddress(_RtlTryEnterCriticalSection, ntdll, 'RtlTryEnterCriticalSection');
- Result := TFNRtlTryEnterCriticalSection(_RtlTryEnterCriticalSection)(
- lpCriticalSection
- );
- end;
- // Dynamic version of RtlUnicodeStringToAnsiSize
- function RtlUnicodeStringToAnsiSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlUnicodeStringToAnsiSize, ntdll, 'RtlUnicodeStringToAnsiSize');
- Result := TFNRtlUnicodeStringToAnsiSize(_RtlUnicodeStringToAnsiSize)(
- UnicodeString
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlUnicodeStringToAnsiString
- function RtlUnicodeStringToAnsiString(
- DestinationString : PANSI_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUnicodeStringToAnsiString, ntdll, 'RtlUnicodeStringToAnsiString');
- Result := TFNRtlUnicodeStringToAnsiString(_RtlUnicodeStringToAnsiString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlUnicodeStringToCountedOemString
- function RtlUnicodeStringToCountedOemString(
- DestinationString : POEM_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUnicodeStringToCountedOemString, ntdll, 'RtlUnicodeStringToCountedOemString');
- Result := TFNRtlUnicodeStringToCountedOemString(_RtlUnicodeStringToCountedOemString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlUnicodeStringToInteger
- function RtlUnicodeStringToInteger(
- Str : PUNICODE_STRING;
- Base : ULONG;
- Value : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUnicodeStringToInteger, ntdll, 'RtlUnicodeStringToInteger');
- Result := TFNRtlUnicodeStringToInteger(_RtlUnicodeStringToInteger)(
- Str, Base, Value
- );
- end;
- // Dynamic version of RtlUnicodeStringToOemSize
- function RtlUnicodeStringToOemSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlUnicodeStringToOemSize, ntdll, 'RtlUnicodeStringToOemSize');
- Result := TFNRtlUnicodeStringToOemSize(_RtlUnicodeStringToOemSize)(
- UnicodeString
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of RtlUnicodeStringToOemString
- function RtlUnicodeStringToOemString(
- DestinationString : POEM_STRING;
- SourceString : PCUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUnicodeStringToOemString, ntdll, 'RtlUnicodeStringToOemString');
- Result := TFNRtlUnicodeStringToOemString(_RtlUnicodeStringToOemString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlUnicodeToMultiByteSize
- function RtlUnicodeToMultiByteSize(
- BytesInMultiByteString : PULONG;
- UnicodeString : PWSTR;
- BytesInUnicodeString : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUnicodeToMultiByteSize, ntdll, 'RtlUnicodeToMultiByteSize');
- Result := TFNRtlUnicodeToMultiByteSize(_RtlUnicodeToMultiByteSize)(
- BytesInMultiByteString, UnicodeString, BytesInUnicodeString
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- // Dynamic version of RtlUniform
- function RtlUniform(
- Seed : PULONG
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlUniform, ntdll, 'RtlUniform');
- Result := TFNRtlUniform(_RtlUniform)(
- Seed
- );
- end;
- // Dynamic version of RtlUnwind
- procedure RtlUnwind(
- TargetFrame : PVOID;
- TargetIp : PVOID;
- ExceptionRecord : PEXCEPTION_RECORD;
- ReturnValue : PVOID
- ); stdcall;
- begin
- GetProcedureAddress(_RtlUnwind, ntdll, 'RtlUnwind');
- TFNRtlUnwind(_RtlUnwind)(
- TargetFrame, TargetIp, ExceptionRecord, ReturnValue
- );
- end;
- // Dynamic version of RtlUpcaseUnicodeChar
- function RtlUpcaseUnicodeChar(
- SourceCharacter : WCHAR
- ): WCHAR; stdcall;
- begin
- GetProcedureAddress(_RtlUpcaseUnicodeChar, ntdll, 'RtlUpcaseUnicodeChar');
- Result := TFNRtlUpcaseUnicodeChar(_RtlUpcaseUnicodeChar)(
- SourceCharacter
- );
- end;
- // Dynamic version of RtlUpcaseUnicodeString
- function RtlUpcaseUnicodeString(
- DestinationString : PUNICODE_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUpcaseUnicodeString, ntdll, 'RtlUpcaseUnicodeString');
- Result := TFNRtlUpcaseUnicodeString(_RtlUpcaseUnicodeString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlUpcaseUnicodeStringToAnsiString
- function RtlUpcaseUnicodeStringToAnsiString(
- DestinationString : PSTRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUpcaseUnicodeStringToAnsiString, ntdll, 'RtlUpcaseUnicodeStringToAnsiString');
- Result := TFNRtlUpcaseUnicodeStringToAnsiString(_RtlUpcaseUnicodeStringToAnsiString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlUpcaseUnicodeStringToCountedOemString
- function RtlUpcaseUnicodeStringToCountedOemString(
- DestinationString : PSTRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUpcaseUnicodeStringToCountedOemString, ntdll, 'RtlUpcaseUnicodeStringToCountedOemString');
- Result := TFNRtlUpcaseUnicodeStringToCountedOemString(_RtlUpcaseUnicodeStringToCountedOemString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlUpcaseUnicodeStringToOemString
- function RtlUpcaseUnicodeStringToOemString(
- DestinationString : PSTRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUpcaseUnicodeStringToOemString, ntdll, 'RtlUpcaseUnicodeStringToOemString');
- Result := TFNRtlUpcaseUnicodeStringToOemString(_RtlUpcaseUnicodeStringToOemString)(
- DestinationString, SourceString, AllocateDestinationString
- );
- end;
- // Dynamic version of RtlUpcaseUnicodeToMultiByteN
- function RtlUpcaseUnicodeToMultiByteN(
- MbString : PCHAR;
- MbSize : ULONG;
- var ResultSize : ULONG;
- UnicodeString : PWSTR;
- UnicodeSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUpcaseUnicodeToMultiByteN, ntdll, 'RtlUpcaseUnicodeToMultiByteN');
- Result := TFNRtlUpcaseUnicodeToMultiByteN(_RtlUpcaseUnicodeToMultiByteN)(
- MbString, MbSize, ResultSize, UnicodeString, UnicodeSize
- );
- end;
- // Dynamic version of RtlUpcaseUnicodeToOemN
- function RtlUpcaseUnicodeToOemN(
- OemString : PCHAR;
- OemSize : ULONG;
- var ResultSize : ULONG;
- UnicodeString : PWSTR;
- UnicodeSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlUpcaseUnicodeToOemN, ntdll, 'RtlUpcaseUnicodeToOemN');
- Result := TFNRtlUpcaseUnicodeToOemN(_RtlUpcaseUnicodeToOemN)(
- OemString, OemSize, ResultSize, UnicodeString, UnicodeSize
- );
- end;
- // Dynamic version of RtlUpperChar
- function RtlUpperChar(
- Character : CHAR
- ): CHAR; stdcall;
- begin
- GetProcedureAddress(_RtlUpperChar, ntdll, 'RtlUpperChar');
- Result := TFNRtlUpperChar(_RtlUpperChar)(
- Character
- );
- end;
- // Dynamic version of RtlUpperString
- procedure RtlUpperString(
- DestinationString : PSTRING;
- SourceString : PSTRING
- ); stdcall;
- begin
- GetProcedureAddress(_RtlUpperString, ntdll, 'RtlUpperString');
- TFNRtlUpperString(_RtlUpperString)(
- DestinationString, SourceString
- );
- end;
- // Dynamic version of RtlValidAcl
- function RtlValidAcl(
- Acl : PACL
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlValidAcl, ntdll, 'RtlValidAcl');
- Result := TFNRtlValidAcl(_RtlValidAcl)(
- Acl
- );
- end;
- // Dynamic version of RtlValidRelativeSecurityDescriptor
- function RtlValidRelativeSecurityDescriptor(
- SecurityDescriptorInput : PSECURITY_DESCRIPTOR;
- SecurityDescriptorLength : ULONG;
- RequiredInformation : SECURITY_INFORMATION
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlValidRelativeSecurityDescriptor, ntdll, 'RtlValidRelativeSecurityDescriptor');
- Result := TFNRtlValidRelativeSecurityDescriptor(_RtlValidRelativeSecurityDescriptor)(
- SecurityDescriptorInput, SecurityDescriptorLength, RequiredInformation
- );
- end;
- // Dynamic version of RtlValidSecurityDescriptor
- function RtlValidSecurityDescriptor(
- SecurityDescriptor : PSECURITY_DESCRIPTOR
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlValidSecurityDescriptor, ntdll, 'RtlValidSecurityDescriptor');
- Result := TFNRtlValidSecurityDescriptor(_RtlValidSecurityDescriptor)(
- SecurityDescriptor
- );
- end;
- // Dynamic version of RtlValidSid
- function RtlValidSid(
- pSid : PSID
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlValidSid, ntdll, 'RtlValidSid');
- Result := TFNRtlValidSid(_RtlValidSid)(
- pSid
- );
- end;
- // Dynamic version of RtlValidateHeap
- function RtlValidateHeap(
- hHeap : HANDLE;
- dwFlags : ULONG;
- lpMem : LPCVOID
- ): BOOL; stdcall;
- begin
- GetProcedureAddress(_RtlValidateHeap, ntdll, 'RtlValidateHeap');
- Result := TFNRtlValidateHeap(_RtlValidateHeap)(
- hHeap, dwFlags, lpMem
- );
- end;
- // Dynamic version of RtlValidateUnicodeString
- function RtlValidateUnicodeString(
- dwMustBeNull : ULONG;
- ValidateThis : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlValidateUnicodeString, ntdll, 'RtlValidateUnicodeString');
- Result := TFNRtlValidateUnicodeString(_RtlValidateUnicodeString)(
- dwMustBeNull, ValidateThis
- );
- end;
- // Dynamic version of RtlVerifyVersionInfo
- function RtlVerifyVersionInfo(
- VersionInfo : PRTL_OSVERSIONINFOEXW;
- TypeMask : ULONG;
- ConditionMask : ULONGLONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlVerifyVersionInfo, ntdll, 'RtlVerifyVersionInfo');
- Result := TFNRtlVerifyVersionInfo(_RtlVerifyVersionInfo)(
- VersionInfo, TypeMask, ConditionMask
- );
- end;
- // Dynamic version of RtlVolumeDeviceToDosName
- function RtlVolumeDeviceToDosName(
- VolumeDeviceObject : PVOID;
- DosName : PUNICODE_STRING
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlVolumeDeviceToDosName, ntdll, 'RtlVolumeDeviceToDosName');
- Result := TFNRtlVolumeDeviceToDosName(_RtlVolumeDeviceToDosName)(
- VolumeDeviceObject, DosName
- );
- end;
- // Dynamic version of RtlWriteRegistryValue
- function RtlWriteRegistryValue(
- RelativeTo : ULONG;
- Path : LPCWSTR;
- ValueName : LPCWSTR;
- ValueType : ULONG;
- ValueData : PVOID;
- ValueLength : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlWriteRegistryValue, ntdll, 'RtlWriteRegistryValue');
- Result := TFNRtlWriteRegistryValue(_RtlWriteRegistryValue)(
- RelativeTo, Path, ValueName, ValueType, ValueData, ValueLength
- );
- end;
- // Dynamic version of RtlZeroHeap
- function RtlZeroHeap(
- hHeap : HANDLE;
- dwFlags : ULONG
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlZeroHeap, ntdll, 'RtlZeroHeap');
- Result := TFNRtlZeroHeap(_RtlZeroHeap)(
- hHeap, dwFlags
- );
- end;
- // Dynamic version of RtlZeroMemory
- procedure RtlZeroMemory(
- Destination : PVOID;
- Length : SIZE_T
- ); stdcall;
- begin
- GetProcedureAddress(_RtlZeroMemory, ntdll, 'RtlZeroMemory');
- TFNRtlZeroMemory(_RtlZeroMemory)(
- Destination, Length
- );
- end;
- // Dynamic version of RtlpNotOwnerCriticalSection
- function RtlpNotOwnerCriticalSection(
- lpCriticalSection : PRTL_CRITICAL_SECTION
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlpNotOwnerCriticalSection, ntdll, 'RtlpNotOwnerCriticalSection');
- Result := TFNRtlpNotOwnerCriticalSection(_RtlpNotOwnerCriticalSection)(
- lpCriticalSection
- );
- end;
- // Dynamic version of RtlpNtCreateKey
- function RtlpNtCreateKey(
- KeyHandle : PHANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- Unused1 : ULONG;
- Unused2 : ULONG;
- Disposition : PULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlpNtCreateKey, ntdll, 'RtlpNtCreateKey');
- Result := TFNRtlpNtCreateKey(_RtlpNtCreateKey)(
- KeyHandle, DesiredAccess, ObjectAttributes, Unused1, Unused2, Disposition
- );
- end;
- // Dynamic version of RtlpNtEnumerateSubKey
- function RtlpNtEnumerateSubKey(
- KeyHandle : HANDLE;
- SubKeyName : PUNICODE_STRING;
- Index : ULONG;
- Unused1 : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlpNtEnumerateSubKey, ntdll, 'RtlpNtEnumerateSubKey');
- Result := TFNRtlpNtEnumerateSubKey(_RtlpNtEnumerateSubKey)(
- KeyHandle, SubKeyName, Index, Unused1
- );
- end;
- // Dynamic version of RtlpNtMakeTemporaryKey
- function RtlpNtMakeTemporaryKey(
- KeyHandle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlpNtMakeTemporaryKey, ntdll, 'RtlpNtMakeTemporaryKey');
- Result := TFNRtlpNtMakeTemporaryKey(_RtlpNtMakeTemporaryKey)(
- KeyHandle
- );
- end;
- // Dynamic version of RtlpNtOpenKey
- function RtlpNtOpenKey(
- KeyHandle : HANDLE;
- DesiredAccess : ACCESS_MASK;
- ObjectAttributes : POBJECT_ATTRIBUTES;
- Unused : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlpNtOpenKey, ntdll, 'RtlpNtOpenKey');
- Result := TFNRtlpNtOpenKey(_RtlpNtOpenKey)(
- KeyHandle, DesiredAccess, ObjectAttributes, Unused
- );
- end;
- // Dynamic version of RtlpNtQueryValueKey
- function RtlpNtQueryValueKey(
- KeyHandle : HANDLE;
- Type_ : PULONG;
- Data : PVOID;
- DataSize : PULONG;
- Unused : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlpNtQueryValueKey, ntdll, 'RtlpNtQueryValueKey');
- Result := TFNRtlpNtQueryValueKey(_RtlpNtQueryValueKey)(
- KeyHandle, Type_, Data, DataSize, Unused
- );
- end;
- // Dynamic version of RtlpNtSetValueKey
- function RtlpNtSetValueKey(
- KeyHandle : HANDLE;
- Type_ : ULONG;
- Data : PVOID;
- DataSize : ULONG
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_RtlpNtSetValueKey, ntdll, 'RtlpNtSetValueKey');
- Result := TFNRtlpNtSetValueKey(_RtlpNtSetValueKey)(
- KeyHandle, Type_, Data, DataSize
- );
- end;
- // Dynamic version of RtlxAnsiStringToUnicodeSize
- function RtlxAnsiStringToUnicodeSize(
- AnsiString : PANSI_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlxAnsiStringToUnicodeSize, ntdll, 'RtlxAnsiStringToUnicodeSize');
- Result := TFNRtlxAnsiStringToUnicodeSize(_RtlxAnsiStringToUnicodeSize)(
- AnsiString
- );
- end;
- // Dynamic version of RtlxOemStringToUnicodeSize
- function RtlxOemStringToUnicodeSize(
- AnsiString : POEM_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlxOemStringToUnicodeSize, ntdll, 'RtlxOemStringToUnicodeSize');
- Result := TFNRtlxOemStringToUnicodeSize(_RtlxOemStringToUnicodeSize)(
- AnsiString
- );
- end;
- // Dynamic version of RtlxUnicodeStringToAnsiSize
- function RtlxUnicodeStringToAnsiSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlxUnicodeStringToAnsiSize, ntdll, 'RtlxUnicodeStringToAnsiSize');
- Result := TFNRtlxUnicodeStringToAnsiSize(_RtlxUnicodeStringToAnsiSize)(
- UnicodeString
- );
- end;
- // Dynamic version of RtlxUnicodeStringToOemSize
- function RtlxUnicodeStringToOemSize(
- UnicodeString : PUNICODE_STRING
- ): ULONG; stdcall;
- begin
- GetProcedureAddress(_RtlxUnicodeStringToOemSize, ntdll, 'RtlxUnicodeStringToOemSize');
- Result := TFNRtlxUnicodeStringToOemSize(_RtlxUnicodeStringToOemSize)(
- UnicodeString
- );
- end;
- {$IFNDEF JWA_INCLUDEMODE}
- // Dynamic version of VerSetConditionMask
- function VerSetConditionMask(
- ConditionMask : ULONGLONG;
- dwTypeMask : DWORD;
- Condition : BYTE
- ): ULONGLONG; stdcall;
- begin
- GetProcedureAddress(_VerSetConditionMask, ntdll, 'VerSetConditionMask');
- Result := TFNVerSetConditionMask(_VerSetConditionMask)(
- ConditionMask, dwTypeMask, Condition
- );
- end;
- {$ENDIF JWA_INCLUDEMODE}
- {$ENDIF RTDL}
- (*
- Function forwarders which are not implemented by this unit
- because they are available only on the 64bit editions of
- Windows XP and Windows 2003 Server.
- [KERNEL32.dll]RtlCaptureContext -> NTDLL.RtlCaptureContext
- [KERNEL32.dll]RtlCaptureStackBackTrace -> NTDLL.RtlCaptureStackBackTrace
- Usually the Kernel32 functions are documented in the Platform SDK, so knowing
- of these function forwarders gives you the chance to find out the prototype of
- the respective Native API to which the call is forwarded.
- The following usermode Native APIs are not included in this unit:
- -----------------------------------------------------------------
- CsrAllocateCaptureBuffer [NT3, NT4, W2K, WXP, 2K3]
- CsrAllocateMessagePointer [NT3, NT4, W2K, WXP, 2K3]
- CsrCaptureMessageBuffer [NT3, NT4, W2K, WXP, 2K3]
- CsrCaptureMessageMultiUnicodeStringsInPlace [WXP, 2K3]
- CsrCaptureMessageString [NT3, NT4, W2K, WXP, 2K3]
- CsrCaptureTimeout [NT3, NT4, W2K, WXP, 2K3]
- CsrClientCallServer [NT3, NT4, W2K, WXP, 2K3]
- CsrClientConnectToServer [NT3, NT4, W2K, WXP, 2K3]
- CsrFreeCaptureBuffer [NT3, NT4, W2K, WXP, 2K3]
- CsrIdentifyAlertableThread [NT3, NT4, W2K, WXP, 2K3]
- CsrNewThread [NT3, NT4, W2K, WXP, 2K3]
- CsrProbeForRead [NT3, NT4, W2K, WXP, 2K3]
- CsrProbeForWrite [NT3, NT4, W2K, WXP, 2K3]
- CsrSetPriorityClass [NT3, NT4, W2K, WXP, 2K3]
- DbgPrintEx [WXP, 2K3]
- DbgPrintReturnControlC [W2K, WXP, 2K3]
- DbgPrompt [NT3, NT4, W2K, WXP, 2K3]
- DbgSsHandleKmApiMsg [NT3, NT4, W2K]
- DbgSsInitialize [NT3, NT4, W2K]
- DbgUiConnectToDbg [NT3, NT4, W2K, WXP, 2K3]
- DbgUiContinue [NT3, NT4, W2K, WXP, 2K3]
- DbgUiConvertStateChangeStructure [WXP, 2K3]
- DbgUiDebugActiveProcess [WXP, 2K3]
- DbgUiGetThreadDebugObject [WXP, 2K3]
- DbgUiIssueRemoteBreakin [WXP, 2K3]
- DbgUiRemoteBreakin [WXP, 2K3]
- DbgUiSetThreadDebugObject [WXP, 2K3]
- DbgUiStopDebugging [WXP, 2K3]
- DbgUiWaitStateChange [NT3, NT4, W2K, WXP, 2K3]
- DbgUserBreakPoint [NT3, NT4, W2K, WXP, 2K3]
- EtwControlTraceA [2K3]
- EtwControlTraceW [2K3]
- EtwCreateTraceInstanceId [2K3]
- EtwEnableTrace [2K3]
- EtwEnumerateTraceGuids [2K3]
- EtwFlushTraceA [2K3]
- EtwFlushTraceW [2K3]
- EtwGetTraceEnableFlags [2K3]
- EtwGetTraceEnableLevel [2K3]
- EtwGetTraceLoggerHandle [2K3]
- EtwNotificationRegistrationA [2K3]
- EtwNotificationRegistrationW [2K3]
- EtwQueryAllTracesA [2K3]
- EtwQueryAllTracesW [2K3]
- EtwQueryTraceA [2K3]
- EtwQueryTraceW [2K3]
- EtwReceiveNotificationsA [2K3]
- EtwReceiveNotificationsW [2K3]
- EtwRegisterTraceGuidsA [2K3]
- EtwRegisterTraceGuidsW [2K3]
- EtwStartTraceA [2K3]
- EtwStartTraceW [2K3]
- EtwStopTraceA [2K3]
- EtwStopTraceW [2K3]
- EtwTraceEvent [2K3]
- EtwTraceEventInstance [2K3]
- EtwTraceMessage [2K3]
- EtwTraceMessageVa [2K3]
- EtwUnregisterTraceGuids [2K3]
- EtwUpdateTraceA [2K3]
- EtwUpdateTraceW [2K3]
- EtwpGetTraceBuffer [2K3]
- EtwpSetHWConfigFunction [2K3]
- KiUserApcDispatcher [NT3, NT4, W2K, WXP, 2K3]
- KiUserCallbackDispatcher [NT3, NT4, W2K, WXP, 2K3]
- KiUserExceptionDispatcher [NT3, NT4, W2K, WXP, 2K3]
- LdrAccessOutOfProcessResource [WXP, 2K3]
- LdrAddRefDll [WXP, 2K3]
- LdrCreateOutOfProcessImage [WXP, 2K3]
- LdrDestroyOutOfProcessImage [WXP, 2K3]
- LdrEnumResources [NT3, NT4, W2K, WXP, 2K3]
- LdrEnumerateLoadedModules [WXP, 2K3]
- LdrFindCreateProcessManifest [WXP, 2K3]
- LdrFindEntryForAddress [NT3, NT4, W2K, WXP, 2K3]
- LdrFindResourceDirectory_U [NT3, NT4, W2K, WXP, 2K3]
- LdrFindResourceEx_U [WXP, 2K3]
- LdrFindResource_U [NT3, NT4, W2K, WXP, 2K3]
- LdrFlushAlternateResourceModules [W2K, WXP, 2K3]
- LdrGetDllHandleEx [WXP, 2K3]
- LdrHotPatchRoutine [2K3]
- LdrInitShimEngineDynamic [WXP, 2K3]
- LdrInitializeThunk [NT3, NT4, W2K, WXP, 2K3]
- LdrLoadAlternateResourceModule [W2K, WXP, 2K3]
- LdrLockLoaderLock [WXP, 2K3]
- LdrProcessRelocationBlock [NT3, NT4, W2K, WXP, 2K3]
- LdrQueryImageFileExecutionOptionsEx [2K3]
- LdrSetAppCompatDllRedirectionCallback [WXP, 2K3]
- LdrSetDllManifestProber [WXP, 2K3]
- LdrUnloadAlternateResourceModule [W2K, WXP, 2K3]
- LdrUnlockLoaderLock [WXP, 2K3]
- LdrVerifyImageMatchesChecksum [NT3, NT4, W2K, WXP, 2K3]
- NPXEMULATORTABLE [NT3, NT4, W2K]
- NlsAnsiCodePage [NT4, W2K, WXP, 2K3]
- NlsMbCodePageTag [NT3, NT4, W2K, WXP, 2K3]
- NlsMbOemCodePageTag [NT3, NT4, W2K, WXP, 2K3]
- NtAddBootEntry [WXP, 2K3]
- NtAddDriverEntry [2K3]
- NtApphelpCacheControl [2K3]
- NtCompactKeys [WXP, 2K3]
- NtCompareTokens [WXP, 2K3]
- NtCompressKey [WXP, 2K3]
- NtCreateDebugObject [WXP, 2K3]
- NtCreateJobSet [WXP, 2K3]
- NtCreateKeyedEvent [WXP, 2K3]
- NtCreateProcessEx [WXP, 2K3]
- NtDebugContinue [WXP, 2K3]
- NtDeleteBootEntry [WXP, 2K3]
- NtDeleteDriverEntry [2K3]
- NtEnumerateBootEntries [WXP, 2K3]
- NtEnumerateDriverEntries [2K3]
- NtEnumerateSystemEnvironmentValuesEx [WXP, 2K3]
- NtIsProcessInJob [WXP, 2K3]
- NtLoadKeyEx [2K3]
- NtLockProductActivationKeys [WXP, 2K3]
- NtLockRegistryKey [WXP, 2K3]
- NtModifyBootEntry [WXP, 2K3]
- NtModifyDriverEntry [2K3]
- NtOpenKeyedEvent [WXP, 2K3]
- NtOpenProcessTokenEx [WXP, 2K3]
- NtOpenThreadTokenEx [WXP, 2K3]
- NtQueryBootEntryOrder [WXP, 2K3]
- NtQueryBootOptions [WXP, 2K3]
- NtQueryDebugFilterState [WXP, 2K3]
- NtQueryDriverEntryOrder [2K3]
- NtQueryOpenSubKeysEx [2K3]
- NtQuerySystemEnvironmentValueEx [WXP, 2K3]
- NtReleaseKeyedEvent [WXP, 2K3]
- NtRenameKey [WXP, 2K3]
- NtSetBootEntryOrder [WXP, 2K3]
- NtSetBootOptions [WXP, 2K3]
- NtSetDebugFilterState [WXP, 2K3]
- NtSetDriverEntryOrder [2K3]
- NtSetEventBoostPriority [WXP, 2K3]
- NtSetInformationDebugObject [WXP, 2K3]
- NtSetSystemEnvironmentValueEx [WXP, 2K3]
- NtTraceEvent [WXP, 2K3]
- NtTranslateFilePath [WXP, 2K3]
- NtUnloadKey2 [2K3]
- NtUnloadKeyEx [WXP, 2K3]
- NtWaitForDebugEvent [WXP, 2K3]
- NtWaitForKeyedEvent [WXP, 2K3]
- PfxFindPrefix [NT3, NT4, W2K, WXP, 2K3]
- PfxInitialize [NT3, NT4, W2K, WXP, 2K3]
- PfxInsertPrefix [NT3, NT4, W2K, WXP, 2K3]
- PfxRemovePrefix [NT3, NT4, W2K, WXP, 2K3]
- PropertyLengthAsVariant [NT4, W2K, WXP, 2K3]
- RestoreEm87Context [NT3, NT4, W2K, WXP, 2K3]
- RtlAbortRXact [NT3, NT4, W2K, WXP, 2K3]
- RtlAcquireResourceExclusive [NT3, NT4, W2K, WXP, 2K3]
- RtlAcquireResourceShared [NT3, NT4, W2K, WXP, 2K3]
- RtlActivateActivationContext [WXP, 2K3]
- RtlActivateActivationContextEx [WXP, 2K3]
- RtlActivateActivationContextUnsafeFast [WXP, 2K3]
- RtlAddAccessAllowedObjectAce [W2K, WXP, 2K3]
- RtlAddAccessDeniedObjectAce [W2K, WXP, 2K3]
- RtlAddActionToRXact [NT3, NT4, W2K, WXP, 2K3]
- RtlAddAtomToAtomTable [NT4, W2K, WXP, 2K3]
- RtlAddAttributeActionToRXact [NT3, NT4, W2K, WXP, 2K3]
- RtlAddAuditAccessObjectAce [W2K, WXP, 2K3]
- RtlAddCompoundAce [NT4, W2K, WXP, 2K3]
- RtlAddRefActivationContext [WXP, 2K3]
- RtlAddRefMemoryStream [WXP, 2K3]
- RtlAddressInSectionTable [WXP, 2K3]
- RtlAllocateHandle [NT4, W2K, WXP, 2K3]
- RtlAppendPathElement [WXP, 2K3]
- RtlApplicationVerifierStop [WXP, 2K3]
- RtlApplyRXact [NT3, NT4, W2K, WXP, 2K3]
- RtlApplyRXactNoFlush [NT3, NT4, W2K, WXP, 2K3]
- RtlAssert2 [WXP]
- RtlCallbackLpcClient [W2K]
- RtlCancelTimer [W2K, WXP, 2K3]
- RtlCaptureStackBackTrace [NT3, NT4, W2K, WXP, 2K3]
- RtlCaptureStackContext [WXP, 2K3]
- RtlCheckProcessParameters [WXP, 2K3]
- RtlCloneMemoryStream [WXP, 2K3]
- RtlCommitMemoryStream [WXP, 2K3]
- RtlCompressBuffer [NT3, NT4, W2K, WXP, 2K3]
- RtlComputeCrc32 [WXP, 2K3]
- RtlComputeImportTableHash [WXP, 2K3]
- RtlComputePrivatizedDllName_U [WXP, 2K3]
- RtlConsoleMultiByteToUnicodeN [NT3, NT4, W2K, WXP, 2K3]
- RtlConvertExclusiveToShared [NT3, NT4, W2K, WXP, 2K3]
- RtlConvertPropertyToVariant [NT4, W2K, WXP, 2K3]
- RtlConvertSharedToExclusive [NT3, NT4, W2K, WXP, 2K3]
- RtlConvertToAutoInheritSecurityObject [W2K, WXP, 2K3]
- RtlConvertUiListToApiList [NT3, NT4, W2K, WXP, 2K3]
- RtlConvertVariantToProperty [NT4, W2K, WXP, 2K3]
- RtlCopyLuidAndAttributesArray [NT3, NT4, W2K, WXP, 2K3]
- RtlCopyMappedMemory [2K3]
- RtlCopyMemoryStreamTo [WXP, 2K3]
- RtlCopyOutOfProcessMemoryStreamTo [WXP, 2K3]
- RtlCopySidAndAttributesArray [NT3, NT4, W2K, WXP, 2K3]
- RtlCreateActivationContext [WXP, 2K3]
- RtlCreateAndSetSD [NT3, NT4, W2K, WXP, 2K3]
- RtlCreateAtomTable [NT4, W2K, WXP, 2K3]
- RtlCreateBootStatusDataFile [WXP, 2K3]
- RtlCreateEnvironment [NT3, NT4, W2K, WXP, 2K3]
- RtlCreateLpcServer [W2K]
- RtlCreateSystemVolumeInformationFolder [WXP, 2K3]
- RtlCreateTagHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlCreateTimer [W2K, WXP, 2K3]
- RtlCreateTimerQueue [W2K, WXP, 2K3]
- RtlCreateUserSecurityObject [NT3, NT4, W2K, WXP, 2K3]
- RtlCustomCPToUnicodeN [NT3, NT4, W2K, WXP, 2K3]
- RtlDeactivateActivationContext [WXP, 2K3]
- RtlDeactivateActivationContextUnsafeFast [WXP, 2K3]
- RtlDebugPrintTimes [W2K, WXP, 2K3]
- RtlDecompressBuffer [NT3, NT4, W2K, WXP, 2K3]
- RtlDecompressFragment [NT3, NT4, W2K, WXP, 2K3]
- RtlDefaultNpAcl [W2K, WXP, 2K3]
- RtlDeleteAtomFromAtomTable [NT4, W2K, WXP, 2K3]
- RtlDeleteElementGenericTable [NT3, NT4, W2K, WXP, 2K3]
- RtlDeleteElementGenericTableAvl [WXP, 2K3]
- RtlDeleteNoSplay [NT4, W2K, WXP, 2K3]
- RtlDeleteResource [NT3, NT4, W2K, WXP, 2K3]
- RtlDeleteSecurityObject [NT3, NT4, W2K, WXP, 2K3]
- RtlDeleteTimer [W2K, WXP, 2K3]
- RtlDeleteTimerQueue [W2K, WXP, 2K3]
- RtlDeleteTimerQueueEx [W2K, WXP, 2K3]
- RtlDeregisterWait [W2K, WXP, 2K3]
- RtlDeregisterWaitEx [W2K, WXP, 2K3]
- RtlDestroyAtomTable [NT4, W2K, WXP, 2K3]
- RtlDestroyEnvironment [NT3, NT4, W2K, WXP, 2K3]
- RtlDestroyHandleTable [NT4, W2K, WXP, 2K3]
- RtlDllShutdownInProgress [WXP, 2K3]
- RtlDosApplyFileIsolationRedirection_Ustr [WXP, 2K3]
- RtlDosPathNameToRelativeNtPathName_U [2K3]
- RtlDosSearchPath_Ustr [WXP, 2K3]
- RtlDumpResource [NT3, NT4, W2K, WXP, 2K3]
- RtlEmptyAtomTable [NT4, W2K, WXP, 2K3]
- RtlEnumProcessHeaps [NT3, NT4, W2K, WXP, 2K3]
- RtlEnumerateGenericTable [NT3, NT4, W2K, WXP, 2K3]
- RtlEnumerateGenericTableAvl [WXP, 2K3]
- RtlEnumerateGenericTableLikeADirectory [WXP, 2K3]
- RtlEnumerateGenericTableWithoutSplaying [NT3, NT4, W2K, WXP, 2K3]
- RtlEnumerateGenericTableWithoutSplayingAvl [WXP, 2K3]
- RtlExitUserThread [WXP, 2K3]
- RtlExtendHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlFinalReleaseOutOfProcessMemoryStream [WXP, 2K3]
- RtlFindActivationContextSectionGuid [WXP, 2K3]
- RtlFindActivationContextSectionString [WXP, 2K3]
- RtlFindClearRuns [WXP, 2K3]
- RtlFindMessage [NT3, NT4, W2K, WXP, 2K3]
- RtlFirstEntrySList [WXP, 2K3]
- RtlFlushSecureMemoryCache [WXP, 2K3]
- RtlFormatMessage [NT3, NT4, W2K, WXP, 2K3]
- RtlFreeHandle [NT4, W2K, WXP, 2K3]
- RtlFreeThreadActivationContextStack [WXP, 2K3]
- RtlFreeUserThreadStack [NT4, W2K, WXP, 2K3]
- RtlGenerate8dot3Name [NT3, NT4, W2K, WXP, 2K3]
- RtlGetActiveActivationContext [WXP, 2K3]
- RtlGetCompressionWorkSpaceSize [NT3, NT4, W2K, WXP, 2K3]
- RtlGetElementGenericTable [NT3, NT4, W2K, WXP, 2K3]
- RtlGetElementGenericTableAvl [WXP, 2K3]
- RtlGetFrame [WXP, 2K3]
- RtlGetFullPathName_UstrEx [2K3]
- RtlGetLengthWithoutLastFullDosOrNtPathElement [WXP, 2K3]
- RtlGetLengthWithoutTrailingPathSeperators [WXP, 2K3]
- RtlGetNativeSystemInformation [WXP, 2K3]
- RtlGetSecurityDescriptorRMControl [W2K, WXP, 2K3]
- RtlGetSetBootStatusData [WXP, 2K3]
- RtlGetThreadErrorMode [2K3]
- RtlGetUnloadEventTrace [2K3]
- RtlGetUserInfoHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlHashUnicodeString [WXP, 2K3]
- RtlImpersonateLpcClient [W2K]
- RtlInitCodePageTable [NT3, NT4, W2K, WXP, 2K3]
- RtlInitMemoryStream [WXP, 2K3]
- RtlInitNlsTables [NT3, NT4, W2K, WXP, 2K3]
- RtlInitOutOfProcessMemoryStream [WXP, 2K3]
- RtlInitializeAtomPackage [NT4, W2K, WXP, 2K3]
- RtlInitializeContext [NT3, NT4, W2K, WXP, 2K3]
- RtlInitializeGenericTable [NT3, NT4, W2K, WXP, 2K3]
- RtlInitializeGenericTableAvl [WXP, 2K3]
- RtlInitializeHandleTable [NT4, W2K, WXP, 2K3]
- RtlInitializeRXact [NT3, NT4, W2K, WXP, 2K3]
- RtlInitializeResource [NT3, NT4, W2K, WXP, 2K3]
- RtlInsertElementGenericTable [NT3, NT4, W2K, WXP, 2K3]
- RtlInsertElementGenericTableAvl [WXP, 2K3]
- RtlInsertElementGenericTableFull [2K3]
- RtlInsertElementGenericTableFullAvl [2K3]
- RtlInterlockedCompareExchange64 [2K3]
- RtlInterlockedPushListSList [WXP, 2K3]
- RtlIpv4AddressToStringExA [2K3]
- RtlIpv4AddressToStringExW [2K3]
- RtlIpv4StringToAddressA [WXP, 2K3]
- RtlIpv4StringToAddressExA [2K3]
- RtlIpv4StringToAddressExW [2K3]
- RtlIpv4StringToAddressW [WXP, 2K3]
- RtlIpv6AddressToStringA [WXP, 2K3]
- RtlIpv6AddressToStringExA [2K3]
- RtlIpv6AddressToStringExW [2K3]
- RtlIpv6AddressToStringW [WXP, 2K3]
- RtlIpv6StringToAddressA [WXP, 2K3]
- RtlIpv6StringToAddressExA [2K3]
- RtlIpv6StringToAddressExW [2K3]
- RtlIpv6StringToAddressW [WXP, 2K3]
- RtlIsActivationContextActive [WXP, 2K3]
- RtlIsGenericTableEmpty [NT3, NT4, W2K, WXP, 2K3]
- RtlIsGenericTableEmptyAvl [WXP, 2K3]
- RtlIsThreadWithinLoaderCallout [WXP, 2K3]
- RtlIsValidHandle [NT4, W2K, WXP, 2K3]
- RtlIsValidIndexHandle [NT4, W2K, WXP, 2K3]
- RtlLockBootStatusData [WXP, 2K3]
- RtlLockMemoryStreamRegion [WXP, 2K3]
- RtlLogStackBackTrace [WXP, 2K3]
- RtlLookupAtomInAtomTable [NT4, W2K, WXP, 2K3]
- RtlLookupElementGenericTable [NT3, NT4, W2K, WXP, 2K3]
- RtlLookupElementGenericTableAvl [WXP, 2K3]
- RtlLookupElementGenericTableFull [2K3]
- RtlLookupElementGenericTableFullAvl [2K3]
- RtlMultiAppendUnicodeStringBuffer [WXP, 2K3]
- RtlMultiByteToUnicodeN [NT3, NT4, W2K, WXP, 2K3]
- RtlMultiByteToUnicodeSize [NT3, NT4, W2K, WXP, 2K3]
- RtlMultipleAllocateHeap [2K3]
- RtlMultipleFreeHeap [2K3]
- RtlNewInstanceSecurityObject [NT3, NT4, W2K, WXP, 2K3]
- RtlNewSecurityGrantedAccess [NT3, NT4, W2K, WXP, 2K3]
- RtlNewSecurityObject [NT3, NT4, W2K, WXP, 2K3]
- RtlNewSecurityObjectEx [W2K, WXP, 2K3]
- RtlNewSecurityObjectWithMultipleInheritance [WXP, 2K3]
- RtlNtPathNameToDosPathName [WXP, 2K3]
- RtlNumberGenericTableElements [NT3, NT4, W2K, WXP, 2K3]
- RtlNumberGenericTableElementsAvl [WXP, 2K3]
- RtlPcToFileHeader [NT3, NT4, W2K, WXP, 2K3]
- RtlPinAtomInAtomTable [NT4, W2K, WXP, 2K3]
- RtlPopFrame [WXP, 2K3]
- RtlProtectHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlPushFrame [WXP, 2K3]
- RtlQueryAtomInAtomTable [NT4, W2K, WXP, 2K3]
- RtlQueryHeapInformation [W2K, WXP, 2K3]
- RtlQueryInformationActivationContext [WXP, 2K3]
- RtlQueryInformationActiveActivationContext [WXP, 2K3]
- RtlQueryInterfaceMemoryStream [WXP, 2K3]
- RtlQueryProcessBackTraceInformation [NT3, NT4, W2K, WXP, 2K3]
- RtlQueryProcessHeapInformation [NT3, NT4, W2K, WXP, 2K3]
- RtlQueryProcessLockInformation [NT3, NT4, W2K, WXP, 2K3]
- RtlQuerySecurityObject [NT3, NT4, W2K, WXP, 2K3]
- RtlQueryTagHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlQueryTimeZoneInformation [NT3, NT4, W2K, WXP, 2K3]
- RtlQueueApcWow64Thread [WXP, 2K3]
- RtlQueueWorkItem [W2K, WXP, 2K3]
- RtlRaiseException [NT3, NT4, W2K, WXP, 2K3]
- RtlReadMemoryStream [WXP, 2K3]
- RtlReadOutOfProcessMemoryStream [WXP, 2K3]
- RtlRealPredecessor [NT3, NT4, W2K, WXP, 2K3]
- RtlRealSuccessor [NT3, NT4, W2K, WXP, 2K3]
- RtlRegisterSecureMemoryCacheCallback [WXP, 2K3]
- RtlRegisterWait [W2K, WXP, 2K3]
- RtlReleaseActivationContext [WXP, 2K3]
- RtlReleaseMemoryStream [WXP, 2K3]
- RtlReleaseRelativeName [2K3]
- RtlReleaseResource [NT3, NT4, W2K, WXP, 2K3]
- RtlRemoteCall [NT3, NT4, W2K, WXP, 2K3]
- RtlResetRtlTranslations [NT3, NT4, W2K, WXP, 2K3]
- RtlRevertMemoryStream [WXP, 2K3]
- RtlSeekMemoryStream [WXP, 2K3]
- RtlSelfRelativeToAbsoluteSD2 [W2K, WXP, 2K3]
- RtlSetAttributesSecurityDescriptor [NT4, W2K, WXP, 2K3]
- RtlSetCurrentEnvironment [NT3, NT4, W2K, WXP, 2K3]
- RtlSetEnvironmentStrings [2K3]
- RtlSetEnvironmentVariable [NT3, NT4, W2K, WXP, 2K3]
- RtlSetHeapInformation [W2K, WXP, 2K3]
- RtlSetIoCompletionCallback [W2K, WXP, 2K3]
- RtlSetMemoryStreamSize [WXP, 2K3]
- RtlSetSecurityDescriptorRMControl [W2K, WXP, 2K3]
- RtlSetSecurityObject [NT3, NT4, W2K, WXP, 2K3]
- RtlSetSecurityObjectEx [W2K, WXP, 2K3]
- RtlSetThreadErrorMode [2K3]
- RtlSetThreadPoolStartFunc [W2K, WXP, 2K3]
- RtlSetTimeZoneInformation [NT3, NT4, W2K, WXP, 2K3]
- RtlSetTimer [W2K, WXP, 2K3]
- RtlSetUnicodeCallouts [NT4, W2K, WXP, 2K3]
- RtlSetUserFlagsHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlSetUserValueHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlShutdownLpcServer [W2K]
- RtlSplay [NT3, NT4, W2K, WXP, 2K3]
- RtlStartRXact [NT3, NT4, W2K, WXP, 2K3]
- RtlStatMemoryStream [WXP, 2K3]
- RtlSubtreePredecessor [NT3, NT4, W2K, WXP, 2K3]
- RtlSubtreeSuccessor [NT3, NT4, W2K, WXP, 2K3]
- RtlTraceDatabaseAdd [W2K, WXP, 2K3]
- RtlTraceDatabaseCreate [W2K, WXP, 2K3]
- RtlTraceDatabaseDestroy [W2K, WXP, 2K3]
- RtlTraceDatabaseEnumerate [W2K, WXP, 2K3]
- RtlTraceDatabaseFind [W2K, WXP, 2K3]
- RtlTraceDatabaseLock [W2K, WXP, 2K3]
- RtlTraceDatabaseUnlock [W2K, WXP, 2K3]
- RtlTraceDatabaseValidate [W2K, WXP, 2K3]
- RtlUnhandledExceptionFilter [WXP, 2K3]
- RtlUnhandledExceptionFilter2 [WXP, 2K3]
- RtlUnicodeToCustomCPN [NT3, NT4, W2K, WXP, 2K3]
- RtlUnicodeToMultiByteN [NT3, NT4, W2K, WXP, 2K3]
- RtlUnicodeToOemN [NT3, NT4, W2K, WXP, 2K3]
- RtlUnlockBootStatusData [WXP, 2K3]
- RtlUnlockHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlUnlockMemoryStreamRegion [WXP, 2K3]
- RtlUpcaseUnicodeToCustomCPN [NT3, NT4, W2K, WXP, 2K3]
- RtlUpdateTimer [W2K, WXP, 2K3]
- RtlUsageHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlValidateProcessHeaps [NT3, NT4, W2K, WXP, 2K3]
- RtlWalkFrameChain [W2K, WXP, 2K3]
- RtlWalkHeap [NT3, NT4, W2K, WXP, 2K3]
- RtlWow64EnableFsRedirection [2K3]
- RtlWriteMemoryStream [WXP, 2K3]
- RtlZombifyActivationContext [WXP, 2K3]
- RtlpApplyLengthFunction [WXP, 2K3]
- RtlpEnsureBufferSize [WXP, 2K3]
- RtlpUnWaitCriticalSection [NT3, NT4, W2K, WXP, 2K3]
- RtlpWaitForCriticalSection [NT3, NT4, W2K, WXP, 2K3]
- SaveEm87Context [NT3, NT4, W2K, WXP, 2K3]
- ZwAddBootEntry [WXP, 2K3]
- ZwAddDriverEntry [2K3]
- ZwApphelpCacheControl [2K3]
- ZwCompactKeys [WXP, 2K3]
- ZwCompareTokens [WXP, 2K3]
- ZwCompressKey [WXP, 2K3]
- ZwCreateDebugObject [WXP, 2K3]
- ZwCreateJobSet [WXP, 2K3]
- ZwCreateKeyedEvent [WXP, 2K3]
- ZwCreateProcessEx [WXP, 2K3]
- ZwDebugContinue [WXP, 2K3]
- ZwDeleteBootEntry [WXP, 2K3]
- ZwDeleteDriverEntry [2K3]
- ZwEnumerateBootEntries [WXP, 2K3]
- ZwEnumerateDriverEntries [2K3]
- ZwEnumerateSystemEnvironmentValuesEx [WXP, 2K3]
- ZwIsProcessInJob [WXP, 2K3]
- ZwLoadKeyEx [2K3]
- ZwLockProductActivationKeys [WXP, 2K3]
- ZwLockRegistryKey [WXP, 2K3]
- ZwModifyBootEntry [WXP, 2K3]
- ZwModifyDriverEntry [2K3]
- ZwOpenKeyedEvent [WXP, 2K3]
- ZwOpenProcessTokenEx [WXP, 2K3]
- ZwOpenThreadTokenEx [WXP, 2K3]
- ZwQueryBootEntryOrder [WXP, 2K3]
- ZwQueryBootOptions [WXP, 2K3]
- ZwQueryDebugFilterState [WXP, 2K3]
- ZwQueryDriverEntryOrder [2K3]
- ZwQueryOpenSubKeysEx [2K3]
- ZwQuerySystemEnvironmentValueEx [WXP, 2K3]
- ZwReleaseKeyedEvent [WXP, 2K3]
- ZwRenameKey [WXP, 2K3]
- ZwSetBootEntryOrder [WXP, 2K3]
- ZwSetBootOptions [WXP, 2K3]
- ZwSetDebugFilterState [WXP, 2K3]
- ZwSetDriverEntryOrder [2K3]
- ZwSetEventBoostPriority [WXP, 2K3]
- ZwSetInformationDebugObject [WXP, 2K3]
- ZwSetSystemEnvironmentValueEx [WXP, 2K3]
- ZwTraceEvent [WXP, 2K3]
- ZwTranslateFilePath [WXP, 2K3]
- ZwUnloadKey2 [2K3]
- ZwUnloadKeyEx [WXP, 2K3]
- ZwWaitForDebugEvent [WXP, 2K3]
- ZwWaitForKeyedEvent [WXP, 2K3]
- + 457 (35.90%) not yet declared
- + 816 (64.10%) declared already
- = 1273 (100.00%) relevant functions overall
- The following usermode Native APIs are considered deprecated
- since they are only available in NT3 or NT4 only or in NT3/NT4
- only. Hence they are considered irrelevant. These are:
- -----------------------------------------------------------------
- CsrAllocateCapturePointer [NT3, NT4]
- CsrClientMaxMessage [NT3]
- CsrClientSendMessage [NT3]
- CsrClientThreadConnect [NT3]
- CsrpProcessCallbackRequest [NT3]
- NtEnumerateBus [NT3]
- NtQueryOleDirectoryFile [NT4]
- NtRegisterNewDevice [NT3]
- NtReleaseProcessMutant [NT3]
- NtWaitForProcessMutant [NT3]
- RtlClosePropertySet [NT4]
- RtlCompareVariants [NT4]
- RtlCreatePropertySet [NT4]
- RtlEnumerateProperties [NT4]
- RtlFindLongestRunSet [NT3, NT4]
- RtlFlushPropertySet [NT4]
- RtlGuidToPropertySetName [NT4]
- RtlOnMappedStreamEvent [NT4]
- RtlPropertySetNameToGuid [NT4]
- RtlQueryProperties [NT4]
- RtlQueryPropertyNames [NT4]
- RtlQueryPropertySet [NT4]
- RtlSetProperties [NT4]
- RtlSetPropertyNames [NT4]
- RtlSetPropertySetClassId [NT4]
- RtlpInitializeRtl [NT3]
- ZwEnumerateBus [NT3]
- ZwQueryOleDirectoryFile [NT4]
- ZwRegisterNewDevice [NT3]
- ZwReleaseProcessMutant [NT3]
- ZwWaitForProcessMutant [NT3]
- = 31 deprecated functions
- *)
- {$ENDIF JWA_INTERFACESECTION}
- {$IFNDEF JWA_OMIT_SECTIONS}
- end.
- {$ENDIF JWA_OMIT_SECTIONS}
|