2 this file defines interfaces mainly exposed to device drivers and
12 #include "winbase.h" /* fixme: should be taken out sometimes */
23 #undef Status /* conflict with X11-includes*/
25 typedef struct _IO_STATUS_BLOCK
31 ULONG_PTR Information
;
32 } IO_STATUS_BLOCK
, *PIO_STATUS_BLOCK
;
34 typedef VOID
NTAPI (*PIO_APC_ROUTINE
) ( PVOID ApcContext
, PIO_STATUS_BLOCK IoStatusBlock
, ULONG Reserved
);
41 typedef struct _KEY_BASIC_INFORMATION
{
42 FILETIME LastWriteTime
;
46 } KEY_BASIC_INFORMATION
, *PKEY_BASIC_INFORMATION
;
48 typedef struct _KEY_NODE_INFORMATION
50 FILETIME LastWriteTime
;
57 } KEY_NODE_INFORMATION
, *PKEY_NODE_INFORMATION
;
59 typedef struct _KEY_FULL_INFORMATION
61 FILETIME LastWriteTime
;
69 ULONG MaxValueNameLen
;
70 ULONG MaxValueDataLen
;
72 } KEY_FULL_INFORMATION
, *PKEY_FULL_INFORMATION
;
74 typedef enum _KEY_INFORMATION_CLASS
79 } KEY_INFORMATION_CLASS
;
81 typedef struct _KEY_VALUE_ENTRY
83 PUNICODE_STRING ValueName
;
87 } KEY_VALUE_ENTRY
, *PKEY_VALUE_ENTRY
;
89 /* value information */
90 typedef struct _KEY_VALUE_BASIC_INFORMATION
96 } KEY_VALUE_BASIC_INFORMATION
, *PKEY_VALUE_BASIC_INFORMATION
;
98 typedef struct _KEY_VALUE_FULL_INFORMATION
107 } KEY_VALUE_FULL_INFORMATION
, *PKEY_VALUE_FULL_INFORMATION
;
109 typedef struct _KEY_VALUE_PARTIAL_INFORMATION
115 } KEY_VALUE_PARTIAL_INFORMATION
, *PKEY_VALUE_PARTIAL_INFORMATION
;
117 typedef enum _KEY_VALUE_INFORMATION_CLASS
119 KeyValueBasicInformation
,
120 KeyValueFullInformation
,
121 KeyValuePartialInformation
,
122 KeyValueFullInformationAlign64
,
123 KeyValuePartialInformationAlign64
124 } KEY_VALUE_INFORMATION_CLASS
;
126 NTSTATUS WINAPI
RtlFormatCurrentUserKeyPath(
127 PUNICODE_STRING KeyPath
);
129 /* thread information */
131 typedef enum _THREADINFOCLASS
132 { ThreadBasicInformation
,
137 ThreadImpersonationToken
,
138 ThreadDescriptorTableEntry
,
139 ThreadEnableAlignmentFaultFixup
,
140 ThreadEventPair_Reusable
,
141 ThreadQuerySetWin32StartAddress
,
143 ThreadPerformanceCount
,
145 ThreadIdealProcessor
,
147 ThreadSetTlsArrayAddress
,
152 /* file information */
154 typedef enum _FILE_INFORMATION_CLASS
{
155 FileDirectoryInformation
= 1,
156 FileFullDirectoryInformation
,
157 FileBothDirectoryInformation
,
158 FileBasicInformation
,
159 FileStandardInformation
,
160 FileInternalInformation
,
162 FileAccessInformation
,
164 FileRenameInformation
,
166 FileNamesInformation
,
167 FileDispositionInformation
,
168 FilePositionInformation
,
169 FileFullEaInformation
,
171 FileAlignmentInformation
,
173 FileAllocationInformation
,
174 FileEndOfFileInformation
,
175 FileAlternateNameInformation
,
176 FileStreamInformation
,
178 FilePipeLocalInformation
,
179 FilePipeRemoteInformation
,
180 FileMailslotQueryInformation
,
181 FileMailslotSetInformation
,
182 FileCompressionInformation
,
183 FileObjectIdInformation
,
184 FileCompletionInformation
,
185 FileMoveClusterInformation
,
186 FileQuotaInformation
,
187 FileReparsePointInformation
,
188 FileNetworkOpenInformation
,
189 FileAttributeTagInformation
,
190 FileTrackingInformation
,
191 FileMaximumInformation
192 } FILE_INFORMATION_CLASS
, *PFILE_INFORMATION_CLASS
;
194 typedef enum _FSINFOCLASS
{
195 FileFsVolumeInformation
= 1,
196 FileFsLabelInformation
,
197 FileFsSizeInformation
,
198 FileFsDeviceInformation
,
199 FileFsAttributeInformation
,
200 FileFsControlInformation
,
201 FileFsFullSizeInformation
,
202 FileFsObjectIdInformation
,
203 FileFsMaximumInformation
204 } FS_INFORMATION_CLASS
, *PFS_INFORMATION_CLASS
;
206 typedef enum _SECTION_INHERIT
213 /* object information */
215 typedef enum _OBJECT_INFORMATION_CLASS
219 } OBJECT_INFORMATION_CLASS
, *POBJECT_INFORMATION_CLASS
;
222 /* system information */
224 typedef enum SYSTEM_INFORMATION_CLASS
229 SystemPerformanceInformation
230 } SYSTEM_INFORMATION_CLASS
, *PSYSTEM_INFORMATION_CLASS
;
232 /* reading coffee grounds... */
233 typedef struct _THREAD_INFO
240 } THREAD_INFO
, PTHREAD_INFO
;
242 typedef struct _VM_COUNTERS_
243 { ULONG PeakVirtualSize
;
245 ULONG PageFaultCount
;
246 ULONG PeakWorkingSetSize
;
247 ULONG WorkingSetSize
;
248 ULONG QuotaPeakPagedPoolUsage
;
249 ULONG QuotaPagedPoolUsage
;
250 ULONG QuotaPeakNonPagedPoolUsage
;
251 ULONG QuotaNonPagedPoolUsage
;
253 ULONG PeakPagefileUsage
;
254 } VM_COUNTERS
, *PVM_COUNTERS
;
256 /* process information */
258 typedef struct _PROCESS_INFO
259 { DWORD Offset
; /* 00 offset to next PROCESS_INFO ok*/
260 DWORD ThreadCount
; /* 04 number of ThreadInfo member ok */
262 FILETIME CreationTime
; /* 20 */
264 PWCHAR ProcessName
; /* 3c ok */
266 DWORD ProcessID
; /* 44 ok*/
267 DWORD ParentProcessID
;
269 DWORD Unknown3
[2]; /* 50 */
270 ULONG PeakVirtualSize
;
272 ULONG PageFaultCount
;
273 ULONG PeakWorkingSetSize
;
274 ULONG WorkingSetSize
;
275 ULONG QuotaPeakPagedPoolUsage
;
276 ULONG QuotaPagedPoolUsage
;
277 ULONG QuotaPeakNonPagedPoolUsage
;
278 ULONG QuotaNonPagedPoolUsage
;
280 ULONG PeakPagefileUsage
;
283 THREAD_INFO ati
[ANYSIZE_ARRAY
]; /* 94 size=0x40*/
284 } PROCESS_INFO
, PPROCESS_INFO
;
286 NTSTATUS WINAPI
NtQuerySystemInformation(
287 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
288 OUT PVOID SystemInformation
,
290 OUT PULONG ResultLength
);
293 * system configuration
297 typedef struct _SYSTEM_TIME_ADJUSTMENT
299 ULONG TimeAdjustment
;
300 BOOLEAN TimeAdjustmentDisabled
;
302 } SYSTEM_TIME_ADJUSTMENT
, *PSYSTEM_TIME_ADJUSTMENT
;
304 typedef struct _SYSTEM_CONFIGURATION_INFO
309 { WORD ProcessorArchitecture
;
314 PVOID MinimumApplicationAddress
;
315 PVOID MaximumApplicationAddress
;
316 ULONG ActiveProcessorMask
;
317 ULONG NumberOfProcessors
;
319 ULONG AllocationGranularity
;
321 WORD ProcessorRevision
;
323 } SYSTEM_CONFIGURATION_INFO
, *PSYSTEM_CONFIGURATION_INFO
;
326 typedef struct _SYSTEM_CACHE_INFORMATION
330 ULONG PageFaultCount
;
331 ULONG MinimumWorkingSet
;
332 ULONG MaximumWorkingSet
;
335 } SYSTEM_CACHE_INFORMATION
;
338 * NtQueryProcessInformation
341 /* parameter ProcessInformationClass */
343 typedef enum _PROCESSINFOCLASS
344 { ProcessBasicInformation
,
350 ProcessRaisePriority
,
352 ProcessExceptionPort
,
354 ProcessLdtInformation
,
356 ProcessDefaultHardErrorMode
,
357 ProcessIoPortHandlers
,
358 ProcessPooledUsageAndLimits
,
359 ProcessWorkingSetWatch
,
361 ProcessEnableAlignmentFaultFixup
,
362 ProcessPriorityClass
,
363 ProcessWx86Information
,
366 ProcessPriorityBoost
,
368 ProcessSessionInformation
,
369 ProcessForegroundInformation
,
370 ProcessWow64Information
,
374 /* parameter ProcessInformation (depending on ProcessInformationClass) */
376 typedef struct _PROCESS_BASIC_INFORMATION
378 DWORD PebBaseAddress
;
381 ULONG UniqueProcessId
;
382 ULONG InheritedFromUniqueProcessId
;
383 } PROCESS_BASIC_INFORMATION
;
385 NTSTATUS WINAPI
NtQueryInformationProcess(
386 IN HANDLE ProcessHandle
,
387 IN PROCESSINFOCLASS ProcessInformationClass
,
388 OUT PVOID ProcessInformation
,
389 IN ULONG ProcessInformationLength
,
390 OUT PULONG ReturnLength
);
392 #define NtCurrentProcess() ( (HANDLE) -1 )
398 typedef enum _TIMER_TYPE
405 /* token functions */
407 NTSTATUS WINAPI
NtOpenProcessToken(
408 HANDLE ProcessHandle
,
410 HANDLE
*TokenHandle
);
412 NTSTATUS WINAPI
NtOpenThreadToken(
416 HANDLE
*TokenHandle
);
418 NTSTATUS WINAPI
NtAdjustPrivilegesToken(
419 IN HANDLE TokenHandle
,
420 IN BOOLEAN DisableAllPrivileges
,
421 IN PTOKEN_PRIVILEGES NewState
,
422 IN DWORD BufferLength
,
423 OUT PTOKEN_PRIVILEGES PreviousState
,
424 OUT PDWORD ReturnLength
);
426 NTSTATUS WINAPI
NtQueryInformationToken(
428 DWORD tokeninfoclass
,
430 DWORD tokeninfolength
,
435 BOOLEAN WINAPI
RtlAllocateAndInitializeSid (
436 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority
,
437 BYTE nSubAuthorityCount
,
438 DWORD nSubAuthority0
, DWORD nSubAuthority1
,
439 DWORD nSubAuthority2
, DWORD nSubAuthority3
,
440 DWORD nSubAuthority4
, DWORD nSubAuthority5
,
441 DWORD nSubAuthority6
, DWORD nSubAuthority7
,
444 BOOL WINAPI
RtlInitializeSid(
446 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority
,
447 BYTE nSubAuthorityCount
);
449 DWORD WINAPI
RtlFreeSid(
452 BOOL WINAPI
RtlEqualSid(
456 DWORD WINAPI
RtlLengthRequiredSid(
459 DWORD WINAPI
RtlLengthSid(
462 LPDWORD WINAPI
RtlSubAuthoritySid(
466 LPBYTE WINAPI
RtlSubAuthorityCountSid(
469 DWORD WINAPI
RtlCopySid(
474 BOOL WINAPI
RtlValidSid(
477 BOOL WINAPI
RtlEqualPrefixSid(
481 PSID_IDENTIFIER_AUTHORITY WINAPI
RtlIdentifierAuthoritySid(
484 /* security descriptor functions */
486 NTSTATUS WINAPI
RtlCreateSecurityDescriptor(
487 PSECURITY_DESCRIPTOR lpsd
,
490 NTSTATUS WINAPI
RtlValidSecurityDescriptor(
491 PSECURITY_DESCRIPTOR SecurityDescriptor
);
493 ULONG WINAPI
RtlLengthSecurityDescriptor(
494 PSECURITY_DESCRIPTOR SecurityDescriptor
);
496 NTSTATUS WINAPI
RtlGetDaclSecurityDescriptor(
497 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
498 OUT PBOOLEAN lpbDaclPresent
,
500 OUT PBOOLEAN lpbDaclDefaulted
);
502 NTSTATUS WINAPI
RtlSetDaclSecurityDescriptor (
503 PSECURITY_DESCRIPTOR lpsd
,
506 BOOLEAN dacldefaulted
);
508 NTSTATUS WINAPI
RtlGetSaclSecurityDescriptor(
509 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
510 OUT PBOOLEAN lpbSaclPresent
,
512 OUT PBOOLEAN lpbSaclDefaulted
);
514 NTSTATUS WINAPI
RtlSetSaclSecurityDescriptor (
515 PSECURITY_DESCRIPTOR lpsd
,
518 BOOLEAN sacldefaulted
);
520 NTSTATUS WINAPI
RtlGetOwnerSecurityDescriptor(
521 PSECURITY_DESCRIPTOR SecurityDescriptor
,
523 PBOOLEAN OwnerDefaulted
);
525 NTSTATUS WINAPI
RtlSetOwnerSecurityDescriptor(
526 PSECURITY_DESCRIPTOR lpsd
,
528 BOOLEAN ownerdefaulted
);
530 NTSTATUS WINAPI
RtlSetGroupSecurityDescriptor (
531 PSECURITY_DESCRIPTOR lpsd
,
533 BOOLEAN groupdefaulted
);
535 NTSTATUS WINAPI
RtlGetGroupSecurityDescriptor(
536 PSECURITY_DESCRIPTOR SecurityDescriptor
,
538 PBOOLEAN GroupDefaulted
);
540 NTSTATUS WINAPI
RtlMakeSelfRelativeSD(
541 IN PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor
,
542 IN PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor
,
543 IN OUT LPDWORD lpdwBufferLength
);
545 NTSTATUS WINAPI
RtlGetControlSecurityDescriptor(
546 PSECURITY_DESCRIPTOR pSecurityDescriptor
,
547 PSECURITY_DESCRIPTOR_CONTROL pControl
,
548 LPDWORD lpdwRevision
);
552 NTSTATUS WINAPI
RtlCreateAcl(
557 BOOLEAN WINAPI
RtlFirstFreeAce(
561 NTSTATUS WINAPI
RtlAddAce(
565 PACE_HEADER acestart
,
568 BOOL WINAPI
RtlAddAccessAllowedAce(
570 IN DWORD dwAceRevision
,
574 BOOL WINAPI
AddAccessAllowedAceEx(
576 IN DWORD dwAceRevision
,
581 DWORD WINAPI
RtlGetAce(
586 /* string functions */
588 WCHAR CDECL
NTDLL_towupper(WCHAR code
);
589 WCHAR CDECL
NTDLL_towlower(WCHAR code
);
591 VOID WINAPI
RtlInitAnsiString(
595 VOID WINAPI
RtlInitString(
599 VOID WINAPI
RtlInitUnicodeString(
600 PUNICODE_STRING target
,
603 VOID WINAPI
RtlFreeUnicodeString(
604 PUNICODE_STRING str
);
606 VOID WINAPI
RtlFreeAnsiString(
607 PANSI_STRING AnsiString
);
609 NTSTATUS WINAPI
RtlAnsiStringToUnicodeString(
614 NTSTATUS WINAPI
RtlOemStringToUnicodeString(
619 NTSTATUS WINAPI
RtlMultiByteToUnicodeN(
626 NTSTATUS WINAPI
RtlOemToUnicodeN(
633 NTSTATUS WINAPI
RtlUnicodeToOemN(
640 NTSTATUS WINAPI
RtlUnicodeStringToOemString(
645 NTSTATUS WINAPI
RtlUnicodeStringToAnsiString(
650 BOOLEAN WINAPI
RtlEqualUnicodeString(
655 DWORD WINAPI
RtlUpcaseUnicodeString(
656 PUNICODE_STRING dest
,
660 UINT WINAPI
RtlxOemStringToUnicodeSize(
663 UINT WINAPI
RtlxAnsiStringToUnicodeSize(
666 DWORD WINAPI
RtlIsTextUnicode(
671 NTSTATUS WINAPI
RtlCompareUnicodeString(
672 PUNICODE_STRING String1
,
673 PUNICODE_STRING String2
,
674 BOOLEAN CaseInSensitive
);
676 /* resource functions */
678 typedef struct _RTL_RWLOCK
{
679 CRITICAL_SECTION rtlCS
;
680 HANDLE hSharedReleaseSemaphore
;
682 HANDLE hExclusiveReleaseSemaphore
;
683 UINT uExclusiveWaiters
;
685 HANDLE hOwningThreadId
;
686 DWORD dwTimeoutBoost
;
688 } RTL_RWLOCK
, *LPRTL_RWLOCK
;
690 VOID WINAPI
RtlInitializeResource(
693 VOID WINAPI
RtlDeleteResource(
696 BYTE WINAPI
RtlAcquireResourceExclusive(
697 LPRTL_RWLOCK
, BYTE fWait
);
699 BYTE WINAPI
RtlAcquireResourceShared(
700 LPRTL_RWLOCK
, BYTE fWait
);
702 VOID WINAPI
RtlReleaseResource(
705 VOID WINAPI
RtlDumpResource(
710 typedef struct _TIME_FIELDS
721 typedef TIME_FIELDS
*PTIME_FIELDS
;
723 VOID WINAPI
RtlSystemTimeToLocalTime(
724 IN PLARGE_INTEGER SystemTime
,
725 OUT PLARGE_INTEGER LocalTime
);
727 VOID WINAPI
RtlTimeToTimeFields(
728 PLARGE_INTEGER liTime
,
729 PTIME_FIELDS TimeFields
);
731 BOOLEAN WINAPI
RtlTimeFieldsToTime(
732 PTIME_FIELDS tfTimeFields
,
733 PLARGE_INTEGER Time
);
735 VOID WINAPI
RtlTimeToElapsedTimeFields(
736 PLARGE_INTEGER liTime
,
737 PTIME_FIELDS TimeFields
);
739 BOOLEAN WINAPI
RtlTimeToSecondsSince1980(
743 BOOLEAN WINAPI
RtlTimeToSecondsSince1970(
749 /* Data structure for heap definition. This includes various
750 sizing parameters and callback routines, which, if left NULL,
751 result in default behavior */
754 { ULONG Length
; /* = sizeof(RTL_HEAP_DEFINITION) */
756 } RTL_HEAP_DEFINITION
, *PRTL_HEAP_DEFINITION
;
758 HANDLE WINAPI
RtlCreateHeap(
764 PRTL_HEAP_DEFINITION Definition
);
766 PVOID WINAPI
RtlAllocateHeap(
772 BOOLEAN WINAPI
RtlFreeHeap(
779 void WINAPI
NtRaiseException(
780 PEXCEPTION_RECORD
,PCONTEXT
,BOOL
);
782 void WINAPI
RtlRaiseException(
785 void WINAPI
RtlRaiseStatus(
788 void WINAPI
RtlUnwind(
791 PEXCEPTION_RECORD
,DWORD
);
793 /* process environment block */
794 VOID WINAPI
RtlAcquirePebLock(void);
795 VOID WINAPI
RtlReleasePebLock(void);
798 INT WINAPI
RtlExtendedLargeIntegerDivide(
799 LARGE_INTEGER dividend
,
803 LARGE_INTEGER WINAPI
RtlExtendedIntegerMultiply(
804 LARGE_INTEGER factor1
,
808 DWORD WINAPI
RtlCreateEnvironment(
812 DWORD WINAPI
RtlDestroyEnvironment(
815 DWORD WINAPI
RtlQueryEnvironmentVariable_U(
818 PUNICODE_STRING val
) ;
820 DWORD WINAPI
RtlSetEnvironmentVariable(
823 PUNICODE_STRING val
);
825 /* object security */
827 DWORD WINAPI
RtlNewSecurityObject(
835 DWORD WINAPI
RtlDeleteSecurityObject(
839 NtQuerySecurityObject(
841 IN SECURITY_INFORMATION RequestedInformation
,
842 OUT PSECURITY_DESCRIPTOR pSecurityDesriptor
,
844 OUT PULONG ResultLength
);
849 IN SECURITY_INFORMATION SecurityInformation
,
850 IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
852 /* registry functions */
854 NTSTATUS WINAPI
NtCreateKey(
856 ACCESS_MASK DesiredAccess
,
857 POBJECT_ATTRIBUTES ObjectAttributes
,
859 PUNICODE_STRING Class
,
863 NTSTATUS WINAPI
NtOpenKey(
865 ACCESS_MASK DesiredAccess
,
866 POBJECT_ATTRIBUTES ObjectAttributes
);
868 NTSTATUS WINAPI
NtDeleteKey(HANDLE KeyHandle
);
870 NTSTATUS WINAPI
NtDeleteValueKey(
872 IN PUNICODE_STRING ValueName
);
874 NTSTATUS WINAPI
NtEnumerateKey(
877 KEY_INFORMATION_CLASS KeyInformationClass
,
878 PVOID KeyInformation
,
880 PULONG ResultLength
);
882 NTSTATUS WINAPI
NtQueryKey(
884 KEY_INFORMATION_CLASS KeyInformationClass
,
885 PVOID KeyInformation
,
887 PULONG ResultLength
);
889 NTSTATUS WINAPI
NtEnumerateValueKey(
892 KEY_VALUE_INFORMATION_CLASS KeyInformationClass
,
893 PVOID KeyInformation
,
895 PULONG ResultLength
);
897 NTSTATUS WINAPI
NtFlushKey(HANDLE KeyHandle
);
899 NTSTATUS WINAPI
NtLoadKey(
901 POBJECT_ATTRIBUTES ObjectAttributes
);
903 NTSTATUS WINAPI
NtNotifyChangeKey(
906 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
907 IN PVOID ApcContext OPTIONAL
,
908 OUT PIO_STATUS_BLOCK IoStatusBlock
,
909 IN ULONG CompletionFilter
,
910 IN BOOLEAN Asynchroneous
,
911 OUT PVOID ChangeBuffer
,
913 IN BOOLEAN WatchSubtree
);
915 NTSTATUS WINAPI
NtQueryMultipleValueKey(
917 PVALENTW ListOfValuesToQuery
,
919 PVOID MultipleValueInformation
,
921 PULONG ReturnLength
);
923 NTSTATUS WINAPI
NtQueryValueKey(
925 IN PUNICODE_STRING ValueName
,
926 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
,
927 OUT PVOID KeyValueInformation
,
929 OUT PULONG ResultLength
);
931 NTSTATUS WINAPI
NtReplaceKey(
932 IN POBJECT_ATTRIBUTES ObjectAttributes
,
934 IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
);
936 NTSTATUS WINAPI
NtRestoreKey(
941 NTSTATUS WINAPI
NtSaveKey(
943 IN HANDLE FileHandle
);
945 NTSTATUS WINAPI
NtSetInformationKey(
947 IN
const int KeyInformationClass
,
948 IN PVOID KeyInformation
,
949 IN ULONG KeyInformationLength
);
951 NTSTATUS WINAPI
NtSetValueKey(
953 PUNICODE_STRING ValueName
,
959 NTSTATUS WINAPI
NtUnloadKey(
960 IN HANDLE KeyHandle
);
962 NTSTATUS WINAPI
NtClose(
967 #if defined(__i386__) && defined(__GNUC__)
968 static inline void WINAPI
DbgBreakPoint(void) { __asm__
__volatile__("int3"); }
969 static inline void WINAPI
DbgUserBreakPoint(void) { __asm__
__volatile__("int3"); }
970 #else /* __i386__ && __GNUC__ */
971 void WINAPI
DbgBreakPoint(void);
972 void WINAPI
DbgUserBreakPoint(void);
973 #endif /* __i386__ && __GNUC__ */
974 void WINAPIV
DbgPrint(LPCSTR fmt
, ...);
976 DWORD WINAPI
RtlAdjustPrivilege(DWORD x1
,DWORD x2
,DWORD x3
,DWORD x4
);
977 DWORD WINAPI
RtlIntegerToChar(DWORD x1
,DWORD x2
,DWORD x3
,DWORD x4
);
978 LPVOID WINAPI
RtlNormalizeProcessParams(LPVOID x
);
979 DWORD WINAPI
RtlNtStatusToDosError(DWORD error
);
980 BOOLEAN WINAPI
RtlGetNtProductType(LPDWORD type
);
982 DWORD WINAPI
RtlOpenCurrentUser(
983 IN ACCESS_MASK DesiredAccess
,
984 OUT PHANDLE KeyHandle
);
986 BOOLEAN WINAPI
RtlDosPathNameToNtPathName_U( LPWSTR from
,PUNICODE_STRING us
,DWORD x2
,DWORD x3
);
987 BOOL WINAPI
RtlImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);
991 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
992 IN HANDLE ClientToken
,
993 IN ACCESS_MASK DesiredAccess
,
994 IN PGENERIC_MAPPING GenericMapping
,
995 OUT PPRIVILEGE_SET PrivilegeSet
,
996 OUT PULONG ReturnLength
,
997 OUT PULONG GrantedAccess
,
998 OUT PBOOLEAN AccessStatus
);
1004 #include "poppack.h"