8 #ifndef __NtFunc_h_incl__ 9 #define __NtFunc_h_incl__ 16 #ifndef INOUT // Supplements to classic annotations 83 OUT POBJECT_ATTRIBUTES pObjAttr,
85 IN PUNICODE_STRING ObjName,
87 OPTIN PSECURITY_DESCRIPTOR SecurityDesc,
88 OPTIN PSECURITY_QUALITY_OF_SERVICE SecurityQoS
93 typedef struct _PACKED_OBJ_ATTRIBUTES
106 HANDLE BaseObj, PCWSTR ObjName, ULONG Attributes,
107 PSECURITY_DESCRIPTOR SecurityDesc,
108 PSECURITY_QUALITY_OF_SERVICE SecurityQoS
119 bool GetProcPEB( HANDLE hProcess, OUT PPEB pPeb );
137 HANDLE hProc, PUNICODE_STRING pProcStr, OUT
WSTR wzBuf, UINT ccBuf
183 #define NTFUNC(Name) NTSTATUS (NTAPI *_##Name) 184 #define NTFUNCT(Type,Name) Type (NTAPI *_##Name) 185 #define NTFUNCC(Type,Name) Type (__cdecl *_##Name) 193 #define INIT_NTFUNC(Name) \ 194 LITERAL( FARPROC, _##Name )= GetProcAddress( hNtDll, #Name ); \ 196 TRACE( DP_WARNING, _F("API missing: %s\n"), #Name ); \ 203 #if _INIT_FP_ // INTERNAL 208 #define _NTFN_EXTERN extern 246 _NTFN_EXTERN NTFUNC( NtQueryInformationProcess )(
247 IN HANDLE ProcessHandle,
248 IN PROCESSINFOCLASS ProcessInformationClass,
249 OUT PVOID ProcessInformation,
250 IN ULONG ProcessInformationLength,
251 OPTOUT PULONG ReturnLength
254 _NTFN_EXTERN NTFUNC( NtQueryInformationThread )(
255 IN HANDLE ThreadHandle,
256 IN THREADINFOCLASS ThreadInformationClass,
257 OUT PVOID ThreadInformation,
258 IN ULONG ThreadInformationLength,
259 OPTOUT PULONG ReturnLength
262 _NTFN_EXTERN NTFUNC( NtQueryInformationJobObject )(
264 IN JOBOBJECTINFOCLASS JobInformationClass,
265 OUT PVOID JobInformation,
266 IN ULONG JobInformationLength,
267 OUT PULONG ReturnLength
272 _NTFN_EXTERN NTFUNC( NtCreateProcess )(
273 OUT PHANDLE ProcessHandle,
274 IN ACCESS_MASK DesiredAccess,
275 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
276 IN HANDLE ParentProcess,
277 IN BOOLEAN InheritObjectTable,
278 OPTIN HANDLE SectionHandle,
279 OPTIN HANDLE DebugPort,
280 OPTIN HANDLE ExceptionPort
283 _NTFN_EXTERN NTFUNC( NtCreateProcessEx )(
284 OUT PHANDLE ProcessHandle,
285 IN ACCESS_MASK DesiredAccess,
286 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
287 IN HANDLE ParentProcess,
289 OPTIN HANDLE SectionHandle,
290 OPTIN HANDLE DebugPort,
291 OPTIN HANDLE ExceptionPort,
295 _NTFN_EXTERN NTFUNC( NtOpenProcess )(
296 OUT PHANDLE ProcessHandle,
297 IN ACCESS_MASK DesiredAccess,
298 IN POBJECT_ATTRIBUTES ObjectAttributes,
299 OPTIN PCLIENT_ID ClientId
304 _NTFN_EXTERN NTFUNC( NtCreateThread )(
305 OUT PHANDLE ThreadHandle,
306 IN ACCESS_MASK DesiredAccess,
307 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
308 IN HANDLE ProcessHandle,
309 OUT PCLIENT_ID ClientId,
310 IN PCONTEXT ThreadContext,
311 IN PINITIAL_TEB UserStack,
312 IN BOOLEAN CreateSuspended
315 _NTFN_EXTERN NTFUNC( NtOpenThread )(
316 OUT PHANDLE ThreadHandle,
317 IN ACCESS_MASK DesiredAccess,
318 IN POBJECT_ATTRIBUTES ObjectAttributes,
319 IN PCLIENT_ID ClientId
322 _NTFN_EXTERN NTFUNC( NtAlertThread )( IN HANDLE ThreadHandle )_FP_;
324 _NTFN_EXTERN NTFUNC( NtAlertResumeThread )(
325 IN HANDLE ThreadHandle,
326 OPTOUT PULONG SuspendCount
329 _NTFN_EXTERN NTFUNCT( PTEB, NtCurrentTeb )( void )_FP_;
331 _NTFN_EXTERN NTFUNC( NtImpersonateThread )(
332 IN HANDLE ThreadHandle,
333 IN HANDLE ThreadToImpersonate,
334 IN PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
339 _NTFN_EXTERN NTFUNC( NtCreateJobObject )(
340 OUT PHANDLE JobHandle,
341 IN ACCESS_MASK DesiredAccess,
342 IN POBJECT_ATTRIBUTES ObjectAttributes
345 _NTFN_EXTERN NTFUNC( NtOpenJobObject )(
346 OUT PHANDLE JobHandle,
347 IN ACCESS_MASK DesiredAccess,
348 IN POBJECT_ATTRIBUTES ObjectAttributes
351 _NTFN_EXTERN NTFUNC( NtCreateJobSet )(
353 IN PJOB_SET_ARRAY UserJobSet,
357 _NTFN_EXTERN NTFUNC( NtAssignProcessToJobObject )(
359 IN HANDLE ProcessHandle
362 _NTFN_EXTERN NTFUNC( NtIsProcessInJob )(
363 IN HANDLE ProcessHandle,
364 OPTIN HANDLE JobHandle
369 _NTFN_EXTERN NTFUNC( NtApphelpCacheControl )(
370 IN APPHELPCACHESERVICECLASS Service,
371 OPTIN PAPPHELP_CACHE_SERVICE_LOOKUP ServiceData
381 _NTFN_EXTERN NTFUNC( NtClose )( IN HANDLE Handle )_FP_;
383 _NTFN_EXTERN NTFUNC( NtDuplicateObject )(
384 IN HANDLE SourceProcessHandle,
385 IN HANDLE SourceHandle,
386 IN HANDLE TargetProcessHandle,
387 OUT PHANDLE TargetHandle,
388 IN ACCESS_MASK DesiredAccess,
389 IN ULONG HandleAttributes,
393 _NTFN_EXTERN NTFUNC( NtMakePermanentObject )( IN HANDLE Object )_FP_;
394 _NTFN_EXTERN NTFUNC( NtMakeTemporaryObject )( IN HANDLE Handle )_FP_;
396 _NTFN_EXTERN NTFUNC( NtQueryObject )(
398 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
399 OUT PVOID ObjectInformation,
400 IN ULONG ObjectInformationLength,
401 OPTOUT PULONG ReturnLength
404 _NTFN_EXTERN NTFUNC( NtSetInformationObject )(
405 IN HANDLE ObjectHandle,
406 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
407 IN PVOID ObjectInformation,
413 _NTFN_EXTERN NTFUNC( NtQuerySecurityObject )(
415 IN SECURITY_INFORMATION SecurityInformation,
416 OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
418 OUT PULONG LengthNeeded
421 _NTFN_EXTERN NTFUNC( NtSetSecurityObject )(
423 IN SECURITY_INFORMATION SecurityInformation,
424 IN PSECURITY_DESCRIPTOR SecurityDescriptor
429 _NTFN_EXTERN NTFUNC( NtWaitForSingleObject )(
431 IN BOOLEAN Alertable,
432 IN PLARGE_INTEGER Timeout OPTIONAL
435 _NTFN_EXTERN NTFUNC( NtSignalAndWaitForSingleObject )(
436 IN HANDLE SignalObject,
437 IN HANDLE WaitObject,
438 IN BOOLEAN Alertable,
439 IN PLARGE_INTEGER Time
442 _NTFN_EXTERN NTFUNC( NtWaitForMultipleObjects )(
445 IN WAIT_TYPE WaitType,
446 IN BOOLEAN Alertable,
447 IN PLARGE_INTEGER Time
450 _NTFN_EXTERN NTFUNC( NtWaitForMultipleObjects32 )(
451 IN ULONG ObjectCount,
453 IN WAIT_TYPE WaitType,
454 IN BOOLEAN Alertable,
455 IN PLARGE_INTEGER TimeOut OPTIONAL
460 _NTFN_EXTERN NTFUNC( NtCreateDirectoryObject )(
461 OUT PHANDLE DirectoryHandle,
462 IN ACCESS_MASK DesiredAccess,
463 IN POBJECT_ATTRIBUTES ObjectAttributes
466 _NTFN_EXTERN NTFUNC( NtOpenDirectoryObject )(
467 OUT PHANDLE FileHandle,
468 IN ACCESS_MASK DesiredAccess,
469 IN POBJECT_ATTRIBUTES ObjectAttributes
472 _NTFN_EXTERN NTFUNC( NtQueryDirectoryObject )(
473 IN HANDLE DirectoryHandle,
475 IN ULONG BufferLength,
476 IN BOOLEAN ReturnSingleEntry,
477 IN BOOLEAN RestartScan,
478 INOUT PULONG Context,
479 OPTOUT PULONG ReturnLength
484 _NTFN_EXTERN NTFUNC( NtCreateSymbolicLinkObject )(
485 OUT PHANDLE SymbolicLinkHandle,
486 IN ACCESS_MASK DesiredAccess,
487 IN POBJECT_ATTRIBUTES ObjectAttributes,
488 IN PUNICODE_STRING Name
491 _NTFN_EXTERN NTFUNC( NtOpenSymbolicLinkObject )(
492 OUT PHANDLE SymbolicLinkHandle,
493 IN ACCESS_MASK DesiredAccess,
494 IN POBJECT_ATTRIBUTES ObjectAttributes
497 _NTFN_EXTERN NTFUNC( NtQuerySymbolicLinkObject )(
498 IN HANDLE SymLinkObjHandle,
499 OUT PUNICODE_STRING LinkTarget,
505 _NTFN_EXTERN NTFUNC( NtCloseObjectAuditAlarm )(
506 IN PUNICODE_STRING SubsystemName,
507 IN PVOID HandleId OPTIONAL,
508 IN BOOLEAN GenerateOnClose
511 _NTFN_EXTERN NTFUNC( NtDeleteObjectAuditAlarm )(
512 IN PUNICODE_STRING SubsystemName,
513 IN PVOID HandleId OPTIONAL,
514 IN BOOLEAN GenerateOnClose
526 _NTFN_EXTERN NTFUNC( NtQuerySystemInformation )(
527 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
528 OUT PVOID SystemInformation,
529 IN ULONG InformationLength,
530 OPTOUT PULONG ResultLength
533 _NTFN_EXTERN NTFUNC( NtSetSystemInformation )(
534 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
535 IN PVOID SystemInformation,
536 IN ULONG SystemInformationLength
541 _NTFN_EXTERN NTFUNC( NtEnumerateSystemEnvironmentValuesEx )(
542 IN ULONG InformationClass,
544 IN ULONG BufferLength
547 _NTFN_EXTERN NTFUNC( NtQuerySystemEnvironmentValue )(
548 IN PUNICODE_STRING Name,
551 OPTOUT PULONG ReturnLength
554 _NTFN_EXTERN NTFUNC( NtQuerySystemEnvironmentValueEx )(
555 IN PUNICODE_STRING VariableName,
556 IN LPGUID VendorGuid,
558 INOUT PULONG ReturnLength,
559 INOUT PULONG Attributes
562 _NTFN_EXTERN NTFUNC( NtSetSystemEnvironmentValue )(
563 IN PUNICODE_STRING VariableName,
564 IN PUNICODE_STRING Value
567 _NTFN_EXTERN NTFUNC( NtSetSystemEnvironmentValueEx )(
568 IN PUNICODE_STRING VariableName,
569 IN LPGUID VendorGuid,
571 INOUT PULONG ReturnLength,
572 INOUT PULONG Attributes
577 _NTFN_EXTERN NTFUNC( NtQueryDefaultUILanguage )( OUT LANGID* LanguageId )_FP_;
578 _NTFN_EXTERN NTFUNC( NtQueryInstallUILanguage )( OUT LANGID* LanguageId )_FP_;
579 _NTFN_EXTERN NTFUNC( NtSetDefaultUILanguage )( IN LANGID LanguageId )_FP_;
581 _NTFN_EXTERN NTFUNC( NtQueryDefaultLocale )(
582 IN BOOLEAN UserProfile,
583 OUT PLCID DefaultLocaleId
586 _NTFN_EXTERN NTFUNC( NtSetDefaultLocale )(
587 IN BOOLEAN UserProfile,
588 IN LCID DefaultLocaleId
593 _NTFN_EXTERN NTFUNC( NtAddAtom )(
595 IN ULONG AtomNameLength,
599 _NTFN_EXTERN NTFUNC( NtDeleteAtom )( IN RTL_ATOM Atom )_FP_;
601 _NTFN_EXTERN NTFUNC( NtFindAtom )(
603 IN ULONG AtomNameLength,
607 _NTFN_EXTERN NTFUNC( NtQueryInformationAtom )(
609 IN ATOM_INFORMATION_CLASS AtomInformationClass,
610 OUT PVOID AtomInformation,
611 IN ULONG AtomInformationLength,
612 OPTOUT PULONG ReturnLength
617 _NTFN_EXTERN NTFUNC( NtCreateTimer )(
618 OUT PHANDLE TimerHandle,
619 IN ACCESS_MASK DesiredAccess,
620 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
621 IN TIMER_TYPE TimerType
624 _NTFN_EXTERN NTFUNC( NtOpenTimer )(
625 OUT PHANDLE TimerHandle,
626 IN ACCESS_MASK DesiredAccess,
627 IN POBJECT_ATTRIBUTES ObjectAttributes
630 _NTFN_EXTERN NTFUNC( NtQueryTimer )(
631 IN HANDLE TimerHandle,
632 IN TIMER_INFORMATION_CLASS TimerInformationClass,
633 OUT PVOID TimerInformation,
635 OUT PULONG ResultLength
638 _NTFN_EXTERN NTFUNC( NtSetTimer )(
639 IN HANDLE TimerHandle,
640 IN PLARGE_INTEGER DueTime,
641 IN PTIMER_APC_ROUTINE TimerApcRoutine,
642 IN PVOID TimerContext,
643 IN BOOLEAN WakeTimer,
645 OPTOUT PBOOLEAN PreviousState
648 _NTFN_EXTERN NTFUNC( NtCancelTimer )(
649 IN HANDLE TimerHandle,
650 OPTOUT PBOOLEAN CurrentState
655 _NTFN_EXTERN NTFUNC( NtCreateEvent )(
656 OUT PHANDLE EventHandle,
657 IN ACCESS_MASK DesiredAccess,
658 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
659 IN EVENT_TYPE EventType,
660 IN BOOLEAN InitialState
663 _NTFN_EXTERN NTFUNC( NtOpenEvent )(
664 OUT PHANDLE EventHandle,
665 IN ACCESS_MASK DesiredAccess,
666 IN POBJECT_ATTRIBUTES ObjectAttributes
669 _NTFN_EXTERN NTFUNC( NtQueryEvent )(
670 IN HANDLE EventHandle,
671 IN EVENT_INFORMATION_CLASS EventInformationClass,
672 OUT PVOID EventInformation,
673 IN ULONG EventInformationLength,
674 OUT PULONG ReturnLength
677 _NTFN_EXTERN NTFUNC( NtSetEvent )(
678 IN HANDLE EventHandle,
679 OPTOUT PLONG PreviousState
682 _NTFN_EXTERN NTFUNC( NtResetEvent )(
683 IN HANDLE EventHandle,
684 OPTOUT PLONG NumberOfWaitingThreads
687 _NTFN_EXTERN NTFUNC( NtClearEvent )( IN HANDLE EventHandle )_FP_;
689 _NTFN_EXTERN NTFUNC( NtPulseEvent )(
690 IN HANDLE EventHandle,
691 OPTIN PLONG PulseCount
696 _NTFN_EXTERN NTFUNC( NtCreateKeyedEvent )(
697 OUT PHANDLE OutHandle,
698 IN ACCESS_MASK AccessMask,
699 IN POBJECT_ATTRIBUTES ObjectAttributes,
703 _NTFN_EXTERN NTFUNC( NtOpenKeyedEvent )(
704 OUT PHANDLE OutHandle,
705 IN ACCESS_MASK AccessMask,
706 IN POBJECT_ATTRIBUTES ObjectAttributes
709 _NTFN_EXTERN NTFUNC( NtWaitForKeyedEvent )(
710 OPTIN HANDLE EventHandle,
712 IN BOOLEAN Alertable,
713 OPTIN PLARGE_INTEGER Timeout
716 _NTFN_EXTERN NTFUNC( NtReleaseKeyedEvent )(
717 OPTIN HANDLE EventHandle,
719 IN BOOLEAN Alertable,
720 OPTIN PLARGE_INTEGER Timeout
725 _NTFN_EXTERN NTFUNC( NtCreateEventPair )(
726 OUT PHANDLE EventPairHandle,
727 IN ACCESS_MASK DesiredAccess,
728 IN POBJECT_ATTRIBUTES ObjectAttributes
731 _NTFN_EXTERN NTFUNC( NtOpenEventPair )(
732 OUT PHANDLE EventPairHandle,
733 IN ACCESS_MASK DesiredAccess,
734 IN POBJECT_ATTRIBUTES ObjectAttributes
737 _NTFN_EXTERN NTFUNC( NtSetHighEventPair )( IN HANDLE EventPair )_FP_;
738 _NTFN_EXTERN NTFUNC( NtSetLowEventPair )( IN HANDLE EventPair )_FP_;
740 _NTFN_EXTERN NTFUNC( NtSetHighWaitLowEventPair )( IN HANDLE EventPair )_FP_;
741 _NTFN_EXTERN NTFUNC( NtSetLowWaitHighEventPair )( IN HANDLE EventPair )_FP_;
743 _NTFN_EXTERN NTFUNC( NtWaitHighEventPair )( IN HANDLE EventPairHandle )_FP_;
744 _NTFN_EXTERN NTFUNC( NtWaitLowEventPair )( IN HANDLE EventPairHandle )_FP_;
748 _NTFN_EXTERN NTFUNC( NtCreateMutant )(
749 OUT PHANDLE MutantHandle,
750 IN ACCESS_MASK DesiredAccess,
751 IN POBJECT_ATTRIBUTES ObjectAttributes,
752 IN BOOLEAN InitialOwner
755 _NTFN_EXTERN NTFUNC( NtOpenMutant )(
756 OUT PHANDLE MutantHandle,
757 IN ACCESS_MASK DesiredAccess,
758 IN POBJECT_ATTRIBUTES ObjectAttributes
761 _NTFN_EXTERN NTFUNC( NtQueryMutant )(
762 IN HANDLE MutantHandle,
763 IN MUTANT_INFORMATION_CLASS MutantInformationClass,
764 OUT PVOID MutantInformation,
766 OUT PULONG ResultLength
769 _NTFN_EXTERN NTFUNC( NtReleaseMutant )(
770 IN HANDLE MutantHandle,
771 OPTIN PLONG ReleaseCount
776 _NTFN_EXTERN NTFUNC( NtCreateSemaphore )(
777 OUT PHANDLE SemaphoreHandle,
778 IN ACCESS_MASK DesiredAccess,
779 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
780 IN LONG InitialCount,
784 _NTFN_EXTERN NTFUNC( NtOpenSemaphore )(
785 OUT PHANDLE SemaphoreHandle,
786 IN ACCESS_MASK DesiredAcces,
787 IN POBJECT_ATTRIBUTES ObjectAttributes
790 _NTFN_EXTERN NTFUNC( NtQuerySemaphore )(
791 IN HANDLE SemaphoreHandle,
792 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
793 OUT PVOID SemaphoreInformation,
795 OUT PULONG ReturnLength
798 _NTFN_EXTERN NTFUNC( NtReleaseSemaphore )(
799 IN HANDLE SemaphoreHandle,
800 IN LONG ReleaseCount,
801 OPTOUT PLONG PreviousCount
806 _NTFN_EXTERN NTFUNC( NtDisplayString )(
807 IN PUNICODE_STRING DisplayString
810 _NTFN_EXTERN NTFUNC( NtRaiseHardError )(
811 IN NTSTATUS ErrorStatus,
812 IN ULONG NumberOfParameters,
813 IN ULONG UnicodeStringParameterMask,
814 IN PULONG_PTR Parameters,
815 IN ULONG ValidResponseOptions,
819 _NTFN_EXTERN NTFUNC( NtSetDefaultHardErrorPort )( IN HANDLE PortHandle )_FP_;
820 _NTFN_EXTERN NTFUNC( NtShutdownSystem )( IN SHUTDOWN_ACTION Action )_FP_;
821 _NTFN_EXTERN NTFUNC( NtSetEventBoostPriority )( IN HANDLE EventHandle )_FP_;
822 _NTFN_EXTERN NTFUNC( NtSetUuidSeed )( IN PUCHAR UuidSeed )_FP_;
824 _NTFN_EXTERN NTFUNC( NtTraceEvent )(
825 IN ULONG TraceHandle,
827 IN ULONG TraceHeaderLength,
838 _NTFN_EXTERN NTFUNCT( ULONG, NtGetCurrentProcessorNumber )( VOID )_FP_;
842 _NTFN_EXTERN NTFUNC( NtYieldExecution )( VOID )_FP_;
844 _NTFN_EXTERN NTFUNC( NtDelayExecution )(
845 IN BOOLEAN Alertable,
846 IN LARGE_INTEGER* Interval
849 _NTFN_EXTERN NTFUNC( NtRaiseException )(
850 IN PEXCEPTION_RECORD ExceptionRecord,
852 IN BOOLEAN SearchFrames
855 _NTFN_EXTERN NTFUNC( NtContinue )(
860 _NTFN_EXTERN NTFUNC( NtW32Call )(
861 IN ULONG RoutineIndex,
863 IN ULONG ArgumentLength,
865 OPTOUT PULONG ResultLength
870 _NTFN_EXTERN NTFUNCT( ULONG, NtGetTickCount )( VOID )_FP_;
872 _NTFN_EXTERN NTFUNC( NtQuerySystemTime )(
873 OUT PLARGE_INTEGER CurrentTime
876 _NTFN_EXTERN NTFUNC( NtSetSystemTime )(
877 IN PLARGE_INTEGER SystemTime,
878 OPTIN PLARGE_INTEGER NewSystemTime
881 _NTFN_EXTERN NTFUNC( NtQueryPerformanceCounter )(
882 OUT PLARGE_INTEGER Counter,
883 OPTOUT PLARGE_INTEGER Frequency
886 _NTFN_EXTERN NTFUNC( NtQueryTimerResolution )(
887 OUT PULONG MinimumResolution,
888 OUT PULONG MaximumResolution,
889 OUT PULONG ActualResolution
892 _NTFN_EXTERN NTFUNC( NtSetTimerResolution )(
893 IN ULONG RequestedResolution,
894 IN BOOLEAN SetOrUnset,
895 OUT PULONG ActualResolution
900 _NTFN_EXTERN NTFUNC( NtGetContextThread )(
901 IN HANDLE ThreadHandle,
905 _NTFN_EXTERN NTFUNC( NtSetContextThread )(
906 IN HANDLE ThreadHandle,
912 _NTFN_EXTERN NTFUNC( NtCreateProfile )(
913 OUT PHANDLE ProfileHandle,
914 IN HANDLE ProcessHandle,
917 IN ULONG Granularity,
919 IN ULONG ProfilingSize,
920 IN KPROFILE_SOURCE Source,
921 IN KAFFINITY ProcessorMask
925 typedef struct _GROUP_AFFINITY {
929 } GROUP_AFFINITY, *PGROUP_AFFINITY;
932 _NTFN_EXTERN NTFUNC( NtCreateProfileEx )(
933 OUT PHANDLE ProfileHandle,
934 IN HANDLE ProcessHandle,
937 IN ULONG Granularity,
939 IN ULONG ProfilingSize,
940 IN KPROFILE_SOURCE Source,
941 IN USHORT GroupCount,
942 IN PGROUP_AFFINITY Affinity
945 _NTFN_EXTERN NTFUNC( NtStartProfile )( IN HANDLE ProfileHandle )_FP_;
946 _NTFN_EXTERN NTFUNC( NtStopProfile )( IN HANDLE ProfileHandle )_FP_;
948 _NTFN_EXTERN NTFUNC( NtQueryIntervalProfile )(
949 IN KPROFILE_SOURCE ProfileSource,
953 _NTFN_EXTERN NTFUNC( NtSetIntervalProfile )(
955 IN KPROFILE_SOURCE ClockSource
960 _NTFN_EXTERN NTFUNC( NtQueueApcThread )(
961 IN HANDLE ThreadHandle,
962 IN PKNORMAL_ROUTINE ApcRoutine,
963 OPTIN PVOID NormalContext,
964 OPTIN PVOID SystemArgument1,
965 OPTIN PVOID SystemArgument2
968 _NTFN_EXTERN NTFUNC( NtTestAlert )( VOID )_FP_;
970 _NTFN_EXTERN NTFUNC( NtCallbackReturn )(
972 IN ULONG ResultLength,
978 _NTFN_EXTERN NTFUNC( NtSetLdtEntries )(
980 IN LDT_ENTRY LdtEntry1,
982 IN LDT_ENTRY LdtEntry2
985 _NTFN_EXTERN NTFUNC( NtVdmControl )(
986 IN ULONG ControlCode,
997 _NTFN_EXTERN NTFUNC( NtQueryDebugFilterState )(
1006 _NTFN_EXTERN NTFUNC( NtSetDebugFilterState )(
1012 _NTFN_EXTERN NTFUNC( NtSystemDebugControl )(
1013 SYSDBG_COMMAND ControlCode,
1015 ULONG InputBufferLength,
1017 ULONG OutputBufferLength,
1028 _NTFN_EXTERN NTFUNC( NtDebugActiveProcess )(
1030 IN HANDLE DebugObject
1033 _NTFN_EXTERN NTFUNC( NtRemoveProcessDebug )(
1035 IN HANDLE DebugObject
1038 _NTFN_EXTERN NTFUNC( NtCreateDebugObject )(
1039 OUT PHANDLE DebugHandle,
1040 IN ACCESS_MASK DesiredAccess,
1041 IN POBJECT_ATTRIBUTES ObjectAttributes,
1045 _NTFN_EXTERN NTFUNC( NtDebugContinue )(
1046 IN HANDLE DebugObject,
1047 IN PCLIENT_ID AppClientId,
1048 IN NTSTATUS ContinueStatus
1051 _NTFN_EXTERN NTFUNC( NtWaitForDebugEvent )(
1052 IN HANDLE DebugObject,
1053 IN BOOLEAN Alertable,
1054 OPTIN PLARGE_INTEGER Timeout,
1055 OUT PDBGUI_WAIT_STATE_CHANGE StateChange
1058 _NTFN_EXTERN NTFUNC( NtSetInformationDebugObject )(
1059 IN HANDLE DebugObject,
1060 IN DEBUGOBJECTINFOCLASS InformationClass,
1061 IN PVOID Information,
1062 IN ULONG InformationLength,
1063 OPTOUT PULONG ReturnLength
1068 _NTFN_EXTERN NTFUNC( DbgUiConnectToDbg )( VOID )_FP_;
1070 _NTFN_EXTERN NTFUNC( DbgUiDebugActiveProcess )(
1074 _NTFN_EXTERN NTFUNC( DbgUiStopDebugging )(
1078 _NTFN_EXTERN NTFUNCT( VOID, DbgBreakPointWithStatus )( IN ULONG Status )_FP_;
1080 _NTFN_EXTERN NTFUNC( DbgUiContinue )(
1081 IN PCLIENT_ID ClientId,
1082 IN NTSTATUS ContinueStatus
1085 _NTFN_EXTERN NTFUNC( DbgUiWaitStateChange )(
1086 IN PDBGUI_WAIT_STATE_CHANGE DbgUiWaitStateCange,
1087 IN PLARGE_INTEGER TimeOut
1090 _NTFN_EXTERN NTFUNC( DbgUiConvertStateChangeStructure )(
1091 IN PDBGUI_WAIT_STATE_CHANGE WaitStateChange,
1095 _NTFN_EXTERN NTFUNCT( VOID, DbgUiRemoteBreakin )( VOID )_FP_;
1097 _NTFN_EXTERN NTFUNC( DbgUiIssueRemoteBreakin )( IN HANDLE Process )_FP_;
1099 _NTFN_EXTERN NTFUNCT( HANDLE, DbgUiGetThreadDebugObject )( VOID )_FP_;
1110 _NTFN_EXTERN NTFUNC( NtCreateFile )(
1111 OUT PHANDLE FileHandle,
1112 IN ACCESS_MASK DesiredAccess,
1113 IN POBJECT_ATTRIBUTES ObjectAttributes,
1114 OUT PIO_STATUS_BLOCK IoStatusBlock,
1115 OPTIN PLARGE_INTEGER AllocationSize,
1116 IN ULONG FileAttributes,
1117 IN ULONG ShareAccess,
1118 IN ULONG CreateDisposition,
1119 IN ULONG CreateOptions,
1124 _NTFN_EXTERN NTFUNC( NtOpenFile )(
1125 OUT PHANDLE FileHandle,
1126 IN ACCESS_MASK DesiredAccess,
1127 IN POBJECT_ATTRIBUTES ObjectAttributes,
1128 OUT PIO_STATUS_BLOCK IoStatusBlock,
1129 IN ULONG ShareAccess,
1130 IN ULONG OpenOptions
1133 _NTFN_EXTERN NTFUNC( NtDeleteFile )(
1134 IN POBJECT_ATTRIBUTES ObjectAttributes
1137 _NTFN_EXTERN NTFUNC( NtLockFile )(
1138 IN HANDLE FileHandle,
1140 OPTIN PIO_APC_ROUTINE ApcRoutine,
1141 OPTIN PVOID ApcContext,
1142 OUT PIO_STATUS_BLOCK IoStatusBlock,
1143 IN PLARGE_INTEGER ByteOffset,
1144 IN PLARGE_INTEGER Length,
1146 IN BOOLEAN FailImmediatedly,
1147 IN BOOLEAN ExclusiveLock
1150 _NTFN_EXTERN NTFUNC( NtUnlockFile )(
1151 IN HANDLE FileHandle,
1152 OUT PIO_STATUS_BLOCK IoStatusBlock,
1153 IN PLARGE_INTEGER ByteOffset,
1154 IN PLARGE_INTEGER Length,
1158 _NTFN_EXTERN NTFUNC( NtReadFile )(
1159 IN HANDLE FileHandle,
1161 OPTIN PIO_APC_ROUTINE ApcRoutine,
1162 OPTIN PVOID ApcContext,
1163 OUT PIO_STATUS_BLOCK IoStatusBlock,
1166 OPTIN PLARGE_INTEGER ByteOffset,
1170 _NTFN_EXTERN NTFUNC( NtReadFileScatter )(
1171 IN HANDLE FileHandle,
1173 OPTIN PIO_APC_ROUTINE UserApcRoutine,
1174 OPTIN PVOID UserApcContext,
1175 OUT PIO_STATUS_BLOCK UserIoStatusBlock,
1176 IN FILE_SEGMENT_ELEMENT BufferDescription[],
1177 IN ULONG BufferLength,
1178 IN PLARGE_INTEGER ByteOffset,
1182 _NTFN_EXTERN NTFUNC( NtWriteFile )(
1183 IN HANDLE FileHandle,
1185 OPTIN PIO_APC_ROUTINE ApcRoutine,
1186 OPTIN PVOID ApcContext,
1187 OUT PIO_STATUS_BLOCK IoStatusBlock,
1190 OPTIN PLARGE_INTEGER ByteOffset,
1194 _NTFN_EXTERN NTFUNC( NtWriteFileGather )(
1195 IN HANDLE FileHandle,
1197 OPTIN PIO_APC_ROUTINE ApcRoutine,
1198 OPTIN PVOID ApcContext,
1199 OUT PIO_STATUS_BLOCK IoStatusBlock,
1200 IN FILE_SEGMENT_ELEMENT BufferDescription[],
1201 IN ULONG BufferLength,
1202 IN PLARGE_INTEGER ByteOffset,
1206 _NTFN_EXTERN NTFUNC( NtCancelIoFile )(
1207 IN HANDLE FileHandle,
1208 OUT PIO_STATUS_BLOCK IoStatusBlock
1211 _NTFN_EXTERN NTFUNC( NtFlushBuffersFile )(
1212 IN HANDLE FileHandle,
1213 OUT PIO_STATUS_BLOCK IoStatusBlock
1216 _NTFN_EXTERN NTFUNC( NtFlushWriteBuffer )( VOID )_FP_;
1218 _NTFN_EXTERN NTFUNC( NtQueryInformationFile )(
1219 IN HANDLE FileHandle,
1220 OUT PIO_STATUS_BLOCK IoStatusBlock,
1221 OUT PVOID FileInformation,
1223 IN FILE_INFORMATION_CLASS FileInformationClass
1226 _NTFN_EXTERN NTFUNC( NtSetInformationFile )(
1227 IN HANDLE FileHandle,
1228 OUT PIO_STATUS_BLOCK IoStatusBlock,
1229 IN PVOID FileInformation,
1231 IN FILE_INFORMATION_CLASS FileInformationClass
1234 _NTFN_EXTERN NTFUNC( NtQueryEaFile )(
1235 IN HANDLE FileHandle,
1236 OUT PIO_STATUS_BLOCK IoStatusBlock,
1239 IN BOOLEAN ReturnSingleEntry,
1241 IN ULONG EaListLength,
1242 OPTIN PULONG EaIndex,
1243 IN BOOLEAN RestartScan
1246 _NTFN_EXTERN NTFUNC( NtSetEaFile )(
1247 IN HANDLE FileHandle,
1248 OUT PIO_STATUS_BLOCK IoStatusBlock,
1250 IN ULONG EaBufferSize
1253 _NTFN_EXTERN NTFUNC( NtQueryAttributesFile )(
1254 IN POBJECT_ATTRIBUTES ObjectAttributes,
1255 OUT PFILE_BASIC_INFORMATION FileInformation
1258 _NTFN_EXTERN NTFUNC( NtQueryFullAttributesFile )(
1259 IN POBJECT_ATTRIBUTES ObjectAttributes,
1260 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation
1265 _NTFN_EXTERN NTFUNC( NtCreateMailslotFile )(
1266 OUT PHANDLE MailSlotFileHandle,
1267 IN ACCESS_MASK DesiredAccess,
1268 IN POBJECT_ATTRIBUTES ObjectAttributes,
1269 OUT PIO_STATUS_BLOCK IoStatusBlock,
1270 IN ULONG FileAttributes,
1271 IN ULONG ShareAccess,
1272 IN ULONG MaxMessageSize,
1273 IN PLARGE_INTEGER TimeOut
1278 _NTFN_EXTERN NTFUNC( NtCreateNamedPipeFile )(
1279 OUT PHANDLE NamedPipeFileHandle,
1280 IN ACCESS_MASK DesiredAccess,
1281 IN POBJECT_ATTRIBUTES ObjectAttributes,
1282 OUT PIO_STATUS_BLOCK IoStatusBlock,
1283 IN ULONG ShareAccess,
1284 IN ULONG CreateDisposition,
1285 IN ULONG CreateOptions,
1286 IN ULONG WriteModeMessage,
1287 IN ULONG ReadModeMessage,
1288 IN ULONG NonBlocking,
1289 IN ULONG MaxInstances,
1290 IN ULONG InBufferSize,
1291 IN ULONG OutBufferSize,
1292 IN PLARGE_INTEGER DefaultTimeOut
1297 _NTFN_EXTERN NTFUNC( NtQueryDirectoryFile )(
1298 IN HANDLE DirectoryFileHandle,
1300 OPTIN PIO_APC_ROUTINE ApcRoutine,
1301 OPTIN PVOID ApcContext,
1302 OUT PIO_STATUS_BLOCK IoStatusBlock,
1303 OUT PVOID FileInformation,
1305 IN FILE_INFORMATION_CLASS FileInformationClass,
1306 IN BOOLEAN ReturnSingleEntry,
1307 OPTIN PUNICODE_STRING FileNamePattern,
1308 IN BOOLEAN RestartScan
1311 _NTFN_EXTERN NTFUNC( NtNotifyChangeDirectoryFile )(
1312 IN HANDLE DirectoryFileHandle,
1314 OPTIN PIO_APC_ROUTINE ApcRoutine,
1315 OPTIN PVOID ApcContext,
1316 OUT PIO_STATUS_BLOCK IoStatusBlock,
1318 IN ULONG BufferSize,
1319 IN ULONG CompletionFilter,
1320 IN BOOLEAN WatchTree
1323 _NTFN_EXTERN NTFUNC( NtQueryVolumeInformationFile )(
1324 IN HANDLE FileHandle,
1325 OUT PIO_STATUS_BLOCK IoStatusBlock,
1326 OUT PVOID FsInformation,
1328 IN FS_INFORMATION_CLASS FsInformationClass
1331 _NTFN_EXTERN NTFUNC( NtSetVolumeInformationFile )(
1332 IN HANDLE FileHandle,
1333 OUT PIO_STATUS_BLOCK IoStatusBlock,
1334 IN PVOID FsInformation,
1336 IN FS_INFORMATION_CLASS FsInformationClass
1339 _NTFN_EXTERN NTFUNC( NtQueryQuotaInformationFile )(
1340 IN HANDLE VolumeFileHandle,
1341 OUT PIO_STATUS_BLOCK IoStatusBlock,
1344 IN BOOLEAN ReturnSingleEntry,
1346 IN ULONG SidListLength,
1348 IN BOOLEAN RestartScan
1351 _NTFN_EXTERN NTFUNC( NtSetQuotaInformationFile )(
1352 HANDLE VolumeFileHandle,
1353 PIO_STATUS_BLOCK IoStatusBlock,
1360 _NTFN_EXTERN NTFUNC( NtCreateIoCompletion )(
1361 OUT PHANDLE IoCompletionHandle,
1362 IN ACCESS_MASK DesiredAccess,
1363 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
1364 IN ULONG NumberOfConcurrentThreads
1367 _NTFN_EXTERN NTFUNC( NtOpenIoCompletion )(
1368 OUT PHANDLE CompetionPort,
1369 IN ACCESS_MASK DesiredAccess,
1370 IN POBJECT_ATTRIBUTES ObjectAttributes
1373 _NTFN_EXTERN NTFUNC( NtQueryIoCompletion )(
1374 IN HANDLE IoCompletionHandle,
1375 IN IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass,
1376 OUT PVOID IoCompletionInformation,
1377 IN ULONG IoCompletionInformationLength,
1378 OUT OPTIONAL PULONG ResultLength
1381 _NTFN_EXTERN NTFUNC( NtSetIoCompletion )(
1382 IN HANDLE IoCompletionPortHandle,
1383 IN PVOID CompletionKey,
1384 IN PVOID CompletionContext,
1385 IN NTSTATUS CompletionStatus,
1386 IN ULONG CompletionInformation
1389 _NTFN_EXTERN NTFUNC( NtRemoveIoCompletion )(
1390 IN HANDLE IoCompletionHandle,
1391 OUT PVOID* CompletionKey,
1392 OUT PVOID* CompletionContext,
1393 OUT PIO_STATUS_BLOCK IoStatusBlock,
1394 OPTIN PLARGE_INTEGER Timeout
1399 _NTFN_EXTERN NTFUNC( NtDeviceIoControlFile )(
1400 IN HANDLE FileHandle,
1402 OPTIN PIO_APC_ROUTINE ApcRoutine,
1403 OPTIN PVOID ApcContext,
1404 OUT PIO_STATUS_BLOCK IoStatusBlock,
1405 IN ULONG IoControlCode,
1406 IN PVOID InputBuffer,
1407 IN ULONG InputBufferLength,
1408 IN PVOID OutputBuffer,
1409 IN ULONG OutputBufferLength
1412 _NTFN_EXTERN NTFUNC( NtFsControlFile )(
1413 IN HANDLE FileHandle,
1415 OPTIN PIO_APC_ROUTINE ApcRoutine,
1416 OPTIN PVOID ApcContext,
1417 OUT PIO_STATUS_BLOCK IoStatusBlock,
1418 IN ULONG FsControlCode,
1419 IN PVOID InputBuffer,
1420 IN ULONG InputBufferLength,
1421 IN PVOID OutputBuffer,
1422 IN ULONG OutputBufferLength
1427 _NTFN_EXTERN NTFUNC( NtLoadDriver )(
1428 IN PUNICODE_STRING DriverServiceName
1431 _NTFN_EXTERN NTFUNC( NtUnloadDriver )(
1432 IN PUNICODE_STRING DriverServiceName
1439 _NTFN_EXTERN NTFUNC( NtAddDriverEntry )(
1440 IN PEFI_DRIVER_ENTRY BootEntry,
1444 _NTFN_EXTERN NTFUNC( NtDeleteDriverEntry )(
1448 _NTFN_EXTERN NTFUNC( NtModifyDriverEntry )(
1449 IN PEFI_DRIVER_ENTRY DriverEntry
1452 _NTFN_EXTERN NTFUNC( NtEnumerateDriverEntries )(
1454 IN PULONG BufferLength
1457 _NTFN_EXTERN NTFUNC( NtQueryDriverEntryOrder )(
1462 _NTFN_EXTERN NTFUNC( NtSetDriverEntryOrder )(
1469 _NTFN_EXTERN NTFUNC( NtQueryBootOptions )(
1470 IN PBOOT_OPTIONS BootOptions,
1471 IN PULONG BootOptionsLength
1474 _NTFN_EXTERN NTFUNC( NtSetBootOptions )(
1475 IN PBOOT_OPTIONS BootOptions,
1476 IN ULONG FieldsToChange
1479 _NTFN_EXTERN NTFUNC( NtAddBootEntry )(
1480 IN PBOOT_ENTRY BootEntry,
1484 _NTFN_EXTERN NTFUNC( NtDeleteBootEntry )(
1488 _NTFN_EXTERN NTFUNC( NtModifyBootEntry )(
1489 IN PBOOT_ENTRY BootEntry
1492 _NTFN_EXTERN NTFUNC( NtEnumerateBootEntries )(
1494 IN PULONG BufferLength
1497 _NTFN_EXTERN NTFUNC( NtQueryBootEntryOrder )(
1502 _NTFN_EXTERN NTFUNC( NtSetBootEntryOrder )(
1509 _NTFN_EXTERN NTFUNC( NtTranslateFilePath )(
1510 IN PFILE_PATH InputFilePath,
1511 IN ULONG OutputType,
1512 OUT PFILE_PATH OutputFilePath,
1513 INOUT PULONG OutputFilePathLength
1525 _NTFN_EXTERN NTFUNC( LdrFindResource_U )(
1526 IN PVOID BaseAddress,
1527 IN PLDR_RESOURCE_INFO ResourceInfo,
1529 OUT PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry
1532 _NTFN_EXTERN NTFUNC( LdrFindResourceDirectory_U )(
1533 IN PVOID BaseAddress,
1534 IN PLDR_RESOURCE_INFO ResourceInfo,
1536 OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory
1539 _NTFN_EXTERN NTFUNC( LdrEnumResources )(
1540 IN PVOID BaseAddress,
1541 IN PLDR_RESOURCE_INFO ResourceInfo,
1543 INOUT ULONG* ResourceCount,
1544 OUT LDR_ENUM_RESOURCE_INFO* Resources
1547 _NTFN_EXTERN NTFUNC( LdrAccessResource )(
1548 IN PVOID BaseAddress,
1549 IN PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry,
1554 _NTFN_EXTERN NTFUNC( LdrLoadAlternateResourceModule )(
1559 _NTFN_EXTERN NTFUNCT( BOOLEAN, LdrUnloadAlternateResourceModule )(
1560 IN PVOID BaseAddress
1565 _NTFN_EXTERN NTFUNC( LdrEnumerateLoadedModules )(
1566 IN BOOLEAN ReservedFlag,
1567 IN PLDR_ENUM_CALLBACK EnumProc,
1571 _NTFN_EXTERN NTFUNC( LdrGetProcedureAddress )(
1572 IN PVOID BaseAddress,
1573 IN PANSI_STRING Name,
1575 OUT PVOID* ProcedureAddress
1578 _NTFN_EXTERN NTFUNC( LdrLockLoaderLock )(
1580 OPTOUT PULONG Disposition,
1584 _NTFN_EXTERN NTFUNC( LdrUnlockLoaderLock )(
1589 _NTFN_EXTERN NTFUNCT( BOOLEAN, LdrVerifyMappedImageMatchesChecksum )(
1590 IN PVOID BaseAddress,
1591 IN SIZE_T NumberOfBytes,
1595 _NTFN_EXTERN NTFUNCT( ULONG, LdrRelocateImage )(
1603 _NTFN_EXTERN NTFUNCT( PIMAGE_BASE_RELOCATION, LdrProcessRelocationBlockLongLong )(
1604 IN ULONG_PTR Address,
1606 IN PUSHORT TypeOffset,
1612 _NTFN_EXTERN NTFUNC( LdrDisableThreadCalloutsForDll )(
1613 IN PVOID BaseAddress
1616 _NTFN_EXTERN NTFUNC( LdrLoadDll )(
1617 OPTIN PWSTR SearchPath,
1618 OPTIN PULONG LoadFlags,
1619 IN PUNICODE_STRING Name,
1620 OPTOUT PVOID* BaseAddress
1623 _NTFN_EXTERN NTFUNC( LdrUnloadDll )( IN PVOID BaseAddress )_FP_;
1625 _NTFN_EXTERN NTFUNC( LdrAddRefDll )(
1627 IN PVOID BaseAddress
1630 _NTFN_EXTERN NTFUNC( LdrGetDllHandle )(
1631 OPTIN PWSTR DllPath,
1632 IN PULONG DllCharacteristics,
1633 IN PUNICODE_STRING DllName,
1634 OUT HANDLE* DllHandle
1637 _NTFN_EXTERN NTFUNC( LdrGetDllHandleEx )(
1639 OPTIN PWSTR DllPath,
1640 OPTIN PULONG DllCharacteristics,
1641 IN PUNICODE_STRING DllName,
1645 _NTFN_EXTERN NTFUNC( LdrFindEntryForAddress )(
1647 OUT PLDR_DATA_TABLE_ENTRY* Module
1650 _NTFN_EXTERN NTFUNC( LdrQueryImageFileExecutionOptions )(
1651 IN PUNICODE_STRING SubKey,
1652 IN PCWSTR ValueName,
1655 IN ULONG BufferSize,
1656 OPTOUT PULONG RetunedLength
1659 _NTFN_EXTERN NTFUNC( LdrQueryProcessModuleInformation )(
1660 OPTIN PRTL_PROCESS_MODULES ModuleInformation,
1662 OUT PULONG ReturnedSize
1665 _NTFN_EXTERN NTFUNC( LdrQueryImageFileKeyOption )(
1666 IN HANDLE KeyHandle,
1667 IN PCWSTR ValueName,
1670 IN ULONG BufferSize,
1671 OPTOUT PULONG ReturnedLength
1674 _NTFN_EXTERN NTFUNC( LdrOpenImageFileOptionsKey )(
1675 IN PUNICODE_STRING SubKey,
1677 OUT PHANDLE NewKeyHandle
1680 _NTFN_EXTERN NTFUNCT( VOID, LdrSetDllManifestProber )(
1681 IN PLDR_MANIFEST_PROBER_ROUTINE Routine
1684 _NTFN_EXTERN NTFUNC( LdrShutdownProcess )( VOID )_FP_;
1685 _NTFN_EXTERN NTFUNC( LdrShutdownThread )( VOID )_FP_;
1689 _NTFN_EXTERN NTFUNC( LdrVerifyImageMatchesChecksum )(
1690 IN HANDLE FileHandle,
1692 IN PVOID CallbackContext,
1693 OUT PUSHORT ImageCharacterstics
1696 _NTFN_EXTERN NTFUNCT( PIMAGE_BASE_RELOCATION, LdrProcessRelocationBlock )(
1697 IN ULONG_PTR Address,
1699 IN PUSHORT TypeOffset,
1703 _NTFN_EXTERN NTFUNCT( VOID, LdrInitializeThunk )(
1704 ULONG Unknown1, ULONG Unknown2,
1705 ULONG Unknown3, ULONG Unknown4
1717 _NTFN_EXTERN NTFUNC( NtAllocateUserPhysicalPages )(
1718 IN HANDLE ProcessHandle,
1719 INOUT PULONG_PTR NumberOfPages,
1720 INOUT PULONG_PTR UserPfnArray
1723 _NTFN_EXTERN NTFUNC( NtFreeUserPhysicalPages )(
1724 IN HANDLE ProcessHandle,
1725 INOUT PULONG_PTR NumberOfPages,
1726 INOUT PULONG_PTR UserPfnArray
1729 _NTFN_EXTERN NTFUNC( NtMapUserPhysicalPages )(
1730 IN PVOID VirtualAddresses,
1731 IN ULONG_PTR NumberOfPages,
1732 INOUT PULONG_PTR UserPfnArray
1735 _NTFN_EXTERN NTFUNC( NtMapUserPhysicalPagesScatter )(
1736 IN PVOID* VirtualAddresses,
1737 IN ULONG_PTR NumberOfPages,
1738 INOUT PULONG_PTR UserPfnArray
1743 _NTFN_EXTERN NTFUNC( NtAllocateVirtualMemory )(
1744 IN HANDLE ProcessHandle,
1745 INOUT PVOID *BaseAddress,
1746 IN ULONG_PTR ZeroBits,
1747 INOUT PSIZE_T RegionSize,
1748 IN ULONG AllocationType,
1752 _NTFN_EXTERN NTFUNC( NtFreeVirtualMemory )(
1753 IN HANDLE ProcessHandle,
1754 INOUT PVOID* BaseAddress,
1755 INOUT PSIZE_T RegionSize,
1759 _NTFN_EXTERN NTFUNC( NtQueryVirtualMemory )(
1760 IN HANDLE ProcessHandle,
1762 IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
1763 OUT PVOID VirtualMemoryInformation,
1765 OPTOUT PSIZE_T ResultLength
1768 _NTFN_EXTERN NTFUNC( NtReadVirtualMemory )(
1769 IN HANDLE ProcessHandle,
1770 IN PVOID BaseAddress,
1772 IN SIZE_T NumberOfBytesToRead,
1773 OPTOUT PSIZE_T NumberOfBytesRead
1776 _NTFN_EXTERN NTFUNC( NtWriteVirtualMemory )(
1777 IN HANDLE ProcessHandle,
1778 IN PVOID BaseAddress,
1780 IN SIZE_T NumberOfBytesToWrite,
1781 OPTOUT PSIZE_T NumberOfBytesWritten
1786 _NTFN_EXTERN NTFUNC( NtLockVirtualMemory )(
1787 IN HANDLE ProcessHandle,
1788 INOUT PVOID *BaseAddress,
1789 INOUT PSIZE_T NumberOfBytesToLock,
1793 _NTFN_EXTERN NTFUNC( NtUnlockVirtualMemory )(
1794 IN HANDLE ProcessHandle,
1795 INOUT PVOID *BaseAddress,
1796 INOUT PSIZE_T NumberOfBytesToUnlock,
1800 _NTFN_EXTERN NTFUNC( NtFlushVirtualMemory )(
1801 IN HANDLE ProcessHandle,
1802 INOUT PVOID *BaseAddress,
1803 INOUT PSIZE_T RegionSize,
1804 OUT PIO_STATUS_BLOCK IoStatus
1807 _NTFN_EXTERN NTFUNC( NtProtectVirtualMemory )(
1808 IN HANDLE ProcessHandle,
1809 INOUT PVOID *BaseAddress,
1810 INOUT SIZE_T *NumberOfBytesToProtect,
1811 IN ULONG NewAccessProtection,
1812 OUT PULONG OldAccessProtection
1817 _NTFN_EXTERN NTFUNC( NtCreateSection )(
1818 OUT PHANDLE SectionHandle,
1819 IN ACCESS_MASK DesiredAccess,
1820 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
1821 OPTIN PLARGE_INTEGER MaximumSize,
1822 IN ULONG SectionPageProtection,
1823 IN ULONG AllocationAttributes,
1824 OPTIN HANDLE FileHandle
1827 _NTFN_EXTERN NTFUNC( NtOpenSection )(
1828 OUT PHANDLE SectionHandle,
1829 IN ACCESS_MASK DesiredAccess,
1830 IN POBJECT_ATTRIBUTES ObjectAttributes
1833 _NTFN_EXTERN NTFUNC( NtQuerySection )(
1834 IN HANDLE SectionHandle,
1835 IN SECTION_INFORMATION_CLASS SectionInformationClass,
1836 OUT PVOID SectionInformation,
1838 OUT PSIZE_T ResultLength
1841 _NTFN_EXTERN NTFUNC( NtExtendSection )(
1842 IN HANDLE SectionHandle,
1843 IN PLARGE_INTEGER NewMaximumSize
1846 _NTFN_EXTERN NTFUNC( NtMapViewOfSection )(
1847 IN HANDLE SectionHandle,
1848 IN HANDLE ProcessHandle,
1849 INOUT PVOID *BaseAddress,
1850 IN ULONG_PTR ZeroBits,
1851 IN SIZE_T CommitSize,
1852 INOUT PLARGE_INTEGER SectionOffset OPTIONAL,
1853 INOUT PSIZE_T ViewSize,
1854 IN SECTION_INHERIT InheritDisposition,
1855 IN ULONG AllocationType,
1856 IN ULONG AccessProtection
1859 _NTFN_EXTERN NTFUNC( NtUnmapViewOfSection )(
1860 IN HANDLE ProcessHandle,
1861 IN PVOID BaseAddress
1866 _NTFN_EXTERN NTFUNC( NtGetWriteWatch )(
1867 IN HANDLE ProcessHandle,
1869 IN PVOID BaseAddress,
1870 IN SIZE_T RegionSize,
1871 IN PVOID *UserAddressArray,
1872 OUT PULONG_PTR EntriesInUserAddressArray,
1873 OUT PULONG Granularity
1876 _NTFN_EXTERN NTFUNC( NtResetWriteWatch )(
1877 IN HANDLE ProcessHandle,
1878 IN PVOID BaseAddress,
1879 IN SIZE_T RegionSize
1884 _NTFN_EXTERN NTFUNC( NtCreatePagingFile )(
1885 IN PUNICODE_STRING FileName,
1886 IN PLARGE_INTEGER InitialSize,
1887 IN PLARGE_INTEGER MaxiumSize,
1891 _NTFN_EXTERN NTFUNC( NtAreMappedFilesTheSame )(
1892 IN PVOID File1MappedAsAnImage,
1893 IN PVOID File2MappedAsFile
1896 _NTFN_EXTERN NTFUNC( NtFlushInstructionCache )(
1897 IN HANDLE ProcessHandle,
1898 IN PVOID BaseAddress,
1899 IN SIZE_T NumberOfBytesToFlush
1911 _NTFN_EXTERN NTFUNC( NtOpenProcessToken )(
1912 IN HANDLE ProcessHandle,
1913 IN ACCESS_MASK DesiredAccess,
1914 OUT PHANDLE TokenHandle
1917 _NTFN_EXTERN NTFUNC( NtOpenProcessTokenEx )(
1918 IN HANDLE ProcessHandle,
1919 IN ACCESS_MASK DesiredAccess,
1920 IN ULONG HandleAttributes,
1921 OUT PHANDLE TokenHandle
1924 _NTFN_EXTERN NTFUNC( NtOpenThreadToken )(
1925 IN HANDLE ThreadHandle,
1926 IN ACCESS_MASK DesiredAccess,
1927 IN BOOLEAN OpenAsSelf,
1928 OUT PHANDLE TokenHandle
1931 _NTFN_EXTERN NTFUNC( NtOpenThreadTokenEx )(
1932 IN HANDLE ThreadHandle,
1933 IN ACCESS_MASK DesiredAccess,
1934 IN BOOLEAN OpenAsSelf,
1935 IN ULONG HandleAttributes,
1936 OUT PHANDLE TokenHandle
1939 _NTFN_EXTERN NTFUNC( NtCreateToken )(
1940 OUT PHANDLE TokenHandle,
1941 IN ACCESS_MASK DesiredAccess,
1942 IN POBJECT_ATTRIBUTES ObjectAttributes,
1943 IN TOKEN_TYPE TokenType,
1944 IN PLUID AuthenticationId,
1945 IN PLARGE_INTEGER ExpirationTime,
1946 IN PTOKEN_USER TokenUser,
1947 IN PTOKEN_GROUPS TokenGroups,
1948 IN PTOKEN_PRIVILEGES TokenPrivileges,
1949 IN PTOKEN_OWNER TokenOwner,
1950 IN PTOKEN_PRIMARY_GROUP TokenPrimaryGroup,
1951 IN PTOKEN_DEFAULT_DACL TokenDefaultDacl,
1952 IN PTOKEN_SOURCE TokenSource
1955 _NTFN_EXTERN NTFUNC( NtDuplicateToken )(
1956 IN HANDLE ExistingTokenHandle,
1957 IN ACCESS_MASK DesiredAccess,
1958 OPTIN POBJECT_ATTRIBUTES ObjectAttributes,
1959 IN BOOLEAN EffectiveOnly,
1960 IN TOKEN_TYPE TokenType,
1961 OUT PHANDLE NewTokenHandle
1964 _NTFN_EXTERN NTFUNC( NtCompareTokens )(
1965 IN HANDLE FirstTokenHandle,
1966 IN HANDLE SecondTokenHandle,
1970 _NTFN_EXTERN NTFUNC( NtPrivilegeCheck )(
1971 IN HANDLE ClientToken,
1972 INOUT PPRIVILEGE_SET RequiredPrivileges,
1976 _NTFN_EXTERN NTFUNC( NtAdjustPrivilegesToken )(
1977 IN HANDLE TokenHandle,
1978 IN BOOLEAN DisableAllPrivileges,
1979 OPTIN PTOKEN_PRIVILEGES NewState,
1980 IN ULONG BufferLength,
1981 OPTOUT PTOKEN_PRIVILEGES PreviousState,
1982 OPTOUT PULONG ReturnLength
1985 _NTFN_EXTERN NTFUNC( NtAdjustGroupsToken )(
1986 IN HANDLE TokenHandle,
1987 IN BOOLEAN ResetToDefault,
1988 OPTIN PTOKEN_GROUPS NewState,
1989 OPTIN ULONG BufferLength,
1990 OPTOUT PTOKEN_GROUPS PreviousState,
1991 OUT PULONG ReturnLength
1994 _NTFN_EXTERN NTFUNC( NtQueryInformationToken )(
1995 IN HANDLE TokenHandle,
1996 IN TOKEN_INFORMATION_CLASS TokenInformationClass,
1997 OPTOUT PVOID TokenInformation,
1998 IN ULONG TokenInformationLength,
1999 OUT PULONG ReturnLength
2002 _NTFN_EXTERN NTFUNC( NtSetInformationToken )(
2003 IN HANDLE TokenHandle,
2004 IN TOKEN_INFORMATION_CLASS TokenInformationClass,
2005 IN PVOID TokenInformation,
2006 IN ULONG TokenInformationLength
2009 _NTFN_EXTERN NTFUNC( NtImpersonateAnonymousToken )(
2015 _NTFN_EXTERN NTFUNC( NtAllocateLocallyUniqueId )(
2016 OUT LUID *LocallyUniqueId
2019 _NTFN_EXTERN NTFUNC( NtAllocateUuids )(
2020 OUT PULARGE_INTEGER Time,
2022 OUT PULONG Sequence,
2028 _NTFN_EXTERN NTFUNC( NtAccessCheck )(
2029 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2030 IN HANDLE ClientToken,
2031 IN ACCESS_MASK DesiredAccess,
2032 IN PGENERIC_MAPPING GenericMapping,
2033 OUT PPRIVILEGE_SET PrivilegeSet,
2034 OUT PULONG ReturnLength,
2035 OUT PACCESS_MASK GrantedAccess,
2036 OUT PNTSTATUS AccessStatus
2039 _NTFN_EXTERN NTFUNC( NtAccessCheckByType )(
2040 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2041 IN PSID PrincipalSelfSid,
2042 IN HANDLE ClientToken,
2043 IN ACCESS_MASK DesiredAccess,
2044 IN POBJECT_TYPE_LIST ObjectTypeList,
2045 IN ULONG ObjectTypeLength,
2046 IN PGENERIC_MAPPING GenericMapping,
2047 IN PPRIVILEGE_SET PrivilegeSet,
2048 INOUT PULONG PrivilegeSetLength,
2049 OUT PACCESS_MASK GrantedAccess,
2050 OUT PNTSTATUS AccessStatus
2053 _NTFN_EXTERN NTFUNC( NtAccessCheckByTypeResultList )(
2054 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2055 IN PSID PrincipalSelfSid,
2056 IN HANDLE ClientToken,
2057 IN ACCESS_MASK DesiredAccess,
2058 IN POBJECT_TYPE_LIST ObjectTypeList,
2059 IN ULONG ObjectTypeLength,
2060 IN PGENERIC_MAPPING GenericMapping,
2061 IN PPRIVILEGE_SET PrivilegeSet,
2062 INOUT PULONG PrivilegeSetLength,
2063 OUT PACCESS_MASK GrantedAccess,
2064 OUT PNTSTATUS AccessStatus
2067 _NTFN_EXTERN NTFUNC( NtAccessCheckAndAuditAlarm )(
2068 IN PUNICODE_STRING SubsystemName,
2069 OPTIN PVOID HandleId,
2070 IN PUNICODE_STRING ObjectTypeName,
2071 IN PUNICODE_STRING ObjectName,
2072 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2073 IN ACCESS_MASK DesiredAccess,
2074 IN PGENERIC_MAPPING GenericMapping,
2075 IN BOOLEAN ObjectCreation,
2076 OUT PACCESS_MASK GrantedAccess,
2077 OUT PNTSTATUS AccessStatus,
2078 OUT PBOOLEAN GenerateOnClose
2083 _NTFN_EXTERN NTFUNC( NtOpenObjectAuditAlarm )(
2084 IN PUNICODE_STRING SubsystemName,
2085 OPTIN PVOID HandleId,
2086 IN PUNICODE_STRING ObjectTypeName,
2087 IN PUNICODE_STRING ObjectName,
2088 OPTIN PSECURITY_DESCRIPTOR SecurityDescriptor,
2089 IN HANDLE ClientToken,
2090 IN ACCESS_MASK DesiredAccess,
2091 IN ACCESS_MASK GrantedAccess,
2092 OPTIN PPRIVILEGE_SET Privileges,
2093 IN BOOLEAN ObjectCreation,
2094 IN BOOLEAN AccessGranted,
2095 OUT PBOOLEAN GenerateOnClose
2098 _NTFN_EXTERN NTFUNC( NtPrivilegedServiceAuditAlarm )(
2099 IN PUNICODE_STRING SubsystemName,
2100 IN PUNICODE_STRING ServiceName,
2101 IN HANDLE ClientToken,
2102 IN PPRIVILEGE_SET Privileges,
2103 IN BOOLEAN AccessGranted
2106 _NTFN_EXTERN NTFUNC( NtPrivilegeObjectAuditAlarm )(
2107 IN PUNICODE_STRING SubsystemName,
2108 OPTIN PVOID HandleId,
2109 IN HANDLE ClientToken,
2110 IN ACCESS_MASK DesiredAccess,
2111 IN PPRIVILEGE_SET Privileges,
2112 IN BOOLEAN AccessGranted
2124 #ifndef NtCurrentPeb 2125 #define NtCurrentPeb() (NtCurrentTeb()->ProcessEnvironmentBlock) 2126 #define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap) 2131 _NTFN_EXTERN NTFUNCT( PVOID, RtlAddVectoredExceptionHandler )(
2132 IN ULONG FirstHandler,
2133 IN PVECTORED_EXCEPTION_HANDLER VectoredHandler
2136 _NTFN_EXTERN NTFUNCT( VOID, RtlAssert )(
2137 IN PVOID FailedAssertion,
2139 IN ULONG LineNumber,
2143 _NTFN_EXTERN NTFUNCT( VOID, RtlSetUnhandledExceptionFilter )(
2144 IN PRTLP_UNHANDLED_EXCEPTION_FILTER TopLevelExceptionFilter
2147 _NTFN_EXTERN NTFUNCT( LONG, RtlUnhandledExceptionFilter )(
2148 IN
struct _EXCEPTION_POINTERS* ExceptionInfo
2151 _NTFN_EXTERN NTFUNCT( PVOID, RtlEncodePointer )(
2155 _NTFN_EXTERN NTFUNCT( PVOID, RtlDecodePointer )(
2159 _NTFN_EXTERN NTFUNCT( PVOID, RtlEncodeSystemPointer )(
2163 _NTFN_EXTERN NTFUNCT( PVOID, RtlDecodeSystemPointer )(
2167 _NTFN_EXTERN NTFUNC( RtlGetLastNtStatus )( VOID )_FP_;
2169 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetLastWin32Error )( VOID )_FP_;
2171 _NTFN_EXTERN NTFUNCT( VOID, RtlSetLastWin32Error )(
2175 _NTFN_EXTERN NTFUNCT( VOID, RtlSetLastWin32ErrorAndNtStatusFromNtStatus )(
2179 _NTFN_EXTERN NTFUNC( RtlSetThreadErrorMode )(
2184 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetThreadErrorMode )( VOID )_FP_;
2186 _NTFN_EXTERN NTFUNCT( VOID, RtlCaptureContext )(
2187 OUT PCONTEXT ContextRecord
2190 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlDispatchException )(
2191 IN PEXCEPTION_RECORD ExceptionRecord,
2195 _NTFN_EXTERN NTFUNCT( ULONG, RtlNtStatusToDosError )(
2199 _NTFN_EXTERN NTFUNCT( ULONG, RtlNtStatusToDosErrorNoTeb )(
2203 _NTFN_EXTERN NTFUNC( RtlMapSecurityErrorToNtStatus )(
2204 IN ULONG SecurityError
2207 _NTFN_EXTERN NTFUNCT( VOID, RtlRaiseException )(
2208 IN PEXCEPTION_RECORD ExceptionRecord
2212 _NTFN_EXTERN NTFUNCT( VOID, RtlRaiseStatus )(
2216 _NTFN_EXTERN NTFUNCT( VOID, RtlUnwind )(
2217 OPTIN PVOID TargetFrame,
2218 OPTIN PVOID TargetIp,
2219 OPTIN PEXCEPTION_RECORD ExceptionRecord,
2220 IN PVOID ReturnValue
2225 #define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT 8 2227 _NTFN_EXTERN NTFUNCT( ULONG, RtlWalkFrameChain )(
2233 _NTFN_EXTERN NTFUNCT( USHORT, RtlLogStackBackTrace )( VOID )_FP_;
2237 _NTFN_EXTERN NTFUNCT( PVOID, RtlAllocateHeap )(
2238 IN PVOID HeapHandle,
2243 _NTFN_EXTERN NTFUNCT( PVOID, RtlCreateHeap )(
2245 OPTIN PVOID BaseAddress,
2246 OPTIN SIZE_T SizeToReserve,
2247 OPTIN SIZE_T SizeToCommit,
2249 OPTIN PRTL_HEAP_PARAMETERS Parameters
2252 _NTFN_EXTERN NTFUNCT( ULONG, RtlCreateTagHeap )(
2253 IN HANDLE HeapHandle,
2259 _NTFN_EXTERN NTFUNCT( ULONG, RtlCompactHeap )(
2264 _NTFN_EXTERN NTFUNCT( PVOID, RtlDebugCreateHeap )(
2266 OPTIN PVOID BaseAddress,
2267 OPTIN SIZE_T SizeToReserve,
2268 OPTIN SIZE_T SizeToCommit,
2270 OPTIN PRTL_HEAP_PARAMETERS Parameters
2273 _NTFN_EXTERN NTFUNCT( HANDLE, RtlDestroyHeap )(
2277 _NTFN_EXTERN NTFUNCT( ULONG, RtlExtendHeap )(
2284 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlFreeHeap )(
2285 IN HANDLE HeapHandle,
2290 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetProcessHeaps )(
2292 OUT HANDLE *HeapArray
2295 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlGetUserInfoHeap )(
2296 IN PVOID HeapHandle,
2298 IN PVOID BaseAddress,
2299 OPTIO PVOID *UserValue,
2303 _NTFN_EXTERN NTFUNCT( PVOID, RtlProtectHeap )(
2304 IN PVOID HeapHandle,
2308 _NTFN_EXTERN NTFUNC( RtlQueryHeapInformation )(
2309 IN PVOID HeapHandle,
2310 IN HEAP_INFORMATION_CLASS HeapInformationClass,
2311 OUT PVOID HeapInformation,
2312 IN SIZE_T HeapInformationLength,
2313 OPTOUT PSIZE_T ReturnLength
2316 _NTFN_EXTERN NTFUNCT( PWSTR, RtlQueryTagHeap )(
2317 IN PVOID HeapHandle,
2320 IN BOOLEAN ResetCounters,
2321 OUT PRTL_HEAP_TAG_INFO HeapTagInfo
2324 _NTFN_EXTERN NTFUNCT( PVOID, RtlReAllocateHeap )(
2331 _NTFN_EXTERN NTFUNC( RtlSetHeapInformation )(
2332 IN PVOID HeapHandle,
2333 IN HEAP_INFORMATION_CLASS HeapInformationClass,
2334 IN PVOID HeapInformation,
2335 IN SIZE_T HeapInformationLength
2338 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlLockHeap )(
2342 _NTFN_EXTERN NTFUNC( RtlMultipleAllocateHeap )(
2343 IN HANDLE HeapHandle,
2350 _NTFN_EXTERN NTFUNC( RtlMultipleFreeHeap )(
2351 IN HANDLE HeapHandle,
2357 _NTFN_EXTERN NTFUNC( RtlUsageHeap )(
2360 OUT PRTL_HEAP_USAGE Usage
2363 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlUnlockHeap )(
2367 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlSetUserValueHeap )(
2368 IN PVOID HeapHandle,
2370 IN PVOID BaseAddress,
2374 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlSetUserFlagsHeap )(
2375 IN PVOID HeapHandle,
2377 IN PVOID BaseAddress,
2378 IN ULONG UserFlagsReset,
2379 IN ULONG UserFlagsSet
2382 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlValidateHeap )(
2388 _NTFN_EXTERN NTFUNC( RtlWalkHeap )(
2389 IN HANDLE HeapHandle,
2393 _NTFN_EXTERN NTFUNCT( SIZE_T, RtlSizeHeap )(
2394 IN PVOID HeapHandle,
2396 IN PVOID MemoryPointer
2401 _NTFN_EXTERN NTFUNC( RtlAbsoluteToSelfRelativeSD )(
2402 IN PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
2403 OUT PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
2404 INOUT PULONG BufferLength
2407 _NTFN_EXTERN NTFUNC( RtlAddAccessAllowedAce )(
2410 IN ACCESS_MASK AccessMask,
2414 _NTFN_EXTERN NTFUNC( RtlAddAccessAllowedAceEx )(
2416 IN ULONG dwAceRevision,
2418 IN ACCESS_MASK AccessMask,
2422 _NTFN_EXTERN NTFUNC( RtlAddAccessAllowedObjectAce )(
2424 IN ULONG dwAceRevision,
2426 IN ACCESS_MASK AccessMask,
2427 IN OPTIONAL GUID *ObjectTypeGuid,
2428 IN OPTIONAL GUID *InheritedObjectTypeGuid,
2432 _NTFN_EXTERN NTFUNC( RtlAddAccessDeniedAce )(
2435 IN ACCESS_MASK AccessMask,
2439 _NTFN_EXTERN NTFUNC( RtlAddAccessDeniedAceEx )(
2443 IN ACCESS_MASK AccessMask,
2447 _NTFN_EXTERN NTFUNC( RtlAddAccessDeniedObjectAce )(
2449 IN ULONG dwAceRevision,
2451 IN ACCESS_MASK AccessMask,
2452 OPTIN GUID *ObjectTypeGuid,
2453 OPTIN GUID *InheritedObjectTypeGuid,
2457 _NTFN_EXTERN NTFUNC( RtlAddAce )(
2459 IN ULONG AceRevision,
2460 IN ULONG StartingAceIndex,
2462 IN ULONG AceListLength
2465 _NTFN_EXTERN NTFUNC( RtlAddAuditAccessAce )(
2468 IN ACCESS_MASK AccessMask,
2474 _NTFN_EXTERN NTFUNC( RtlAcquirePrivilege )(
2475 IN PULONG Privilege,
2478 OUT PVOID *ReturnedState
2481 _NTFN_EXTERN NTFUNC( RtlAddAuditAccessAceEx )(
2485 IN ACCESS_MASK AccessMask,
2491 _NTFN_EXTERN NTFUNC( RtlAddAuditAccessObjectAce )(
2495 IN ACCESS_MASK AccessMask,
2496 OPTIN GUID *ObjectTypeGuid,
2497 OPTIN GUID *InheritedObjectTypeGuid,
2503 _NTFN_EXTERN NTFUNC( RtlAddMandatoryAce )(
2507 IN ULONG MandatoryFlags,
2512 _NTFN_EXTERN NTFUNC( RtlAdjustPrivilege )(
2514 IN BOOLEAN NewValue,
2515 IN BOOLEAN ForThread,
2516 OUT PBOOLEAN OldValue
2519 _NTFN_EXTERN NTFUNC( RtlAllocateAndInitializeSid )(
2520 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
2521 IN UCHAR SubAuthorityCount,
2522 IN ULONG SubAuthority0,
2523 IN ULONG SubAuthority1,
2524 IN ULONG SubAuthority2,
2525 IN ULONG SubAuthority3,
2526 IN ULONG SubAuthority4,
2527 IN ULONG SubAuthority5,
2528 IN ULONG SubAuthority6,
2529 IN ULONG SubAuthority7,
2533 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlAreAllAccessesGranted )(
2534 ACCESS_MASK GrantedAccess,
2535 ACCESS_MASK DesiredAccess
2538 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlAreAnyAccessesGranted )(
2539 ACCESS_MASK GrantedAccess,
2540 ACCESS_MASK DesiredAccess
2543 _NTFN_EXTERN NTFUNCT( VOID, RtlCopyLuid )(
2544 OUT PLUID DestinationLuid,
2548 _NTFN_EXTERN NTFUNCT( VOID, RtlCopyLuidAndAttributesArray )(
2550 PLUID_AND_ATTRIBUTES Src,
2551 PLUID_AND_ATTRIBUTES Dest
2554 _NTFN_EXTERN NTFUNC( RtlCopySidAndAttributesArray )(
2556 PSID_AND_ATTRIBUTES Src,
2558 PSID_AND_ATTRIBUTES Dest,
2560 PVOID* RemainingSidArea,
2561 PULONG RemainingSidAreaSize
2564 _NTFN_EXTERN NTFUNC( RtlConvertSidToUnicodeString )(
2565 INOUT PUNICODE_STRING UnicodeString,
2567 IN BOOLEAN AllocateDestinationString
2570 _NTFN_EXTERN NTFUNC( RtlCopySid )(
2571 IN ULONG DestinationSidLength,
2572 OUT PSID DestinationSid,
2576 _NTFN_EXTERN NTFUNC( RtlCreateAcl )(
2582 _NTFN_EXTERN NTFUNC( RtlCreateSecurityDescriptor )(
2583 OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
2587 _NTFN_EXTERN NTFUNC( RtlCreateSecurityDescriptorRelative )(
2588 OUT PISECURITY_DESCRIPTOR_RELATIVE SecurityDescriptor,
2592 _NTFN_EXTERN NTFUNC( RtlCopySecurityDescriptor )(
2593 IN PSECURITY_DESCRIPTOR pSourceSecurityDescriptor,
2594 OUT PSECURITY_DESCRIPTOR *pDestinationSecurityDescriptor
2597 _NTFN_EXTERN NTFUNC( RtlDeleteAce )(
2602 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlEqualPrefixSid )(
2607 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlEqualSid )(
2612 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlFirstFreeAce )(
2617 _NTFN_EXTERN NTFUNCT( PVOID, RtlFreeSid )(
2621 _NTFN_EXTERN NTFUNC( RtlGetAce )(
2627 _NTFN_EXTERN NTFUNC( RtlGetControlSecurityDescriptor )(
2628 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2629 OUT PSECURITY_DESCRIPTOR_CONTROL Control,
2633 _NTFN_EXTERN NTFUNC( RtlGetDaclSecurityDescriptor )(
2634 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2635 OUT PBOOLEAN DaclPresent,
2637 OUT PBOOLEAN DaclDefaulted
2640 _NTFN_EXTERN NTFUNC( RtlGetSaclSecurityDescriptor )(
2641 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2642 OUT PBOOLEAN SaclPresent,
2644 OUT PBOOLEAN SaclDefaulted
2647 _NTFN_EXTERN NTFUNC( RtlGetGroupSecurityDescriptor )(
2648 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2650 OUT PBOOLEAN GroupDefaulted
2653 _NTFN_EXTERN NTFUNC( RtlGetOwnerSecurityDescriptor )(
2654 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2656 OUT PBOOLEAN OwnerDefaulted
2659 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlGetSecurityDescriptorRMControl )(
2660 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2661 OUT PUCHAR RMControl
2664 _NTFN_EXTERN NTFUNCT( PSID_IDENTIFIER_AUTHORITY, RtlIdentifierAuthoritySid )(
2668 _NTFN_EXTERN NTFUNC( RtlImpersonateSelf )(
2669 IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
2672 _NTFN_EXTERN NTFUNC( RtlInitializeSid )(
2674 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
2675 IN UCHAR SubAuthorityCount
2678 _NTFN_EXTERN NTFUNCT( ULONG, RtlLengthRequiredSid )(
2679 IN ULONG SubAuthorityCount
2682 _NTFN_EXTERN NTFUNCT( ULONG, RtlLengthSecurityDescriptor )(
2683 IN PSECURITY_DESCRIPTOR SecurityDescriptor
2686 _NTFN_EXTERN NTFUNCT( ULONG, RtlLengthSid )(
2690 _NTFN_EXTERN NTFUNC( RtlMakeSelfRelativeSD )(
2691 IN PSECURITY_DESCRIPTOR AbsoluteSD,
2692 OUT PSECURITY_DESCRIPTOR SelfRelativeSD,
2693 INOUT PULONG BufferLength
2696 _NTFN_EXTERN NTFUNCT( VOID, RtlMapGenericMask )(
2697 PACCESS_MASK AccessMask,
2698 PGENERIC_MAPPING GenericMapping
2701 _NTFN_EXTERN NTFUNC( RtlQueryInformationAcl )(
2704 ULONG InformationLength,
2705 ACL_INFORMATION_CLASS InformationClass
2708 _NTFN_EXTERN NTFUNCT( VOID, RtlReleasePrivilege )(
2709 IN PVOID ReturnedState
2712 _NTFN_EXTERN NTFUNC( RtlSelfRelativeToAbsoluteSD )(
2713 IN PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
2714 OUT PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
2715 INOUT PULONG AbsoluteSecurityDescriptorSize,
2717 INOUT PULONG DaclSize,
2719 INOUT PULONG SaclSize,
2721 INOUT PULONG OwnerSize,
2722 OUT PSID PrimaryGroup,
2723 INOUT PULONG PrimaryGroupSize
2726 _NTFN_EXTERN NTFUNC( RtlSelfRelativeToAbsoluteSD2 )(
2727 IN OUT PSECURITY_DESCRIPTOR SelfRelativeSD,
2728 OUT PULONG BufferSize
2731 _NTFN_EXTERN NTFUNC( RtlSetAttributesSecurityDescriptor )(
2732 INOUT PSECURITY_DESCRIPTOR SecurityDescriptor,
2733 IN SECURITY_DESCRIPTOR_CONTROL Control,
2737 _NTFN_EXTERN NTFUNC( RtlSetControlSecurityDescriptor )(
2738 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
2739 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
2740 IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
2743 _NTFN_EXTERN NTFUNC( RtlSetDaclSecurityDescriptor )(
2744 INOUT PSECURITY_DESCRIPTOR SecurityDescriptor,
2745 IN BOOLEAN DaclPresent,
2747 OPTIN BOOLEAN DaclDefaulted
2750 _NTFN_EXTERN NTFUNC( RtlSetGroupSecurityDescriptor )(
2751 INOUT PSECURITY_DESCRIPTOR SecurityDescriptor,
2753 OPTIN BOOLEAN GroupDefaulted
2756 _NTFN_EXTERN NTFUNC( RtlSetInformationAcl )(
2759 ULONG InformationLength,
2760 ACL_INFORMATION_CLASS InformationClass
2763 _NTFN_EXTERN NTFUNC( RtlSetOwnerSecurityDescriptor )(
2764 INOUT PSECURITY_DESCRIPTOR SecurityDescriptor,
2766 OPTIN BOOLEAN OwnerDefaulted
2769 _NTFN_EXTERN NTFUNC( RtlSetSaclSecurityDescriptor )(
2770 INOUT PSECURITY_DESCRIPTOR SecurityDescriptor,
2771 IN BOOLEAN SaclPresent,
2773 IN BOOLEAN SaclDefaulted
2776 _NTFN_EXTERN NTFUNCT( VOID, RtlSetSecurityDescriptorRMControl )(
2777 INOUT PSECURITY_DESCRIPTOR SecurityDescriptor,
2781 _NTFN_EXTERN NTFUNCT( PUCHAR, RtlSubAuthorityCountSid )(
2785 _NTFN_EXTERN NTFUNCT( PULONG, RtlSubAuthoritySid )(
2787 IN ULONG SubAuthority
2790 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlValidRelativeSecurityDescriptor )(
2791 IN PSECURITY_DESCRIPTOR SecurityDescriptorInput,
2792 IN ULONG SecurityDescriptorLength,
2793 IN SECURITY_INFORMATION RequiredInformation
2796 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlValidSecurityDescriptor )(
2797 IN PSECURITY_DESCRIPTOR SecurityDescriptor
2800 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlValidSid )(
2804 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlValidAcl )(
2808 _NTFN_EXTERN NTFUNC( RtlDeleteSecurityObject )(
2809 IN PSECURITY_DESCRIPTOR *ObjectDescriptor
2812 _NTFN_EXTERN NTFUNC( RtlNewSecurityObject )(
2813 IN PSECURITY_DESCRIPTOR ParentDescriptor,
2814 IN PSECURITY_DESCRIPTOR CreatorDescriptor,
2815 OUT PSECURITY_DESCRIPTOR *NewDescriptor,
2816 IN BOOLEAN IsDirectoryObject,
2818 IN PGENERIC_MAPPING GenericMapping
2821 _NTFN_EXTERN NTFUNC( RtlQuerySecurityObject )(
2822 IN PSECURITY_DESCRIPTOR ObjectDescriptor,
2823 IN SECURITY_INFORMATION SecurityInformation,
2824 OUT PSECURITY_DESCRIPTOR ResultantDescriptor,
2825 IN ULONG DescriptorLength,
2826 OUT PULONG ReturnLength
2829 _NTFN_EXTERN NTFUNC( RtlSetSecurityObject )(
2830 IN SECURITY_INFORMATION SecurityInformation,
2831 IN PSECURITY_DESCRIPTOR ModificationDescriptor,
2832 OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
2833 IN PGENERIC_MAPPING GenericMapping,
2839 _NTFN_EXTERN NTFUNC( RtlLargeIntegerToChar )(
2840 IN PLARGE_INTEGER Value,
2846 _NTFN_EXTERN NTFUNCT( CHAR, RtlUpperChar )(
2850 _NTFN_EXTERN NTFUNCT( WCHAR, RtlUpcaseUnicodeChar )(
2854 _NTFN_EXTERN NTFUNCT( WCHAR, RtlDowncaseUnicodeChar )(
2858 _NTFN_EXTERN NTFUNC( RtlIntegerToChar )(
2865 _NTFN_EXTERN NTFUNC( RtlIntegerToUnicode )(
2872 _NTFN_EXTERN NTFUNC( RtlIntegerToUnicodeString )(
2875 INOUT PUNICODE_STRING String
2878 _NTFN_EXTERN NTFUNC( RtlCharToInteger )(
2886 #ifndef RtlUshortByteSwap 2892 #pragma intrinsic(_byteswap_ushort) 2893 #pragma intrinsic(_byteswap_ulong) 2894 #pragma intrinsic(_byteswap_uint64) 2897 #define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x)) 2898 #define RtlUlongByteSwap(_x) _byteswap_ulong((_x)) 2899 #define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x)) 2900 #endif//ndef RtlUshortByteSwap 2904 _NTFN_EXTERN NTFUNCT( ULONG, RtlxUnicodeStringToAnsiSize )(
2905 IN PCUNICODE_STRING UnicodeString
2908 #define RtlUnicodeStringToAnsiSize( S )( \ 2909 NLS_MB_CODE_PAGE_TAG ? \ 2910 RtlxUnicodeStringToAnsiSize( S ) : \ 2911 ((S)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \ 2914 _NTFN_EXTERN NTFUNC( RtlUnicodeStringToAnsiString )(
2915 PANSI_STRING DestinationString,
2916 PCUNICODE_STRING SourceString,
2917 BOOLEAN AllocateDestinationString
2922 _NTFN_EXTERN NTFUNC( RtlUpcaseUnicodeStringToOemString )(
2923 POEM_STRING DestinationString,
2924 PCUNICODE_STRING SourceString,
2925 BOOLEAN AllocateDestinationString
2928 _NTFN_EXTERN NTFUNC( RtlUpcaseUnicodeStringToCountedOemString )(
2929 OUT POEM_STRING DestinationString,
2930 IN PCUNICODE_STRING SourceString,
2931 IN BOOLEAN AllocateDestinationString
2934 _NTFN_EXTERN NTFUNC( RtlUnicodeStringToOemString )(
2935 POEM_STRING DestinationString,
2936 PCUNICODE_STRING SourceString,
2937 BOOLEAN AllocateDestinationString
2940 _NTFN_EXTERN NTFUNC( RtlUpcaseUnicodeToOemN )(
2944 PCWCH UnicodeString,
2948 _NTFN_EXTERN NTFUNCT( ULONG, RtlxUnicodeStringToOemSize )(
2949 IN PCUNICODE_STRING UnicodeString
2952 #ifndef RtlUnicodeStringToOemSize 2953 #define RtlUnicodeStringToOemSize( S ) ( \ 2954 NLS_MB_OEM_CODE_PAGE_TAG ? \ 2955 RtlxUnicodeStringToOemSize( S ) : \ 2956 ((S)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \ 2959 #define RtlUnicodeStringToCountedOemSize( S ) ( \ 2960 (ULONG)(RtlUnicodeStringToOemSize( S ) - sizeof(ANSI_NULL)) \ 2962 #endif//ndef RtlUnicodeStringToOemSize 2964 _NTFN_EXTERN NTFUNC( RtlUnicodeToOemN )(
2968 PCWCH UnicodeString,
2974 _NTFN_EXTERN NTFUNC( RtlUnicodeToMultiByteN )(
2978 PCWCH UnicodeString,
2982 _NTFN_EXTERN NTFUNC( RtlUpcaseUnicodeToMultiByteN )(
2986 PCWCH UnicodeString,
2990 _NTFN_EXTERN NTFUNC( RtlUnicodeToMultiByteSize )(
2992 PCWCH UnicodeString,
2996 _NTFN_EXTERN NTFUNCT( ULONG, RtlxOemStringToUnicodeSize )(
2997 IN PCOEM_STRING OemString
3002 _NTFN_EXTERN NTFUNC( RtlOemStringToUnicodeString )(
3003 PUNICODE_STRING DestinationString,
3004 PCOEM_STRING SourceString,
3005 BOOLEAN AllocateDestinationString
3008 _NTFN_EXTERN NTFUNC( RtlOemToUnicodeN )(
3009 OUT PWCH UnicodeString,
3010 IN ULONG MaxBytesInUnicodeString,
3011 OPTOUT PULONG BytesInUnicodeString,
3013 IN ULONG BytesInOemString
3016 #ifndef RtlOemStringToUnicodeSize 3017 #define RtlOemStringToUnicodeSize( S ) ( \ 3018 NLS_MB_OEM_CODE_PAGE_TAG ? \ 3019 RtlxOemStringToUnicodeSize( S ) : \ 3020 ((S)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \ 3023 #define RtlOemStringToCountedUnicodeSize( S ) ( \ 3024 (ULONG)(RtlOemStringToUnicodeSize( S ) - sizeof(UNICODE_NULL)) \ 3026 #endif//ndef RtlOemStringToUnicodeSize 3030 _NTFN_EXTERN NTFUNCT( WCHAR, RtlAnsiCharToUnicodeChar )(
3031 INOUT PUCHAR *SourceCharacter
3034 _NTFN_EXTERN NTFUNC( RtlAnsiStringToUnicodeString )(
3035 PUNICODE_STRING DestinationString,
3036 PCANSI_STRING SourceString,
3037 BOOLEAN AllocateDestinationString
3040 _NTFN_EXTERN NTFUNCT( ULONG, RtlxAnsiStringToUnicodeSize )(
3041 PCANSI_STRING AnsiString
3044 #ifndef RtlAnsiStringToUnicodeSize 3045 #define RtlAnsiStringToUnicodeSize( S ) ( \ 3046 NLS_MB_CODE_PAGE_TAG ? \ 3047 RtlxAnsiStringToUnicodeSize( S ) : \ 3048 ((S)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \ 3052 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlCreateUnicodeStringFromAsciiz )(
3053 OUT PUNICODE_STRING Destination,
3059 _NTFN_EXTERN NTFUNC( RtlAppendUnicodeToString )(
3060 PUNICODE_STRING Destination,
3064 _NTFN_EXTERN NTFUNC( RtlAppendUnicodeStringToString )(
3065 PUNICODE_STRING Destination,
3066 PCUNICODE_STRING Source
3069 _NTFN_EXTERN NTFUNCT( LONG, RtlCompareUnicodeString )(
3070 PCUNICODE_STRING String1,
3071 PCUNICODE_STRING String2,
3072 BOOLEAN CaseInsensitive
3075 _NTFN_EXTERN NTFUNCT( VOID, RtlCopyUnicodeString )(
3076 PUNICODE_STRING DestinationString,
3077 PCUNICODE_STRING SourceString
3080 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlCreateUnicodeString )(
3081 PUNICODE_STRING DestinationString,
3085 _NTFN_EXTERN NTFUNC( RtlDowncaseUnicodeString )(
3086 INOUT PUNICODE_STRING UniDest,
3087 IN PCUNICODE_STRING UniSource,
3088 IN BOOLEAN AllocateDestinationString
3091 _NTFN_EXTERN NTFUNC( RtlDuplicateUnicodeString )(
3093 IN PCUNICODE_STRING SourceString,
3094 OUT PUNICODE_STRING DestinationString
3099 _NTFN_EXTERN NTFUNCT( VOID, RtlFillMemoryUlong )(
3100 IN PVOID Destination,
3105 _NTFN_EXTERN NTFUNCT( VOID, RtlFillMemoryUlonglong )(
3106 OUT PVOID Destination,
3108 IN ULONGLONG Pattern
3111 _NTFN_EXTERN NTFUNC( RtlCopyMappedMemory )(
3112 OUT PVOID Destination,
3113 IN
const VOID* Source,
3117 _NTFN_EXTERN NTFUNCT( SIZE_T, RtlCompareMemoryUlong )(
3123 #ifndef RtlEqualMemory 3124 #define RtlEqualMemory( Destination, Source, Length ) \ 3125 (!memcmp( Destination, Source, Length )) 3128 #ifndef RtlCopyBytes 3129 #define RtlCopyBytes RtlCopyMemory 3130 #define RtlFillBytes RtlFillMemory 3131 #define RtlZeroBytes RtlZeroMemory 3136 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlEqualUnicodeString )(
3137 PCUNICODE_STRING String1,
3138 PCUNICODE_STRING String2,
3139 BOOLEAN CaseInsensitive
3142 _NTFN_EXTERN NTFUNC( RtlFindCharInUnicodeString )(
3144 IN PCUNICODE_STRING SearchString,
3145 IN PCUNICODE_STRING MatchString,
3146 OUT PUSHORT Position
3149 _NTFN_EXTERN NTFUNCT( VOID, RtlFreeUnicodeString )(
3150 INOUT PUNICODE_STRING UnicodeString
3153 _NTFN_EXTERN NTFUNCT( VOID, RtlEraseUnicodeString )(
3154 INOUT PUNICODE_STRING String
3157 _NTFN_EXTERN NTFUNC( RtlHashUnicodeString )(
3158 IN CONST UNICODE_STRING *String,
3159 IN BOOLEAN CaseInSensitive,
3160 IN ULONG HashAlgorithm,
3161 OUT PULONG HashValue
3164 _NTFN_EXTERN NTFUNCT( VOID, RtlInitUnicodeString )(
3165 OUT PUNICODE_STRING DestinationString,
3166 IN PCWSTR SourceString
3169 _NTFN_EXTERN NTFUNC( RtlInitUnicodeStringEx )(
3170 OUT PUNICODE_STRING DestinationString,
3171 IN PCWSTR SourceString
3174 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlIsTextUnicode )(
3175 IN CONST VOID* Buffer,
3180 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlPrefixString )(
3181 IN
const STRING *String1,
3182 IN
const STRING *String2,
3183 IN BOOLEAN CaseInsensitive
3186 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlPrefixUnicodeString )(
3187 IN PCUNICODE_STRING String1,
3188 IN PCUNICODE_STRING String2,
3189 IN BOOLEAN CaseInsensitive
3192 _NTFN_EXTERN NTFUNC( RtlUpcaseUnicodeString )(
3193 OUT PUNICODE_STRING DestinationString,
3194 IN PCUNICODE_STRING SourceString,
3195 IN BOOLEAN AllocateDestinationString
3198 _NTFN_EXTERN NTFUNC( RtlUnicodeStringToInteger )(
3199 IN PCUNICODE_STRING String,
3204 _NTFN_EXTERN NTFUNC( RtlValidateUnicodeString )(
3206 IN PCUNICODE_STRING String
3211 _NTFN_EXTERN NTFUNCT( VOID, RtlUpperString )(
3212 INOUT PSTRING DestinationString,
3213 IN
const STRING *SourceString
3216 _NTFN_EXTERN NTFUNCT( LONG, RtlCompareString )(
3217 IN
const STRING *String1,
3218 IN
const STRING *String2,
3219 IN BOOLEAN CaseInSensitive
3222 _NTFN_EXTERN NTFUNCT( VOID, RtlCopyString )(
3223 OUT PSTRING DestinationString,
3224 OPTIN const STRING *SourceString
3227 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlEqualString )(
3228 IN
const STRING *String1,
3229 IN
const STRING *String2,
3230 IN BOOLEAN CaseInSensitive
3233 _NTFN_EXTERN NTFUNC( RtlAppendStringToString )(
3234 INOUT PSTRING Destination,
3235 IN
const STRING *Source
3240 _NTFN_EXTERN NTFUNCT( VOID, RtlFreeAnsiString )(
3241 INOUT PANSI_STRING AnsiString
3244 _NTFN_EXTERN NTFUNCT( VOID, RtlInitAnsiString )(
3245 OUT PANSI_STRING DestinationString,
3246 IN PCSZ SourceString
3249 _NTFN_EXTERN NTFUNC( RtlInitAnsiStringEx )(
3250 OUT PANSI_STRING DestinationString,
3251 IN PCSZ SourceString
3256 _NTFN_EXTERN NTFUNCT( VOID, RtlFreeOemString )(
3257 INOUT POEM_STRING OemString
3262 _NTFN_EXTERN NTFUNC( RtlMultiByteToUnicodeN )(
3263 OUT PWCH UnicodeString,
3264 IN ULONG MaxBytesInUnicodeString,
3265 OPTOUT PULONG BytesInUnicodeString,
3266 IN
const CHAR *MultiByteString,
3267 IN ULONG BytesInMultiByteString
3270 _NTFN_EXTERN NTFUNC( RtlMultiByteToUnicodeSize )(
3271 OUT PULONG BytesInUnicodeString,
3272 IN
const CHAR *MultiByteString,
3273 IN ULONG BytesInMultiByteString
3278 _NTFN_EXTERN NTFUNC( RtlAddAtomToAtomTable )(
3279 IN PRTL_ATOM_TABLE AtomTable,
3284 _NTFN_EXTERN NTFUNC( RtlCreateAtomTable )(
3286 INOUT PRTL_ATOM_TABLE *AtomTable
3289 _NTFN_EXTERN NTFUNC( RtlDeleteAtomFromAtomTable )(
3290 IN PRTL_ATOM_TABLE AtomTable,
3294 _NTFN_EXTERN NTFUNC( RtlDestroyAtomTable )(
3295 IN PRTL_ATOM_TABLE AtomTable
3298 _NTFN_EXTERN NTFUNC( RtlQueryAtomInAtomTable )(
3299 IN PRTL_ATOM_TABLE AtomTable,
3304 OPTIO PULONG NameLength
3307 _NTFN_EXTERN NTFUNC( RtlPinAtomInAtomTable )(
3308 IN PRTL_ATOM_TABLE AtomTable,
3312 _NTFN_EXTERN NTFUNC( RtlLookupAtomInAtomTable )(
3313 IN PRTL_ATOM_TABLE AtomTable,
3320 _NTFN_EXTERN NTFUNCT( PPEB, RtlGetCurrentPeb )( VOID )_FP_;
3322 _NTFN_EXTERN NTFUNCT( VOID, RtlAcquirePebLock )( VOID )_FP_;
3323 _NTFN_EXTERN NTFUNCT( VOID, RtlReleasePebLock )( VOID )_FP_;
3325 _NTFN_EXTERN NTFUNC( RtlCreateProcessParameters )(
3326 OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
3327 IN PUNICODE_STRING ImagePathName,
3328 OPTIN PUNICODE_STRING DllPath,
3329 OPTIN PUNICODE_STRING CurrentDirectory,
3330 OPTIN PUNICODE_STRING CommandLine,
3331 OPTIN PWSTR Environment,
3332 OPTIN PUNICODE_STRING WindowTitle,
3333 OPTIN PUNICODE_STRING DesktopInfo,
3334 OPTIN PUNICODE_STRING ShellInfo,
3335 OPTIN PUNICODE_STRING RuntimeInfo
3338 _NTFN_EXTERN NTFUNC( RtlCreateUserProcess )(
3339 IN PUNICODE_STRING ImageFileName,
3340 IN ULONG Attributes,
3341 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters,
3342 OPTIN PSECURITY_DESCRIPTOR ProcessSecutityDescriptor,
3343 OPTIN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor,
3344 OPTIN HANDLE ParentProcess,
3345 IN BOOLEAN CurrentDirectory,
3346 OPTIN HANDLE DebugPort,
3347 OPTIN HANDLE ExceptionPort,
3348 OUT PRTL_USER_PROCESS_INFORMATION ProcessInfo
3356 #if (NTDDI_VERSION >= NTDDI_WIN7) 3357 _NTFN_EXTERN NTFUNC( RtlCreateUserThread )(
3358 IN PVOID ThreadContext,
3359 OUT HANDLE *OutThreadHandle,
3370 _NTFN_EXTERN NTFUNC( RtlCreateUserThread )(
3371 IN HANDLE ProcessHandle,
3372 OPTIN PSECURITY_DESCRIPTOR SecurityDescriptor,
3373 IN BOOLEAN CreateSuspended,
3374 IN ULONG StackZeroBits,
3375 IN SIZE_T StackReserve,
3376 IN SIZE_T StackCommit,
3377 IN PTHREAD_START_ROUTINE StartAddress,
3379 OPTOUT PHANDLE ThreadHandle,
3380 OPTOUT PCLIENT_ID ClientId
3384 _NTFN_EXTERN NTFUNCT( PRTL_USER_PROCESS_PARAMETERS, RtlDeNormalizeProcessParams )(
3385 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
3388 _NTFN_EXTERN NTFUNC( RtlDestroyProcessParameters )(
3389 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
3392 _NTFN_EXTERN NTFUNCT( VOID, RtlExitUserThread )(
3396 _NTFN_EXTERN NTFUNCT( VOID, RtlInitializeContext )(
3397 IN HANDLE ProcessHandle,
3398 OUT PCONTEXT ThreadContext,
3399 OPTIN PVOID ThreadStartParam,
3400 IN PTHREAD_START_ROUTINE ThreadStartAddress,
3401 IN PINITIAL_TEB InitialTeb
3405 typedef struct _WOW64_CONTEXT *PWOW64_CONTEXT;
3407 _NTFN_EXTERN NTFUNC( RtlWow64GetThreadContext )(
3408 IN HANDLE ThreadHandle,
3409 INOUT PWOW64_CONTEXT ThreadContext
3412 _NTFN_EXTERN NTFUNC( RtlWow64SetThreadContext )(
3413 IN HANDLE ThreadHandle,
3414 IN PWOW64_CONTEXT ThreadContext
3418 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlIsThreadWithinLoaderCallout )( VOID )_FP_;
3420 _NTFN_EXTERN NTFUNCT( PRTL_USER_PROCESS_PARAMETERS, RtlNormalizeProcessParams )(
3421 IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
3424 _NTFN_EXTERN NTFUNC( RtlRemoteCall )(
3428 IN ULONG ArgumentCount,
3429 IN PULONG Arguments,
3430 IN BOOLEAN PassContext,
3431 IN BOOLEAN AlreadySuspended
3434 _NTFN_EXTERN NTFUNCC( NTSTATUS, RtlSetProcessIsCritical )(
3435 IN BOOLEAN NewValue,
3436 OPTOUT PBOOLEAN OldValue,
3437 IN BOOLEAN NeedBreaks
3440 _NTFN_EXTERN NTFUNCC( NTSTATUS, RtlSetThreadIsCritical )(
3441 IN BOOLEAN NewValue,
3442 OPTOUT PBOOLEAN OldValue,
3443 IN BOOLEAN NeedBreaks
3446 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetCurrentProcessorNumber )( VOID )_FP_;
3450 _NTFN_EXTERN NTFUNC( RtlSetThreadPoolStartFunc )(
3451 IN PRTL_START_POOL_THREAD StartPoolThread,
3452 IN PRTL_EXIT_POOL_THREAD ExitPoolThread
3455 _NTFN_EXTERN NTFUNC( RtlDeregisterWaitEx )(
3456 IN HANDLE hWaitHandle,
3457 OPTIN HANDLE hCompletionEvent
3460 _NTFN_EXTERN NTFUNC( RtlDeregisterWait )(
3461 IN HANDLE hWaitHandle
3464 _NTFN_EXTERN NTFUNC( RtlQueueWorkItem )(
3465 IN WORKERCALLBACKFUNC Function,
3466 OPTIN PVOID Context,
3470 _NTFN_EXTERN NTFUNC( RtlSetIoCompletionCallback )(
3471 IN HANDLE FileHandle,
3472 IN PIO_APC_ROUTINE Callback,
3476 _NTFN_EXTERN NTFUNC( RtlRegisterWait )(
3477 IN PHANDLE phNewWaitObject,
3479 IN WAITORTIMERCALLBACKFUNC Callback,
3481 IN ULONG ulMilliseconds,
3487 _NTFN_EXTERN NTFUNC( RtlCreateEnvironment )(
3489 OUT PWSTR *Environment
3492 _NTFN_EXTERN NTFUNC( RtlComputePrivatizedDllName_U )(
3493 IN PUNICODE_STRING DllName,
3494 OUT PUNICODE_STRING RealName,
3495 OUT PUNICODE_STRING LocalName
3498 _NTFN_EXTERN NTFUNCT( VOID, RtlDestroyEnvironment )(
3499 IN PWSTR Environment
3502 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlDoesFileExists_U )(
3506 _NTFN_EXTERN NTFUNCT( RTL_PATH_TYPE, RtlDetermineDosPathNameType_U )(
3510 _NTFN_EXTERN NTFUNCT( ULONG, RtlDosSearchPath_U )(
3513 IN PCWSTR Extension,
3514 IN ULONG BufferSize,
3519 _NTFN_EXTERN NTFUNC( RtlDosSearchPath_Ustr )(
3521 IN PUNICODE_STRING PathString,
3522 IN PUNICODE_STRING FileNameString,
3523 IN PUNICODE_STRING ExtensionString,
3524 IN PUNICODE_STRING CallerBuffer,
3525 OPTIO PUNICODE_STRING DynamicString,
3526 OPTOUT PUNICODE_STRING* FullNameOut,
3527 OPTOUT PSIZE_T FilePartSize,
3528 OPTOUT PSIZE_T LengthNeeded
3531 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlDosPathNameToNtPathName_U )(
3532 OPTIN PCWSTR DosPathName,
3533 OUT PUNICODE_STRING NtPathName,
3534 OPTOUT PCWSTR *NtFileNamePart,
3535 OPTOUT PRTL_RELATIVE_NAME_U DirectoryInfo
3538 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlDosPathNameToRelativeNtPathName_U )(
3540 OUT PUNICODE_STRING NtName,
3541 OUT PCWSTR *PartName,
3542 OUT PRTL_RELATIVE_NAME_U RelativeName
3545 _NTFN_EXTERN NTFUNC( RtlExpandEnvironmentStrings_U )(
3546 IN PWSTR Environment,
3547 IN PUNICODE_STRING Source,
3548 INOUT PUNICODE_STRING Destination,
3552 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetCurrentDirectory_U )(
3553 IN ULONG MaximumLength,
3557 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetFullPathName_U )(
3564 #if (NTDDI_VERSION >= NTDDI_WIN7) 3565 _NTFN_EXTERN NTFUNC( RtlGetFullPathName_UEx )(
3567 IN ULONG BufferLength,
3570 OPTOUT RTL_PATH_TYPE *InputPathType
3574 _NTFN_EXTERN NTFUNC( RtlGetFullPathName_UstrEx )(
3575 IN PUNICODE_STRING FileName,
3576 OPTIN PUNICODE_STRING StaticString,
3577 OPTIN PUNICODE_STRING DynamicString,
3578 OPTOUT PUNICODE_STRING *StringUsed,
3579 OPTOUT PSIZE_T FilePartSize,
3580 OPTOUT PBOOLEAN NameInvalid,
3581 OUT RTL_PATH_TYPE* PathType,
3582 OPTOUT PSIZE_T LengthNeeded
3585 _NTFN_EXTERN NTFUNC( RtlGetLengthWithoutTrailingPathSeperators )(
3587 IN PCUNICODE_STRING PathString,
3591 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetLongestNtPathLength )( VOID )_FP_;
3593 _NTFN_EXTERN NTFUNCT( ULONG, RtlIsDosDeviceName_U )(
3597 _NTFN_EXTERN NTFUNCT( ULONG, RtlIsDosDeviceName_Ustr )(
3598 IN PCUNICODE_STRING Name
3601 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlIsNameLegalDOS8Dot3 )(
3602 IN PCUNICODE_STRING Name,
3603 IN OUT OPTIONAL POEM_STRING OemName,
3604 OUT OPTIONAL PBOOLEAN NameContainsSpaces
3607 _NTFN_EXTERN NTFUNC( RtlQueryEnvironmentVariable_U )(
3608 IN OPTIONAL PWSTR Environment,
3609 IN PUNICODE_STRING Name,
3610 OUT PUNICODE_STRING Value
3613 _NTFN_EXTERN NTFUNCT( VOID, RtlReleaseRelativeName )(
3614 IN PRTL_RELATIVE_NAME_U RelativeName
3617 _NTFN_EXTERN NTFUNC( RtlSetCurrentDirectory_U )(
3618 IN PUNICODE_STRING name
3621 _NTFN_EXTERN NTFUNC( RtlSetEnvironmentVariable )(
3622 IN PWSTR *Environment,
3623 IN PUNICODE_STRING Name,
3624 IN PUNICODE_STRING Value
3629 _NTFN_EXTERN NTFUNC( RtlDeleteCriticalSection )(
3630 IN PRTL_CRITICAL_SECTION CriticalSection
3633 _NTFN_EXTERN NTFUNC( RtlEnterCriticalSection )(
3634 IN PRTL_CRITICAL_SECTION CriticalSection
3637 _NTFN_EXTERN NTFUNC( RtlInitializeCriticalSection )(
3638 IN PRTL_CRITICAL_SECTION CriticalSection
3641 _NTFN_EXTERN NTFUNC( RtlInitializeCriticalSectionAndSpinCount )(
3642 IN PRTL_CRITICAL_SECTION CriticalSection,
3646 _NTFN_EXTERN NTFUNC( RtlLeaveCriticalSection )(
3647 IN PRTL_CRITICAL_SECTION CriticalSection
3650 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlTryEnterCriticalSection )(
3651 IN PRTL_CRITICAL_SECTION CriticalSection
3654 _NTFN_EXTERN NTFUNCT( VOID, RtlpUnWaitCriticalSection )(
3655 IN PRTL_CRITICAL_SECTION CriticalSection
3658 _NTFN_EXTERN NTFUNC( RtlpWaitForCriticalSection )(
3659 IN PRTL_CRITICAL_SECTION CriticalSection
3662 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlAcquireResourceExclusive )(
3663 IN PRTL_RESOURCE Resource,
3667 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlAcquireResourceShared )(
3668 IN PRTL_RESOURCE Resource,
3672 _NTFN_EXTERN NTFUNCT( VOID, RtlConvertExclusiveToShared )(
3673 IN PRTL_RESOURCE Resource
3676 _NTFN_EXTERN NTFUNCT( VOID, RtlConvertSharedToExclusive )(
3677 IN PRTL_RESOURCE Resource
3680 _NTFN_EXTERN NTFUNCT( VOID, RtlDeleteResource )(
3681 IN PRTL_RESOURCE Resource
3684 _NTFN_EXTERN NTFUNCT( VOID, RtlDumpResource )(
3685 IN PRTL_RESOURCE Resource
3688 _NTFN_EXTERN NTFUNCT( VOID, RtlInitializeResource )(
3689 IN PRTL_RESOURCE Resource
3692 _NTFN_EXTERN NTFUNCT( VOID, RtlReleaseResource )(
3693 IN PRTL_RESOURCE Resource
3698 _NTFN_EXTERN NTFUNC( RtlCompressBuffer )(
3699 IN USHORT CompressionFormatAndEngine,
3700 IN PUCHAR UncompressedBuffer,
3701 IN ULONG UncompressedBufferSize,
3702 OUT PUCHAR CompressedBuffer,
3703 IN ULONG CompressedBufferSize,
3704 IN ULONG UncompressedChunkSize,
3705 OUT PULONG FinalCompressedSize,
3709 _NTFN_EXTERN NTFUNC( RtlDecompressBuffer )(
3710 IN USHORT CompressionFormat,
3711 OUT PUCHAR UncompressedBuffer,
3712 IN ULONG UncompressedBufferSize,
3713 IN PUCHAR CompressedBuffer,
3714 IN ULONG CompressedBufferSize,
3715 OUT PULONG FinalUncompressedSize
3718 _NTFN_EXTERN NTFUNC( RtlGetCompressionWorkSpaceSize )(
3719 IN USHORT CompressionFormatAndEngine,
3720 OUT PULONG CompressBufferWorkSpaceSize,
3721 OUT PULONG CompressFragmentWorkSpaceSize
3726 _NTFN_EXTERN NTFUNCT( VOID, RtlPopFrame )(
3727 IN PTEB_ACTIVE_FRAME Frame
3730 _NTFN_EXTERN NTFUNCT( VOID, RtlPushFrame )(
3731 IN PTEB_ACTIVE_FRAME Frame
3734 _NTFN_EXTERN NTFUNCT( PTEB_ACTIVE_FRAME, RtlGetFrame )( VOID )_FP_;
3738 _NTFN_EXTERN NTFUNCT( PRTL_DEBUG_INFORMATION, RtlCreateQueryDebugBuffer )(
3740 IN BOOLEAN EventPair
3743 _NTFN_EXTERN NTFUNC( RtlDestroyQueryDebugBuffer )(
3744 IN PRTL_DEBUG_INFORMATION DebugBuffer
3747 _NTFN_EXTERN NTFUNC( RtlQueryProcessDebugInformation )(
3749 IN ULONG DebugInfoClassMask,
3750 INOUT PRTL_DEBUG_INFORMATION DebugBuffer
3755 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlAreBitsClear )(
3756 IN PRTL_BITMAP BitMapHeader,
3757 IN ULONG StartingIndex,
3761 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlAreBitsSet )(
3762 IN PRTL_BITMAP BitMapHeader,
3763 IN ULONG StartingIndex,
3767 _NTFN_EXTERN NTFUNCT( VOID, RtlClearAllBits )(
3768 IN PRTL_BITMAP BitMapHeader
3771 _NTFN_EXTERN NTFUNCT( VOID, RtlClearBits )(
3772 IN PRTL_BITMAP BitMapHeader,
3773 IN ULONG StartingIndex,
3774 IN ULONG NumberToClear
3777 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindClearBits )(
3778 IN PRTL_BITMAP BitMapHeader,
3779 IN ULONG NumberToFind,
3783 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindClearBitsAndSet )(
3784 IN PRTL_BITMAP BitMapHeader,
3785 IN ULONG NumberToFind,
3789 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindFirstRunClear )(
3790 IN PRTL_BITMAP BitMapHeader,
3791 OUT PULONG StartingIndex
3794 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindClearRuns )(
3795 IN PRTL_BITMAP BitMapHeader,
3796 OUT PRTL_BITMAP_RUN RunArray,
3797 IN ULONG SizeOfRunArray,
3798 IN BOOLEAN LocateLongestRuns
3801 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindLastBackwardRunClear )(
3802 IN PRTL_BITMAP BitMapHeader,
3804 OUT PULONG StartingRunIndex
3807 _NTFN_EXTERN NTFUNCT( CCHAR, RtlFindLeastSignificantBit )(
3811 _NTFN_EXTERN NTFUNCT( CCHAR, RtlFindMostSignificantBit )(
3815 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindNextForwardRunClear )(
3816 IN PRTL_BITMAP BitMapHeader,
3818 OUT PULONG StartingRunIndex
3821 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindNextForwardRunSet )(
3822 IN PRTL_BITMAP BitMapHeader,
3824 OUT PULONG StartingRunIndex
3827 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindSetBits )(
3828 IN PRTL_BITMAP BitMapHeader,
3829 IN ULONG NumberToFind,
3833 _NTFN_EXTERN NTFUNCT( ULONG, RtlFindSetBitsAndClear )(
3834 IN PRTL_BITMAP BitMapHeader,
3835 IN ULONG NumberToFind,
3839 _NTFN_EXTERN NTFUNCT( VOID, RtlInitializeBitMap )(
3840 OUT PRTL_BITMAP BitMapHeader,
3841 OPTIN PULONG BitMapBuffer,
3842 OPTIN ULONG SizeOfBitMap
3845 _NTFN_EXTERN NTFUNCT( ULONG, RtlNumberOfClearBits )(
3846 IN PRTL_BITMAP BitMapHeader
3849 _NTFN_EXTERN NTFUNCT( ULONG, RtlNumberOfSetBits )(
3850 IN PRTL_BITMAP BitMapHeader
3853 _NTFN_EXTERN NTFUNCT( VOID, RtlSetBit )(
3854 IN PRTL_BITMAP BitMapHeader,
3858 _NTFN_EXTERN NTFUNCT( VOID, RtlSetBits )(
3859 IN PRTL_BITMAP BitMapHeader,
3860 IN ULONG StartingIndex,
3861 IN ULONG NumberToSet
3864 _NTFN_EXTERN NTFUNCT( VOID, RtlSetAllBits )(
3865 IN PRTL_BITMAP BitMapHeader
3868 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlTestBit )(
3869 IN PRTL_BITMAP BitMapHeader,
3875 _NTFN_EXTERN NTFUNC( RtlCreateTimer )(
3876 IN HANDLE TimerQueue,
3877 IN PHANDLE phNewTimer,
3878 IN WAITORTIMERCALLBACKFUNC Callback,
3885 _NTFN_EXTERN NTFUNC( RtlCreateTimerQueue )(
3886 OUT PHANDLE TimerQueue
3889 _NTFN_EXTERN NTFUNC( RtlDeleteTimer )(
3890 IN HANDLE TimerQueue,
3892 IN HANDLE CompletionEvent
3895 _NTFN_EXTERN NTFUNC( RtlUpdateTimer )(
3896 IN HANDLE TimerQueue,
3902 _NTFN_EXTERN NTFUNC( RtlDeleteTimerQueueEx )(
3903 IN HANDLE TimerQueue,
3904 OPTIN HANDLE CompletionEvent
3907 _NTFN_EXTERN NTFUNC( RtlDeleteTimerQueue )(
3913 _NTFN_EXTERN NTFUNCT( PSLIST_ENTRY, InterlockedPushListSList )(
3914 INOUT PSLIST_HEADER ListHead,
3915 INOUT PSLIST_ENTRY List,
3916 INOUT PSLIST_ENTRY ListEnd,
3922 _NTFN_EXTERN NTFUNCT( VOID, RtlInitializeRangeList )(
3923 INOUT PRTL_RANGE_LIST RangeList
3926 _NTFN_EXTERN NTFUNCT( VOID, RtlFreeRangeList )(
3927 IN PRTL_RANGE_LIST RangeList
3930 _NTFN_EXTERN NTFUNC( RtlAddRange )(
3931 INOUT PRTL_RANGE_LIST RangeList,
3934 IN UCHAR Attributes,
3936 OPTIN PVOID UserData,
3943 _NTFN_EXTERN NTFUNCC( ULONG, DbgPrint )(
3949 _NTFN_EXTERN NTFUNCC( ULONG, DbgPrintEx )(
3950 IN ULONG ComponentId,
3956 _NTFN_EXTERN NTFUNCT( ULONG, DbgPrompt )(
3959 IN ULONG MaximumResponseLength
3962 #undef DbgBreakPoint 3963 _NTFN_EXTERN NTFUNCT( VOID, DbgBreakPoint )( VOID )_FP_;
3965 _NTFN_EXTERN NTFUNCT( VOID, DbgLoadImageSymbols )(
3968 IN ULONG_PTR ProcessId
3971 _NTFN_EXTERN NTFUNCT( VOID, DbgUnLoadImageSymbols )(
3974 IN ULONG_PTR ProcessId
3977 _NTFN_EXTERN NTFUNCT( VOID, DbgCommandString )(
3984 _NTFN_EXTERN NTFUNCT( PRTL_HANDLE_TABLE_ENTRY, RtlAllocateHandle )(
3985 IN PRTL_HANDLE_TABLE HandleTable,
3989 _NTFN_EXTERN NTFUNCT( VOID, RtlDestroyHandleTable )(
3990 INOUT PRTL_HANDLE_TABLE HandleTable
3993 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlFreeHandle )(
3994 IN PRTL_HANDLE_TABLE HandleTable,
3995 IN PRTL_HANDLE_TABLE_ENTRY Handle
3998 _NTFN_EXTERN NTFUNCT( VOID, RtlInitializeHandleTable )(
4000 IN ULONG HandleSize,
4001 IN PRTL_HANDLE_TABLE HandleTable
4004 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlIsValidHandle )(
4005 IN PRTL_HANDLE_TABLE HandleTable,
4006 IN PRTL_HANDLE_TABLE_ENTRY Handle
4009 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlIsValidIndexHandle )(
4010 IN PRTL_HANDLE_TABLE HandleTable,
4012 OUT PRTL_HANDLE_TABLE_ENTRY *Handle
4017 _NTFN_EXTERN NTFUNC( RtlFindMessage )(
4018 IN PVOID BaseAddress,
4022 OUT PMESSAGE_RESOURCE_ENTRY *MessageResourceEntry
4025 _NTFN_EXTERN NTFUNCT( ULONG, RtlGetNtGlobalFlags )( VOID )_FP_;
4027 _NTFN_EXTERN NTFUNCT( PVOID, RtlImageDirectoryEntryToData )(
4028 IN PVOID BaseAddress,
4029 IN BOOLEAN MappedAsImage,
4030 IN USHORT Directory,
4034 _NTFN_EXTERN NTFUNCT( PVOID, RtlImageRvaToVa )(
4035 IN PIMAGE_NT_HEADERS NtHeader,
4036 IN PVOID BaseAddress,
4038 OPTIO PIMAGE_SECTION_HEADER *SectionHeader
4041 _NTFN_EXTERN NTFUNCT( PIMAGE_NT_HEADERS, RtlImageNtHeader )(
4042 IN PVOID BaseAddress
4045 _NTFN_EXTERN NTFUNCT( NTSTATUS, RtlImageNtHeaderEx )(
4047 IN PVOID BaseAddress,
4049 OUT PIMAGE_NT_HEADERS *NtHeader
4052 _NTFN_EXTERN NTFUNCT( PIMAGE_SECTION_HEADER, RtlImageRvaToSection )(
4053 IN PIMAGE_NT_HEADERS NtHeader,
4054 IN PVOID BaseAddress,
4058 _NTFN_EXTERN NTFUNCT( ULONG, LdrRelocateImageWithBias )(
4059 IN PVOID NewAddress,
4060 IN LONGLONG AdditionalBias,
4069 _NTFN_EXTERN NTFUNC( RtlActivateActivationContextEx )(
4073 OUT PULONG_PTR Cookie
4076 _NTFN_EXTERN NTFUNC( RtlActivateActivationContext )(
4079 OUT PULONG_PTR Cookie
4082 _NTFN_EXTERN NTFUNCT( VOID, RtlAddRefActivationContext )(
4086 _NTFN_EXTERN NTFUNCT( PRTL_ACTIVATION_CONTEXT_STACK_FRAME, RtlActivateActivationContextUnsafeFast )(
4087 IN PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame,
4091 _NTFN_EXTERN NTFUNC( RtlAllocateActivationContextStack )(
4092 IN PACTIVATION_CONTEXT_STACK *Stack
4095 _NTFN_EXTERN NTFUNC( RtlCreateActivationContext )(
4097 IN PACTIVATION_CONTEXT_DATA ActivationContextData,
4098 IN ULONG ExtraBytes,
4099 IN PVOID NotificationRoutine,
4100 IN PVOID NotificationContext,
4101 OUT PACTIVATION_CONTEXT *ActCtx
4104 _NTFN_EXTERN NTFUNC( RtlGetActiveActivationContext )(
4108 _NTFN_EXTERN NTFUNCT( VOID, RtlReleaseActivationContext )(
4112 _NTFN_EXTERN NTFUNC( RtlDeactivateActivationContext )(
4114 IN ULONG_PTR ulCookie
4117 _NTFN_EXTERN NTFUNCT( VOID, RtlFreeActivationContextStack )(
4118 IN PACTIVATION_CONTEXT_STACK Stack
4121 _NTFN_EXTERN NTFUNCT( VOID, RtlFreeThreadActivationContextStack )( VOID )_FP_;
4123 _NTFN_EXTERN NTFUNCT( PRTL_ACTIVATION_CONTEXT_STACK_FRAME, RtlDeactivateActivationContextUnsafeFast )(
4124 IN PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED Frame
4127 _NTFN_EXTERN NTFUNC( RtlDosApplyFileIsolationRedirection_Ustr )(
4129 IN PUNICODE_STRING OriginalName,
4130 IN PUNICODE_STRING Extension,
4131 INOUT PUNICODE_STRING StaticString,
4132 INOUT PUNICODE_STRING DynamicString,
4133 INOUT PUNICODE_STRING *NewName,
4135 IN PSIZE_T FileNameSize,
4136 IN PSIZE_T RequiredLength
4139 _NTFN_EXTERN NTFUNC( RtlFindActivationContextSectionString )(
4141 IN
const GUID *ExtensionGuid,
4142 IN ULONG SectionType,
4143 IN
const UNICODE_STRING *SectionName,
4144 INOUT PVOID ReturnedData
4147 _NTFN_EXTERN NTFUNC( RtlQueryInformationActivationContext )(
4149 OPTIN PVOID Context,
4150 OPTIN PVOID pvSubInstance,
4151 IN ULONG ulInfoClass,
4153 OPTIN SIZE_T cbBuffer,
4154 OPTOUT SIZE_T *pcbWrittenOrRequired
4157 _NTFN_EXTERN NTFUNC( RtlQueryInformationActiveActivationContext )(
4158 IN ULONG ulInfoClass,
4160 OPTIN SIZE_T cbBuffer,
4161 OPTOUT SIZE_T *pcbWrittenOrRequired
4164 _NTFN_EXTERN NTFUNC( RtlZombifyActivationContext )(
4170 _NTFN_EXTERN NTFUNC( RtlWow64EnableFsRedirection )(
4171 IN BOOLEAN Wow64FsEnableRedirection
4174 _NTFN_EXTERN NTFUNC( RtlWow64EnableFsRedirectionEx )(
4175 IN PVOID Wow64FsEnableRedirection,
4176 OUT PVOID *OldFsRedirectionLevel
4181 _NTFN_EXTERN NTFUNC( RtlCheckRegistryKey )(
4182 IN ULONG RelativeTo,
4186 _NTFN_EXTERN NTFUNC( RtlCreateRegistryKey )(
4187 IN ULONG RelativeTo,
4191 _NTFN_EXTERN NTFUNC( RtlFormatCurrentUserKeyPath )(
4192 OUT PUNICODE_STRING KeyPath
4195 _NTFN_EXTERN NTFUNC( RtlOpenCurrentUser )(
4196 IN ACCESS_MASK DesiredAccess,
4197 OUT PHANDLE KeyHandle
4200 _NTFN_EXTERN NTFUNC( RtlQueryRegistryValues )(
4201 IN ULONG RelativeTo,
4203 INOUT PRTL_QUERY_REGISTRY_TABLE QueryTable,
4204 OPTIN PVOID Context,
4205 OPTIN PVOID Environment
4208 _NTFN_EXTERN NTFUNC( RtlWriteRegistryValue )(
4209 IN ULONG RelativeTo,
4211 IN PCWSTR ValueName,
4214 IN ULONG ValueLength
4217 _NTFN_EXTERN NTFUNC( RtlpNtCreateKey )(
4218 OUT HANDLE KeyHandle,
4219 IN ACCESS_MASK DesiredAccess,
4220 IN POBJECT_ATTRIBUTES ObjectAttributes,
4221 IN ULONG TitleIndex,
4222 IN PUNICODE_STRING Class,
4223 OUT PULONG Disposition
4226 _NTFN_EXTERN NTFUNC( RtlpNtEnumerateSubKey )(
4227 IN HANDLE KeyHandle,
4228 INOUT PUNICODE_STRING SubKeyName,
4233 _NTFN_EXTERN NTFUNC( RtlpNtMakeTemporaryKey )(
4237 _NTFN_EXTERN NTFUNC( RtlpNtOpenKey )(
4238 OUT HANDLE KeyHandle,
4239 IN ACCESS_MASK DesiredAccess,
4240 IN POBJECT_ATTRIBUTES ObjectAttributes,
4244 _NTFN_EXTERN NTFUNC( RtlpNtQueryValueKey )(
4245 IN HANDLE KeyHandle,
4248 OPTIO PULONG DataLength,
4252 _NTFN_EXTERN NTFUNC( RtlpNtSetValueKey )(
4253 IN HANDLE KeyHandle,
4271 _NTFN_EXTERN NTFUNC( NtRenameKey )(
4272 IN HANDLE KeyHandle,
4273 IN PUNICODE_STRING NewName
4278 _NTFN_EXTERN NTFUNCT( VOID, RtlGetDefaultCodePage )(
4279 OUT PUSHORT AnsiCodePage,
4280 OUT PUSHORT OemCodePage
4283 _NTFN_EXTERN NTFUNCT( VOID, RtlInitNlsTables )(
4284 IN PUSHORT AnsiTableBase,
4285 IN PUSHORT OemTableBase,
4286 IN PUSHORT CaseTableBase,
4287 OUT PNLSTABLEINFO NlsTable
4290 _NTFN_EXTERN NTFUNCT( VOID, RtlInitCodePageTable )(
4291 IN PUSHORT TableBase,
4292 OUT PCPTABLEINFO CodePageTable
4295 _NTFN_EXTERN NTFUNCT( VOID, RtlResetRtlTranslations )(
4296 IN PNLSTABLEINFO NlsTable
4301 #if !defined(NO_RTL_INLINES) 4303 static __inline LARGE_INTEGER NTAPI_INLINE
4304 RtlConvertLongToLargeInteger( IN LONG SignedInteger )
4306 LARGE_INTEGER Result;
4307 Result.QuadPart = SignedInteger;
4311 static __inline LARGE_INTEGER NTAPI_INLINE
4312 RtlEnlargedIntegerMultiply( IN LONG Multiplicand, IN LONG Multiplier )
4314 LARGE_INTEGER Product;
4315 Product.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier;
4319 static __inline ULONG NTAPI_INLINE
4320 RtlEnlargedUnsignedDivide( IN ULARGE_INTEGER Dividend, IN ULONG Divisor,
OPTIN PULONG Remainder )
4323 Quotient = (ULONG)(Dividend.QuadPart / Divisor);
4324 if (Remainder) *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
4328 static __inline LARGE_INTEGER NTAPI_INLINE
4329 RtlEnlargedUnsignedMultiply( IN ULONG Multiplicand, IN ULONG Multiplier )
4331 LARGE_INTEGER Product;
4332 Product.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier;
4336 #if defined(_AMD64_) || defined(_IA64_) 4337 static __inline LARGE_INTEGER NTAPI_INLINE
4338 RtlExtendedLargeIntegerDivide( IN LARGE_INTEGER Dividend, IN ULONG Divisor,
OPTOUT PULONG Remainder )
4341 ret.QuadPart = (ULONG64)Dividend.QuadPart / Divisor;
4342 if (Remainder) *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
4345 #define defined_RtlExtendedLargeIntegerDivide 4346 #endif // defined(_AMD64_) || defined(_IA64_) 4349 #ifndef defined_RtlExtendedLargeIntegerDivide 4350 _NTFN_EXTERN NTFUNCT( LARGE_INTEGER, RtlExtendedLargeIntegerDivide )(
4351 IN LARGE_INTEGER Dividend, IN ULONG Divisor,
OPTOUT PULONG Remainder
4355 _NTFN_EXTERN NTFUNCT( ULONG, RtlUniform )(
4359 _NTFN_EXTERN NTFUNCT( ULONG, RtlRandom )(
4363 _NTFN_EXTERN NTFUNCT( ULONG, RtlComputeCrc32 )(
4364 IN ULONG InitialCrc,
4371 _NTFN_EXTERN NTFUNCT( LPSTR, RtlIpv4AddressToStringA )(
4372 IN
const struct in_addr *Addr,
4376 _NTFN_EXTERN NTFUNCT( PWSTR, RtlIpv4AddressToStringW )(
4377 IN
const struct in_addr *Addr,
4381 _NTFN_EXTERN NTFUNC( RtlIpv4AddressToStringExA )(
4382 IN
const struct in_addr *Address,
4384 OUT PCHAR AddressString,
4385 INOUT PULONG AddressStringLength
4388 _NTFN_EXTERN NTFUNC( RtlIpv4AddressToStringExW )(
4389 IN
const struct in_addr *Address,
4391 OUT PWCHAR AddressString,
4392 INOUT PULONG AddressStringLength
4395 _NTFN_EXTERN NTFUNC( RtlIpv4StringToAddressA )(
4398 OUT PCSTR *Terminator,
4399 OUT
struct in_addr *Addr
4402 _NTFN_EXTERN NTFUNC( RtlIpv4StringToAddressW )(
4405 OUT PCWSTR *Terminator,
4406 OUT
struct in_addr *Addr
4409 _NTFN_EXTERN NTFUNC( RtlIpv4StringToAddressExA )(
4410 IN PCSTR AddressString,
4412 OUT
struct in_addr *Address,
4416 _NTFN_EXTERN NTFUNC( RtlIpv4StringToAddressExW )(
4417 IN PCWSTR AddressString,
4419 OUT
struct in_addr *Address,
4423 _NTFN_EXTERN NTFUNCT( LPSTR, RtlIpv6AddressToStringA )(
4424 IN
const struct in6_addr *Addr,
4428 _NTFN_EXTERN NTFUNCT( PWSTR, RtlIpv6AddressToStringW )(
4429 IN
const struct in6_addr *Addr,
4433 _NTFN_EXTERN NTFUNC( RtlIpv6AddressToStringExA )(
4434 IN
const struct in6_addr *Address,
4437 OUT
TSTR AddressString,
4438 INOUT PULONG AddressStringLength
4441 _NTFN_EXTERN NTFUNC( RtlIpv6AddressToStringExW )(
4442 IN
const struct in6_addr *Address,
4445 OUT PWCHAR AddressString,
4446 INOUT PULONG AddressStringLength
4449 _NTFN_EXTERN NTFUNC( RtlIpv6StringToAddressA )(
4451 OUT PCSTR *Terminator,
4452 OUT
struct in6_addr *Addr
4455 _NTFN_EXTERN NTFUNC( RtlIpv6StringToAddressW )(
4457 OUT PCWSTR *Terminator,
4458 OUT
struct in6_addr *Addr
4461 _NTFN_EXTERN NTFUNC( RtlIpv6StringToAddressExA )(
4462 IN PCSTR AddressString,
4463 OUT
struct in6_addr *Address,
4468 _NTFN_EXTERN NTFUNC( RtlIpv6StringToAddressExW )(
4469 IN PCWSTR AddressString,
4470 OUT
struct in6_addr *Address,
4477 _NTFN_EXTERN NTFUNC( RtlQueryTimeZoneInformation )(
4478 OUT PRTL_TIME_ZONE_INFORMATION TimeZoneInformation
4481 _NTFN_EXTERN NTFUNCT( VOID, RtlSecondsSince1970ToTime )(
4482 IN ULONG SecondsSince1970,
4483 OUT PLARGE_INTEGER Time
4486 _NTFN_EXTERN NTFUNC( RtlSetTimeZoneInformation )(
4487 IN PRTL_TIME_ZONE_INFORMATION TimeZoneInformation
4490 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlTimeFieldsToTime )(
4491 IN PTIME_FIELDS TimeFields,
4492 OUT PLARGE_INTEGER Time
4495 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlTimeToSecondsSince1970 )(
4496 IN PLARGE_INTEGER Time,
4497 OUT PULONG ElapsedSeconds
4500 _NTFN_EXTERN NTFUNCT( VOID, RtlTimeToTimeFields )(
4501 PLARGE_INTEGER Time,
4502 PTIME_FIELDS TimeFields
4505 _NTFN_EXTERN NTFUNC( RtlSystemTimeToLocalTime )(
4506 IN PLARGE_INTEGER SystemTime,
4507 OUT PLARGE_INTEGER LocalTime
4512 _NTFN_EXTERN NTFUNC( RtlVerifyVersionInfo )(
4513 IN PRTL_OSVERSIONINFOEXW VersionInfo,
4515 IN ULONGLONG ConditionMask
4518 _NTFN_EXTERN NTFUNC( RtlGetVersion )(
4519 OUT PRTL_OSVERSIONINFOW lpVersionInformation
4522 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlGetNtProductType )(
4523 OUT PNT_PRODUCT_TYPE ProductType
4528 _NTFN_EXTERN NTFUNC( RtlRegisterSecureMemoryCacheCallback )(
4529 IN PRTL_SECURE_MEMORY_CACHE_CALLBACK Callback
4532 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlFlushSecureMemoryCache )(
4533 IN PVOID MemoryCache,
4534 OPTIN SIZE_T MemoryLength
4539 _NTFN_EXTERN NTFUNC( RtlCreateBootStatusDataFile )( VOID )_FP_;
4541 _NTFN_EXTERN NTFUNC( RtlGetSetBootStatusData )(
4542 IN HANDLE FileHandle,
4543 IN BOOLEAN WriteMode,
4544 IN RTL_BSD_ITEM_TYPE DataClass,
4546 IN ULONG BufferSize,
4547 OPTOUT PULONG ReturnLength
4550 _NTFN_EXTERN NTFUNC( RtlLockBootStatusData )(
4551 OUT PHANDLE FileHandle
4554 _NTFN_EXTERN NTFUNC( RtlUnlockBootStatusData )(
4555 IN HANDLE FileHandle
4558 _NTFN_EXTERN NTFUNC( RtlGUIDFromString )(
4559 IN PUNICODE_STRING GuidString,
4563 _NTFN_EXTERN NTFUNC( RtlStringFromGUID )(
4565 OUT PUNICODE_STRING GuidString
4568 _NTFN_EXTERN NTFUNC( RtlComputeImportTableHash )(
4571 IN ULONG ImportTableHashRevision
4577 _NTFN_EXTERN NTFUNCT( VOID, RtlInitMemoryStream )(
4578 OUT PRTL_MEMORY_STREAM Stream
4581 _NTFN_EXTERN NTFUNCT( VOID, RtlInitOutOfProcessMemoryStream )(
4582 OUT PRTL_MEMORY_STREAM Stream
4585 _NTFN_EXTERN NTFUNCT( VOID, RtlFinalReleaseOutOfProcessMemoryStream )(
4586 IN PRTL_MEMORY_STREAM Stream
4589 _NTFN_EXTERN NTFUNCT( HRESULT, RtlQueryInterfaceMemoryStream )(
4590 IN
struct IStream *This,
4591 IN REFIID RequestedIid,
4592 OUT PVOID *ResultObject
4595 _NTFN_EXTERN NTFUNCT( ULONG, RtlAddRefMemoryStream )(
4596 IN
struct IStream *This
4599 _NTFN_EXTERN NTFUNCT( ULONG, RtlReleaseMemoryStream )(
4600 IN
struct IStream *This
4603 _NTFN_EXTERN NTFUNCT( HRESULT, RtlReadMemoryStream )(
4604 IN
struct IStream *This,
4610 _NTFN_EXTERN NTFUNCT( HRESULT, RtlReadOutOfProcessMemoryStream )(
4611 IN
struct IStream *This,
4617 _NTFN_EXTERN NTFUNCT( HRESULT, RtlSeekMemoryStream )(
4618 IN
struct IStream *This,
4619 IN LARGE_INTEGER RelativeOffset,
4621 OPTOUT PULARGE_INTEGER ResultOffset
4624 _NTFN_EXTERN NTFUNCT( HRESULT, RtlCopyMemoryStreamTo )(
4625 IN
struct IStream *This,
4626 IN
struct IStream *Target,
4627 IN ULARGE_INTEGER Length,
4628 OPTOUT PULARGE_INTEGER BytesRead,
4629 OPTOUT PULARGE_INTEGER BytesWritten
4632 _NTFN_EXTERN NTFUNCT( HRESULT, RtlCopyOutOfProcessMemoryStreamTo )(
4633 IN
struct IStream *This,
4634 IN
struct IStream *Target,
4635 IN ULARGE_INTEGER Length,
4636 OPTOUT PULARGE_INTEGER BytesRead,
4637 OPTOUT PULARGE_INTEGER BytesWritten
4640 _NTFN_EXTERN NTFUNCT( HRESULT, RtlStatMemoryStream )(
4641 IN
struct IStream *This,
4642 OUT
struct tagSTATSTG *Stats,
4648 _NTFN_EXTERN NTFUNCT( HRESULT, RtlWriteMemoryStream )(
4649 IN
struct IStream *This,
4650 IN CONST VOID *Buffer,
4652 OPTOUT PULONG BytesWritten
4655 _NTFN_EXTERN NTFUNCT( HRESULT, RtlSetMemoryStreamSize )(
4656 IN
struct IStream *This,
4657 IN ULARGE_INTEGER NewSize
4660 _NTFN_EXTERN NTFUNCT( HRESULT, RtlCommitMemoryStream )(
4661 IN
struct IStream *This,
4662 IN ULONG CommitFlags
4665 _NTFN_EXTERN NTFUNCT( HRESULT, RtlRevertMemoryStream )(
4666 IN
struct IStream *This
4669 _NTFN_EXTERN NTFUNCT( HRESULT, RtlLockMemoryStreamRegion )(
4670 IN
struct IStream *This,
4671 IN ULARGE_INTEGER Offset,
4672 IN ULARGE_INTEGER Length,
4676 _NTFN_EXTERN NTFUNCT( HRESULT, RtlUnlockMemoryStreamRegion )(
4677 IN
struct IStream *This,
4678 IN ULARGE_INTEGER Offset,
4679 IN ULARGE_INTEGER Length,
4683 _NTFN_EXTERN NTFUNCT( HRESULT, RtlCloneMemoryStream )(
4684 IN
struct IStream *This,
4685 OUT
struct IStream **ResultStream
4688 _NTFN_EXTERN NTFUNC( RtlFindActivationContextSectionGuid )(
4690 const GUID *extguid,
4698 _NTFN_EXTERN NTFUNCT( PRTL_SPLAY_LINKS, RtlSplay )(
4699 INOUT PRTL_SPLAY_LINKS Links
4702 _NTFN_EXTERN NTFUNCT( PRTL_SPLAY_LINKS, RtlDelete )(
4703 IN PRTL_SPLAY_LINKS Links
4706 _NTFN_EXTERN NTFUNCT( VOID, RtlDeleteNoSplay )(
4707 IN PRTL_SPLAY_LINKS Links,
4708 INOUT PRTL_SPLAY_LINKS *Root
4711 _NTFN_EXTERN NTFUNCT( PRTL_SPLAY_LINKS, RtlSubtreeSuccessor )(
4712 IN PRTL_SPLAY_LINKS Links
4715 _NTFN_EXTERN NTFUNCT( PRTL_SPLAY_LINKS, RtlSubtreePredecessor )(
4716 IN PRTL_SPLAY_LINKS Links
4719 _NTFN_EXTERN NTFUNCT( PRTL_SPLAY_LINKS, RtlRealSuccessor )(
4720 IN PRTL_SPLAY_LINKS Links
4723 _NTFN_EXTERN NTFUNCT( PRTL_SPLAY_LINKS, RtlRealPredecessor )(
4724 IN PRTL_SPLAY_LINKS Links
4727 #ifndef RtlIsLeftChild 4728 #define RtlIsLeftChild( Links ) \ 4729 (RtlLeftChild( RtlParent( Links )) == (PRTL_SPLAY_LINKS)(Links)) 4731 #define RtlIsRightChild( Links ) \ 4732 (RtlRightChild( RtlParent( Links )) == (PRTL_SPLAY_LINKS)(Links)) 4734 #define RtlRightChild( Links ) \ 4735 ((PRTL_SPLAY_LINKS)(Links))->RightChild 4737 #define RtlIsRoot( Links ) \ 4738 (RtlParent( Links ) == (PRTL_SPLAY_LINKS)(Links)) 4740 #define RtlLeftChild( Links ) \ 4741 ((PRTL_SPLAY_LINKS)(Links))->LeftChild 4743 #define RtlParent( Links ) \ 4744 ((PRTL_SPLAY_LINKS)(Links))->Parent 4746 #define RtlInitializeSplayLinks( Links ) \ 4748 PRTL_SPLAY_LINKS _SplayLinks; \ 4749 _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \ 4750 _SplayLinks->Parent = _SplayLinks; \ 4751 _SplayLinks->LeftChild = NULL; \ 4752 _SplayLinks->RightChild = NULL; \ 4755 #define RtlInsertAsLeftChild( ParentLinks, ChildLinks ) \ 4757 PRTL_SPLAY_LINKS _SplayParent; \ 4758 PRTL_SPLAY_LINKS _SplayChild; \ 4759 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \ 4760 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \ 4761 _SplayParent->LeftChild = _SplayChild; \ 4762 _SplayChild->Parent = _SplayParent; \ 4765 #define RtlInsertAsRightChild( ParentLinks, ChildLinks ) \ 4767 PRTL_SPLAY_LINKS _SplayParent; \ 4768 PRTL_SPLAY_LINKS _SplayChild; \ 4769 _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \ 4770 _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks); \ 4771 _SplayParent->RightChild = _SplayChild; \ 4772 _SplayChild->Parent = _SplayParent; \ 4774 #endif//ndef RtlIsLeftChild 4778 _NTFN_EXTERN NTFUNCT( VOID, RtlInitializeGenericTableAvl )(
4779 OUT PRTL_AVL_TABLE Table,
4780 IN PRTL_AVL_COMPARE_ROUTINE CompareRoutine,
4781 OPTIN PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine,
4782 OPTIN PRTL_AVL_FREE_ROUTINE FreeRoutine,
4783 OPTIN PVOID TableContext
4786 _NTFN_EXTERN NTFUNCT( PVOID, RtlInsertElementGenericTableAvl )(
4787 IN PRTL_AVL_TABLE Table,
4789 IN CLONG BufferSize,
4790 OPTOUT PBOOLEAN NewElement
4793 _NTFN_EXTERN NTFUNCT( PVOID, RtlInsertElementGenericTableFullAvl )(
4794 IN PRTL_AVL_TABLE Table,
4796 IN CLONG BufferSize,
4797 OPTOUT PBOOLEAN NewElement,
4798 IN PVOID NodeOrParent,
4799 IN TABLE_SEARCH_RESULT SearchResult
4802 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlDeleteElementGenericTableAvl )(
4803 IN PRTL_AVL_TABLE Table,
4807 _NTFN_EXTERN NTFUNCT( PVOID, RtlLookupElementGenericTableAvl )(
4808 IN PRTL_AVL_TABLE Table,
4812 _NTFN_EXTERN NTFUNCT( PVOID, RtlLookupElementGenericTableFullAvl )(
4813 IN PRTL_AVL_TABLE Table,
4815 OUT PVOID *NodeOrParent,
4816 OUT TABLE_SEARCH_RESULT *SearchResult
4819 _NTFN_EXTERN NTFUNCT( PVOID, RtlEnumerateGenericTableAvl )(
4820 IN PRTL_AVL_TABLE Table,
4824 _NTFN_EXTERN NTFUNCT( PVOID, RtlEnumerateGenericTableWithoutSplayingAvl )(
4825 IN PRTL_AVL_TABLE Table,
4826 INOUT PVOID *RestartKey
4829 _NTFN_EXTERN NTFUNCT( PVOID, RtlLookupFirstMatchingElementGenericTableAvl )(
4830 IN PRTL_AVL_TABLE Table,
4832 OUT PVOID *RestartKey
4835 _NTFN_EXTERN NTFUNCT( PVOID, RtlEnumerateGenericTableLikeADirectory )(
4836 IN PRTL_AVL_TABLE Table,
4837 OPTIN PRTL_AVL_MATCH_FUNCTION MatchFunction,
4838 OPTIN PVOID MatchData,
4840 INOUT PVOID *RestartKey,
4841 INOUT PULONG DeleteCount,
4845 _NTFN_EXTERN NTFUNCT( PVOID, RtlGetElementGenericTableAvl )(
4846 IN PRTL_AVL_TABLE Table,
4850 _NTFN_EXTERN NTFUNCT( ULONG, RtlNumberGenericTableElementsAvl )(
4851 IN PRTL_AVL_TABLE Table
4854 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlIsGenericTableEmptyAvl )(
4855 IN PRTL_AVL_TABLE Table
4860 #ifdef RTL_USE_AVL_TABLES 4862 #define RtlInitializeGenericTable RtlInitializeGenericTableAvl 4863 #define RtlInsertElementGenericTable RtlInsertElementGenericTableAvl 4864 #define RtlInsertElementGenericTableFull RtlInsertElementGenericTableFullAvl 4865 #define RtlDeleteElementGenericTable RtlDeleteElementGenericTableAvl 4866 #define RtlLookupElementGenericTable RtlLookupElementGenericTableAvl 4867 #define RtlLookupElementGenericTableFull RtlLookupElementGenericTableFullAvl 4868 #define RtlEnumerateGenericTable RtlEnumerateGenericTableAvl 4869 #define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl 4870 #define RtlGetElementGenericTable RtlGetElementGenericTableAvl 4871 #define RtlNumberGenericTableElements RtlNumberGenericTableElementsAvl 4872 #define RtlIsGenericTableEmpty RtlIsGenericTableEmptyAvl 4876 _NTFN_EXTERN NTFUNCT( VOID, RtlInitializeGenericTable )(
4877 OUT PRTL_GENERIC_TABLE Table,
4878 IN PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine,
4879 OPTIN PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine,
4880 OPTIN PRTL_GENERIC_FREE_ROUTINE FreeRoutine,
4881 OPTIN PVOID TableContext
4884 _NTFN_EXTERN NTFUNCT( PVOID, RtlInsertElementGenericTable )(
4885 IN PRTL_GENERIC_TABLE Table,
4887 IN CLONG BufferSize,
4888 OPTOUT PBOOLEAN NewElement
4891 _NTFN_EXTERN NTFUNCT( PVOID, RtlInsertElementGenericTableFull )(
4892 IN PRTL_GENERIC_TABLE Table,
4894 IN CLONG BufferSize,
4895 OPTOUT PBOOLEAN NewElement,
4896 IN PVOID NodeOrParent,
4897 IN TABLE_SEARCH_RESULT SearchResult
4900 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlDeleteElementGenericTable )(
4901 IN PRTL_GENERIC_TABLE Table,
4905 _NTFN_EXTERN NTFUNCT( PVOID, RtlLookupElementGenericTable )(
4906 IN PRTL_GENERIC_TABLE Table,
4910 _NTFN_EXTERN NTFUNCT( PVOID, RtlLookupElementGenericTableFull )(
4911 IN PRTL_GENERIC_TABLE Table,
4913 OUT PVOID *NodeOrParent,
4914 OUT TABLE_SEARCH_RESULT *SearchResult
4917 _NTFN_EXTERN NTFUNCT( PVOID, RtlEnumerateGenericTable )(
4918 IN PRTL_GENERIC_TABLE Table,
4922 _NTFN_EXTERN NTFUNCT( PVOID, RtlEnumerateGenericTableWithoutSplaying )(
4923 IN PRTL_GENERIC_TABLE Table,
4924 INOUT PVOID *RestartKey
4927 _NTFN_EXTERN NTFUNCT( PVOID, RtlGetElementGenericTable )(
4928 IN PRTL_GENERIC_TABLE Table,
4932 _NTFN_EXTERN NTFUNCT( ULONG, RtlNumberGenericTableElements )(
4933 IN PRTL_GENERIC_TABLE Table
4936 _NTFN_EXTERN NTFUNCT( BOOLEAN, RtlIsGenericTableEmpty )(
4937 IN PRTL_GENERIC_TABLE Table
5063 #endif // ndef NO_NDK_FILES 5064 #endif // ndef __NtFunc_h_incl__
bool GetProcPathname(DWORD procId, OUT TSTR PathName, UINT ccPathName)
bool(__stdcall * PFnEnumModuleAction)(HANDLE hProcess, const PLDR_MODULE pModule, PVOID Context)
bool _InitializeObjectAttributes(OUT POBJECT_ATTRIBUTES pObjAttr, IN HANDLE BaseObj, IN PUNICODE_STRING ObjName, IN ULONG Attrib, OPTIN PSECURITY_DESCRIPTOR SecurityDesc, OPTIN PSECURITY_QUALITY_OF_SERVICE SecurityQoS)
bool GetProcPEB(HANDLE hProcess, OUT PPEB pPeb)
struct _PACKED_OBJ_ATTRIBUTES * PPACKED_OBJ_ATTRIBUTES
UINT GetProcDllData(HANDLE hProcess, WCSTR DllName, OUT PLDR_MODULE pModule, bool Localize)
VOID(NTAPI * PLDR_CALLBACK)(PVOID CallbackContext, PCHAR Name)
bool InitNtFunc()
InitNtFunc must be called before any of the NTDLL functions can be used.
EVENT_TRACE_HEADER * PEVENT_TRACE_HEADER
bool CopyProcUStringBuf(HANDLE hProc, PUNICODE_STRING pProcStr, OUT WSTR wzBuf, UINT ccBuf)
void FreeLdrModBuffers(PLDR_MODULE pMod)
UINT EnumProcModules(HANDLE hProcess, PFnEnumModuleAction Action, PVOID Context)
PACKED_OBJ_ATTRIBUTES * AllocPackedObjAttributes(HANDLE BaseObj, PCWSTR ObjName, ULONG Attributes, PSECURITY_DESCRIPTOR SecurityDesc, PSECURITY_QUALITY_OF_SERVICE SecurityQoS)
PPEB GetPEBAddress(HANDLE hProcess)