| /* | |
| * Internal NT APIs and data structures | |
| * | |
| * Copyright (C) the Wine project | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| #ifndef __WINE_WINTERNL_H | |
| #define __WINE_WINTERNL_H | |
| #include <windef.h> | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif /* defined(__cplusplus) */ | |
| /********************************************************************** | |
| * Fundamental types and data structures | |
| */ | |
| #ifndef WINE_NTSTATUS_DECLARED | |
| #define WINE_NTSTATUS_DECLARED | |
| typedef LONG NTSTATUS; | |
| #endif | |
| typedef CONST char *PCSZ; | |
| 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 const STRING *PCANSI_STRING; | |
| typedef STRING OEM_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; | |
| #ifndef _FILETIME_ | |
| #define _FILETIME_ | |
| /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */ | |
| typedef struct _FILETIME | |
| { | |
| #ifdef WORDS_BIGENDIAN | |
| DWORD dwHighDateTime; | |
| DWORD dwLowDateTime; | |
| #else | |
| DWORD dwLowDateTime; | |
| DWORD dwHighDateTime; | |
| #endif | |
| } FILETIME, *PFILETIME, *LPFILETIME; | |
| #endif /* _FILETIME_ */ | |
| /* | |
| * 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 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. | |
| */ | |
| typedef struct _RTL_SYSTEM_TIME { | |
| WORD wYear; | |
| WORD wMonth; | |
| WORD wDayOfWeek; | |
| WORD wDay; | |
| WORD wHour; | |
| WORD wMinute; | |
| WORD wSecond; | |
| WORD wMilliseconds; | |
| } RTL_SYSTEM_TIME, *PRTL_SYSTEM_TIME; | |
| typedef struct _RTL_TIME_ZONE_INFORMATION { | |
| LONG Bias; | |
| WCHAR StandardName[32]; | |
| RTL_SYSTEM_TIME StandardDate; | |
| LONG StandardBias; | |
| WCHAR DaylightName[32]; | |
| RTL_SYSTEM_TIME DaylightDate; | |
| LONG DaylightBias; | |
| } RTL_TIME_ZONE_INFORMATION, *PRTL_TIME_ZONE_INFORMATION; | |
| typedef struct _CLIENT_ID | |
| { | |
| HANDLE UniqueProcess; | |
| HANDLE UniqueThread; | |
| } CLIENT_ID, *PCLIENT_ID; | |
| typedef struct _CURDIR | |
| { | |
| UNICODE_STRING DosPath; | |
| PVOID Handle; | |
| } CURDIR, *PCURDIR; | |
| typedef struct RTL_DRIVE_LETTER_CURDIR | |
| { | |
| USHORT Flags; | |
| USHORT Length; | |
| ULONG TimeStamp; | |
| UNICODE_STRING DosPath; | |
| } RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR; | |
| typedef struct tagRTL_BITMAP { | |
| ULONG SizeOfBitMap; /* Number of bits in the bitmap */ | |
| PULONG Buffer; /* Bitmap data, assumed sized to a DWORD boundary */ | |
| } RTL_BITMAP, *PRTL_BITMAP; | |
| typedef const RTL_BITMAP *PCRTL_BITMAP; | |
| typedef struct tagRTL_BITMAP_RUN { | |
| ULONG StartingIndex; /* Bit position at which run starts */ | |
| ULONG NumberOfBits; /* Size of the run in bits */ | |
| } RTL_BITMAP_RUN, *PRTL_BITMAP_RUN; | |
| typedef const RTL_BITMAP_RUN *PCRTL_BITMAP_RUN; | |
| typedef struct _RTL_USER_PROCESS_PARAMETERS | |
| { | |
| ULONG AllocationSize; | |
| ULONG Size; | |
| ULONG Flags; | |
| ULONG DebugFlags; | |
| HANDLE ConsoleHandle; | |
| ULONG ConsoleFlags; | |
| HANDLE hStdInput; | |
| HANDLE hStdOutput; | |
| HANDLE hStdError; | |
| CURDIR CurrentDirectory; | |
| UNICODE_STRING DllPath; | |
| UNICODE_STRING ImagePathName; | |
| UNICODE_STRING CommandLine; | |
| PWSTR Environment; | |
| ULONG dwX; | |
| ULONG dwY; | |
| ULONG dwXSize; | |
| ULONG dwYSize; | |
| ULONG dwXCountChars; | |
| ULONG dwYCountChars; | |
| ULONG dwFillAttribute; | |
| ULONG dwFlags; | |
| ULONG wShowWindow; | |
| UNICODE_STRING WindowTitle; | |
| UNICODE_STRING Desktop; | |
| UNICODE_STRING ShellInfo; | |
| UNICODE_STRING RuntimeInfo; | |
| RTL_DRIVE_LETTER_CURDIR DLCurrentDirectory[0x20]; | |
| } RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS; | |
| /* value for Flags field (FIXME: not the correct name) */ | |
| #define PROCESS_PARAMS_FLAG_NORMALIZED 1 | |
| typedef struct _PEB_LDR_DATA | |
| { | |
| ULONG Length; | |
| BOOLEAN Initialized; | |
| PVOID SsHandle; | |
| LIST_ENTRY InLoadOrderModuleList; | |
| LIST_ENTRY InMemoryOrderModuleList; | |
| LIST_ENTRY InInitializationOrderModuleList; | |
| } PEB_LDR_DATA, *PPEB_LDR_DATA; | |
| typedef struct _GDI_TEB_BATCH | |
| { | |
| ULONG Offset; | |
| HANDLE HDC; | |
| 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 | |
| { /* 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 | |
| */ | |
| typedef struct _TEB | |
| { /* 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; | |
| /*********************************************************************** | |
| * Enums | |
| */ | |
| typedef enum _FILE_INFORMATION_CLASS { | |
| FileDirectoryInformation = 1, | |
| FileFullDirectoryInformation, | |
| FileBothDirectoryInformation, | |
| FileBasicInformation, | |
| FileStandardInformation, | |
| FileInternalInformation, | |
| FileEaInformation, | |
| FileAccessInformation, | |
| FileNameInformation, | |
| FileRenameInformation, | |
| FileLinkInformation, | |
| FileNamesInformation, | |
| FileDispositionInformation, | |
| FilePositionInformation, | |
| FileFullEaInformation, | |
| FileModeInformation, | |
| FileAlignmentInformation, | |
| FileAllInformation, | |
| FileAllocationInformation, | |
| FileEndOfFileInformation, | |
| FileAlternateNameInformation, | |
| FileStreamInformation, | |
| FilePipeInformation, | |
| FilePipeLocalInformation, | |
| FilePipeRemoteInformation, | |
| FileMailslotQueryInformation, | |
| FileMailslotSetInformation, | |
| FileCompressionInformation, | |
| FileObjectIdInformation, | |
| FileCompletionInformation, | |
| FileMoveClusterInformation, | |
| FileQuotaInformation, | |
| FileReparsePointInformation, | |
| FileNetworkOpenInformation, | |
| FileAttributeTagInformation, | |
| FileTrackingInformation, | |
| 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; | |
| typedef struct _FILE_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; | |
| WCHAR FileName[ANYSIZE_ARRAY]; | |
| } FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION; | |
| typedef struct _FILE_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; | |
| WCHAR FileName[ANYSIZE_ARRAY]; | |
| } 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; | |
| 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]; | |
| WCHAR FileName[ANYSIZE_ARRAY]; | |
| } 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; | |
| LARGE_INTEGER LastWriteTime; | |
| LARGE_INTEGER ChangeTime; | |
| ULONG FileAttributes; | |
| } FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION; | |
| typedef struct _FILE_STANDARD_INFORMATION { | |
| LARGE_INTEGER AllocationSize; | |
| LARGE_INTEGER EndOfFile; | |
| ULONG NumberOfLinks; | |
| BOOLEAN DeletePending; | |
| BOOLEAN Directory; | |
| } FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION; | |
| typedef struct _FILE_INTERNAL_INFORMATION { | |
| LARGE_INTEGER IndexNumber; | |
| } FILE_INTERNAL_INFORMATION, *PFILE_INTERNAL_INFORMATION; | |
| typedef struct _FILE_EA_INFORMATION { | |
| ULONG EaSize; | |
| } FILE_EA_INFORMATION, *PFILE_EA_INFORMATION; | |
| typedef struct _FILE_ACCESS_INFORMATION { | |
| ACCESS_MASK AccessFlags; | |
| } FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION; | |
| typedef struct _FILE_NAME_INFORMATION { | |
| ULONG FileNameLength; | |
| WCHAR FileName[1]; | |
| } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION; | |
| typedef struct _FILE_RENAME_INFORMATION { | |
| BOOLEAN Replace; | |
| HANDLE RootDir; | |
| ULONG FileNameLength; | |
| WCHAR FileName[1]; | |
| } FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION; | |
| typedef struct _FILE_NAMES_INFORMATION { | |
| ULONG NextEntryOffset; | |
| ULONG FileIndex; | |
| ULONG FileNameLength; | |
| WCHAR FileName[1]; | |
| } FILE_NAMES_INFORMATION, *PFILE_NAMES_INFORMATION; | |
| typedef struct _FILE_DISPOSITION_INFORMATION { | |
| BOOLEAN DoDeleteFile; | |
| } FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION; | |
| typedef struct _FILE_POSITION_INFORMATION { | |
| LARGE_INTEGER CurrentByteOffset; | |
| } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION; | |
| typedef struct _FILE_ALIGNMENT_INFORMATION { | |
| ULONG AlignmentRequirement; | |
| } FILE_ALIGNMENT_INFORMATION, *PFILE_ALIGNMENT_INFORMATION; | |
| typedef struct _FILE_ALLOCATION_INFORMATION { | |
| LARGE_INTEGER AllocationSize; | |
| } FILE_ALLOCATION_INFORMATION, *PFILE_ALLOCATION_INFORMATION; | |
| typedef struct _FILE_END_OF_FILE_INFORMATION { | |
| LARGE_INTEGER EndOfFile; | |
| } FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION; | |
| typedef struct _FILE_NETWORK_OPEN_INFORMATION { | |
| LARGE_INTEGER CreationTime; | |
| LARGE_INTEGER LastAccessTime; | |
| LARGE_INTEGER LastWriteTime; | |
| LARGE_INTEGER ChangeTime; | |
| LARGE_INTEGER AllocationSize; | |
| LARGE_INTEGER EndOfFile; | |
| ULONG FileAttributes; | |
| } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION; | |
| typedef struct _FILE_FULL_EA_INFORMATION { | |
| ULONG NextEntryOffset; | |
| UCHAR Flags; | |
| UCHAR EaNameLength; | |
| USHORT EaValueLength; | |
| CHAR EaName[1]; | |
| } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION; | |
| typedef struct _FILE_MODE_INFORMATION { | |
| ULONG Mode; | |
| } FILE_MODE_INFORMATION, *PFILE_MODE_INFORMATION; | |
| typedef struct _FILE_STREAM_INFORMATION | |
| { | |
| ULONG NextEntryOffset; | |
| ULONG StreamNameLength; | |
| LARGE_INTEGER StreamSize; | |
| LARGE_INTEGER StreamAllocationSize; | |
| WCHAR StreamName[1]; | |
| } FILE_STREAM_INFORMATION, *PFILE_STREAM_INFORMATION; | |
| typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION | |
| { | |
| ULONG FileAttributes; | |
| ULONG ReparseTag; | |
| } FILE_ATTRIBUTE_TAG_INFORMATION, *PFILE_ATTRIBUTE_TAG_INFORMATION; | |
| typedef struct _FILE_MAILSLOT_QUERY_INFORMATION { | |
| ULONG MaximumMessageSize; | |
| ULONG MailslotQuota; | |
| ULONG NextMessageSize; | |
| ULONG MessagesAvailable; | |
| LARGE_INTEGER ReadTimeout; | |
| } FILE_MAILSLOT_QUERY_INFORMATION, *PFILE_MAILSLOT_QUERY_INFORMATION; | |
| typedef struct _FILE_MAILSLOT_SET_INFORMATION { | |
| LARGE_INTEGER ReadTimeout; | |
| } FILE_MAILSLOT_SET_INFORMATION, *PFILE_MAILSLOT_SET_INFORMATION; | |
| typedef struct _FILE_PIPE_LOCAL_INFORMATION { | |
| ULONG NamedPipeType; | |
| ULONG NamedPipeConfiguration; | |
| ULONG MaximumInstances; | |
| ULONG CurrentInstances; | |
| ULONG InboundQuota; | |
| ULONG ReadDataAvailable; | |
| ULONG OutboundQuota; | |
| ULONG WriteQuotaAvailable; | |
| ULONG NamedPipeState; | |
| ULONG NamedPipeEnd; | |
| } FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION; | |
| typedef struct _FILE_ALL_INFORMATION { | |
| FILE_BASIC_INFORMATION BasicInformation; | |
| FILE_STANDARD_INFORMATION StandardInformation; | |
| FILE_INTERNAL_INFORMATION InternalInformation; | |
| FILE_EA_INFORMATION EaInformation; | |
| FILE_ACCESS_INFORMATION AccessInformation; | |
| FILE_POSITION_INFORMATION PositionInformation; | |
| FILE_MODE_INFORMATION ModeInformation; | |
| FILE_ALIGNMENT_INFORMATION AlignmentInformation; | |
| FILE_NAME_INFORMATION NameInformation; | |
| } FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION; | |
| typedef enum _FSINFOCLASS { | |
| FileFsVolumeInformation = 1, | |
| FileFsLabelInformation, | |
| FileFsSizeInformation, | |
| FileFsDeviceInformation, | |
| FileFsAttributeInformation, | |
| FileFsControlInformation, | |
| FileFsFullSizeInformation, | |
| FileFsObjectIdInformation, | |
| FileFsMaximumInformation | |
| } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; | |
| typedef enum _KEY_INFORMATION_CLASS { | |
| KeyBasicInformation, | |
| KeyNodeInformation, | |
| KeyFullInformation, | |
| KeyNameInformation | |
| } KEY_INFORMATION_CLASS; | |
| typedef enum _KEY_VALUE_INFORMATION_CLASS { | |
| KeyValueBasicInformation, | |
| KeyValueFullInformation, | |
| KeyValuePartialInformation, | |
| KeyValueFullInformationAlign64, | |
| KeyValuePartialInformationAlign64 | |
| } KEY_VALUE_INFORMATION_CLASS; | |
| typedef enum _OBJECT_INFORMATION_CLASS { | |
| ObjectBasicInformation, | |
| ObjectNameInformation, | |
| ObjectTypeInformation, | |
| ObjectAllInformation, | |
| ObjectDataInformation | |
| } OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS; | |
| typedef enum _PROCESSINFOCLASS { | |
| ProcessBasicInformation = 0, | |
| ProcessQuotaLimits = 1, | |
| ProcessIoCounters = 2, | |
| ProcessVmCounters = 3, | |
| ProcessTimes = 4, | |
| ProcessBasePriority = 5, | |
| ProcessRaisePriority = 6, | |
| ProcessDebugPort = 7, | |
| ProcessExceptionPort = 8, | |
| ProcessAccessToken = 9, | |
| ProcessLdtInformation = 10, | |
| ProcessLdtSize = 11, | |
| ProcessDefaultHardErrorMode = 12, | |
| ProcessIoPortHandlers = 13, | |
| ProcessPooledUsageAndLimits = 14, | |
| ProcessWorkingSetWatch = 15, | |
| ProcessUserModeIOPL = 16, | |
| ProcessEnableAlignmentFaultFixup = 17, | |
| ProcessPriorityClass = 18, | |
| ProcessWx86Information = 19, | |
| ProcessHandleCount = 20, | |
| ProcessAffinityMask = 21, | |
| ProcessPriorityBoost = 22, | |
| ProcessDeviceMap = 23, | |
| ProcessSessionInformation = 24, | |
| ProcessForegroundInformation = 25, | |
| ProcessWow64Information = 26, | |
| ProcessImageFileName = 27, | |
| ProcessLUIDDeviceMapsEnabled = 28, | |
| ProcessBreakOnTermination = 29, | |
| 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 | |
| } SECTION_INHERIT; | |
| typedef enum _SYSTEM_INFORMATION_CLASS { | |
| SystemBasicInformation = 0, | |
| SystemCpuInformation = 1, | |
| SystemPerformanceInformation = 2, | |
| SystemTimeOfDayInformation = 3, /* was SystemTimeInformation */ | |
| Unknown4, | |
| SystemProcessInformation = 5, | |
| Unknown6, | |
| Unknown7, | |
| SystemProcessorPerformanceInformation = 8, | |
| Unknown9, | |
| Unknown10, | |
| SystemModuleInformation = 11, | |
| Unknown12, | |
| Unknown13, | |
| Unknown14, | |
| Unknown15, | |
| SystemHandleInformation = 16, | |
| Unknown17, | |
| SystemPageFileInformation = 18, | |
| Unknown19, | |
| Unknown20, | |
| SystemCacheInformation = 21, | |
| Unknown22, | |
| SystemInterruptInformation = 23, | |
| SystemDpcBehaviourInformation = 24, | |
| SystemFullMemoryInformation = 25, | |
| SystemNotImplemented6 = 25, | |
| SystemLoadImage = 26, | |
| SystemUnloadImage = 27, | |
| SystemTimeAdjustmentInformation = 28, | |
| SystemTimeAdjustment = 28, | |
| SystemSummaryMemoryInformation = 29, | |
| SystemNotImplemented7 = 29, | |
| SystemNextEventIdInformation = 30, | |
| SystemNotImplemented8 = 30, | |
| SystemEventIdsInformation = 31, | |
| SystemCrashDumpInformation = 32, | |
| SystemExceptionInformation = 33, | |
| SystemCrashDumpStateInformation = 34, | |
| SystemKernelDebuggerInformation = 35, | |
| SystemContextSwitchInformation = 36, | |
| SystemRegistryQuotaInformation = 37, | |
| SystemCurrentTimeZoneInformation = 44, | |
| SystemTimeZoneInformation = 44, | |
| SystemLookasideInformation = 45, | |
| SystemSetTimeSlipEvent = 46, | |
| SystemCreateSession = 47, | |
| SystemDeleteSession = 48, | |
| SystemInvalidInfoClass4 = 49, | |
| SystemRangeStartInformation = 50, | |
| SystemVerifierInformation = 51, | |
| SystemAddVerifier = 52, | |
| SystemSessionProcessesInformation = 53, | |
| SystemInformationClassMax | |
| } SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS; | |
| typedef enum _TIMER_TYPE { | |
| NotificationTimer, | |
| SynchronizationTimer | |
| } TIMER_TYPE; | |
| typedef enum _THREADINFOCLASS { | |
| ThreadBasicInformation, | |
| ThreadTimes, | |
| ThreadPriority, | |
| ThreadBasePriority, | |
| ThreadAffinityMask, | |
| ThreadImpersonationToken, | |
| ThreadDescriptorTableEntry, | |
| ThreadEnableAlignmentFaultFixup, | |
| ThreadEventPair_Reusable, | |
| ThreadQuerySetWin32StartAddress, | |
| ThreadZeroTlsCell, | |
| ThreadPerformanceCount, | |
| ThreadAmILastThread, | |
| ThreadIdealProcessor, | |
| ThreadPriorityBoost, | |
| ThreadSetTlsArrayAddress, | |
| ThreadIsIoPending, | |
| ThreadHideFromDebugger, | |
| MaxThreadInfoClass | |
| } THREADINFOCLASS; | |
| typedef struct _THREAD_BASIC_INFORMATION | |
| { | |
| NTSTATUS ExitStatus; | |
| PVOID TebBaseAddress; | |
| CLIENT_ID ClientId; | |
| ULONG_PTR AffinityMask; | |
| LONG Priority; | |
| LONG BasePriority; | |
| } THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION; | |
| typedef struct _THREAD_DESCRIPTOR_INFORMATION | |
| { | |
| DWORD Selector; | |
| LDT_ENTRY Entry; | |
| } THREAD_DESCRIPTOR_INFORMATION, *PTHREAD_DESCRIPTOR_INFORMATION; | |
| typedef struct _KERNEL_USER_TIMES { | |
| LARGE_INTEGER CreateTime; | |
| LARGE_INTEGER ExitTime; | |
| LARGE_INTEGER KernelTime; | |
| LARGE_INTEGER UserTime; | |
| } KERNEL_USER_TIMES, *PKERNEL_USER_TIMES; | |
| typedef enum _WINSTATIONINFOCLASS { | |
| WinStationInformation = 8 | |
| } WINSTATIONINFOCLASS; | |
| typedef enum _MEMORY_INFORMATION_CLASS { | |
| MemoryBasicInformation, | |
| MemoryWorkingSetList, | |
| MemorySectionName, | |
| MemoryBasicVlmInformation | |
| } MEMORY_INFORMATION_CLASS; | |
| typedef enum _MUTANT_INFORMATION_CLASS | |
| { | |
| MutantBasicInformation | |
| } MUTANT_INFORMATION_CLASS, *PMUTANT_INFORMATION_CLASS; | |
| typedef struct _MUTANT_BASIC_INFORMATION { | |
| LONG CurrentCount; | |
| BOOLEAN OwnedByCaller; | |
| BOOLEAN AbandonedState; | |
| } MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION; | |
| typedef enum _TIMER_INFORMATION_CLASS | |
| { | |
| TimerBasicInformation = 0 | |
| } TIMER_INFORMATION_CLASS; | |
| typedef struct _TIMER_BASIC_INFORMATION | |
| { | |
| LARGE_INTEGER RemainingTime; | |
| BOOLEAN TimerState; | |
| } TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION; | |
| /* return type of RtlDetermineDosPathNameType_U (FIXME: not the correct names) */ | |
| typedef enum | |
| { | |
| INVALID_PATH = 0, | |
| UNC_PATH, /* "//foo" */ | |
| ABSOLUTE_DRIVE_PATH, /* "c:/foo" */ | |
| RELATIVE_DRIVE_PATH, /* "c:foo" */ | |
| ABSOLUTE_PATH, /* "/foo" */ | |
| RELATIVE_PATH, /* "foo" */ | |
| DEVICE_PATH, /* "//./foo" */ | |
| UNC_DOT_PATH /* "//." */ | |
| } DOS_PATHNAME_TYPE; | |
| /*********************************************************************** | |
| * Types and data structures | |
| */ | |
| /* This is used by NtQuerySystemInformation */ | |
| 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 { | |
| union { | |
| NTSTATUS Status; | |
| PVOID Pointer; | |
| } DUMMYUNIONNAME; | |
| ULONG_PTR Information; | |
| } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; | |
| typedef void (WINAPI * PIO_APC_ROUTINE)(PVOID,PIO_STATUS_BLOCK,ULONG); | |
| typedef struct _KEY_BASIC_INFORMATION { | |
| LARGE_INTEGER LastWriteTime; | |
| ULONG TitleIndex; | |
| ULONG NameLength; | |
| WCHAR Name[1]; | |
| } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; | |
| typedef struct _KEY_NODE_INFORMATION | |
| { | |
| LARGE_INTEGER LastWriteTime; | |
| ULONG TitleIndex; | |
| ULONG ClassOffset; | |
| ULONG ClassLength; | |
| ULONG NameLength; | |
| WCHAR Name[1]; | |
| /* Class[1]; */ | |
| } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; | |
| typedef struct _KEY_FULL_INFORMATION | |
| { | |
| LARGE_INTEGER LastWriteTime; | |
| ULONG TitleIndex; | |
| ULONG ClassOffset; | |
| ULONG ClassLength; | |
| ULONG SubKeys; | |
| ULONG MaxNameLen; | |
| ULONG MaxClassLen; | |
| ULONG Values; | |
| ULONG MaxValueNameLen; | |
| ULONG MaxValueDataLen; | |
| 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; | |
| ULONG DataLength; | |
| ULONG DataOffset; | |
| ULONG Type; | |
| } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; | |
| typedef struct _KEY_VALUE_BASIC_INFORMATION { | |
| ULONG TitleIndex; | |
| ULONG Type; | |
| ULONG NameLength; | |
| WCHAR Name[1]; | |
| } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION; | |
| typedef struct _KEY_VALUE_FULL_INFORMATION { | |
| ULONG TitleIndex; | |
| ULONG Type; | |
| ULONG DataOffset; | |
| ULONG DataLength; | |
| ULONG NameLength; | |
| WCHAR Name[1]; | |
| } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; | |
| typedef struct _KEY_VALUE_PARTIAL_INFORMATION { | |
| ULONG TitleIndex; | |
| ULONG Type; | |
| ULONG DataLength; | |
| 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; | |
| PUNICODE_STRING ObjectName; | |
| ULONG Attributes; | |
| PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */ | |
| PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */ | |
| } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; | |
| #endif | |
| typedef struct _OBJECT_DATA_INFORMATION { | |
| BOOLEAN InheritHandle; | |
| BOOLEAN ProtectFromClose; | |
| } OBJECT_DATA_INFORMATION, *POBJECT_DATA_INFORMATION; | |
| typedef struct _OBJECT_BASIC_INFORMATION { | |
| ULONG Attributes; | |
| ACCESS_MASK GrantedAccess; | |
| ULONG HandleCount; | |
| ULONG PointerCount; | |
| ULONG PagedPoolUsage; | |
| ULONG NonPagedPoolUsage; | |
| ULONG Reserved[3]; | |
| ULONG NameInformationLength; | |
| ULONG TypeInformationLength; | |
| ULONG SecurityDescriptorLength; | |
| 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_PTR ExitStatus; | |
| PPEB PebBaseAddress; | |
| DWORD_PTR AffinityMask; | |
| DWORD_PTR BasePriority; | |
| ULONG_PTR UniqueProcessId; | |
| ULONG_PTR InheritedFromUniqueProcessId; | |
| #else | |
| PVOID Reserved1; | |
| PPEB PebBaseAddress; | |
| PVOID Reserved2[2]; | |
| ULONG_PTR UniqueProcessId; | |
| PVOID Reserved3; | |
| #endif | |
| } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; | |
| #define PROCESS_PRIOCLASS_IDLE 1 | |
| #define PROCESS_PRIOCLASS_NORMAL 2 | |
| #define PROCESS_PRIOCLASS_HIGH 3 | |
| #define PROCESS_PRIOCLASS_REALTIME 4 | |
| #define PROCESS_PRIOCLASS_BELOW_NORMAL 5 | |
| #define PROCESS_PRIOCLASS_ABOVE_NORMAL 6 | |
| typedef struct _PROCESS_PRIORITY_CLASS { | |
| BOOLEAN Foreground; | |
| UCHAR PriorityClass; | |
| } PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS; | |
| typedef struct _RTL_HEAP_DEFINITION { | |
| ULONG Length; /* = sizeof(RTL_HEAP_DEFINITION) */ | |
| ULONG Unknown[11]; | |
| } RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION; | |
| typedef struct _RTL_RWLOCK { | |
| RTL_CRITICAL_SECTION rtlCS; | |
| HANDLE hSharedReleaseSemaphore; | |
| UINT uSharedWaiters; | |
| HANDLE hExclusiveReleaseSemaphore; | |
| UINT uExclusiveWaiters; | |
| INT iNumberActive; | |
| HANDLE hOwningThreadId; | |
| DWORD dwTimeoutBoost; | |
| PVOID pDebugInfo; | |
| } RTL_RWLOCK, *LPRTL_RWLOCK; | |
| /* System Information Class 0x00 */ | |
| typedef struct _SYSTEM_BASIC_INFORMATION { | |
| #ifdef __WINESRC__ | |
| 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]; | |
| CCHAR NumberOfProcessors; | |
| #endif | |
| } SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION; | |
| /* System Information Class 0x01 */ | |
| typedef struct _SYSTEM_CPU_INFORMATION { | |
| WORD Architecture; | |
| WORD Level; | |
| WORD Revision; /* combination of CPU model and stepping */ | |
| WORD Reserved; /* always zero */ | |
| DWORD FeatureSet; /* see bit flags below */ | |
| } SYSTEM_CPU_INFORMATION, *PSYSTEM_CPU_INFORMATION; | |
| /* definitions of bits in the Feature set for the x86 processors */ | |
| #define CPU_FEATURE_VME 0x00000005 /* Virtual 86 Mode Extensions */ | |
| #define CPU_FEATURE_TSC 0x00000002 /* Time Stamp Counter available */ | |
| #define CPU_FEATURE_CMOV 0x00000008 /* Conditional Move instruction*/ | |
| #define CPU_FEATURE_PGE 0x00000014 /* Page table Entry Global bit */ | |
| #define CPU_FEATURE_PSE 0x00000024 /* Page Size Extension */ | |
| #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 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 extensions (ext. MMX) */ | |
| #define CPU_FEATURE_3DNOW 0x00008000 /* 3DNOW instructions available | |
| (FIXME: needs to be confirmed) */ | |
| #define CPU_FEATURE_SSE2 0x00010000 /* SSE2 extensions (XMMI64) */ | |
| #define CPU_FEATURE_DS 0x00020000 /* Debug Store */ | |
| #define CPU_FEATURE_HTT 0x00040000 /* Hyper Threading Technology */ | |
| /* System Information Class 0x02 */ | |
| typedef struct _SYSTEM_PERFORMANCE_INFORMATION { | |
| BYTE Reserved1[312]; | |
| } SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION; | |
| /* System Information Class 0x03 */ | |
| typedef struct _SYSTEM_TIMEOFDAY_INFORMATION { | |
| #ifdef __WINESRC__ | |
| LARGE_INTEGER liKeBootTime; | |
| LARGE_INTEGER liKeSystemTime; | |
| LARGE_INTEGER liExpTimeZoneBias; | |
| ULONG uCurrentTimeZoneId; | |
| DWORD dwUnknown1[5]; | |
| #else | |
| BYTE Reserved1[48]; | |
| #endif | |
| } SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION; /* was SYSTEM_TIME_INFORMATION */ | |
| /* System Information Class 0x08 */ | |
| typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { | |
| LARGE_INTEGER IdleTime; | |
| LARGE_INTEGER KernelTime; | |
| LARGE_INTEGER UserTime; | |
| LARGE_INTEGER Reserved1[2]; | |
| ULONG Reserved2; | |
| } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION; | |
| /* System Information Class 0x0b */ | |
| typedef struct _SYSTEM_DRIVER_INFORMATION { | |
| PVOID pvAddress; | |
| DWORD dwUnknown1; | |
| DWORD dwUnknown2; | |
| DWORD dwEntryIndex; | |
| DWORD dwUnknown3; | |
| char szName[MAX_PATH + 1]; | |
| } SYSTEM_DRIVER_INFORMATION, *PSYSTEM_DRIVER_INFORMATION; | |
| /* System Information Class 0x10 */ | |
| typedef struct _SYSTEM_HANDLE_ENTRY { | |
| ULONG OwnerPid; | |
| BYTE ObjectType; | |
| BYTE HandleFlags; | |
| USHORT HandleValue; | |
| PVOID ObjectPointer; | |
| ULONG AccessMask; | |
| } SYSTEM_HANDLE_ENTRY, *PSYSTEM_HANDLE_ENTRY; | |
| typedef struct _SYSTEM_HANDLE_INFORMATION { | |
| ULONG Count; | |
| SYSTEM_HANDLE_ENTRY Handle[1]; | |
| } SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION; | |
| /* System Information Class 0x15 */ | |
| typedef struct _SYSTEM_CACHE_INFORMATION { | |
| 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 */ | |
| typedef struct _SYSTEM_INTERRUPT_INFORMATION { | |
| BYTE Reserved1[24]; | |
| } SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION; | |
| typedef struct _SYSTEM_CONFIGURATION_INFO { | |
| union { | |
| ULONG OemId; | |
| struct { | |
| WORD ProcessorArchitecture; | |
| WORD Reserved; | |
| } tag1; | |
| } tag2; | |
| ULONG PageSize; | |
| PVOID MinimumApplicationAddress; | |
| PVOID MaximumApplicationAddress; | |
| ULONG ActiveProcessorMask; | |
| ULONG NumberOfProcessors; | |
| ULONG ProcessorType; | |
| ULONG AllocationGranularity; | |
| WORD ProcessorLevel; | |
| WORD ProcessorRevision; | |
| } SYSTEM_CONFIGURATION_INFO, *PSYSTEM_CONFIGURATION_INFO; | |
| typedef struct _SYSTEM_EXCEPTION_INFORMATION { | |
| BYTE Reserved1[16]; | |
| } SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION; | |
| typedef struct _SYSTEM_LOOKASIDE_INFORMATION { | |
| BYTE Reserved1[32]; | |
| } SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION; | |
| typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION { | |
| BOOLEAN DebuggerEnabled; | |
| BOOLEAN DebuggerNotPresent; | |
| } SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION; | |
| /* System Information Class 0x05 */ | |
| typedef struct _VM_COUNTERS_ { | |
| SIZE_T PeakVirtualSize; | |
| SIZE_T VirtualSize; | |
| ULONG PageFaultCount; | |
| SIZE_T PeakWorkingSetSize; | |
| SIZE_T WorkingSetSize; | |
| SIZE_T QuotaPeakPagedPoolUsage; | |
| SIZE_T QuotaPagedPoolUsage; | |
| SIZE_T QuotaPeakNonPagedPoolUsage; | |
| SIZE_T QuotaNonPagedPoolUsage; | |
| SIZE_T PagefileUsage; | |
| SIZE_T PeakPagefileUsage; | |
| SIZE_T PrivatePageCount; | |
| } VM_COUNTERS, *PVM_COUNTERS; | |
| typedef struct _SYSTEM_PROCESS_INFORMATION { | |
| #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; /* 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; | |
| typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION { | |
| ULONG RegistryQuotaAllowed; | |
| ULONG RegistryQuotaUsed; | |
| PVOID Reserved1; | |
| } SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION; | |
| typedef struct _SYSTEM_TIME_ADJUSTMENT { | |
| ULONG TimeAdjustment; | |
| BOOLEAN TimeAdjustmentDisabled; | |
| } SYSTEM_TIME_ADJUSTMENT, *PSYSTEM_TIME_ADJUSTMENT; | |
| typedef struct _TIME_FIELDS | |
| { CSHORT Year; | |
| CSHORT Month; | |
| CSHORT Day; | |
| CSHORT Hour; | |
| CSHORT Minute; | |
| CSHORT Second; | |
| CSHORT Milliseconds; | |
| CSHORT Weekday; | |
| } TIME_FIELDS, *PTIME_FIELDS; | |
| typedef struct _WINSTATIONINFORMATIONW { | |
| BYTE Reserved2[70]; | |
| ULONG LogonId; | |
| BYTE Reserved3[1140]; | |
| } WINSTATIONINFORMATIONW, *PWINSTATIONINFORMATIONW; | |
| typedef BOOLEAN (WINAPI * PWINSTATIONQUERYINFORMATIONW)(HANDLE,ULONG,WINSTATIONINFOCLASS,PVOID,ULONG,PULONG); | |
| typedef struct _LDR_RESOURCE_INFO | |
| { | |
| ULONG_PTR Type; | |
| ULONG_PTR Name; | |
| ULONG Language; | |
| } LDR_RESOURCE_INFO, *PLDR_RESOURCE_INFO; | |
| /* debug buffer definitions */ | |
| typedef struct _DEBUG_BUFFER { | |
| HANDLE SectionHandle; | |
| PVOID SectionBase; | |
| PVOID RemoteSectionBase; | |
| ULONG SectionBaseDelta; | |
| HANDLE EventPairHandle; | |
| ULONG Unknown[2]; | |
| HANDLE RemoteThreadHandle; | |
| ULONG InfoClassMask; | |
| ULONG SizeOfInfo; | |
| ULONG AllocatedSize; | |
| ULONG SectionSize; | |
| PVOID ModuleInformation; | |
| PVOID BackTraceInformation; | |
| PVOID HeapInformation; | |
| PVOID LockInformation; | |
| PVOID Reserved[8]; | |
| } DEBUG_BUFFER, *PDEBUG_BUFFER; | |
| #define PDI_MODULES 0x01 | |
| #define PDI_BACKTRACE 0x02 | |
| #define PDI_HEAPS 0x04 | |
| #define PDI_HEAP_TAGS 0x08 | |
| #define PDI_HEAP_BLOCKS 0x10 | |
| #define PDI_LOCKS 0x20 | |
| typedef struct _DEBUG_MODULE_INFORMATION { | |
| ULONG Reserved[2]; | |
| ULONG Base; | |
| ULONG Size; | |
| ULONG Flags; | |
| USHORT Index; | |
| USHORT Unknown; | |
| USHORT LoadCount; | |
| USHORT ModuleNameOffset; | |
| CHAR ImageName[256]; | |
| } DEBUG_MODULE_INFORMATION, *PDEBUG_MODULE_INFORMATION; | |
| typedef struct _DEBUG_HEAP_INFORMATION { | |
| ULONG Base; | |
| ULONG Flags; | |
| USHORT Granularity; | |
| USHORT Unknown; | |
| ULONG Allocated; | |
| ULONG Committed; | |
| ULONG TagCount; | |
| ULONG BlockCount; | |
| ULONG Reserved[7]; | |
| PVOID Tags; | |
| PVOID Blocks; | |
| } DEBUG_HEAP_INFORMATION, *PDEBUG_HEAP_INFORMATION; | |
| typedef struct _DEBUG_LOCK_INFORMATION { | |
| PVOID Address; | |
| USHORT Type; | |
| USHORT CreatorBackTraceIndex; | |
| ULONG OwnerThreadId; | |
| ULONG ActiveCount; | |
| ULONG ContentionCount; | |
| ULONG EntryCount; | |
| ULONG RecursionCount; | |
| ULONG NumberOfSharedWaiters; | |
| ULONG NumberOfExclusiveWaiters; | |
| } DEBUG_LOCK_INFORMATION, *PDEBUG_LOCK_INFORMATION; | |
| typedef struct _PORT_MESSAGE_HEADER { | |
| USHORT DataSize; | |
| USHORT MessageSize; | |
| USHORT MessageType; | |
| USHORT VirtualRangesOffset; | |
| CLIENT_ID ClientId; | |
| ULONG MessageId; | |
| ULONG SectionSize; | |
| } PORT_MESSAGE_HEADER, *PPORT_MESSAGE_HEADER, PORT_MESSAGE, *PPORT_MESSAGE; | |
| typedef unsigned short RTL_ATOM, *PRTL_ATOM; | |
| /* 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 objects, hence a HANDLE | |
| */ | |
| typedef struct atom_table *RTL_ATOM_TABLE, **PRTL_ATOM_TABLE; | |
| typedef enum _ATOM_INFORMATION_CLASS { | |
| AtomBasicInformation = 0, | |
| AtomTableInformation = 1, | |
| } ATOM_INFORMATION_CLASS; | |
| typedef struct _ATOM_BASIC_INFORMATION { | |
| USHORT ReferenceCount; | |
| USHORT Pinned; | |
| USHORT NameLength; | |
| WCHAR Name[1]; | |
| } ATOM_BASIC_INFORMATION, *PATOM_BASIC_INFORMATION; | |
| /* FIXME: names probably not correct */ | |
| typedef struct _RTL_HANDLE | |
| { | |
| struct _RTL_HANDLE * Next; | |
| } RTL_HANDLE; | |
| /* FIXME: names probably not correct */ | |
| typedef struct _RTL_HANDLE_TABLE | |
| { | |
| ULONG MaxHandleCount; /* 0x00 */ | |
| ULONG HandleSize; /* 0x04 */ | |
| ULONG Unused[2]; /* 0x08-0x0c */ | |
| PVOID NextFree; /* 0x10 */ | |
| PVOID FirstHandle; /* 0x14 */ | |
| PVOID ReservedMemory; /* 0x18 */ | |
| PVOID MaxHandle; /* 0x1c */ | |
| } RTL_HANDLE_TABLE; | |
| /*********************************************************************** | |
| * Defines | |
| */ | |
| /* flags for NtCreateFile and NtOpenFile */ | |
| #define FILE_DIRECTORY_FILE 0x00000001 | |
| #define FILE_WRITE_THROUGH 0x00000002 | |
| #define FILE_SEQUENTIAL_ONLY 0x00000004 | |
| #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 | |
| #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 | |
| #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 | |
| #define FILE_NON_DIRECTORY_FILE 0x00000040 | |
| #define FILE_CREATE_TREE_CONNECTION 0x00000080 | |
| #define FILE_COMPLETE_IF_OPLOCKED 0x00000100 | |
| #define FILE_NO_EA_KNOWLEDGE 0x00000200 | |
| #define FILE_OPEN_FOR_RECOVERY 0x00000400 | |
| #define FILE_RANDOM_ACCESS 0x00000800 | |
| #define FILE_DELETE_ON_CLOSE 0x00001000 | |
| #define FILE_OPEN_BY_FILE_ID 0x00002000 | |
| #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 | |
| #define FILE_NO_COMPRESSION 0x00008000 | |
| #define FILE_RESERVE_OPFILTER 0x00100000 | |
| #define FILE_TRANSACTED_MODE 0x00200000 | |
| #define FILE_OPEN_OFFLINE_FILE 0x00400000 | |
| #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 | |
| #define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7 | |
| #define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7 | |
| /* status for NtCreateFile or NtOpenFile */ | |
| #define FILE_SUPERSEDED 0 | |
| #define FILE_OPENED 1 | |
| #define FILE_CREATED 2 | |
| #define FILE_OVERWRITTEN 3 | |
| #define FILE_EXISTS 4 | |
| #define FILE_DOES_NOT_EXIST 5 | |
| /* disposition for NtCreateFile */ | |
| #define FILE_SUPERSEDE 0 | |
| #define FILE_OPEN 1 | |
| #define FILE_CREATE 2 | |
| #define FILE_OPEN_IF 3 | |
| #define FILE_OVERWRITE 4 | |
| #define FILE_OVERWRITE_IF 5 | |
| #define FILE_MAXIMUM_DISPOSITION 5 | |
| /* Characteristics of a File System */ | |
| #define FILE_REMOVABLE_MEDIA 0x00000001 | |
| #define FILE_READ_ONLY_DEVICE 0x00000002 | |
| #define FILE_FLOPPY_DISKETTE 0x00000004 | |
| #define FILE_WRITE_ONE_MEDIA 0x00000008 | |
| #define FILE_REMOTE_DEVICE 0x00000010 | |
| #define FILE_DEVICE_IS_MOUNTED 0x00000020 | |
| #define FILE_VIRTUAL_VOLUME 0x00000040 | |
| #define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080 | |
| #define FILE_DEVICE_SECURE_OPEN 0x00000100 | |
| /* options for NtCreateNamedPipeFile */ | |
| #define FILE_PIPE_INBOUND 0x00000000 | |
| #define FILE_PIPE_OUTBOUND 0x00000001 | |
| #define FILE_PIPE_FULL_DUPLEX 0x00000002 | |
| /* options for pipe's type */ | |
| #define FILE_PIPE_TYPE_MESSAGE 0x00000001 | |
| #define FILE_PIPE_TYPE_BYTE 0x00000000 | |
| /* and client / server end */ | |
| #define FILE_PIPE_SERVER_END 0x00000001 | |
| #define FILE_PIPE_CLIENT_END 0x00000000 | |
| #define INTERNAL_TS_ACTIVE_CONSOLE_ID ( *((volatile ULONG*)(0x7ffe02d8)) ) | |
| #define LOGONID_CURRENT ((ULONG)-1) | |
| #define OBJ_INHERIT 0x00000002L | |
| #define OBJ_PERMANENT 0x00000010L | |
| #define OBJ_EXCLUSIVE 0x00000020L | |
| #define OBJ_CASE_INSENSITIVE 0x00000040L | |
| #define OBJ_OPENIF 0x00000080L | |
| #define OBJ_OPENLINK 0x00000100L | |
| #define OBJ_KERNEL_HANDLE 0x00000200L | |
| #define OBJ_VALID_ATTRIBUTES 0x000003F2L | |
| #define SERVERNAME_CURRENT ((HANDLE)NULL) | |
| 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 DPFLTR_ERROR_LEVEL 0 | |
| #define DPFLTR_WARNING_LEVEL 1 | |
| #define DPFLTR_TRACE_LEVEL 2 | |
| #define DPFLTR_INFO_LEVEL 3 | |
| #define DPFLTR_MASK 0x8000000 | |
| /* Well-known LUID values */ | |
| #define SE_MIN_WELL_KNOWN_PRIVILEGE 2L | |
| #define SE_CREATE_TOKEN_PRIVILEGE 2L | |
| #define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE 3L | |
| #define SE_LOCK_MEMORY_PRIVILEGE 4L | |
| #define SE_INCREASE_QUOTA_PRIVILEGE 5L | |
| #define SE_UNSOLICITED_INPUT_PRIVILEGE 6L /* obsolete */ | |
| #define SE_MACHINE_ACCOUNT_PRIVILEGE 6L | |
| #define SE_TCB_PRIVILEGE 7L | |
| #define SE_SECURITY_PRIVILEGE 8L | |
| #define SE_TAKE_OWNERSHIP_PRIVILEGE 9L | |
| #define SE_LOAD_DRIVER_PRIVILEGE 10L | |
| #define SE_SYSTEM_PROFILE_PRIVILEGE 11L | |
| #define SE_SYSTEMTIME_PRIVILEGE 12L | |
| #define SE_PROF_SINGLE_PROCESS_PRIVILEGE 13L | |
| #define SE_INC_BASE_PRIORITY_PRIVILEGE 14L | |
| #define SE_CREATE_PAGEFILE_PRIVILEGE 15L | |
| #define SE_CREATE_PERMANENT_PRIVILEGE 16L | |
| #define SE_BACKUP_PRIVILEGE 17L | |
| #define SE_RESTORE_PRIVILEGE 18L | |
| #define SE_SHUTDOWN_PRIVILEGE 19L | |
| #define SE_DEBUG_PRIVILEGE 20L | |
| #define SE_AUDIT_PRIVILEGE 21L | |
| #define SE_SYSTEM_ENVIRONMENT_PRIVILEGE 22L | |
| #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_ENABLE_DELEGATION_PRIVILEGE 27L | |
| #define SE_MANAGE_VOLUME_PRIVILEGE 28L | |
| #define SE_IMPERSONATE_PRIVILEGE 29L | |
| #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 | |
| #define RTL_REGISTRY_SERVICES 1 | |
| #define RTL_REGISTRY_CONTROL 2 | |
| #define RTL_REGISTRY_WINDOWS_NT 3 | |
| #define RTL_REGISTRY_DEVICEMAP 4 | |
| #define RTL_REGISTRY_USER 5 | |
| #define RTL_REGISTRY_HANDLE 0x40000000 | |
| #define RTL_REGISTRY_OPTIONAL 0x80000000 | |
| #define RTL_QUERY_REGISTRY_SUBKEY 0x00000001 | |
| #define RTL_QUERY_REGISTRY_TOPKEY 0x00000002 | |
| #define RTL_QUERY_REGISTRY_REQUIRED 0x00000004 | |
| #define RTL_QUERY_REGISTRY_NOVALUE 0x00000008 | |
| #define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010 | |
| #define RTL_QUERY_REGISTRY_DIRECT 0x00000020 | |
| #define RTL_QUERY_REGISTRY_DELETE 0x00000040 | |
| typedef NTSTATUS (WINAPI *PRTL_QUERY_REGISTRY_ROUTINE)( PCWSTR ValueName, | |
| ULONG ValueType, | |
| PVOID ValueData, | |
| ULONG ValueLength, | |
| PVOID Context, | |
| PVOID EntryContext); | |
| typedef struct _RTL_QUERY_REGISTRY_TABLE | |
| { | |
| PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine; | |
| ULONG Flags; | |
| PWSTR Name; | |
| PVOID EntryContext; | |
| ULONG DefaultType; | |
| PVOID DefaultData; | |
| ULONG DefaultLength; | |
| } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE; | |
| typedef struct _KEY_MULTIPLE_VALUE_INFORMATION | |
| { | |
| PUNICODE_STRING ValueName; | |
| ULONG DataLength; | |
| ULONG DataOffset; | |
| ULONG Type; | |
| } KEY_MULTIPLE_VALUE_INFORMATION, *PKEY_MULTIPLE_VALUE_INFORMATION; | |
| typedef VOID (CALLBACK *PRTL_OVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPVOID); | |
| typedef VOID (CALLBACK *PTIMER_APC_ROUTINE) ( PVOID, ULONG, LONG ); | |
| typedef enum _EVENT_TYPE { | |
| NotificationEvent, | |
| SynchronizationEvent | |
| } EVENT_TYPE, *PEVENT_TYPE; | |
| typedef enum _EVENT_INFORMATION_CLASS { | |
| EventBasicInformation | |
| } EVENT_INFORMATION_CLASS, *PEVENT_INFORMATION_CLASS; | |
| typedef struct _EVENT_BASIC_INFORMATION { | |
| EVENT_TYPE EventType; | |
| LONG EventState; | |
| } EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION; | |
| typedef enum _SEMAPHORE_INFORMATION_CLASS { | |
| SemaphoreBasicInformation | |
| } SEMAPHORE_INFORMATION_CLASS, *PSEMAPHORE_INFORMATION_CLASS; | |
| typedef struct _SEMAPHORE_BASIC_INFORMATION { | |
| ULONG CurrentCount; | |
| ULONG MaximumCount; | |
| } SEMAPHORE_BASIC_INFORMATION, *PSEMAPHORE_BASIC_INFORMATION; | |
| typedef enum _SECTION_INFORMATION_CLASS | |
| { | |
| SectionBasicInformation, | |
| SectionImageInformation, | |
| } SECTION_INFORMATION_CLASS; | |
| typedef struct _SECTION_BASIC_INFORMATION { | |
| ULONG BaseAddress; | |
| ULONG Attributes; | |
| LARGE_INTEGER Size; | |
| } SECTION_BASIC_INFORMATION, *PSECTION_BASIC_INFORMATION; | |
| typedef struct _SECTION_IMAGE_INFORMATION { | |
| PVOID EntryPoint; | |
| ULONG StackZeroBits; | |
| ULONG StackReserved; | |
| ULONG StackCommit; | |
| ULONG ImageSubsystem; | |
| WORD SubsystemVersionLow; | |
| WORD SubsystemVersionHigh; | |
| ULONG Unknown1; | |
| ULONG ImageCharacteristics; | |
| ULONG ImageMachineType; | |
| ULONG Unknown2[3]; | |
| } SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION; | |
| typedef struct _LPC_SECTION_WRITE { | |
| ULONG Length; | |
| HANDLE SectionHandle; | |
| ULONG SectionOffset; | |
| ULONG ViewSize; | |
| PVOID ViewBase; | |
| PVOID TargetViewBase; | |
| } LPC_SECTION_WRITE, *PLPC_SECTION_WRITE; | |
| typedef struct _LPC_SECTION_READ { | |
| ULONG Length; | |
| ULONG ViewSize; | |
| PVOID ViewBase; | |
| } LPC_SECTION_READ, *PLPC_SECTION_READ; | |
| typedef struct _LPC_MESSAGE { | |
| USHORT DataSize; | |
| USHORT MessageSize; | |
| USHORT MessageType; | |
| USHORT VirtualRangesOffset; | |
| CLIENT_ID ClientId; | |
| ULONG_PTR MessageId; | |
| ULONG_PTR SectionSize; | |
| UCHAR Data[ANYSIZE_ARRAY]; | |
| } LPC_MESSAGE, *PLPC_MESSAGE; | |
| typedef enum _SHUTDOWN_ACTION { | |
| ShutdownNoReboot, | |
| ShutdownReboot, | |
| ShutdownPowerOff | |
| } SHUTDOWN_ACTION, *PSHUTDOWN_ACTION; | |
| typedef enum _KPROFILE_SOURCE { | |
| ProfileTime, | |
| ProfileAlignmentFixup, | |
| ProfileTotalIssues, | |
| ProfilePipelineDry, | |
| ProfileLoadInstructions, | |
| ProfilePipelineFrozen, | |
| ProfileBranchInstructions, | |
| ProfileTotalNonissues, | |
| ProfileDcacheMisses, | |
| ProfileIcacheMisses, | |
| ProfileCacheMisses, | |
| ProfileBranchMispredictions, | |
| ProfileStoreInstructions, | |
| ProfileFpInstructions, | |
| ProfileIntegerInstructions, | |
| Profile2Issue, | |
| Profile3Issue, | |
| Profile4Issue, | |
| ProfileSpecialInstructions, | |
| ProfileTotalCycles, | |
| ProfileIcacheIssues, | |
| ProfileDcacheAccesses, | |
| ProfileMemoryBarrierCycles, | |
| ProfileLoadLinkedIssues, | |
| ProfileMaximum | |
| } KPROFILE_SOURCE, *PKPROFILE_SOURCE; | |
| typedef struct _DIRECTORY_BASIC_INFORMATION { | |
| UNICODE_STRING ObjectName; | |
| UNICODE_STRING ObjectTypeName; | |
| } DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION; | |
| typedef struct _INITIAL_TEB { | |
| PVOID StackBase; | |
| PVOID StackLimit; | |
| PVOID StackCommit; | |
| PVOID StackCommitMax; | |
| PVOID StackReserved; | |
| } INITIAL_TEB, *PINITIAL_TEB; | |
| typedef enum _PORT_INFORMATION_CLASS { | |
| PortNoInformation | |
| } PORT_INFORMATION_CLASS, *PPORT_INFORMATION_CLASS; | |
| typedef enum _IO_COMPLETION_INFORMATION_CLASS { | |
| 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, | |
| OptionOkCancel, | |
| OptionRetryCancel, | |
| OptionYesNo, | |
| OptionYesNoCancel, | |
| OptionShutdownSystem | |
| } HARDERROR_RESPONSE_OPTION, *PHARDERROR_RESPONSE_OPTION; | |
| typedef enum _HARDERROR_RESPONSE { | |
| ResponseReturnToCaller, | |
| ResponseNotHandled, | |
| ResponseAbort, | |
| ResponseCancel, | |
| ResponseIgnore, | |
| ResponseNo, | |
| ResponseOk, | |
| ResponseRetry, | |
| ResponseYes | |
| } HARDERROR_RESPONSE, *PHARDERROR_RESPONSE; | |
| typedef enum _SYSDBG_COMMAND { | |
| SysDbgQueryModuleInformation, | |
| SysDbgQueryTraceInformation, | |
| SysDbgSetTracepoint, | |
| SysDbgSetSpecialCall, | |
| 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 | |
| */ | |
| #if defined(__i386__) && defined(__GNUC__) | |
| static inline void WINAPI DbgBreakPoint(void) { __asm__ __volatile__("int3"); } | |
| static inline void WINAPI DbgUserBreakPoint(void) { __asm__ __volatile__("int3"); } | |
| #else /* __i386__ && __GNUC__ */ | |
| NTSYSAPI void WINAPI DbgBreakPoint(void); | |
| NTSYSAPI void WINAPI DbgUserBreakPoint(void); | |
| #endif /* __i386__ && __GNUC__ */ | |
| 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__ | |
| 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 | |
| /* Wine internal functions */ | |
| 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 ); | |
| /*********************************************************************** | |
| * Inline functions | |
| */ | |
| #define InitializeObjectAttributes(p,n,a,r,s) \ | |
| do { \ | |
| (p)->Length = sizeof(OBJECT_ATTRIBUTES); \ | |
| (p)->RootDirectory = r; \ | |
| (p)->Attributes = a; \ | |
| (p)->ObjectName = n; \ | |
| (p)->SecurityDescriptor = s; \ | |
| (p)->SecurityQualityOfService = NULL; \ | |
| } while (0) | |
| #define NtCurrentProcess() ((HANDLE)-1) | |
| #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) | |
| #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) | |
| #define RtlStoreUlong(p,v) do { ULONG _v = (v); memcpy((p), &_v, sizeof(_v)); } while (0) | |
| #define RtlStoreUlonglong(p,v) do { ULONGLONG _v = (v); memcpy((p), &_v, sizeof(_v)); } while (0) | |
| #define RtlRetrieveUlong(p,s) memcpy((p), (s), sizeof(ULONG)) | |
| #define RtlRetrieveUlonglong(p,s) memcpy((p), (s), sizeof(ULONGLONG)) | |
| #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) | |
| static inline BOOLEAN RtlCheckBit(PCRTL_BITMAP lpBits, ULONG ulBit) | |
| { | |
| if (lpBits && ulBit < lpBits->SizeOfBitMap && | |
| lpBits->Buffer[ulBit >> 5] & (1 << (ulBit & 31))) | |
| return TRUE; | |
| return FALSE; | |
| } | |
| /* These are implemented as __fastcall, so we can't let Winelib apps link with them */ | |
| static inline USHORT RtlUshortByteSwap(USHORT s) | |
| { | |
| return (s >> 8) | (s << 8); | |
| } | |
| static inline ULONG RtlUlongByteSwap(ULONG i) | |
| { | |
| #if defined(__i386__) && defined(__GNUC__) | |
| ULONG ret; | |
| __asm__("bswap %0" : "=r" (ret) : "0" (i) ); | |
| return ret; | |
| #else | |
| return ((ULONG)RtlUshortByteSwap((USHORT)i) << 16) | RtlUshortByteSwap((USHORT)(i >> 16)); | |
| #endif | |
| } | |
| /* 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) | |
| #define InsertTailList(le,e) do { PLIST_ENTRY b = (le)->Blink; (e)->Flink = (le); (e)->Blink = b; b->Flink = (e); (le)->Blink = (e); } while (0) | |
| #define IsListEmpty(le) ((le)->Flink == (le)) | |
| #define RemoveEntryList(e) do { PLIST_ENTRY f = (e)->Flink, b = (e)->Blink; f->Blink = b; b->Flink = f; (e)->Flink = (e)->Blink = NULL; } while (0) | |
| static inline PLIST_ENTRY RemoveHeadList(PLIST_ENTRY le) | |
| { | |
| PLIST_ENTRY f, b, e; | |
| e = le->Flink; | |
| f = le->Flink->Flink; | |
| b = le->Flink->Blink; | |
| f->Blink = b; | |
| b->Flink = f; | |
| if (e != le) e->Flink = e->Blink = NULL; | |
| return e; | |
| } | |
| static inline PLIST_ENTRY RemoveTailList(PLIST_ENTRY le) | |
| { | |
| PLIST_ENTRY f, b, e; | |
| e = le->Blink; | |
| f = le->Blink->Flink; | |
| b = le->Blink->Blink; | |
| f->Blink = b; | |
| b->Flink = f; | |
| if (e != le) e->Flink = e->Blink = NULL; | |
| 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) */ | |
| #endif /* __WINE_WINTERNL_H */ |