📄 winnt.h
字号:
#ifndef _WINNT_H#define _WINNT_H#if __GNUC__ >=3#pragma GCC system_header#endif/* translate GCC target defines to MS equivalents. Keep this synchronized with windows.h. */#if defined(__i686__) && !defined(_M_IX86)#define _M_IX86 600#elif defined(__i586__) && !defined(_M_IX86)#define _M_IX86 500#elif defined(__i486__) && !defined(_M_IX86)#define _M_IX86 400#elif defined(__i386__) && !defined(_M_IX86)#define _M_IX86 300#endif#if defined(_M_IX86) && !defined(_X86_)#define _X86_#elif defined(_M_ALPHA) && !defined(_ALPHA_)#define _ALPHA_#elif defined(_M_PPC) && !defined(_PPC_)#define _PPC_#elif defined(_M_MRX000) && !defined(_MIPS_)#define _MIPS_#elif defined(_M_M68K) && !defined(_68K_)#define _68K_#endif#ifdef __cplusplusextern "C" {#endif#include <winerror.h>#ifndef RC_INVOKED#include <string.h>/* FIXME: add more architectures. Is there a way to specify this in GCC? */#ifdef _X86_#define UNALIGNED#else#define UNALIGNED#endif#ifndef VOID#define VOID void#endiftypedef char CHAR;typedef short SHORT;typedef long LONG;typedef CHAR CCHAR;typedef unsigned char UCHAR,*PUCHAR;typedef unsigned short USHORT,*PUSHORT;typedef unsigned long ULONG,*PULONG;typedef char *PSZ;#ifndef _WCHAR_T_DEFINED#define _WCHAR_T_DEFINED#ifndef _WCHAR_T_#define _WCHAR_T_#undef __need_wchar_t#ifndef __cplusplustypedef unsigned short wchar_t;#endif#endif#endiftypedef wchar_t WCHAR;typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR;typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR;typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;typedef CONST CHAR *LPCCH,*PCSTR,*LPCSTR;#ifndef _TCHAR_DEFINED#define _TCHAR_DEFINED#ifdef UNICODE/* * NOTE: This tests UNICODE, which is different from the _UNICODE define * used to differentiate standard C runtime calls. */typedef WCHAR TCHAR;typedef WCHAR _TCHAR;#elsetypedef CHAR TCHAR;typedef CHAR _TCHAR;#endif#endiftypedef TCHAR TBYTE,*PTCH,*PTBYTE;typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;typedef const TCHAR *LPCTSTR;#ifdef UNICODE/* * __TEXT is a private macro whose specific use is to force the expansion of a * macro passed as an argument to the macro TEXT. DO NOT use this * macro within your programs. It's name and function could change without * notice. */#define __TEXT(q) L##q#else#define __TEXT(q) q#endif/* * UNICODE a constant string when UNICODE is defined, else returns the string * unmodified. * The corresponding macros _TEXT() and _T() for mapping _UNICODE strings * passed to C runtime functions are defined in mingw/tchar.h */#define TEXT(q) __TEXT(q) typedef SHORT *PSHORT;typedef LONG *PLONG;typedef void *HANDLE;typedef HANDLE *PHANDLE,*LPHANDLE;#ifdef STRICT#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n#else#define DECLARE_HANDLE(n) typedef HANDLE n#endiftypedef DWORD LCID;typedef PDWORD PLCID;typedef WORD LANGID;#ifdef __GNUC__#define _HAVE_INT64#define _INTEGRAL_MAX_BITS 64#undef __int64#define __int64 long long#elif defined(__WATCOMC__) && (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64 )#define _HAVE_INT64#endif /* __GNUC__/__WATCOMC */#if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)typedef __int64 LONGLONG;typedef unsigned __int64 DWORDLONG;#elsetypedef double LONGLONG,DWORDLONG;#endiftypedef LONGLONG *PLONGLONG;typedef DWORDLONG *PDWORDLONG;typedef DWORDLONG ULONGLONG,*PULONGLONG;typedef LONGLONG USN;#ifdef _HAVE_INT64#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))#endif#define ANSI_NULL '\0'#define UNICODE_NULL L'\0'typedef BYTE BOOLEAN,*PBOOLEAN;#endif#define NTAPI __stdcall#include <basetsd.h>#define APPLICATION_ERROR_MASK 0x20000000#define ERROR_SEVERITY_SUCCESS 0x00000000#define ERROR_SEVERITY_INFORMATIONAL 0x40000000#define ERROR_SEVERITY_WARNING 0x80000000#define ERROR_SEVERITY_ERROR 0xC0000000#define COMPRESSION_FORMAT_NONE 0#define COMPRESSION_FORMAT_DEFAULT 1#define COMPRESSION_FORMAT_LZNT1 2#define COMPRESSION_ENGINE_STANDARD 0#define COMPRESSION_ENGINE_MAXIMUM 256#define ACCESS_ALLOWED_ACE_TYPE 0#define ACCESS_DENIED_ACE_TYPE 1#define ANYSIZE_ARRAY 1#define SYSTEM_AUDIT_ACE_TYPE 2#define SYSTEM_ALARM_ACE_TYPE 3#define OBJECT_INHERIT_ACE 1#define CONTAINER_INHERIT_ACE 2#define NO_PROPAGATE_INHERIT_ACE 4#define INHERIT_ONLY_ACE 8#define VALID_INHERIT_FLAGS 16#define SUCCESSFUL_ACCESS_ACE_FLAG 64#define FAILED_ACCESS_ACE_FLAG 128#define DELETE 0x00010000L#define READ_CONTROL 0x20000L#define WRITE_DAC 0x40000L#define WRITE_OWNER 0x80000L#define SYNCHRONIZE 0x100000L#define STANDARD_RIGHTS_REQUIRED 0xF0000#define STANDARD_RIGHTS_READ 0x20000#define STANDARD_RIGHTS_WRITE 0x20000#define STANDARD_RIGHTS_EXECUTE 0x20000#define STANDARD_RIGHTS_ALL 0x1F0000#define SPECIFIC_RIGHTS_ALL 0xFFFF#define ACCESS_SYSTEM_SECURITY 0x1000000#define MAXIMUM_ALLOWED 0x2000000#define GENERIC_READ 0x80000000#define GENERIC_WRITE 0x40000000#define GENERIC_EXECUTE 0x20000000#define GENERIC_ALL 0x10000000#define FILE_READ_DATA 1#define FILE_LIST_DIRECTORY 1#define FILE_WRITE_DATA 2#define FILE_ADD_FILE 2#define FILE_APPEND_DATA 4#define FILE_ADD_SUBDIRECTORY 4#define FILE_CREATE_PIPE_INSTANCE 4#define FILE_READ_EA 8#define FILE_READ_PROPERTIES 8#define FILE_WRITE_EA 16#define FILE_WRITE_PROPERTIES 16#define FILE_EXECUTE 32#define FILE_TRAVERSE 32#define FILE_DELETE_CHILD 64#define FILE_READ_ATTRIBUTES 128#define FILE_WRITE_ATTRIBUTES 256#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x1FF)#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|SYNCHRONIZE)#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|FILE_APPEND_DATA|SYNCHRONIZE)#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE|FILE_READ_ATTRIBUTES|FILE_EXECUTE|SYNCHRONIZE)#define FILE_SHARE_READ 1#define FILE_SHARE_WRITE 2#define FILE_SHARE_DELETE 4#define FILE_ATTRIBUTE_READONLY 1#define FILE_ATTRIBUTE_HIDDEN 2#define FILE_ATTRIBUTE_SYSTEM 4#define FILE_ATTRIBUTE_DIRECTORY 16#define FILE_ATTRIBUTE_ARCHIVE 32#define FILE_ATTRIBUTE_DEVICE 64#define FILE_ATTRIBUTE_NORMAL 128#define FILE_ATTRIBUTE_TEMPORARY 256#define FILE_ATTRIBUTE_SPARSE_FILE 512#define FILE_ATTRIBUTE_REPARSE_POINT 1024#define FILE_ATTRIBUTE_COMPRESSED 2048#define FILE_ATTRIBUTE_OFFLINE 0x1000#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x2000#define FILE_ATTRIBUTE_ENCRYPTED 0x4000#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)#define FILE_NOTIFY_CHANGE_FILE_NAME 1#define FILE_NOTIFY_CHANGE_DIR_NAME 2#define FILE_NOTIFY_CHANGE_ATTRIBUTES 4#define FILE_NOTIFY_CHANGE_SIZE 8#define FILE_NOTIFY_CHANGE_LAST_WRITE 16#define FILE_NOTIFY_CHANGE_LAST_ACCESS 32#define FILE_NOTIFY_CHANGE_CREATION 64#define FILE_NOTIFY_CHANGE_SECURITY 256#define MAILSLOT_NO_MESSAGE ((DWORD)-1)#define MAILSLOT_WAIT_FOREVER ((DWORD)-1)#define FILE_CASE_SENSITIVE_SEARCH 1#define FILE_CASE_PRESERVED_NAMES 2#define FILE_UNICODE_ON_DISK 4#define FILE_PERSISTENT_ACLS 8#define FILE_FILE_COMPRESSION 16#define FILE_VOLUME_QUOTAS 32#define FILE_SUPPORTS_SPARSE_FILES 64#define FILE_SUPPORTS_REPARSE_POINTS 128#define FILE_SUPPORTS_REMOTE_STORAGE 256#define FILE_VOLUME_IS_COMPRESSED 0x8000#define FILE_SUPPORTS_OBJECT_IDS 0x10000 #define FILE_SUPPORTS_ENCRYPTION 0x20000 #define FILE_NAMED_STREAMS 0x40000#define IO_COMPLETION_MODIFY_STATE 2#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|3)#define DUPLICATE_CLOSE_SOURCE 1#define DUPLICATE_SAME_ACCESS 2#define PROCESS_TERMINATE 1#define PROCESS_CREATE_THREAD 2#define PROCESS_VM_OPERATION 8#define PROCESS_VM_READ 16#define PROCESS_VM_WRITE 32#define PROCESS_DUP_HANDLE 64#define PROCESS_CREATE_PROCESS 128#define PROCESS_SET_QUOTA 256#define PROCESS_SET_INFORMATION 512#define PROCESS_QUERY_INFORMATION 1024#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xFFF)#define THREAD_TERMINATE 1#define THREAD_SUSPEND_RESUME 2#define THREAD_GET_CONTEXT 8#define THREAD_SET_CONTEXT 16#define THREAD_SET_INFORMATION 32#define THREAD_QUERY_INFORMATION 64#define THREAD_SET_THREAD_TOKEN 128#define THREAD_IMPERSONATE 256#define THREAD_DIRECT_IMPERSONATION 0x200#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF)#define EXCEPTION_NONCONTINUABLE 1#define EXCEPTION_MAXIMUM_PARAMETERS 15/* * To prevent gcc compiler warnings, bracket these defines when initialising * a SID_IDENTIFIER_AUTHORITY, eg. * SID_IDENTIFIER_AUTHORITY aNullSidAuthority = {SECURITY_NULL_SID_AUTHORITY}; */#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}#define SECURITY_NULL_RID 0#define SECURITY_WORLD_RID 0#define SECURITY_LOCAL_RID 0#define SECURITY_CREATOR_OWNER_RID 0#define SECURITY_CREATOR_GROUP_RID 1#define SECURITY_DIALUP_RID 1#define SECURITY_NETWORK_RID 2#define SECURITY_BATCH_RID 3#define SECURITY_INTERACTIVE_RID 4#define SECURITY_LOGON_IDS_RID 5#define SECURITY_SERVICE_RID 6#define SECURITY_LOCAL_SYSTEM_RID 18#define SECURITY_BUILTIN_DOMAIN_RID 32#define SECURITY_PRINCIPAL_SELF_RID 10#define SID_REVISION 1#define DOMAIN_USER_RID_ADMIN 0x1F4L#define DOMAIN_USER_RID_GUEST 0x1F5L#define DOMAIN_GROUP_RID_ADMINS 0x200L#define DOMAIN_GROUP_RID_USERS 0x201L#define DOMAIN_ALIAS_RID_ADMINS 0x220L#define DOMAIN_ALIAS_RID_USERS 0x221L#define DOMAIN_ALIAS_RID_GUESTS 0x222L#define DOMAIN_ALIAS_RID_POWER_USERS 0x223L#define DOMAIN_ALIAS_RID_ACCOUNT_OPS 0x224L#define DOMAIN_ALIAS_RID_SYSTEM_OPS 0x225L#define DOMAIN_ALIAS_RID_PRINT_OPS 0x226L#define DOMAIN_ALIAS_RID_BACKUP_OPS 0x227L#define DOMAIN_ALIAS_RID_REPLICATOR 0x228L#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")#define SE_TCB_NAME TEXT("SeTcbPrivilege")#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")#define SE_AUDIT_NAME TEXT("SeAuditPrivilege")#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")#define SE_GROUP_MANDATORY 1#define SE_GROUP_ENABLED_BY_DEFAULT 2#define SE_GROUP_ENABLED 4#define SE_GROUP_OWNER 8#define SE_GROUP_USE_FOR_DENY_ONLY 16#define SE_GROUP_LOGON_ID 3221225472U#define SE_GROUP_RESOURCE 536870912#define LANG_NEUTRAL 0x00#define LANG_ARABIC 0x01#define LANG_BULGARIAN 0x02#define LANG_CATALAN 0x03#define LANG_CHINESE 0x04#define LANG_CZECH 0x05#define LANG_DANISH 0x06#define LANG_GERMAN 0x07#define LANG_GREEK 0x08#define LANG_ENGLISH 0x09#define LANG_SPANISH 0x0a#define LANG_FINNISH 0x0b#define LANG_FRENCH 0x0c#define LANG_HEBREW 0x0d#define LANG_HUNGARIAN 0x0e#define LANG_ICELANDIC 0x0f#define LANG_ITALIAN 0x10#define LANG_JAPANESE 0x11#define LANG_KOREAN 0x12#define LANG_DUTCH 0x13#define LANG_NORWEGIAN 0x14#define LANG_POLISH 0x15#define LANG_PORTUGUESE 0x16#define LANG_ROMANIAN 0x18#define LANG_RUSSIAN 0x19#define LANG_CROATIAN 0x1a#define LANG_SERBIAN 0x1a#define LANG_SLOVAK 0x1b#define LANG_ALBANIAN 0x1c#define LANG_SWEDISH 0x1d#define LANG_THAI 0x1e#define LANG_TURKISH 0x1f#define LANG_URDU 0x20#define LANG_INDONESIAN 0x21#define LANG_UKRAINIAN 0x22#define LANG_BELARUSIAN 0x23#define LANG_SLOVENIAN 0x24#define LANG_ESTONIAN 0x25#define LANG_LATVIAN 0x26#define LANG_LITHUANIAN 0x27#define LANG_FARSI 0x29#define LANG_VIETNAMESE 0x2a#define LANG_ARMENIAN 0x2b#define LANG_AZERI 0x2c#define LANG_BASQUE 0x2d#define LANG_MACEDONIAN 0x2f#define LANG_AFRIKAANS 0x36#define LANG_GEORGIAN 0x37#define LANG_FAEROESE 0x38#define LANG_HINDI 0x39#define LANG_MALAY 0x3e#define LANG_KAZAK 0x3f#define LANG_SWAHILI 0x41#define LANG_UZBEK 0x43#define LANG_TATAR 0x44#define LANG_BENGALI 0x45#define LANG_PUNJABI 0x46#define LANG_GUJARATI 0x47#define LANG_ORIYA 0x48#define LANG_TAMIL 0x49#define LANG_TELUGU 0x4a#define LANG_KANNADA 0x4b#define LANG_MALAYALAM 0x4c#define LANG_ASSAMESE 0x4d#define LANG_MARATHI 0x4e#define LANG_SANSKRIT 0x4f#define LANG_KONKANI 0x57#define LANG_MANIPURI 0x58#define LANG_SINDHI 0x59#define LANG_KASHMIRI 0x60#define LANG_NEPALI 0x61#define SUBLANG_NEUTRAL 0x00#define SUBLANG_DEFAULT 0x01#define SUBLANG_SYS_DEFAULT 0x02#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01#define SUBLANG_ARABIC_IRAQ 0x02#define SUBLANG_ARABIC_EGYPT 0x03#define SUBLANG_ARABIC_LIBYA 0x04#define SUBLANG_ARABIC_ALGERIA 0x05#define SUBLANG_ARABIC_MOROCCO 0x06
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -