2 this file defines interfaces mainly exposed to device drivers and
16 #undef Status /* conflict with X11-includes*/
18 typedef struct _IO_STATUS_BLOCK
23 ULONG_PTR Information
;
24 } IO_STATUS_BLOCK
, *PIO_STATUS_BLOCK
;
26 typedef VOID (NTAPI
*PIO_APC_ROUTINE
) ( PVOID ApcContext
, PIO_STATUS_BLOCK IoStatusBlock
, ULONG Reserved
);
28 typedef enum _KEY_INFORMATION_CLASS
{
32 } KEY_INFORMATION_CLASS
;
34 typedef enum _KEY_VALUE_INFORMATION_CLASS
{
35 KeyValueBasicInformation
,
36 KeyValueFullInformation
,
37 KeyValuePartialInformation
,
38 KeyValueFullInformationAlign64
,
39 KeyValuePartialInformationAlign64
40 } KEY_VALUE_INFORMATION_CLASS
;
42 typedef enum _PROCESSINFOCLASS
43 { ProcessBasicInformation
,
53 ProcessLdtInformation
,
55 ProcessDefaultHardErrorMode
,
56 ProcessIoPortHandlers
,
57 ProcessPooledUsageAndLimits
,
58 ProcessWorkingSetWatch
,
60 ProcessEnableAlignmentFaultFixup
,
62 ProcessWx86Information
,
67 ProcessSessionInformation
,
68 ProcessForegroundInformation
,
69 ProcessWow64Information
,
73 typedef enum _THREADINFOCLASS
74 { ThreadBasicInformation
,
79 ThreadImpersonationToken
,
80 ThreadDescriptorTableEntry
,
81 ThreadEnableAlignmentFaultFixup
,
82 ThreadEventPair_Reusable
,
83 ThreadQuerySetWin32StartAddress
,
85 ThreadPerformanceCount
,
89 ThreadSetTlsArrayAddress
,
94 typedef enum _FILE_INFORMATION_CLASS
{
95 FileDirectoryInformation
= 1,
96 FileFullDirectoryInformation
,
97 FileBothDirectoryInformation
,
99 FileStandardInformation
,
100 FileInternalInformation
,
102 FileAccessInformation
,
104 FileRenameInformation
,
106 FileNamesInformation
,
107 FileDispositionInformation
,
108 FilePositionInformation
,
109 FileFullEaInformation
,
111 FileAlignmentInformation
,
113 FileAllocationInformation
,
114 FileEndOfFileInformation
,
115 FileAlternateNameInformation
,
116 FileStreamInformation
,
118 FilePipeLocalInformation
,
119 FilePipeRemoteInformation
,
120 FileMailslotQueryInformation
,
121 FileMailslotSetInformation
,
122 FileCompressionInformation
,
123 FileObjectIdInformation
,
124 FileCompletionInformation
,
125 FileMoveClusterInformation
,
126 FileQuotaInformation
,
127 FileReparsePointInformation
,
128 FileNetworkOpenInformation
,
129 FileAttributeTagInformation
,
130 FileTrackingInformation
,
131 FileMaximumInformation
132 } FILE_INFORMATION_CLASS
, *PFILE_INFORMATION_CLASS
;
134 typedef enum _SECTION_INHERIT
142 typedef enum _OBJECT_INFORMATION_CLASS
144 } OBJECT_INFORMATION_CLASS
, *POBJECT_INFORMATION_CLASS
;
146 typedef enum SYSTEM_INFORMATION_CLASS
148 } SYSTEM_INFORMATION_CLASS
, *PSYSTEM_INFORMATION_CLASS
;
151 * NtQuerySystemInformation interface
153 typedef struct _SYSTEM_TIME_ADJUSTMENT
155 ULONG TimeAdjustment
;
156 BOOLEAN TimeAdjustmentDisabled
;
158 } SYSTEM_TIME_ADJUSTMENT
, *PSYSTEM_TIME_ADJUSTMENT
;
160 typedef struct _SYSTEM_CONFIGURATION_INFO
165 { WORD ProcessorArchitecture
;
170 PVOID MinimumApplicationAddress
;
171 PVOID MaximumApplicationAddress
;
172 ULONG ActiveProcessorMask
;
173 ULONG NumberOfProcessors
;
175 ULONG AllocationGranularity
;
177 WORD ProcessorRevision
;
179 } SYSTEM_CONFIGURATION_INFO
, *PSYSTEM_CONFIGURATION_INFO
;
182 typedef struct _SYSTEM_CACHE_INFORMATION
186 ULONG PageFaultCount
;
187 ULONG MinimumWorkingSet
;
188 ULONG MaximumWorkingSet
;
191 } SYSTEM_CACHE_INFORMATION
;
196 typedef enum _TIMER_TYPE
201 /* ##############################
202 ###### SID FUNCTIONS ######
203 ##############################
206 BOOLEAN WINAPI
RtlAllocateAndInitializeSid (
207 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority
,
208 DWORD nSubAuthorityCount
,
219 DWORD WINAPI
RtlEqualSid(DWORD x1
,DWORD x2
);
220 DWORD WINAPI
RtlFreeSid(DWORD x1
);
221 DWORD WINAPI
RtlLengthRequiredSid(DWORD nrofsubauths
);
222 DWORD WINAPI
RtlLengthSid(PSID sid
);
223 DWORD WINAPI
RtlInitializeSid(PSID PSID
,PSID_IDENTIFIER_AUTHORITY PSIDauth
, DWORD c
);
224 LPDWORD WINAPI
RtlSubAuthoritySid(PSID PSID
,DWORD nr
);
225 LPBYTE WINAPI
RtlSubAuthorityCountSid(PSID PSID
);
226 DWORD WINAPI
RtlCopySid(DWORD len
,PSID to
,PSID from
);
228 /* ##############################################
229 ###### SECURITY DESCRIPTOR FUNCTIONS ######
230 ##############################################
233 NTSTATUS WINAPI
RtlCreateSecurityDescriptor(
234 PSECURITY_DESCRIPTOR lpsd
,
237 BOOLEAN WINAPI
RtlValidSecurityDescriptor(
238 PSECURITY_DESCRIPTOR SecurityDescriptor
);
240 DWORD WINAPI
RtlGetDaclSecurityDescriptor(
241 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
242 OUT PBOOLEAN lpbDaclPresent
,
244 OUT PBOOLEAN lpbDaclDefaulted
);
246 NTSTATUS WINAPI
RtlSetDaclSecurityDescriptor (
247 PSECURITY_DESCRIPTOR lpsd
,
250 BOOLEAN dacldefaulted
);
252 ULONG WINAPI
RtlLengthSecurityDescriptor(
253 PSECURITY_DESCRIPTOR SecurityDescriptor
);
255 DWORD WINAPI
RtlSetSaclSecurityDescriptor (
256 PSECURITY_DESCRIPTOR lpsd
,
259 BOOLEAN sacldefaulted
);
261 NTSTATUS WINAPI
RtlGetOwnerSecurityDescriptor(
262 PSECURITY_DESCRIPTOR SecurityDescriptor
,
264 PBOOLEAN OwnerDefaulted
);
266 NTSTATUS WINAPI
RtlSetOwnerSecurityDescriptor(
267 PSECURITY_DESCRIPTOR lpsd
,
269 BOOLEAN ownerdefaulted
);
271 NTSTATUS WINAPI
RtlSetGroupSecurityDescriptor (
272 PSECURITY_DESCRIPTOR lpsd
,
274 BOOLEAN groupdefaulted
);
276 NTSTATUS WINAPI
RtlGetGroupSecurityDescriptor(
277 PSECURITY_DESCRIPTOR SecurityDescriptor
,
279 PBOOLEAN GroupDefaulted
);
281 /* ##############################
282 ###### ACL FUNCTIONS ######
283 ##############################
286 DWORD WINAPI
RtlCreateAcl(PACL acl
,DWORD size
,DWORD rev
);
288 BOOLEAN WINAPI
RtlFirstFreeAce(
291 NTSTATUS WINAPI
RtlAddAce(
295 LPACE_HEADER acestart
,
298 DWORD WINAPI
RtlAddAccessAllowedAce(DWORD x1
,DWORD x2
,DWORD x3
,DWORD x4
);
299 DWORD WINAPI
RtlGetAce(PACL pAcl
,DWORD dwAceIndex
,LPVOID
*pAce
);
301 /* ######################################
302 ###### STRING FUNCTIONS ######
303 ######################################
306 DWORD WINAPI
RtlAnsiStringToUnicodeString(PUNICODE_STRING uni
,PANSI_STRING ansi
,BOOLEAN doalloc
);
307 DWORD WINAPI
RtlOemStringToUnicodeString(PUNICODE_STRING uni
,PSTRING ansi
,BOOLEAN doalloc
);
308 DWORD WINAPI
RtlMultiByteToUnicodeN(LPWSTR unistr
,DWORD unilen
,LPDWORD reslen
,LPSTR oemstr
,DWORD oemlen
);
309 DWORD WINAPI
RtlOemToUnicodeN(LPWSTR unistr
,DWORD unilen
,LPDWORD reslen
,LPSTR oemstr
,DWORD oemlen
);
310 VOID WINAPI
RtlInitAnsiString(PANSI_STRING target
,LPCSTR source
);
311 VOID WINAPI
RtlInitString(PSTRING target
,LPCSTR source
);
312 VOID WINAPI
RtlInitUnicodeString(PUNICODE_STRING target
,LPCWSTR source
);
313 VOID WINAPI
RtlFreeUnicodeString(PUNICODE_STRING str
);
314 VOID WINAPI
RtlFreeAnsiString(PANSI_STRING AnsiString
);
315 DWORD WINAPI
RtlUnicodeToOemN(LPSTR oemstr
,DWORD oemlen
,LPDWORD reslen
,LPWSTR unistr
,DWORD unilen
);
316 DWORD WINAPI
RtlUnicodeStringToOemString(PANSI_STRING oem
,PUNICODE_STRING uni
,BOOLEAN alloc
);
317 DWORD WINAPI
RtlUnicodeStringToAnsiString(PANSI_STRING oem
,PUNICODE_STRING uni
,BOOLEAN alloc
);
318 DWORD WINAPI
RtlEqualUnicodeString(PUNICODE_STRING s1
,PUNICODE_STRING s2
,DWORD x
);
319 DWORD WINAPI
RtlUpcaseUnicodeString(PUNICODE_STRING dest
,PUNICODE_STRING src
,BOOLEAN doalloc
);
320 UINT WINAPI
RtlxOemStringToUnicodeSize(PSTRING str
);
321 UINT WINAPI
RtlxAnsiStringToUnicodeSize(PANSI_STRING str
);
322 DWORD WINAPI
RtlIsTextUnicode(LPVOID buf
, DWORD len
, DWORD
*pf
);
323 NTSTATUS WINAPI
RtlCompareUnicodeString(PUNICODE_STRING String1
, PUNICODE_STRING String2
, BOOLEAN CaseInSensitive
);
325 /* ######################################
326 ###### RESOURCE FUNCTIONS ######
327 ######################################
329 void WINAPI
RtlInitializeResource(LPRTL_RWLOCK rwl
);
330 void WINAPI
RtlDeleteResource(LPRTL_RWLOCK rwl
);
331 BYTE WINAPI
RtlAcquireResourceExclusive(LPRTL_RWLOCK rwl
, BYTE fWait
);
332 BYTE WINAPI
RtlAcquireResourceShared(LPRTL_RWLOCK rwl
, BYTE fWait
);
333 void WINAPI
RtlReleaseResource(LPRTL_RWLOCK rwl
);
334 void WINAPI
RtlDumpResource(LPRTL_RWLOCK rwl
);
336 void __cdecl
DbgPrint(LPCSTR fmt
,LPVOID args
);
337 DWORD
NtRaiseException ( DWORD dwExceptionCode
, DWORD dwExceptionFlags
, DWORD nNumberOfArguments
,CONST ULONG_PTR
*lpArguments
);
338 DWORD
RtlRaiseException ( DWORD x
);
339 VOID WINAPI
RtlAcquirePebLock(void);
340 VOID WINAPI
RtlReleasePebLock(void);
341 DWORD WINAPI
RtlAdjustPrivilege(DWORD x1
,DWORD x2
,DWORD x3
,DWORD x4
);
342 DWORD WINAPI
RtlIntegerToChar(DWORD x1
,DWORD x2
,DWORD x3
,DWORD x4
);
343 DWORD WINAPI
RtlSystemTimeToLocalTime(DWORD x1
,DWORD x2
);
344 DWORD WINAPI
RtlTimeToTimeFields(DWORD x1
,DWORD x2
);
345 DWORD WINAPI
RtlSetEnvironmentVariable(DWORD x1
,PUNICODE_STRING key
,PUNICODE_STRING val
);
346 DWORD WINAPI
RtlNewSecurityObject(DWORD x1
,DWORD x2
,DWORD x3
,DWORD x4
,DWORD x5
,DWORD x6
);
347 DWORD WINAPI
RtlDeleteSecurityObject(DWORD x1
);
348 BOOLEAN WINAPI
RtlTimeToSecondsSince1980(LPFILETIME ft
,LPDWORD timeret
);
349 BOOLEAN WINAPI
RtlTimeToSecondsSince1970(LPFILETIME ft
,LPDWORD timeret
);
350 LPVOID WINAPI
RtlNormalizeProcessParams(LPVOID x
);
351 DWORD WINAPI
RtlNtStatusToDosError(DWORD error
);
352 BOOLEAN WINAPI
RtlGetNtProductType(LPDWORD type
);
353 DWORD WINAPI
RtlTimeToElapsedTimeFields( DWORD x1
, DWORD x2
);
354 INT WINAPI
RtlExtendedLargeIntegerDivide(LARGE_INTEGER dividend
, DWORD divisor
, LPDWORD rest
);
355 LARGE_INTEGER WINAPI
RtlExtendedIntegerMultiply(LARGE_INTEGER factor1
,INT factor2
);
356 DWORD WINAPI
RtlFormatCurrentUserKeyPath(DWORD x
);
357 DWORD WINAPI
RtlOpenCurrentUser(DWORD x1
, DWORD
*x2
);
358 BOOLEAN WINAPI
RtlDosPathNameToNtPathName_U( LPWSTR from
,PUNICODE_STRING us
,DWORD x2
,DWORD x3
);
359 DWORD WINAPI
RtlCreateEnvironment(DWORD x1
,DWORD x2
);
360 DWORD WINAPI
RtlDestroyEnvironment(DWORD x
);
361 DWORD WINAPI
RtlQueryEnvironmentVariable_U(DWORD x1
,PUNICODE_STRING key
,PUNICODE_STRING val
) ;