12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043 |
- {******************************************************************************}
- { }
- { 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.21 2005/09/03 14:27:48 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/ **}
- {** **}
- {******************************************************************************}
- unit JwaNative;
- interface
- {$INCLUDE jediapilib.inc}
- uses
- JwaWinType, JwaWinBase, JwaNTStatus, JwaWinNT;
- {$WEAKPACKAGEUNIT}
- // For native APIs we consider RTDL the better method of importing
- {$DEFINE RTDL}
- {$IFDEF RTDL}{$DEFINE DYNAMIC_LINK}{$ENDIF}
- const
- ntdll = 'ntdll.dll';
- //------------------------------------------------------------------------------
- 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;
- _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;
- THREAD_INFORMATION_CLASS = THREADINFOCLASS;
- TThreadInfoClass = THREADINFOCLASS;
- KAFFINITY = ULONG;
- PKAFFINITY = ^KAFFINITY;
- 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;
- UUID = GUID;
- _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;
- _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;
- _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
- _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;
- _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;
- 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;
- _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;
- TSystemTimeOfDayInformation = SYSTEM_TIME_OF_DAY_INFORMATION;
- PSystemTimeOfDayInformation = ^TSystemTimeOfDayInformation;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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
- _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;
- _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;
- type
- PLANGID = ^LANGID;
- 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;
- 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;
- PRTL_OSVERSIONINFOW = ^OSVERSIONINFOW;
- TOsVersionInfoW = OSVERSIONINFOW;
- //POsVersionInfoW = ^TOsVersionInfoW;
- OSVERSIONINFO = OSVERSIONINFOW;
- POSVERSIONINFO = POSVERSIONINFOW;
- LPOSVERSIONINFO = LPOSVERSIONINFOW;
- const
- VER_PLATFORM_WIN32s = 0;
- VER_PLATFORM_WIN32_WINDOWS = 1;
- VER_PLATFORM_WIN32_NT = 2;
- 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;
- 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;
- //
- // RtlVerifyVersionInfo() conditions
- //
- const
- 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;
- //
- // 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;
- const
- // Should be defined, but isn't
- HEAP_ZERO_MEMORY = $00000008;
- 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}
- {$IFDEF WIN2000}
- _PEB = _PEB_W2K;
- {$ENDIF}
- {$IFDEF WINXP}
- _PEB = _PEB_WXP;
- {$ENDIF}
- {$IFDEF WIN2003}
- _PEB = _PEB_2K3;
- {$ENDIF}
- PEB = _PEB;
- PPEB = ^_PEB;
- PPPEB = ^PPEB;
- // =================================================================
- // 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;
- 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;
- ACTCTX = tagACTCTX;
- PACTCTX = ^tagACTCTX;
- 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;
- DUPLICATE_CLOSE_SOURCE = $00000001;
- DUPLICATE_SAME_ACCESS = $00000002;
- DUPLICATE_SAME_ATTRIBUTES = $00000004;
- //
- // 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.
- //
- 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
- 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!
- //
- 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;
- //
- // 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
- function NtClose(
- Handle : HANDLE
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- 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}
- // 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}
- 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}
- // 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}
- 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}
- // 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}
- 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}
- // 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}
- function ZwQueryInformationProcess(ProcessHandle: HANDLE; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: PVOID; ProcessInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;
- {$ENDIF}
- // 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}
- 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}
- // 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}
- 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
- function NtQuerySystemTime(
- CurrentTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- 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}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function NtWaitForSingleObject(
- Handle : HANDLE;
- Alertable : BOOLEAN;
- Timeout : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- 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}
- // 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}
- // 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}
- // 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}
- // 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}
- // 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}
- // 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}
- // 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}
- // 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}
- // 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}
- // Compatibility: WXP, 2K3
- procedure RtlInitializeSListHead(
- ListHead : PSLIST_HEADER
- ); stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // 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}
- // 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}
- // 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}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlIsNameLegalDOS8Dot3(
- Name : PUNICODE_STRING;
- OemName : POEM_STRING;
- NameContainsSpaces : PBOOLEAN
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // 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}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlLocalTimeToSystemTime(
- LocalTime : PLARGE_INTEGER;
- SystemTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // 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}
- // Compatibility: WXP, 2K3
- function RtlQueryDepthSList(
- ListHead : PSLIST_HEADER
- ): USHORT; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // 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}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlTimeToSecondsSince1970(
- Time : PLARGE_INTEGER;
- ElapsedSeconds : PULONG
- ): BOOLEAN; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // 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
- function RtlUnicodeStringToAnsiString(
- DestinationString : PANSI_STRING;
- SourceString : PUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // 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}
- // Compatibility: NT3, NT4, W2K, WXP, 2K3
- function RtlUnicodeStringToOemString(
- DestinationString : POEM_STRING;
- SourceString : PCUNICODE_STRING;
- AllocateDestinationString : BOOLEAN
- ): NTSTATUS; stdcall; {$IFNDEF RTDL}external ntdll;{$ENDIF}
- // 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}
- // 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}
- // 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}
- //// 810 automatically created prototype entries.
- //// END : Function prototypes
- implementation
- // 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+24] // PEB+$30 holds the ProcessHeap's handle
- {$endif cpu386}
- {$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:[24]
- {$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:[24]
- 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
- {$ifdef cpux86_64}
- mov ECX, EAX
- {$endif cpux86_64}
- bswap EAX
- (*
- // 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 cpu386}
- {$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;
- _RtlCaptureContext : Pointer = nil;
- _RtlCharToInteger : Pointer = nil;
- _RtlCheckForOrphanedCriticalSections : Pointer = nil;
- _RtlCheckRegistryKey : Pointer = nil;
- _RtlClearAllBits : Pointer = nil;
- _RtlClearBits : Pointer = nil;
- _RtlCompactHeap : Pointer = nil;
- _RtlCompareMemory : Pointer = nil;
- _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;
- _RtlInitializeSListHead : Pointer = nil;
- _RtlInitializeSid : Pointer = nil;
- _RtlInt64ToUnicodeString : Pointer = nil;
- _RtlIntegerToChar : Pointer = nil;
- _RtlIntegerToUnicodeString : Pointer = nil;
- _RtlInterlockedFlushSList : Pointer = nil;
- _RtlInterlockedPopEntrySList : Pointer = nil;
- _RtlInterlockedPushEntrySList : Pointer = nil;
- _RtlInvertRangeList : Pointer = nil;
- _RtlIpv4AddressToStringA : Pointer = nil;
- _RtlIpv4AddressToStringW : Pointer = nil;
- _RtlIsDosDeviceName_U : Pointer = nil;
- _RtlIsNameLegalDOS8Dot3 : Pointer = nil;
- _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;
- _RtlLocalTimeToSystemTime : Pointer = nil;
- _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;
- _RtlTimeToSecondsSince1970 : Pointer = nil;
- _RtlTimeToSecondsSince1980 : Pointer = nil;
- _RtlTimeToTimeFields : Pointer = nil;
- _RtlTryEnterCriticalSection : Pointer = nil;
- _RtlUnicodeStringToAnsiSize : Pointer = nil;
- _RtlUnicodeStringToAnsiString : Pointer = nil;
- _RtlUnicodeStringToCountedOemString : Pointer = nil;
- _RtlUnicodeStringToInteger : Pointer = nil;
- _RtlUnicodeStringToOemSize : Pointer = nil;
- _RtlUnicodeStringToOemString : Pointer = nil;
- _RtlUnicodeToMultiByteSize : Pointer = nil;
- _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;
- _VerSetConditionMask : Pointer = nil;
- // 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;
- // Dynamic version of NtClose
- function NtClose(
- Handle : HANDLE
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtClose, ntdll, 'NtClose');
- Result := TFNNtClose(_NtClose)(
- Handle
- );
- end;
- // 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;
- // 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;
- // 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;
- // Dynamic version of NtCurrentTeb
- function NtCurrentTeb(): PTEB; stdcall;
- begin
- GetProcedureAddress(_NtCurrentTeb, ntdll, 'NtCurrentTeb');
- Result := TFNNtCurrentTeb(_NtCurrentTeb)();
- end;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // Dynamic version of NtQuerySystemTime
- function NtQuerySystemTime(
- CurrentTime : PLARGE_INTEGER
- ): NTSTATUS; stdcall;
- begin
- GetProcedureAddress(_NtQuerySystemTime, ntdll, 'NtQuerySystemTime');
- Result := TFNNtQuerySystemTime(_NtQuerySystemTime)(
- CurrentTime
- );
- end;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // Dynamic version of RtlInitializeSListHead
- procedure RtlInitializeSListHead(
- ListHead : PSLIST_HEADER
- ); stdcall;
- begin
- GetProcedureAddress(_RtlInitializeSListHead, ntdll, 'RtlInitializeSListHead');
- TFNRtlInitializeSListHead(_RtlInitializeSListHead)(
- ListHead
- );
- end;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // Dynamic version of RtlTimeToSecondsSince1970
- function RtlTimeToSecondsSince1970(
- Time : PLARGE_INTEGER;
- ElapsedSeconds : PULONG
- ): BOOLEAN; stdcall;
- begin
- GetProcedureAddress(_RtlTimeToSecondsSince1970, ntdll, 'RtlTimeToSecondsSince1970');
- Result := TFNRtlTimeToSecondsSince1970(_RtlTimeToSecondsSince1970)(
- Time, ElapsedSeconds
- );
- end;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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;
- // 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 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
- *)
- end.
|