| /* |
| this file defines interfaces mainly exposed to device drivers and |
| native nt dll's |
| |
| */ |
| #ifndef __WINE_NTDDK_H |
| #define __WINE_NTDDK_H |
| |
| #include <ntdef.h> |
| #include <winnt.h> |
| #include "winbase.h" /* fixme: should be taken out sometimes */ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /****************** |
| * asynchronous I/O |
| */ |
| #undef Status /* conflict with X11-includes*/ |
| |
| typedef struct _IO_STATUS_BLOCK |
| { union |
| { NTSTATUS Status; |
| PVOID Pointer; |
| } u; |
| ULONG_PTR Information; |
| } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; |
| |
| typedef VOID (NTAPI *PIO_APC_ROUTINE) ( PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved ); |
| |
| typedef enum _KEY_INFORMATION_CLASS { |
| KeyBasicInformation, |
| KeyNodeInformation, |
| KeyFullInformation |
| } KEY_INFORMATION_CLASS; |
| |
| typedef enum _KEY_VALUE_INFORMATION_CLASS { |
| KeyValueBasicInformation, |
| KeyValueFullInformation, |
| KeyValuePartialInformation, |
| KeyValueFullInformationAlign64, |
| KeyValuePartialInformationAlign64 |
| } KEY_VALUE_INFORMATION_CLASS; |
| |
| typedef enum _THREADINFOCLASS |
| { ThreadBasicInformation, |
| ThreadTimes, |
| ThreadPriority, |
| ThreadBasePriority, |
| ThreadAffinityMask, |
| ThreadImpersonationToken, |
| ThreadDescriptorTableEntry, |
| ThreadEnableAlignmentFaultFixup, |
| ThreadEventPair_Reusable, |
| ThreadQuerySetWin32StartAddress, |
| ThreadZeroTlsCell, |
| ThreadPerformanceCount, |
| ThreadAmILastThread, |
| ThreadIdealProcessor, |
| ThreadPriorityBoost, |
| ThreadSetTlsArrayAddress, |
| ThreadIsIoPending, |
| MaxThreadInfoClass |
| } THREADINFOCLASS; |
| |
| typedef enum _FILE_INFORMATION_CLASS { |
| FileDirectoryInformation = 1, |
| FileFullDirectoryInformation, |
| FileBothDirectoryInformation, |
| FileBasicInformation, |
| FileStandardInformation, |
| FileInternalInformation, |
| FileEaInformation, |
| FileAccessInformation, |
| FileNameInformation, |
| FileRenameInformation, |
| FileLinkInformation, |
| FileNamesInformation, |
| FileDispositionInformation, |
| FilePositionInformation, |
| FileFullEaInformation, |
| FileModeInformation, |
| FileAlignmentInformation, |
| FileAllInformation, |
| FileAllocationInformation, |
| FileEndOfFileInformation, |
| FileAlternateNameInformation, |
| FileStreamInformation, |
| FilePipeInformation, |
| FilePipeLocalInformation, |
| FilePipeRemoteInformation, |
| FileMailslotQueryInformation, |
| FileMailslotSetInformation, |
| FileCompressionInformation, |
| FileObjectIdInformation, |
| FileCompletionInformation, |
| FileMoveClusterInformation, |
| FileQuotaInformation, |
| FileReparsePointInformation, |
| FileNetworkOpenInformation, |
| FileAttributeTagInformation, |
| FileTrackingInformation, |
| FileMaximumInformation |
| } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; |
| |
| typedef enum _SECTION_INHERIT |
| { |
| ViewShare = 1, |
| ViewUnmap = 2 |
| |
| } SECTION_INHERIT; |
| |
| /* |
| placeholder |
| */ |
| typedef enum _OBJECT_INFORMATION_CLASS |
| { |
| DunnoTheConstants1 |
| |
| } OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS; |
| |
| |
| /* |
| * NtQuerySystemInformation |
| */ |
| |
| typedef enum SYSTEM_INFORMATION_CLASS |
| { Unknown1 = 1, |
| Unknown2, |
| Unknown3, |
| Unknown4, |
| SystemPerformanceInformation |
| } SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS; |
| |
| /* reading coffee grounds... */ |
| typedef struct _THREAD_INFO |
| { DWORD Unknown1[6]; |
| DWORD ThreadID; |
| DWORD Unknown2[3]; |
| DWORD Status; |
| DWORD WaitReason; |
| DWORD Unknown3[4]; |
| } THREAD_INFO, PTHREAD_INFO; |
| |
| typedef struct _VM_COUNTERS_ |
| { ULONG PeakVirtualSize; |
| ULONG VirtualSize; |
| ULONG PageFaultCount; |
| ULONG PeakWorkingSetSize; |
| ULONG WorkingSetSize; |
| ULONG QuotaPeakPagedPoolUsage; |
| ULONG QuotaPagedPoolUsage; |
| ULONG QuotaPeakNonPagedPoolUsage; |
| ULONG QuotaNonPagedPoolUsage; |
| ULONG PagefileUsage; |
| ULONG PeakPagefileUsage; |
| } VM_COUNTERS, *PVM_COUNTERS; |
| |
| typedef struct _PROCESS_INFO |
| { DWORD Offset; /* 00 offset to next PROCESS_INFO ok*/ |
| DWORD ThreadCount; /* 04 number of ThreadInfo member ok */ |
| DWORD Unknown1[6]; |
| FILETIME CreationTime; /* 20 */ |
| DWORD Unknown2[5]; |
| PWCHAR ProcessName; /* 3c ok */ |
| DWORD BasePriority; |
| DWORD ProcessID; /* 44 ok*/ |
| DWORD ParentProcessID; |
| DWORD HandleCount; |
| DWORD Unknown3[2]; /* 50 */ |
| ULONG PeakVirtualSize; |
| ULONG VirtualSize; |
| ULONG PageFaultCount; |
| ULONG PeakWorkingSetSize; |
| ULONG WorkingSetSize; |
| ULONG QuotaPeakPagedPoolUsage; |
| ULONG QuotaPagedPoolUsage; |
| ULONG QuotaPeakNonPagedPoolUsage; |
| ULONG QuotaNonPagedPoolUsage; |
| ULONG PagefileUsage; |
| ULONG PeakPagefileUsage; |
| DWORD PrivateBytes; |
| DWORD Unknown6[4]; |
| THREAD_INFO ati[ANYSIZE_ARRAY]; /* 94 size=0x40*/ |
| } PROCESS_INFO, PPROCESS_INFO; |
| |
| NTSTATUS WINAPI NtQuerySystemInformation( |
| IN SYSTEM_INFORMATION_CLASS SystemInformationClass, |
| OUT PVOID SystemInformation, |
| IN ULONG Length, |
| OUT PULONG ResultLength); |
| |
| /* |
| * system configuration |
| */ |
| |
| |
| typedef struct _SYSTEM_TIME_ADJUSTMENT |
| { |
| ULONG TimeAdjustment; |
| BOOLEAN TimeAdjustmentDisabled; |
| |
| } SYSTEM_TIME_ADJUSTMENT, *PSYSTEM_TIME_ADJUSTMENT; |
| |
| typedef struct _SYSTEM_CONFIGURATION_INFO |
| { |
| union |
| { ULONG OemId; |
| struct |
| { WORD ProcessorArchitecture; |
| WORD Reserved; |
| } tag1; |
| } tag2; |
| ULONG PageSize; |
| PVOID MinimumApplicationAddress; |
| PVOID MaximumApplicationAddress; |
| ULONG ActiveProcessorMask; |
| ULONG NumberOfProcessors; |
| ULONG ProcessorType; |
| ULONG AllocationGranularity; |
| WORD ProcessorLevel; |
| WORD ProcessorRevision; |
| |
| } SYSTEM_CONFIGURATION_INFO, *PSYSTEM_CONFIGURATION_INFO; |
| |
| |
| typedef struct _SYSTEM_CACHE_INFORMATION |
| { |
| ULONG CurrentSize; |
| ULONG PeakSize; |
| ULONG PageFaultCount; |
| ULONG MinimumWorkingSet; |
| ULONG MaximumWorkingSet; |
| ULONG Unused[4]; |
| |
| } SYSTEM_CACHE_INFORMATION; |
| |
| /* |
| * NtQueryProcessInformation |
| */ |
| |
| /* parameter ProcessInformationClass */ |
| |
| typedef enum _PROCESSINFOCLASS |
| { ProcessBasicInformation, |
| ProcessQuotaLimits, |
| ProcessIoCounters, |
| ProcessVmCounters, |
| ProcessTimes, |
| ProcessBasePriority, |
| ProcessRaisePriority, |
| ProcessDebugPort, |
| ProcessExceptionPort, |
| ProcessAccessToken, |
| ProcessLdtInformation, |
| ProcessLdtSize, |
| ProcessDefaultHardErrorMode, |
| ProcessIoPortHandlers, |
| ProcessPooledUsageAndLimits, |
| ProcessWorkingSetWatch, |
| ProcessUserModeIOPL, |
| ProcessEnableAlignmentFaultFixup, |
| ProcessPriorityClass, |
| ProcessWx86Information, |
| ProcessHandleCount, |
| ProcessAffinityMask, |
| ProcessPriorityBoost, |
| ProcessDeviceMap, |
| ProcessSessionInformation, |
| ProcessForegroundInformation, |
| ProcessWow64Information, |
| MaxProcessInfoClass |
| } PROCESSINFOCLASS; |
| |
| /* parameter ProcessInformation (depending on ProcessInformationClass) */ |
| |
| typedef struct _PROCESS_BASIC_INFORMATION |
| { DWORD ExitStatus; |
| DWORD PebBaseAddress; |
| DWORD AffinityMask; |
| DWORD BasePriority; |
| ULONG UniqueProcessId; |
| ULONG InheritedFromUniqueProcessId; |
| } PROCESS_BASIC_INFORMATION; |
| |
| NTSTATUS WINAPI NtQueryInformationProcess( |
| IN HANDLE ProcessHandle, |
| IN PROCESSINFOCLASS ProcessInformationClass, |
| OUT PVOID ProcessInformation, |
| IN ULONG ProcessInformationLength, |
| OUT PULONG ReturnLength); |
| |
| #define NtCurrentProcess() ( (HANDLE) -1 ) |
| |
| /* |
| * timer |
| */ |
| |
| typedef enum _TIMER_TYPE |
| { |
| NotificationTimer, |
| SynchronizationTimer |
| |
| } TIMER_TYPE; |
| |
| /* |
| * token functions |
| */ |
| |
| NTSTATUS WINAPI NtOpenProcessToken( |
| HANDLE ProcessHandle, |
| DWORD DesiredAccess, |
| HANDLE *TokenHandle); |
| |
| NTSTATUS WINAPI NtOpenThreadToken( |
| HANDLE ThreadHandle, |
| DWORD DesiredAccess, |
| BOOLEAN OpenAsSelf, |
| HANDLE *TokenHandle); |
| |
| NTSTATUS WINAPI NtAdjustPrivilegesToken( |
| IN HANDLE TokenHandle, |
| IN BOOLEAN DisableAllPrivileges, |
| IN PTOKEN_PRIVILEGES NewState, |
| IN DWORD BufferLength, |
| OUT PTOKEN_PRIVILEGES PreviousState, |
| OUT PDWORD ReturnLength); |
| |
| NTSTATUS WINAPI NtQueryInformationToken( |
| HANDLE token, |
| DWORD tokeninfoclass, |
| LPVOID tokeninfo, |
| DWORD tokeninfolength, |
| LPDWORD retlen ); |
| |
| /* |
| * sid functions |
| */ |
| |
| BOOLEAN WINAPI RtlAllocateAndInitializeSid ( |
| PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, |
| DWORD nSubAuthorityCount, |
| DWORD x3, |
| DWORD x4, |
| DWORD x5, |
| DWORD x6, |
| DWORD x7, |
| DWORD x8, |
| DWORD x9, |
| DWORD x10, |
| PSID pSid); |
| |
| DWORD WINAPI RtlEqualSid(DWORD x1,DWORD x2); |
| DWORD WINAPI RtlFreeSid(DWORD x1); |
| DWORD WINAPI RtlLengthRequiredSid(DWORD nrofsubauths); |
| DWORD WINAPI RtlLengthSid(PSID sid); |
| DWORD WINAPI RtlInitializeSid(PSID PSID,PSID_IDENTIFIER_AUTHORITY PSIDauth, DWORD c); |
| LPDWORD WINAPI RtlSubAuthoritySid(PSID PSID,DWORD nr); |
| LPBYTE WINAPI RtlSubAuthorityCountSid(PSID PSID); |
| DWORD WINAPI RtlCopySid(DWORD len,PSID to,PSID from); |
| |
| /* |
| * security descriptor functions |
| */ |
| |
| NTSTATUS WINAPI RtlCreateSecurityDescriptor( |
| PSECURITY_DESCRIPTOR lpsd, |
| DWORD rev); |
| |
| NTSTATUS WINAPI RtlValidSecurityDescriptor( |
| PSECURITY_DESCRIPTOR SecurityDescriptor); |
| |
| ULONG WINAPI RtlLengthSecurityDescriptor( |
| PSECURITY_DESCRIPTOR SecurityDescriptor); |
| |
| NTSTATUS WINAPI RtlGetDaclSecurityDescriptor( |
| IN PSECURITY_DESCRIPTOR pSecurityDescriptor, |
| OUT PBOOLEAN lpbDaclPresent, |
| OUT PACL *pDacl, |
| OUT PBOOLEAN lpbDaclDefaulted); |
| |
| NTSTATUS WINAPI RtlSetDaclSecurityDescriptor ( |
| PSECURITY_DESCRIPTOR lpsd, |
| BOOLEAN daclpresent, |
| PACL dacl, |
| BOOLEAN dacldefaulted ); |
| |
| NTSTATUS WINAPI RtlGetSaclSecurityDescriptor( |
| IN PSECURITY_DESCRIPTOR pSecurityDescriptor, |
| OUT PBOOLEAN lpbSaclPresent, |
| OUT PACL *pSacl, |
| OUT PBOOLEAN lpbSaclDefaulted); |
| |
| NTSTATUS WINAPI RtlSetSaclSecurityDescriptor ( |
| PSECURITY_DESCRIPTOR lpsd, |
| BOOLEAN saclpresent, |
| PACL sacl, |
| BOOLEAN sacldefaulted); |
| |
| NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor( |
| PSECURITY_DESCRIPTOR SecurityDescriptor, |
| PSID *Owner, |
| PBOOLEAN OwnerDefaulted); |
| |
| NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor( |
| PSECURITY_DESCRIPTOR lpsd, |
| PSID owner, |
| BOOLEAN ownerdefaulted); |
| |
| NTSTATUS WINAPI RtlSetGroupSecurityDescriptor ( |
| PSECURITY_DESCRIPTOR lpsd, |
| PSID group, |
| BOOLEAN groupdefaulted); |
| |
| NTSTATUS WINAPI RtlGetGroupSecurityDescriptor( |
| PSECURITY_DESCRIPTOR SecurityDescriptor, |
| PSID *Group, |
| PBOOLEAN GroupDefaulted); |
| |
| /* ############################## |
| ###### ACL FUNCTIONS ###### |
| ############################## |
| */ |
| |
| DWORD WINAPI RtlCreateAcl(PACL acl,DWORD size,DWORD rev); |
| |
| BOOLEAN WINAPI RtlFirstFreeAce( |
| PACL acl, |
| PACE_HEADER *x); |
| |
| NTSTATUS WINAPI RtlAddAce( |
| PACL acl, |
| DWORD rev, |
| DWORD xnrofaces, |
| PACE_HEADER acestart, |
| DWORD acelen); |
| |
| DWORD WINAPI RtlAddAccessAllowedAce(DWORD x1,DWORD x2,DWORD x3,DWORD x4); |
| DWORD WINAPI RtlGetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce ); |
| |
| /* |
| * string functions |
| */ |
| |
| DWORD WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING uni,PANSI_STRING ansi,BOOLEAN doalloc); |
| DWORD WINAPI RtlOemStringToUnicodeString(PUNICODE_STRING uni,PSTRING ansi,BOOLEAN doalloc); |
| DWORD WINAPI RtlMultiByteToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen); |
| DWORD WINAPI RtlOemToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen); |
| VOID WINAPI RtlInitAnsiString(PANSI_STRING target,LPCSTR source); |
| VOID WINAPI RtlInitString(PSTRING target,LPCSTR source); |
| VOID WINAPI RtlInitUnicodeString(PUNICODE_STRING target,LPCWSTR source); |
| VOID WINAPI RtlFreeUnicodeString(PUNICODE_STRING str); |
| VOID WINAPI RtlFreeAnsiString(PANSI_STRING AnsiString); |
| DWORD WINAPI RtlUnicodeToOemN(LPSTR oemstr,DWORD oemlen,LPDWORD reslen,LPWSTR unistr,DWORD unilen); |
| DWORD WINAPI RtlUnicodeStringToOemString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc); |
| DWORD WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc); |
| DWORD WINAPI RtlEqualUnicodeString(PUNICODE_STRING s1,PUNICODE_STRING s2,DWORD x); |
| DWORD WINAPI RtlUpcaseUnicodeString(PUNICODE_STRING dest,PUNICODE_STRING src,BOOLEAN doalloc); |
| UINT WINAPI RtlxOemStringToUnicodeSize(PSTRING str); |
| UINT WINAPI RtlxAnsiStringToUnicodeSize(PANSI_STRING str); |
| DWORD WINAPI RtlIsTextUnicode(LPVOID buf, DWORD len, DWORD *pf); |
| NTSTATUS WINAPI RtlCompareUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive); |
| |
| /* |
| * resource functions |
| */ |
| |
| typedef struct _RTL_RWLOCK { |
| CRITICAL_SECTION rtlCS; |
| HANDLE hSharedReleaseSemaphore; |
| UINT uSharedWaiters; |
| HANDLE hExclusiveReleaseSemaphore; |
| UINT uExclusiveWaiters; |
| INT iNumberActive; |
| HANDLE hOwningThreadId; |
| DWORD dwTimeoutBoost; |
| PVOID pDebugInfo; |
| } RTL_RWLOCK, *LPRTL_RWLOCK; |
| |
| VOID WINAPI RtlInitializeResource( |
| LPRTL_RWLOCK); |
| |
| VOID WINAPI RtlDeleteResource( |
| LPRTL_RWLOCK); |
| |
| BYTE WINAPI RtlAcquireResourceExclusive( |
| LPRTL_RWLOCK, BYTE fWait); |
| |
| BYTE WINAPI RtlAcquireResourceShared( |
| LPRTL_RWLOCK, BYTE fWait); |
| |
| VOID WINAPI RtlReleaseResource( |
| LPRTL_RWLOCK); |
| |
| VOID WINAPI RtlDumpResource( |
| LPRTL_RWLOCK); |
| |
| /* |
| time functions |
| */ |
| |
| typedef struct _TIME_FIELDS |
| { CSHORT Year; |
| CSHORT Month; |
| CSHORT Day; |
| CSHORT Hour; |
| CSHORT Minute; |
| CSHORT Second; |
| CSHORT Milliseconds; |
| CSHORT Weekday; |
| } TIME_FIELDS; |
| |
| typedef TIME_FIELDS *PTIME_FIELDS; |
| |
| VOID WINAPI RtlSystemTimeToLocalTime( |
| IN PLARGE_INTEGER SystemTime, |
| OUT PLARGE_INTEGER LocalTime); |
| |
| VOID WINAPI RtlTimeToTimeFields( |
| PLARGE_INTEGER liTime, |
| PTIME_FIELDS TimeFields); |
| |
| BOOLEAN WINAPI RtlTimeFieldsToTime( |
| PTIME_FIELDS tfTimeFields, |
| PLARGE_INTEGER Time); |
| |
| VOID WINAPI RtlTimeToElapsedTimeFields( |
| PLARGE_INTEGER liTime, |
| PTIME_FIELDS TimeFields); |
| |
| BOOLEAN WINAPI RtlTimeToSecondsSince1980( |
| LPFILETIME ft, |
| LPDWORD timeret); |
| |
| BOOLEAN WINAPI RtlTimeToSecondsSince1970( |
| LPFILETIME ft, |
| LPDWORD timeret); |
| |
| /* |
| heap functions |
| */ |
| |
| /* Data structure for heap definition. This includes various |
| sizing parameters and callback routines, which, if left NULL, |
| result in default behavior */ |
| |
| typedef struct |
| { ULONG Length; /* = sizeof(RTL_HEAP_DEFINITION) */ |
| ULONG Unknown[11]; |
| } RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION; |
| |
| HANDLE WINAPI RtlCreateHeap( |
| ULONG Flags, |
| PVOID BaseAddress, |
| ULONG SizeToReserve, |
| ULONG SizeToCommit, |
| PVOID Unknown, |
| PRTL_HEAP_DEFINITION Definition); |
| |
| PVOID WINAPI RtlAllocateHeap( |
| HANDLE Heap, |
| ULONG Flags, |
| ULONG Size); |
| |
| |
| BOOLEAN WINAPI RtlFreeHeap( |
| HANDLE Heap, |
| ULONG Flags, |
| PVOID Address); |
| |
| /* |
| * misc |
| */ |
| void __cdecl DbgPrint(LPCSTR fmt,LPVOID args); |
| DWORD WINAPI NtRaiseException(PEXCEPTION_RECORD,PCONTEXT,BOOL); |
| void WINAPI RtlRaiseException(PEXCEPTION_RECORD); |
| VOID WINAPI RtlAcquirePebLock(void); |
| VOID WINAPI RtlReleasePebLock(void); |
| DWORD WINAPI RtlAdjustPrivilege(DWORD x1,DWORD x2,DWORD x3,DWORD x4); |
| DWORD WINAPI RtlIntegerToChar(DWORD x1,DWORD x2,DWORD x3,DWORD x4); |
| DWORD WINAPI RtlSetEnvironmentVariable(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val); |
| DWORD WINAPI RtlNewSecurityObject(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6); |
| DWORD WINAPI RtlDeleteSecurityObject(DWORD x1); |
| LPVOID WINAPI RtlNormalizeProcessParams(LPVOID x); |
| DWORD WINAPI RtlNtStatusToDosError(DWORD error); |
| BOOLEAN WINAPI RtlGetNtProductType(LPDWORD type); |
| INT WINAPI RtlExtendedLargeIntegerDivide(LARGE_INTEGER dividend, DWORD divisor, LPDWORD rest); |
| long long WINAPI RtlExtendedIntegerMultiply(LARGE_INTEGER factor1,INT factor2); |
| DWORD WINAPI RtlFormatCurrentUserKeyPath(DWORD x); |
| DWORD WINAPI RtlOpenCurrentUser(DWORD x1, DWORD *x2); |
| BOOLEAN WINAPI RtlDosPathNameToNtPathName_U( LPWSTR from,PUNICODE_STRING us,DWORD x2,DWORD x3); |
| DWORD WINAPI RtlCreateEnvironment(DWORD x1,DWORD x2); |
| DWORD WINAPI RtlDestroyEnvironment(DWORD x); |
| DWORD WINAPI RtlQueryEnvironmentVariable_U(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val) ; |
| |
| BOOL WINAPI IsValidSid(PSID); |
| BOOL WINAPI EqualSid(PSID,PSID); |
| BOOL WINAPI EqualPrefixSid(PSID,PSID); |
| DWORD WINAPI GetSidLengthRequired(BYTE); |
| BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD, |
| DWORD,DWORD,DWORD,DWORD,DWORD,DWORD, |
| DWORD,PSID*); |
| VOID* WINAPI FreeSid(PSID); |
| BOOL WINAPI InitializeSecurityDescriptor(SECURITY_DESCRIPTOR*,DWORD); |
| BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); |
| DWORD* WINAPI GetSidSubAuthority(PSID,DWORD); |
| BYTE * WINAPI GetSidSubAuthorityCount(PSID); |
| DWORD WINAPI GetLengthSid(PSID); |
| BOOL WINAPI CopySid(DWORD,PSID,PSID); |
| BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPCSTR,LPDWORD,LPCSTR,LPDWORD, |
| PSID_NAME_USE); |
| BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPCWSTR,LPDWORD,LPCWSTR,LPDWORD, |
| PSID_NAME_USE); |
| PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |