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

Last change on this file since 4 was 4, checked in by ktk, 26 years ago

Import

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