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) ;