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

Last change on this file since 1036 was 31, checked in by phaller, 26 years ago

Fix: few more header fixes

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