typedef short CSHORT;
typedef CSHORT *PCSHORT;
+#ifndef __STRING_DEFINED__
+#define __STRING_DEFINED__
typedef struct _STRING {
USHORT Length;
USHORT MaximumLength;
PCHAR Buffer;
} STRING, *PSTRING;
+#endif
typedef STRING ANSI_STRING;
typedef PSTRING PANSI_STRING;
typedef PSTRING POEM_STRING;
typedef const STRING *PCOEM_STRING;
+#ifndef __UNICODE_STRING_DEFINED__
+#define __UNICODE_STRING_DEFINED__
typedef struct _UNICODE_STRING {
USHORT Length; /* bytes */
USHORT MaximumLength; /* bytes */
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
+#endif
typedef const UNICODE_STRING *PCUNICODE_STRING;
/*
* RTL_SYSTEM_TIME and RTL_TIME_ZONE_INFORMATION are the same as
* the SYSTEMTIME and TIME_ZONE_INFORMATION structures defined
- * in winbase.h, however we need to define them seperately so
+ * in winbase.h, however we need to define them separately so
* winternl.h doesn't depend on winbase.h. They are used by
* RtlQueryTimeZoneInformation and RtlSetTimeZoneInformation.
* The names are guessed; if anybody knows the real names, let me know.
ULONG Buffer[0x136];
} GDI_TEB_BATCH;
+typedef struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME
+{
+ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME *Previous;
+ struct _ACTIVATION_CONTEXT *ActivationContext;
+ ULONG Flags;
+} RTL_ACTIVATION_CONTEXT_STACK_FRAME, *PRTL_ACTIVATION_CONTEXT_STACK_FRAME;
+
+typedef struct _ACTIVATION_CONTEXT_STACK
+{
+ ULONG Flags;
+ ULONG NextCookieSequenceNumber;
+ RTL_ACTIVATION_CONTEXT_STACK_FRAME *ActiveFrame;
+ LIST_ENTRY FrameListCache;
+} ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK;
+
/***********************************************************************
* PEB data structure
*/
typedef struct _PEB
-{
- BOOLEAN InheritedAddressSpace; /* 00 */
- BOOLEAN ReadImageFileExecOptions; /* 01 */
- BOOLEAN BeingDebugged; /* 02 */
- BOOLEAN SpareBool; /* 03 */
- HANDLE Mutant; /* 04 */
- HMODULE ImageBaseAddress; /* 08 */
- PPEB_LDR_DATA LdrData; /* 0c */
- RTL_USER_PROCESS_PARAMETERS *ProcessParameters; /* 10 */
- PVOID SubSystemData; /* 14 */
- HANDLE ProcessHeap; /* 18 */
- PRTL_CRITICAL_SECTION FastPebLock; /* 1c */
- PVOID /*PPEBLOCKROUTINE*/ FastPebLockRoutine; /* 20 */
- PVOID /*PPEBLOCKROUTINE*/ FastPebUnlockRoutine; /* 24 */
- ULONG EnvironmentUpdateCount; /* 28 */
- PVOID KernelCallbackTable; /* 2c */
- PVOID EventLogSection; /* 30 */
- PVOID EventLog; /* 34 */
- PVOID /*PPEB_FREE_BLOCK*/ FreeList; /* 38 */
- ULONG TlsExpansionCounter; /* 3c */
- PRTL_BITMAP TlsBitmap; /* 40 */
- ULONG TlsBitmapBits[2]; /* 44 */
- PVOID ReadOnlySharedMemoryBase; /* 4c */
- PVOID ReadOnlySharedMemoryHeap; /* 50 */
- PVOID *ReadOnlyStaticServerData; /* 54 */
- PVOID AnsiCodePageData; /* 58 */
- PVOID OemCodePageData; /* 5c */
- PVOID UnicodeCaseTableData; /* 60 */
- ULONG NumberOfProcessors; /* 64 */
- ULONG NtGlobalFlag; /* 68 */
- BYTE Spare2[4]; /* 6c */
- LARGE_INTEGER CriticalSectionTimeout; /* 70 */
- ULONG HeapSegmentReserve; /* 78 */
- ULONG HeapSegmentCommit; /* 7c */
- ULONG HeapDeCommitTotalFreeThreshold; /* 80 */
- ULONG HeapDeCommitFreeBlockThreshold; /* 84 */
- ULONG NumberOfHeaps; /* 88 */
- ULONG MaximumNumberOfHeaps; /* 8c */
- PVOID *ProcessHeaps; /* 90 */
- PVOID GdiSharedHandleTable; /* 94 */
- PVOID ProcessStarterHelper; /* 98 */
- PVOID GdiDCAttributeList; /* 9c */
- PVOID LoaderLock; /* a0 */
- ULONG OSMajorVersion; /* a4 */
- ULONG OSMinorVersion; /* a8 */
- ULONG OSBuildNumber; /* ac */
- ULONG OSPlatformId; /* b0 */
- ULONG ImageSubSystem; /* b4 */
- ULONG ImageSubSystemMajorVersion; /* b8 */
- ULONG ImageSubSystemMinorVersion; /* bc */
- ULONG ImageProcessAffinityMask; /* c0 */
- ULONG GdiHandleBuffer[34]; /* c4 */
- ULONG PostProcessInitRoutine; /* 14c */
- PRTL_BITMAP TlsExpansionBitmap; /* 150 */
- ULONG TlsExpansionBitmapBits[32]; /* 154 */
- ULONG SessionId; /* 1d4 */
+{ /* win32/win64 */
+ BOOLEAN InheritedAddressSpace; /* 000/000 */
+ BOOLEAN ReadImageFileExecOptions; /* 001/001 */
+ BOOLEAN BeingDebugged; /* 002/002 */
+ BOOLEAN SpareBool; /* 003/003 */
+ HANDLE Mutant; /* 004/008 */
+ HMODULE ImageBaseAddress; /* 008/010 */
+ PPEB_LDR_DATA LdrData; /* 00c/018 */
+ RTL_USER_PROCESS_PARAMETERS *ProcessParameters; /* 010/020 */
+ PVOID SubSystemData; /* 014/028 */
+ HANDLE ProcessHeap; /* 018/030 */
+ PRTL_CRITICAL_SECTION FastPebLock; /* 01c/038 */
+ PVOID /*PPEBLOCKROUTINE*/ FastPebLockRoutine; /* 020/040 */
+ PVOID /*PPEBLOCKROUTINE*/ FastPebUnlockRoutine; /* 024/048 */
+ ULONG EnvironmentUpdateCount; /* 028/050 */
+ PVOID KernelCallbackTable; /* 02c/058 */
+ ULONG Reserved[2]; /* 030/060 */
+ PVOID /*PPEB_FREE_BLOCK*/ FreeList; /* 038/068 */
+ ULONG TlsExpansionCounter; /* 03c/070 */
+ PRTL_BITMAP TlsBitmap; /* 040/078 */
+ ULONG TlsBitmapBits[2]; /* 044/080 */
+ PVOID ReadOnlySharedMemoryBase; /* 04c/088 */
+ PVOID ReadOnlySharedMemoryHeap; /* 050/090 */
+ PVOID *ReadOnlyStaticServerData; /* 054/098 */
+ PVOID AnsiCodePageData; /* 058/0a0 */
+ PVOID OemCodePageData; /* 05c/0a8 */
+ PVOID UnicodeCaseTableData; /* 060/0b0 */
+ ULONG NumberOfProcessors; /* 064/0b8 */
+ ULONG NtGlobalFlag; /* 068/0bc */
+ LARGE_INTEGER CriticalSectionTimeout; /* 070/0c0 */
+ SIZE_T HeapSegmentReserve; /* 078/0c8 */
+ SIZE_T HeapSegmentCommit; /* 07c/0d0 */
+ SIZE_T HeapDeCommitTotalFreeThreshold; /* 080/0d8 */
+ SIZE_T HeapDeCommitFreeBlockThreshold; /* 084/0e0 */
+ ULONG NumberOfHeaps; /* 088/0e8 */
+ ULONG MaximumNumberOfHeaps; /* 08c/0ec */
+ PVOID *ProcessHeaps; /* 090/0f0 */
+ PVOID GdiSharedHandleTable; /* 094/0f8 */
+ PVOID ProcessStarterHelper; /* 098/100 */
+ PVOID GdiDCAttributeList; /* 09c/108 */
+ PVOID LoaderLock; /* 0a0/110 */
+ ULONG OSMajorVersion; /* 0a4/118 */
+ ULONG OSMinorVersion; /* 0a8/11c */
+ ULONG OSBuildNumber; /* 0ac/120 */
+ ULONG OSPlatformId; /* 0b0/124 */
+ ULONG ImageSubSystem; /* 0b4/128 */
+ ULONG ImageSubSystemMajorVersion; /* 0b8/12c */
+ ULONG ImageSubSystemMinorVersion; /* 0bc/130 */
+ ULONG ImageProcessAffinityMask; /* 0c0/134 */
+ HANDLE GdiHandleBuffer[28]; /* 0c4/138 */
+ ULONG unknown[6]; /* 134/218 */
+ PVOID PostProcessInitRoutine; /* 14c/230 */
+ PRTL_BITMAP TlsExpansionBitmap; /* 150/238 */
+ ULONG TlsExpansionBitmapBits[32]; /* 154/240 */
+ ULONG SessionId; /* 1d4/2c0 */
+ ULARGE_INTEGER AppCompatFlags; /* 1d8/2c8 */
+ ULARGE_INTEGER AppCompatFlagsUser; /* 1e0/2d0 */
+ PVOID ShimData; /* 1e8/2d8 */
+ PVOID AppCompatInfo; /* 1ec/2e0 */
+ UNICODE_STRING CSDVersion; /* 1f0/2e8 */
+ PVOID ActivationContextData; /* 1f8/2f8 */
+ PVOID ProcessAssemblyStorageMap; /* 1fc/300 */
+ PVOID SystemDefaultActivationData; /* 200/308 */
+ PVOID SystemAssemblyStorageMap; /* 204/310 */
+ SIZE_T MinimumStackCommit; /* 208/318 */
+ PVOID *FlsCallback; /* 20c/320 */
+ LIST_ENTRY FlsListHead; /* 210/328 */
+ PRTL_BITMAP FlsBitmap; /* 218/338 */
+ ULONG FlsBitmapBits[4]; /* 21c/340 */
} PEB, *PPEB;
/***********************************************************************
* TEB data structure
*/
-#ifndef WINE_NO_TEB /* don't define TEB if included from thread.h */
-# ifndef WINE_TEB_DEFINED
-# define WINE_TEB_DEFINED
typedef struct _TEB
-{
- NT_TIB Tib; /* 000 */
- PVOID EnvironmentPointer; /* 01c */
- CLIENT_ID ClientId; /* 020 */
- PVOID ActiveRpcHandle; /* 028 */
- PVOID ThreadLocalStoragePointer; /* 02c */
- PPEB Peb; /* 030 */
- ULONG LastErrorValue; /* 034 */
- ULONG CountOfOwnedCriticalSections;/* 038 */
- PVOID CsrClientThread; /* 03c */
- PVOID Win32ThreadInfo; /* 040 */
- ULONG Win32ClientInfo[31]; /* 044 used for user32 private data in Wine */
- PVOID WOW32Reserved; /* 0c0 */
- ULONG CurrentLocale; /* 0c4 */
- ULONG FpSoftwareStatusRegister; /* 0c8 */
- PVOID SystemReserved1[54]; /* 0cc used for kernel32 private data in Wine */
- PVOID Spare1; /* 1a4 */
- LONG ExceptionCode; /* 1a8 */
- BYTE SpareBytes1[40]; /* 1ac used for ntdll private data in Wine */
- PVOID SystemReserved2[10]; /* 1d4 used for ntdll private data in Wine */
- GDI_TEB_BATCH GdiTebBatch; /* 1fc */
- ULONG gdiRgn; /* 6dc */
- ULONG gdiPen; /* 6e0 */
- ULONG gdiBrush; /* 6e4 */
- CLIENT_ID RealClientId; /* 6e8 */
- HANDLE GdiCachedProcessHandle; /* 6f0 */
- ULONG GdiClientPID; /* 6f4 */
- ULONG GdiClientTID; /* 6f8 */
- PVOID GdiThreadLocaleInfo; /* 6fc */
- PVOID UserReserved[5]; /* 700 */
- PVOID glDispachTable[280]; /* 714 */
- ULONG glReserved1[26]; /* b74 */
- PVOID glReserved2; /* bdc */
- PVOID glSectionInfo; /* be0 */
- PVOID glSection; /* be4 */
- PVOID glTable; /* be8 */
- PVOID glCurrentRC; /* bec */
- PVOID glContext; /* bf0 */
- ULONG LastStatusValue; /* bf4 */
- UNICODE_STRING StaticUnicodeString; /* bf8 used by advapi32 */
- WCHAR StaticUnicodeBuffer[261]; /* c00 used by advapi32 */
- PVOID DeallocationStack; /* e0c */
- PVOID TlsSlots[64]; /* e10 */
- LIST_ENTRY TlsLinks; /* f10 */
- PVOID Vdm; /* f18 */
- PVOID ReservedForNtRpc; /* f1c */
- PVOID DbgSsReserved[2]; /* f20 */
- ULONG HardErrorDisabled; /* f28 */
- PVOID Instrumentation[16]; /* f2c */
- PVOID WinSockData; /* f6c */
- ULONG GdiBatchCount; /* f70 */
- ULONG Spare2; /* f74 */
- ULONG Spare3; /* f78 */
- ULONG Spare4; /* f7c */
- PVOID ReservedForOle; /* f80 */
- ULONG WaitingOnLoaderLock; /* f84 */
- PVOID Reserved5[3]; /* f88 */
- PVOID *TlsExpansionSlots; /* f94 */
+{ /* win32/win64 */
+ NT_TIB Tib; /* 000/0000 */
+ PVOID EnvironmentPointer; /* 01c/0038 */
+ CLIENT_ID ClientId; /* 020/0040 */
+ PVOID ActiveRpcHandle; /* 028/0050 */
+ PVOID ThreadLocalStoragePointer; /* 02c/0058 */
+ PPEB Peb; /* 030/0060 */
+ ULONG LastErrorValue; /* 034/0068 */
+ ULONG CountOfOwnedCriticalSections; /* 038/006c */
+ PVOID CsrClientThread; /* 03c/0070 */
+ PVOID Win32ThreadInfo; /* 040/0078 */
+ ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */
+ PVOID WOW32Reserved; /* 0c0/0100 */
+ ULONG CurrentLocale; /* 0c4/0108 */
+ ULONG FpSoftwareStatusRegister; /* 0c8/010c */
+ PVOID SystemReserved1[54]; /* 0cc/0110 used for kernel32 private data in Wine */
+ LONG ExceptionCode; /* 1a4/02c0 */
+ ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */
+ BYTE SpareBytes1[24]; /* 1bc/02e8 used for ntdll private data in Wine */
+ PVOID SystemReserved2[10]; /* 1d4/0300 used for ntdll private data in Wine */
+ GDI_TEB_BATCH GdiTebBatch; /* 1fc/0350 used for vm86 private data in Wine */
+ HANDLE gdiRgn; /* 6dc/0838 */
+ HANDLE gdiPen; /* 6e0/0840 */
+ HANDLE gdiBrush; /* 6e4/0848 */
+ CLIENT_ID RealClientId; /* 6e8/0850 */
+ HANDLE GdiCachedProcessHandle; /* 6f0/0860 */
+ ULONG GdiClientPID; /* 6f4/0868 */
+ ULONG GdiClientTID; /* 6f8/086c */
+ PVOID GdiThreadLocaleInfo; /* 6fc/0870 */
+ ULONG UserReserved[5]; /* 700/0878 */
+ PVOID glDispachTable[280]; /* 714/0890 */
+ PVOID glReserved1[26]; /* b74/1150 */
+ PVOID glReserved2; /* bdc/1220 */
+ PVOID glSectionInfo; /* be0/1228 */
+ PVOID glSection; /* be4/1230 */
+ PVOID glTable; /* be8/1238 */
+ PVOID glCurrentRC; /* bec/1240 */
+ PVOID glContext; /* bf0/1248 */
+ ULONG LastStatusValue; /* bf4/1250 */
+ UNICODE_STRING StaticUnicodeString; /* bf8/1258 used by advapi32 */
+ WCHAR StaticUnicodeBuffer[261]; /* c00/1268 used by advapi32 */
+ PVOID DeallocationStack; /* e0c/1478 */
+ PVOID TlsSlots[64]; /* e10/1480 */
+ LIST_ENTRY TlsLinks; /* f10/1680 */
+ PVOID Vdm; /* f18/1690 */
+ PVOID ReservedForNtRpc; /* f1c/1698 */
+ PVOID DbgSsReserved[2]; /* f20/16a0 */
+ ULONG HardErrorDisabled; /* f28/16b0 */
+ PVOID Instrumentation[16]; /* f2c/16b8 */
+ PVOID WinSockData; /* f6c/1738 */
+ ULONG GdiBatchCount; /* f70/1740 */
+ ULONG Spare2; /* f74/1744 */
+ PVOID Spare3; /* f78/1748 */
+ PVOID Spare4; /* f7c/1750 */
+ PVOID ReservedForOle; /* f80/1758 */
+ ULONG WaitingOnLoaderLock; /* f84/1760 */
+ PVOID Reserved5[3]; /* f88/1768 */
+ PVOID *TlsExpansionSlots; /* f94/1780 */
+ ULONG ImpersonationLocale; /* f98/1788 */
+ ULONG IsImpersonating; /* f9c/178c */
+ PVOID NlsCache; /* fa0/1790 */
+ PVOID ShimData; /* fa4/1798 */
+ ULONG HeapVirtualAffinity; /* fa8/17a0 */
+ PVOID CurrentTransactionHandle; /* fac/17a8 */
+ PVOID ActiveFrame; /* fb0/17b0 */
+#ifdef _WIN64
+ PVOID unknown[2]; /* 17b8 */
+#endif
+ PVOID *FlsSlots; /* fb4/17c8 */
} TEB, *PTEB;
-# endif /* WINE_TEB_DEFINED */
-#endif /* WINE_NO_TEB */
/***********************************************************************
* Enums
FileNetworkOpenInformation,
FileAttributeTagInformation,
FileTrackingInformation,
+ FileIdBothDirectoryInformation,
+ FileIdFullDirectoryInformation,
+ FileValidDataLengthInformation,
+ FileShortNameInformation = 40,
+ /* 41, 42, 43 undocumented */
+ FileSfioReserveInformation = 44,
+ FileSfioVolumeInformation = 45,
+ FileHardLinkInformation = 46,
+ /* 47 undocumented */
+ FileNormalizedNameInformation = 48,
+ /* 49 undocumented */
+ FileIdGlobalTxDirectoryInformation = 50,
+ /* 51, 52, 53 undocumented */
+ FileStandardLinkInformation = 54,
FileMaximumInformation
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
} FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION,
FILE_FULL_DIR_INFORMATION, *PFILE_FULL_DIR_INFORMATION;
+typedef struct _FILE_ID_FULL_DIRECTORY_INFORMATION {
+ ULONG NextEntryOffset;
+ ULONG FileIndex;
+ LARGE_INTEGER CreationTime;
+ LARGE_INTEGER LastAccessTime;
+ LARGE_INTEGER LastWriteTime;
+ LARGE_INTEGER ChangeTime;
+ LARGE_INTEGER EndOfFile;
+ LARGE_INTEGER AllocationSize;
+ ULONG FileAttributes;
+ ULONG FileNameLength;
+ ULONG EaSize;
+ LARGE_INTEGER FileId;
+ WCHAR FileName[ANYSIZE_ARRAY];
+} FILE_ID_FULL_DIRECTORY_INFORMATION, *PFILE_ID_FULL_DIRECTORY_INFORMATION;
+
typedef struct _FILE_BOTH_DIRECTORY_INFORMATION {
ULONG NextEntryOffset;
ULONG FileIndex;
} FILE_BOTH_DIRECTORY_INFORMATION, *PFILE_BOTH_DIRECTORY_INFORMATION,
FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
+typedef struct _FILE_ID_BOTH_DIRECTORY_INFORMATION {
+ ULONG NextEntryOffset;
+ ULONG FileIndex;
+ LARGE_INTEGER CreationTime;
+ LARGE_INTEGER LastAccessTime;
+ LARGE_INTEGER LastWriteTime;
+ LARGE_INTEGER ChangeTime;
+ LARGE_INTEGER EndOfFile;
+ LARGE_INTEGER AllocationSize;
+ ULONG FileAttributes;
+ ULONG FileNameLength;
+ ULONG EaSize;
+ CHAR ShortNameLength;
+ WCHAR ShortName[12];
+ LARGE_INTEGER FileId;
+ WCHAR FileName[ANYSIZE_ARRAY];
+} FILE_ID_BOTH_DIRECTORY_INFORMATION, *PFILE_ID_BOTH_DIRECTORY_INFORMATION;
+
typedef struct _FILE_BASIC_INFORMATION {
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
typedef enum _KEY_INFORMATION_CLASS {
KeyBasicInformation,
KeyNodeInformation,
- KeyFullInformation
+ KeyFullInformation,
+ KeyNameInformation
} KEY_INFORMATION_CLASS;
typedef enum _KEY_VALUE_INFORMATION_CLASS {
ProcessDebugObjectHandle = 30,
ProcessDebugFlags = 31,
ProcessHandleTracing = 32,
+ ProcessExecuteFlags = 34,
MaxProcessInfoClass
} PROCESSINFOCLASS, PROCESS_INFORMATION_CLASS;
+#define MEM_EXECUTE_OPTION_DISABLE 0x01
+#define MEM_EXECUTE_OPTION_ENABLE 0x02
+#define MEM_EXECUTE_OPTION_PERMANENT 0x08
+
typedef enum _SECTION_INHERIT {
ViewShare = 1,
ViewUnmap = 2
ThreadPriorityBoost,
ThreadSetTlsArrayAddress,
ThreadIsIoPending,
+ ThreadHideFromDebugger,
MaxThreadInfoClass
} THREADINFOCLASS;
NTSTATUS ExitStatus;
PVOID TebBaseAddress;
CLIENT_ID ClientId;
- ULONG AffinityMask;
+ ULONG_PTR AffinityMask;
LONG Priority;
LONG BasePriority;
} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;
UNC_DOT_PATH /* "//." */
} DOS_PATHNAME_TYPE;
-/***********************************************************************
- * IA64 specific types and data structures
- */
-
-#ifdef __ia64__
-
-typedef struct _FRAME_POINTERS {
- ULONGLONG MemoryStackFp;
- ULONGLONG BackingStoreFp;
-} FRAME_POINTERS, *PFRAME_POINTERS;
-
-#define UNWIND_HISTORY_TABLE_SIZE 12
-
-typedef struct _RUNTIME_FUNCTION {
- ULONG BeginAddress;
- ULONG EndAddress;
- ULONG UnwindInfoAddress;
-} RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
-
-typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
- ULONG64 ImageBase;
- ULONG64 Gp;
- PRUNTIME_FUNCTION FunctionEntry;
-} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
-
-typedef struct _UNWIND_HISTORY_TABLE {
- ULONG Count;
- UCHAR Search;
- ULONG64 LowAddress;
- ULONG64 HighAddress;
- UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
-} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
-
-#endif /* defined(__ia64__) */
/***********************************************************************
* Types and data structures
*/
/* This is used by NtQuerySystemInformation */
-typedef struct _SYSTEM_THREAD_INFORMATION{
- FILETIME ftKernelTime;
- FILETIME ftUserTime;
- FILETIME ftCreateTime;
- DWORD dwTickCount;
- DWORD dwStartAddress;
- DWORD dwOwningPID;
- DWORD dwThreadID;
- DWORD dwCurrentPriority;
- DWORD dwBasePriority;
- DWORD dwContextSwitches;
- DWORD dwThreadState;
- DWORD dwWaitReason;
- DWORD dwUnknown;
+typedef struct _SYSTEM_THREAD_INFORMATION
+{ /* win32/win64 */
+ LARGE_INTEGER KernelTime; /* 00/00 */
+ LARGE_INTEGER UserTime; /* 08/08 */
+ LARGE_INTEGER CreateTime; /* 10/10 */
+ DWORD dwTickCount; /* 18/18 */
+ LPVOID StartAddress; /* 1c/20 */
+ CLIENT_ID ClientId; /* 20/28 */
+ DWORD dwCurrentPriority; /* 28/38 */
+ DWORD dwBasePriority; /* 2c/3c */
+ DWORD dwContextSwitches; /* 30/40 */
+ DWORD dwThreadState; /* 34/44 */
+ DWORD dwWaitReason; /* 38/48 */
+ DWORD dwUnknown; /* 3c/4c */
} SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION;
typedef struct _IO_STATUS_BLOCK {
WCHAR Class[1];
} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
+typedef struct _KEY_NAME_INFORMATION {
+ ULONG NameLength;
+ WCHAR Name[1];
+} KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION;
+
typedef struct _KEY_VALUE_ENTRY
{
PUNICODE_STRING ValueName;
UCHAR Data[1];
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
+#ifndef __OBJECT_ATTRIBUTES_DEFINED__
+#define __OBJECT_ATTRIBUTES_DEFINED__
typedef struct _OBJECT_ATTRIBUTES {
ULONG Length;
HANDLE RootDirectory;
PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */
PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
+#endif
typedef struct _OBJECT_DATA_INFORMATION {
BOOLEAN InheritHandle;
LARGE_INTEGER CreateTime;
} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
+typedef struct _OBJECT_NAME_INFORMATION {
+ UNICODE_STRING Name;
+} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
+
typedef struct _PROCESS_BASIC_INFORMATION {
#ifdef __WINESRC__
- DWORD ExitStatus;
- DWORD PebBaseAddress;
- DWORD AffinityMask;
- DWORD BasePriority;
- ULONG UniqueProcessId;
- ULONG InheritedFromUniqueProcessId;
+ DWORD_PTR ExitStatus;
+ PPEB PebBaseAddress;
+ DWORD_PTR AffinityMask;
+ DWORD_PTR BasePriority;
+ ULONG_PTR UniqueProcessId;
+ ULONG_PTR InheritedFromUniqueProcessId;
#else
PVOID Reserved1;
PPEB PebBaseAddress;
typedef struct _SYSTEM_BASIC_INFORMATION {
#ifdef __WINESRC__
- DWORD dwUnknown1;
- ULONG uKeMaximumIncrement;
- ULONG uPageSize;
- ULONG uMmNumberOfPhysicalPages;
- ULONG uMmLowestPhysicalPage;
- ULONG uMmHighestPhysicalPage;
- ULONG uAllocationGranularity;
- PVOID pLowestUserAddress;
- PVOID pMmHighestUserAddress;
- ULONG uKeActiveProcessors;
- BYTE bKeNumberProcessors;
- BYTE bUnknown2;
- WORD wUnknown3;
+ DWORD unknown;
+ ULONG KeMaximumIncrement;
+ ULONG PageSize;
+ ULONG MmNumberOfPhysicalPages;
+ ULONG MmLowestPhysicalPage;
+ ULONG MmHighestPhysicalPage;
+ ULONG_PTR AllocationGranularity;
+ PVOID LowestUserAddress;
+ PVOID HighestUserAddress;
+ ULONG_PTR ActiveProcessorsAffinityMask;
+ BYTE NumberOfProcessors;
#else
BYTE Reserved1[24];
PVOID Reserved2[4];
#define CPU_FEATURE_MTRR 0x00000040 /* Memory Type Range Registers */
#define CPU_FEATURE_CX8 0x00000080 /* Compare and eXchange 8 byte instr. */
#define CPU_FEATURE_MMX 0x00000100 /* Multi Media eXtensions */
-#define CPU_FEATURE_X86 0x00000200 /* seems to be alway ON, on the '86 */
+#define CPU_FEATURE_X86 0x00000200 /* seems to be always ON, on the '86 */
#define CPU_FEATURE_PAT 0x00000400 /* Page Attribute Table */
#define CPU_FEATURE_FXSR 0x00000800 /* FXSAVE and FXSTORE instructions */
#define CPU_FEATURE_SEP 0x00001000 /* SYSENTER and SYSEXIT instructions */
-#define CPU_FEATURE_SSE 0x00002000 /* SSE extenstions (ext. MMX) */
+#define CPU_FEATURE_SSE 0x00002000 /* SSE extensions (ext. MMX) */
#define CPU_FEATURE_3DNOW 0x00008000 /* 3DNOW instructions available
(FIXME: needs to be confirmed) */
#define CPU_FEATURE_SSE2 0x00010000 /* SSE2 extensions (XMMI64) */
/* System Information Class 0x02 */
+/* Documented in "Windows NT/2000 Native API Reference" by Gary Nebbett. */
typedef struct _SYSTEM_PERFORMANCE_INFORMATION {
- BYTE Reserved1[312];
+ LARGE_INTEGER IdleTime;
+ LARGE_INTEGER ReadTransferCount;
+ LARGE_INTEGER WriteTransferCount;
+ LARGE_INTEGER OtherTransferCount;
+ ULONG ReadOperationCount;
+ ULONG WriteOperationCount;
+ ULONG OtherOperationCount;
+ ULONG AvailablePages;
+ ULONG TotalCommittedPages;
+ ULONG TotalCommitLimit;
+ ULONG PeakCommitment;
+ ULONG PageFaults;
+ ULONG WriteCopyFaults;
+ ULONG TransitionFaults;
+ ULONG Reserved1;
+ ULONG DemandZeroFaults;
+ ULONG PagesRead;
+ ULONG PageReadIos;
+ ULONG Reserved2[2];
+ ULONG PagefilePagesWritten;
+ ULONG PagefilePageWriteIos;
+ ULONG MappedFilePagesWritten;
+ ULONG MappedFilePageWriteIos;
+ ULONG PagedPoolUsage;
+ ULONG NonPagedPoolUsage;
+ ULONG PagedPoolAllocs;
+ ULONG PagedPoolFrees;
+ ULONG NonPagedPoolAllocs;
+ ULONG NonPagedPoolFrees;
+ ULONG TotalFreeSystemPtes;
+ ULONG SystemCodePage;
+ ULONG TotalSystemDriverPages;
+ ULONG TotalSystemCodePages;
+ ULONG SmallNonPagedLookasideListAllocateHits;
+ ULONG SmallPagedLookasideListAllocateHits;
+ ULONG Reserved3;
+ ULONG MmSystemCachePage;
+ ULONG PagedPoolPage;
+ ULONG SystemDriverPage;
+ ULONG FastReadNoWait;
+ ULONG FastReadWait;
+ ULONG FastReadResourceMiss;
+ ULONG FastReadNotPossible;
+ ULONG FastMdlReadNoWait;
+ ULONG FastMdlReadWait;
+ ULONG FastMdlReadResourceMiss;
+ ULONG FastMdlReadNotPossible;
+ ULONG MapDataNoWait;
+ ULONG MapDataWait;
+ ULONG MapDataNoWaitMiss;
+ ULONG MapDataWaitMiss;
+ ULONG PinMappedDataCount;
+ ULONG PinReadNoWait;
+ ULONG PinReadWait;
+ ULONG PinReadNoWaitMiss;
+ ULONG PinReadWaitMiss;
+ ULONG CopyReadNoWait;
+ ULONG CopyReadWait;
+ ULONG CopyReadNoWaitMiss;
+ ULONG CopyReadWaitMiss;
+ ULONG MdlReadNoWait;
+ ULONG MdlReadWait;
+ ULONG MdlReadNoWaitMiss;
+ ULONG MdlReadWaitMiss;
+ ULONG ReadAheadIos;
+ ULONG LazyWriteIos;
+ ULONG LazyWritePages;
+ ULONG DataFlushes;
+ ULONG DataPages;
+ ULONG ContextSwitches;
+ ULONG FirstLevelTbFills;
+ ULONG SecondLevelTbFills;
+ ULONG SystemCalls;
} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
/* System Information Class 0x03 */
/* System Information Class 0x08 */
typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION {
-#ifdef __WINESRC__
- LARGE_INTEGER liIdleTime;
- LARGE_INTEGER liKernelTime;
- LARGE_INTEGER liUserTime;
- DWORD dwSpare[5];
-#else
LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER Reserved1[2];
ULONG Reserved2;
-#endif
} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
/* System Information Class 0x0b */
ULONG CurrentSize;
ULONG PeakSize;
ULONG PageFaultCount;
+#ifndef _WIN64
ULONG MinimumWorkingSet;
ULONG MaximumWorkingSet;
ULONG unused[4];
+#endif
} SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION;
/* System Information Class 0x17 */
SIZE_T QuotaNonPagedPoolUsage;
SIZE_T PagefileUsage;
SIZE_T PeakPagefileUsage;
+ SIZE_T PrivatePageCount;
} VM_COUNTERS, *PVM_COUNTERS;
typedef struct _SYSTEM_PROCESS_INFORMATION {
-#ifdef __WINESRC__
- DWORD dwOffset;
- DWORD dwThreadCount;
- DWORD dwUnknown1[6];
- FILETIME ftCreationTime;
- FILETIME ftUserTime;
- FILETIME ftKernelTime;
- UNICODE_STRING ProcessName;
- DWORD dwBasePriority;
- DWORD dwProcessID;
- DWORD dwParentProcessID;
- DWORD dwHandleCount;
- DWORD dwUnknown3;
- DWORD dwUnknown4;
- VM_COUNTERS vmCounters;
- IO_COUNTERS ioCounters;
- SYSTEM_THREAD_INFORMATION ti[1];
+#ifdef __WINESRC__ /* win32/win64 */
+ ULONG NextEntryOffset; /* 00/00 */
+ DWORD dwThreadCount; /* 04/04 */
+ DWORD dwUnknown1[6]; /* 08/08 */
+ LARGE_INTEGER CreationTime; /* 20/20 */
+ LARGE_INTEGER UserTime; /* 28/28 */
+ LARGE_INTEGER KernelTime; /* 30/30 */
+ UNICODE_STRING ProcessName; /* 38/38 */
+ DWORD dwBasePriority; /* 40/48 */
+ HANDLE UniqueProcessId; /* 44/50 */
+ HANDLE ParentProcessId; /* 48/58 */
+ ULONG HandleCount; /* 4c/60 */
+ DWORD dwUnknown3; /* 50/64 */
+ DWORD dwUnknown4; /* 54/68 */
+ VM_COUNTERS vmCounters; /* 58/70 */
+ IO_COUNTERS ioCounters; /* 88/d0 */
+ SYSTEM_THREAD_INFORMATION ti[1]; /* b8/100 */
#else
- ULONG NextEntryOffset;
- BYTE Reserved1[52];
- PVOID Reserved2[3];
- HANDLE UniqueProcessId;
- PVOID Reserved3;
- ULONG HandleCount;
- BYTE Reserved4[4];
- PVOID Reserved5[11];
- SIZE_T PeakPagefileUsage;
- SIZE_T PrivatePageCount;
- LARGE_INTEGER Reserved6[6];
+ ULONG NextEntryOffset; /* 00/00 */
+ BYTE Reserved1[52]; /* 04/04 */
+ PVOID Reserved2[3]; /* 38/38 */
+ HANDLE UniqueProcessId; /* 44/50 */
+ PVOID Reserved3; /* 48/58 */
+ ULONG HandleCount; /* 4c/60 */
+ BYTE Reserved4[4]; /* 50/64 */
+ PVOID Reserved5[11]; /* 54/68 */
+ SIZE_T PeakPagefileUsage; /* 80/c0 */
+ SIZE_T PrivatePageCount; /* 84/c8 */
+ LARGE_INTEGER Reserved6[6]; /* 88/d0 */
#endif
} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
/* Wine doesn't implement atom table as NT does:
* - in NT, atom tables are user space tables, which ntdll directly accesses
- * - on Wine, (even local) atom tables are wineserver object, hence a HANDLE
+ * - on Wine, (even local) atom tables are wineserver objects, hence a HANDLE
*/
typedef struct atom_table *RTL_ATOM_TABLE, **PRTL_ATOM_TABLE;
#define FILE_PIPE_SERVER_END 0x00000001
#define FILE_PIPE_CLIENT_END 0x00000000
-#if (_WIN32_WINNT >= 0x0501)
#define INTERNAL_TS_ACTIVE_CONSOLE_ID ( *((volatile ULONG*)(0x7ffe02d8)) )
-#endif /* (_WIN32_WINNT >= 0x0501) */
#define LOGONID_CURRENT ((ULONG)-1)
typedef void (CALLBACK *PNTAPCFUNC)(ULONG_PTR,ULONG_PTR,ULONG_PTR); /* FIXME: not the right name */
typedef void (CALLBACK *PRTL_THREAD_START_ROUTINE)(LPVOID); /* FIXME: not the right name */
typedef DWORD (CALLBACK *PRTL_WORK_ITEM_ROUTINE)(LPVOID); /* FIXME: not the right name */
+typedef void (NTAPI *RTL_WAITORTIMERCALLBACKFUNC)(PVOID,BOOLEAN); /* FIXME: not the right name */
/* DbgPrintEx default levels */
#define SE_DEBUG_PRIVILEGE 20L
#define SE_AUDIT_PRIVILEGE 21L
#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE 22L
-#define SE_CHANGE_NOTIFY_PRIVILLEGE 23L
+#define SE_CHANGE_NOTIFY_PRIVILEGE 23L
#define SE_REMOTE_SHUTDOWN_PRIVILEGE 24L
#define SE_UNDOCK_PRIVILEGE 25L
#define SE_SYNC_AGENT_PRIVILEGE 26L
#define SE_CREATE_GLOBAL_PRIVILEGE 30L
#define SE_MAX_WELL_KNOWN_PRIVILEGE SE_CREATE_GLOBAL_PRIVILEGE
+/* NtGlobalFlag bits */
+#define FLG_STOP_ON_EXCEPTION 0x00000001
+#define FLG_SHOW_LDR_SNAPS 0x00000002
+#define FLG_DEBUG_INITIAL_COMMAND 0x00000004
+#define FLG_STOP_ON_HUNG_GUI 0x00000008
+#define FLG_HEAP_ENABLE_TAIL_CHECK 0x00000010
+#define FLG_HEAP_ENABLE_FREE_CHECK 0x00000020
+#define FLG_HEAP_VALIDATE_PARAMETERS 0x00000040
+#define FLG_HEAP_VALIDATE_ALL 0x00000080
+#define FLG_APPLICATION_VERIFIER 0x00000100
+#define FLG_POOL_ENABLE_TAGGING 0x00000400
+#define FLG_HEAP_ENABLE_TAGGING 0x00000800
+#define FLG_USER_STACK_TRACE_DB 0x00001000
+#define FLG_KERNEL_STACK_TRACE_DB 0x00002000
+#define FLG_MAINTAIN_OBJECT_TYPELIST 0x00004000
+#define FLG_HEAP_ENABLE_TAG_BY_DLL 0x00008000
+#define FLG_DISABLE_STACK_EXTENSION 0x00010000
+#define FLG_ENABLE_CSRDEBUG 0x00020000
+#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD 0x00040000
+#define FLG_DISABLE_PAGE_KERNEL_STACKS 0x00080000
+#define FLG_ENABLE_SYSTEM_CRIT_BREAKS 0x00100000
+#define FLG_HEAP_DISABLE_COALESCING 0x00200000
+#define FLG_ENABLE_CLOSE_EXCEPTIONS 0x00400000
+#define FLG_ENABLE_EXCEPTION_LOGGING 0x00800000
+#define FLG_ENABLE_HANDLE_TYPE_TAGGING 0x01000000
+#define FLG_HEAP_PAGE_ALLOCS 0x02000000
+#define FLG_DEBUG_INITIAL_COMMAND_EX 0x04000000
+#define FLG_DISABLE_DBGPRINT 0x08000000
+#define FLG_CRITSEC_EVENT_CREATION 0x10000000
+#define FLG_LDR_TOP_DOWN 0x20000000
+#define FLG_ENABLE_HANDLE_EXCEPTIONS 0x40000000
+#define FLG_DISABLE_PROTDLLS 0x80000000
/* Rtl*Registry* functions structs and defines */
#define RTL_REGISTRY_ABSOLUTE 0
ULONG Type;
} KEY_MULTIPLE_VALUE_INFORMATION, *PKEY_MULTIPLE_VALUE_INFORMATION;
-typedef VOID (*PTIMER_APC_ROUTINE) ( PVOID, ULONG, LONG );
+typedef VOID (CALLBACK *PRTL_OVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPVOID);
+
+typedef VOID (CALLBACK *PTIMER_APC_ROUTINE) ( PVOID, ULONG, LONG );
typedef enum _EVENT_TYPE {
NotificationEvent,
USHORT MessageType;
USHORT VirtualRangesOffset;
CLIENT_ID ClientId;
- ULONG MessageId;
- ULONG SectionSize;
+ ULONG_PTR MessageId;
+ ULONG_PTR SectionSize;
UCHAR Data[ANYSIZE_ARRAY];
} LPC_MESSAGE, *PLPC_MESSAGE;
IoCompletionBasicInformation
} IO_COMPLETION_INFORMATION_CLASS, *PIO_COMPLETION_INFORMATION_CLASS;
+typedef struct _FILE_COMPLETION_INFORMATION {
+ HANDLE CompletionPort;
+ ULONG_PTR CompletionKey;
+} FILE_COMPLETION_INFORMATION, *PFILE_COMPLETION_INFORMATION;
+
+#define IO_COMPLETION_QUERY_STATE 0x0001
+#define IO_COMPLETION_MODIFY_STATE 0x0002
+#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3)
+
typedef enum _HARDERROR_RESPONSE_OPTION {
OptionAbortRetryIgnore,
OptionOk,
SysDbgClearSpecialCalls,
SysDbgQuerySpecialCalls
} SYSDBG_COMMAND, *PSYSDBG_COMMAND;
-
+
+
+/*************************************************************************
+ * Loader structures
+ *
+ * Those are not part of standard Winternl.h
+ */
+typedef struct _LDR_MODULE
+{
+ LIST_ENTRY InLoadOrderModuleList;
+ LIST_ENTRY InMemoryOrderModuleList;
+ LIST_ENTRY InInitializationOrderModuleList;
+ void* BaseAddress;
+ void* EntryPoint;
+ ULONG SizeOfImage;
+ UNICODE_STRING FullDllName;
+ UNICODE_STRING BaseDllName;
+ ULONG Flags;
+ SHORT LoadCount;
+ SHORT TlsIndex;
+ HANDLE SectionHandle;
+ ULONG CheckSum;
+ ULONG TimeDateStamp;
+ HANDLE ActivationContext;
+} LDR_MODULE, *PLDR_MODULE;
+
+/* those defines are (some of the) regular LDR_MODULE.Flags values */
+#define LDR_IMAGE_IS_DLL 0x00000004
+#define LDR_LOAD_IN_PROGRESS 0x00001000
+#define LDR_UNLOAD_IN_PROGRESS 0x00002000
+#define LDR_NO_DLL_CALLS 0x00040000
+#define LDR_PROCESS_ATTACHED 0x00080000
+#define LDR_MODULE_REBASED 0x00200000
+
+/* these ones is Wine specific */
+#define LDR_DONT_RESOLVE_REFS 0x40000000
+#define LDR_WINE_INTERNAL 0x80000000
+
+/* FIXME: to be checked */
+#define MAXIMUM_FILENAME_LENGTH 256
+
+typedef struct _SYSTEM_MODULE
+{
+ PVOID Reserved1; /* 00/00 */
+ PVOID Reserved2; /* 04/08 */
+ PVOID ImageBaseAddress; /* 08/10 */
+ ULONG ImageSize; /* 0c/18 */
+ ULONG Flags; /* 10/1c */
+ WORD Id; /* 14/20 */
+ WORD Rank; /* 16/22 */
+ WORD Unknown; /* 18/24 */
+ WORD NameOffset; /* 1a/26 */
+ BYTE Name[MAXIMUM_FILENAME_LENGTH]; /* 1c/28 */
+} SYSTEM_MODULE, *PSYSTEM_MODULE;
+
+typedef struct _SYSTEM_MODULE_INFORMATION
+{
+ ULONG ModulesCount;
+ SYSTEM_MODULE Modules[1]; /* FIXME: should be Modules[0] */
+} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
+
/***********************************************************************
* Function declarations
*/
static inline void WINAPI DbgBreakPoint(void) { __asm__ __volatile__("int3"); }
static inline void WINAPI DbgUserBreakPoint(void) { __asm__ __volatile__("int3"); }
#else /* __i386__ && __GNUC__ */
-void WINAPI DbgBreakPoint(void);
-void WINAPI DbgUserBreakPoint(void);
+NTSYSAPI void WINAPI DbgBreakPoint(void);
+NTSYSAPI void WINAPI DbgUserBreakPoint(void);
#endif /* __i386__ && __GNUC__ */
-NTSTATUS WINAPIV DbgPrint(LPCSTR fmt, ...);
-NTSTATUS WINAPIV DbgPrintEx(ULONG iComponentId, ULONG Level, LPCSTR fmt, ...);
-
-NTSTATUS WINAPI LdrAccessResource(HMODULE,const IMAGE_RESOURCE_DATA_ENTRY*,void**,PULONG);
-NTSTATUS WINAPI LdrFindResourceDirectory_U(HMODULE,const LDR_RESOURCE_INFO*,ULONG,const IMAGE_RESOURCE_DIRECTORY**);
-NTSTATUS WINAPI LdrFindResource_U(HMODULE,const LDR_RESOURCE_INFO*,ULONG,const IMAGE_RESOURCE_DATA_ENTRY**);
-NTSTATUS WINAPI LdrGetDllHandle(ULONG, ULONG, const UNICODE_STRING*, HMODULE*);
-NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE, const ANSI_STRING*, ULONG, void**);
-void WINAPI LdrInitializeThunk(ULONG,ULONG,ULONG,ULONG);
-NTSTATUS WINAPI LdrLoadDll(LPCWSTR, DWORD, const UNICODE_STRING*, HMODULE*);
-void WINAPI LdrShutdownProcess(void);
-void WINAPI LdrShutdownThread(void);
-NTSTATUS WINAPI NtAcceptConnectPort(PHANDLE,ULONG,PLPC_MESSAGE,BOOLEAN,PLPC_SECTION_WRITE,PLPC_SECTION_READ);
-NTSTATUS WINAPI NtAccessCheck(PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,PGENERIC_MAPPING,PPRIVILEGE_SET,PULONG,PULONG,NTSTATUS*);
-NTSTATUS WINAPI NtAccessCheckAndAuditAlarm(PUNICODE_STRING,HANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,ACCESS_MASK,PGENERIC_MAPPING,BOOLEAN,PACCESS_MASK,PBOOLEAN,PBOOLEAN);
-NTSTATUS WINAPI NtAddAtom(const WCHAR*,ULONG,RTL_ATOM*);
-NTSTATUS WINAPI NtAdjustGroupsToken(HANDLE,BOOLEAN,PTOKEN_GROUPS,ULONG,PTOKEN_GROUPS,PULONG);
-NTSTATUS WINAPI NtAdjustPrivilegesToken(HANDLE,BOOLEAN,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
-NTSTATUS WINAPI NtAlertResumeThread(HANDLE,PULONG);
-NTSTATUS WINAPI NtAlertThread(HANDLE ThreadHandle);
-NTSTATUS WINAPI NtAllocateLocallyUniqueId(PLUID lpLuid);
-NTSTATUS WINAPI NtAllocateUuids(PULARGE_INTEGER,PULONG,PULONG);
-NTSTATUS WINAPI NtAllocateVirtualMemory(HANDLE,PVOID*,ULONG,SIZE_T*,ULONG,ULONG);
-NTSTATUS WINAPI NtCallbackReturn(PVOID,ULONG,NTSTATUS);
-NTSTATUS WINAPI NtCancelIoFile(HANDLE,PIO_STATUS_BLOCK);
-NTSTATUS WINAPI NtCancelTimer(HANDLE, BOOLEAN*);
-NTSTATUS WINAPI NtClearEvent(HANDLE);
-NTSTATUS WINAPI NtClose(HANDLE);
-NTSTATUS WINAPI NtCloseObjectAuditAlarm(PUNICODE_STRING,HANDLE,BOOLEAN);
-NTSTATUS WINAPI NtCompleteConnectPort(HANDLE);
-NTSTATUS WINAPI NtConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PLPC_SECTION_READ,PULONG,PVOID,PULONG);
-NTSTATUS WINAPI NtContinue(PCONTEXT,BOOLEAN);
-NTSTATUS WINAPI NtCreateDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtCreateEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,BOOLEAN,BOOLEAN);
-NTSTATUS WINAPI NtCreateEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,PLARGE_INTEGER,ULONG,ULONG,ULONG,ULONG,PVOID,ULONG);
-NTSTATUS WINAPI NtCreateIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,ULONG);
-NTSTATUS WINAPI NtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG);
-NTSTATUS WINAPI NtCreateMailslotFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,PLARGE_INTEGER);
-NTSTATUS WINAPI NtCreateMutant(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,BOOLEAN);
-NTSTATUS WINAPI NtCreateNamedPipeFile(PHANDLE,ULONG,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,PLARGE_INTEGER);
-NTSTATUS WINAPI NtCreatePagingFile(PUNICODE_STRING,PLARGE_INTEGER,PLARGE_INTEGER,PLARGE_INTEGER);
-NTSTATUS WINAPI NtCreatePort(PHANDLE,POBJECT_ATTRIBUTES,ULONG,ULONG,PULONG);
-NTSTATUS WINAPI NtCreateProcess(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,HANDLE,BOOLEAN,HANDLE,HANDLE,HANDLE);
-NTSTATUS WINAPI NtCreateProfile(PHANDLE,HANDLE,PVOID,ULONG,ULONG,PVOID,ULONG,KPROFILE_SOURCE,KAFFINITY);
-NTSTATUS WINAPI NtCreateSection(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,const LARGE_INTEGER*,ULONG,ULONG,HANDLE);
-NTSTATUS WINAPI NtCreateSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,LONG,LONG);
-NTSTATUS WINAPI NtCreateSymbolicLinkObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PUNICODE_STRING);
-NTSTATUS WINAPI NtCreateThread(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,HANDLE,PCLIENT_ID,PCONTEXT,PINITIAL_TEB,BOOLEAN);
-NTSTATUS WINAPI NtCreateTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRIBUTES*, TIMER_TYPE);
-NTSTATUS WINAPI NtCreateToken(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,TOKEN_TYPE,PLUID,PLARGE_INTEGER,PTOKEN_USER,PTOKEN_GROUPS,PTOKEN_PRIVILEGES,PTOKEN_OWNER,PTOKEN_PRIMARY_GROUP,PTOKEN_DEFAULT_DACL,PTOKEN_SOURCE);
-NTSTATUS WINAPI NtDelayExecution(BOOLEAN,const LARGE_INTEGER*);
-NTSTATUS WINAPI NtDeleteAtom(RTL_ATOM);
-NTSTATUS WINAPI NtDeleteFile(POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtDeleteKey(HANDLE);
-NTSTATUS WINAPI NtDeleteValueKey(HANDLE,const UNICODE_STRING *);
-NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);
-NTSTATUS WINAPI NtDisplayString(PUNICODE_STRING);
-NTSTATUS WINAPI NtDuplicateObject(HANDLE,HANDLE,HANDLE,PHANDLE,ACCESS_MASK,ULONG,ULONG);
-NTSTATUS WINAPI NtDuplicateToken(HANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
-NTSTATUS WINAPI NtEnumerateKey(HANDLE,ULONG,KEY_INFORMATION_CLASS,void *,DWORD,DWORD *);
-NTSTATUS WINAPI NtEnumerateValueKey(HANDLE,ULONG,KEY_VALUE_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtExtendSection(HANDLE,PLARGE_INTEGER);
-NTSTATUS WINAPI NtFindAtom(const WCHAR*,ULONG,RTL_ATOM*);
-NTSTATUS WINAPI NtFlushBuffersFile(HANDLE,IO_STATUS_BLOCK*);
-NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
-NTSTATUS WINAPI NtFlushKey(HANDLE);
-NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,ULONG);
-NTSTATUS WINAPI NtFlushWriteBuffer(VOID);
-NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
-NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);
-NTSTATUS WINAPI NtGetContextThread(HANDLE,CONTEXT*);
-NTSTATUS WINAPI NtGetPlugPlayEvent(ULONG,ULONG,PVOID,ULONG);
-ULONG WINAPI NtGetTickCount(VOID);
-NTSTATUS WINAPI NtImpersonateAnonymousToken(HANDLE);
-NTSTATUS WINAPI NtImpersonateClientOfPort(HANDLE,PPORT_MESSAGE);
-NTSTATUS WINAPI NtImpersonateThread(HANDLE,HANDLE,PSECURITY_QUALITY_OF_SERVICE);
-NTSTATUS WINAPI NtInitializeRegistry(BOOLEAN);
-NTSTATUS WINAPI NtInitiatePowerAction(POWER_ACTION,SYSTEM_POWER_STATE,ULONG,BOOLEAN);
-NTSTATUS WINAPI NtListenPort(HANDLE,PLPC_MESSAGE);
-NTSTATUS WINAPI NtLoadDriver(const UNICODE_STRING *);
-NTSTATUS WINAPI NtLoadKey(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *);
-NTSTATUS WINAPI NtLockFile(HANDLE,HANDLE,PIO_APC_ROUTINE,void*,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,ULONG*,BOOLEAN,BOOLEAN);
-NTSTATUS WINAPI NtLockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
-NTSTATUS WINAPI NtMakeTemporaryObject(HANDLE);
-NTSTATUS WINAPI NtMapViewOfSection(HANDLE,HANDLE,PVOID*,ULONG,SIZE_T,const LARGE_INTEGER*,SIZE_T*,SECTION_INHERIT,ULONG,ULONG);
-NTSTATUS WINAPI NtNotifyChangeDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,ULONG,BOOLEAN);
-NTSTATUS WINAPI NtNotifyChangeKey(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN);
-NTSTATUS WINAPI NtOpenDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtOpenEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *);
-NTSTATUS WINAPI NtOpenEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtOpenFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG);
-NTSTATUS WINAPI NtOpenIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtOpenKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *);
-NTSTATUS WINAPI NtOpenMutant(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
-NTSTATUS WINAPI NtOpenObjectAuditAlarm(PUNICODE_STRING,PHANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,ACCESS_MASK,PPRIVILEGE_SET,BOOLEAN,BOOLEAN,PBOOLEAN);
-NTSTATUS WINAPI NtOpenProcess(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,const CLIENT_ID*);
-NTSTATUS WINAPI NtOpenProcessToken(HANDLE,DWORD,HANDLE *);
-NTSTATUS WINAPI NtOpenSection(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
-NTSTATUS WINAPI NtOpenSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
-NTSTATUS WINAPI NtOpenSymbolicLinkObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtOpenThread(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,const CLIENT_ID*);
-NTSTATUS WINAPI NtOpenThreadToken(HANDLE,DWORD,BOOLEAN,HANDLE *);
-NTSTATUS WINAPI NtOpenTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRIBUTES*);
-NTSTATUS WINAPI NtPowerInformation(POWER_INFORMATION_LEVEL,PVOID,ULONG,PVOID,ULONG);
-NTSTATUS WINAPI NtPrivilegeCheck(HANDLE,PPRIVILEGE_SET,PBOOLEAN);
-NTSTATUS WINAPI NtPrivilegeObjectAuditAlarm(PUNICODE_STRING,HANDLE,HANDLE,ULONG,PPRIVILEGE_SET,BOOLEAN);
-NTSTATUS WINAPI NtPrivilegedServiceAuditAlarm(PUNICODE_STRING,PUNICODE_STRING,HANDLE,PPRIVILEGE_SET,BOOLEAN);
-NTSTATUS WINAPI NtProtectVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG,ULONG*);
-NTSTATUS WINAPI NtPulseEvent(HANDLE,PULONG);
-NTSTATUS WINAPI NtQueueApcThread(HANDLE,PNTAPCFUNC,ULONG_PTR,ULONG_PTR,ULONG_PTR);
-NTSTATUS WINAPI NtQueryAttributesFile(const OBJECT_ATTRIBUTES*,FILE_BASIC_INFORMATION*);
-NTSTATUS WINAPI NtQueryDefaultLocale(BOOLEAN,LCID*);
-NTSTATUS WINAPI NtQueryDefaultUILanguage(LANGID*);
-NTSTATUS WINAPI NtQueryDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS,BOOLEAN,PUNICODE_STRING,BOOLEAN);
-NTSTATUS WINAPI NtQueryDirectoryObject(HANDLE,PDIRECTORY_BASIC_INFORMATION,ULONG,BOOLEAN,BOOLEAN,PULONG,PULONG);
-NTSTATUS WINAPI NtQueryEaFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,BOOLEAN,PVOID,ULONG,PVOID,BOOLEAN);
-NTSTATUS WINAPI NtQueryEvent(HANDLE,EVENT_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryFullAttributesFile(const OBJECT_ATTRIBUTES*,FILE_NETWORK_OPEN_INFORMATION*);
-NTSTATUS WINAPI NtQueryInformationAtom(RTL_ATOM,ATOM_INFORMATION_CLASS,PVOID,ULONG,ULONG*);
-NTSTATUS WINAPI NtQueryInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,LONG,FILE_INFORMATION_CLASS);
-NTSTATUS WINAPI NtQueryInformationPort(HANDLE,PORT_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryInformationThread(HANDLE,THREADINFOCLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryInstallUILanguage(LANGID*);
-NTSTATUS WINAPI NtQueryIntervalProfile(KPROFILE_SOURCE,PULONG);
-NTSTATUS WINAPI NtQueryIoCompletion(HANDLE,IO_COMPLETION_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryKey(HANDLE,KEY_INFORMATION_CLASS,void *,DWORD,DWORD *);
-NTSTATUS WINAPI NtQueryMultipleValueKey(HANDLE,PKEY_MULTIPLE_VALUE_INFORMATION,ULONG,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryMutant(HANDLE,MUTANT_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG, PULONG);
-NTSTATUS WINAPI NtQueryOpenSubKeys(POBJECT_ATTRIBUTES,PULONG);
-NTSTATUS WINAPI NtQueryPerformanceCounter(PLARGE_INTEGER, PLARGE_INTEGER);
-NTSTATUS WINAPI NtQuerySecurityObject(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,ULONG,PULONG);
-NTSTATUS WINAPI NtQuerySection(HANDLE,SECTION_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQuerySemaphore(HANDLE,SEMAPHORE_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQuerySymbolicLinkObject(HANDLE,PUNICODE_STRING,PULONG);
-NTSTATUS WINAPI NtQuerySystemEnvironmentValue(PUNICODE_STRING,PWCHAR,ULONG,PULONG);
-NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER);
-NTSTATUS WINAPI NtQueryTimer(HANDLE,TIMER_INFORMATION_CLASS,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtQueryTimerResolution(PULONG,PULONG,PULONG);
-NTSTATUS WINAPI NtQueryValueKey(HANDLE,const UNICODE_STRING *,KEY_VALUE_INFORMATION_CLASS,void *,DWORD,DWORD *);
-NTSTATUS WINAPI NtQueryVirtualMemory(HANDLE,LPCVOID,MEMORY_INFORMATION_CLASS,PVOID,SIZE_T,SIZE_T*);
-NTSTATUS WINAPI NtQueryVolumeInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS);
-NTSTATUS WINAPI NtRaiseException(PEXCEPTION_RECORD,PCONTEXT,BOOL);
-NTSTATUS WINAPI NtRaiseHardError(NTSTATUS,ULONG,PUNICODE_STRING,PVOID*,HARDERROR_RESPONSE_OPTION,PHARDERROR_RESPONSE);
-NTSTATUS WINAPI NtReadFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,PLARGE_INTEGER,PULONG);
-NTSTATUS WINAPI NtReadFileScatter(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,FILE_SEGMENT_ELEMENT,ULONG,PLARGE_INTEGER,PULONG);
-NTSTATUS WINAPI NtReadRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtReadVirtualMemory(HANDLE,const void*,void*,SIZE_T,SIZE_T*);
-NTSTATUS WINAPI NtRegisterThreadTerminatePort(HANDLE);
-NTSTATUS WINAPI NtReleaseMutant(HANDLE,PLONG);
-NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG);
-NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG_PTR,PIO_STATUS_BLOCK,PULONG,PLARGE_INTEGER);
-NTSTATUS WINAPI NtReplaceKey(POBJECT_ATTRIBUTES,HANDLE,POBJECT_ATTRIBUTES);
-NTSTATUS WINAPI NtReplyPort(HANDLE,PLPC_MESSAGE);
-NTSTATUS WINAPI NtReplyWaitReceivePort(HANDLE,PULONG,PLPC_MESSAGE,PLPC_MESSAGE);
-NTSTATUS WINAPI NtReplyWaitReceivePortEx(HANDLE,PVOID*,PPORT_MESSAGE,PPORT_MESSAGE,PLARGE_INTEGER);
-NTSTATUS WINAPI NtReplyWaitReplyPort(HANDLE,PLPC_MESSAGE);
-NTSTATUS WINAPI NtRequestPort(HANDLE,PLPC_MESSAGE);
-NTSTATUS WINAPI NtRequestWaitReplyPort(HANDLE,PLPC_MESSAGE,PLPC_MESSAGE);
-NTSTATUS WINAPI NtResetEvent(HANDLE,PULONG);
-NTSTATUS WINAPI NtRestoreKey(HANDLE,HANDLE,ULONG);
-NTSTATUS WINAPI NtResumeThread(HANDLE,PULONG);
-NTSTATUS WINAPI NtSaveKey(HANDLE,HANDLE);
-NTSTATUS WINAPI NtSecureConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PSID,PLPC_SECTION_READ,PULONG,PVOID,PULONG);
-NTSTATUS WINAPI NtSetContextThread(HANDLE,const CONTEXT*);
-NTSTATUS WINAPI NtSetDefaultHardErrorPort(HANDLE);
-NTSTATUS WINAPI NtSetDefaultLocale(BOOLEAN,LCID);
-NTSTATUS WINAPI NtSetDefaultUILanguage(LANGID);
-NTSTATUS WINAPI NtSetEaFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG);
-NTSTATUS WINAPI NtSetEvent(HANDLE,PULONG);
-NTSTATUS WINAPI NtSetHighEventPair(HANDLE);
-NTSTATUS WINAPI NtSetHighWaitLowEventPair(HANDLE);
-NTSTATUS WINAPI NtSetHighWaitLowThread(VOID);
-NTSTATUS WINAPI NtSetInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS);
-NTSTATUS WINAPI NtSetInformationKey(HANDLE,const int,PVOID,ULONG);
-NTSTATUS WINAPI NtSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG);
-NTSTATUS WINAPI NtSetInformationProcess(HANDLE,PROCESS_INFORMATION_CLASS,PVOID,ULONG);
-NTSTATUS WINAPI NtSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID,ULONG);
-NTSTATUS WINAPI NtSetInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG);
-NTSTATUS WINAPI NtSetIntervalProfile(ULONG,KPROFILE_SOURCE);
-NTSTATUS WINAPI NtSetIoCompletion(HANDLE,ULONG_PTR,PIO_STATUS_BLOCK,ULONG,ULONG);
-NTSTATUS WINAPI NtSetLdtEntries(ULONG,LDT_ENTRY,ULONG,LDT_ENTRY);
-NTSTATUS WINAPI NtSetLowEventPair(HANDLE);
-NTSTATUS WINAPI NtSetLowWaitHighEventPair(HANDLE);
-NTSTATUS WINAPI NtSetLowWaitHighThread(VOID);
-NTSTATUS WINAPI NtSetSecurityObject(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
-NTSTATUS WINAPI NtSetSystemEnvironmentValue(PUNICODE_STRING,PUNICODE_STRING);
-NTSTATUS WINAPI NtSetSystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG);
-NTSTATUS WINAPI NtSetSystemPowerState(POWER_ACTION,SYSTEM_POWER_STATE,ULONG);
-NTSTATUS WINAPI NtSetSystemTime(const LARGE_INTEGER*,LARGE_INTEGER*);
-NTSTATUS WINAPI NtSetTimer(HANDLE, const LARGE_INTEGER*, PTIMER_APC_ROUTINE, PVOID, BOOLEAN, ULONG, BOOLEAN*);
-NTSTATUS WINAPI NtSetTimerResolution(ULONG,BOOLEAN,PULONG);
-NTSTATUS WINAPI NtSetValueKey(HANDLE,const UNICODE_STRING *,ULONG,ULONG,const void *,ULONG);
-NTSTATUS WINAPI NtSetVolumeInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS);
-NTSTATUS WINAPI NtSignalAndWaitForSingleObject(HANDLE,HANDLE,BOOLEAN,const LARGE_INTEGER*);
-NTSTATUS WINAPI NtShutdownSystem(SHUTDOWN_ACTION);
-NTSTATUS WINAPI NtStartProfile(HANDLE);
-NTSTATUS WINAPI NtStopProfile(HANDLE);
-NTSTATUS WINAPI NtSuspendThread(HANDLE,PULONG);
-NTSTATUS WINAPI NtSystemDebugControl(SYSDBG_COMMAND,PVOID,ULONG,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtTerminateProcess(HANDLE,LONG);
-NTSTATUS WINAPI NtTerminateThread(HANDLE,LONG);
-NTSTATUS WINAPI NtTestAlert(VOID);
-NTSTATUS WINAPI NtUnloadDriver(const UNICODE_STRING *);
-NTSTATUS WINAPI NtUnloadKey(HANDLE);
-NTSTATUS WINAPI NtUnloadKeyEx(POBJECT_ATTRIBUTES,HANDLE);
-NTSTATUS WINAPI NtUnlockFile(HANDLE,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,PULONG);
-NTSTATUS WINAPI NtUnlockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
-NTSTATUS WINAPI NtUnmapViewOfSection(HANDLE,PVOID);
-NTSTATUS WINAPI NtVdmControl(ULONG,PVOID);
-NTSTATUS WINAPI NtWaitForSingleObject(HANDLE,BOOLEAN,const LARGE_INTEGER*);
-NTSTATUS WINAPI NtWaitForMultipleObjects(ULONG,const HANDLE*,BOOLEAN,BOOLEAN,const LARGE_INTEGER*);
-NTSTATUS WINAPI NtWaitHighEventPair(HANDLE);
-NTSTATUS WINAPI NtWaitLowEventPair(HANDLE);
-NTSTATUS WINAPI NtWriteFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,const void*,ULONG,PLARGE_INTEGER,PULONG);
-NTSTATUS WINAPI NtWriteFileGather(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,FILE_SEGMENT_ELEMENT,ULONG,PLARGE_INTEGER,PULONG);
-NTSTATUS WINAPI NtWriteRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG);
-NTSTATUS WINAPI NtWriteVirtualMemory(HANDLE,void*,const void*,SIZE_T,SIZE_T*);
-NTSTATUS WINAPI NtYieldExecution(void);
-
-void WINAPI RtlAcquirePebLock(void);
-BYTE WINAPI RtlAcquireResourceExclusive(LPRTL_RWLOCK,BYTE);
-BYTE WINAPI RtlAcquireResourceShared(LPRTL_RWLOCK,BYTE);
-NTSTATUS WINAPI RtlAddAce(PACL,DWORD,DWORD,PACE_HEADER,DWORD);
-NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
-NTSTATUS WINAPI RtlAddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
-NTSTATUS WINAPI RtlAddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
-NTSTATUS WINAPI RtlAddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
-NTSTATUS WINAPI RtlAddAtomToAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*);
-NTSTATUS WINAPI RtlAddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
-PVOID WINAPI RtlAddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
-NTSTATUS WINAPI RtlAdjustPrivilege(ULONG,BOOLEAN,BOOLEAN,PBOOLEAN);
-NTSTATUS WINAPI RtlAllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
-RTL_HANDLE * WINAPI RtlAllocateHandle(RTL_HANDLE_TABLE *,ULONG *);
-PVOID WINAPI RtlAllocateHeap(HANDLE,ULONG,SIZE_T);
-WCHAR WINAPI RtlAnsiCharToUnicodeChar(LPSTR *);
-DWORD WINAPI RtlAnsiStringToUnicodeSize(const STRING *);
-NTSTATUS WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING,PCANSI_STRING,BOOLEAN);
-NTSTATUS WINAPI RtlAppendAsciizToString(STRING *,LPCSTR);
-NTSTATUS WINAPI RtlAppendStringToString(STRING *,const STRING *);
-NTSTATUS WINAPI RtlAppendUnicodeStringToString(UNICODE_STRING *,const UNICODE_STRING *);
-NTSTATUS WINAPI RtlAppendUnicodeToString(UNICODE_STRING *,LPCWSTR);
-BOOLEAN WINAPI RtlAreAllAccessesGranted(ACCESS_MASK,ACCESS_MASK);
-BOOLEAN WINAPI RtlAreAnyAccessesGranted(ACCESS_MASK,ACCESS_MASK);
-BOOLEAN WINAPI RtlAreBitsSet(PCRTL_BITMAP,ULONG,ULONG);
-BOOLEAN WINAPI RtlAreBitsClear(PCRTL_BITMAP,ULONG,ULONG);
-
-NTSTATUS WINAPI RtlCharToInteger(PCSZ,ULONG,PULONG);
-NTSTATUS WINAPI RtlCheckRegistryKey(ULONG, PWSTR);
-void WINAPI RtlClearAllBits(PRTL_BITMAP);
-void WINAPI RtlClearBits(PRTL_BITMAP,ULONG,ULONG);
-PDEBUG_BUFFER WINAPI RtlCreateQueryDebugBuffer(ULONG,BOOLEAN);
-ULONG WINAPI RtlCompactHeap(HANDLE,ULONG);
-LONG WINAPI RtlCompareString(const STRING*,const STRING*,BOOLEAN);
-LONG WINAPI RtlCompareUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
-DWORD WINAPI RtlComputeCrc32(DWORD,PBYTE,INT);
-NTSTATUS WINAPI RtlConvertSidToUnicodeString(PUNICODE_STRING,PSID,BOOLEAN);
-LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG);
-ULONGLONG WINAPI RtlConvertUlongToLargeInteger(ULONG);
-void WINAPI RtlCopyLuid(PLUID,const LUID*);
-void WINAPI RtlCopyLuidAndAttributesArray(ULONG,const LUID_AND_ATTRIBUTES*,PLUID_AND_ATTRIBUTES);
-BOOLEAN WINAPI RtlCopySid(DWORD,PSID,PSID);
-NTSTATUS WINAPI RtlCopySecurityDescriptor(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR);
-void WINAPI RtlCopyString(STRING*,const STRING*);
-void WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*);
-NTSTATUS WINAPI RtlCreateAcl(PACL,DWORD,DWORD);
-NTSTATUS WINAPI RtlCreateAtomTable(ULONG,RTL_ATOM_TABLE*);
-NTSTATUS WINAPI RtlCreateEnvironment(BOOLEAN, PWSTR*);
-HANDLE WINAPI RtlCreateHeap(ULONG,PVOID,SIZE_T,SIZE_T,PVOID,PRTL_HEAP_DEFINITION);
-NTSTATUS WINAPI RtlCreateProcessParameters(RTL_USER_PROCESS_PARAMETERS**,const UNICODE_STRING*,
- const UNICODE_STRING*,const UNICODE_STRING*,
- const UNICODE_STRING*,PWSTR,const UNICODE_STRING*,
- const UNICODE_STRING*,const UNICODE_STRING*,
- const UNICODE_STRING*);
-NTSTATUS WINAPI RtlCreateSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
-BOOLEAN WINAPI RtlCreateUnicodeString(PUNICODE_STRING,LPCWSTR);
-BOOLEAN WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR);
-NTSTATUS WINAPI RtlCreateUserThread(HANDLE,const SECURITY_DESCRIPTOR*,BOOLEAN,PVOID,SIZE_T,SIZE_T,PRTL_THREAD_START_ROUTINE,void*,HANDLE*,CLIENT_ID*);
-
-NTSTATUS WINAPI RtlDeleteAce(PACL,DWORD);
-NTSTATUS WINAPI RtlDeleteAtomFromAtomTable(RTL_ATOM_TABLE,RTL_ATOM);
-NTSTATUS WINAPI RtlDeleteCriticalSection(RTL_CRITICAL_SECTION *);
-NTSTATUS WINAPI RtlDeleteRegistryValue(ULONG, PCWSTR, PCWSTR);
-void WINAPI RtlDeleteResource(LPRTL_RWLOCK);
-NTSTATUS WINAPI RtlDeleteSecurityObject(PSECURITY_DESCRIPTOR*);
-PRTL_USER_PROCESS_PARAMETERS WINAPI RtlDeNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*);
-NTSTATUS WINAPI RtlDestroyAtomTable(RTL_ATOM_TABLE);
-NTSTATUS WINAPI RtlDestroyEnvironment(PWSTR);
-NTSTATUS WINAPI RtlDestroyHandleTable(RTL_HANDLE_TABLE *);
-HANDLE WINAPI RtlDestroyHeap(HANDLE);
-void WINAPI RtlDestroyProcessParameters(RTL_USER_PROCESS_PARAMETERS*);
-NTSTATUS WINAPI RtlDestroyQueryDebugBuffer(PDEBUG_BUFFER);
-DOS_PATHNAME_TYPE WINAPI RtlDetermineDosPathNameType_U(PCWSTR);
-BOOLEAN WINAPI RtlDoesFileExists_U(LPCWSTR);
-BOOLEAN WINAPI RtlDosPathNameToNtPathName_U(PCWSTR,PUNICODE_STRING,PWSTR*,CURDIR*);
-ULONG WINAPI RtlDosSearchPath_U(LPCWSTR, LPCWSTR, LPCWSTR, ULONG, LPWSTR, LPWSTR*);
-WCHAR WINAPI RtlDowncaseUnicodeChar(WCHAR);
-NTSTATUS WINAPI RtlDowncaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
-void WINAPI RtlDumpResource(LPRTL_RWLOCK);
-NTSTATUS WINAPI RtlDuplicateUnicodeString(int,const UNICODE_STRING*,UNICODE_STRING*);
-
-NTSTATUS WINAPI RtlEmptyAtomTable(RTL_ATOM_TABLE,BOOLEAN);
-LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT,INT);
-ULONGLONG WINAPI RtlEnlargedUnsignedMultiply(UINT,UINT);
-UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG,UINT,UINT *);
-NTSTATUS WINAPI RtlEnterCriticalSection(RTL_CRITICAL_SECTION *);
-void WINAPI RtlEraseUnicodeString(UNICODE_STRING*);
-NTSTATUS WINAPI RtlEqualComputerName(const UNICODE_STRING*,const UNICODE_STRING*);
-NTSTATUS WINAPI RtlEqualDomainName(const UNICODE_STRING*,const UNICODE_STRING*);
-BOOLEAN WINAPI RtlEqualLuid(const LUID*,const LUID*);
-BOOL WINAPI RtlEqualPrefixSid(PSID,PSID);
-BOOL WINAPI RtlEqualSid(PSID,PSID);
-BOOLEAN WINAPI RtlEqualString(const STRING*,const STRING*,BOOLEAN);
-BOOLEAN WINAPI RtlEqualUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
-void DECLSPEC_NORETURN WINAPI RtlExitUserThread(ULONG);
-NTSTATUS WINAPI RtlExpandEnvironmentStrings_U(PWSTR, const UNICODE_STRING*, UNICODE_STRING*, ULONG*);
-LONGLONG WINAPI RtlExtendedMagicDivide(LONGLONG,LONGLONG,INT);
-LONGLONG WINAPI RtlExtendedIntegerMultiply(LONGLONG,INT);
-LONGLONG WINAPI RtlExtendedLargeIntegerDivide(LONGLONG,INT,INT *);
-
-NTSTATUS WINAPI RtlFindCharInUnicodeString(int,const UNICODE_STRING*,const UNICODE_STRING*,USHORT*);
-ULONG WINAPI RtlFindClearBits(PCRTL_BITMAP,ULONG,ULONG);
-ULONG WINAPI RtlFindClearBitsAndSet(PRTL_BITMAP,ULONG,ULONG);
-ULONG WINAPI RtlFindClearRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN);
-ULONG WINAPI RtlFindLastBackwardRunSet(PCRTL_BITMAP,ULONG,PULONG);
-ULONG WINAPI RtlFindLastBackwardRunClear(PCRTL_BITMAP,ULONG,PULONG);
-CCHAR WINAPI RtlFindLeastSignificantBit(ULONGLONG);
-ULONG WINAPI RtlFindLongestRunSet(PCRTL_BITMAP,PULONG);
-ULONG WINAPI RtlFindLongestRunClear(PCRTL_BITMAP,PULONG);
-NTSTATUS WINAPI RtlFindMessage(HMODULE,ULONG,ULONG,ULONG,const MESSAGE_RESOURCE_ENTRY**);
-CCHAR WINAPI RtlFindMostSignificantBit(ULONGLONG);
-ULONG WINAPI RtlFindNextForwardRunSet(PCRTL_BITMAP,ULONG,PULONG);
-ULONG WINAPI RtlFindNextForwardRunClear(PCRTL_BITMAP,ULONG,PULONG);
-ULONG WINAPI RtlFindSetBits(PCRTL_BITMAP,ULONG,ULONG);
-ULONG WINAPI RtlFindSetBitsAndClear(PRTL_BITMAP,ULONG,ULONG);
-ULONG WINAPI RtlFindSetRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN);
-BOOLEAN WINAPI RtlFirstFreeAce(PACL,PACE_HEADER *);
-NTSTATUS WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING);
-NTSTATUS WINAPI RtlFormatMessage(LPWSTR,UCHAR,BOOLEAN,BOOLEAN,BOOLEAN,va_list *,LPWSTR,ULONG);
-void WINAPI RtlFreeAnsiString(PANSI_STRING);
-BOOLEAN WINAPI RtlFreeHandle(RTL_HANDLE_TABLE *,RTL_HANDLE *);
-BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID);
-void WINAPI RtlFreeOemString(POEM_STRING);
-DWORD WINAPI RtlFreeSid(PSID);
-void WINAPI RtlFreeUnicodeString(PUNICODE_STRING);
-
-NTSTATUS WINAPI RtlGetAce(PACL,DWORD,LPVOID *);
-NTSTATUS WINAPI RtlGetControlSecurityDescriptor(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
-NTSTATUS WINAPI RtlGetCurrentDirectory_U(ULONG, LPWSTR);
-PEB * WINAPI RtlGetCurrentPeb(void);
-NTSTATUS WINAPI RtlGetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,PBOOLEAN,PACL *,PBOOLEAN);
-ULONG WINAPI RtlGetFullPathName_U(PCWSTR,ULONG,PWSTR,PWSTR*);
-NTSTATUS WINAPI RtlGetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID *,PBOOLEAN);
-NTSTATUS WINAPI RtlGetLastNtStatus(void);
-DWORD WINAPI RtlGetLastWin32Error(void);
-DWORD WINAPI RtlGetLongestNtPathLength(void);
-BOOLEAN WINAPI RtlGetNtProductType(LPDWORD);
-NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID *,PBOOLEAN);
-ULONG WINAPI RtlGetProcessHeaps(ULONG,HANDLE*);
-NTSTATUS WINAPI RtlGetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR,PBOOLEAN,PACL *,PBOOLEAN);
-NTSTATUS WINAPI RtlGetVersion(RTL_OSVERSIONINFOEXW*);
-NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING,GUID*);
-
-PSID_IDENTIFIER_AUTHORITY WINAPI RtlIdentifierAuthoritySid(PSID);
-PVOID WINAPI RtlImageDirectoryEntryToData(HMODULE,BOOL,WORD,ULONG *);
-PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE);
-PIMAGE_SECTION_HEADER WINAPI RtlImageRvaToSection(const IMAGE_NT_HEADERS *,HMODULE,DWORD);
-PVOID WINAPI RtlImageRvaToVa(const IMAGE_NT_HEADERS *,HMODULE,DWORD,IMAGE_SECTION_HEADER **);
-NTSTATUS WINAPI RtlImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
-void WINAPI RtlInitString(PSTRING,PCSZ);
-void WINAPI RtlInitAnsiString(PANSI_STRING,PCSZ);
-NTSTATUS WINAPI RtlInitAnsiStringEx(PANSI_STRING,PCSZ);
-void WINAPI RtlInitUnicodeString(PUNICODE_STRING,PCWSTR);
-NTSTATUS WINAPI RtlInitUnicodeStringEx(PUNICODE_STRING,PCWSTR);
-NTSTATUS WINAPI RtlInitializeCriticalSection(RTL_CRITICAL_SECTION *);
-NTSTATUS WINAPI RtlInitializeCriticalSectionAndSpinCount(RTL_CRITICAL_SECTION *,DWORD);
-void WINAPI RtlInitializeBitMap(PRTL_BITMAP,PULONG,ULONG);
-void WINAPI RtlInitializeHandleTable(ULONG,ULONG,RTL_HANDLE_TABLE *);
-void WINAPI RtlInitializeResource(LPRTL_RWLOCK);
-BOOL WINAPI RtlInitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
-
-NTSTATUS WINAPI RtlInt64ToUnicodeString(ULONGLONG,ULONG,UNICODE_STRING *);
-NTSTATUS WINAPI RtlIntegerToChar(ULONG,ULONG,ULONG,PCHAR);
-NTSTATUS WINAPI RtlIntegerToUnicodeString(ULONG,ULONG,UNICODE_STRING *);
-ULONG WINAPI RtlIsDosDeviceName_U(PCWSTR);
-BOOLEAN WINAPI RtlIsNameLegalDOS8Dot3(const UNICODE_STRING*,POEM_STRING,PBOOLEAN);
-BOOLEAN WINAPI RtlIsTextUnicode(LPCVOID,INT,INT *);
-BOOLEAN WINAPI RtlIsValidHandle(const RTL_HANDLE_TABLE *, const RTL_HANDLE *);
-BOOLEAN WINAPI RtlIsValidIndexHandle(const RTL_HANDLE_TABLE *, ULONG Index, RTL_HANDLE **);
-
-LONGLONG WINAPI RtlLargeIntegerAdd(LONGLONG,LONGLONG);
-LONGLONG WINAPI RtlLargeIntegerArithmeticShift(LONGLONG,INT);
-ULONGLONG WINAPI RtlLargeIntegerDivide( ULONGLONG,ULONGLONG,ULONGLONG *);
-LONGLONG WINAPI RtlLargeIntegerNegate(LONGLONG);
-LONGLONG WINAPI RtlLargeIntegerShiftLeft(LONGLONG,INT);
-LONGLONG WINAPI RtlLargeIntegerShiftRight(LONGLONG,INT);
-LONGLONG WINAPI RtlLargeIntegerSubtract(LONGLONG,LONGLONG);
-NTSTATUS WINAPI RtlLargeIntegerToChar(const ULONGLONG *,ULONG,ULONG,PCHAR);
-NTSTATUS WINAPI RtlLeaveCriticalSection(RTL_CRITICAL_SECTION *);
-DWORD WINAPI RtlLengthRequiredSid(DWORD);
-ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR);
-DWORD WINAPI RtlLengthSid(PSID);
-NTSTATUS WINAPI RtlLocalTimeToSystemTime(const LARGE_INTEGER*,PLARGE_INTEGER);
-BOOLEAN WINAPI RtlLockHeap(HANDLE);
-NTSTATUS WINAPI RtlLookupAtomInAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*);
-
-NTSTATUS WINAPI RtlMakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD);
-void WINAPI RtlMapGenericMask(PACCESS_MASK,const GENERIC_MAPPING*);
-NTSTATUS WINAPI RtlMultiByteToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD);
-NTSTATUS WINAPI RtlMultiByteToUnicodeSize(DWORD*,LPCSTR,UINT);
-
-NTSTATUS WINAPI RtlNewSecurityObject(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOLEAN,HANDLE,PGENERIC_MAPPING);
-PRTL_USER_PROCESS_PARAMETERS WINAPI RtlNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*);
-ULONG WINAPI RtlNtStatusToDosError(NTSTATUS);
-ULONG WINAPI RtlNtStatusToDosErrorNoTeb(NTSTATUS);
-ULONG WINAPI RtlNumberOfSetBits(PCRTL_BITMAP);
-ULONG WINAPI RtlNumberOfClearBits(PCRTL_BITMAP);
-
-UINT WINAPI RtlOemStringToUnicodeSize(const STRING*);
-NTSTATUS WINAPI RtlOemStringToUnicodeString(UNICODE_STRING*,const STRING*,BOOLEAN);
-NTSTATUS WINAPI RtlOemToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD);
-NTSTATUS WINAPI RtlOpenCurrentUser(ACCESS_MASK,PHANDLE);
-
-PVOID WINAPI RtlPcToFileHeader(PVOID,PVOID*);
-NTSTATUS WINAPI RtlPinAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM);
-BOOLEAN WINAPI RtlPrefixString(const STRING*,const STRING*,BOOLEAN);
-BOOLEAN WINAPI RtlPrefixUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
-
-NTSTATUS WINAPI RtlQueryAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM,ULONG*,ULONG*,WCHAR*,ULONG*);
-NTSTATUS WINAPI RtlQueryEnvironmentVariable_U(PWSTR,PUNICODE_STRING,PUNICODE_STRING);
-NTSTATUS WINAPI RtlQueryInformationAcl(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
-NTSTATUS WINAPI RtlQueryProcessDebugInformation(ULONG,ULONG,PDEBUG_BUFFER);
-NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID);
-NTSTATUS WINAPI RtlQueryTimeZoneInformation(RTL_TIME_ZONE_INFORMATION*);
-NTSTATUS WINAPI RtlQueueWorkItem(PRTL_WORK_ITEM_ROUTINE,PVOID,ULONG);
-void WINAPI RtlRaiseException(PEXCEPTION_RECORD);
-void WINAPI RtlRaiseStatus(NTSTATUS);
-ULONG WINAPI RtlRandom(PULONG);
-PVOID WINAPI RtlReAllocateHeap(HANDLE,ULONG,PVOID,SIZE_T);
-void WINAPI RtlReleasePebLock(void);
-void WINAPI RtlReleaseResource(LPRTL_RWLOCK);
-ULONG WINAPI RtlRemoveVectoredExceptionHandler(PVOID);
-void WINAPI RtlRestoreLastWin32Error(DWORD);
-
-void WINAPI RtlSecondsSince1970ToTime(DWORD,LARGE_INTEGER *);
-void WINAPI RtlSecondsSince1980ToTime(DWORD,LARGE_INTEGER *);
-NTSTATUS WINAPI RtlSelfRelativeToAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,
- PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD);
-void WINAPI RtlSetAllBits(PRTL_BITMAP);
-void WINAPI RtlSetBits(PRTL_BITMAP,ULONG,ULONG);
-ULONG WINAPI RtlSetCriticalSectionSpinCount(RTL_CRITICAL_SECTION*,ULONG);
-NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING*);
-void WINAPI RtlSetCurrentEnvironment(PWSTR, PWSTR*);
-NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,BOOLEAN,PACL,BOOLEAN);
-NTSTATUS WINAPI RtlSetEnvironmentVariable(PWSTR*,PUNICODE_STRING,PUNICODE_STRING);
-NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID,BOOLEAN);
-NTSTATUS WINAPI RtlSetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID,BOOLEAN);
-void WINAPI RtlSetLastWin32Error(DWORD);
-void WINAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus(NTSTATUS);
-NTSTATUS WINAPI RtlSetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR,BOOLEAN,PACL,BOOLEAN);
-NTSTATUS WINAPI RtlSetTimeZoneInformation(const RTL_TIME_ZONE_INFORMATION*);
-SIZE_T WINAPI RtlSizeHeap(HANDLE,ULONG,PVOID);
-NTSTATUS WINAPI RtlStringFromGUID(REFGUID,PUNICODE_STRING);
-LPDWORD WINAPI RtlSubAuthoritySid(PSID,DWORD);
-LPBYTE WINAPI RtlSubAuthorityCountSid(PSID);
-NTSTATUS WINAPI RtlSystemTimeToLocalTime(const LARGE_INTEGER*,PLARGE_INTEGER);
-
-void WINAPI RtlTimeToTimeFields(const LARGE_INTEGER*,PTIME_FIELDS);
-BOOLEAN WINAPI RtlTimeFieldsToTime(PTIME_FIELDS,PLARGE_INTEGER);
-void WINAPI RtlTimeToElapsedTimeFields(const LARGE_INTEGER *,PTIME_FIELDS);
-BOOLEAN WINAPI RtlTimeToSecondsSince1970(const LARGE_INTEGER *,LPDWORD);
-BOOLEAN WINAPI RtlTimeToSecondsSince1980(const LARGE_INTEGER *,LPDWORD);
-BOOL WINAPI RtlTryEnterCriticalSection(RTL_CRITICAL_SECTION *);
-
-ULONGLONG __cdecl RtlUlonglongByteSwap(ULONGLONG);
-DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING*);
-NTSTATUS WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING,PCUNICODE_STRING,BOOLEAN);
-NTSTATUS WINAPI RtlUnicodeStringToInteger(const UNICODE_STRING *,ULONG,ULONG *);
-DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING*);
-NTSTATUS WINAPI RtlUnicodeStringToOemString(POEM_STRING,PCUNICODE_STRING,BOOLEAN);
-NTSTATUS WINAPI RtlUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
-NTSTATUS WINAPI RtlUnicodeToMultiByteSize(PULONG,PCWSTR,ULONG);
-NTSTATUS WINAPI RtlUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
-ULONG WINAPI RtlUniform(PULONG);
-BOOLEAN WINAPI RtlUnlockHeap(HANDLE);
-void WINAPI RtlUnwind(PVOID,PVOID,PEXCEPTION_RECORD,PVOID);
+NTSYSAPI NTSTATUS WINAPIV DbgPrint(LPCSTR fmt, ...);
+NTSYSAPI NTSTATUS WINAPIV DbgPrintEx(ULONG iComponentId, ULONG Level, LPCSTR fmt, ...);
+NTSYSAPI NTSTATUS WINAPI LdrAccessResource(HMODULE,const IMAGE_RESOURCE_DATA_ENTRY*,void**,PULONG);
+NTSYSAPI NTSTATUS WINAPI LdrAddRefDll(ULONG,HMODULE);
+NTSYSAPI NTSTATUS WINAPI LdrFindResourceDirectory_U(HMODULE,const LDR_RESOURCE_INFO*,ULONG,const IMAGE_RESOURCE_DIRECTORY**);
+NTSYSAPI NTSTATUS WINAPI LdrFindResource_U(HMODULE,const LDR_RESOURCE_INFO*,ULONG,const IMAGE_RESOURCE_DATA_ENTRY**);
+NTSYSAPI NTSTATUS WINAPI LdrDisableThreadCalloutsForDll(HMODULE);
+NTSYSAPI NTSTATUS WINAPI LdrFindEntryForAddress(const void*, PLDR_MODULE*);
+NTSYSAPI NTSTATUS WINAPI LdrGetDllHandle(LPCWSTR, ULONG, const UNICODE_STRING*, HMODULE*);
+NTSYSAPI NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE, const ANSI_STRING*, ULONG, void**);
+NTSYSAPI void WINAPI LdrInitializeThunk(void*,ULONG_PTR,ULONG_PTR,ULONG_PTR);
+NTSYSAPI NTSTATUS WINAPI LdrLoadDll(LPCWSTR, DWORD, const UNICODE_STRING*, HMODULE*);
+NTSYSAPI NTSTATUS WINAPI LdrLockLoaderLock(ULONG,ULONG*,ULONG*);
+IMAGE_BASE_RELOCATION * WINAPI LdrProcessRelocationBlock(void*,UINT,USHORT*,INT_PTR);
+NTSYSAPI NTSTATUS WINAPI LdrQueryImageFileExecutionOptions(const UNICODE_STRING*,LPCWSTR,ULONG,void*,ULONG,ULONG*);
+NTSYSAPI NTSTATUS WINAPI LdrQueryProcessModuleInformation(SYSTEM_MODULE_INFORMATION*, ULONG, ULONG*);
+NTSYSAPI void WINAPI LdrShutdownProcess(void);
+NTSYSAPI void WINAPI LdrShutdownThread(void);
+NTSYSAPI NTSTATUS WINAPI LdrUnloadDll(HMODULE);
+NTSYSAPI NTSTATUS WINAPI LdrUnlockLoaderLock(ULONG,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtAcceptConnectPort(PHANDLE,ULONG,PLPC_MESSAGE,BOOLEAN,PLPC_SECTION_WRITE,PLPC_SECTION_READ);
+NTSYSAPI NTSTATUS WINAPI NtAccessCheck(PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,PGENERIC_MAPPING,PPRIVILEGE_SET,PULONG,PULONG,NTSTATUS*);
+NTSYSAPI NTSTATUS WINAPI NtAccessCheckAndAuditAlarm(PUNICODE_STRING,HANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,ACCESS_MASK,PGENERIC_MAPPING,BOOLEAN,PACCESS_MASK,PBOOLEAN,PBOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtAddAtom(const WCHAR*,ULONG,RTL_ATOM*);
+NTSYSAPI NTSTATUS WINAPI NtAdjustGroupsToken(HANDLE,BOOLEAN,PTOKEN_GROUPS,ULONG,PTOKEN_GROUPS,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtAdjustPrivilegesToken(HANDLE,BOOLEAN,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
+NTSYSAPI NTSTATUS WINAPI NtAlertResumeThread(HANDLE,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtAlertThread(HANDLE ThreadHandle);
+NTSYSAPI NTSTATUS WINAPI NtAllocateLocallyUniqueId(PLUID lpLuid);
+NTSYSAPI NTSTATUS WINAPI NtAllocateUuids(PULARGE_INTEGER,PULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtAllocateVirtualMemory(HANDLE,PVOID*,ULONG,SIZE_T*,ULONG,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtAreMappedFilesTheSame(PVOID,PVOID);
+NTSYSAPI NTSTATUS WINAPI NtAssignProcessToJobObject(HANDLE,HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtCallbackReturn(PVOID,ULONG,NTSTATUS);
+NTSYSAPI NTSTATUS WINAPI NtCancelIoFile(HANDLE,PIO_STATUS_BLOCK);
+NTSYSAPI NTSTATUS WINAPI NtCancelIoFileEx(HANDLE,PIO_STATUS_BLOCK,PIO_STATUS_BLOCK);
+NTSYSAPI NTSTATUS WINAPI NtCancelTimer(HANDLE, BOOLEAN*);
+NTSYSAPI NTSTATUS WINAPI NtClearEvent(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtClose(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtCloseObjectAuditAlarm(PUNICODE_STRING,HANDLE,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtCompleteConnectPort(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PLPC_SECTION_READ,PULONG,PVOID,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtContinue(PCONTEXT,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtCreateDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtCreateEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,EVENT_TYPE,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtCreateEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,PLARGE_INTEGER,ULONG,ULONG,ULONG,ULONG,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtCreateIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtCreateJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
+NTSYSAPI NTSTATUS WINAPI NtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtCreateMailslotFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtCreateMutant(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtCreateNamedPipeFile(PHANDLE,ULONG,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtCreatePagingFile(PUNICODE_STRING,PLARGE_INTEGER,PLARGE_INTEGER,PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtCreatePort(PHANDLE,POBJECT_ATTRIBUTES,ULONG,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtCreateProcess(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,HANDLE,BOOLEAN,HANDLE,HANDLE,HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtCreateProfile(PHANDLE,HANDLE,PVOID,ULONG,ULONG,PVOID,ULONG,KPROFILE_SOURCE,KAFFINITY);
+NTSYSAPI NTSTATUS WINAPI NtCreateSection(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,const LARGE_INTEGER*,ULONG,ULONG,HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtCreateSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,LONG,LONG);
+NTSYSAPI NTSTATUS WINAPI NtCreateSymbolicLinkObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PUNICODE_STRING);
+NTSYSAPI NTSTATUS WINAPI NtCreateThread(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,HANDLE,PCLIENT_ID,PCONTEXT,PINITIAL_TEB,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtCreateTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRIBUTES*, TIMER_TYPE);
+NTSYSAPI NTSTATUS WINAPI NtCreateToken(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,TOKEN_TYPE,PLUID,PLARGE_INTEGER,PTOKEN_USER,PTOKEN_GROUPS,PTOKEN_PRIVILEGES,PTOKEN_OWNER,PTOKEN_PRIMARY_GROUP,PTOKEN_DEFAULT_DACL,PTOKEN_SOURCE);
+NTSYSAPI NTSTATUS WINAPI NtDelayExecution(BOOLEAN,const LARGE_INTEGER*);
+NTSYSAPI NTSTATUS WINAPI NtDeleteAtom(RTL_ATOM);
+NTSYSAPI NTSTATUS WINAPI NtDeleteFile(POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtDeleteKey(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtDeleteValueKey(HANDLE,const UNICODE_STRING *);
+NTSYSAPI NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtDisplayString(PUNICODE_STRING);
+NTSYSAPI NTSTATUS WINAPI NtDuplicateObject(HANDLE,HANDLE,HANDLE,PHANDLE,ACCESS_MASK,ULONG,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtDuplicateToken(HANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
+NTSYSAPI NTSTATUS WINAPI NtEnumerateKey(HANDLE,ULONG,KEY_INFORMATION_CLASS,void *,DWORD,DWORD *);
+NTSYSAPI NTSTATUS WINAPI NtEnumerateValueKey(HANDLE,ULONG,KEY_VALUE_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtExtendSection(HANDLE,PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtFindAtom(const WCHAR*,ULONG,RTL_ATOM*);
+NTSYSAPI NTSTATUS WINAPI NtFlushBuffersFile(HANDLE,IO_STATUS_BLOCK*);
+NTSYSAPI NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
+NTSYSAPI NTSTATUS WINAPI NtFlushKey(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtFlushWriteBuffer(VOID);
+NTSYSAPI NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtGetContextThread(HANDLE,CONTEXT*);
+NTSYSAPI NTSTATUS WINAPI NtGetPlugPlayEvent(ULONG,ULONG,PVOID,ULONG);
+NTSYSAPI ULONG WINAPI NtGetTickCount(VOID);
+NTSYSAPI NTSTATUS WINAPI NtGetWriteWatch(HANDLE,ULONG,PVOID,SIZE_T,PVOID*,ULONG_PTR*,ULONG*);
+NTSYSAPI NTSTATUS WINAPI NtImpersonateAnonymousToken(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtImpersonateClientOfPort(HANDLE,PPORT_MESSAGE);
+NTSYSAPI NTSTATUS WINAPI NtImpersonateThread(HANDLE,HANDLE,PSECURITY_QUALITY_OF_SERVICE);
+NTSYSAPI NTSTATUS WINAPI NtInitializeRegistry(BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtInitiatePowerAction(POWER_ACTION,SYSTEM_POWER_STATE,ULONG,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtIsProcessInJob(HANDLE,HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtListenPort(HANDLE,PLPC_MESSAGE);
+NTSYSAPI NTSTATUS WINAPI NtLoadDriver(const UNICODE_STRING *);
+NTSYSAPI NTSTATUS WINAPI NtLoadKey(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *);
+NTSYSAPI NTSTATUS WINAPI NtLockFile(HANDLE,HANDLE,PIO_APC_ROUTINE,void*,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,ULONG*,BOOLEAN,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtLockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtMakeTemporaryObject(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtMapViewOfSection(HANDLE,HANDLE,PVOID*,ULONG,SIZE_T,const LARGE_INTEGER*,SIZE_T*,SECTION_INHERIT,ULONG,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtNotifyChangeDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,ULONG,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtNotifyChangeKey(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtOpenDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtOpenEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *);
+NTSYSAPI NTSTATUS WINAPI NtOpenEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtOpenFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtOpenIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtOpenJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
+NTSYSAPI NTSTATUS WINAPI NtOpenKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *);
+NTSYSAPI NTSTATUS WINAPI NtOpenMutant(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
+NTSYSAPI NTSTATUS WINAPI NtOpenObjectAuditAlarm(PUNICODE_STRING,PHANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,ACCESS_MASK,PPRIVILEGE_SET,BOOLEAN,BOOLEAN,PBOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtOpenProcess(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,const CLIENT_ID*);
+NTSYSAPI NTSTATUS WINAPI NtOpenProcessToken(HANDLE,DWORD,HANDLE *);
+NTSYSAPI NTSTATUS WINAPI NtOpenProcessTokenEx(HANDLE,DWORD,DWORD,HANDLE *);
+NTSYSAPI NTSTATUS WINAPI NtOpenSection(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
+NTSYSAPI NTSTATUS WINAPI NtOpenSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*);
+NTSYSAPI NTSTATUS WINAPI NtOpenSymbolicLinkObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtOpenThread(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,const CLIENT_ID*);
+NTSYSAPI NTSTATUS WINAPI NtOpenThreadToken(HANDLE,DWORD,BOOLEAN,HANDLE *);
+NTSYSAPI NTSTATUS WINAPI NtOpenThreadTokenEx(HANDLE,DWORD,BOOLEAN,DWORD,HANDLE *);
+NTSYSAPI NTSTATUS WINAPI NtOpenTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRIBUTES*);
+NTSYSAPI NTSTATUS WINAPI NtPowerInformation(POWER_INFORMATION_LEVEL,PVOID,ULONG,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtPrivilegeCheck(HANDLE,PPRIVILEGE_SET,PBOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtPrivilegeObjectAuditAlarm(PUNICODE_STRING,HANDLE,HANDLE,ULONG,PPRIVILEGE_SET,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtPrivilegedServiceAuditAlarm(PUNICODE_STRING,PUNICODE_STRING,HANDLE,PPRIVILEGE_SET,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtProtectVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG,ULONG*);
+NTSYSAPI NTSTATUS WINAPI NtPulseEvent(HANDLE,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueueApcThread(HANDLE,PNTAPCFUNC,ULONG_PTR,ULONG_PTR,ULONG_PTR);
+NTSYSAPI NTSTATUS WINAPI NtQueryAttributesFile(const OBJECT_ATTRIBUTES*,FILE_BASIC_INFORMATION*);
+NTSYSAPI NTSTATUS WINAPI NtQueryDefaultLocale(BOOLEAN,LCID*);
+NTSYSAPI NTSTATUS WINAPI NtQueryDefaultUILanguage(LANGID*);
+NTSYSAPI NTSTATUS WINAPI NtQueryDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS,BOOLEAN,PUNICODE_STRING,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtQueryDirectoryObject(HANDLE,PDIRECTORY_BASIC_INFORMATION,ULONG,BOOLEAN,BOOLEAN,PULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryEaFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,BOOLEAN,PVOID,ULONG,PULONG,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI NtQueryEvent(HANDLE,EVENT_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryFullAttributesFile(const OBJECT_ATTRIBUTES*,FILE_NETWORK_OPEN_INFORMATION*);
+NTSYSAPI NTSTATUS WINAPI NtQueryInformationAtom(RTL_ATOM,ATOM_INFORMATION_CLASS,PVOID,ULONG,ULONG*);
+NTSYSAPI NTSTATUS WINAPI NtQueryInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,LONG,FILE_INFORMATION_CLASS);
+NTSYSAPI NTSTATUS WINAPI NtQueryInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryInformationPort(HANDLE,PORT_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryInformationThread(HANDLE,THREADINFOCLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryInstallUILanguage(LANGID*);
+NTSYSAPI NTSTATUS WINAPI NtQueryIntervalProfile(KPROFILE_SOURCE,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryIoCompletion(HANDLE,IO_COMPLETION_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryKey(HANDLE,KEY_INFORMATION_CLASS,void *,DWORD,DWORD *);
+NTSYSAPI NTSTATUS WINAPI NtQueryMultipleValueKey(HANDLE,PKEY_MULTIPLE_VALUE_INFORMATION,ULONG,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryMutant(HANDLE,MUTANT_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG, PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryOpenSubKeys(POBJECT_ATTRIBUTES,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryPerformanceCounter(PLARGE_INTEGER, PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtQuerySecurityObject(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQuerySection(HANDLE,SECTION_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQuerySemaphore(HANDLE,SEMAPHORE_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQuerySymbolicLinkObject(HANDLE,PUNICODE_STRING,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQuerySystemEnvironmentValue(PUNICODE_STRING,PWCHAR,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtQueryTimer(HANDLE,TIMER_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryTimerResolution(PULONG,PULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtQueryValueKey(HANDLE,const UNICODE_STRING *,KEY_VALUE_INFORMATION_CLASS,void *,DWORD,DWORD *);
+NTSYSAPI NTSTATUS WINAPI NtQueryVirtualMemory(HANDLE,LPCVOID,MEMORY_INFORMATION_CLASS,PVOID,SIZE_T,SIZE_T*);
+NTSYSAPI NTSTATUS WINAPI NtQueryVolumeInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS);
+NTSYSAPI NTSTATUS WINAPI NtRaiseException(PEXCEPTION_RECORD,PCONTEXT,BOOL);
+NTSYSAPI NTSTATUS WINAPI NtRaiseHardError(NTSTATUS,ULONG,PUNICODE_STRING,PVOID*,HARDERROR_RESPONSE_OPTION,PHARDERROR_RESPONSE);
+NTSYSAPI NTSTATUS WINAPI NtReadFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,PLARGE_INTEGER,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtReadFileScatter(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,FILE_SEGMENT_ELEMENT*,ULONG,PLARGE_INTEGER,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtReadRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtReadVirtualMemory(HANDLE,const void*,void*,SIZE_T,SIZE_T*);
+NTSYSAPI NTSTATUS WINAPI NtRegisterThreadTerminatePort(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtReleaseMutant(HANDLE,PLONG);
+NTSYSAPI NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG_PTR,PULONG_PTR,PIO_STATUS_BLOCK,PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtReplaceKey(POBJECT_ATTRIBUTES,HANDLE,POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtReplyPort(HANDLE,PLPC_MESSAGE);
+NTSYSAPI NTSTATUS WINAPI NtReplyWaitReceivePort(HANDLE,PULONG,PLPC_MESSAGE,PLPC_MESSAGE);
+NTSYSAPI NTSTATUS WINAPI NtReplyWaitReceivePortEx(HANDLE,PVOID*,PPORT_MESSAGE,PPORT_MESSAGE,PLARGE_INTEGER);
+NTSYSAPI NTSTATUS WINAPI NtReplyWaitReplyPort(HANDLE,PLPC_MESSAGE);
+NTSYSAPI NTSTATUS WINAPI NtRequestPort(HANDLE,PLPC_MESSAGE);
+NTSYSAPI NTSTATUS WINAPI NtRequestWaitReplyPort(HANDLE,PLPC_MESSAGE,PLPC_MESSAGE);
+NTSYSAPI NTSTATUS WINAPI NtResetEvent(HANDLE,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtResetWriteWatch(HANDLE,PVOID,SIZE_T);
+NTSYSAPI NTSTATUS WINAPI NtRestoreKey(HANDLE,HANDLE,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtResumeThread(HANDLE,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtSaveKey(HANDLE,HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtSecureConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PSID,PLPC_SECTION_READ,PULONG,PVOID,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetContextThread(HANDLE,const CONTEXT*);
+NTSYSAPI NTSTATUS WINAPI NtSetDefaultHardErrorPort(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtSetDefaultLocale(BOOLEAN,LCID);
+NTSYSAPI NTSTATUS WINAPI NtSetDefaultUILanguage(LANGID);
+NTSYSAPI NTSTATUS WINAPI NtSetEaFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetEvent(HANDLE,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetHighEventPair(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtSetHighWaitLowEventPair(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtSetHighWaitLowThread(VOID);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationKey(HANDLE,const int,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationProcess(HANDLE,PROCESS_INFORMATION_CLASS,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetIntervalProfile(ULONG,KPROFILE_SOURCE);
+NTSYSAPI NTSTATUS WINAPI NtSetIoCompletion(HANDLE,ULONG_PTR,ULONG_PTR,NTSTATUS,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetLdtEntries(ULONG,LDT_ENTRY,ULONG,LDT_ENTRY);
+NTSYSAPI NTSTATUS WINAPI NtSetLowEventPair(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtSetLowWaitHighEventPair(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtSetLowWaitHighThread(VOID);
+NTSYSAPI NTSTATUS WINAPI NtSetSecurityObject(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
+NTSYSAPI NTSTATUS WINAPI NtSetSystemEnvironmentValue(PUNICODE_STRING,PUNICODE_STRING);
+NTSYSAPI NTSTATUS WINAPI NtSetSystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetSystemPowerState(POWER_ACTION,SYSTEM_POWER_STATE,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetSystemTime(const LARGE_INTEGER*,LARGE_INTEGER*);
+NTSYSAPI NTSTATUS WINAPI NtSetTimer(HANDLE, const LARGE_INTEGER*, PTIMER_APC_ROUTINE, PVOID, BOOLEAN, ULONG, BOOLEAN*);
+NTSYSAPI NTSTATUS WINAPI NtSetTimerResolution(ULONG,BOOLEAN,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetValueKey(HANDLE,const UNICODE_STRING *,ULONG,ULONG,const void *,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtSetVolumeInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS);
+NTSYSAPI NTSTATUS WINAPI NtSignalAndWaitForSingleObject(HANDLE,HANDLE,BOOLEAN,const LARGE_INTEGER*);
+NTSYSAPI NTSTATUS WINAPI NtShutdownSystem(SHUTDOWN_ACTION);
+NTSYSAPI NTSTATUS WINAPI NtStartProfile(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtStopProfile(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtSuspendThread(HANDLE,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtSystemDebugControl(SYSDBG_COMMAND,PVOID,ULONG,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtTerminateJobObject(HANDLE,NTSTATUS);
+NTSYSAPI NTSTATUS WINAPI NtTerminateProcess(HANDLE,LONG);
+NTSYSAPI NTSTATUS WINAPI NtTerminateThread(HANDLE,LONG);
+NTSYSAPI NTSTATUS WINAPI NtTestAlert(VOID);
+NTSYSAPI NTSTATUS WINAPI NtUnloadDriver(const UNICODE_STRING *);
+NTSYSAPI NTSTATUS WINAPI NtUnloadKey(POBJECT_ATTRIBUTES);
+NTSYSAPI NTSTATUS WINAPI NtUnloadKeyEx(POBJECT_ATTRIBUTES,HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtUnlockFile(HANDLE,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtUnlockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
+NTSYSAPI NTSTATUS WINAPI NtUnmapViewOfSection(HANDLE,PVOID);
+NTSYSAPI NTSTATUS WINAPI NtVdmControl(ULONG,PVOID);
+NTSYSAPI NTSTATUS WINAPI NtWaitForSingleObject(HANDLE,BOOLEAN,const LARGE_INTEGER*);
+NTSYSAPI NTSTATUS WINAPI NtWaitForMultipleObjects(ULONG,const HANDLE*,BOOLEAN,BOOLEAN,const LARGE_INTEGER*);
+NTSYSAPI NTSTATUS WINAPI NtWaitHighEventPair(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtWaitLowEventPair(HANDLE);
+NTSYSAPI NTSTATUS WINAPI NtWriteFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,const void*,ULONG,PLARGE_INTEGER,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtWriteFileGather(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,FILE_SEGMENT_ELEMENT*,ULONG,PLARGE_INTEGER,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtWriteRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI NtWriteVirtualMemory(HANDLE,void*,const void*,SIZE_T,SIZE_T*);
+NTSYSAPI NTSTATUS WINAPI NtYieldExecution(void);
+
+NTSYSAPI void WINAPI RtlAcquirePebLock(void);
+NTSYSAPI BYTE WINAPI RtlAcquireResourceExclusive(LPRTL_RWLOCK,BYTE);
+NTSYSAPI BYTE WINAPI RtlAcquireResourceShared(LPRTL_RWLOCK,BYTE);
+NTSYSAPI NTSTATUS WINAPI RtlActivateActivationContext(DWORD,HANDLE,ULONG_PTR*);
+NTSYSAPI NTSTATUS WINAPI RtlAddAce(PACL,DWORD,DWORD,PACE_HEADER,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
+NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
+NTSYSAPI NTSTATUS WINAPI RtlAddAccessDeniedAce(PACL,DWORD,DWORD,PSID);
+NTSYSAPI NTSTATUS WINAPI RtlAddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
+NTSYSAPI NTSTATUS WINAPI RtlAddAtomToAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*);
+NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL);
+NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessAceEx(PACL,DWORD,DWORD,DWORD,PSID,BOOL,BOOL);
+NTSYSAPI void WINAPI RtlAddRefActivationContext(HANDLE);
+NTSYSAPI PVOID WINAPI RtlAddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER);
+NTSYSAPI NTSTATUS WINAPI RtlAdjustPrivilege(ULONG,BOOLEAN,BOOLEAN,PBOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlAllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
+NTSYSAPI RTL_HANDLE * WINAPI RtlAllocateHandle(RTL_HANDLE_TABLE *,ULONG *);
+NTSYSAPI PVOID WINAPI RtlAllocateHeap(HANDLE,ULONG,SIZE_T) __WINE_ALLOC_SIZE(3);
+NTSYSAPI WCHAR WINAPI RtlAnsiCharToUnicodeChar(LPSTR *);
+NTSYSAPI DWORD WINAPI RtlAnsiStringToUnicodeSize(const STRING *);
+NTSYSAPI NTSTATUS WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING,PCANSI_STRING,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlAppendAsciizToString(STRING *,LPCSTR);
+NTSYSAPI NTSTATUS WINAPI RtlAppendStringToString(STRING *,const STRING *);
+NTSYSAPI NTSTATUS WINAPI RtlAppendUnicodeStringToString(UNICODE_STRING *,const UNICODE_STRING *);
+NTSYSAPI NTSTATUS WINAPI RtlAppendUnicodeToString(UNICODE_STRING *,LPCWSTR);
+NTSYSAPI BOOLEAN WINAPI RtlAreAllAccessesGranted(ACCESS_MASK,ACCESS_MASK);
+NTSYSAPI BOOLEAN WINAPI RtlAreAnyAccessesGranted(ACCESS_MASK,ACCESS_MASK);
+NTSYSAPI BOOLEAN WINAPI RtlAreBitsSet(PCRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI BOOLEAN WINAPI RtlAreBitsClear(PCRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlCharToInteger(PCSZ,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI RtlCheckRegistryKey(ULONG, PWSTR);
+NTSYSAPI void WINAPI RtlClearAllBits(PRTL_BITMAP);
+NTSYSAPI void WINAPI RtlClearBits(PRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlCreateActivationContext(HANDLE*,const void*);
+NTSYSAPI PDEBUG_BUFFER WINAPI RtlCreateQueryDebugBuffer(ULONG,BOOLEAN);
+NTSYSAPI ULONG WINAPI RtlCompactHeap(HANDLE,ULONG);
+NTSYSAPI LONG WINAPI RtlCompareString(const STRING*,const STRING*,BOOLEAN);
+NTSYSAPI LONG WINAPI RtlCompareUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlCompressBuffer(USHORT,PUCHAR,ULONG,PUCHAR,ULONG,ULONG,PULONG,PVOID);
+NTSYSAPI DWORD WINAPI RtlComputeCrc32(DWORD,const BYTE*,INT);
+NTSYSAPI NTSTATUS WINAPI RtlConvertSidToUnicodeString(PUNICODE_STRING,PSID,BOOLEAN);
+NTSYSAPI void WINAPI RtlCopyLuid(PLUID,const LUID*);
+NTSYSAPI void WINAPI RtlCopyLuidAndAttributesArray(ULONG,const LUID_AND_ATTRIBUTES*,PLUID_AND_ATTRIBUTES);
+NTSYSAPI BOOLEAN WINAPI RtlCopySid(DWORD,PSID,PSID);
+NTSYSAPI NTSTATUS WINAPI RtlCopySecurityDescriptor(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR);
+NTSYSAPI void WINAPI RtlCopyString(STRING*,const STRING*);
+NTSYSAPI void WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlCreateAcl(PACL,DWORD,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlCreateAtomTable(ULONG,RTL_ATOM_TABLE*);
+NTSYSAPI NTSTATUS WINAPI RtlCreateEnvironment(BOOLEAN, PWSTR*);
+NTSYSAPI HANDLE WINAPI RtlCreateHeap(ULONG,PVOID,SIZE_T,SIZE_T,PVOID,PRTL_HEAP_DEFINITION);
+NTSYSAPI NTSTATUS WINAPI RtlCreateProcessParameters(RTL_USER_PROCESS_PARAMETERS**,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,PWSTR,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlCreateSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlCreateTimerQueue(PHANDLE);
+NTSYSAPI NTSTATUS WINAPI RtlCreateTimer(PHANDLE, HANDLE, RTL_WAITORTIMERCALLBACKFUNC, PVOID, DWORD, DWORD, ULONG);
+NTSYSAPI BOOLEAN WINAPI RtlCreateUnicodeString(PUNICODE_STRING,LPCWSTR);
+NTSYSAPI BOOLEAN WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR);
+NTSYSAPI NTSTATUS WINAPI RtlCreateUserThread(HANDLE,const SECURITY_DESCRIPTOR*,BOOLEAN,PVOID,SIZE_T,SIZE_T,PRTL_THREAD_START_ROUTINE,void*,HANDLE*,CLIENT_ID*);
+NTSYSAPI void WINAPI RtlDeactivateActivationContext(DWORD,ULONG_PTR);
+NTSYSAPI NTSTATUS WINAPI RtlDecompressBuffer(USHORT,PUCHAR,ULONG,PUCHAR,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI RtlDeleteAce(PACL,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlDeleteAtomFromAtomTable(RTL_ATOM_TABLE,RTL_ATOM);
+NTSYSAPI NTSTATUS WINAPI RtlDeleteCriticalSection(RTL_CRITICAL_SECTION *);
+NTSYSAPI NTSTATUS WINAPI RtlDeleteRegistryValue(ULONG, PCWSTR, PCWSTR);
+NTSYSAPI void WINAPI RtlDeleteResource(LPRTL_RWLOCK);
+NTSYSAPI NTSTATUS WINAPI RtlDeleteSecurityObject(PSECURITY_DESCRIPTOR*);
+NTSYSAPI NTSTATUS WINAPI RtlDeleteTimer(HANDLE, HANDLE, HANDLE);
+NTSYSAPI NTSTATUS WINAPI RtlDeleteTimerQueueEx(HANDLE, HANDLE);
+NTSYSAPI PRTL_USER_PROCESS_PARAMETERS WINAPI RtlDeNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*);
+NTSYSAPI NTSTATUS WINAPI RtlDeregisterWait(HANDLE);
+NTSYSAPI NTSTATUS WINAPI RtlDeregisterWaitEx(HANDLE,HANDLE);
+NTSYSAPI NTSTATUS WINAPI RtlDestroyAtomTable(RTL_ATOM_TABLE);
+NTSYSAPI NTSTATUS WINAPI RtlDestroyEnvironment(PWSTR);
+NTSYSAPI NTSTATUS WINAPI RtlDestroyHandleTable(RTL_HANDLE_TABLE *);
+NTSYSAPI HANDLE WINAPI RtlDestroyHeap(HANDLE);
+NTSYSAPI void WINAPI RtlDestroyProcessParameters(RTL_USER_PROCESS_PARAMETERS*);
+NTSYSAPI NTSTATUS WINAPI RtlDestroyQueryDebugBuffer(PDEBUG_BUFFER);
+NTSYSAPI DOS_PATHNAME_TYPE WINAPI RtlDetermineDosPathNameType_U(PCWSTR);
+NTSYSAPI BOOLEAN WINAPI RtlDllShutdownInProgress(void);
+NTSYSAPI BOOLEAN WINAPI RtlDoesFileExists_U(LPCWSTR);
+NTSYSAPI BOOLEAN WINAPI RtlDosPathNameToNtPathName_U(PCWSTR,PUNICODE_STRING,PWSTR*,CURDIR*);
+NTSYSAPI ULONG WINAPI RtlDosSearchPath_U(LPCWSTR, LPCWSTR, LPCWSTR, ULONG, LPWSTR, LPWSTR*);
+NTSYSAPI WCHAR WINAPI RtlDowncaseUnicodeChar(WCHAR);
+NTSYSAPI NTSTATUS WINAPI RtlDowncaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSYSAPI void WINAPI RtlDumpResource(LPRTL_RWLOCK);
+NTSYSAPI NTSTATUS WINAPI RtlDuplicateUnicodeString(int,const UNICODE_STRING*,UNICODE_STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlEmptyAtomTable(RTL_ATOM_TABLE,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlEnterCriticalSection(RTL_CRITICAL_SECTION *);
+NTSYSAPI void WINAPI RtlEraseUnicodeString(UNICODE_STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlEqualComputerName(const UNICODE_STRING*,const UNICODE_STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlEqualDomainName(const UNICODE_STRING*,const UNICODE_STRING*);
+NTSYSAPI BOOLEAN WINAPI RtlEqualLuid(const LUID*,const LUID*);
+NTSYSAPI BOOL WINAPI RtlEqualPrefixSid(PSID,PSID);
+NTSYSAPI BOOL WINAPI RtlEqualSid(PSID,PSID);
+NTSYSAPI BOOLEAN WINAPI RtlEqualString(const STRING*,const STRING*,BOOLEAN);
+NTSYSAPI BOOLEAN WINAPI RtlEqualUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSYSAPI void DECLSPEC_NORETURN WINAPI RtlExitUserThread(ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlExpandEnvironmentStrings_U(PCWSTR, const UNICODE_STRING*, UNICODE_STRING*, ULONG*);
+NTSYSAPI NTSTATUS WINAPI RtlFindActivationContextSectionString(ULONG,const GUID*,ULONG,const UNICODE_STRING*,PVOID);
+NTSYSAPI NTSTATUS WINAPI RtlFindCharInUnicodeString(int,const UNICODE_STRING*,const UNICODE_STRING*,USHORT*);
+NTSYSAPI ULONG WINAPI RtlFindClearBits(PCRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI ULONG WINAPI RtlFindClearBitsAndSet(PRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI ULONG WINAPI RtlFindClearRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN);
+NTSYSAPI ULONG WINAPI RtlFindLastBackwardRunSet(PCRTL_BITMAP,ULONG,PULONG);
+NTSYSAPI ULONG WINAPI RtlFindLastBackwardRunClear(PCRTL_BITMAP,ULONG,PULONG);
+NTSYSAPI CCHAR WINAPI RtlFindLeastSignificantBit(ULONGLONG);
+NTSYSAPI ULONG WINAPI RtlFindLongestRunSet(PCRTL_BITMAP,PULONG);
+NTSYSAPI ULONG WINAPI RtlFindLongestRunClear(PCRTL_BITMAP,PULONG);
+NTSYSAPI NTSTATUS WINAPI RtlFindMessage(HMODULE,ULONG,ULONG,ULONG,const MESSAGE_RESOURCE_ENTRY**);
+NTSYSAPI CCHAR WINAPI RtlFindMostSignificantBit(ULONGLONG);
+NTSYSAPI ULONG WINAPI RtlFindNextForwardRunSet(PCRTL_BITMAP,ULONG,PULONG);
+NTSYSAPI ULONG WINAPI RtlFindNextForwardRunClear(PCRTL_BITMAP,ULONG,PULONG);
+NTSYSAPI ULONG WINAPI RtlFindSetBits(PCRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI ULONG WINAPI RtlFindSetBitsAndClear(PRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI ULONG WINAPI RtlFindSetRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN);
+NTSYSAPI BOOLEAN WINAPI RtlFirstFreeAce(PACL,PACE_HEADER *);
+NTSYSAPI NTSTATUS WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING);
+NTSYSAPI NTSTATUS WINAPI RtlFormatMessage(LPWSTR,UCHAR,BOOLEAN,BOOLEAN,BOOLEAN,__ms_va_list *,LPWSTR,ULONG);
+NTSYSAPI void WINAPI RtlFreeAnsiString(PANSI_STRING);
+NTSYSAPI BOOLEAN WINAPI RtlFreeHandle(RTL_HANDLE_TABLE *,RTL_HANDLE *);
+NTSYSAPI BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID);
+NTSYSAPI void WINAPI RtlFreeOemString(POEM_STRING);
+NTSYSAPI DWORD WINAPI RtlFreeSid(PSID);
+NTSYSAPI void WINAPI RtlFreeThreadActivationContextStack(void);
+NTSYSAPI void WINAPI RtlFreeUnicodeString(PUNICODE_STRING);
+NTSYSAPI NTSTATUS WINAPI RtlGetAce(PACL,DWORD,LPVOID *);
+NTSYSAPI NTSTATUS WINAPI RtlGetActiveActivationContext(HANDLE*);
+NTSYSAPI NTSTATUS WINAPI RtlGetCompressionWorkSpaceSize(USHORT,PULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI RtlGetControlSecurityDescriptor(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
+NTSYSAPI NTSTATUS WINAPI RtlGetCurrentDirectory_U(ULONG, LPWSTR);
+NTSYSAPI PEB * WINAPI RtlGetCurrentPeb(void);
+NTSYSAPI NTSTATUS WINAPI RtlGetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,PBOOLEAN,PACL *,PBOOLEAN);
+NTSYSAPI ULONG WINAPI RtlGetFullPathName_U(PCWSTR,ULONG,PWSTR,PWSTR*);
+NTSYSAPI NTSTATUS WINAPI RtlGetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID *,PBOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlGetLastNtStatus(void);
+NTSYSAPI DWORD WINAPI RtlGetLastWin32Error(void);
+NTSYSAPI DWORD WINAPI RtlGetLongestNtPathLength(void);
+NTSYSAPI ULONG WINAPI RtlGetNtGlobalFlags(void);
+NTSYSAPI BOOLEAN WINAPI RtlGetNtProductType(LPDWORD);
+NTSYSAPI NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID *,PBOOLEAN);
+NTSYSAPI ULONG WINAPI RtlGetProcessHeaps(ULONG,HANDLE*);
+NTSYSAPI DWORD WINAPI RtlGetThreadErrorMode(void);
+NTSYSAPI NTSTATUS WINAPI RtlGetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR,PBOOLEAN,PACL *,PBOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlGetVersion(RTL_OSVERSIONINFOEXW*);
+NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING,GUID*);
+NTSYSAPI PSID_IDENTIFIER_AUTHORITY WINAPI RtlIdentifierAuthoritySid(PSID);
+NTSYSAPI PVOID WINAPI RtlImageDirectoryEntryToData(HMODULE,BOOL,WORD,ULONG *);
+NTSYSAPI PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE);
+NTSYSAPI PIMAGE_SECTION_HEADER WINAPI RtlImageRvaToSection(const IMAGE_NT_HEADERS *,HMODULE,DWORD);
+NTSYSAPI PVOID WINAPI RtlImageRvaToVa(const IMAGE_NT_HEADERS *,HMODULE,DWORD,IMAGE_SECTION_HEADER **);
+NTSYSAPI NTSTATUS WINAPI RtlImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
+NTSYSAPI void WINAPI RtlInitString(PSTRING,PCSZ);
+NTSYSAPI void WINAPI RtlInitAnsiString(PANSI_STRING,PCSZ);
+NTSYSAPI NTSTATUS WINAPI RtlInitAnsiStringEx(PANSI_STRING,PCSZ);
+NTSYSAPI void WINAPI RtlInitUnicodeString(PUNICODE_STRING,PCWSTR);
+NTSYSAPI NTSTATUS WINAPI RtlInitUnicodeStringEx(PUNICODE_STRING,PCWSTR);
+NTSYSAPI NTSTATUS WINAPI RtlInitializeCriticalSection(RTL_CRITICAL_SECTION *);
+NTSYSAPI NTSTATUS WINAPI RtlInitializeCriticalSectionAndSpinCount(RTL_CRITICAL_SECTION *,ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlInitializeCriticalSectionEx(RTL_CRITICAL_SECTION *,ULONG,ULONG);
+NTSYSAPI void WINAPI RtlInitializeBitMap(PRTL_BITMAP,PULONG,ULONG);
+NTSYSAPI void WINAPI RtlInitializeHandleTable(ULONG,ULONG,RTL_HANDLE_TABLE *);
+NTSYSAPI void WINAPI RtlInitializeResource(LPRTL_RWLOCK);
+NTSYSAPI BOOL WINAPI RtlInitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
+NTSYSAPI NTSTATUS WINAPI RtlInt64ToUnicodeString(ULONGLONG,ULONG,UNICODE_STRING *);
+NTSYSAPI NTSTATUS WINAPI RtlIntegerToChar(ULONG,ULONG,ULONG,PCHAR);
+NTSYSAPI NTSTATUS WINAPI RtlIntegerToUnicodeString(ULONG,ULONG,UNICODE_STRING *);
+NTSYSAPI BOOLEAN WINAPI RtlIsActivationContextActive(HANDLE);
+NTSYSAPI ULONG WINAPI RtlIsDosDeviceName_U(PCWSTR);
+NTSYSAPI BOOLEAN WINAPI RtlIsNameLegalDOS8Dot3(const UNICODE_STRING*,POEM_STRING,PBOOLEAN);
+NTSYSAPI BOOLEAN WINAPI RtlIsTextUnicode(LPCVOID,INT,INT *);
+NTSYSAPI BOOLEAN WINAPI RtlIsValidHandle(const RTL_HANDLE_TABLE *, const RTL_HANDLE *);
+NTSYSAPI BOOLEAN WINAPI RtlIsValidIndexHandle(const RTL_HANDLE_TABLE *, ULONG Index, RTL_HANDLE **);
+NTSYSAPI NTSTATUS WINAPI RtlLeaveCriticalSection(RTL_CRITICAL_SECTION *);
+NTSYSAPI DWORD WINAPI RtlLengthRequiredSid(DWORD);
+NTSYSAPI ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR);
+NTSYSAPI DWORD WINAPI RtlLengthSid(PSID);
+NTSYSAPI NTSTATUS WINAPI RtlLocalTimeToSystemTime(const LARGE_INTEGER*,PLARGE_INTEGER);
+NTSYSAPI BOOLEAN WINAPI RtlLockHeap(HANDLE);
+NTSYSAPI NTSTATUS WINAPI RtlLookupAtomInAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*);
+NTSYSAPI NTSTATUS WINAPI RtlMakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD);
+NTSYSAPI void WINAPI RtlMapGenericMask(PACCESS_MASK,const GENERIC_MAPPING*);
+NTSYSAPI NTSTATUS WINAPI RtlMultiByteToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlMultiByteToUnicodeSize(DWORD*,LPCSTR,UINT);
+NTSYSAPI NTSTATUS WINAPI RtlNewSecurityObject(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOLEAN,HANDLE,PGENERIC_MAPPING);
+NTSYSAPI PRTL_USER_PROCESS_PARAMETERS WINAPI RtlNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*);
+NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS);
+NTSYSAPI ULONG WINAPI RtlNtStatusToDosErrorNoTeb(NTSTATUS);
+NTSYSAPI ULONG WINAPI RtlNumberOfSetBits(PCRTL_BITMAP);
+NTSYSAPI ULONG WINAPI RtlNumberOfClearBits(PCRTL_BITMAP);
+NTSYSAPI UINT WINAPI RtlOemStringToUnicodeSize(const STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlOemStringToUnicodeString(UNICODE_STRING*,const STRING*,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlOemToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlOpenCurrentUser(ACCESS_MASK,PHANDLE);
+NTSYSAPI PVOID WINAPI RtlPcToFileHeader(PVOID,PVOID*);
+NTSYSAPI NTSTATUS WINAPI RtlPinAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM);
+NTSYSAPI BOOLEAN WINAPI RtlPrefixString(const STRING*,const STRING*,BOOLEAN);
+NTSYSAPI BOOLEAN WINAPI RtlPrefixUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlQueryAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM,ULONG*,ULONG*,WCHAR*,ULONG*);
+NTSYSAPI NTSTATUS WINAPI RtlQueryEnvironmentVariable_U(PWSTR,PUNICODE_STRING,PUNICODE_STRING);
+NTSYSAPI NTSTATUS WINAPI RtlQueryHeapInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T,PSIZE_T);
+NTSYSAPI NTSTATUS WINAPI RtlQueryInformationAcl(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
+NTSYSAPI NTSTATUS WINAPI RtlQueryInformationActivationContext(ULONG,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T*);
+NTSYSAPI NTSTATUS WINAPI RtlQueryProcessDebugInformation(ULONG,ULONG,PDEBUG_BUFFER);
+NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID);
+NTSYSAPI NTSTATUS WINAPI RtlQueryTimeZoneInformation(RTL_TIME_ZONE_INFORMATION*);
+NTSYSAPI NTSTATUS WINAPI RtlQueueWorkItem(PRTL_WORK_ITEM_ROUTINE,PVOID,ULONG);
+NTSYSAPI void WINAPI RtlRaiseException(PEXCEPTION_RECORD);
+NTSYSAPI void WINAPI RtlRaiseStatus(NTSTATUS);
+NTSYSAPI ULONG WINAPI RtlRandom(PULONG);
+NTSYSAPI PVOID WINAPI RtlReAllocateHeap(HANDLE,ULONG,PVOID,SIZE_T);
+NTSYSAPI NTSTATUS WINAPI RtlRegisterWait(PHANDLE,HANDLE,RTL_WAITORTIMERCALLBACKFUNC,PVOID,ULONG,ULONG);
+NTSYSAPI void WINAPI RtlReleaseActivationContext(HANDLE);
+NTSYSAPI void WINAPI RtlReleasePebLock(void);
+NTSYSAPI void WINAPI RtlReleaseResource(LPRTL_RWLOCK);
+NTSYSAPI ULONG WINAPI RtlRemoveVectoredExceptionHandler(PVOID);
+NTSYSAPI void WINAPI RtlRestoreLastWin32Error(DWORD);
+NTSYSAPI void WINAPI RtlSecondsSince1970ToTime(DWORD,LARGE_INTEGER *);
+NTSYSAPI void WINAPI RtlSecondsSince1980ToTime(DWORD,LARGE_INTEGER *);
+NTSYSAPI NTSTATUS WINAPI RtlSelfRelativeToAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD);
+NTSYSAPI void WINAPI RtlSetAllBits(PRTL_BITMAP);
+NTSYSAPI void WINAPI RtlSetBits(PRTL_BITMAP,ULONG,ULONG);
+NTSYSAPI ULONG WINAPI RtlSetCriticalSectionSpinCount(RTL_CRITICAL_SECTION*,ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlSetControlSecurityDescriptor(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
+NTSYSAPI NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING*);
+NTSYSAPI void WINAPI RtlSetCurrentEnvironment(PWSTR, PWSTR*);
+NTSYSAPI NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,BOOLEAN,PACL,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlSetEnvironmentVariable(PWSTR*,PUNICODE_STRING,PUNICODE_STRING);
+NTSYSAPI NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlSetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlSetIoCompletionCallback(HANDLE,PRTL_OVERLAPPED_COMPLETION_ROUTINE,ULONG);
+NTSYSAPI void WINAPI RtlSetLastWin32Error(DWORD);
+NTSYSAPI void WINAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus(NTSTATUS);
+NTSYSAPI NTSTATUS WINAPI RtlSetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR,BOOLEAN,PACL,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlSetThreadErrorMode(DWORD,LPDWORD);
+NTSYSAPI NTSTATUS WINAPI RtlSetTimeZoneInformation(const RTL_TIME_ZONE_INFORMATION*);
+NTSYSAPI SIZE_T WINAPI RtlSizeHeap(HANDLE,ULONG,const void*);
+NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID,PUNICODE_STRING);
+NTSYSAPI LPDWORD WINAPI RtlSubAuthoritySid(PSID,DWORD);
+NTSYSAPI LPBYTE WINAPI RtlSubAuthorityCountSid(PSID);
+NTSYSAPI NTSTATUS WINAPI RtlSystemTimeToLocalTime(const LARGE_INTEGER*,PLARGE_INTEGER);
+NTSYSAPI void WINAPI RtlTimeToTimeFields(const LARGE_INTEGER*,PTIME_FIELDS);
+NTSYSAPI BOOLEAN WINAPI RtlTimeFieldsToTime(PTIME_FIELDS,PLARGE_INTEGER);
+NTSYSAPI void WINAPI RtlTimeToElapsedTimeFields(const LARGE_INTEGER *,PTIME_FIELDS);
+NTSYSAPI BOOLEAN WINAPI RtlTimeToSecondsSince1970(const LARGE_INTEGER *,LPDWORD);
+NTSYSAPI BOOLEAN WINAPI RtlTimeToSecondsSince1980(const LARGE_INTEGER *,LPDWORD);
+NTSYSAPI BOOL WINAPI RtlTryEnterCriticalSection(RTL_CRITICAL_SECTION *);
+NTSYSAPI ULONGLONG __cdecl RtlUlonglongByteSwap(ULONGLONG);
+NTSYSAPI DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING,PCUNICODE_STRING,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlUnicodeStringToInteger(const UNICODE_STRING *,ULONG,ULONG *);
+NTSYSAPI DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING*);
+NTSYSAPI NTSTATUS WINAPI RtlUnicodeStringToOemString(POEM_STRING,PCUNICODE_STRING,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlUnicodeToMultiByteSize(PULONG,PCWSTR,ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
+NTSYSAPI ULONG WINAPI RtlUniform(PULONG);
+NTSYSAPI BOOLEAN WINAPI RtlUnlockHeap(HANDLE);
+NTSYSAPI void WINAPI RtlUnwind(PVOID,PVOID,PEXCEPTION_RECORD,PVOID);
#ifdef __ia64__
-void WINAPI RtlUnwind2(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT);
-void WINAPI RtlUnwindEx(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT,PUNWIND_HISTORY_TABLE);
+NTSYSAPI void WINAPI RtlUnwind2(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT);
+NTSYSAPI void WINAPI RtlUnwindEx(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT,PUNWIND_HISTORY_TABLE);
+#endif
+NTSYSAPI WCHAR WINAPI RtlUpcaseUnicodeChar(WCHAR);
+NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING *,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToAnsiString(STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToCountedOemString(STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToOemString(STRING*,const UNICODE_STRING*,BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
+NTSYSAPI NTSTATUS WINAPI RtlUpdateTimer(HANDLE, HANDLE, DWORD, DWORD);
+NTSYSAPI CHAR WINAPI RtlUpperChar(CHAR);
+NTSYSAPI void WINAPI RtlUpperString(STRING *,const STRING *);
+NTSYSAPI NTSTATUS WINAPI RtlValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
+NTSYSAPI BOOLEAN WINAPI RtlValidAcl(PACL);
+NTSYSAPI BOOLEAN WINAPI RtlValidSid(PSID);
+NTSYSAPI BOOLEAN WINAPI RtlValidateHeap(HANDLE,ULONG,LPCVOID);
+NTSYSAPI NTSTATUS WINAPI RtlVerifyVersionInfo(const RTL_OSVERSIONINFOEXW*,DWORD,DWORDLONG);
+NTSYSAPI NTSTATUS WINAPI RtlWalkHeap(HANDLE,PVOID);
+NTSYSAPI NTSTATUS WINAPI RtlWow64EnableFsRedirection(BOOLEAN);
+NTSYSAPI NTSTATUS WINAPI RtlWow64EnableFsRedirectionEx(ULONG,ULONG*);
+NTSYSAPI NTSTATUS WINAPI RtlWriteRegistryValue(ULONG,PCWSTR,PCWSTR,ULONG,PVOID,ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlpNtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG);
+NTSYSAPI NTSTATUS WINAPI RtlpNtEnumerateSubKey(HANDLE,UNICODE_STRING *, ULONG);
+NTSYSAPI NTSTATUS WINAPI RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION *);
+NTSYSAPI NTSTATUS WINAPI RtlpUnWaitCriticalSection(RTL_CRITICAL_SECTION *);
+NTSYSAPI NTSTATUS WINAPI vDbgPrintEx(ULONG,ULONG,LPCSTR,__ms_va_list);
+NTSYSAPI NTSTATUS WINAPI vDbgPrintExWithPrefix(LPCSTR,ULONG,ULONG,LPCSTR,__ms_va_list);
+
+/* 32-bit only functions */
+
+#ifndef _WIN64
+NTSYSAPI LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG);
+NTSYSAPI ULONGLONG WINAPI RtlConvertUlongToLargeInteger(ULONG);
+NTSYSAPI LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT,INT);
+NTSYSAPI ULONGLONG WINAPI RtlEnlargedUnsignedMultiply(UINT,UINT);
+NTSYSAPI UINT WINAPI RtlEnlargedUnsignedDivide(ULONGLONG,UINT,UINT *);
+NTSYSAPI LONGLONG WINAPI RtlExtendedMagicDivide(LONGLONG,LONGLONG,INT);
+NTSYSAPI LONGLONG WINAPI RtlExtendedIntegerMultiply(LONGLONG,INT);
+NTSYSAPI LONGLONG WINAPI RtlExtendedLargeIntegerDivide(LONGLONG,INT,INT *);
+NTSYSAPI LONGLONG WINAPI RtlLargeIntegerAdd(LONGLONG,LONGLONG);
+NTSYSAPI LONGLONG WINAPI RtlLargeIntegerArithmeticShift(LONGLONG,INT);
+NTSYSAPI ULONGLONG WINAPI RtlLargeIntegerDivide( ULONGLONG,ULONGLONG,ULONGLONG *);
+NTSYSAPI LONGLONG WINAPI RtlLargeIntegerNegate(LONGLONG);
+NTSYSAPI LONGLONG WINAPI RtlLargeIntegerShiftLeft(LONGLONG,INT);
+NTSYSAPI LONGLONG WINAPI RtlLargeIntegerShiftRight(LONGLONG,INT);
+NTSYSAPI LONGLONG WINAPI RtlLargeIntegerSubtract(LONGLONG,LONGLONG);
+NTSYSAPI NTSTATUS WINAPI RtlLargeIntegerToChar(const ULONGLONG *,ULONG,ULONG,PCHAR);
#endif
-WCHAR WINAPI RtlUpcaseUnicodeChar(WCHAR);
-NTSTATUS WINAPI RtlUpcaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING *,BOOLEAN);
-NTSTATUS WINAPI RtlUpcaseUnicodeStringToAnsiString(STRING*,const UNICODE_STRING*,BOOLEAN);
-NTSTATUS WINAPI RtlUpcaseUnicodeStringToCountedOemString(STRING*,const UNICODE_STRING*,BOOLEAN);
-NTSTATUS WINAPI RtlUpcaseUnicodeStringToOemString(STRING*,const UNICODE_STRING*,BOOLEAN);
-NTSTATUS WINAPI RtlUpcaseUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
-NTSTATUS WINAPI RtlUpcaseUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
-CHAR WINAPI RtlUpperChar(CHAR);
-void WINAPI RtlUpperString(STRING *,const STRING *);
-
-NTSTATUS WINAPI RtlValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
-BOOLEAN WINAPI RtlValidAcl(PACL);
-BOOLEAN WINAPI RtlValidSid(PSID);
-BOOLEAN WINAPI RtlValidateHeap(HANDLE,ULONG,LPCVOID);
-NTSTATUS WINAPI RtlVerifyVersionInfo(const RTL_OSVERSIONINFOEXW*,DWORD,DWORDLONG);
-
-NTSTATUS WINAPI RtlWalkHeap(HANDLE,PVOID);
-
-NTSTATUS WINAPI RtlpNtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG);
-NTSTATUS WINAPI RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION *);
-NTSTATUS WINAPI RtlpUnWaitCriticalSection(RTL_CRITICAL_SECTION *);
-
-NTSTATUS WINAPI vDbgPrintEx(ULONG,ULONG,LPCSTR,va_list);
-NTSTATUS WINAPI vDbgPrintExWithPrefix(LPCSTR,ULONG,ULONG,LPCSTR,va_list);
/* Wine internal functions */
-extern NTSTATUS wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret,
- UINT disposition, BOOLEAN check_case );
-extern NTSTATUS wine_unix_to_nt_file_name( const ANSI_STRING *name, UNICODE_STRING *nt );
+NTSYSAPI NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret,
+ UINT disposition, BOOLEAN check_case );
+NTSYSAPI NTSTATUS CDECL wine_unix_to_nt_file_name( const ANSI_STRING *name, UNICODE_STRING *nt );
/***********************************************************************
#define RtlRetrieveUlonglong(p,s) memcpy((p), (s), sizeof(ULONGLONG))
#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
-inline static BOOLEAN RtlCheckBit(PCRTL_BITMAP lpBits, ULONG ulBit)
+static inline BOOLEAN RtlCheckBit(PCRTL_BITMAP lpBits, ULONG ulBit)
{
if (lpBits && ulBit < lpBits->SizeOfBitMap &&
lpBits->Buffer[ulBit >> 5] & (1 << (ulBit & 31)))
}
/* These are implemented as __fastcall, so we can't let Winelib apps link with them */
-inline static USHORT RtlUshortByteSwap(USHORT s)
+static inline USHORT RtlUshortByteSwap(USHORT s)
{
return (s >> 8) | (s << 8);
}
-inline static ULONG RtlUlongByteSwap(ULONG i)
+static inline ULONG RtlUlongByteSwap(ULONG i)
{
#if defined(__i386__) && defined(__GNUC__)
ULONG ret;
#endif
}
-/*************************************************************************
- * Loader functions and structures.
- *
- * Those are not part of standard Winternl.h
- */
-typedef struct _LDR_MODULE
-{
- LIST_ENTRY InLoadOrderModuleList;
- LIST_ENTRY InMemoryOrderModuleList;
- LIST_ENTRY InInitializationOrderModuleList;
- void* BaseAddress;
- void* EntryPoint;
- ULONG SizeOfImage;
- UNICODE_STRING FullDllName;
- UNICODE_STRING BaseDllName;
- ULONG Flags;
- SHORT LoadCount;
- SHORT TlsIndex;
- HANDLE SectionHandle;
- ULONG CheckSum;
- ULONG TimeDateStamp;
-} LDR_MODULE, *PLDR_MODULE;
-
-/* those defines are (some of the) regular LDR_MODULE.Flags values */
-#define LDR_IMAGE_IS_DLL 0x00000004
-#define LDR_LOAD_IN_PROGRESS 0x00001000
-#define LDR_UNLOAD_IN_PROGRESS 0x00002000
-#define LDR_NO_DLL_CALLS 0x00040000
-#define LDR_PROCESS_ATTACHED 0x00080000
-#define LDR_MODULE_REBASED 0x00200000
-
-/* these ones is Wine specific */
-#define LDR_DONT_RESOLVE_REFS 0x40000000
-#define LDR_WINE_INTERNAL 0x80000000
-
-/* FIXME: to be checked */
-#define MAXIMUM_FILENAME_LENGTH 256
-
-typedef struct _SYSTEM_MODULE
-{
- ULONG Reserved1;
- ULONG Reserved2;
- PVOID ImageBaseAddress;
- ULONG ImageSize;
- ULONG Flags;
- WORD Id;
- WORD Rank;
- WORD Unknown;
- WORD NameOffset;
- BYTE Name[MAXIMUM_FILENAME_LENGTH];
-} SYSTEM_MODULE, *PSYSTEM_MODULE;
-
-typedef struct _SYSTEM_MODULE_INFORMATION
-{
- ULONG ModulesCount;
- SYSTEM_MODULE Modules[1]; /* FIXME: should be Modules[0] */
-} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
-
-NTSTATUS WINAPI LdrDisableThreadCalloutsForDll(HMODULE);
-NTSTATUS WINAPI LdrFindEntryForAddress(const void*, PLDR_MODULE*);
-NTSTATUS WINAPI LdrLockLoaderLock(ULONG,ULONG*,ULONG*);
-NTSTATUS WINAPI LdrQueryProcessModuleInformation(SYSTEM_MODULE_INFORMATION*, ULONG, ULONG*);
-NTSTATUS WINAPI LdrUnloadDll(HMODULE);
-NTSTATUS WINAPI LdrUnlockLoaderLock(ULONG,ULONG);
-
-typedef struct _FILE_COMPLETION_INFORMATION {
- HANDLE CompletionPort;
- ULONG_PTR CompletionKey;
-} FILE_COMPLETION_INFORMATION;
-typedef FILE_COMPLETION_INFORMATION *PFILE_COMPLETION_INFORMATION;
-
/* list manipulation macros */
#define InitializeListHead(le) (void)((le)->Flink = (le)->Blink = (le))
#define InsertHeadList(le,e) do { PLIST_ENTRY f = (le)->Flink; (e)->Flink = f; (e)->Blink = (le); f->Blink = (e); (le)->Flink = (e); } while (0)
return e;
}
+
+#ifdef __WINESRC__
+
+/* FIXME: private structure for vm86 mode, stored in teb->GdiTebBatch */
+typedef struct
+{
+ DWORD dpmi_vif;
+ DWORD vm86_pending;
+} WINE_VM86_TEB_INFO;
+
+static inline WINE_VM86_TEB_INFO *get_vm86_teb_info(void)
+{
+ return (WINE_VM86_TEB_INFO *)&NtCurrentTeb()->GdiTebBatch;
+}
+
+/* The thread information for 16-bit threads */
+/* NtCurrentTeb()->SubSystemTib points to this */
+typedef struct
+{
+ void *unknown; /* 00 unknown */
+ UNICODE_STRING *exe_name; /* 04 exe module name */
+
+ /* the following fields do not exist under Windows */
+ UNICODE_STRING exe_str; /* exe name string pointed to by exe_name */
+ CURDIR curdir; /* current directory */
+ WCHAR curdir_buffer[MAX_PATH];
+} WIN16_SUBSYSTEM_TIB;
+
+#endif /* __WINESRC__ */
+
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */