source: trunk/include/win/ntddk.h@ 1890

Last change on this file since 1890 was 1890, checked in by sandervl, 26 years ago

Wine header updates

File size: 16.0 KB
Line 
1/* $Id: ntddk.h,v 1.3 1999-11-30 19:38:23 sandervl Exp $ */
2/*
3 this file defines interfaces mainly exposed to device drivers and
4 native nt dll's
5
6*/
7#ifndef __WINE_NTDDK_H
8#define __WINE_NTDDK_H
9
10#include "ntdef.h"
11#include "winnt.h"
12#include "winbase.h" /* fixme: should be taken out sometimes */
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18/******************
19 * asynchronous I/O
20 */
21#undef Status /* conflict with X11-includes*/
22
23typedef struct _IO_STATUS_BLOCK
24{
25 union {
26 NTSTATUS Status;
27 PVOID Pointer;
28 } DUMMYUNIONNAME;
29 ULONG_PTR Information;
30} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
31
32typedef VOID (NTAPI *PIO_APC_ROUTINE) ( PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved );
33
34typedef enum _KEY_INFORMATION_CLASS {
35 KeyBasicInformation,
36 KeyNodeInformation,
37 KeyFullInformation
38} KEY_INFORMATION_CLASS;
39
40typedef enum _KEY_VALUE_INFORMATION_CLASS {
41 KeyValueBasicInformation,
42 KeyValueFullInformation,
43 KeyValuePartialInformation,
44 KeyValueFullInformationAlign64,
45 KeyValuePartialInformationAlign64
46} KEY_VALUE_INFORMATION_CLASS;
47
48typedef enum _THREADINFOCLASS
49{ ThreadBasicInformation,
50 ThreadTimes,
51 ThreadPriority,
52 ThreadBasePriority,
53 ThreadAffinityMask,
54 ThreadImpersonationToken,
55 ThreadDescriptorTableEntry,
56 ThreadEnableAlignmentFaultFixup,
57 ThreadEventPair_Reusable,
58 ThreadQuerySetWin32StartAddress,
59 ThreadZeroTlsCell,
60 ThreadPerformanceCount,
61 ThreadAmILastThread,
62 ThreadIdealProcessor,
63 ThreadPriorityBoost,
64 ThreadSetTlsArrayAddress,
65 ThreadIsIoPending,
66 MaxThreadInfoClass
67} THREADINFOCLASS;
68
69typedef enum _FILE_INFORMATION_CLASS {
70 FileDirectoryInformation = 1,
71 FileFullDirectoryInformation,
72 FileBothDirectoryInformation,
73 FileBasicInformation,
74 FileStandardInformation,
75 FileInternalInformation,
76 FileEaInformation,
77 FileAccessInformation,
78 FileNameInformation,
79 FileRenameInformation,
80 FileLinkInformation,
81 FileNamesInformation,
82 FileDispositionInformation,
83 FilePositionInformation,
84 FileFullEaInformation,
85 FileModeInformation,
86 FileAlignmentInformation,
87 FileAllInformation,
88 FileAllocationInformation,
89 FileEndOfFileInformation,
90 FileAlternateNameInformation,
91 FileStreamInformation,
92 FilePipeInformation,
93 FilePipeLocalInformation,
94 FilePipeRemoteInformation,
95 FileMailslotQueryInformation,
96 FileMailslotSetInformation,
97 FileCompressionInformation,
98 FileObjectIdInformation,
99 FileCompletionInformation,
100 FileMoveClusterInformation,
101 FileQuotaInformation,
102 FileReparsePointInformation,
103 FileNetworkOpenInformation,
104 FileAttributeTagInformation,
105 FileTrackingInformation,
106 FileMaximumInformation
107} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
108
109typedef enum _FSINFOCLASS {
110 FileFsVolumeInformation = 1,
111 FileFsLabelInformation,
112 FileFsSizeInformation,
113 FileFsDeviceInformation,
114 FileFsAttributeInformation,
115 FileFsControlInformation,
116 FileFsFullSizeInformation,
117 FileFsObjectIdInformation,
118 FileFsMaximumInformation
119} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
120
121typedef enum _SECTION_INHERIT
122{
123 ViewShare = 1,
124 ViewUnmap = 2
125
126} SECTION_INHERIT;
127
128/*
129 placeholder
130*/
131typedef enum _OBJECT_INFORMATION_CLASS
132{
133 DunnoTheConstants1
134
135} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS;
136
137
138/*
139 * NtQuerySystemInformation
140 */
141
142typedef enum SYSTEM_INFORMATION_CLASS
143{ Unknown1 = 1,
144 Unknown2,
145 Unknown3,
146 Unknown4,
147 SystemPerformanceInformation
148} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
149
150/* reading coffee grounds... */
151typedef struct _THREAD_INFO
152{ DWORD Unknown1[6];
153 DWORD ThreadID;
154 DWORD Unknown2[3];
155 DWORD Status;
156 DWORD WaitReason;
157 DWORD Unknown3[4];
158} THREAD_INFO, PTHREAD_INFO;
159
160typedef struct _VM_COUNTERS_
161{ ULONG PeakVirtualSize;
162 ULONG VirtualSize;
163 ULONG PageFaultCount;
164 ULONG PeakWorkingSetSize;
165 ULONG WorkingSetSize;
166 ULONG QuotaPeakPagedPoolUsage;
167 ULONG QuotaPagedPoolUsage;
168 ULONG QuotaPeakNonPagedPoolUsage;
169 ULONG QuotaNonPagedPoolUsage;
170 ULONG PagefileUsage;
171 ULONG PeakPagefileUsage;
172} VM_COUNTERS, *PVM_COUNTERS;
173
174typedef struct _PROCESS_INFO
175{ DWORD Offset; /* 00 offset to next PROCESS_INFO ok*/
176 DWORD ThreadCount; /* 04 number of ThreadInfo member ok */
177 DWORD Unknown1[6];
178 FILETIME CreationTime; /* 20 */
179 DWORD Unknown2[5];
180 PWCHAR ProcessName; /* 3c ok */
181 DWORD BasePriority;
182 DWORD ProcessID; /* 44 ok*/
183 DWORD ParentProcessID;
184 DWORD HandleCount;
185 DWORD Unknown3[2]; /* 50 */
186 ULONG PeakVirtualSize;
187 ULONG VirtualSize;
188 ULONG PageFaultCount;
189 ULONG PeakWorkingSetSize;
190 ULONG WorkingSetSize;
191 ULONG QuotaPeakPagedPoolUsage;
192 ULONG QuotaPagedPoolUsage;
193 ULONG QuotaPeakNonPagedPoolUsage;
194 ULONG QuotaNonPagedPoolUsage;
195 ULONG PagefileUsage;
196 ULONG PeakPagefileUsage;
197 DWORD PrivateBytes;
198 DWORD Unknown6[4];
199 THREAD_INFO ati[ANYSIZE_ARRAY]; /* 94 size=0x40*/
200} PROCESS_INFO, PPROCESS_INFO;
201
202NTSTATUS WINAPI NtQuerySystemInformation(
203 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
204 OUT PVOID SystemInformation,
205 IN ULONG Length,
206 OUT PULONG ResultLength);
207
208/*
209 * system configuration
210 */
211
212
213typedef struct _SYSTEM_TIME_ADJUSTMENT
214{
215 ULONG TimeAdjustment;
216 BOOLEAN TimeAdjustmentDisabled;
217
218} SYSTEM_TIME_ADJUSTMENT, *PSYSTEM_TIME_ADJUSTMENT;
219
220typedef struct _SYSTEM_CONFIGURATION_INFO
221{
222 union
223 { ULONG OemId;
224 struct
225 { WORD ProcessorArchitecture;
226 WORD Reserved;
227 } tag1;
228 } tag2;
229 ULONG PageSize;
230 PVOID MinimumApplicationAddress;
231 PVOID MaximumApplicationAddress;
232 ULONG ActiveProcessorMask;
233 ULONG NumberOfProcessors;
234 ULONG ProcessorType;
235 ULONG AllocationGranularity;
236 WORD ProcessorLevel;
237 WORD ProcessorRevision;
238
239} SYSTEM_CONFIGURATION_INFO, *PSYSTEM_CONFIGURATION_INFO;
240
241
242typedef struct _SYSTEM_CACHE_INFORMATION
243{
244 ULONG CurrentSize;
245 ULONG PeakSize;
246 ULONG PageFaultCount;
247 ULONG MinimumWorkingSet;
248 ULONG MaximumWorkingSet;
249 ULONG Unused[4];
250
251} SYSTEM_CACHE_INFORMATION;
252
253/*
254 * NtQueryProcessInformation
255 */
256
257/* parameter ProcessInformationClass */
258
259typedef enum _PROCESSINFOCLASS
260{ ProcessBasicInformation,
261 ProcessQuotaLimits,
262 ProcessIoCounters,
263 ProcessVmCounters,
264 ProcessTimes,
265 ProcessBasePriority,
266 ProcessRaisePriority,
267 ProcessDebugPort,
268 ProcessExceptionPort,
269 ProcessAccessToken,
270 ProcessLdtInformation,
271 ProcessLdtSize,
272 ProcessDefaultHardErrorMode,
273 ProcessIoPortHandlers,
274 ProcessPooledUsageAndLimits,
275 ProcessWorkingSetWatch,
276 ProcessUserModeIOPL,
277 ProcessEnableAlignmentFaultFixup,
278 ProcessPriorityClass,
279 ProcessWx86Information,
280 ProcessHandleCount,
281 ProcessAffinityMask,
282 ProcessPriorityBoost,
283 ProcessDeviceMap,
284 ProcessSessionInformation,
285 ProcessForegroundInformation,
286 ProcessWow64Information,
287 MaxProcessInfoClass
288} PROCESSINFOCLASS;
289
290/* parameter ProcessInformation (depending on ProcessInformationClass) */
291
292typedef struct _PROCESS_BASIC_INFORMATION
293{ DWORD ExitStatus;
294 DWORD PebBaseAddress;
295 DWORD AffinityMask;
296 DWORD BasePriority;
297 ULONG UniqueProcessId;
298 ULONG InheritedFromUniqueProcessId;
299} PROCESS_BASIC_INFORMATION;
300
301NTSTATUS WINAPI NtQueryInformationProcess(
302 IN HANDLE ProcessHandle,
303 IN PROCESSINFOCLASS ProcessInformationClass,
304 OUT PVOID ProcessInformation,
305 IN ULONG ProcessInformationLength,
306 OUT PULONG ReturnLength);
307
308#define NtCurrentProcess() ( (HANDLE) -1 )
309
310/*
311 * timer
312 */
313
314typedef enum _TIMER_TYPE
315{
316 NotificationTimer,
317 SynchronizationTimer
318
319} TIMER_TYPE;
320
321/*
322 * token functions
323 */
324
325NTSTATUS WINAPI NtOpenProcessToken(
326 HANDLE ProcessHandle,
327 DWORD DesiredAccess,
328 HANDLE *TokenHandle);
329
330NTSTATUS WINAPI NtOpenThreadToken(
331 HANDLE ThreadHandle,
332 DWORD DesiredAccess,
333 BOOLEAN OpenAsSelf,
334 HANDLE *TokenHandle);
335
336NTSTATUS WINAPI NtAdjustPrivilegesToken(
337 IN HANDLE TokenHandle,
338 IN BOOLEAN DisableAllPrivileges,
339 IN PTOKEN_PRIVILEGES NewState,
340 IN DWORD BufferLength,
341 OUT PTOKEN_PRIVILEGES PreviousState,
342 OUT PDWORD ReturnLength);
343
344NTSTATUS WINAPI NtQueryInformationToken(
345 HANDLE token,
346 DWORD tokeninfoclass,
347 LPVOID tokeninfo,
348 DWORD tokeninfolength,
349 LPDWORD retlen );
350
351/*
352 * sid functions
353 */
354
355BOOLEAN WINAPI RtlAllocateAndInitializeSid (
356 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
357 DWORD nSubAuthorityCount,
358 DWORD x3,
359 DWORD x4,
360 DWORD x5,
361 DWORD x6,
362 DWORD x7,
363 DWORD x8,
364 DWORD x9,
365 DWORD x10,
366 PSID pSid);
367
368DWORD WINAPI RtlEqualSid(DWORD x1,DWORD x2);
369DWORD WINAPI RtlFreeSid(DWORD x1);
370DWORD WINAPI RtlLengthRequiredSid(DWORD nrofsubauths);
371DWORD WINAPI RtlLengthSid(PSID sid);
372DWORD WINAPI RtlInitializeSid(PSID PSID,PSID_IDENTIFIER_AUTHORITY PSIDauth, DWORD c);
373LPDWORD WINAPI RtlSubAuthoritySid(PSID PSID,DWORD nr);
374LPBYTE WINAPI RtlSubAuthorityCountSid(PSID PSID);
375DWORD WINAPI RtlCopySid(DWORD len,PSID to,PSID from);
376
377/*
378 * security descriptor functions
379 */
380
381NTSTATUS WINAPI RtlCreateSecurityDescriptor(
382 PSECURITY_DESCRIPTOR lpsd,
383 DWORD rev);
384
385NTSTATUS WINAPI RtlValidSecurityDescriptor(
386 PSECURITY_DESCRIPTOR SecurityDescriptor);
387
388ULONG WINAPI RtlLengthSecurityDescriptor(
389 PSECURITY_DESCRIPTOR SecurityDescriptor);
390
391NTSTATUS WINAPI RtlGetDaclSecurityDescriptor(
392 IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
393 OUT PBOOLEAN lpbDaclPresent,
394 OUT PACL *pDacl,
395 OUT PBOOLEAN lpbDaclDefaulted);
396
397NTSTATUS WINAPI RtlSetDaclSecurityDescriptor (
398 PSECURITY_DESCRIPTOR lpsd,
399 BOOLEAN daclpresent,
400 PACL dacl,
401 BOOLEAN dacldefaulted );
402
403NTSTATUS WINAPI RtlGetSaclSecurityDescriptor(
404 IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
405 OUT PBOOLEAN lpbSaclPresent,
406 OUT PACL *pSacl,
407 OUT PBOOLEAN lpbSaclDefaulted);
408
409NTSTATUS WINAPI RtlSetSaclSecurityDescriptor (
410 PSECURITY_DESCRIPTOR lpsd,
411 BOOLEAN saclpresent,
412 PACL sacl,
413 BOOLEAN sacldefaulted);
414
415NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor(
416 PSECURITY_DESCRIPTOR SecurityDescriptor,
417 PSID *Owner,
418 PBOOLEAN OwnerDefaulted);
419
420NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(
421 PSECURITY_DESCRIPTOR lpsd,
422 PSID owner,
423 BOOLEAN ownerdefaulted);
424
425NTSTATUS WINAPI RtlSetGroupSecurityDescriptor (
426 PSECURITY_DESCRIPTOR lpsd,
427 PSID group,
428 BOOLEAN groupdefaulted);
429
430NTSTATUS WINAPI RtlGetGroupSecurityDescriptor(
431 PSECURITY_DESCRIPTOR SecurityDescriptor,
432 PSID *Group,
433 PBOOLEAN GroupDefaulted);
434
435/* ##############################
436 ###### ACL FUNCTIONS ######
437 ##############################
438*/
439
440DWORD WINAPI RtlCreateAcl(PACL acl,DWORD size,DWORD rev);
441
442BOOLEAN WINAPI RtlFirstFreeAce(
443 PACL acl,
444 PACE_HEADER *x);
445
446NTSTATUS WINAPI RtlAddAce(
447 PACL acl,
448 DWORD rev,
449 DWORD xnrofaces,
450 PACE_HEADER acestart,
451 DWORD acelen);
452
453DWORD WINAPI RtlAddAccessAllowedAce(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
454DWORD WINAPI RtlGetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce );
455
456/*
457 * string functions
458 */
459
460DWORD WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING uni,PANSI_STRING ansi,BOOLEAN doalloc);
461DWORD WINAPI RtlOemStringToUnicodeString(PUNICODE_STRING uni,PSTRING ansi,BOOLEAN doalloc);
462DWORD WINAPI RtlMultiByteToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen);
463DWORD WINAPI RtlOemToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen);
464VOID WINAPI RtlInitAnsiString(PANSI_STRING target,LPCSTR source);
465VOID WINAPI RtlInitString(PSTRING target,LPCSTR source);
466VOID WINAPI RtlInitUnicodeString(PUNICODE_STRING target,LPCWSTR source);
467VOID WINAPI RtlFreeUnicodeString(PUNICODE_STRING str);
468VOID WINAPI RtlFreeAnsiString(PANSI_STRING AnsiString);
469DWORD WINAPI RtlUnicodeToOemN(LPSTR oemstr,DWORD oemlen,LPDWORD reslen,LPWSTR unistr,DWORD unilen);
470DWORD WINAPI RtlUnicodeStringToOemString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc);
471DWORD WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc);
472DWORD WINAPI RtlEqualUnicodeString(PUNICODE_STRING s1,PUNICODE_STRING s2,DWORD x);
473DWORD WINAPI RtlUpcaseUnicodeString(PUNICODE_STRING dest,PUNICODE_STRING src,BOOLEAN doalloc);
474UINT WINAPI RtlxOemStringToUnicodeSize(PSTRING str);
475UINT WINAPI RtlxAnsiStringToUnicodeSize(PANSI_STRING str);
476DWORD WINAPI RtlIsTextUnicode(LPVOID buf, DWORD len, DWORD *pf);
477NTSTATUS WINAPI RtlCompareUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive);
478
479/*
480 * resource functions
481 */
482
483typedef struct _RTL_RWLOCK {
484 CRITICAL_SECTION rtlCS;
485 HANDLE hSharedReleaseSemaphore;
486 UINT uSharedWaiters;
487 HANDLE hExclusiveReleaseSemaphore;
488 UINT uExclusiveWaiters;
489 INT iNumberActive;
490 HANDLE hOwningThreadId;
491 DWORD dwTimeoutBoost;
492 PVOID pDebugInfo;
493} RTL_RWLOCK, *LPRTL_RWLOCK;
494
495VOID WINAPI RtlInitializeResource(
496 LPRTL_RWLOCK);
497
498VOID WINAPI RtlDeleteResource(
499 LPRTL_RWLOCK);
500
501BYTE WINAPI RtlAcquireResourceExclusive(
502 LPRTL_RWLOCK, BYTE fWait);
503
504BYTE WINAPI RtlAcquireResourceShared(
505 LPRTL_RWLOCK, BYTE fWait);
506
507VOID WINAPI RtlReleaseResource(
508 LPRTL_RWLOCK);
509
510VOID WINAPI RtlDumpResource(
511 LPRTL_RWLOCK);
512
513/*
514 time functions
515 */
516
517typedef struct _TIME_FIELDS
518{ CSHORT Year;
519 CSHORT Month;
520 CSHORT Day;
521 CSHORT Hour;
522 CSHORT Minute;
523 CSHORT Second;
524 CSHORT Milliseconds;
525 CSHORT Weekday;
526} TIME_FIELDS;
527
528typedef TIME_FIELDS *PTIME_FIELDS;
529
530VOID WINAPI RtlSystemTimeToLocalTime(
531 IN PLARGE_INTEGER SystemTime,
532 OUT PLARGE_INTEGER LocalTime);
533
534VOID WINAPI RtlTimeToTimeFields(
535 PLARGE_INTEGER liTime,
536 PTIME_FIELDS TimeFields);
537
538BOOLEAN WINAPI RtlTimeFieldsToTime(
539 PTIME_FIELDS tfTimeFields,
540 PLARGE_INTEGER Time);
541
542VOID WINAPI RtlTimeToElapsedTimeFields(
543 PLARGE_INTEGER liTime,
544 PTIME_FIELDS TimeFields);
545
546BOOLEAN WINAPI RtlTimeToSecondsSince1980(
547 LPFILETIME ft,
548 LPDWORD timeret);
549
550BOOLEAN WINAPI RtlTimeToSecondsSince1970(
551 LPFILETIME ft,
552 LPDWORD timeret);
553
554/*
555 heap functions
556*/
557
558/* Data structure for heap definition. This includes various
559 sizing parameters and callback routines, which, if left NULL,
560 result in default behavior */
561
562typedef struct
563{ ULONG Length; /* = sizeof(RTL_HEAP_DEFINITION) */
564 ULONG Unknown[11];
565} RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
566
567HANDLE WINAPI RtlCreateHeap(
568 ULONG Flags,
569 PVOID BaseAddress,
570 ULONG SizeToReserve,
571 ULONG SizeToCommit,
572 PVOID Unknown,
573 PRTL_HEAP_DEFINITION Definition);
574
575PVOID WINAPI RtlAllocateHeap(
576 HANDLE Heap,
577 ULONG Flags,
578 ULONG Size);
579
580
581BOOLEAN WINAPI RtlFreeHeap(
582 HANDLE Heap,
583 ULONG Flags,
584 PVOID Address);
585
586/*
587 * misc
588 */
589void WINAPIV DbgPrint(LPCSTR fmt, ...);
590void WINAPI NtRaiseException(PEXCEPTION_RECORD,PCONTEXT,BOOL);
591void WINAPI RtlRaiseException(PEXCEPTION_RECORD);
592void WINAPI RtlRaiseStatus(NTSTATUS);
593void WINAPI RtlUnwind(PEXCEPTION_FRAME,LPVOID,PEXCEPTION_RECORD,DWORD);
594VOID WINAPI RtlAcquirePebLock(void);
595VOID WINAPI RtlReleasePebLock(void);
596DWORD WINAPI RtlAdjustPrivilege(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
597DWORD WINAPI RtlIntegerToChar(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
598DWORD WINAPI RtlSetEnvironmentVariable(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val);
599DWORD WINAPI RtlNewSecurityObject(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6);
600DWORD WINAPI RtlDeleteSecurityObject(DWORD x1);
601LPVOID WINAPI RtlNormalizeProcessParams(LPVOID x);
602DWORD WINAPI RtlNtStatusToDosError(DWORD error);
603BOOLEAN WINAPI RtlGetNtProductType(LPDWORD type);
604INT WINAPI RtlExtendedLargeIntegerDivide(LARGE_INTEGER dividend, DWORD divisor, LPDWORD rest);
605LARGE_INTEGER WINAPI RtlExtendedIntegerMultiply(LARGE_INTEGER factor1,INT factor2);
606DWORD WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING String);
607DWORD WINAPI RtlOpenCurrentUser(DWORD x1, DWORD *x2);
608BOOLEAN WINAPI RtlDosPathNameToNtPathName_U( LPWSTR from,PUNICODE_STRING us,DWORD x2,DWORD x3);
609DWORD WINAPI RtlCreateEnvironment(DWORD x1,DWORD x2);
610DWORD WINAPI RtlDestroyEnvironment(DWORD x);
611DWORD WINAPI RtlQueryEnvironmentVariable_U(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val) ;
612
613BOOL WINAPI IsValidSid(PSID);
614BOOL WINAPI EqualSid(PSID,PSID);
615BOOL WINAPI EqualPrefixSid(PSID,PSID);
616DWORD WINAPI GetSidLengthRequired(BYTE);
617BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,
618 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,
619 DWORD,PSID*);
620VOID* WINAPI FreeSid(PSID);
621BOOL WINAPI InitializeSecurityDescriptor(SECURITY_DESCRIPTOR*,DWORD);
622BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
623DWORD* WINAPI GetSidSubAuthority(PSID,DWORD);
624BYTE * WINAPI GetSidSubAuthorityCount(PSID);
625DWORD WINAPI GetLengthSid(PSID);
626BOOL WINAPI CopySid(DWORD,PSID,PSID);
627BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPCSTR,LPDWORD,LPCSTR,LPDWORD,
628 PSID_NAME_USE);
629BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPCWSTR,LPDWORD,LPCWSTR,LPDWORD,
630 PSID_NAME_USE);
631PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
632
633#ifdef __cplusplus
634}
635#endif
636
637#endif
Note: See TracBrowser for help on using the repository browser.