1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992 |
- // Interface unit for the Windows NT Native API
- // Copyright (C) 1999, 2000 Marcel van Brakel
- unit JwaNative;
- interface
- uses
- JwaWinBase, JwaWinNT, JwaWinType;
- {$WEAKPACKAGEUNIT}
- {$I jediapilib.inc}
- const
- ntdll = 'ntdll.dll';
- //------------------------------------------------------------------------------
- // Temporaries from NTDDK.H to be removed when fully converted.
- 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;
- _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;
- 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;
- 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,
- MaxThreadInfoClass);
- THREADINFOCLASS = _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,
- MaxProcessInfoClass);
- PROCESSINFOCLASS = _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;
- 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;
- _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;
- 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;
- _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;
- _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;
- _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;
- _FILE_POSITION_INFORMATION = record
- CurrentByteOffset: LARGE_INTEGER;
- end;
- FILE_POSITION_INFORMATION = _FILE_POSITION_INFORMATION;
- PFILE_POSITION_INFORMATION = ^FILE_POSITION_INFORMATION;
- _FILE_ALIGNMENT_INFORMATION = record
- AlignmentRequirement: ULONG;
- end;
- FILE_ALIGNMENT_INFORMATION = _FILE_ALIGNMENT_INFORMATION;
- PFILE_ALIGNMENT_INFORMATION = ^FILE_ALIGNMENT_INFORMATION;
- _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;
- _KEY_VALUE_INFORMATION_CLASS = (
- KeyValueBasicInformation,
- KeyValueFullInformation,
- KeyValuePartialInformation,
- KeyValueFullInformationAlign64,
- KeyValuePartialInformationAlign64);
- KEY_VALUE_INFORMATION_CLASS = _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;
- _DEVICE_POWER_STATE = (
- PowerDeviceUnspecified,
- PowerDeviceD0,
- PowerDeviceD1,
- PowerDeviceD2,
- PowerDeviceD3,
- PowerDeviceMaximum);
- DEVICE_POWER_STATE = _DEVICE_POWER_STATE;
- PDEVICE_POWER_STATE = ^DEVICE_POWER_STATE;
- POWER_ACTION =(
- PowerActionNone,
- PowerActionReserved,
- PowerActionSleep,
- PowerActionHibernate,
- PowerActionShutdown,
- PowerActionShutdownReset,
- PowerActionShutdownOff,
- PowerActionWarmEject);
- PPOWER_ACTION = ^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;
- POWER_INFORMATION_LEVEL = (
- SystemPowerPolicyAc,
- SystemPowerPolicyDc,
- VerifySystemPolicyAc,
- VerifySystemPolicyDc,
- SystemPowerCapabilities,
- SystemBatteryState,
- SystemPowerStateHandler,
- ProcessorStateHandler,
- SystemPowerPolicyCurrent,
- AdministratorPowerPolicy,
- SystemReserveHiberFile,
- ProcessorInformation,
- SystemPowerInformation);
- _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;
- 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;
- _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;
- // 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;
- function NtQuerySystemInformation(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: PVOID; SystemInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQuerySystemInformation';
- function NtSetSystemInformation(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: PVOID; SystemInformationLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetSystemInformation';
- 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;
- _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;
- _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;
- _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;
- _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;
- THREAD_STATE = (
- StateInitialized,
- StateReady,
- StateRunning,
- StateStandby,
- StateTerminated,
- StateWait,
- StateTransition,
- StateUnknown);
- _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;
- _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;
- _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;
- _SYSTEM_GLOBAL_FLAG = record // Information Class 9
- GlobalFlag: ULONG;
- end;
- SYSTEM_GLOBAL_FLAG = _SYSTEM_GLOBAL_FLAG;
- PSYSTEM_GLOBAL_FLAG = ^SYSTEM_GLOBAL_FLAG;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _SYSTEM_UNLOAD_IMAGE = record // Information Class 27
- ModuleBase: PVOID;
- end;
- SYSTEM_UNLOAD_IMAGE = _SYSTEM_UNLOAD_IMAGE;
- PSYSTEM_UNLOAD_IMAGE = ^SYSTEM_UNLOAD_IMAGE;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _SYSTEM_PRIORITY_SEPARATION = record // Information Class 39
- PrioritySeparation: ULONG;
- end;
- SYSTEM_PRIORITY_SEPARATION = _SYSTEM_PRIORITY_SEPARATION;
- PSYSTEM_PRIORITY_SEPARATION = ^SYSTEM_PRIORITY_SEPARATION;
- _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;
- _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;
- _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;
- _SYSTEM_CREATE_SESSION = record // Information Class 47
- Session: ULONG;
- end;
- SYSTEM_CREATE_SESSION = _SYSTEM_CREATE_SESSION;
- PSYSTEM_CREATE_SESSION = ^SYSTEM_CREATE_SESSION;
- _SYSTEM_DELETE_SESSION = record // Information Class 48
- Session: ULONG;
- end;
- SYSTEM_DELETE_SESSION = _SYSTEM_DELETE_SESSION;
- PSYSTEM_DELETE_SESSION = ^SYSTEM_DELETE_SESSION;
- _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;
- _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;
- _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;
- _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;
- _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;
-
- function NtQuerySystemEnvironmentValue(Name: PUNICODE_STRING; Value: PVOID; ValueLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQuerySystemEnvironmentValue';
- function NtSetSystemEnvironmentValue(Name: PUNICODE_STRING; Value: PUNICODE_STRING): NTSTATUS; stdcall;external ntdll name 'NtSetSystemEnvironmentValue';
- type
- _SHUTDOWN_ACTION = (
- ShutdownNoReboot,
- ShutdownReboot,
- ShutdownPowerOff);
- SHUTDOWN_ACTION = _SHUTDOWN_ACTION;
- function NtShutdownSystem(Action: SHUTDOWN_ACTION): NTSTATUS; stdcall;external ntdll name 'NtShutdownSystem';
- type
- _DEBUG_CONTROL_CODE = (
- DebugFiller0,
- DebugGetTraceInformation,
- DebugSetInternalBreakpoint,
- DebugSetSpecialCall,
- DebugClearSpecialCalls,
- DebugQuerySpecialCalls,
- DebugDbgBreakPoint);
- DEBUG_CONTROL_CODE = _DEBUG_CONTROL_CODE;
- function NtSystemDebugControl(ControlCode: DEBUG_CONTROL_CODE; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID; OutputBufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall;external ntdll name 'NtSystemDebugControl';
- type
- _OBJECT_INFORMATION_CLASS = (
- ObjectBasicInformation,
- ObjectNameInformation,
- ObjectTypeInformation,
- ObjectAllTypesInformation,
- ObjectHandleInformation);
- OBJECT_INFORMATION_CLASS = _OBJECT_INFORMATION_CLASS;
- function NtQueryObject(ObjectHandle: HANDLE; ObjectInformationClass: OBJECT_INFORMATION_CLASS; ObjectInformation: PVOID; ObjectInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryObject';
- function NtSetInformationObject(ObjectHandle: HANDLE; ObjectInformationClass: OBJECT_INFORMATION_CLASS; ObjectInformation: PVOID; ObjectInformationLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetInformationObject';
- 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;
- _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;
- _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;
- _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;
- function NtDuplicateObject(SourceProcessHandle: HANDLE; SourceHandle: HANDLE; TargetProcessHandle: HANDLE; TargetHandle: PHANDLE; DesiredAccess: ACCESS_MASK; Attributes: ULONG; Options: ULONG): NTSTATUS; stdcall; external ntdll name 'NtDuplicateObject';
- function NtMakeTemporaryObject(Handle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtMakeTemporaryObject';
- function NtClose(Handle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtClose';
- function NtQuerySecurityObject(Handle: HANDLE; RequestedInformation: SECURITY_INFORMATION; SecurityDescriptor: PSECURITY_DESCRIPTOR; SecurityDescriptorLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQuerySecurityObject';
- function NtSetSecurityObject(Handle: HANDLE; SecurityInformation: SECURITY_INFORMATION; SecurityDescriptor: PSECURITY_DESCRIPTOR): NTSTATUS; stdcall; external ntdll name 'NtSetSecurityObject';
- function NtCreateDirectoryObject(DirectoryHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtCreateDirectoryObject';
- function NtOpenDirectoryObject(DirectoryHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenDirectoryObject';
- function NtQueryDirectoryObject(DirectoryHandle: HANDLE; Buffer: PVOID; BufferLength: ULONG; ReturnSingleEntry: ByteBool; RestartScan: ByteBool; Context: PULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryDirectoryObject';
- type
- _DIRECTORY_BASIC_INFORMATION = record
- ObjectName: UNICODE_STRING;
- ObjectTypeName: UNICODE_STRING;
- end;
- DIRECTORY_BASIC_INFORMATION = _DIRECTORY_BASIC_INFORMATION;
- PDIRECTORY_BASIC_INFORMATION = ^DIRECTORY_BASIC_INFORMATION;
- function NtCreateSymbolicLinkObject(SymbolicLinkHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TargetName: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'NtCreateSymbolicLinkObject';
- function NtOpenSymbolicLinkObject(SymbolicLinkHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenSymbolicLinkObject';
- function NtQuerySymbolicLinkObject(SymbolicLinkHandle: HANDLE; TargetName: PUNICODE_STRING; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQuerySymbolicLinkObject';
- function NtAllocateVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; ZeroBits: ULONG; AllocationSize: PULONG; AllocationType: ULONG; Protect: ULONG): NTSTATUS; stdcall; external ntdll name 'NtAllocateVirtualMemory';
- function NtFreeVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; FreeSize: PULONG; FreeType: ULONG): NTSTATUS; stdcall; external ntdll name 'NtFreeVirtualMemory';
- type
- _MEMORY_INFORMATION_CLASS = (
- MemoryBasicInformation,
- MemoryWorkingSetList,
- MemorySectionName,
- MemoryBasicVlmInformation);
- MEMORY_INFORMATION_CLASS = _MEMORY_INFORMATION_CLASS;
- function NtQueryVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PVOID; MemoryInformationClass: MEMORY_INFORMATION_CLASS; MemoryInformation: PVOID; MemoryInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryVirtualMemory';
- 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;
- _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;
- _MEMORY_SECTION_NAME = record // Information Class 2
- SectionFileName: UNICODE_STRING;
- end;
- MEMORY_SECTION_NAME = _MEMORY_SECTION_NAME;
- PMEMORY_SECTION_NAME = ^MEMORY_SECTION_NAME;
- function NtLockVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; LockSize: PULONG; LockType: ULONG): NTSTATUS; stdcall; external ntdll name 'NtLockVirtualMemory';
- function NtUnlockVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; LockSize: PULONG; LockType: ULONG): NTSTATUS; stdcall; external ntdll name 'NtUnlockVirtualMemory';
- function NtReadVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PVOID; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtReadVirtualMemory';
- function NtWriteVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PVOID; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtWriteVirtualMemory';
- function NtProtectVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; ProtectSize: PULONG; NewProtect: ULONG; OldProtect: PULONG): NTSTATUS; stdcall; external ntdll name 'NtProtectVirtualMemory';
- function NtFlushVirtualMemory(ProcessHandle: HANDLE; BaseAddress: PPVOID; FlushSize: PULONG; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall; external ntdll name 'NtFlushVirtualMemory';
- function NtAllocateUserPhysicalPages(ProcessHandle: HANDLE; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; external ntdll name 'NtAllocateUserPhysicalPages';
- function NtFreeUserPhysicalPages(ProcessHandle: HANDLE; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; external ntdll name 'NtFreeUserPhysicalPages';
- function NtMapUserPhysicalPages(BaseAddress: PVOID; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; external ntdll name 'NtMapUserPhysicalPages';
- function NtMapUserPhysicalPagesScatter(BaseAddresses: PPVOID; NumberOfPages: PULONG; PageFrameNumbers: PULONG): NTSTATUS; stdcall; external ntdll name 'NtMapUserPhysicalPagesScatter';
- function NtGetWriteWatch(ProcessHandle: HANDLE; Flags: ULONG; BaseAddress: PVOID; RegionSize: ULONG; Buffer: PULONG; BufferEntries: PULONG; Granularity: PULONG): NTSTATUS; stdcall; external ntdll name 'NtGetWriteWatch';
- function NtResetWriteWatch(ProcessHandle: HANDLE; BaseAddress: PVOID; RegionSize: ULONG): NTSTATUS; stdcall; external ntdll name 'NtResetWriteWatch';
- function NtCreateSection(SectionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; SectionSize: PLARGE_INTEGER; Protect: ULONG; Attributes: ULONG; FileHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtCreateSection';
- function NtOpenSection(SectionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenSection';
- type
- _SECTION_INFORMATION_CLASS = (
- SectionBasicInformation,
- SectionImageInformation);
- SECTION_INFORMATION_CLASS = _SECTION_INFORMATION_CLASS;
- function NtQuerySection(SectionHandle: HANDLE; SectionInformationClass: SECTION_INFORMATION_CLASS; SectionInformation: PVOID; SectionInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQuerySection';
- 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;
- _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;
- function NtExtendSection(SectionHandle: HANDLE; SectionSize: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtExtendSection';
- 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; external ntdll name 'NtMapViewOfSection';
- function NtUnmapViewOfSection(ProcessHandle: HANDLE; BaseAddress: PVOID): NTSTATUS; stdcall; external ntdll name 'NtUnmapViewOfSection';
- function NtAreMappedFilesTheSame(Address1: PVOID; Address2: PVOID): NTSTATUS; stdcall; external ntdll name 'NtAreMappedFilesTheSame';
- type
- _USER_STACK = record
- FixedStackBase: PVOID;
- FixedStackLimit: PVOID;
- ExpandableStackBase: PVOID;
- ExpandableStackLimit: PVOID;
- ExpandableStackBottom: PVOID;
- end;
- USER_STACK = _USER_STACK;
- PUSER_STACK = ^USER_STACK;
- function NtCreateThread(ThreadHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ProcessHandle: HANDLE; ClientId: PCLIENT_ID; ThreadContext: PCONTEXT; UserStack: PUSER_STACK; CreateSuspended: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtCreateThread';
- function NtOpenThread(ThreadHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ClientId: PCLIENT_ID): NTSTATUS; stdcall; external ntdll name 'NtOpenThread';
- function NtTerminateThread(ThreadHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall; external ntdll name 'NtTerminateThread';
- function NtQueryInformationThread(ThreadHandle: HANDLE; ThreadInformationClass: THREADINFOCLASS; ThreadInformation: PVOID; ThreadInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryInformationThread';
- function NtSetInformationThread(ThreadHandle: HANDLE; ThreadInformationClass: THREADINFOCLASS; ThreadInformation: PVOID; ThreadInformationLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetInformationThread';
- 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;
- function NtSuspendThread(ThreadHandle: HANDLE; PreviousSuspendCount: PULONG): NTSTATUS; stdcall; external ntdll name 'NtSuspendThread';
- function NtResumeThread(ThreadHandle: HANDLE; PreviousSuspendCount: PULONG): NTSTATUS; stdcall; external ntdll name 'NtResumeThread';
- function NtGetContextThread(ThreadHandle: HANDLE; Context: PCONTEXT): NTSTATUS; stdcall; external ntdll name 'NtGetContextThread';
- function NtSetContextThread(ThreadHandle: HANDLE; Context: PCONTEXT): NTSTATUS; stdcall; external ntdll name 'NtSetContextThread';
- function NtQueueApcThread(ThreadHandle: HANDLE; ApcRoutine: PKNORMAL_ROUTINE; ApcContext: PVOID; Argument1: PVOID; Argument2: PVOID): NTSTATUS; stdcall; external ntdll name 'NtQueueApcThread';
- function NtTestAlert: NTSTATUS; stdcall; external ntdll name 'NtTestAlert';
- function NtAlertThread(ThreadHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtAlertThread';
- function NtAlertResumeThread(ThreadHandle: HANDLE; PreviousSuspendCount: PULONG): NTSTATUS; stdcall; external ntdll name 'NtAlertResumeThread';
- function NtRegisterThreadTerminatePort(PortHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtRegisterThreadTerminatePort';
- function NtImpersonateThread(ThreadHandle: HANDLE; TargetThreadHandle: HANDLE; SecurityQos: PSECURITY_QUALITY_OF_SERVICE): NTSTATUS; stdcall; external ntdll name 'NtImpersonateThread';
- function NtImpersonateAnonymousToken(ThreadHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtImpersonateAnonymousToken';
- function NtCreateProcess(ProcessHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InheritFromProcessHandle: HANDLE; InheritHandles: ByteBool; SectionHandle: HANDLE; DebugPort: HANDLE; ExceptionPort: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtCreateProcess';
- function NtOpenProcess(ProcessHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; ClientId: PCLIENT_ID): NTSTATUS; stdcall; external ntdll name 'NtOpenProcess';
- function NtTerminateProcess(ProcessHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall; external ntdll name 'NtTerminateProcess';
- function NtQueryInformationProcess(ProcessHandle: HANDLE; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: PVOID; ProcessInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryInformationProcess';
- function NtSetInformationProcess(ProcessHandle: HANDLE; ProcessInformationClass: PROCESSINFOCLASS; ProcessInformation: PVOID; ProcessInformationLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetInformationProcess';
- 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;
- _PROCESS_PARAMETERS = record
- AllocationSize: ULONG;
- Size: ULONG;
- Flags: ULONG;
- Zero: ULONG;
- Console: LONG;
- ProcessGroup: ULONG;
- hStdInput: HANDLE;
- hStdOutput: HANDLE;
- hStdError: HANDLE;
- CurrentDirectoryName: UNICODE_STRING;
- CurrentDirectoryHandle: HANDLE;
- DllPath: UNICODE_STRING;
- ImageFile: UNICODE_STRING;
- CommandLine: UNICODE_STRING;
- Environment: PWSTR;
- dwX: ULONG;
- dwY: ULONG;
- dwXSize: ULONG;
- dwYSize: ULONG;
- dwXCountChars: ULONG;
- dwYCountChars: ULONG;
- dwFillAttribute: ULONG;
- dwFlags: ULONG;
- wShowWindow: ULONG;
- WindowTitle: UNICODE_STRING;
- Desktop: UNICODE_STRING;
- Reserved: UNICODE_STRING;
- Reserved2: UNICODE_STRING;
- end;
- PROCESS_PARAMETERS = _PROCESS_PARAMETERS;
- PPROCESS_PARAMETERS = ^PROCESS_PARAMETERS;
- PPPROCESS_PARAMETERS = ^PPROCESS_PARAMETERS;
- function RtlCreateProcessParameters(ProcessParameters: PPPROCESS_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; external ntdll name 'RtlCreateProcessParameters';
- function RtlDestroyProcessParameters(ProcessParameters: PPROCESS_PARAMETERS): NTSTATUS; stdcall; external ntdll name 'RtlDestroyProcessParameters';
- 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;
- 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;
- _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;
- _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;
- function RtlCreateQueryDebugBuffer(Size: ULONG; EventPair: ByteBool): PDEBUG_BUFFER; stdcall; external ntdll name 'RtlCreateQueryDebugBuffer';
- function RtlQueryProcessDebugInformation(ProcessId: ULONG; DebugInfoClassMask: ULONG; DebugBuffer: PDEBUG_BUFFER): NTSTATUS; stdcall; external ntdll name 'RtlQueryProcessDebugInformation';
- function RtlDestroyQueryDebugBuffer(DebugBuffer: PDEBUG_BUFFER): NTSTATUS; stdcall; external ntdll name 'RtlDestroyQueryDebugBuffer';
- function NtCreateJobObject(JobHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtCreateJobObject';
- function NtOpenJobObject(JobHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenJobObject';
- function NtTerminateJobObject(JobHandle: HANDLE; ExitStatus: NTSTATUS): NTSTATUS; stdcall; external ntdll name 'NtTerminateJobObject';
- function NtAssignProcessToJobObject(JobHandle: HANDLE; ProcessHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtAssignProcessToJobObject';
- function NtQueryInformationJobObject(JobHandle: HANDLE; JobInformationClass: JOBOBJECTINFOCLASS; JobInformation: PVOID; JobInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryInformationJobObject';
- function NtSetInformationJobObject(JobHandle: HANDLE; JobInformationClass: JOBOBJECTINFOCLASS; JobInformation: PVOID; JobInformationLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetInformationJobObject';
- 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; external ntdll name 'NtCreateToken';
- function NtOpenProcessToken(ProcessHandle: HANDLE; DesiredAccess: ACCESS_MASK; TokenHandle: PHANDLE): NTSTATUS; stdcall; external ntdll name 'NtOpenProcessToken';
- function NtOpenThreadToken(ThreadHandle: HANDLE; DesiredAccess: ACCESS_MASK; OpenAsSelf: ByteBool; TokenHandle: PHANDLE): NTSTATUS; stdcall; external ntdll name 'NtOpenThreadToken';
- function NtDuplicateToken(ExistingTokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; EffectiveOnly: ByteBool; TokenType: TOKEN_TYPE; NewTokenHandle: PHANDLE): NTSTATUS; stdcall; external ntdll name 'NtDuplicateToken';
- function NtFilterToken(ExistingTokenHandle: HANDLE; Flags: ULONG; SidsToDisable: PTOKEN_GROUPS; PrivilegesToDelete: PTOKEN_PRIVILEGES; SidsToRestricted: PTOKEN_GROUPS; NewTokenHandle: PHANDLE): NTSTATUS; stdcall; external ntdll name 'NtFilterToken';
- function NtAdjustPrivilegesToken(TokenHandle: HANDLE; DisableAllPrivileges: ByteBool; NewState: PTOKEN_PRIVILEGES; BufferLength: ULONG; PreviousState: PTOKEN_PRIVILEGES; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtAdjustPrivilegesToken';
- function NtAdjustGroupsToken(TokenHandle: HANDLE; ResetToDefault: ByteBool; NewState: PTOKEN_GROUPS; BufferLength: ULONG; PreviousState: PTOKEN_GROUPS; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtAdjustGroupsToken';
- function NtQueryInformationToken(TokenHandle: HANDLE; TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: PVOID; TokenInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryInformationToken';
- function NtSetInformationToken(TokenHandle: HANDLE; TokenInformationClass: TOKEN_INFORMATION_CLASS; TokenInformation: PVOID; TokenInformationLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetInformationToken';
- function NtWaitForSingleObject(Handle: HANDLE; Alertable: ByteBool; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtWaitForSingleObject';
- function NtSignalAndWaitForSingleObject(HandleToSignal: HANDLE; HandleToWait: HANDLE; Alertable: ByteBool; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtSignalAndWaitForSingleObject';
- function NtWaitForMultipleObjects(HandleCount: ULONG; Handles: PHANDLE; WaitType: WAIT_TYPE; Alertable: ByteBool; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtWaitForMultipleObjects';
- function NtCreateTimer(TimerHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TimerType: TIMER_TYPE): NTSTATUS; stdcall; external ntdll name 'NtCreateTimer';
- function NtOpenTimer(TimerHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenTimer';
- function NtCancelTimer(TimerHandle: HANDLE; PreviousState: PBOOLEAN): NTSTATUS; stdcall; external ntdll name 'NtCancelTimer';
- type
- PTIMER_APC_ROUTINE = procedure(TimerContext: PVOID; TimerLowValue: ULONG; TimerHighValue: LONG); stdcall;
- function NtSetTimer(TimerHandle: HANDLE; DueTime: PLARGE_INTEGER; TimerApcRoutine: PTIMER_APC_ROUTINE; TimerContext: PVOID; Resume: ByteBool; Period: LONG; PreviousState: PBOOLEAN): NTSTATUS; stdcall; external ntdll name 'NtSetTimer';
- type
- _TIMER_INFORMATION_CLASS = (TimerBasicInformation);
- TIMER_INFORMATION_CLASS = _TIMER_INFORMATION_CLASS;
- function NtQueryTimer(TimerHandle: HANDLE; TimerInformationClass: TIMER_INFORMATION_CLASS; TimerInformation: PVOID; TimerInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryTimer';
- type
- _TIMER_BASIC_INFORMATION = record
- TimeRemaining: LARGE_INTEGER;
- SignalState: ByteBool;
- end;
- TIMER_BASIC_INFORMATION = _TIMER_BASIC_INFORMATION;
- PTIMER_BASIC_INFORMATION = ^TIMER_BASIC_INFORMATION;
- function NtCreateEvent(EventHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; EventType: EVENT_TYPE; InitialState: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtCreateEvent';
- function NtOpenEvent(EventHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenEvent';
- function NtSetEvent(EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; external ntdll name 'NtSetEvent';
- function NtPulseEvent(EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; external ntdll name 'NtPulseEvent';
- function NtResetEvent(EventHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; external ntdll name 'NtResetEvent';
- function NtClearEvent(EventHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtClearEvent';
- type
- _EVENT_INFORMATION_CLASS = (EventBasicInformation);
- EVENT_INFORMATION_CLASS = _EVENT_INFORMATION_CLASS;
- function NtQueryEvent(EventHandle: HANDLE; EventInformationClass: EVENT_INFORMATION_CLASS; EventInformation: PVOID; EventInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryEvent';
- type
- _EVENT_BASIC_INFORMATION = record
- EventType: EVENT_TYPE;
- SignalState: LONG;
- end;
- EVENT_BASIC_INFORMATION = _EVENT_BASIC_INFORMATION;
- PEVENT_BASIC_INFORMATION = ^EVENT_BASIC_INFORMATION;
- function NtCreateSemaphore(SemaphoreHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InitialCount: LONG; MaximumCount: LONG): NTSTATUS; stdcall; external ntdll name 'NtCreateSemaphore';
- function NtOpenSemaphore(SemaphoreHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenSemaphore';
- function NtReleaseSemaphore(SemaphoreHandle: HANDLE; ReleaseCount: LONG; PreviousCount: PLONG): NTSTATUS; stdcall; external ntdll name 'NtReleaseSemaphore';
- type
- _SEMAPHORE_INFORMATION_CLASS = (SemaphoreBasicInformation);
- SEMAPHORE_INFORMATION_CLASS = _SEMAPHORE_INFORMATION_CLASS;
- function NtQuerySemaphore(SemaphoreHandle: HANDLE; SemaphoreInformationClass: SEMAPHORE_INFORMATION_CLASS; SemaphoreInformation: PVOID; SemaphoreInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQuerySemaphore';
- type
- _SEMAPHORE_BASIC_INFORMATION = record
- CurrentCount: LONG;
- MaximumCount: LONG;
- end;
- SEMAPHORE_BASIC_INFORMATION = _SEMAPHORE_BASIC_INFORMATION;
- PSEMAPHORE_BASIC_INFORMATION = ^SEMAPHORE_BASIC_INFORMATION;
- function NtCreateMutant(MutantHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; InitialOwner: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtCreateMutant';
- function NtOpenMutant(MutantHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenMutant';
- function NtReleaseMutant(MutantHandle: HANDLE; PreviousState: PULONG): NTSTATUS; stdcall; external ntdll name 'NtReleaseMutant';
- type
- _MUTANT_INFORMATION_CLASS = (MutantBasicInformation);
- MUTANT_INFORMATION_CLASS = _MUTANT_INFORMATION_CLASS;
- function NtQueryMutant(MutantHandle: HANDLE; MutantInformationClass: MUTANT_INFORMATION_CLASS; MutantInformation: PVOID; MutantInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryMutant';
- type
- _MUTANT_BASIC_INFORMATION = record
- SignalState: LONG;
- Owned: ByteBool;
- Abandoned: ByteBool;
- end;
- MUTANT_BASIC_INFORMATION = _MUTANT_BASIC_INFORMATION;
- PMUTANT_BASIC_INFORMATION = ^MUTANT_BASIC_INFORMATION;
- function NtCreateIoCompletion(IoCompletionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; NumberOfConcurrentThreads: ULONG): NTSTATUS; stdcall; external ntdll name 'NtCreateIoCompletion';
- function NtOpenIoCompletion(IoCompletionHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenIoCompletion';
- function NtSetIoCompletion(IoCompletionHandle: HANDLE; CompletionKey: ULONG; CompletionValue: ULONG; Status: NTSTATUS; Information: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetIoCompletion';
- function NtRemoveIoCompletion(IoCompletionHandle: HANDLE; CompletionKey: PULONG; CompletionValue: PULONG; IoStatusBlock: PIO_STATUS_BLOCK; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtRemoveIoCompletion';
- type
- _IO_COMPLETION_INFORMATION_CLASS = (IoCompletionBasicInformation);
- IO_COMPLETION_INFORMATION_CLASS = _IO_COMPLETION_INFORMATION_CLASS;
- function NtQueryIoCompletion(IoCompletionHandle: HANDLE; IoCompletionInformationClass: IO_COMPLETION_INFORMATION_CLASS; IoCompletionInformation: PVOID; IoCompletionInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryIoCompletion';
- 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;
- function NtCreateEventPair(EventPairHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtCreateEventPair';
- function NtOpenEventPair(EventPairHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenEventPair';
- function NtWaitLowEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtWaitLowEventPair';
- function NtWaitHighEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtWaitHighEventPair';
- function NtSetLowWaitHighEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtSetLowWaitHighEventPair';
- function NtSetHighWaitLowEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtSetHighWaitLowEventPair';
- function NtSetLowEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtSetLowEventPair';
- function NtSetHighEventPair(EventPairHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtSetHighEventPair';
- function NtQuerySystemTime(CurrentTime: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtQuerySystemTime';
- function NtSetSystemTime(NewTime: PLARGE_INTEGER; OldTime: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtSetSystemTime';
- function NtQueryPerformanceCounter(PerformanceCount: PLARGE_INTEGER; PerformanceFrequency: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtQueryPerformanceCounter';
- function NtSetTimerResolution(RequestedResolution: ULONG; Set_: ByteBool; ActualResolution: PULONG): NTSTATUS; stdcall; external ntdll name 'NtSetTimerResolution';
- function NtQueryTimerResolution(CoarsestResolution: PULONG; FinestResolution: PULONG; ActualResolution: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryTimerResolution';
- function NtDelayExecution(Alertable: ByteBool; Interval: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtDelayExecution';
- function NtYieldExecution: NTSTATUS; stdcall; external ntdll name 'NtYieldExecution';
- function NtGetTickCount: ULONG; stdcall; external ntdll name 'NtGetTickCount';
- function NtCreateProfile(ProfileHandle: PHANDLE; ProcessHandle: HANDLE; Base: PVOID; Size: ULONG; BucketShift: ULONG; Buffer: PULONG; BufferLength: ULONG; Source: KPROFILE_SOURCE; ProcessorMask: ULONG): NTSTATUS; stdcall; external ntdll name 'NtCreateProfile';
- function NtSetIntervalProfile(Interval: ULONG; Source: KPROFILE_SOURCE): NTSTATUS; stdcall; external ntdll name 'NtSetIntervalProfile';
- function NtQueryIntervalProfile(Source: KPROFILE_SOURCE; Interval: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryIntervalProfile';
- function NtStartProfile(ProfileHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtStartProfile';
- function NtStopProfile(ProfileHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtStopProfile';
- 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;
- _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;
- _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;
- _PORT_SECTION_READ = record
- Length: ULONG;
- ViewSize: ULONG;
- ViewBase: ULONG;
- end;
- PORT_SECTION_READ = _PORT_SECTION_READ;
- PPORT_SECTION_READ = ^PORT_SECTION_READ;
- function NtCreatePort(PortHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES; MaxDataSize: ULONG; MaxMessageSize: ULONG; Reserved: ULONG): NTSTATUS; stdcall; external ntdll name 'NtCreatePort';
- function NtCreateWaitablePort(PortHandle: PHANDLE; ObjectAttributes: POBJECT_ATTRIBUTES; MaxDataSize: ULONG; MaxMessageSize: ULONG; Reserved: ULONG): NTSTATUS; stdcall; external ntdll name 'NtCreateWaitablePort';
- 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; external ntdll name 'NtConnectPort';
- 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; external ntdll name 'NtSecureConnectPort';
- function NtListenPort(PortHandle: HANDLE; Message: PPORT_MESSAGE): NTSTATUS; stdcall; external ntdll name 'NtListenPort';
- function NtAcceptConnectPort(PortHandle: PHANDLE; PortIdentifier: ULONG; Message: PPORT_MESSAGE; Accept: ByteBool; WriteSection: PPORT_SECTION_WRITE; ReadSection: PPORT_SECTION_READ): NTSTATUS; stdcall; external ntdll name 'NtAcceptConnectPort';
- function NtCompleteConnectPort(PortHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtCompleteConnectPort';
- function NtRequestPort(PortHandle: HANDLE; RequestMessage: PPORT_MESSAGE): NTSTATUS; stdcall; external ntdll name 'NtRequestPort';
- function NtRequestWaitReplyPort(PortHandle: HANDLE; RequestMessage: PPORT_MESSAGE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; external ntdll name 'NtRequestWaitReplyPort';
- function NtReplyPort(PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; external ntdll name 'NtReplyPort';
- function NtReplyWaitReplyPort(PortHandle: HANDLE; ReplyMessage: PPORT_MESSAGE): NTSTATUS; stdcall; external ntdll name 'NtReplyWaitReplyPort';
- function NtReplyWaitReceivePort(PortHandle: HANDLE; PortIdentifier: PULONG; ReplyMessage: PPORT_MESSAGE; Message: PPORT_MESSAGE): NTSTATUS; stdcall; external ntdll name 'NtReplyWaitReceivePort';
- function NtReplyWaitReceivePortEx(PortHandle: HANDLE; PortIdentifier: PULONG; ReplyMessage: PPORT_MESSAGE; Message: PPORT_MESSAGE; Timeout: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtReplyWaitReceivePortEx';
- function NtReadRequestData(PortHandle: HANDLE; Message: PPORT_MESSAGE; Index: ULONG; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtReadRequestData';
- function NtWriteRequestData(PortHandle: HANDLE; Message: PPORT_MESSAGE; Index: ULONG; Buffer: PVOID; BufferLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtWriteRequestData';
- type
- _PORT_INFORMATION_CLASS = (PortBasicInformation);
- PORT_INFORMATION_CLASS = _PORT_INFORMATION_CLASS;
- function NtQueryInformationPort(PortHandle: HANDLE; PortInformationClass: PORT_INFORMATION_CLASS; PortInformation: PVOID; PortInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryInformationPort';
- type
- _PORT_BASIC_INFORMATION = record
- end;
- PORT_BASIC_INFORMATION = _PORT_BASIC_INFORMATION;
- PPORT_BASIC_INFORMATION = ^PORT_BASIC_INFORMATION;
- function NtImpersonateClientOfPort(PortHandle: HANDLE; Message: PPORT_MESSAGE): NTSTATUS; stdcall; external ntdll name 'NtImpersonateClientOfPort';
- 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; external ntdll name 'NtCreateFile';
- function NtOpenFile(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; ShareAccess: ULONG; OpenOptions: ULONG): NTSTATUS; stdcall; external ntdll name 'NtOpenFile';
- function NtDeleteFile(ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtDeleteFile';
- function NtFlushBuffersFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall; external ntdll name 'NtFlushBuffersFile';
- function NtCancelIoFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK): NTSTATUS; stdcall; external ntdll name 'NtCancelIoFile';
- 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; external ntdll name 'NtReadFile';
- 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; external ntdll name 'NtWriteFile';
- 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; external ntdll name 'NtReadFileScatter';
- 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; external ntdll name 'NtWriteFileGather';
- 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: ByteBool; ExclusiveLock: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtLockFile';
- function NtUnlockFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; LockOffset: PULARGE_INTEGER; LockLength: PULARGE_INTEGER; Key: ULONG): NTSTATUS; stdcall; external ntdll name 'NtUnlockFile';
- 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; external ntdll name 'NtDeviceIoControlFile';
- 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; external ntdll name 'NtFsControlFile';
- 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: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtNotifyChangeDirectoryFile';
- 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;
- function NtQueryEaFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_FULL_EA_INFORMATION; BufferLength: ULONG; ReturnSingleEntry: ByteBool; EaList: PFILE_GET_EA_INFORMATION; EaListLength: ULONG; EaIndex: PULONG; RestartScan: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtQueryEaFile';
- function NtSetEaFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_FULL_EA_INFORMATION; BufferLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetEaFile';
- function NtCreateNamedPipeFile(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; ShareAccess: ULONG; CreateDisposition: ULONG; CreateOptions: ULONG; TypeMessage: ByteBool; ReadmodeMessage: ByteBool; Nonblocking: ByteBool; MaxInstances: ULONG; InBufferSize: ULONG; OutBufferSize: ULONG; DefaultTimeout: PLARGE_INTEGER): NTSTATUS; stdcall; external ntdll name 'NtCreateNamedPipeFile';
- 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; external ntdll name 'NtCreateMailslotFile';
- function NtQueryVolumeInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; VolumeInformation: PVOID; VolumeInformationLength: ULONG; VolumeInformationClass: FS_INFORMATION_CLASS): NTSTATUS; stdcall; external ntdll name 'NtQueryVolumeInformationFile';
- function NtSetVolumeInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PVOID; BufferLength: ULONG; VolumeInformationClass: FS_INFORMATION_CLASS): NTSTATUS; stdcall; external ntdll name 'NtSetVolumeInformationFile';
- 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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- _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;
- function NtQueryQuotaInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_USER_QUOTA_INFORMATION; BufferLength: ULONG; ReturnSingleEntry: ByteBool; QuotaList: PFILE_QUOTA_LIST_INFORMATION; QuotaListLength: ULONG; ResumeSid: PSID; RestartScan: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtQueryQuotaInformationFile';
- function NtSetQuotaInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; Buffer: PFILE_USER_QUOTA_INFORMATION; BufferLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetQuotaInformationFile';
- function NtQueryAttributesFile(ObjectAttributes: POBJECT_ATTRIBUTES; FileInformation: PFILE_BASIC_INFORMATION): NTSTATUS; stdcall; external ntdll name 'NtQueryAttributesFile';
- function NtQueryFullAttributesFile(ObjectAttributes: POBJECT_ATTRIBUTES; FileInformation: PFILE_NETWORK_OPEN_INFORMATION): NTSTATUS; stdcall; external ntdll name 'NtQueryFullAttributesFile';
- function NtQueryInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG; FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS; stdcall; external ntdll name 'NtQueryInformationFile';
- function NtSetInformationFile(FileHandle: HANDLE; IoStatusBlock: PIO_STATUS_BLOCK; FileInformation: PVOID; FileInformationLength: ULONG; FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS; stdcall; external ntdll name 'NtSetInformationFile';
- 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: ByteBool; FileName: PUNICODE_STRING; RestartScan: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtQueryDirectoryFile';
- 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;
- _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;
- _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;
- _FILE_INTERNAL_INFORMATION = record // Information Class 6
- FileId: LARGE_INTEGER;
- end;
- FILE_INTERNAL_INFORMATION = _FILE_INTERNAL_INFORMATION;
- PFILE_INTERNAL_INFORMATION = ^FILE_INTERNAL_INFORMATION;
- _FILE_EA_INFORMATION = record // Information Class 7
- EaInformationLength: ULONG;
- end;
- FILE_EA_INFORMATION = _FILE_EA_INFORMATION;
- PFILE_EA_INFORMATION = ^FILE_EA_INFORMATION;
- _FILE_ACCESS_INFORMATION = record // Information Class 8
- GrantedAccess: ACCESS_MASK;
- end;
- FILE_ACCESS_INFORMATION = _FILE_ACCESS_INFORMATION;
- PFILE_ACCESS_INFORMATION = ^FILE_ACCESS_INFORMATION;
- _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;
- _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;
- _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;
- _FILE_MODE_INFORMATION = record // Information Class 16
- Mode: ULONG;
- end;
- FILE_MODE_INFORMATION = _FILE_MODE_INFORMATION;
- PFILE_MODE_INFORMATION = ^FILE_MODE_INFORMATION;
- _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;
- _FILE_ALLOCATION_INFORMATION = record // Information Class 19
- AllocationSize: LARGE_INTEGER;
- end;
- FILE_ALLOCATION_INFORMATION = _FILE_ALLOCATION_INFORMATION;
- PFILE_ALLOCATION_INFORMATION = ^FILE_ALLOCATION_INFORMATION;
- _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;
- _FILE_PIPE_INFORMATION = record // Information Class 23
- ReadModeMessage: ULONG;
- WaitModeBlocking: ULONG;
- end;
- FILE_PIPE_INFORMATION = _FILE_PIPE_INFORMATION;
- PFILE_PIPE_INFORMATION = ^FILE_PIPE_INFORMATION;
- _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;
- _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;
- _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;
- _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;
- _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;
- _FILE_COMPLETION_INFORMATION = record // Information Class 30
- IoCompletionHandle: HANDLE;
- CompletionKey: ULONG;
- end;
- FILE_COMPLETION_INFORMATION = _FILE_COMPLETION_INFORMATION;
- PFILE_COMPLETION_INFORMATION = ^FILE_COMPLETION_INFORMATION;
- function NtCreateKey(KeyHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; TitleIndex: ULONG; Class_: PUNICODE_STRING; CreateOptions: ULONG; Disposition: PULONG): NTSTATUS; stdcall; external ntdll name 'NtCreateKey';
- function NtOpenKey(KeyHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtOpenKey';
- function NtDeleteKey(KeyHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtDeleteKey';
- function NtFlushKey(KeyHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtFlushKey';
- function NtSaveKey(KeyHandle: HANDLE; FileHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtSaveKey';
- function NtSaveMergedKeys(KeyHandle1: HANDLE; KeyHandle2: HANDLE; FileHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtSaveMergedKeys';
- function NtRestoreKey(KeyHandle: HANDLE; FileHandle: HANDLE; Flags: ULONG): NTSTATUS; stdcall; external ntdll name 'NtRestoreKey';
- function NtLoadKey(KeyObjectAttributes: POBJECT_ATTRIBUTES; FileObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtLoadKey';
- function NtLoadKey2(KeyObjectAttributes: POBJECT_ATTRIBUTES; FileObjectAttributes: POBJECT_ATTRIBUTES; Flags: ULONG): NTSTATUS; stdcall; external ntdll name 'NtLoadKey2';
- function NtUnloadKey(KeyObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtUnloadKey';
- function NtReplaceKey(NewFileObjectAttributes: POBJECT_ATTRIBUTES; KeyHandle: HANDLE; OldFileObjectAttributes: POBJECT_ATTRIBUTES): NTSTATUS; stdcall; external ntdll name 'NtReplaceKey';
- function NtSetInformationKey(KeyHandle: HANDLE; KeyInformationClass: KEY_SET_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetInformationKey';
- function NtQueryKey(KeyHandle: HANDLE; KeyInformationClass: KEY_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryKey';
- function NtEnumerateKey(KeyHandle: HANDLE; Index: ULONG; KeyInformationClass: KEY_INFORMATION_CLASS; KeyInformation: PVOID; KeyInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtEnumerateKey';
- function NtNotifyChangeKey(KeyHandle: HANDLE; EventHandle: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; NotifyFilter: ULONG; WatchSubtree: ByteBool; Buffer: PVOID; BufferLength: ULONG; Asynchronous: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtNotifyChangeKey';
- function NtNotifyChangeMultipleKeys(KeyHandle: HANDLE; Flags: ULONG; KeyObjectAttributes: POBJECT_ATTRIBUTES; EventHandle: HANDLE; ApcRoutine: PIO_APC_ROUTINE; ApcContext: PVOID; IoStatusBlock: PIO_STATUS_BLOCK; NotifyFilter: ULONG; WatchSubtree: ByteBool; Buffer: PVOID; BufferLength: ULONG; Asynchronous: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtNotifyChangeMultipleKeys';
- function NtDeleteValueKey(KeyHandle: HANDLE; ValueName: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'NtDeleteValueKey';
- function NtSetValueKey(KeyHandle: HANDLE; ValueName: PUNICODE_STRING; TitleIndex: ULONG; Type_: ULONG; Data: PVOID; DataSize: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetValueKey';
- function NtQueryValueKey(KeyHandle: HANDLE; ValueName: PUNICODE_STRING; KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS; KeyValueInformation: PVOID; KeyValueInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryValueKey';
- function NtEnumerateValueKey(KeyHandle: HANDLE; Index: ULONG; KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS; KeyValueInformation: PVOID; KeyValueInformationLength: ULONG; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtEnumerateValueKey';
- function NtQueryMultipleValueKey(KeyHandle: HANDLE; ValueList: PKEY_VALUE_ENTRY; NumberOfValues: ULONG; Buffer: PVOID; Length: PULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryMultipleValueKey';
- function NtPrivilegeCheck(TokenHandle: HANDLE; RequiredPrivileges: PPRIVILEGE_SET; Result: PBOOLEAN): NTSTATUS; stdcall; external ntdll name 'NtPrivilegeCheck';
- function NtPrivilegeObjectAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; TokenHandle: HANDLE; DesiredAccess: ACCESS_MASK; Privileges: PPRIVILEGE_SET; AccessGranted: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtPrivilegeObjectAuditAlarm';
- function NtPrivilegedServiceAuditAlarm(SubsystemName: PUNICODE_STRING; ServiceName: PUNICODE_STRING; TokenHandle: HANDLE; Privileges: PPRIVILEGE_SET; AccessGranted: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtPrivilegedServiceAuditAlarm';
- 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; external ntdll name 'NtAccessCheck';
- function NtAccessCheckAndAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; ObjectTypeName: PUNICODE_STRING; ObjectName: PUNICODE_STRING; SecurityDescriptor: PSECURITY_DESCRIPTOR; DesiredAccess: ACCESS_MASK; GenericMapping: PGENERIC_MAPPING; ObjectCreation: ByteBool; GrantedAccess: PACCESS_MASK; AccessStatus: PBOOLEAN; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall; external ntdll name 'NtAccessCheckAndAuditAlarm';
- function NtAccessCheckByType(SecurityDescriptor: PSECURITY_DESCRIPTOR; PrincipalSelfSid: PSID; TokenHandle: HANDLE; DesiredAccess: ULONG; ObjectTypeList: POBJECT_TYPE_LIST; ObjectTypeListLength: ULONG; GenericMapping: PGENERIC_MAPPING; PrivilegeSet: PPRIVILEGE_SET; PrivilegeSetLength: PULONG; GrantedAccess: PACCESS_MASK; AccessStatus: PULONG): NTSTATUS; stdcall; external ntdll name 'NtAccessCheckByType';
- 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: ByteBool; GrantedAccess: PACCESS_MASK; AccessStatus: PULONG; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall; external ntdll name 'NtAccessCheckByTypeAndAuditAlarm';
- 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; external ntdll name 'NtAccessCheckByTypeResultList';
- 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: ByteBool; GrantedAccessList: PACCESS_MASK; AccessStatusList: PULONG; GenerateOnClose: PULONG): NTSTATUS; stdcall; external ntdll name 'NtAccessCheckByTypeResultListAndAuditAlarm';
- 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: ByteBool; GrantedAccessList: PACCESS_MASK; AccessStatusList: PULONG; GenerateOnClose: PULONG): NTSTATUS; stdcall; external ntdll name 'NtAccessCheckByTypeResultListAndAuditAlarmByHandle';
- 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: ByteBool; AccessGranted: ByteBool; GenerateOnClose: PBOOLEAN): NTSTATUS; stdcall; external ntdll name 'NtOpenObjectAuditAlarm';
- function NtCloseObjectAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; GenerateOnClose: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtCloseObjectAuditAlarm';
- function NtDeleteObjectAuditAlarm(SubsystemName: PUNICODE_STRING; HandleId: PVOID; GenerateOnClose: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtDeleteObjectAuditAlarm';
- function NtRequestWakeupLatency(Latency: LATENCY_TIME): NTSTATUS; stdcall; external ntdll name 'NtRequestWakeupLatency';
- function NtRequestDeviceWakeup(DeviceHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtRequestDeviceWakeup';
- function NtCancelDeviceWakeupRequest(DeviceHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtCancelDeviceWakeupRequest';
- function NtIsSystemResumeAutomatic: ByteBool; stdcall; external ntdll name 'NtIsSystemResumeAutomatic';
- type
- PEXECUTION_STATE = ^EXECUTION_STATE;
- function NtSetThreadExecutionState(ExecutionState: EXECUTION_STATE; PreviousExecutionState: PEXECUTION_STATE): NTSTATUS; stdcall; external ntdll name 'NtSetThreadExecutionState';
- function NtGetDevicePowerState(DeviceHandle: HANDLE; DevicePowerState: PDEVICE_POWER_STATE): NTSTATUS; stdcall; external ntdll name 'NtGetDevicePowerState';
- function NtSetSystemPowerState(SystemAction: POWER_ACTION; MinSystemState: SYSTEM_POWER_STATE; Flags: ULONG): NTSTATUS; stdcall; external ntdll name 'NtSetSystemPowerState';
- function NtInitiatePowerAction(SystemAction: POWER_ACTION; MinSystemState: SYSTEM_POWER_STATE; Flags: ULONG; Asynchronous: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtInitiatePowerAction';
- function NtPowerInformation(PowerInformationLevel: POWER_INFORMATION_LEVEL; InputBuffer: PVOID; InputBufferLength: ULONG; OutputBuffer: PVOID; OutputBufferLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtPowerInformation';
- function NtGetPlugPlayEvent(Reserved1: ULONG; Reserved2: ULONG; Buffer: PVOID; BufferLength: ULONG): NTSTATUS; stdcall; external ntdll name 'NtGetPlugPlayEvent';
- function NtRaiseException(ExceptionRecord: PEXCEPTION_RECORD; Context: PCONTEXT; SearchFrames: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtRaiseException';
- function NtContinue(Context: PCONTEXT; TestAlert: ByteBool): NTSTATUS; stdcall; external ntdll name 'NtContinue';
- // TODO NOT EXPORTED FROM NTDLL
- //function ZwW32Call(RoutineIndex: ULONG; Argument: PVOID; ArgumentLength: ULONG; Result: PPVOID; ResultLength: PULONG): NTSTATUS; stdcall; external ntdll name 'ZwW32Call';
- function NtCallbackReturn(Result: PVOID; ResultLength: ULONG; Status: NTSTATUS): NTSTATUS; stdcall; external ntdll name 'NtCallbackReturn';
- // TODO NOT EXPORTED FROM NTDLL
- //function ZwSetLowWaitHighThread: NTSTATUS; stdcall; external ntdll name 'ZwSetLowWaitHighThread';
- //function ZwSetHighWaitLowThread: NTSTATUS; stdcall; external ntdll name 'ZwSetHighWaitLowThread';
- function NtLoadDriver(DriverServiceName: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'NtLoadDriver';
- function NtUnloadDriver(DriverServiceName: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'NtUnloadDriver';
- function NtFlushInstructionCache(ProcessHandle: HANDLE; BaseAddress: PVOID; FlushSize: ULONG): NTSTATUS; stdcall; external ntdll name 'NtFlushInstructionCache';
- function NtFlushWriteBuffer: NTSTATUS; stdcall; external ntdll name 'NtFlushWriteBuffer';
- function NtQueryDefaultLocale(ThreadOrSystem: ByteBool; Locale: PLCID): NTSTATUS; stdcall; external ntdll name 'NtQueryDefaultLocale';
- function NtSetDefaultLocale(ThreadOrSystem: ByteBool; Locale: LCID): NTSTATUS; stdcall; external ntdll name 'NtSetDefaultLocale';
- type
- PLANGID = ^LANGID;
- function NtQueryDefaultUILanguage(LanguageId: PLANGID): NTSTATUS; stdcall; external ntdll name 'NtQueryDefaultUILanguage';
- function NtSetDefaultUILanguage(LanguageId: LANGID): NTSTATUS; stdcall; external ntdll name 'NtSetDefaultUILanguage';
- function NtQueryInstallUILanguage(LanguageId: PLANGID): NTSTATUS; stdcall; external ntdll name 'NtQueryInstallUILanguage';
- function NtAllocateLocallyUniqueId(Luid: PLUID): NTSTATUS; stdcall; external ntdll name 'NtAllocateLocallyUniqueId';
- function NtAllocateUuids(UuidLastTimeAllocated: PLARGE_INTEGER; UuidDeltaTime: PULONG; UuidSequenceNumber: PULONG; UuidSeed: PUCHAR): NTSTATUS; stdcall; external ntdll name 'NtAllocateUuids';
- function NtSetUuidSeed(UuidSeed: PUCHAR): NTSTATUS; stdcall; external ntdll name 'NtSetUuidSeed';
- function NtRaiseHardError(Status: NTSTATUS; NumberOfArguments: ULONG; StringArgumentsMask: ULONG; Arguments: PULONG; MessageBoxType: ULONG; MessageBoxResult: PULONG): NTSTATUS; stdcall; external ntdll name 'NtRaiseHardError';
- function NtSetDefaultHardErrorPort(PortHandle: HANDLE): NTSTATUS; stdcall; external ntdll name 'NtSetDefaultHardErrorPort';
- function NtDisplayString(Str: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'NtDisplayString';
- function NtCreatePagingFile(FileName: PUNICODE_STRING; InitialSize: PULARGE_INTEGER; MaximumSize: PULARGE_INTEGER; Reserved: ULONG): NTSTATUS; stdcall; external ntdll name 'NtCreatePagingFile';
- function NtAddAtom(Str: PWSTR; StringLength: ULONG; Atom: PUSHORT): NTSTATUS; stdcall; external ntdll name 'NtAddAtom';
- function NtFindAtom(Str: PWSTR; StringLength: ULONG; Atom: PUSHORT): NTSTATUS; stdcall; external ntdll name 'NtFindAtom';
- function NtDeleteAtom(Atom: USHORT): NTSTATUS; stdcall; external ntdll name 'NtDeleteAtom';
- type
- _ATOM_INFORMATION_CLASS = (AtomBasicInformation, AtomListInformation);
- ATOM_INFORMATION_CLASS = _ATOM_INFORMATION_CLASS;
- function NtQueryInformationAtom(Atom: USHORT; AtomInformationClass: ATOM_INFORMATION_CLASS; AtomInformation: PVOID; AtomInformationLength: ULONG; ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryInformationAtom';
- 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;
- _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;
- function NtSetLdtEntries(Selector1: ULONG; LdtEntry1: LDT_ENTRY; Selector2: ULONG; LdtEntry2: LDT_ENTRY): NTSTATUS; stdcall; external ntdll name 'NtSetLdtEntries';
- function NtVdmControl(ControlCode: ULONG; ControlData: PVOID): NTSTATUS; stdcall; external ntdll name 'NtVdmControl';
- //==============================================================================
- // 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;
- _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;
- 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;
- _ATTRIBUTE = record
- AttributeType: ATTRIBUTE_TYPE;
- Length: ULONG;
- Nonresident: ByteBool;
- NameLength: UCHAR;
- NameOffset: USHORT;
- Flags: USHORT; // 0x0001 = Compressed
- AttributeNumber: USHORT;
- end;
- ATTRIBUTE = _ATTRIBUTE;
- PATTRIBUTE = ^ATTRIBUTE;
- _RESIDENT_ATTRIBUTE = record
- Attribute: ATTRIBUTE;
- ValueLength: ULONG;
- ValueOffset: USHORT;
- Flags: USHORT; // 0x0001 = Indexed
- end;
- RESIDENT_ATTRIBUTE = _RESIDENT_ATTRIBUTE;
- PRESIDENT_ATTRIBUTE = ^RESIDENT_ATTRIBUTE;
- _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;
- _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;
- _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;
- _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;
- _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;
- _VOLUME_INFORMATION = record
- Unknown: array [0..1] of ULONG;
- MajorVersion: UCHAR;
- MinorVersion: UCHAR;
- Flags: USHORT;
- end;
- VOLUME_INFORMATION = _VOLUME_INFORMATION;
- PVOLUME_INFORMATION = ^VOLUME_INFORMATION;
- _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;
- _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;
- _INDEX_ROOT = record
- Type_: ATTRIBUTE_TYPE;
- CollationRule: ULONG;
- BytesPerIndexBlock: ULONG;
- ClustersPerIndexBlock: ULONG;
- DirectoryIndex: DIRECTORY_INDEX;
- end;
- INDEX_ROOT = _INDEX_ROOT;
- PINDEX_ROOT = ^INDEX_ROOT;
- _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;
- _REPARSE_POINT = record
- ReparseTag: ULONG;
- ReparseDataLength: USHORT;
- Reserved: USHORT;
- ReparseData: array [0..0] of UCHAR;
- end;
- REPARSE_POINT = _REPARSE_POINT;
- PREPARSE_POINT = ^REPARSE_POINT;
- _EA_INFORMATION = record
- EaLength: ULONG;
- EaQueryLength: ULONG;
- end;
- EA_INFORMATION = _EA_INFORMATION;
- PEA_INFORMATION = ^EA_INFORMATION;
- _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;
- _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;
- _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;
- //==============================================================================
- // Loader API
- //==============================================================================
- function LdrDisableThreadCalloutsForDll(hModule: HANDLE): NTSTATUS; stdcall; external ntdll name 'LdrDisableThreadCalloutsForDll';
- function LdrGetDllHandle(pwPath: PWORD; pReserved: PVOID; pusPath: PUNICODE_STRING; phModule: PHANDLE): NTSTATUS; stdcall; external ntdll name 'LdrGetDllHandle';
- function LdrGetProcedureAddress(hModule: HANDLE; dOrdinal: DWORD; psName: PSTRING; ppProcedure: PPVOID): NTSTATUS; stdcall; external ntdll name 'LdrGetProcedureAddress';
- function LdrLoadDll(pwPath: PWORD; pdFlags: PDWORD; pusPath: PUNICODE_STRING; phModule: PHANDLE): NTSTATUS; stdcall; external ntdll name 'LdrLoadDll';
- function LdrQueryProcessModuleInformation(psmi: PSYSTEM_MODULE_INFORMATION; dSize: DWORD; pdSize: PDWORD): NTSTATUS; stdcall; external ntdll name 'LdrQueryProcessModuleInformation';
- function LdrQueryImageFileExecutionOptions (pusImagePath: PUNICODE_STRING; pwOptionName: PWORD; dRequestedType: DWORD; pData: PVOID; dSize: DWORD; pdSize: PDWORD): NTSTATUS; stdcall; external ntdll name 'LdrQueryImageFileExecutionOptions ';
- function LdrUnloadDll(hModule: HANDLE): NTSTATUS; stdcall; external ntdll name 'LdrUnloadDll';
- //LdrAccessResource
- //LdrAlternateResourcesEnabled
- //LdrEnumResources
- //LdrFindEntryForAddress
- //LdrFindResourceDirectory_U
- //LdrFindResource_U
- //LdrFlushAlternateResourceModules
- //LdrInitializeThunk
- //LdrLoadAlternateResourceModule
- //LdrProcessRelocationBlock
- //LdrShutdownProcess
- //LdrShutdownThread
- //LdrUnloadAlternateResourceModule
- //LdrVerifyImageMatchesChecksum
- //==============================================================================
- // CSR
- //==============================================================================
- //CsrAllocateCaptureBuffer
- //CsrAllocateMessagePointer
- //CsrCaptureMessageBuffer
- //CsrCaptureMessageString
- //CsrCaptureTimeout
- //CsrClientCallServer
- //CsrClientConnectToServer
- //CsrFreeCaptureBuffer
- //CsrIdentifyAlertableThread
- //CsrNewThread
- //CsrProbeForRead
- //CsrProbeForWrite
- //CsrSetPriorityClass
- //==============================================================================
- // Debug
- //==============================================================================
- //DbgPrompt
- //DbgSsHandleKmApiMsg
- //DbgSsInitialize
- //DbgUiConnectToDbg
- //DbgUiContinue
- //DbgUiWaitStateChange
- //DbgUserBreakPoint
- //
- // 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;
- //procedure DbgBreakPointWithStatus(Status: ULONG); stdcall; external ntdll name 'DbgBreakPointWithStatus';
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- REFGUID = ^GUID;
- function RtlAddRange(RangeList: PRTL_RANGE_LIST; Start, End_: ULONGLONG; Attributes: UCHAR; Flags: ULONG; UserData, Owner: PVOID): NTSTATUS; stdcall; external ntdll name 'RtlAddRange'; external;
- function RtlAnsiStringToUnicodeString(DestinationString: PUNICODE_STRING; SourceString: PANSI_STRING; AllocateDestinationString: ByteBool): NTSTATUS; stdcall; external ntdll name 'RtlAnsiStringToUnicodeString'; external;
- function RtlAppendUnicodeStringToString(Destination, Source: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'RtlAppendUnicodeStringToString'; external;
- function RtlAppendUnicodeToString(Destination: PUNICODE_STRING; Source: LPCWSTR): NTSTATUS; stdcall; external ntdll name 'RtlAppendUnicodeToString';
- function RtlAreBitsClear(BitMapHeader: PRTL_BITMAP; StartingIndex, Length: ULONG): ByteBool; stdcall; external ntdll name 'RtlAreBitsClear';
- function RtlAreBitsSet(BitMapHeader: PRTL_BITMAP; StartingIndex, Length: ULONG): ByteBool; stdcall; external ntdll name 'RtlAreBitsSet';
- procedure RtlAssert(FailedAssertion, FileName: PVOID; LineNumber: ULONG; Message: PCHAR); stdcall; external ntdll name 'RtlAssert';
- function RtlCharToInteger(Str: PCSZ; Base: ULONG; Value: PULONG): NTSTATUS; stdcall; external ntdll name 'RtlCharToInteger';
- function RtlCheckRegistryKey(RelativeTo: ULONG; Path: PWSTR): NTSTATUS; stdcall; external ntdll name 'RtlCheckRegistryKey';
- procedure RtlClearAllBits(BitMapHeader: PRTL_BITMAP); stdcall; external ntdll name 'RtlClearAllBits';
- procedure RtlClearBits(BitMapHeader: PRTL_BITMAP; StartingIndex, NumberToClear: ULONG); stdcall; external ntdll name 'RtlClearBits';
- function RtlCompareMemory(Source1, Source2: LPVOID; Length: SIZE_T): SIZE_T; stdcall; external ntdll name 'RtlCompareMemory';
- function RtlCompareString(String1, String2: PSTRING; CaseInSensitive: ByteBool): LONG; stdcall; external ntdll name 'RtlCompareString';
- function RtlCompareUnicodeString(String1, String2: PUNICODE_STRING; CaseInSensitive: ByteBool): LONG; stdcall; external ntdll name 'RtlCompareUnicodeString';
- function RtlConvertLongToLargeInteger(SignedInteger: LONG): LARGE_INTEGER; stdcall; external ntdll name 'RtlConvertLongToLargeInteger';
- function RtlConvertUlongToLargeInteger(UnsignedInteger: ULONG): LARGE_INTEGER; stdcall; external ntdll name 'RtlConvertUlongToLargeInteger';
- function RtlCopyRangeList(CopyRangeList: PRTL_RANGE_LIST; RangeList: PRTL_RANGE_LIST): NTSTATUS; stdcall; external ntdll name 'RtlCopyRangeList';
- procedure RtlCopyString(DestinationString, SourceString: PSTRING); stdcall; external ntdll name 'RtlCopyString';
- procedure RtlCopyUnicodeString(DestinationString, SourceString: PUNICODE_STRING); stdcall; external ntdll name 'RtlCopyUnicodeString';
- function RtlCreateRegistryKey(RelativeTo: ULONG; Path: PWSTR): NTSTATUS; stdcall; external ntdll name 'RtlCreateRegistryKey';
- function RtlCreateSecurityDescriptor(SecurityDescriptor: PSECURITY_DESCRIPTOR; Revision: ULONG): NTSTATUS; stdcall; external ntdll name 'RtlCreateSecurityDescriptor';
- function RtlDeleteOwnersRanges(RangeList: PRTL_RANGE_LIST; Owner: PVOID): NTSTATUS; stdcall; external ntdll name 'RtlDeleteOwnersRanges';
- function RtlDeleteRange(RangeList: PRTL_RANGE_LIST; Start, End_: ULONGLONG; Owner: PVOID): NTSTATUS; stdcall; external ntdll name 'RtlDeleteRange';
- function RtlDeleteRegistryValue(RelativeTo: ULONG; Path, ValueName: LPCWSTR): NTSTATUS; stdcall; external ntdll name 'RtlDeleteRegistryValue';
- function RtlEqualString(String1, String2: PSTRING; CaseInSensitive: ByteBool): ByteBool; stdcall; external ntdll name 'RtlEqualString';
- function RtlEqualUnicodeString(String1, String2: PUNICODE_STRING; CaseInSensitive: ByteBool): ByteBool; stdcall; external ntdll name 'RtlEqualUnicodeString';
- function RtlExtendedIntegerMultiply(Multiplicand: LARGE_INTEGER; Multiplier: LONG): LARGE_INTEGER; stdcall; external ntdll name 'RtlExtendedIntegerMultiply';
- function RtlExtendedLargeIntegerDivide(Dividend: LARGE_INTEGER; Divisor: ULONG; Remainder: PULONG): LARGE_INTEGER; stdcall; external ntdll name 'RtlExtendedLargeIntegerDivide';
- function RtlExtendedMagicDivide(Dividend, MagicDivisor: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall; external ntdll name 'RtlExtendedMagicDivide';
- procedure RtlFillMemory(Destination: LPVOID; Length: SIZE_T; Fill: UCHAR); stdcall; external ntdll name 'RtlFillMemory';
- function RtlFindClearBits(BitMapHeader: PRTL_BITMAP; NumberToFind, HintIndex: ULONG): ULONG; stdcall; external ntdll name 'RtlFindClearBits';
- function RtlFindClearBitsAndSet(BitMapHeader: PRTL_BITMAP; NumberToFind, HintIndex: ULONG): ULONG; stdcall; external ntdll name 'RtlFindClearBitsAndSet';
- function RtlFindLastBackwardRunClear(BitMapHeader: PRTL_BITMAP; FromIndex: ULONG; StartingRunIndex: PULONG): ULONG; stdcall; external ntdll name 'RtlFindLastBackwardRunClear';
- function RtlFindLeastSignificantBit(Set_: ULONGLONG): CCHAR; stdcall; external ntdll name 'RtlFindLeastSignificantBit';
- function RtlFindLongestRunClear(BitMapHeader: PRTL_BITMAP; StartingIndex: PULONG): ULONG; stdcall; external ntdll name 'RtlFindLongestRunClear';
- function RtlFindMostSignificantBit(Set_: ULONGLONG): CCHAR; stdcall; external ntdll name 'RtlFindMostSignificantBit';
- function RtlFindNextForwardRunClear(BitMapHeader: PRTL_BITMAP; FromIndex: ULONG; StartingRunIndex: PULONG): ULONG; stdcall; external ntdll name 'RtlFindNextForwardRunClear';
- function RtlFindRange(RangeList: PRTL_RANGE_LIST; Minimum, Maximum: ULONGLONG; Length, Alignment, Flags: ULONG; AttributeAvailableMask: UCHAR; Context: PVOID; Callback: PRTL_CONFLICT_RANGE_CALLBACK; Start: PULONGLONG): NTSTATUS; stdcall; external ntdll name 'RtlFindRange';
- function RtlFindSetBits(BitMapHeader: PRTL_BITMAP; NumberToFind, HintIndex: ULONG): ULONG; stdcall; external ntdll name 'RtlFindSetBits';
- function RtlFindSetBitsAndClear(BitMapHeader: PRTL_BITMAP; NumberToFind, HintIndex: ULONG): ULONG; stdcall; external ntdll name 'RtlFindSetBitsAndClear';
- procedure RtlFreeAnsiString(AnsiString: PANSI_STRING); stdcall; external ntdll name 'RtlFreeAnsiString';
- procedure RtlFreeRangeList(RangeList: PRTL_RANGE_LIST); stdcall; external ntdll name 'RtlFreeRangeList';
- procedure RtlFreeUnicodeString(UnicodeString: PUNICODE_STRING); stdcall; external ntdll name 'RtlFreeUnicodeString';
- function RtlGUIDFromString(GuidString: PUNICODE_STRING; Guid: LPGUID): NTSTATUS; stdcall; external ntdll name 'RtlGUIDFromString';
- procedure RtlGetCallersAddress(CallersAddress, CallersCaller: PPVOID); stdcall; external ntdll name 'RtlGetCallersAddress';
- function RtlGetFirstRange(RangeList: PRTL_RANGE_LIST; Iterator: PRTL_RANGE_LIST_ITERATOR; var Range: PRTL_RANGE): NTSTATUS; stdcall; external ntdll name 'RtlGetFirstRange';
- function RtlGetNextRange(Iterator: PRTL_RANGE_LIST_ITERATOR; var Range: PRTL_RANGE; MoveForwards: ByteBool): NTSTATUS; stdcall; external ntdll name 'RtlGetNextRange';
- function RtlGetVersion(lpVersionInformation: PRTL_OSVERSIONINFOW): NTSTATUS; stdcall; external ntdll name 'RtlGetVersion';
- procedure RtlInitAnsiString(DestinationString: PANSI_STRING; SourceString: PCSZ); stdcall; external ntdll name 'RtlInitAnsiString';
- procedure RtlInitString(DestinationString: PSTRING; SourceString: PCSZ); stdcall; external ntdll name 'RtlInitString';
- procedure RtlInitUnicodeString(DestinationString: PUNICODE_STRING; SourceString: LPCWSTR); stdcall; external ntdll name 'RtlInitUnicodeString';
- procedure RtlInitializeBitMap(BitMapHeader: PRTL_BITMAP; BitMapBuffer: PULONG; SizeOfBitMap: ULONG); stdcall; external ntdll name 'RtlInitializeBitMap';
- procedure RtlInitializeRangeList(RangeList: PRTL_RANGE_LIST); stdcall; external ntdll name 'RtlInitializeRangeList';
- function RtlInt64ToUnicodeString(Value: ULONGLONG; Base: ULONG; Str: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'RtlInt64ToUnicodeString';
- function RtlIntegerToUnicodeString(Value, Base: ULONG; Str: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'RtlIntegerToUnicodeString';
- function RtlInvertRangeList(InvertedRangeList: PRTL_RANGE_LIST; RangeList: PRTL_RANGE_LIST): NTSTATUS; stdcall; external ntdll name 'RtlInvertRangeList';
- function RtlIsRangeAvailable(RangeList: PRTL_RANGE_LIST; Start, End_: ULONGLONG; Flags: ULONG; AttributeAvailableMask: UCHAR; Context: PVOID; Callback: PRTL_CONFLICT_RANGE_CALLBACK; Available: PBOOLEAN): NTSTATUS; stdcall; external ntdll name 'RtlIsRangeAvailable';
- function RtlLargeIntegerArithmeticShift(LargeInteger: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall; external ntdll name 'RtlLargeIntegerArithmeticShift';
- function RtlLargeIntegerDivide(Dividend, Divisor: LARGE_INTEGER; Remainder: PLARGE_INTEGER): LARGE_INTEGER; stdcall; external ntdll name 'RtlLargeIntegerDivide';
- function RtlLargeIntegerShiftLeft(LargeInteger: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall; external ntdll name 'RtlLargeIntegerShiftLeft';
- function RtlLargeIntegerShiftRight(LargeInteger: LARGE_INTEGER; ShiftCount: CCHAR): LARGE_INTEGER; stdcall; external ntdll name 'RtlLargeIntegerShiftRight';
- function RtlLengthSecurityDescriptor(SecurityDescriptor: PSECURITY_DESCRIPTOR): ULONG; stdcall; external ntdll name 'RtlLengthSecurityDescriptor';
- procedure RtlMapGenericMask(AccessMask: PACCESS_MASK; GenericMapping: PGENERIC_MAPPING); stdcall; external ntdll name 'RtlMapGenericMask';
- function RtlMergeRangeLists(MergedRangeList: PRTL_RANGE_LIST; RangeList1, RangeList2: PRTL_RANGE_LIST; Flags: ULONG): NTSTATUS; stdcall; external ntdll name 'RtlMergeRangeLists';
- procedure RtlMoveMemory(Destination, Source: LPVOID; Length: SIZE_T); stdcall; external ntdll name 'RtlMoveMemory';
- function RtlNumberOfClearBits(BitMapHeader: PRTL_BITMAP): ULONG; stdcall; external ntdll name 'RtlNumberOfClearBits';
- function RtlNumberOfSetBits(BitMapHeader: PRTL_BITMAP): ULONG; stdcall; external ntdll name 'RtlNumberOfSetBits';
- function RtlPrefixUnicodeString(String1, String2: PUNICODE_STRING; CaseInSensitive: ByteBool): ByteBool; stdcall; external ntdll name 'RtlPrefixUnicodeString';
- function RtlQueryRegistryValues(RelativeTo: ULONG; Path: LPCWSTR; QueryTable: PRTL_QUERY_REGISTRY_TABLE; Context, Environment: PVOID): NTSTATUS; stdcall; external ntdll name 'RtlQueryRegistryValues';
- procedure RtlSetAllBits(BitMapHeader: PRTL_BITMAP); stdcall; external ntdll name 'RtlSetAllBits';
- procedure RtlSetBits(BitMapHeader: PRTL_BITMAP; StartingIndex, NumberToSet: ULONG); stdcall; external ntdll name 'RtlSetBits';
- function RtlSetDaclSecurityDescriptor(SecurityDescriptor: PSECURITY_DESCRIPTOR; DaclPresent: ByteBool; Dacl: PACL; DaclDefaulted: ByteBool): NTSTATUS; stdcall; external ntdll name 'RtlSetDaclSecurityDescriptor';
- function RtlStringFromGUID(Guid: REFGUID; GuidString: PUNICODE_STRING): NTSTATUS; stdcall; external ntdll name 'RtlStringFromGUID';
- function RtlTimeFieldsToTime(TimeFields: PTIME_FIELDS; Time: PLARGE_INTEGER): ByteBool; stdcall; external ntdll name 'RtlTimeFieldsToTime';
- procedure RtlTimeToTimeFields(Time: PLARGE_INTEGER; TimeFields: PTIME_FIELDS); stdcall; external ntdll name 'RtlTimeToTimeFields';
- function RtlUnicodeStringToAnsiString(DestinationString: PANSI_STRING; SourceString: PUNICODE_STRING; AllocateDestinationString: ByteBool): NTSTATUS; stdcall; external ntdll name 'RtlUnicodeStringToAnsiString';
- function RtlUnicodeStringToInteger(Str: PUNICODE_STRING; Base: ULONG; Value: PULONG): NTSTATUS; stdcall; external ntdll name 'RtlUnicodeStringToInteger';
- function RtlUpcaseUnicodeChar(SourceCharacter: WCHAR): WCHAR; stdcall; external ntdll name 'RtlUpcaseUnicodeChar';
- function RtlUpcaseUnicodeString(DestinationString: PUNICODE_STRING; SourceString: PCUNICODE_STRING; AllocateDestinationString: ByteBool): NTSTATUS; stdcall; external ntdll name 'RtlUpcaseUnicodeString';
- function RtlUpperChar(Character: CHAR): CHAR; stdcall; external ntdll name 'RtlUpperChar';
- procedure RtlUpperString(DestinationString, SourceString: PSTRING); stdcall; external ntdll name 'RtlUpperString';
- function RtlValidRelativeSecurityDescriptor(SecurityDescriptorInput: PSECURITY_DESCRIPTOR; SecurityDescriptorLength: ULONG; RequiredInformation: SECURITY_INFORMATION): ByteBool; stdcall; external ntdll name 'RtlValidRelativeSecurityDescriptor';
- function RtlValidSecurityDescriptor(SecurityDescriptor: PSECURITY_DESCRIPTOR): ByteBool; stdcall; external ntdll name 'RtlValidSecurityDescriptor';
- function RtlVerifyVersionInfo(VersionInfo: PRTL_OSVERSIONINFOEXW; TypeMask: ULONG; ConditionMask: ULONGLONG): NTSTATUS; stdcall; external ntdll name 'RtlVerifyVersionInfo';
- function RtlWriteRegistryValue(RelativeTo: ULONG; Path: LPCWSTR; ValueName: LPCWSTR; ValueType: ULONG; ValueData: PVOID; ValueLength: ULONG): NTSTATUS; stdcall; external ntdll name 'RtlWriteRegistryValue';
- procedure RtlZeroMemory(Destination: LPVOID; Length: SIZE_T); stdcall; external ntdll name 'RtlZeroMemory';
- function RtlxAnsiStringToUnicodeSize(AnsiString: PANSI_STRING): ULONG; stdcall; external ntdll name 'RtlxAnsiStringToUnicodeSize';
- implementation
- { some 300 other RTL functions exported from ntdll but for which i don't have
- a prototype yet. also interesting is ntoskrnl.exe
- RtlAbortRXact
- RtlAbsoluteToSelfRelativeSD
- RtlAcquirePebLock
- RtlAcquireResourceExclusive
- RtlAcquireResourceShared
- RtlAddAccessAllowedAce
- RtlAddAccessAllowedAceEx
- RtlAddAccessAllowedObjectAce
- RtlAddAccessDeniedAce
- RtlAddAccessDeniedAceEx
- RtlAddAccessDeniedObjectAce
- RtlAddAce
- RtlAddActionToRXact
- RtlAddAtomToAtomTable
- RtlAddAttributeActionToRXact
- RtlAddAuditAccessAce
- RtlAddAuditAccessAceEx
- RtlAddAuditAccessObjectAce
- RtlAddCompoundAce
- RtlAdjustPrivilege
- RtlAllocateAndInitializeSid
- RtlAllocateHandle
- RtlAllocateHeap
- RtlAnsiCharToUnicodeChar
- RtlAnsiStringToUnicodeSize
- RtlAppendAsciizToString
- RtlAppendStringToString
- RtlApplyRXact
- RtlApplyRXactNoFlush
- RtlAreAllAccessesGranted
- RtlAreAnyAccessesGranted
- RtlCallbackLpcClient
- RtlCancelTimer
- RtlCaptureStackBackTrace
- RtlCheckForOrphanedCriticalSections
- RtlCompactHeap
- RtlCompareMemoryUlong
- RtlCompressBuffer
- RtlConsoleMultiByteToUnicodeN
- RtlConvertExclusiveToShared
- RtlConvertPropertyToVariant
- RtlConvertSharedToExclusive
- RtlConvertSidToUnicodeString
- RtlConvertToAutoInheritSecurityObject
- RtlConvertUiListToApiList
- RtlConvertVariantToProperty
- RtlCopyLuid
- RtlCopyLuidAndAttributesArray
- RtlCopySecurityDescriptor
- RtlCopySid
- RtlCopySidAndAttributesArray
- RtlCreateAcl
- RtlCreateAndSetSD
- RtlCreateAtomTable
- RtlCreateEnvironment
- RtlCreateHeap
- RtlCreateLpcServer
- RtlCreateProcessParameters
- RtlCreateQueryDebugBuffer
- RtlCreateTagHeap
- RtlCreateTimer
- RtlCreateTimerQueue
- RtlCreateUnicodeString
- RtlCreateUnicodeStringFromAsciiz
- RtlCreateUserProcess
- RtlCreateUserSecurityObject
- RtlCreateUserThread
- RtlCustomCPToUnicodeN
- RtlCutoverTimeToSystemTime
- RtlDeNormalizeProcessParams
- RtlDebugPrintTimes
- RtlDecompressBuffer
- RtlDecompressFragment
- RtlDefaultNpAcl
- RtlDelete
- RtlDeleteAce
- RtlDeleteAtomFromAtomTable
- RtlDeleteCriticalSection
- RtlDeleteElementGenericTable
- RtlDeleteNoSplay
- RtlDeleteResource
- RtlDeleteSecurityObject
- RtlDeleteTimer
- RtlDeleteTimerQueue
- RtlDeleteTimerQueueEx
- RtlDeregisterWait
- RtlDeregisterWaitEx
- RtlDestroyAtomTable
- RtlDestroyEnvironment
- RtlDestroyHandleTable
- RtlDestroyHeap
- RtlDestroyProcessParameters
- RtlDestroyQueryDebugBuffer
- RtlDetermineDosPathNameType_U
- RtlDnsHostNameToComputerName
- RtlDoesFileExists_U
- RtlDosPathNameToNtPathName_U
- RtlDosSearchPath_U
- RtlDowncaseUnicodeString
- RtlDumpResource
- RtlEmptyAtomTable
- RtlEnableEarlyCriticalSectionEventCreation
- RtlEnlargedIntegerMultiply
- RtlEnlargedUnsignedDivide
- RtlEnlargedUnsignedMultiply
- RtlEnterCriticalSection
- RtlEnumProcessHeaps
- RtlEnumerateGenericTable
- RtlEnumerateGenericTableWithoutSplaying
- RtlEqualComputerName
- RtlEqualDomainName
- RtlEqualLuid
- RtlEqualPrefixSid
- RtlEqualSid
- RtlEraseUnicodeString
- RtlExpandEnvironmentStrings_U
- RtlExtendHeap
- RtlFillMemoryUlong
- RtlFindMessage
- RtlFirstFreeAce
- RtlFormatCurrentUserKeyPath
- RtlFormatMessage
- RtlFreeHandle
- RtlFreeHeap
- RtlFreeOemString
- RtlFreeSid
- RtlFreeUserThreadStack
- RtlGenerate8dot3Name
- RtlGetAce
- RtlGetCompressionWorkSpaceSize
- RtlGetControlSecurityDescriptor
- RtlGetCurrentDirectory_U
- RtlGetDaclSecurityDescriptor
- RtlGetElementGenericTable
- RtlGetFullPathName_U
- RtlGetGroupSecurityDescriptor
- RtlGetLongestNtPathLength
- RtlGetNtGlobalFlags
- RtlGetNtProductType
- RtlGetOwnerSecurityDescriptor
- RtlGetProcessHeaps
- RtlGetSaclSecurityDescriptor
- RtlGetSecurityDescriptorRMControl
- RtlGetUserInfoHeap
- RtlIdentifierAuthoritySid
- RtlImageDirectoryEntryToData
- RtlImageNtHeader
- RtlImageRvaToSection
- RtlImageRvaToVa
- RtlImpersonateLpcClient
- RtlImpersonateSelf
- RtlInitCodePageTable
- RtlInitNlsTables
- RtlInitializeAtomPackage
- RtlInitializeContext
- RtlInitializeCriticalSection
- RtlInitializeCriticalSectionAndSpinCount
- RtlInitializeGenericTable
- RtlInitializeHandleTable
- RtlInitializeRXact
- RtlInitializeResource
- RtlInitializeSid
- RtlInsertElementGenericTable
- RtlIntegerToChar
- RtlIsDosDeviceName_U
- RtlIsGenericTableEmpty
- RtlIsNameLegalDOS8Dot3
- RtlIsTextUnicode
- RtlIsValidHandle
- RtlIsValidIndexHandle
- RtlLargeIntegerAdd
- RtlLargeIntegerNegate
- RtlLargeIntegerSubtract
- RtlLargeIntegerToChar
- RtlLeaveCriticalSection
- RtlLengthRequiredSid
- RtlLengthSid
- RtlLocalTimeToSystemTime
- RtlLockHeap
- RtlLookupAtomInAtomTable
- RtlLookupElementGenericTable
- RtlMakeSelfRelativeSD
- RtlMultiByteToUnicodeN
- RtlMultiByteToUnicodeSize
- RtlNewInstanceSecurityObject
- RtlNewSecurityGrantedAccess
- RtlNewSecurityObject
- RtlNewSecurityObjectEx
- RtlNormalizeProcessParams
- RtlNtStatusToDosError
- RtlNumberGenericTableElements
- RtlOemStringToUnicodeSize
- RtlOemStringToUnicodeString
- RtlOemToUnicodeN
- RtlOpenCurrentUser
- RtlPcToFileHeader
- RtlPinAtomInAtomTable
- RtlPrefixString
- RtlProtectHeap
- RtlQueryAtomInAtomTable
- RtlQueryEnvironmentVariable_U
- RtlQueryInformationAcl
- RtlQueryProcessBackTraceInformation
- RtlQueryProcessDebugInformation
- RtlQueryProcessHeapInformation
- RtlQueryProcessLockInformation
- RtlQuerySecurityObject
- RtlQueryTagHeap
- RtlQueryTimeZoneInformation
- RtlQueueWorkItem
- RtlRaiseException
- RtlRaiseStatus
- RtlRandom
- RtlReAllocateHeap
- RtlRealPredecessor
- RtlRealSuccessor
- RtlRegisterWait
- RtlReleasePebLock
- RtlReleaseResource
- RtlRemoteCall
- RtlResetRtlTranslations
- RtlRunDecodeUnicodeString
- RtlRunEncodeUnicodeString
- RtlSecondsSince1970ToTime
- RtlSecondsSince1980ToTime
- RtlSelfRelativeToAbsoluteSD
- RtlSelfRelativeToAbsoluteSD2
- RtlSetAttributesSecurityDescriptor
- RtlSetControlSecurityDescriptor
- RtlSetCriticalSectionSpinCount
- RtlSetCurrentDirectory_U
- RtlSetCurrentEnvironment
- RtlSetEnvironmentVariable
- RtlSetGroupSecurityDescriptor
- RtlSetInformationAcl
- RtlSetIoCompletionCallback
- RtlSetOwnerSecurityDescriptor
- RtlSetSaclSecurityDescriptor
- RtlSetSecurityDescriptorRMControl
- RtlSetSecurityObject
- RtlSetSecurityObjectEx
- RtlSetThreadPoolStartFunc
- RtlSetTimeZoneInformation
- RtlSetTimer
- RtlSetUnicodeCallouts
- RtlSetUserFlagsHeap
- RtlSetUserValueHeap
- RtlShutdownLpcServer
- RtlSizeHeap
- RtlSplay
- RtlStartRXact
- RtlSubAuthorityCountSid
- RtlSubAuthoritySid
- RtlSubtreePredecessor
- RtlSubtreeSuccessor
- RtlSystemTimeToLocalTime
- RtlTimeToElapsedTimeFields
- RtlTimeToSecondsSince1970
- RtlTimeToSecondsSince1980
- RtlTryEnterCriticalSection
- //ULONG FASTCALL RtlUlongByteSwap(IN ULONG Source);
- //ULONGLONG FASTCALL RtlUlonglongByteSwap(IN ULONGLONG Source);
- RtlUnicodeStringToAnsiSize
- RtlUnicodeStringToCountedOemString
- RtlUnicodeStringToOemSize
- RtlUnicodeStringToOemString
- RtlUnicodeToCustomCPN
- RtlUnicodeToMultiByteN
- RtlUnicodeToMultiByteSize
- RtlUnicodeToOemN
- RtlUniform
- RtlUnlockHeap
- RtlUnwind
- RtlUpcaseUnicodeStringToAnsiString
- RtlUpcaseUnicodeStringToCountedOemString
- RtlUpcaseUnicodeStringToOemString
- RtlUpcaseUnicodeToCustomCPN
- RtlUpcaseUnicodeToMultiByteN
- RtlUpcaseUnicodeToOemN
- RtlUpdateTimer
- RtlUsageHeap
- //USHORT FASTCALL RtlUshortByteSwap(IN USHORT Source);
- RtlValidAcl
- RtlValidSid
- RtlValidateHeap
- RtlValidateProcessHeaps
- RtlWalkFrameChain
- RtlWalkHeap
- RtlZeroHeap
- RtlpNtCreateKey
- RtlpNtEnumerateSubKey
- RtlpNtMakeTemporaryKey
- RtlpNtOpenKey
- RtlpNtQueryValueKey
- RtlpNtSetValueKey
- RtlpUnWaitCriticalSection
- RtlpWaitForCriticalSection
- RtlxOemStringToUnicodeSize
- RtlxUnicodeStringToAnsiSize
- RtlxUnicodeStringToOemSize
- }
- end.
|