/* Generated by Frontc */ #line 16 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h" #pragma once #line 32 #pragma pack(push, 8) #line 72 typedef enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution, ExceptionContinueSearch, ExceptionNestedException, ExceptionCollidedUnwind } EXCEPTION_DISPOSITION ; #line 89 struct _EXCEPTION_RECORD ; #line 90 struct _CONTEXT ; EXCEPTION_DISPOSITION __cdecl _except_handler(struct _EXCEPTION_RECORD * ExceptionRecord , void * EstablisherFrame , struct _CONTEXT * ContextRecord , void * DispatcherContext ) ; #line 133 unsigned long __cdecl _exception_code(void ) ; void * __cdecl _exception_info(void ) ; int __cdecl _abnormal_termination(void ) ; #line 155 #pragma pack(pop) #line 25 "C:/NTDDK/inc/ntdef.h" #pragma once #line 15 "C:/Program Files/Microsoft Visual Studio/VC98/include/ctype.h" #pragma once #line 60 typedef unsigned short wchar_t ; #line 66 typedef wchar_t wint_t ; #line 67 typedef wchar_t wctype_t ; #line 106 int __cdecl _isctype(int , int ) ; int __cdecl isalpha(int ) ; int __cdecl isupper(int ) ; int __cdecl islower(int ) ; int __cdecl isdigit(int ) ; int __cdecl isxdigit(int ) ; int __cdecl isspace(int ) ; int __cdecl ispunct(int ) ; int __cdecl isalnum(int ) ; int __cdecl isprint(int ) ; int __cdecl isgraph(int ) ; int __cdecl iscntrl(int ) ; int __cdecl toupper(int ) ; int __cdecl tolower(int ) ; int __cdecl _tolower(int ) ; int __cdecl _toupper(int ) ; int __cdecl __isascii(int ) ; int __cdecl __toascii(int ) ; int __cdecl __iscsymf(int ) ; int __cdecl __iscsym(int ) ; #line 137 int __cdecl iswalpha(wint_t ) ; int __cdecl iswupper(wint_t ) ; int __cdecl iswlower(wint_t ) ; int __cdecl iswdigit(wint_t ) ; int __cdecl iswxdigit(wint_t ) ; int __cdecl iswspace(wint_t ) ; int __cdecl iswpunct(wint_t ) ; int __cdecl iswalnum(wint_t ) ; int __cdecl iswprint(wint_t ) ; int __cdecl iswgraph(wint_t ) ; int __cdecl iswcntrl(wint_t ) ; int __cdecl iswascii(wint_t ) ; int __cdecl isleadbyte(int ) ; #line 151 wchar_t __cdecl towupper(wchar_t ) ; wchar_t __cdecl towlower(wchar_t ) ; #line 154 int __cdecl iswctype(wint_t , wctype_t ) ; #line 157 int __cdecl is_wctype(wint_t , wctype_t ) ; #line 127 "C:/NTDDK/inc/ntdef.h" typedef unsigned long POINTER_64_INT ; #line 25 "C:/NTDDK/inc/basetsd.h" #pragma once #line 36 typedef int LONG32 , * PLONG32 ; #line 37 typedef int INT32 , * PINT32 ; #line 43 typedef unsigned int ULONG32 , * PULONG32 ; #line 44 typedef unsigned int DWORD32 , * PDWORD32 ; #line 45 typedef unsigned int UINT32 , * PUINT32 ; #line 84 typedef int INT_PTR , * PINT_PTR ; #line 85 typedef unsigned int UINT_PTR , * PUINT_PTR ; typedef long LONG_PTR , * PLONG_PTR ; #line 88 typedef unsigned long ULONG_PTR , * PULONG_PTR ; #line 248 typedef unsigned short UHALF_PTR , * PUHALF_PTR ; #line 249 typedef short HALF_PTR , * PHALF_PTR ; #line 250 typedef unsigned long HANDLE_PTR ; #line 288 typedef ULONG_PTR SIZE_T , * PSIZE_T ; #line 289 typedef LONG_PTR SSIZE_T , * PSSIZE_T ; #line 295 typedef ULONG_PTR DWORD_PTR , * PDWORD_PTR ; #line 301 typedef __int64 LONG64 , * PLONG64 ; #line 302 typedef __int64 INT64 , * PINT64 ; #line 309 typedef unsigned __int64 ULONG64 , * PULONG64 ; #line 310 typedef unsigned __int64 DWORD64 , * PDWORD64 ; #line 311 typedef unsigned __int64 UINT64 , * PUINT64 ; #line 217 "C:/NTDDK/inc/ntdef.h" typedef void * PVOID ; #line 218 typedef void * PVOID64 ; #line 266 typedef char CHAR ; #line 267 typedef short SHORT ; #line 268 typedef long LONG ; #line 276 typedef wchar_t WCHAR ; #line 282 typedef WCHAR * PWCHAR ; #line 283 typedef WCHAR * LPWCH , * PWCH ; #line 284 typedef const WCHAR * LPCWCH , * PCWCH ; #line 285 typedef WCHAR * NWPSTR ; #line 286 typedef WCHAR * LPWSTR , * PWSTR ; typedef const WCHAR * LPCWSTR , * PCWSTR ; #line 293 typedef CHAR * PCHAR ; #line 294 typedef CHAR * LPCH , * PCH ; typedef const CHAR * LPCCH , * PCCH ; #line 297 typedef CHAR * NPSTR ; #line 298 typedef CHAR * LPSTR , * PSTR ; #line 299 typedef const CHAR * LPCSTR , * PCSTR ; #line 321 typedef char TCHAR , * PTCHAR ; #line 322 typedef unsigned char TUCHAR , * PTUCHAR ; #line 326 typedef LPSTR LPTCH , PTCH ; #line 327 typedef LPSTR PTSTR , LPTSTR ; #line 328 typedef LPCSTR PCTSTR , LPCTSTR ; #line 337 typedef double DOUBLE ; typedef struct _QUAD { double DoNotUseThisField ; } QUAD ; #line 349 typedef SHORT * PSHORT ; #line 350 typedef LONG * PLONG ; #line 351 typedef QUAD * PQUAD ; #line 360 typedef unsigned char UCHAR ; #line 361 typedef unsigned short USHORT ; #line 362 typedef unsigned long ULONG ; #line 363 typedef QUAD UQUAD ; #line 369 typedef UCHAR * PUCHAR ; #line 370 typedef USHORT * PUSHORT ; #line 371 typedef ULONG * PULONG ; #line 372 typedef UQUAD * PUQUAD ; #line 378 typedef signed char SCHAR ; #line 379 typedef SCHAR * PSCHAR ; #line 394 typedef void * HANDLE ; #line 400 typedef HANDLE * PHANDLE ; #line 406 typedef UCHAR FCHAR ; #line 407 typedef USHORT FSHORT ; #line 408 typedef ULONG FLONG ; #line 414 typedef LONG HRESULT ; #line 478 typedef char CCHAR ; #line 479 typedef short CSHORT ; #line 480 typedef ULONG CLONG ; typedef CCHAR * PCCHAR ; #line 483 typedef CSHORT * PCSHORT ; #line 484 typedef CLONG * PCLONG ; #line 492 typedef ULONG LCID ; #line 493 typedef PULONG PLCID ; #line 494 typedef USHORT LANGID ; #line 500 typedef ULONG LOGICAL ; #line 501 typedef ULONG * PLOGICAL ; #line 508 typedef LONG NTSTATUS ; typedef NTSTATUS * PNTSTATUS ; #line 602 typedef struct _FLOAT128 { __int64 LowPart ; __int64 HighPart ; } FLOAT128 ; typedef FLOAT128 * PFLOAT128 ; #line 621 typedef __int64 LONGLONG ; #line 622 typedef unsigned __int64 ULONGLONG ; #line 639 typedef LONGLONG * PLONGLONG ; #line 640 typedef ULONGLONG * PULONGLONG ; #line 644 typedef LONGLONG USN ; #line 649 typedef union _LARGE_INTEGER { struct { ULONG LowPart ; LONG HighPart ; } ; struct { ULONG LowPart ; LONG HighPart ; } u ; LONGLONG QuadPart ; } LARGE_INTEGER ; #line 662 typedef LARGE_INTEGER * PLARGE_INTEGER ; #line 668 typedef union _ULARGE_INTEGER { struct { ULONG LowPart ; ULONG HighPart ; } ; struct { ULONG LowPart ; ULONG HighPart ; } u ; ULONGLONG QuadPart ; } ULARGE_INTEGER ; #line 681 typedef ULARGE_INTEGER * PULARGE_INTEGER ; #line 690 typedef struct _LUID { ULONG LowPart ; LONG HighPart ; } LUID , * PLUID ; #line 696 typedef ULONGLONG DWORDLONG ; #line 697 typedef DWORDLONG * PDWORDLONG ; #line 707 typedef LARGE_INTEGER PHYSICAL_ADDRESS , * PPHYSICAL_ADDRESS ; #line 809 ULONGLONG __stdcall Int64ShllMod32(ULONGLONG Value , ULONG ShiftCount ) ; #line 816 LONGLONG __stdcall Int64ShraMod32(LONGLONG Value , ULONG ShiftCount ) ; #line 823 ULONGLONG __stdcall Int64ShrlMod32(ULONGLONG Value , ULONG ShiftCount ) ; #line 831 #pragma warning(push) #pragma warning(disable:4035) __inline ULONGLONG __stdcall Int64ShllMod32___0(ULONGLONG Value , ULONG ShiftCount ) { #line 842 /* __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shld edx, eax, cl shl eax, cl }; */ } #line 845 __inline LONGLONG __stdcall Int64ShraMod32___0(LONGLONG Value , ULONG ShiftCount ) { #line 852 /* __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl sar edx, cl }; */ } #line 855 __inline ULONGLONG __stdcall Int64ShrlMod32___0(ULONGLONG Value , ULONG ShiftCount ) { #line 862 /* __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl shr edx, cl }; */ } #pragma warning(pop) #line 956 typedef enum _EVENT_TYPE { NotificationEvent, SynchronizationEvent } EVENT_TYPE ; #line 965 typedef enum _TIMER_TYPE { NotificationTimer, SynchronizationTimer } TIMER_TYPE ; #line 974 typedef enum _WAIT_TYPE { WaitAll, WaitAny } WAIT_TYPE ; #line 983 typedef CHAR * PSZ ; #line 984 typedef const char * PCSZ ; #line 991 typedef struct _STRING { USHORT Length ; USHORT MaximumLength ; PCHAR Buffer ; } STRING ; #line 999 typedef STRING * PSTRING ; typedef STRING ANSI_STRING ; #line 1002 typedef PSTRING PANSI_STRING ; typedef STRING OEM_STRING ; #line 1005 typedef PSTRING POEM_STRING ; #line 1011 typedef struct _CSTRING { USHORT Length ; USHORT MaximumLength ; const char * Buffer ; } CSTRING ; #line 1016 typedef CSTRING * PCSTRING ; #line 1019 typedef STRING CANSI_STRING ; #line 1020 typedef PSTRING PCANSI_STRING ; #line 1027 typedef struct _UNICODE_STRING { USHORT Length ; USHORT MaximumLength ; PWSTR Buffer ; } UNICODE_STRING ; #line 1036 typedef UNICODE_STRING * PUNICODE_STRING ; #line 1037 typedef const UNICODE_STRING * PCUNICODE_STRING ; #line 1046 typedef UCHAR BOOLEAN ; #line 1047 typedef BOOLEAN * PBOOLEAN ; #line 1057 typedef struct _LIST_ENTRY { struct _LIST_ENTRY * Flink ; struct _LIST_ENTRY * Blink ; } LIST_ENTRY , * PLIST_ENTRY , * PRLIST_ENTRY ; #line 1067 typedef struct _SINGLE_LIST_ENTRY { struct _SINGLE_LIST_ENTRY * Next ; } SINGLE_LIST_ENTRY , * PSINGLE_LIST_ENTRY ; #line 1078 typedef struct LIST_ENTRY32 { ULONG Flink ; ULONG Blink ; } LIST_ENTRY32 ; #line 1082 typedef LIST_ENTRY32 * PLIST_ENTRY32 ; typedef struct LIST_ENTRY64 { ULONGLONG Flink ; ULONGLONG Blink ; } LIST_ENTRY64 ; #line 1088 typedef LIST_ENTRY64 * PLIST_ENTRY64 ; #line 1094 __inline void ListEntry32To64(PLIST_ENTRY32 l32 , PLIST_ENTRY64 l64 ) { #line 1101 l64->Flink = (ULONGLONG )((LONGLONG )((LONG )l32->Flink)); l64->Blink = (ULONGLONG )((LONGLONG )((LONG )l32->Blink)); } __inline void ListEntry64To32(PLIST_ENTRY64 l64 , PLIST_ENTRY32 l32 ) { #line 1112 l32->Flink = (ULONG )l64->Flink; l32->Blink = (ULONG )l64->Blink; } #line 1127 typedef struct _STRING32 { USHORT Length ; USHORT MaximumLength ; ULONG Buffer ; } STRING32 ; #line 1132 typedef STRING32 * PSTRING32 ; typedef STRING32 UNICODE_STRING32 ; #line 1135 typedef UNICODE_STRING32 * PUNICODE_STRING32 ; typedef STRING32 ANSI_STRING32 ; #line 1138 typedef ANSI_STRING32 * PANSI_STRING32 ; #line 1141 typedef struct _STRING64 { USHORT Length ; USHORT MaximumLength ; ULONGLONG Buffer ; } STRING64 ; #line 1146 typedef STRING64 * PSTRING64 ; typedef STRING64 UNICODE_STRING64 ; #line 1149 typedef UNICODE_STRING64 * PUNICODE_STRING64 ; typedef STRING64 ANSI_STRING64 ; #line 1152 typedef ANSI_STRING64 * PANSI_STRING64 ; #line 1173 typedef struct _OBJECT_ATTRIBUTES { ULONG Length ; HANDLE RootDirectory ; PUNICODE_STRING ObjectName ; ULONG Attributes ; PVOID SecurityDescriptor ; PVOID SecurityQualityOfService ; } OBJECT_ATTRIBUTES ; #line 1181 typedef OBJECT_ATTRIBUTES * POBJECT_ATTRIBUTES ; #line 17 "C:/NTDDK/inc/guiddef.h" typedef struct _GUID { unsigned long Data1 ; unsigned short Data2 ; unsigned short Data3 ; unsigned char Data4[8] ; } GUID ; #line 70 typedef GUID * LPGUID ; #line 75 typedef const GUID * LPCGUID ; #line 81 typedef GUID IID ; #line 82 typedef IID * LPIID ; #line 85 typedef GUID CLSID ; #line 86 typedef CLSID * LPCLSID ; #line 89 typedef GUID FMTID ; #line 90 typedef FMTID * LPFMTID ; #line 16 "C:/NTDDK/inc/string.h" #pragma once #line 54 typedef unsigned int size_t ; #line 93 void * __cdecl memcpy(void * , const void * , size_t ) ; int __cdecl memcmp(const void * , const void * , size_t ) ; void * __cdecl memset(void * , int , size_t ) ; char * __cdecl _strset(char * , int ) ; char * __cdecl strcpy(char * , const char * ) ; char * __cdecl strcat(char * , const char * ) ; int __cdecl strcmp(const char * , const char * ) ; size_t __cdecl strlen(const char * ) ; #line 102 void * __cdecl _memccpy(void * , const void * , int , size_t ) ; void * __cdecl memchr(const void * , int , size_t ) ; int __cdecl _memicmp(const void * , const void * , size_t ) ; #line 110 void * __cdecl memmove(void * , const void * , size_t ) ; #line 114 char * __cdecl strchr(const char * , int ) ; int __cdecl _strcmpi(const char * , const char * ) ; int __cdecl _stricmp(const char * , const char * ) ; int __cdecl strcoll(const char * , const char * ) ; int __cdecl _stricoll(const char * , const char * ) ; int __cdecl _strncoll(const char * , const char * , size_t ) ; int __cdecl _strnicoll(const char * , const char * , size_t ) ; size_t __cdecl strcspn(const char * , const char * ) ; char * __cdecl _strdup(const char * ) ; char * __cdecl _strerror(const char * ) ; char * __cdecl strerror(int ) ; char * __cdecl _strlwr(char * ) ; char * __cdecl strncat(char * , const char * , size_t ) ; int __cdecl strncmp(const char * , const char * , size_t ) ; int __cdecl _strnicmp(const char * , const char * , size_t ) ; char * __cdecl strncpy(char * , const char * , size_t ) ; char * __cdecl _strnset(char * , int , size_t ) ; char * __cdecl strpbrk(const char * , const char * ) ; char * __cdecl strrchr(const char * , int ) ; char * __cdecl _strrev(char * ) ; size_t __cdecl strspn(const char * , const char * ) ; char * __cdecl strstr(const char * , const char * ) ; char * __cdecl strtok(char * , const char * ) ; char * __cdecl _strupr(char * ) ; size_t __cdecl strxfrm(char * , const char * , size_t ) ; #line 144 void * __cdecl memccpy(void * , const void * , int , size_t ) ; int __cdecl memicmp(const void * , const void * , size_t ) ; int __cdecl strcmpi(const char * , const char * ) ; int __cdecl stricmp(const char * , const char * ) ; char * __cdecl strdup(const char * ) ; char * __cdecl strlwr(char * ) ; int __cdecl strnicmp(const char * , const char * , size_t ) ; char * __cdecl strnset(char * , int , size_t ) ; char * __cdecl strrev(char * ) ; char * __cdecl strset(char * , int ) ; char * __cdecl strupr(char * ) ; #line 163 wchar_t * __cdecl wcscat(wchar_t * , const wchar_t * ) ; wchar_t * __cdecl wcschr(const wchar_t * , wchar_t ) ; int __cdecl wcscmp(const wchar_t * , const wchar_t * ) ; wchar_t * __cdecl wcscpy(wchar_t * , const wchar_t * ) ; size_t __cdecl wcscspn(const wchar_t * , const wchar_t * ) ; size_t __cdecl wcslen(const wchar_t * ) ; wchar_t * __cdecl wcsncat(wchar_t * , const wchar_t * , size_t ) ; int __cdecl wcsncmp(const wchar_t * , const wchar_t * , size_t ) ; wchar_t * __cdecl wcsncpy(wchar_t * , const wchar_t * , size_t ) ; wchar_t * __cdecl wcspbrk(const wchar_t * , const wchar_t * ) ; wchar_t * __cdecl wcsrchr(const wchar_t * , wchar_t ) ; size_t __cdecl wcsspn(const wchar_t * , const wchar_t * ) ; wchar_t * __cdecl wcsstr(const wchar_t * , const wchar_t * ) ; wchar_t * __cdecl wcstok(wchar_t * , const wchar_t * ) ; #line 178 wchar_t * __cdecl _wcsdup(const wchar_t * ) ; int __cdecl _wcsicmp(const wchar_t * , const wchar_t * ) ; int __cdecl _wcsnicmp(const wchar_t * , const wchar_t * , size_t ) ; wchar_t * __cdecl _wcsnset(wchar_t * , wchar_t , size_t ) ; wchar_t * __cdecl _wcsrev(wchar_t * ) ; wchar_t * __cdecl _wcsset(wchar_t * , wchar_t ) ; #line 185 wchar_t * __cdecl _wcslwr(wchar_t * ) ; wchar_t * __cdecl _wcsupr(wchar_t * ) ; size_t __cdecl wcsxfrm(wchar_t * , const wchar_t * , size_t ) ; int __cdecl wcscoll(const wchar_t * , const wchar_t * ) ; int __cdecl _wcsicoll(const wchar_t * , const wchar_t * ) ; int __cdecl _wcsncoll(const wchar_t * , const wchar_t * , size_t ) ; int __cdecl _wcsnicoll(const wchar_t * , const wchar_t * , size_t ) ; #line 199 wchar_t * __cdecl wcsdup(const wchar_t * ) ; int __cdecl wcsicmp(const wchar_t * , const wchar_t * ) ; int __cdecl wcsnicmp(const wchar_t * , const wchar_t * , size_t ) ; wchar_t * __cdecl wcsnset(wchar_t * , wchar_t , size_t ) ; wchar_t * __cdecl wcsrev(wchar_t * ) ; wchar_t * __cdecl wcsset(wchar_t * , wchar_t ) ; wchar_t * __cdecl wcslwr(wchar_t * ) ; wchar_t * __cdecl wcsupr(wchar_t * ) ; int __cdecl wcsicoll(const wchar_t * , const wchar_t * ) ; #line 1233 "C:/NTDDK/inc/ntdef.h" typedef struct _OBJECTID { GUID Lineage ; ULONG Uniquifier ; } OBJECTID ; #line 1288 struct _CONTEXT ; #line 1289 struct _EXCEPTION_RECORD ; typedef EXCEPTION_DISPOSITION ( * PEXCEPTION_ROUTINE )(struct _EXCEPTION_RECORD * ExceptionRecord , PVOID EstablisherFrame , struct _CONTEXT * ContextRecord , PVOID DispatcherContext ) ; #line 1306 typedef UCHAR KIRQL ; typedef KIRQL * PKIRQL ; #line 1316 typedef enum _NT_PRODUCT_TYPE { NtProductWinNt = 1, NtProductLanManNt, NtProductServer } NT_PRODUCT_TYPE , * PNT_PRODUCT_TYPE ; #line 1329 typedef enum _SUITE_TYPE { SmallBusiness, Enterprise, BackOffice, CommunicationServer, TerminalServer, SmallBusinessRestricted, EmbeddedNT, DataCenter, SingleUserTS, MaxSuiteType } SUITE_TYPE ; #line 75 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _KTHREAD * PKTHREAD ; #line 76 typedef struct _ETHREAD * PETHREAD ; #line 77 typedef struct _EPROCESS * PEPROCESS ; #line 78 typedef struct _PEB * PPEB ; #line 79 typedef struct _KINTERRUPT * PKINTERRUPT ; #line 80 typedef struct _IO_TIMER * PIO_TIMER ; #line 81 typedef struct _OBJECT_TYPE * POBJECT_TYPE ; #line 82 typedef struct _CALLBACK_OBJECT * PCALLBACK_OBJECT___0 ; #line 83 typedef struct _DEVICE_HANDLER_OBJECT * PDEVICE_HANDLER_OBJECT ; #line 84 typedef struct _BUS_HANDLER * PBUS_HANDLER ; #line 101 PKTHREAD __stdcall KeGetCurrentThread() ; #line 124 extern PCCHAR KeNumberProcessors ; #line 143 typedef union _SLIST_HEADER { ULONGLONG Alignment ; struct { SINGLE_LIST_ENTRY Next ; USHORT Depth ; USHORT Sequence ; } ; } SLIST_HEADER , * PSLIST_HEADER ; #line 204 typedef CCHAR KPROCESSOR_MODE ; typedef enum _MODE { KernelMode, UserMode, MaximumMode } MODE ; #line 222 struct _KAPC ; typedef void ( * PKNORMAL_ROUTINE )(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 ) ; #line 232 typedef void ( * PKKERNEL_ROUTINE )(struct _KAPC * Apc , PKNORMAL_ROUTINE * NormalRoutine , PVOID * NormalContext , PVOID * SystemArgument1 , PVOID * SystemArgument2 ) ; #line 242 typedef void ( * PKRUNDOWN_ROUTINE )(struct _KAPC * Apc ) ; #line 248 typedef BOOLEAN ( * PKSYNCHRONIZE_ROUTINE )(PVOID SynchronizeContext ) ; #line 254 typedef BOOLEAN ( * PKTRANSFER_ROUTINE )(void ) ; #line 265 typedef struct _KAPC { CSHORT Type ; CSHORT Size ; ULONG Spare0 ; struct _KTHREAD * Thread ; LIST_ENTRY ApcListEntry ; PKKERNEL_ROUTINE KernelRoutine ; PKRUNDOWN_ROUTINE RundownRoutine ; PKNORMAL_ROUTINE NormalRoutine ; PVOID NormalContext ; PVOID SystemArgument1 ; PVOID SystemArgument2 ; CCHAR ApcStateIndex ; KPROCESSOR_MODE ApcMode ; BOOLEAN Inserted ; } KAPC , * PKAPC , * PRKAPC ; #line 292 struct _KDPC ; typedef void ( * PKDEFERRED_ROUTINE )(struct _KDPC * Dpc , PVOID DeferredContext , PVOID SystemArgument1 , PVOID SystemArgument2 ) ; #line 351 typedef enum _KDPC_IMPORTANCE { LowImportance, MediumImportance, HighImportance } KDPC_IMPORTANCE ; #line 361 typedef struct _KDPC { CSHORT Type ; UCHAR Number ; UCHAR Importance ; LIST_ENTRY DpcListEntry ; PKDEFERRED_ROUTINE DeferredRoutine ; PVOID DeferredContext ; PVOID SystemArgument1 ; PVOID SystemArgument2 ; PULONG_PTR Lock ; } KDPC , * PKDPC , * PRKDPC ; #line 377 typedef PVOID PKIPI_CONTEXT ; typedef void ( * PKIPI_WORKER )(PKIPI_CONTEXT PacketContext , PVOID Parameter1 , PVOID Parameter2 , PVOID Parameter3 ) ; #line 392 typedef struct _KIPI_COUNTS { ULONG Freeze ; ULONG Packet ; ULONG DPC ; ULONG APC ; ULONG FlushSingleTb ; ULONG FlushMultipleTb ; ULONG FlushEntireTb ; ULONG GenericCall ; ULONG ChangeColor ; ULONG SweepDcache ; ULONG SweepIcache ; ULONG SweepIcacheRange ; ULONG FlushIoBuffers ; ULONG GratuitousDPC ; } KIPI_COUNTS , * PKIPI_COUNTS ; #line 443 typedef struct _MDL { struct _MDL * Next ; CSHORT Size ; CSHORT MdlFlags ; struct _EPROCESS * Process ; PVOID MappedSystemVa ; PVOID StartVa ; ULONG ByteCount ; ULONG ByteOffset ; } MDL , * PMDL ; #line 532 typedef PVOID PACCESS_TOKEN ; #line 538 typedef PVOID PSECURITY_DESCRIPTOR ; #line 544 typedef PVOID PSID ; typedef ULONG ACCESS_MASK ; #line 547 typedef ACCESS_MASK * PACCESS_MASK ; #line 597 typedef struct _GENERIC_MAPPING { ACCESS_MASK GenericRead ; ACCESS_MASK GenericWrite ; ACCESS_MASK GenericExecute ; ACCESS_MASK GenericAll ; } GENERIC_MAPPING ; #line 603 typedef GENERIC_MAPPING * PGENERIC_MAPPING ; #line 24 "C:/NTDDK/inc/pshpack4.h" #pragma warning(disable:4103) #pragma pack(push, 4) #line 618 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _LUID_AND_ATTRIBUTES { LUID Luid ; ULONG Attributes ; } LUID_AND_ATTRIBUTES , * PLUID_AND_ATTRIBUTES ; #line 622 typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[1] ; #line 623 typedef LUID_AND_ATTRIBUTES_ARRAY * PLUID_AND_ATTRIBUTES_ARRAY ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 642 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _ACL { UCHAR AclRevision ; UCHAR Sbz1 ; USHORT AclSize ; USHORT AceCount ; USHORT Sbz2 ; } ACL ; #line 649 typedef ACL * PACL ; #line 681 typedef struct _PRIVILEGE_SET { ULONG PrivilegeCount ; ULONG Control ; LUID_AND_ATTRIBUTES Privilege[1] ; } PRIVILEGE_SET , * PPRIVILEGE_SET ; #line 735 typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation } SECURITY_IMPERSONATION_LEVEL , * PSECURITY_IMPERSONATION_LEVEL ; #line 753 typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE , * PSECURITY_CONTEXT_TRACKING_MODE ; #line 762 typedef struct _SECURITY_QUALITY_OF_SERVICE { ULONG Length ; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode ; BOOLEAN EffectiveOnly ; } SECURITY_QUALITY_OF_SERVICE , * PSECURITY_QUALITY_OF_SERVICE ; #line 774 typedef struct _SE_IMPERSONATION_STATE { PACCESS_TOKEN Token ; BOOLEAN CopyOnOpen ; BOOLEAN EffectiveOnly ; SECURITY_IMPERSONATION_LEVEL Level ; } SE_IMPERSONATION_STATE , * PSE_IMPERSONATION_STATE ; #line 782 typedef ULONG SECURITY_INFORMATION , * PSECURITY_INFORMATION ; #line 809 typedef ULONG KAFFINITY ; #line 810 typedef KAFFINITY * PKAFFINITY ; #line 816 typedef LONG KPRIORITY ; #line 824 typedef ULONG_PTR KSPIN_LOCK ; #line 825 typedef KSPIN_LOCK * PKSPIN_LOCK ; #line 833 typedef void ( * PKINTERRUPT_ROUTINE )(void ) ; #line 842 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 ; #line 1058 __declspec(dllimport) void __stdcall RtlGetCallersAddress(PVOID * CallersAddress , PVOID * CallersCaller ) ; #line 1067 __declspec(dllimport) ULONG __stdcall RtlWalkFrameChain(PVOID * Callers , ULONG Count , ULONG Flags ) ; #line 1079 typedef NTSTATUS (__stdcall * PRTL_QUERY_REGISTRY_ROUTINE )(PWSTR ValueName , ULONG ValueType , PVOID ValueData , ULONG ValueLength , PVOID Context , PVOID EntryContext ) ; #line 1088 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 ; #line 1136 __declspec(dllimport) NTSTATUS __stdcall RtlQueryRegistryValues(ULONG RelativeTo , PCWSTR Path , PRTL_QUERY_REGISTRY_TABLE QueryTable , PVOID Context , PVOID Environment ) ; #line 1147 __declspec(dllimport) NTSTATUS __stdcall RtlWriteRegistryValue(ULONG RelativeTo , PCWSTR Path , PCWSTR ValueName , ULONG ValueType , PVOID ValueData , ULONG ValueLength ) ; #line 1159 __declspec(dllimport) NTSTATUS __stdcall RtlDeleteRegistryValue(ULONG RelativeTo , PCWSTR Path , PCWSTR ValueName ) ; #line 1170 __declspec(dllimport) NTSTATUS __stdcall RtlCreateRegistryKey(ULONG RelativeTo , PWSTR Path ) ; #line 1178 __declspec(dllimport) NTSTATUS __stdcall RtlCheckRegistryKey(ULONG RelativeTo , PWSTR Path ) ; #line 1202 __declspec(dllimport) NTSTATUS __stdcall RtlCharToInteger(PCSZ String , ULONG Base , PULONG Value ) ; #line 1211 __declspec(dllimport) NTSTATUS __stdcall RtlIntegerToUnicodeString(ULONG Value , ULONG Base , PUNICODE_STRING String ) ; #line 1220 __declspec(dllimport) NTSTATUS __stdcall RtlInt64ToUnicodeString(ULONGLONG Value , ULONG Base , PUNICODE_STRING String ) ; #line 1235 __declspec(dllimport) NTSTATUS __stdcall RtlUnicodeStringToInteger(PUNICODE_STRING String , ULONG Base , PULONG Value ) ; #line 1261 extern BOOLEAN ( * NlsMbCodePageTag ) ; extern BOOLEAN ( * NlsMbOemCodePageTag ) ; #line 1264 __declspec(dllimport) void __stdcall RtlInitString(PSTRING DestinationString , PCSZ SourceString ) ; #line 1272 __declspec(dllimport) void __stdcall RtlInitAnsiString(PANSI_STRING DestinationString , PCSZ SourceString ) ; #line 1280 __declspec(dllimport) void __stdcall RtlInitUnicodeString(PUNICODE_STRING DestinationString , PCWSTR SourceString ) ; #line 1289 __declspec(dllimport) void __stdcall RtlCopyString(PSTRING DestinationString , PSTRING SourceString ) ; #line 1297 __declspec(dllimport) CHAR __stdcall RtlUpperChar(CHAR Character ) ; #line 1304 __declspec(dllimport) LONG __stdcall RtlCompareString(PSTRING String1 , PSTRING String2 , BOOLEAN CaseInSensitive ) ; #line 1313 __declspec(dllimport) BOOLEAN __stdcall RtlEqualString(PSTRING String1 , PSTRING String2 , BOOLEAN CaseInSensitive ) ; #line 1323 __declspec(dllimport) void __stdcall RtlUpperString(PSTRING DestinationString , PSTRING SourceString ) ; #line 1335 __declspec(dllimport) NTSTATUS __stdcall RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString , PANSI_STRING SourceString , BOOLEAN AllocateDestinationString ) ; #line 1345 __declspec(dllimport) NTSTATUS __stdcall RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString , PUNICODE_STRING SourceString , BOOLEAN AllocateDestinationString ) ; #line 1355 __declspec(dllimport) LONG __stdcall RtlCompareUnicodeString(PUNICODE_STRING String1 , PUNICODE_STRING String2 , BOOLEAN CaseInSensitive ) ; #line 1364 __declspec(dllimport) BOOLEAN __stdcall RtlEqualUnicodeString(const UNICODE_STRING * String1 , const UNICODE_STRING * String2 , BOOLEAN CaseInSensitive ) ; #line 1375 __declspec(dllimport) BOOLEAN __stdcall RtlPrefixUnicodeString(PUNICODE_STRING String1 , PUNICODE_STRING String2 , BOOLEAN CaseInSensitive ) ; #line 1384 __declspec(dllimport) NTSTATUS __stdcall RtlUpcaseUnicodeString(PUNICODE_STRING DestinationString , PCUNICODE_STRING SourceString , BOOLEAN AllocateDestinationString ) ; #line 1394 __declspec(dllimport) void __stdcall RtlCopyUnicodeString(PUNICODE_STRING DestinationString , PUNICODE_STRING SourceString ) ; #line 1402 __declspec(dllimport) NTSTATUS __stdcall RtlAppendUnicodeStringToString(PUNICODE_STRING Destination , PUNICODE_STRING Source ) ; #line 1410 __declspec(dllimport) NTSTATUS __stdcall RtlAppendUnicodeToString(PUNICODE_STRING Destination , PCWSTR Source ) ; #line 1420 __declspec(dllimport) WCHAR __stdcall RtlUpcaseUnicodeChar(WCHAR SourceCharacter ) ; #line 1429 __declspec(dllimport) void __stdcall RtlFreeUnicodeString(PUNICODE_STRING UnicodeString ) ; #line 1436 __declspec(dllimport) void __stdcall RtlFreeAnsiString(PANSI_STRING AnsiString ) ; #line 1444 __declspec(dllimport) ULONG __stdcall RtlxAnsiStringToUnicodeSize(PANSI_STRING AnsiString ) ; #line 1494 __declspec(dllimport) NTSTATUS __stdcall RtlStringFromGUID(const GUID * const Guid , PUNICODE_STRING GuidString ) ; #line 1502 __declspec(dllimport) NTSTATUS __stdcall RtlGUIDFromString(PUNICODE_STRING GuidString , GUID * Guid ) ; #line 1516 __declspec(dllimport) SIZE_T __stdcall RtlCompareMemory(const void * Source1 , const void * Source2 , SIZE_T Length ) ; #line 1641 void __stdcall DbgBreakPoint(void ) ; #line 1649 __declspec(dllimport) void __stdcall DbgBreakPointWithStatus(ULONG Status ) ; #line 1690 ULONG _cdecl DbgPrint(PCH Format , ...) ; #line 1699 ULONG _cdecl DbgPrintReturnControlC(PCH Format , ...) ; #line 1718 __inline LARGE_INTEGER __stdcall RtlLargeIntegerAdd(LARGE_INTEGER Addend1 , LARGE_INTEGER Addend2 ) { #line 1726 LARGE_INTEGER Sum ; #line 1728 Sum.QuadPart = Addend1.QuadPart + Addend2.QuadPart; return Sum; } #line 1736 __inline LARGE_INTEGER __stdcall RtlEnlargedIntegerMultiply(LONG Multiplicand , LONG Multiplier ) { #line 1744 LARGE_INTEGER Product ; #line 1746 Product.QuadPart = (LONGLONG )Multiplicand * (ULONGLONG )Multiplier; return Product; } #line 1754 __inline LARGE_INTEGER __stdcall RtlEnlargedUnsignedMultiply(ULONG Multiplicand , ULONG Multiplier ) { #line 1762 LARGE_INTEGER Product ; #line 1764 Product.QuadPart = (ULONGLONG )Multiplicand * (ULONGLONG )Multiplier; return Product; } #line 1772 __inline ULONG __stdcall RtlEnlargedUnsignedDivide(ULARGE_INTEGER Dividend , ULONG Divisor , PULONG Remainder ) { #line 1781 ULONG Quotient ; #line 1783 Quotient = (ULONG )(Dividend.QuadPart / Divisor); if((CHAR * )Remainder != (CHAR * )((void * )0)) { * Remainder = (ULONG )(Dividend.QuadPart % Divisor); } #line 1789 return Quotient; } #line 1796 __inline LARGE_INTEGER __stdcall RtlLargeIntegerNegate(LARGE_INTEGER Subtrahend ) { #line 1803 LARGE_INTEGER Difference ; #line 1805 Difference.QuadPart = - Subtrahend.QuadPart; return Difference; } #line 1813 __inline LARGE_INTEGER __stdcall RtlLargeIntegerSubtract(LARGE_INTEGER Minuend , LARGE_INTEGER Subtrahend ) { #line 1821 LARGE_INTEGER Difference ; #line 1823 Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart; return Difference; } #line 1833 __declspec(dllimport) LARGE_INTEGER __stdcall RtlExtendedMagicDivide(LARGE_INTEGER Dividend , LARGE_INTEGER MagicDivisor , CCHAR ShiftCount ) ; #line 1846 __declspec(dllimport) LARGE_INTEGER __stdcall RtlExtendedLargeIntegerDivide(LARGE_INTEGER Dividend , ULONG Divisor , PULONG Remainder ) ; #line 1860 __declspec(dllimport) LARGE_INTEGER __stdcall RtlLargeIntegerDivide(LARGE_INTEGER Dividend , LARGE_INTEGER Divisor , PLARGE_INTEGER Remainder ) ; #line 1874 __declspec(dllimport) LARGE_INTEGER __stdcall RtlExtendedIntegerMultiply(LARGE_INTEGER Multiplicand , LONG Multiplier ) ; #line 1952 #pragma warning(push) #pragma warning(disable:4035) #line 1960 __inline LARGE_INTEGER __stdcall RtlConvertLongToLargeInteger(LONG SignedInteger ) { #line 1966 /* __asm { mov eax, SignedInteger cdq ; (edx:eax) = signed LargeInt }; */ } #line 1973 __inline LARGE_INTEGER __stdcall RtlConvertUlongToLargeInteger(ULONG UnsignedInteger ) { #line 1979 /* __asm { sub edx, edx ; zero highpart mov eax, UnsignedInteger }; */ } #line 1986 __inline LARGE_INTEGER __stdcall RtlLargeIntegerShiftLeft(LARGE_INTEGER LargeInteger , CCHAR ShiftCount ) { #line 1993 /* __asm { mov cl, ShiftCount and cl, 0x3f ; mod 64 cmp cl, 32 jc short sl10 mov edx, LargeInteger.LowPart ; ShiftCount >= 32 xor eax, eax ; lowpart is zero shl edx, cl ; store highpart jmp short done sl10: mov eax, LargeInteger.LowPart ; ShiftCount < 32 mov edx, LargeInteger.HighPart shld edx, eax, cl shl eax, cl done: }; */ } __inline LARGE_INTEGER __stdcall RtlLargeIntegerShiftRight(LARGE_INTEGER LargeInteger , CCHAR ShiftCount ) { #line 2004 /* __asm { mov cl, ShiftCount and cl, 0x3f ; mod 64 cmp cl, 32 jc short sr10 mov eax, LargeInteger.HighPart ; ShiftCount >= 32 xor edx, edx ; lowpart is zero shr eax, cl ; store highpart jmp short done sr10: mov eax, LargeInteger.LowPart ; ShiftCount < 32 mov edx, LargeInteger.HighPart shrd eax, edx, cl shr edx, cl done: }; */ } __inline LARGE_INTEGER __stdcall RtlLargeIntegerArithmeticShift(LARGE_INTEGER LargeInteger , CCHAR ShiftCount ) { #line 2015 /* __asm { mov cl, ShiftCount and cl, 3fh ; mod 64 cmp cl, 32 jc short sar10 mov eax, LargeInteger.HighPart sar eax, cl bt eax, 31 ; sign bit set? sbb edx, edx ; duplicate sign bit into highpart jmp short done sar10: mov eax, LargeInteger.LowPart ; (eax) = LargeInteger.LowPart mov edx, LargeInteger.HighPart ; (edx) = LargeInteger.HighPart shrd eax, edx, cl sar edx, cl done: }; */ } #pragma warning(pop) #line 2214 typedef struct _TIME_FIELDS { CSHORT Year ; CSHORT Month ; CSHORT Day ; CSHORT Hour ; CSHORT Minute ; CSHORT Second ; CSHORT Milliseconds ; CSHORT Weekday ; } TIME_FIELDS ; #line 2224 typedef TIME_FIELDS * PTIME_FIELDS ; #line 2227 __declspec(dllimport) void __stdcall RtlTimeToTimeFields(PLARGE_INTEGER Time , PTIME_FIELDS TimeFields ) ; #line 2239 __declspec(dllimport) BOOLEAN __stdcall RtlTimeFieldsToTime(PTIME_FIELDS TimeFields , PLARGE_INTEGER Time ) ; #line 2499 typedef struct _RTL_BITMAP { ULONG SizeOfBitMap ; PULONG Buffer ; } RTL_BITMAP ; #line 2503 typedef RTL_BITMAP * PRTL_BITMAP ; #line 2511 __declspec(dllimport) void __stdcall RtlInitializeBitMap(PRTL_BITMAP BitMapHeader , PULONG BitMapBuffer , ULONG SizeOfBitMap ) ; #line 2525 __declspec(dllimport) void __stdcall RtlClearAllBits(PRTL_BITMAP BitMapHeader ) ; #line 2532 __declspec(dllimport) void __stdcall RtlSetAllBits(PRTL_BITMAP BitMapHeader ) ; #line 2549 __declspec(dllimport) ULONG __stdcall RtlFindClearBits(PRTL_BITMAP BitMapHeader , ULONG NumberToFind , ULONG HintIndex ) ; #line 2558 __declspec(dllimport) ULONG __stdcall RtlFindSetBits(PRTL_BITMAP BitMapHeader , ULONG NumberToFind , ULONG HintIndex ) ; #line 2578 __declspec(dllimport) ULONG __stdcall RtlFindClearBitsAndSet(PRTL_BITMAP BitMapHeader , ULONG NumberToFind , ULONG HintIndex ) ; #line 2587 __declspec(dllimport) ULONG __stdcall RtlFindSetBitsAndClear(PRTL_BITMAP BitMapHeader , ULONG NumberToFind , ULONG HintIndex ) ; #line 2601 __declspec(dllimport) void __stdcall RtlClearBits(PRTL_BITMAP BitMapHeader , ULONG StartingIndex , ULONG NumberToClear ) ; #line 2610 __declspec(dllimport) void __stdcall RtlSetBits(PRTL_BITMAP BitMapHeader , ULONG StartingIndex , ULONG NumberToSet ) ; #line 2627 typedef struct _RTL_BITMAP_RUN { ULONG StartingIndex ; ULONG NumberOfBits ; } RTL_BITMAP_RUN ; #line 2633 typedef RTL_BITMAP_RUN * PRTL_BITMAP_RUN ; __declspec(dllimport) ULONG __stdcall RtlFindClearRuns(PRTL_BITMAP BitMapHeader , PRTL_BITMAP_RUN RunArray , ULONG SizeOfRunArray , BOOLEAN LocateLongestRuns ) ; #line 2652 __declspec(dllimport) ULONG __stdcall RtlFindLongestRunClear(PRTL_BITMAP BitMapHeader , PULONG StartingIndex ) ; #line 2667 __declspec(dllimport) ULONG __stdcall RtlFindFirstRunClear(PRTL_BITMAP BitMapHeader , PULONG StartingIndex ) ; #line 2699 __declspec(dllimport) ULONG __stdcall RtlNumberOfClearBits(PRTL_BITMAP BitMapHeader ) ; #line 2706 __declspec(dllimport) ULONG __stdcall RtlNumberOfSetBits(PRTL_BITMAP BitMapHeader ) ; #line 2718 __declspec(dllimport) BOOLEAN __stdcall RtlAreBitsClear(PRTL_BITMAP BitMapHeader , ULONG StartingIndex , ULONG Length ) ; #line 2727 __declspec(dllimport) BOOLEAN __stdcall RtlAreBitsSet(PRTL_BITMAP BitMapHeader , ULONG StartingIndex , ULONG Length ) ; #line 2736 __declspec(dllimport) ULONG __stdcall RtlFindNextForwardRunClear(PRTL_BITMAP BitMapHeader , ULONG FromIndex , PULONG StartingRunIndex ) ; #line 2745 __declspec(dllimport) ULONG __stdcall RtlFindLastBackwardRunClear(PRTL_BITMAP BitMapHeader , ULONG FromIndex , PULONG StartingRunIndex ) ; #line 2760 __declspec(dllimport) CCHAR __stdcall RtlFindLeastSignificantBit(ULONGLONG Set ) ; #line 2767 __declspec(dllimport) CCHAR __stdcall RtlFindMostSignificantBit(ULONGLONG Set ) ; #line 2796 __inline LUID __stdcall RtlConvertLongToLuid(LONG Long ) { #line 2802 LUID TempLuid ; LARGE_INTEGER TempLi ; #line 2805 TempLi = RtlConvertLongToLargeInteger(Long); TempLuid.LowPart = TempLi.LowPart; TempLuid.HighPart = TempLi.HighPart; return TempLuid; } __inline LUID __stdcall RtlConvertUlongToLuid(ULONG Ulong ) { #line 2817 LUID TempLuid ; #line 2819 TempLuid.LowPart = Ulong; TempLuid.HighPart = 0; return TempLuid; } #line 2826 __declspec(dllimport) void __stdcall RtlMapGenericMask(PACCESS_MASK AccessMask , PGENERIC_MAPPING GenericMapping ) ; #line 2837 __declspec(dllimport) NTSTATUS __stdcall RtlCreateSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor , ULONG Revision ) ; #line 2846 __declspec(dllimport) BOOLEAN __stdcall RtlValidSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor ) ; #line 2854 __declspec(dllimport) ULONG __stdcall RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor ) ; #line 2861 __declspec(dllimport) BOOLEAN __stdcall RtlValidRelativeSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptorInput , ULONG SecurityDescriptorLength , SECURITY_INFORMATION RequiredInformation ) ; #line 2871 __declspec(dllimport) NTSTATUS __stdcall RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor , BOOLEAN DaclPresent , PACL Dacl , BOOLEAN DaclDefaulted ) ; #line 2886 typedef struct _RTL_RANGE { ULONGLONG Start ; ULONGLONG End ; PVOID UserData ; PVOID Owner ; UCHAR Attributes ; UCHAR Flags ; } RTL_RANGE , * PRTL_RANGE ; #line 2924 typedef struct _RTL_RANGE_LIST { LIST_ENTRY ListHead ; ULONG Flags ; ULONG Count ; ULONG Stamp ; } RTL_RANGE_LIST , * PRTL_RANGE_LIST ; #line 2950 typedef struct _RANGE_LIST_ITERATOR { PLIST_ENTRY RangeListHead ; PLIST_ENTRY MergedHead ; PVOID Current ; ULONG Stamp ; } RTL_RANGE_LIST_ITERATOR , * PRTL_RANGE_LIST_ITERATOR ; #line 2960 __declspec(dllimport) void __stdcall RtlInitializeRangeList(PRTL_RANGE_LIST RangeList ) ; #line 2967 __declspec(dllimport) void __stdcall RtlFreeRangeList(PRTL_RANGE_LIST RangeList ) ; #line 2974 __declspec(dllimport) NTSTATUS __stdcall RtlCopyRangeList(PRTL_RANGE_LIST CopyRangeList , PRTL_RANGE_LIST RangeList ) ; #line 2985 __declspec(dllimport) NTSTATUS __stdcall RtlAddRange(PRTL_RANGE_LIST RangeList , ULONGLONG Start , ULONGLONG End , UCHAR Attributes , ULONG Flags , PVOID UserData , PVOID Owner ) ; #line 2998 __declspec(dllimport) NTSTATUS __stdcall RtlDeleteRange(PRTL_RANGE_LIST RangeList , ULONGLONG Start , ULONGLONG End , PVOID Owner ) ; #line 3008 __declspec(dllimport) NTSTATUS __stdcall RtlDeleteOwnersRanges(PRTL_RANGE_LIST RangeList , PVOID Owner ) ; #line 3019 typedef BOOLEAN ( * PRTL_CONFLICT_RANGE_CALLBACK )(PVOID Context , PRTL_RANGE Range ) ; #line 3026 __declspec(dllimport) NTSTATUS __stdcall RtlFindRange(PRTL_RANGE_LIST RangeList , ULONGLONG Minimum , ULONGLONG Maximum , ULONG Length , ULONG Alignment , ULONG Flags , UCHAR AttributeAvailableMask , PVOID Context , PRTL_CONFLICT_RANGE_CALLBACK Callback , PULONGLONG Start ) ; #line 3042 __declspec(dllimport) NTSTATUS __stdcall RtlIsRangeAvailable(PRTL_RANGE_LIST RangeList , ULONGLONG Start , ULONGLONG End , ULONG Flags , UCHAR AttributeAvailableMask , PVOID Context , PRTL_CONFLICT_RANGE_CALLBACK Callback , PBOOLEAN Available ) ; #line 3068 __declspec(dllimport) NTSTATUS __stdcall RtlGetFirstRange(PRTL_RANGE_LIST RangeList , PRTL_RANGE_LIST_ITERATOR Iterator , PRTL_RANGE * Range ) ; #line 3077 __declspec(dllimport) NTSTATUS __stdcall RtlGetLastRange(PRTL_RANGE_LIST RangeList , PRTL_RANGE_LIST_ITERATOR Iterator , PRTL_RANGE * Range ) ; #line 3086 __declspec(dllimport) NTSTATUS __stdcall RtlGetNextRange(PRTL_RANGE_LIST_ITERATOR Iterator , PRTL_RANGE * Range , BOOLEAN MoveForwards ) ; #line 3097 __declspec(dllimport) NTSTATUS __stdcall RtlMergeRangeLists(PRTL_RANGE_LIST MergedRangeList , PRTL_RANGE_LIST RangeList1 , PRTL_RANGE_LIST RangeList2 , ULONG Flags ) ; #line 3107 __declspec(dllimport) NTSTATUS __stdcall RtlInvertRangeList(PRTL_RANGE_LIST InvertedRangeList , PRTL_RANGE_LIST RangeList ) ; #line 3124 USHORT _fastcall RtlUshortByteSwap(USHORT Source ) ; #line 3130 ULONG _fastcall RtlUlongByteSwap(ULONG Source ) ; #line 3136 ULONGLONG _fastcall RtlUlonglongByteSwap(ULONGLONG Source ) ; #line 3147 __declspec(dllimport) NTSTATUS __stdcall RtlVolumeDeviceToDosName(PVOID VolumeDeviceObject , PUNICODE_STRING DosName ) ; #line 3155 typedef struct _OSVERSIONINFOA { ULONG dwOSVersionInfoSize ; ULONG dwMajorVersion ; ULONG dwMinorVersion ; ULONG dwBuildNumber ; ULONG dwPlatformId ; CHAR szCSDVersion[128] ; } OSVERSIONINFOA , * POSVERSIONINFOA , * LPOSVERSIONINFOA ; typedef struct _OSVERSIONINFOW { ULONG dwOSVersionInfoSize ; ULONG dwMajorVersion ; ULONG dwMinorVersion ; ULONG dwBuildNumber ; ULONG dwPlatformId ; WCHAR szCSDVersion[128] ; } OSVERSIONINFOW , * POSVERSIONINFOW , * LPOSVERSIONINFOW , RTL_OSVERSIONINFOW , * PRTL_OSVERSIONINFOW ; #line 3177 typedef OSVERSIONINFOA OSVERSIONINFO ; #line 3178 typedef POSVERSIONINFOA POSVERSIONINFO ; #line 3179 typedef LPOSVERSIONINFOA LPOSVERSIONINFO ; #line 3182 typedef struct _OSVERSIONINFOEXA { ULONG dwOSVersionInfoSize ; ULONG dwMajorVersion ; ULONG dwMinorVersion ; ULONG dwBuildNumber ; ULONG dwPlatformId ; CHAR szCSDVersion[128] ; USHORT wServicePackMajor ; USHORT wServicePackMinor ; USHORT wSuiteMask ; UCHAR wProductType ; UCHAR wReserved ; } OSVERSIONINFOEXA , * POSVERSIONINFOEXA , * LPOSVERSIONINFOEXA ; #line 3195 typedef struct _OSVERSIONINFOEXW { ULONG dwOSVersionInfoSize ; ULONG dwMajorVersion ; ULONG dwMinorVersion ; ULONG dwBuildNumber ; ULONG dwPlatformId ; WCHAR szCSDVersion[128] ; USHORT wServicePackMajor ; USHORT wServicePackMinor ; USHORT wSuiteMask ; UCHAR wProductType ; UCHAR wReserved ; } OSVERSIONINFOEXW , * POSVERSIONINFOEXW , * LPOSVERSIONINFOEXW , RTL_OSVERSIONINFOEXW , * PRTL_OSVERSIONINFOEXW ; #line 3213 typedef OSVERSIONINFOEXA OSVERSIONINFOEX ; #line 3214 typedef POSVERSIONINFOEXA POSVERSIONINFOEX ; #line 3215 typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX ; #line 3275 ULONGLONG __stdcall VerSetConditionMask(ULONGLONG ConditionMask , ULONG TypeMask , UCHAR Condition ) ; #line 3286 __declspec(dllimport) NTSTATUS RtlGetVersion(PRTL_OSVERSIONINFOW lpVersionInformation ) ; #line 3292 __declspec(dllimport) NTSTATUS RtlVerifyVersionInfo(PRTL_OSVERSIONINFOEXW VersionInfo , ULONG TypeMask , ULONGLONG ConditionMask ) ; #line 3648 typedef struct _IO_STATUS_BLOCK { union { NTSTATUS Status ; PVOID Pointer ; } ; ULONG_PTR Information ; } IO_STATUS_BLOCK , * PIO_STATUS_BLOCK ; #line 3669 typedef void (__stdcall * PIO_APC_ROUTINE )(PVOID ApcContext , PIO_STATUS_BLOCK IoStatusBlock , ULONG Reserved ) ; #line 3685 typedef enum _FILE_INFORMATION_CLASS { FileDirectoryInformation = 1, FileFullDirectoryInformation, FileBothDirectoryInformation, FileBasicInformation, FileStandardInformation, FileInternalInformation, FileEaInformation, FileAccessInformation, FileNameInformation, FileRenameInformation, FileLinkInformation, FileNamesInformation, FileDispositionInformation, FilePositionInformation, FileFullEaInformation, FileModeInformation, FileAlignmentInformation, FileAllInformation, FileAllocationInformation, FileEndOfFileInformation, FileAlternateNameInformation, FileStreamInformation, FilePipeInformation, FilePipeLocalInformation, FilePipeRemoteInformation, FileMailslotQueryInformation, FileMailslotSetInformation, FileCompressionInformation, FileObjectIdInformation, FileCompletionInformation, FileMoveClusterInformation, FileQuotaInformation, FileReparsePointInformation, FileNetworkOpenInformation, FileAttributeTagInformation, FileTrackingInformation, FileMaximumInformation } FILE_INFORMATION_CLASS , * PFILE_INFORMATION_CLASS ; #line 3731 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_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_NAME_INFORMATION { ULONG FileNameLength ; WCHAR FileName[1] ; } FILE_NAME_INFORMATION , * PFILE_NAME_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_ATTRIBUTE_TAG_INFORMATION { ULONG FileAttributes ; ULONG ReparseTag ; } FILE_ATTRIBUTE_TAG_INFORMATION , * PFILE_ATTRIBUTE_TAG_INFORMATION ; typedef struct _FILE_DISPOSITION_INFORMATION { BOOLEAN DeleteFile ; } FILE_DISPOSITION_INFORMATION , * PFILE_DISPOSITION_INFORMATION ; typedef struct _FILE_END_OF_FILE_INFORMATION { LARGE_INTEGER EndOfFile ; } FILE_END_OF_FILE_INFORMATION , * PFILE_END_OF_FILE_INFORMATION ; #line 3784 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 ; #line 3798 typedef enum _FSINFOCLASS { FileFsVolumeInformation = 1, FileFsLabelInformation, FileFsSizeInformation, FileFsDeviceInformation, FileFsAttributeInformation, FileFsControlInformation, FileFsFullSizeInformation, FileFsObjectIdInformation, FileFsMaximumInformation } FS_INFORMATION_CLASS , * PFS_INFORMATION_CLASS ; typedef struct _FILE_FS_DEVICE_INFORMATION { ULONG DeviceType ; ULONG Characteristics ; } FILE_FS_DEVICE_INFORMATION , * PFILE_FS_DEVICE_INFORMATION ; #line 3820 typedef union _FILE_SEGMENT_ELEMENT { PVOID64 Buffer ; ULONGLONG Alignment ; } FILE_SEGMENT_ELEMENT , * PFILE_SEGMENT_ELEMENT ; #line 3829 typedef enum _INTERFACE_TYPE { InterfaceTypeUndefined = - 1, Internal, Isa, Eisa, MicroChannel, TurboChannel, PCIBus, VMEBus, NuBus, PCMCIABus, CBus, MPIBus, MPSABus, ProcessorInternal, InternalPowerBus, PNPISABus, PNPBus, MaximumInterfaceType } INTERFACE_TYPE , * PINTERFACE_TYPE ; #line 3854 typedef enum _DMA_WIDTH { Width8Bits, Width16Bits, Width32Bits, MaximumDmaWidth } DMA_WIDTH , * PDMA_WIDTH ; #line 3865 typedef enum _DMA_SPEED { Compatible, TypeA, TypeB, TypeC, TypeF, MaximumDmaSpeed } DMA_SPEED , * PDMA_SPEED ; #line 3879 typedef void ( * PINTERFACE_REFERENCE )(PVOID Context ) ; #line 3880 typedef void ( * PINTERFACE_DEREFERENCE )(PVOID Context ) ; #line 3888 typedef enum _BUS_DATA_TYPE { ConfigurationSpaceUndefined = - 1, Cmos, EisaConfiguration, Pos, CbusConfiguration, PCIConfiguration, VMEConfiguration, NuBusConfiguration, PCMCIAConfiguration, MPIConfiguration, MPSAConfiguration, PNPISAConfiguration, SgiInternalConfiguration, MaximumBusDataType } BUS_DATA_TYPE , * PBUS_DATA_TYPE ; #line 3910 typedef struct _IO_ERROR_LOG_PACKET { UCHAR MajorFunctionCode ; UCHAR RetryCount ; USHORT DumpDataSize ; USHORT NumberOfStrings ; USHORT StringOffset ; USHORT EventCategory ; NTSTATUS ErrorCode ; ULONG UniqueErrorValue ; NTSTATUS FinalStatus ; ULONG SequenceNumber ; ULONG IoControlCode ; LARGE_INTEGER DeviceOffset ; ULONG DumpData[1] ; } IO_ERROR_LOG_PACKET , * PIO_ERROR_LOG_PACKET ; #line 3931 typedef struct _IO_ERROR_LOG_MESSAGE { USHORT Type ; USHORT Size ; USHORT DriverNameLength ; LARGE_INTEGER TimeStamp ; ULONG DriverNameOffset ; IO_ERROR_LOG_PACKET EntryData ; } IO_ERROR_LOG_MESSAGE , * PIO_ERROR_LOG_MESSAGE ; #line 4074 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] ; } KEY_NODE_INFORMATION , * PKEY_NODE_INFORMATION ; #line 4091 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 ; #line 4106 typedef struct _KEY_NAME_INFORMATION { ULONG NameLength ; WCHAR Name[1] ; } KEY_NAME_INFORMATION , * PKEY_NAME_INFORMATION ; #line 4112 typedef enum _KEY_INFORMATION_CLASS { KeyBasicInformation, KeyNodeInformation, KeyFullInformation, KeyNameInformation } KEY_INFORMATION_CLASS ; #line 4122 typedef struct _KEY_WRITE_TIME_INFORMATION { LARGE_INTEGER LastWriteTime ; } KEY_WRITE_TIME_INFORMATION , * PKEY_WRITE_TIME_INFORMATION ; typedef enum _KEY_SET_INFORMATION_CLASS { KeyWriteTimeInformation } KEY_SET_INFORMATION_CLASS ; #line 4134 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 ; #line 4151 typedef struct _KEY_VALUE_PARTIAL_INFORMATION { ULONG TitleIndex ; ULONG Type ; ULONG DataLength ; UCHAR Data[1] ; } KEY_VALUE_PARTIAL_INFORMATION , * PKEY_VALUE_PARTIAL_INFORMATION ; typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 { ULONG Type ; ULONG DataLength ; UCHAR Data[1] ; } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 , * PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64 ; #line 4164 typedef struct _KEY_VALUE_ENTRY { PUNICODE_STRING ValueName ; ULONG DataLength ; ULONG DataOffset ; ULONG Type ; } KEY_VALUE_ENTRY , * PKEY_VALUE_ENTRY ; typedef enum _KEY_VALUE_INFORMATION_CLASS { KeyValueBasicInformation, KeyValueFullInformation, KeyValuePartialInformation, KeyValueFullInformationAlign64, KeyValuePartialInformationAlign64 } KEY_VALUE_INFORMATION_CLASS ; #line 4210 typedef struct _OBJECT_NAME_INFORMATION { UNICODE_STRING Name ; } OBJECT_NAME_INFORMATION , * POBJECT_NAME_INFORMATION ; #line 4221 typedef enum _SECTION_INHERIT { ViewShare = 1, ViewUnmap = 2 } SECTION_INHERIT ; #line 4294 typedef struct _CLIENT_ID { HANDLE UniqueProcess ; HANDLE UniqueThread ; } CLIENT_ID ; #line 4298 typedef CLIENT_ID * PCLIENT_ID ; #line 4315 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList ; PVOID StackBase ; PVOID StackLimit ; PVOID SubSystemTib ; union { PVOID FiberData ; ULONG Version ; } ; PVOID ArbitraryUserPointer ; struct _NT_TIB * Self ; } NT_TIB ; #line 4327 typedef NT_TIB * PNT_TIB ; #line 4332 typedef enum _PROCESSINFOCLASS { ProcessBasicInformation, ProcessQuotaLimits, ProcessIoCounters, ProcessVmCounters, ProcessTimes, ProcessBasePriority, ProcessRaisePriority, ProcessDebugPort, ProcessExceptionPort, ProcessAccessToken, ProcessLdtInformation, ProcessLdtSize, ProcessDefaultHardErrorMode, ProcessIoPortHandlers, ProcessPooledUsageAndLimits, ProcessWorkingSetWatch, ProcessUserModeIOPL, ProcessEnableAlignmentFaultFixup, ProcessPriorityClass, ProcessWx86Information, ProcessHandleCount, ProcessAffinityMask, ProcessPriorityBoost, ProcessDeviceMap, ProcessSessionInformation, ProcessForegroundInformation, ProcessWow64Information, MaxProcessInfoClass } PROCESSINFOCLASS ; #line 4366 typedef enum _THREADINFOCLASS { ThreadBasicInformation, ThreadTimes, ThreadPriority, ThreadBasePriority, ThreadAffinityMask, ThreadImpersonationToken, ThreadDescriptorTableEntry, ThreadEnableAlignmentFaultFixup, ThreadEventPair_Reusable, ThreadQuerySetWin32StartAddress, ThreadZeroTlsCell, ThreadPerformanceCount, ThreadAmILastThread, ThreadIdealProcessor, ThreadPriorityBoost, ThreadSetTlsArrayAddress, ThreadIsIoPending, ThreadHideFromDebugger, MaxThreadInfoClass } THREADINFOCLASS ; #line 4395 typedef struct _PROCESS_WS_WATCH_INFORMATION { PVOID FaultingPc ; PVOID FaultingVa ; } PROCESS_WS_WATCH_INFORMATION , * PPROCESS_WS_WATCH_INFORMATION ; #line 4405 typedef struct _PROCESS_BASIC_INFORMATION { NTSTATUS ExitStatus ; PPEB PebBaseAddress ; ULONG_PTR AffinityMask ; KPRIORITY BasePriority ; ULONG_PTR UniqueProcessId ; ULONG_PTR InheritedFromUniqueProcessId ; } PROCESS_BASIC_INFORMATION ; #line 4413 typedef PROCESS_BASIC_INFORMATION * PPROCESS_BASIC_INFORMATION ; #line 4422 typedef struct _PROCESS_DEVICEMAP_INFORMATION { union { struct { HANDLE DirectoryHandle ; } Set ; struct { ULONG DriveMap ; UCHAR DriveType[32] ; } Query ; } ; } PROCESS_DEVICEMAP_INFORMATION , * PPROCESS_DEVICEMAP_INFORMATION ; #line 4440 typedef struct _PROCESS_SESSION_INFORMATION { ULONG SessionId ; } PROCESS_SESSION_INFORMATION , * PPROCESS_SESSION_INFORMATION ; #line 4454 typedef struct _QUOTA_LIMITS { SIZE_T PagedPoolLimit ; SIZE_T NonPagedPoolLimit ; SIZE_T MinimumWorkingSetSize ; SIZE_T MaximumWorkingSetSize ; SIZE_T PagefileLimit ; LARGE_INTEGER TimeLimit ; } QUOTA_LIMITS ; #line 4462 typedef QUOTA_LIMITS * PQUOTA_LIMITS ; #line 4472 typedef struct _IO_COUNTERS { ULONGLONG ReadOperationCount ; ULONGLONG WriteOperationCount ; ULONGLONG OtherOperationCount ; ULONGLONG ReadTransferCount ; ULONGLONG WriteTransferCount ; ULONGLONG OtherTransferCount ; } IO_COUNTERS ; #line 4480 typedef IO_COUNTERS * PIO_COUNTERS ; #line 4488 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 ; } VM_COUNTERS ; #line 4501 typedef VM_COUNTERS * PVM_COUNTERS ; #line 4508 typedef struct _POOLED_USAGE_AND_LIMITS { SIZE_T PeakPagedPoolUsage ; SIZE_T PagedPoolUsage ; SIZE_T PagedPoolLimit ; SIZE_T PeakNonPagedPoolUsage ; SIZE_T NonPagedPoolUsage ; SIZE_T NonPagedPoolLimit ; SIZE_T PeakPagefileUsage ; SIZE_T PagefileUsage ; SIZE_T PagefileLimit ; } POOLED_USAGE_AND_LIMITS ; #line 4519 typedef POOLED_USAGE_AND_LIMITS * PPOOLED_USAGE_AND_LIMITS ; #line 4528 typedef struct _PROCESS_ACCESS_TOKEN { HANDLE Token ; HANDLE Thread ; } PROCESS_ACCESS_TOKEN , * PPROCESS_ACCESS_TOKEN ; #line 4555 typedef struct _KERNEL_USER_TIMES { LARGE_INTEGER CreateTime ; LARGE_INTEGER ExitTime ; LARGE_INTEGER KernelTime ; LARGE_INTEGER UserTime ; } KERNEL_USER_TIMES ; #line 4561 typedef KERNEL_USER_TIMES * PKERNEL_USER_TIMES ; #line 4562 __declspec(dllimport) NTSTATUS __stdcall NtOpenProcess(PHANDLE ProcessHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , PCLIENT_ID ClientId ) ; #line 4572 __declspec(dllimport) NTSTATUS __stdcall NtQueryInformationProcess(HANDLE ProcessHandle , PROCESSINFOCLASS ProcessInformationClass , PVOID ProcessInformation , ULONG ProcessInformationLength , PULONG ReturnLength ) ; #line 4587 typedef enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking, PowerSystemSleeping1, PowerSystemSleeping2, PowerSystemSleeping3, PowerSystemHibernate, PowerSystemShutdown, PowerSystemMaximum } SYSTEM_POWER_STATE , * PSYSTEM_POWER_STATE ; typedef enum { PowerActionNone = 0, PowerActionReserved, PowerActionSleep, PowerActionHibernate, PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, PowerActionWarmEject } POWER_ACTION , * PPOWER_ACTION ; typedef enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3, PowerDeviceMaximum } DEVICE_POWER_STATE , * PDEVICE_POWER_STATE ; typedef union _POWER_STATE { SYSTEM_POWER_STATE SystemState ; DEVICE_POWER_STATE DeviceState ; } POWER_STATE , * PPOWER_STATE ; typedef enum _POWER_STATE_TYPE { SystemPowerState = 0, DevicePowerState } POWER_STATE_TYPE , * PPOWER_STATE_TYPE ; #line 4654 typedef ULONG EXECUTION_STATE ; typedef enum { LT_DONT_CARE, LT_LOWEST_LATENCY } LATENCY_TIME ; #line 4663 typedef enum { SystemPowerPolicyAc, SystemPowerPolicyDc, VerifySystemPolicyAc, VerifySystemPolicyDc, SystemPowerCapabilities, SystemBatteryState, SystemPowerStateHandler, ProcessorStateHandler, SystemPowerPolicyCurrent, AdministratorPowerPolicy, SystemReserveHiberFile, ProcessorInformation, SystemPowerInformation } POWER_INFORMATION_LEVEL ; #line 4690 typedef ULONG PFN_COUNT ; typedef LONG SPFN_NUMBER , * PSPFN_NUMBER ; #line 4693 typedef ULONG PFN_NUMBER , * PPFN_NUMBER ; #line 4719 typedef union _MCI_STATS { struct { USHORT McaCod ; USHORT MsCod ; ULONG OtherInfo : 25; ULONG Damage : 1; ULONG AddressValid : 1; ULONG MiscValid : 1; ULONG Enabled : 1; ULONG UnCorrected : 1; ULONG OverFlow : 1; ULONG Valid : 1; } MciStats ; ULONGLONG QuadPart ; } MCI_STATS , * PMCI_STATS ; #line 4768 __declspec(dllimport) UCHAR READ_REGISTER_UCHAR(PUCHAR Register ) ; #line 4774 __declspec(dllimport) USHORT READ_REGISTER_USHORT(PUSHORT Register ) ; #line 4780 __declspec(dllimport) ULONG READ_REGISTER_ULONG(PULONG Register ) ; #line 4786 __declspec(dllimport) void READ_REGISTER_BUFFER_UCHAR(PUCHAR Register , PUCHAR Buffer , ULONG Count ) ; #line 4794 __declspec(dllimport) void READ_REGISTER_BUFFER_USHORT(PUSHORT Register , PUSHORT Buffer , ULONG Count ) ; #line 4802 __declspec(dllimport) void READ_REGISTER_BUFFER_ULONG(PULONG Register , PULONG Buffer , ULONG Count ) ; #line 4811 __declspec(dllimport) void WRITE_REGISTER_UCHAR(PUCHAR Register , UCHAR Value ) ; #line 4818 __declspec(dllimport) void WRITE_REGISTER_USHORT(PUSHORT Register , USHORT Value ) ; #line 4825 __declspec(dllimport) void WRITE_REGISTER_ULONG(PULONG Register , ULONG Value ) ; #line 4832 __declspec(dllimport) void WRITE_REGISTER_BUFFER_UCHAR(PUCHAR Register , PUCHAR Buffer , ULONG Count ) ; #line 4840 __declspec(dllimport) void WRITE_REGISTER_BUFFER_USHORT(PUSHORT Register , PUSHORT Buffer , ULONG Count ) ; #line 4848 __declspec(dllimport) void WRITE_REGISTER_BUFFER_ULONG(PULONG Register , PULONG Buffer , ULONG Count ) ; #line 4856 __declspec(dllimport) UCHAR READ_PORT_UCHAR(PUCHAR Port ) ; #line 4862 __declspec(dllimport) USHORT READ_PORT_USHORT(PUSHORT Port ) ; #line 4868 __declspec(dllimport) ULONG READ_PORT_ULONG(PULONG Port ) ; #line 4874 __declspec(dllimport) void READ_PORT_BUFFER_UCHAR(PUCHAR Port , PUCHAR Buffer , ULONG Count ) ; #line 4882 __declspec(dllimport) void READ_PORT_BUFFER_USHORT(PUSHORT Port , PUSHORT Buffer , ULONG Count ) ; #line 4890 __declspec(dllimport) void READ_PORT_BUFFER_ULONG(PULONG Port , PULONG Buffer , ULONG Count ) ; #line 4898 __declspec(dllimport) void WRITE_PORT_UCHAR(PUCHAR Port , UCHAR Value ) ; #line 4905 __declspec(dllimport) void WRITE_PORT_USHORT(PUSHORT Port , USHORT Value ) ; #line 4912 __declspec(dllimport) void WRITE_PORT_ULONG(PULONG Port , ULONG Value ) ; #line 4919 __declspec(dllimport) void WRITE_PORT_BUFFER_UCHAR(PUCHAR Port , PUCHAR Buffer , ULONG Count ) ; #line 4927 __declspec(dllimport) void WRITE_PORT_BUFFER_USHORT(PUSHORT Port , PUSHORT Buffer , ULONG Count ) ; #line 4935 __declspec(dllimport) void WRITE_PORT_BUFFER_ULONG(PULONG Port , PULONG Buffer , ULONG Count ) ; #line 4978 typedef struct _KPCR { NT_TIB NtTib ; struct _KPCR * SelfPcr ; struct _KPRCB * Prcb ; KIRQL Irql ; ULONG IRR ; ULONG IrrActive ; ULONG IDR ; ULONG Reserved2 ; struct _KIDTENTRY * IDT ; struct _KGDTENTRY * GDT ; struct _KTSS * TSS ; USHORT MajorVersion ; USHORT MinorVersion ; KAFFINITY SetMember ; ULONG StallScaleFactor ; UCHAR DebugActive ; UCHAR Number ; } KPCR ; #line 5006 typedef KPCR * PKPCR ; #line 5012 typedef struct _KFLOATING_SAVE { ULONG ControlWord ; ULONG StatusWord ; ULONG ErrorOffset ; ULONG ErrorSelector ; ULONG DataOffset ; ULONG DataSelector ; ULONG Cr0NpxState ; ULONG Spare1 ; } KFLOATING_SAVE , * PKFLOATING_SAVE ; #line 5069 extern PVOID * MmHighestUserAddress ; extern PVOID * MmSystemRangeStart ; extern ULONG * MmUserProbeAddress ; #line 5153 typedef enum _INTERLOCKED_RESULT { ResultNegative = 0x8000 & ~ 0x4000 & (0x8000 | 0x4000), ResultZero = ~ 0x8000 & 0x4000 & (0x8000 | 0x4000), ResultPositive = ~ 0x8000 & ~ 0x4000 & (0x8000 | 0x4000) } INTERLOCKED_RESULT ; __declspec(dllimport) INTERLOCKED_RESULT _fastcall Exfi386InterlockedIncrementLong(PLONG Addend ) ; #line 5166 __declspec(dllimport) INTERLOCKED_RESULT _fastcall Exfi386InterlockedDecrementLong(PLONG Addend ) ; #line 5173 __declspec(dllimport) LARGE_INTEGER ExInterlockedExchangeAddLargeInteger(PLARGE_INTEGER Addend , LARGE_INTEGER Increment , PKSPIN_LOCK Lock ) ; #line 5181 __declspec(dllimport) ULONG _fastcall Exfi386InterlockedExchangeUlong(PULONG Target , ULONG Value ) ; #line 5197 __declspec(dllimport) LONG _fastcall InterlockedIncrement(PLONG Addend ) ; #line 5204 __declspec(dllimport) LONG _fastcall InterlockedDecrement(PLONG Addend ) ; #line 5211 __declspec(dllimport) LONG _fastcall InterlockedExchange(PLONG Target , LONG Value ) ; #line 5222 LONG _fastcall InterlockedExchangeAdd(PLONG Addend , LONG Increment ) ; #line 5229 __declspec(dllimport) LONG _fastcall InterlockedCompareExchange(PLONG Destination , LONG ExChange , LONG Comperand ) ; #line 5252 #pragma warning(disable:4035) #line 5262 __declspec(dllimport) KIRQL KeGetCurrentIrql() ; #line 5271 __inline ULONG KeGetCurrentProcessorNumber(void ) { /* __asm { movzx eax, fs:[0] KPCR.Number }; */ } #line 5280 __declspec(dllimport) NTSTATUS __stdcall KeSaveFloatingPointState(PKFLOATING_SAVE FloatSave ) ; #line 5287 __declspec(dllimport) NTSTATUS __stdcall KeRestoreFloatingPointState(PKFLOATING_SAVE FloatSave ) ; #line 6994 typedef struct _KSYSTEM_TIME { ULONG LowPart ; LONG High1Time ; LONG High2Time ; } KSYSTEM_TIME , * PKSYSTEM_TIME ; #line 7014 #pragma warning(push) #pragma warning(disable:4164) #line 7019 #pragma function(_enable) #line 7020 #pragma function(_disable) #line 7024 #pragma warning(pop) #line 7085 typedef struct _FLOATING_SAVE_AREA { ULONG ControlWord ; ULONG StatusWord ; ULONG TagWord ; ULONG ErrorOffset ; ULONG ErrorSelector ; ULONG DataOffset ; ULONG DataSelector ; UCHAR RegisterArea[80] ; ULONG Cr0NpxState ; } FLOATING_SAVE_AREA ; typedef FLOATING_SAVE_AREA * PFLOATING_SAVE_AREA ; #line 7109 typedef struct _CONTEXT { ULONG ContextFlags ; ULONG Dr0 ; ULONG Dr1 ; ULONG Dr2 ; ULONG Dr3 ; ULONG Dr6 ; ULONG Dr7 ; FLOATING_SAVE_AREA FloatSave ; ULONG SegGs ; ULONG SegFs ; ULONG SegEs ; ULONG SegDs ; ULONG Edi ; ULONG Esi ; ULONG Ebx ; ULONG Edx ; ULONG Ecx ; ULONG Eax ; ULONG Ebp ; ULONG Eip ; ULONG SegCs ; ULONG EFlags ; ULONG Esp ; ULONG SegSs ; UCHAR ExtendedRegisters[512] ; } CONTEXT ; #line 7197 typedef CONTEXT * PCONTEXT ; #line 7826 typedef void ( * PTIMER_APC_ROUTINE )(PVOID TimerContext , ULONG TimerLowValue , LONG TimerHighValue ) ; #line 7850 typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign, NEC98x86, EndAlternatives } ALTERNATIVE_ARCHITECTURE_TYPE ; #line 7899 typedef struct _KUSER_SHARED_DATA { volatile ULONG TickCountLow ; ULONG TickCountMultiplier ; volatile KSYSTEM_TIME InterruptTime ; volatile KSYSTEM_TIME SystemTime ; volatile KSYSTEM_TIME TimeZoneBias ; USHORT ImageNumberLow ; USHORT ImageNumberHigh ; WCHAR NtSystemRoot[260] ; ULONG MaxStackTraceDepth ; ULONG CryptoExponent ; ULONG TimeZoneId ; ULONG Reserved2[8] ; NT_PRODUCT_TYPE NtProductType ; BOOLEAN ProductTypeIsValid ; ULONG NtMajorVersion ; ULONG NtMinorVersion ; BOOLEAN ProcessorFeatures[64] ; ULONG Reserved1 ; ULONG Reserved3 ; volatile ULONG TimeSlip ; ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture ; LARGE_INTEGER SystemExpirationDate ; ULONG SuiteMask ; BOOLEAN KdDebuggerEnabled ; } KUSER_SHARED_DATA , * PKUSER_SHARED_DATA ; #line 8123 typedef enum _CM_SERVICE_NODE_TYPE { DriverType = 0x00000001, FileSystemType = 0x00000002, Win32ServiceOwnProcess = 0x00000010, Win32ServiceShareProcess = 0x00000020, AdapterType = 0x00000004, RecognizerType = 0x00000008 } SERVICE_NODE_TYPE ; typedef enum _CM_SERVICE_LOAD_TYPE { BootLoad = 0x00000000, SystemLoad = 0x00000001, AutoLoad = 0x00000002, DemandLoad = 0x00000003, DisableLoad = 0x00000004 } SERVICE_LOAD_TYPE ; typedef enum _CM_ERROR_CONTROL_TYPE { IgnoreError = 0x00000000, NormalError = 0x00000001, SevereError = 0x00000002, CriticalError = 0x00000003 } SERVICE_ERROR_TYPE ; #line 8172 typedef int CM_RESOURCE_TYPE ; #line 8198 typedef enum _CM_SHARE_DISPOSITION { CmResourceShareUndetermined = 0, CmResourceShareDeviceExclusive, CmResourceShareDriverExclusive, CmResourceShareShared } CM_SHARE_DISPOSITION ; #line 8211 typedef PVOID PASSIGNED_RESOURCE ; #line 24 "C:/NTDDK/inc/pshpack4.h" #pragma warning(disable:4103) #pragma pack(push, 4) #line 8309 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { UCHAR Type ; UCHAR ShareDisposition ; USHORT Flags ; union { struct { PHYSICAL_ADDRESS Start ; ULONG Length ; } Generic ; struct { PHYSICAL_ADDRESS Start ; ULONG Length ; } Port ; struct { ULONG Level ; ULONG Vector ; ULONG Affinity ; } Interrupt ; struct { PHYSICAL_ADDRESS Start ; ULONG Length ; } Memory ; struct { ULONG Channel ; ULONG Port ; ULONG Reserved1 ; } Dma ; struct { ULONG Data[3] ; } DevicePrivate ; struct { ULONG Start ; ULONG Length ; ULONG Reserved ; } BusNumber ; struct { ULONG DataSize ; ULONG Reserved1 ; ULONG Reserved2 ; } DeviceSpecificData ; } u ; } CM_PARTIAL_RESOURCE_DESCRIPTOR , * PCM_PARTIAL_RESOURCE_DESCRIPTOR ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 8419 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_PARTIAL_RESOURCE_LIST { USHORT Version ; USHORT Revision ; ULONG Count ; CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1] ; } CM_PARTIAL_RESOURCE_LIST , * PCM_PARTIAL_RESOURCE_LIST ; #line 8443 typedef struct _CM_FULL_RESOURCE_DESCRIPTOR { INTERFACE_TYPE InterfaceType ; ULONG BusNumber ; CM_PARTIAL_RESOURCE_LIST PartialResourceList ; } CM_FULL_RESOURCE_DESCRIPTOR , * PCM_FULL_RESOURCE_DESCRIPTOR ; #line 8454 typedef struct _CM_RESOURCE_LIST { ULONG Count ; CM_FULL_RESOURCE_DESCRIPTOR List[1] ; } CM_RESOURCE_LIST , * PCM_RESOURCE_LIST ; #line 8471 typedef struct _DEVICE_FLAGS { ULONG Failed : 1; ULONG ReadOnly : 1; ULONG Removable : 1; ULONG ConsoleIn : 1; ULONG ConsoleOut : 1; ULONG Input : 1; ULONG Output : 1; } DEVICE_FLAGS , * PDEVICE_FLAGS ; #line 8485 typedef struct _CM_COMPONENT_INFORMATION { DEVICE_FLAGS Flags ; ULONG Version ; ULONG Key ; ULONG AffinityMask ; } CM_COMPONENT_INFORMATION , * PCM_COMPONENT_INFORMATION ; #line 8503 typedef struct _CM_ROM_BLOCK { ULONG Address ; ULONG Size ; } CM_ROM_BLOCK , * PCM_ROM_BLOCK ; #line 24 "C:/NTDDK/inc/pshpack1.h" #pragma warning(disable:4103) #pragma pack(push, 1) #line 8518 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_INT13_DRIVE_PARAMETER { USHORT DriveSelect ; ULONG MaxCylinders ; USHORT SectorsPerTrack ; USHORT MaxHeads ; USHORT NumberDrives ; } CM_INT13_DRIVE_PARAMETER , * PCM_INT13_DRIVE_PARAMETER ; #line 8532 typedef struct _CM_MCA_POS_DATA { USHORT AdapterId ; UCHAR PosData1 ; UCHAR PosData2 ; UCHAR PosData3 ; UCHAR PosData4 ; } CM_MCA_POS_DATA , * PCM_MCA_POS_DATA ; #line 8544 typedef struct _EISA_MEMORY_TYPE { UCHAR ReadWrite : 1; UCHAR Cached : 1; UCHAR Reserved0 : 1; UCHAR Type : 2; UCHAR Shared : 1; UCHAR Reserved1 : 1; UCHAR MoreEntries : 1; } EISA_MEMORY_TYPE , * PEISA_MEMORY_TYPE ; typedef struct _EISA_MEMORY_CONFIGURATION { EISA_MEMORY_TYPE ConfigurationByte ; UCHAR DataSize ; USHORT AddressLowWord ; UCHAR AddressHighByte ; USHORT MemorySize ; } EISA_MEMORY_CONFIGURATION , * PEISA_MEMORY_CONFIGURATION ; #line 8567 typedef struct _EISA_IRQ_DESCRIPTOR { UCHAR Interrupt : 4; UCHAR Reserved : 1; UCHAR LevelTriggered : 1; UCHAR Shared : 1; UCHAR MoreEntries : 1; } EISA_IRQ_DESCRIPTOR , * PEISA_IRQ_DESCRIPTOR ; typedef struct _EISA_IRQ_CONFIGURATION { EISA_IRQ_DESCRIPTOR ConfigurationByte ; UCHAR Reserved ; } EISA_IRQ_CONFIGURATION , * PEISA_IRQ_CONFIGURATION ; #line 8585 typedef struct _DMA_CONFIGURATION_BYTE0 { UCHAR Channel : 3; UCHAR Reserved : 3; UCHAR Shared : 1; UCHAR MoreEntries : 1; } DMA_CONFIGURATION_BYTE0 ; typedef struct _DMA_CONFIGURATION_BYTE1 { UCHAR Reserved0 : 2; UCHAR TransferSize : 2; UCHAR Timing : 2; UCHAR Reserved1 : 2; } DMA_CONFIGURATION_BYTE1 ; typedef struct _EISA_DMA_CONFIGURATION { DMA_CONFIGURATION_BYTE0 ConfigurationByte0 ; DMA_CONFIGURATION_BYTE1 ConfigurationByte1 ; } EISA_DMA_CONFIGURATION , * PEISA_DMA_CONFIGURATION ; #line 8609 typedef struct _EISA_PORT_DESCRIPTOR { UCHAR NumberPorts : 5; UCHAR Reserved : 1; UCHAR Shared : 1; UCHAR MoreEntries : 1; } EISA_PORT_DESCRIPTOR , * PEISA_PORT_DESCRIPTOR ; typedef struct _EISA_PORT_CONFIGURATION { EISA_PORT_DESCRIPTOR Configuration ; USHORT PortAddress ; } EISA_PORT_CONFIGURATION , * PEISA_PORT_CONFIGURATION ; #line 8628 typedef struct _CM_EISA_SLOT_INFORMATION { UCHAR ReturnCode ; UCHAR ReturnFlags ; UCHAR MajorRevision ; UCHAR MinorRevision ; USHORT Checksum ; UCHAR NumberFunctions ; UCHAR FunctionInformation ; ULONG CompressedId ; } CM_EISA_SLOT_INFORMATION , * PCM_EISA_SLOT_INFORMATION ; #line 8644 typedef struct _CM_EISA_FUNCTION_INFORMATION { ULONG CompressedId ; UCHAR IdSlotFlags1 ; UCHAR IdSlotFlags2 ; UCHAR MinorRevision ; UCHAR MajorRevision ; UCHAR Selections[26] ; UCHAR FunctionFlags ; UCHAR TypeString[80] ; EISA_MEMORY_CONFIGURATION EisaMemory[9] ; EISA_IRQ_CONFIGURATION EisaIrq[7] ; EISA_DMA_CONFIGURATION EisaDma[4] ; EISA_PORT_CONFIGURATION EisaPort[20] ; UCHAR InitializationData[60] ; } CM_EISA_FUNCTION_INFORMATION , * PCM_EISA_FUNCTION_INFORMATION ; #line 8678 typedef struct _CM_PNP_BIOS_DEVICE_NODE { USHORT Size ; UCHAR Node ; ULONG ProductId ; UCHAR DeviceType[3] ; USHORT DeviceAttributes ; } CM_PNP_BIOS_DEVICE_NODE , * PCM_PNP_BIOS_DEVICE_NODE ; #line 8692 typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK { UCHAR Signature[4] ; UCHAR Revision ; UCHAR Length ; USHORT ControlField ; UCHAR Checksum ; ULONG EventFlagAddress ; USHORT RealModeEntryOffset ; USHORT RealModeEntrySegment ; USHORT ProtectedModeEntryOffset ; ULONG ProtectedModeCodeBaseAddress ; ULONG OemDeviceId ; USHORT RealModeDataBaseAddress ; ULONG ProtectedModeDataBaseAddress ; } CM_PNP_BIOS_INSTALLATION_CHECK , * PCM_PNP_BIOS_INSTALLATION_CHECK ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 8761 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_SCSI_DEVICE_DATA { USHORT Version ; USHORT Revision ; UCHAR HostIdentifier ; } CM_SCSI_DEVICE_DATA , * PCM_SCSI_DEVICE_DATA ; #line 8775 typedef struct _CM_VIDEO_DEVICE_DATA { USHORT Version ; USHORT Revision ; ULONG VideoClock ; } CM_VIDEO_DEVICE_DATA , * PCM_VIDEO_DEVICE_DATA ; #line 8785 typedef struct _CM_SONIC_DEVICE_DATA { USHORT Version ; USHORT Revision ; USHORT DataConfigurationRegister ; UCHAR EthernetAddress[8] ; } CM_SONIC_DEVICE_DATA , * PCM_SONIC_DEVICE_DATA ; #line 8796 typedef struct _CM_SERIAL_DEVICE_DATA { USHORT Version ; USHORT Revision ; ULONG BaudClock ; } CM_SERIAL_DEVICE_DATA , * PCM_SERIAL_DEVICE_DATA ; #line 8810 typedef struct _CM_MONITOR_DEVICE_DATA { USHORT Version ; USHORT Revision ; USHORT HorizontalScreenSize ; USHORT VerticalScreenSize ; USHORT HorizontalResolution ; USHORT VerticalResolution ; USHORT HorizontalDisplayTimeLow ; USHORT HorizontalDisplayTime ; USHORT HorizontalDisplayTimeHigh ; USHORT HorizontalBackPorchLow ; USHORT HorizontalBackPorch ; USHORT HorizontalBackPorchHigh ; USHORT HorizontalFrontPorchLow ; USHORT HorizontalFrontPorch ; USHORT HorizontalFrontPorchHigh ; USHORT HorizontalSyncLow ; USHORT HorizontalSync ; USHORT HorizontalSyncHigh ; USHORT VerticalBackPorchLow ; USHORT VerticalBackPorch ; USHORT VerticalBackPorchHigh ; USHORT VerticalFrontPorchLow ; USHORT VerticalFrontPorch ; USHORT VerticalFrontPorchHigh ; USHORT VerticalSyncLow ; USHORT VerticalSync ; USHORT VerticalSyncHigh ; } CM_MONITOR_DEVICE_DATA , * PCM_MONITOR_DEVICE_DATA ; #line 8844 typedef struct _CM_FLOPPY_DEVICE_DATA { USHORT Version ; USHORT Revision ; CHAR Size[8] ; ULONG MaxDensity ; ULONG MountDensity ; UCHAR StepRateHeadUnloadTime ; UCHAR HeadLoadTime ; UCHAR MotorOffTime ; UCHAR SectorLengthCode ; UCHAR SectorPerTrack ; UCHAR ReadWriteGapLength ; UCHAR DataTransferLength ; UCHAR FormatGapLength ; UCHAR FormatFillCharacter ; UCHAR HeadSettleTime ; UCHAR MotorSettleTime ; UCHAR MaximumTrackValue ; UCHAR DataTransferRate ; } CM_FLOPPY_DEVICE_DATA , * PCM_FLOPPY_DEVICE_DATA ; #line 8881 typedef struct _CM_KEYBOARD_DEVICE_DATA { USHORT Version ; USHORT Revision ; UCHAR Type ; UCHAR Subtype ; USHORT KeyboardFlags ; } CM_KEYBOARD_DEVICE_DATA , * PCM_KEYBOARD_DEVICE_DATA ; #line 8893 typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA { ULONG BytesPerSector ; ULONG NumberOfCylinders ; ULONG SectorsPerTrack ; ULONG NumberOfHeads ; } CM_DISK_GEOMETRY_DEVICE_DATA , * PCM_DISK_GEOMETRY_DEVICE_DATA ; #line 8905 typedef struct _CM_PCCARD_DEVICE_DATA { UCHAR Flags ; UCHAR ErrorCode ; USHORT Reserved ; ULONG BusData ; ULONG DeviceId ; ULONG LegacyBaseAddress ; UCHAR IRQMap[16] ; } CM_PCCARD_DEVICE_DATA , * PCM_PCCARD_DEVICE_DATA ; #line 8944 typedef struct _IO_RESOURCE_DESCRIPTOR { UCHAR Option ; UCHAR Type ; UCHAR ShareDisposition ; UCHAR Spare1 ; USHORT Flags ; USHORT Spare2 ; union { struct { ULONG Length ; ULONG Alignment ; PHYSICAL_ADDRESS MinimumAddress ; PHYSICAL_ADDRESS MaximumAddress ; } Port ; struct { ULONG Length ; ULONG Alignment ; PHYSICAL_ADDRESS MinimumAddress ; PHYSICAL_ADDRESS MaximumAddress ; } Memory ; struct { ULONG MinimumVector ; ULONG MaximumVector ; } Interrupt ; struct { ULONG MinimumChannel ; ULONG MaximumChannel ; } Dma ; struct { ULONG Length ; ULONG Alignment ; PHYSICAL_ADDRESS MinimumAddress ; PHYSICAL_ADDRESS MaximumAddress ; } Generic ; struct { ULONG Data[3] ; } DevicePrivate ; struct { ULONG Length ; ULONG MinBusNumber ; ULONG MaxBusNumber ; ULONG Reserved ; } BusNumber ; struct { PASSIGNED_RESOURCE AssignedResource ; } AssignedResource ; struct { UCHAR Type ; UCHAR Reserved[3] ; PASSIGNED_RESOURCE AssignedResource ; PHYSICAL_ADDRESS Transformation ; } SubAllocateFrom ; struct { ULONG Priority ; ULONG Reserved1 ; ULONG Reserved2 ; } ConfigData ; } u ; } IO_RESOURCE_DESCRIPTOR , * PIO_RESOURCE_DESCRIPTOR ; #line 9027 typedef struct _IO_RESOURCE_LIST { USHORT Version ; USHORT Revision ; ULONG Count ; IO_RESOURCE_DESCRIPTOR Descriptors[1] ; } IO_RESOURCE_LIST , * PIO_RESOURCE_LIST ; #line 9036 typedef struct _IO_RESOURCE_REQUIREMENTS_LIST { ULONG ListSize ; INTERFACE_TYPE InterfaceType ; ULONG BusNumber ; ULONG SlotNumber ; ULONG Reserved[3] ; ULONG AlternativeLists ; IO_RESOURCE_LIST List[1] ; } IO_RESOURCE_REQUIREMENTS_LIST , * PIO_RESOURCE_REQUIREMENTS_LIST ; #line 9065 typedef struct _EXCEPTION_RECORD { NTSTATUS ExceptionCode ; ULONG ExceptionFlags ; struct _EXCEPTION_RECORD * ExceptionRecord ; PVOID ExceptionAddress ; ULONG NumberParameters ; ULONG_PTR ExceptionInformation[15] ; } EXCEPTION_RECORD ; typedef EXCEPTION_RECORD * PEXCEPTION_RECORD ; typedef struct _EXCEPTION_RECORD32 { NTSTATUS ExceptionCode ; ULONG ExceptionFlags ; ULONG ExceptionRecord ; ULONG ExceptionAddress ; ULONG NumberParameters ; ULONG ExceptionInformation[15] ; } EXCEPTION_RECORD32 , * PEXCEPTION_RECORD32 ; typedef struct _EXCEPTION_RECORD64 { NTSTATUS ExceptionCode ; ULONG ExceptionFlags ; ULONG64 ExceptionRecord ; ULONG64 ExceptionAddress ; ULONG NumberParameters ; ULONG __unusedAlignment ; ULONG64 ExceptionInformation[15] ; } EXCEPTION_RECORD64 , * PEXCEPTION_RECORD64 ; #line 9099 typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord ; PCONTEXT ContextRecord ; } EXCEPTION_POINTERS , * PEXCEPTION_POINTERS ; #line 9111 typedef enum _CONFIGURATION_TYPE { ArcSystem, CentralProcessor, FloatingPointProcessor, PrimaryIcache, PrimaryDcache, SecondaryIcache, SecondaryDcache, SecondaryCache, EisaAdapter, TcAdapter, ScsiAdapter, DtiAdapter, MultiFunctionAdapter, DiskController, TapeController, CdromController, WormController, SerialController, NetworkController, DisplayController, ParallelController, PointerController, KeyboardController, AudioController, OtherController, DiskPeripheral, FloppyDiskPeripheral, TapePeripheral, ModemPeripheral, MonitorPeripheral, PrinterPeripheral, PointerPeripheral, KeyboardPeripheral, TerminalPeripheral, OtherPeripheral, LinePeripheral, NetworkPeripheral, SystemMemory, DockingInformation, RealModeIrqRoutingTable, MaximumType } CONFIGURATION_TYPE , * PCONFIGURATION_TYPE ; #line 9161 typedef enum _KINTERRUPT_MODE { LevelSensitive, Latched } KINTERRUPT_MODE ; #line 9170 typedef enum _KWAIT_REASON { Executive, FreePage, PageIn, PoolAllocation, DelayExecution, Suspended, UserRequest, WrExecutive, WrFreePage, WrPageIn, WrPoolAllocation, WrDelayExecution, WrSuspended, WrUserRequest, WrEventPair, WrQueue, WrLpcReceive, WrLpcReply, WrVirtualMemory, WrPageOut, WrRendezvous, Spare2, Spare3, Spare4, Spare5, Spare6, WrKernel, MaximumWaitReason } KWAIT_REASON ; #line 9207 typedef struct _DISPATCHER_HEADER { UCHAR Type ; UCHAR Absolute ; UCHAR Size ; UCHAR Inserted ; LONG SignalState ; LIST_ENTRY WaitListHead ; } DISPATCHER_HEADER ; #line 9217 typedef struct _KWAIT_BLOCK { LIST_ENTRY WaitListEntry ; struct _KTHREAD * Thread ; PVOID Object ; struct _KWAIT_BLOCK * NextWaitBlock ; USHORT WaitKey ; USHORT WaitType ; } KWAIT_BLOCK , * PKWAIT_BLOCK , * PRKWAIT_BLOCK ; #line 9230 typedef void ( * PKSTART_ROUTINE )(PVOID StartContext ) ; #line 9244 typedef struct _KDEVICE_QUEUE { CSHORT Type ; CSHORT Size ; LIST_ENTRY DeviceListHead ; KSPIN_LOCK Lock ; BOOLEAN Busy ; } KDEVICE_QUEUE , * PKDEVICE_QUEUE , * PRKDEVICE_QUEUE ; typedef struct _KDEVICE_QUEUE_ENTRY { LIST_ENTRY DeviceListEntry ; ULONG SortKey ; BOOLEAN Inserted ; } KDEVICE_QUEUE_ENTRY , * PKDEVICE_QUEUE_ENTRY , * PRKDEVICE_QUEUE_ENTRY ; #line 9263 typedef struct _KEVENT { DISPATCHER_HEADER Header ; } KEVENT , * PKEVENT , * PRKEVENT ; #line 9271 typedef BOOLEAN ( * PKSERVICE_ROUTINE )(struct _KINTERRUPT * Interrupt , PVOID ServiceContext ) ; #line 9281 typedef struct _KMUTANT { DISPATCHER_HEADER Header ; LIST_ENTRY MutantListEntry ; struct _KTHREAD * OwnerThread ; BOOLEAN Abandoned ; UCHAR ApcDisable ; } KMUTANT , * PKMUTANT , * PRKMUTANT , KMUTEX , * PKMUTEX , * PRKMUTEX ; #line 9294 typedef struct _KSEMAPHORE { DISPATCHER_HEADER Header ; LONG Limit ; } KSEMAPHORE , * PKSEMAPHORE , * PRKSEMAPHORE ; #line 9304 typedef struct _KTIMER { DISPATCHER_HEADER Header ; ULARGE_INTEGER DueTime ; LIST_ENTRY TimerListEntry ; struct _KDPC * Dpc ; LONG Period ; } KTIMER , * PKTIMER , * PRKTIMER ; #line 9316 __declspec(dllimport) void KeInitializeDpc(PRKDPC Dpc , PKDEFERRED_ROUTINE DeferredRoutine , PVOID DeferredContext ) ; #line 9324 __declspec(dllimport) BOOLEAN KeInsertQueueDpc(PRKDPC Dpc , PVOID SystemArgument1 , PVOID SystemArgument2 ) ; #line 9332 __declspec(dllimport) BOOLEAN KeRemoveQueueDpc(PRKDPC Dpc ) ; #line 9340 __declspec(dllimport) void KeSetImportanceDpc(PRKDPC Dpc , KDPC_IMPORTANCE Importance ) ; #line 9347 __declspec(dllimport) void KeSetTargetProcessorDpc(PRKDPC Dpc , CCHAR Number ) ; #line 9359 __declspec(dllimport) void KeInitializeDeviceQueue(PKDEVICE_QUEUE DeviceQueue ) ; #line 9365 __declspec(dllimport) BOOLEAN KeInsertDeviceQueue(PKDEVICE_QUEUE DeviceQueue , PKDEVICE_QUEUE_ENTRY DeviceQueueEntry ) ; #line 9372 __declspec(dllimport) BOOLEAN KeInsertByKeyDeviceQueue(PKDEVICE_QUEUE DeviceQueue , PKDEVICE_QUEUE_ENTRY DeviceQueueEntry , ULONG SortKey ) ; #line 9380 __declspec(dllimport) PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue(PKDEVICE_QUEUE DeviceQueue ) ; #line 9386 __declspec(dllimport) PKDEVICE_QUEUE_ENTRY KeRemoveByKeyDeviceQueue(PKDEVICE_QUEUE DeviceQueue , ULONG SortKey ) ; #line 9393 __declspec(dllimport) BOOLEAN KeRemoveEntryDeviceQueue(PKDEVICE_QUEUE DeviceQueue , PKDEVICE_QUEUE_ENTRY DeviceQueueEntry ) ; #line 9400 __declspec(dllimport) BOOLEAN KeSynchronizeExecution(PKINTERRUPT Interrupt , PKSYNCHRONIZE_ROUTINE SynchronizeRoutine , PVOID SynchronizeContext ) ; #line 9415 __declspec(dllimport) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type , BOOLEAN State ) ; #line 9423 __declspec(dllimport) void KeClearEvent(PRKEVENT Event ) ; #line 9429 __declspec(dllimport) LONG KePulseEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait ) ; #line 9437 __declspec(dllimport) LONG KeReadStateEvent(PRKEVENT Event ) ; #line 9445 __declspec(dllimport) LONG KeResetEvent(PRKEVENT Event ) ; #line 9451 __declspec(dllimport) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait ) ; #line 9463 __declspec(dllimport) void KeInitializeMutex(PRKMUTEX Mutex , ULONG Level ) ; #line 9472 __declspec(dllimport) LONG KeReleaseMutex(PRKMUTEX Mutex , BOOLEAN Wait ) ; #line 9483 __declspec(dllimport) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore , LONG Count , LONG Limit ) ; #line 9491 __declspec(dllimport) LONG KeReadStateSemaphore(PRKSEMAPHORE Semaphore ) ; #line 9497 __declspec(dllimport) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment , LONG Adjustment , BOOLEAN Wait ) ; #line 9506 __declspec(dllimport) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Interval ) ; #line 9514 __declspec(dllimport) KPRIORITY KeQueryPriorityThread(PKTHREAD Thread ) ; #line 9520 __declspec(dllimport) LONG KeSetBasePriorityThread(PKTHREAD Thread , LONG Increment ) ; #line 9527 __declspec(dllimport) KPRIORITY KeSetPriorityThread(PKTHREAD Thread , KPRIORITY Priority ) ; #line 9539 __declspec(dllimport) void KeEnterCriticalRegion(void ) ; #line 9545 __declspec(dllimport) void KeLeaveCriticalRegion(void ) ; #line 9623 __declspec(dllimport) void KeInitializeTimer(PKTIMER Timer ) ; #line 9629 __declspec(dllimport) void KeInitializeTimerEx(PKTIMER Timer , TIMER_TYPE Type ) ; #line 9636 __declspec(dllimport) BOOLEAN KeCancelTimer(PKTIMER ) ; #line 9642 __declspec(dllimport) BOOLEAN KeReadStateTimer(PKTIMER Timer ) ; #line 9648 __declspec(dllimport) BOOLEAN KeSetTimer(PKTIMER Timer , LARGE_INTEGER DueTime , PKDPC Dpc ) ; #line 9656 __declspec(dllimport) BOOLEAN KeSetTimerEx(PKTIMER Timer , LARGE_INTEGER DueTime , LONG Period , PKDPC Dpc ) ; #line 9668 __declspec(dllimport) NTSTATUS KeWaitForMultipleObjects(ULONG Count , PVOID Object[] , WAIT_TYPE WaitType , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Timeout , PKWAIT_BLOCK WaitBlockArray ) ; #line 9681 __declspec(dllimport) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Timeout ) ; #line 9711 __declspec(dllimport) void __stdcall KeInitializeSpinLock(PKSPIN_LOCK SpinLock ) ; #line 9720 __declspec(dllimport) void _fastcall KefAcquireSpinLockAtDpcLevel(PKSPIN_LOCK SpinLock ) ; #line 9727 __declspec(dllimport) void _fastcall KefReleaseSpinLockFromDpcLevel(PKSPIN_LOCK SpinLock ) ; #line 9737 __declspec(dllimport) KIRQL _fastcall KfAcquireSpinLock(PKSPIN_LOCK SpinLock ) ; #line 9744 __declspec(dllimport) void _fastcall KfReleaseSpinLock(PKSPIN_LOCK SpinLock , KIRQL NewIrql ) ; #line 9754 __declspec(dllimport) KIRQL _fastcall KeAcquireSpinLockRaiseToSynch(PKSPIN_LOCK SpinLock ) ; #line 9808 __declspec(dllimport) void _fastcall KfLowerIrql(KIRQL NewIrql ) ; #line 9815 __declspec(dllimport) KIRQL _fastcall KfRaiseIrql(KIRQL NewIrql ) ; #line 9824 __declspec(dllimport) KIRQL KeRaiseIrqlToDpcLevel(void ) ; #line 9830 __declspec(dllimport) KIRQL KeRaiseIrqlToSynchLevel(void ) ; #line 9893 BOOLEAN KeGetBugMessageText(ULONG MessageId , PANSI_STRING ReturnedString ) ; #line 9899 typedef enum _KBUGCHECK_BUFFER_DUMP_STATE { BufferEmpty, BufferInserted, BufferStarted, BufferFinished, BufferIncomplete } KBUGCHECK_BUFFER_DUMP_STATE ; typedef void ( * PKBUGCHECK_CALLBACK_ROUTINE )(PVOID Buffer , ULONG Length ) ; #line 9914 typedef struct _KBUGCHECK_CALLBACK_RECORD { LIST_ENTRY Entry ; PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine ; PVOID Buffer ; ULONG Length ; PUCHAR Component ; ULONG_PTR Checksum ; UCHAR State ; } KBUGCHECK_CALLBACK_RECORD , * PKBUGCHECK_CALLBACK_RECORD ; __declspec(dllimport) __declspec(noreturn) void __stdcall KeBugCheck(ULONG BugCheckCode ) ; #line 9934 __declspec(dllimport) __declspec(noreturn) void KeBugCheckEx(ULONG BugCheckCode , ULONG_PTR BugCheckParameter1 , ULONG_PTR BugCheckParameter2 , ULONG_PTR BugCheckParameter3 , ULONG_PTR BugCheckParameter4 ) ; #line 9950 __declspec(dllimport) BOOLEAN KeDeregisterBugCheckCallback(PKBUGCHECK_CALLBACK_RECORD CallbackRecord ) ; #line 9956 __declspec(dllimport) BOOLEAN KeRegisterBugCheckCallback(PKBUGCHECK_CALLBACK_RECORD CallbackRecord , PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine , PVOID Buffer , ULONG Length , PUCHAR Component ) ; #line 9966 __declspec(dllimport) void KeEnterKernelDebugger(void ) ; #line 9973 __declspec(dllimport) ULONGLONG KeQueryInterruptTime(void ) ; #line 9979 __declspec(dllimport) void KeQuerySystemTime(PLARGE_INTEGER CurrentTime ) ; #line 9985 __declspec(dllimport) ULONG KeQueryTimeIncrement(void ) ; #line 9992 __declspec(dllimport) KAFFINITY KeQueryActiveProcessors(void ) ; #line 10002 typedef void (_fastcall * PSWAP_CONTEXT_NOTIFY_ROUTINE )(HANDLE OldThreadId , HANDLE NewThreadId ) ; #line 10009 __declspec(dllimport) void _fastcall KeSetSwapContextNotifyRoutine(PSWAP_CONTEXT_NOTIFY_ROUTINE NotifyRoutine ) ; #line 10020 typedef LOGICAL (_fastcall * PTHREAD_SELECT_NOTIFY_ROUTINE )(HANDLE ThreadId ) ; #line 10026 __declspec(dllimport) void _fastcall KeSetThreadSelectNotifyRoutine(PTHREAD_SELECT_NOTIFY_ROUTINE NotifyRoutine ) ; #line 10037 typedef void (_fastcall * PTIME_UPDATE_NOTIFY_ROUTINE )(HANDLE ThreadId , KPROCESSOR_MODE Mode ) ; #line 10044 __declspec(dllimport) void _fastcall KeSetTimeUpdateNotifyRoutine(PTIME_UPDATE_NOTIFY_ROUTINE NotifyRoutine ) ; #line 10051 extern volatile KSYSTEM_TIME KeTickCount ; typedef enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached = 2 } MEMORY_CACHING_TYPE_ORIG ; typedef enum _MEMORY_CACHING_TYPE { MmNonCached = 0, MmCached = 1, MmWriteCombined = MmFrameBufferCached, MmHardwareCoherentCached, MmNonCachedUnordered, MmUSWCCached, MmMaximumCacheType } MEMORY_CACHING_TYPE ; #line 10074 extern PBOOLEAN KdDebuggerNotPresent ; extern PBOOLEAN KdDebuggerEnabled ; #line 10087 typedef struct _DBGKD_DEBUG_DATA_HEADER64 * PDBGKD_DEBUG_DATA_HEADER64 ; BOOLEAN KdRegisterDebuggerDataBlock(ULONG Tag , PDBGKD_DEBUG_DATA_HEADER64 DataHeader , ULONG Size ) ; #line 10096 void KdDeregisterDebuggerDataBlock32(PDBGKD_DEBUG_DATA_HEADER64 DataHeader ) ; #line 10101 void KdDisableDebugger(void ) ; #line 10106 void KdEnableDebugger(void ) ; #line 10115 typedef enum _POOL_TYPE { NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType, NonPagedPoolCacheAligned, PagedPoolCacheAligned, NonPagedPoolCacheAlignedMustS, MaxPoolType, NonPagedPoolSession = 32, PagedPoolSession = NonPagedPoolSession + 1, NonPagedPoolMustSucceedSession = PagedPoolSession + 1, DontUseThisTypeSession = NonPagedPoolMustSucceedSession + 1, NonPagedPoolCacheAlignedSession = DontUseThisTypeSession + 1, PagedPoolCacheAlignedSession = NonPagedPoolCacheAlignedSession + 1, NonPagedPoolCacheAlignedMustSSession = PagedPoolCacheAlignedSession + 1 } POOL_TYPE ; #line 10145 __declspec(dllimport) PVOID ExAllocatePool(POOL_TYPE PoolType , SIZE_T NumberOfBytes ) ; #line 10152 __declspec(dllimport) PVOID ExAllocatePoolWithQuota(POOL_TYPE PoolType , SIZE_T NumberOfBytes ) ; #line 10159 __declspec(dllimport) PVOID __stdcall ExAllocatePoolWithTag(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; #line 10195 typedef enum _EX_POOL_PRIORITY { LowPoolPriority, LowPoolPrioritySpecialPoolOverrun = 8, LowPoolPrioritySpecialPoolUnderrun = 9, NormalPoolPriority = 16, NormalPoolPrioritySpecialPoolOverrun = 24, NormalPoolPrioritySpecialPoolUnderrun = 25, HighPoolPriority = 32, HighPoolPrioritySpecialPoolOverrun = 40, HighPoolPrioritySpecialPoolUnderrun = 41 } EX_POOL_PRIORITY ; #line 10208 __declspec(dllimport) PVOID __stdcall ExAllocatePoolWithTagPriority(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag , EX_POOL_PRIORITY Priority ) ; #line 10224 __declspec(dllimport) PVOID ExAllocatePoolWithQuotaTag(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; #line 10236 __declspec(dllimport) void __stdcall ExFreePool(PVOID P ) ; #line 10247 typedef struct _FAST_MUTEX { LONG Count ; PKTHREAD Owner ; ULONG Contention ; KEVENT Event ; ULONG OldIrql ; } FAST_MUTEX , * PFAST_MUTEX ; #line 10272 __declspec(dllimport) void _fastcall ExAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex ) ; #line 10279 __declspec(dllimport) void _fastcall ExReleaseFastMutexUnsafe(PFAST_MUTEX FastMutex ) ; #line 10315 __declspec(dllimport) void _fastcall ExAcquireFastMutex(PFAST_MUTEX FastMutex ) ; #line 10322 __declspec(dllimport) void _fastcall ExReleaseFastMutex(PFAST_MUTEX FastMutex ) ; #line 10331 __declspec(dllimport) BOOLEAN _fastcall ExTryToAcquireFastMutex(PFAST_MUTEX FastMutex ) ; #line 10348 __declspec(dllimport) void _fastcall ExInterlockedAddLargeStatistic(PLARGE_INTEGER Addend , ULONG Increment ) ; #line 10358 __declspec(dllimport) LARGE_INTEGER ExInterlockedAddLargeInteger(PLARGE_INTEGER Addend , LARGE_INTEGER Increment , PKSPIN_LOCK Lock ) ; #line 10367 __declspec(dllimport) ULONG _fastcall ExfInterlockedAddUlong(PULONG Addend , ULONG Increment , PKSPIN_LOCK Lock ) ; #line 10394 __declspec(dllimport) LONGLONG _fastcall ExInterlockedCompareExchange64(PLONGLONG Destination , PLONGLONG Exchange , PLONGLONG Comperand , PKSPIN_LOCK Lock ) ; #line 10406 __declspec(dllimport) PLIST_ENTRY _fastcall ExfInterlockedInsertHeadList(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; #line 10415 __declspec(dllimport) PLIST_ENTRY _fastcall ExfInterlockedInsertTailList(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; #line 10424 __declspec(dllimport) PLIST_ENTRY _fastcall ExfInterlockedRemoveHeadList(PLIST_ENTRY ListHead , PKSPIN_LOCK Lock ) ; #line 10432 __declspec(dllimport) PSINGLE_LIST_ENTRY _fastcall ExfInterlockedPopEntryList(PSINGLE_LIST_ENTRY ListHead , PKSPIN_LOCK Lock ) ; #line 10440 __declspec(dllimport) PSINGLE_LIST_ENTRY _fastcall ExfInterlockedPushEntryList(PSINGLE_LIST_ENTRY ListHead , PSINGLE_LIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; #line 10547 __declspec(dllimport) PSINGLE_LIST_ENTRY _fastcall ExInterlockedPopEntrySList(PSLIST_HEADER ListHead , PKSPIN_LOCK Lock ) ; #line 10555 __declspec(dllimport) PSINGLE_LIST_ENTRY _fastcall ExInterlockedPushEntrySList(PSLIST_HEADER ListHead , PSINGLE_LIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; #line 10564 __declspec(dllimport) PSINGLE_LIST_ENTRY _fastcall ExInterlockedFlushSList(PSLIST_HEADER ListHead ) ; #line 10574 typedef PVOID ( * PALLOCATE_FUNCTION )(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; #line 10582 typedef void ( * PFREE_FUNCTION )(PVOID Buffer ) ; #line 10588 typedef struct _GENERAL_LOOKASIDE { SLIST_HEADER ListHead ; USHORT Depth ; USHORT MaximumDepth ; ULONG TotalAllocates ; union { ULONG AllocateMisses ; ULONG AllocateHits ; } ; ULONG TotalFrees ; union { ULONG FreeMisses ; ULONG FreeHits ; } ; POOL_TYPE Type ; ULONG Tag ; ULONG Size ; PALLOCATE_FUNCTION Allocate ; PFREE_FUNCTION Free ; LIST_ENTRY ListEntry ; ULONG LastTotalAllocates ; union { ULONG LastAllocateMisses ; ULONG LastAllocateHits ; } ; ULONG Future[2] ; } GENERAL_LOOKASIDE , * PGENERAL_LOOKASIDE ; #line 10619 typedef struct _NPAGED_LOOKASIDE_LIST { GENERAL_LOOKASIDE L ; KSPIN_LOCK Lock ; } NPAGED_LOOKASIDE_LIST , * PNPAGED_LOOKASIDE_LIST ; #line 10625 __declspec(dllimport) void ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside , PALLOCATE_FUNCTION Allocate , PFREE_FUNCTION Free , ULONG Flags , SIZE_T Size , ULONG Tag , USHORT Depth ) ; #line 10637 __declspec(dllimport) void ExDeleteNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside ) ; #line 10643 __inline PVOID ExAllocateFromNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside ) { #line 10670 PVOID Entry ; #line 10672 (Lookaside->L).TotalAllocates += 1; Entry = ExInterlockedPopEntrySList(& (Lookaside->L).ListHead, & Lookaside->Lock); #line 10674 if(Entry == (void * )0) { #line 10675 (Lookaside->L).AllocateMisses += 1; Entry = ((Lookaside->L).Allocate)((Lookaside->L).Type, (Lookaside->L).Size, (Lookaside->L).Tag); } #line 10681 return Entry; } __inline void ExFreeToNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside , PVOID Entry ) { #line 10713 (Lookaside->L).TotalFrees += 1; if((USHORT )(& (Lookaside->L).ListHead)->Depth >= (Lookaside->L).Depth) { #line 10715 (Lookaside->L).FreeMisses += 1; ((Lookaside->L).Free)(Entry); } else { #line 10719 ExInterlockedPushEntrySList(& (Lookaside->L).ListHead, (PSINGLE_LIST_ENTRY )Entry, & Lookaside->Lock); } #line 10724 return; } #line 10729 typedef struct _PAGED_LOOKASIDE_LIST { GENERAL_LOOKASIDE L ; FAST_MUTEX Lock ; } PAGED_LOOKASIDE_LIST , * PPAGED_LOOKASIDE_LIST ; __declspec(dllimport) void ExInitializePagedLookasideList(PPAGED_LOOKASIDE_LIST Lookaside , PALLOCATE_FUNCTION Allocate , PFREE_FUNCTION Free , ULONG Flags , SIZE_T Size , ULONG Tag , USHORT Depth ) ; #line 10746 __declspec(dllimport) void ExDeletePagedLookasideList(PPAGED_LOOKASIDE_LIST Lookaside ) ; #line 10754 __declspec(dllimport) PVOID ExAllocateFromPagedLookasideList(PPAGED_LOOKASIDE_LIST Lookaside ) ; #line 10760 __declspec(dllimport) void ExFreeToPagedLookasideList(PPAGED_LOOKASIDE_LIST Lookaside , PVOID Entry ) ; #line 10856 __declspec(dllimport) void __stdcall ProbeForRead(const void * Address , ULONG Length , ULONG Alignment ) ; #line 10869 __declspec(dllimport) void __stdcall ProbeForWrite(PVOID Address , ULONG Length , ULONG Alignment ) ; #line 10882 typedef enum _WORK_QUEUE_TYPE { CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue, MaximumWorkQueue } WORK_QUEUE_TYPE ; typedef void ( * PWORKER_THREAD_ROUTINE )(PVOID Parameter ) ; #line 10895 typedef struct _WORK_QUEUE_ITEM { LIST_ENTRY List ; PWORKER_THREAD_ROUTINE WorkerRoutine ; PVOID Parameter ; } WORK_QUEUE_ITEM , * PWORK_QUEUE_ITEM ; #line 10907 __declspec(dllimport) void ExQueueWorkItem(PWORK_QUEUE_ITEM WorkItem , WORK_QUEUE_TYPE QueueType ) ; #line 10916 __declspec(dllimport) BOOLEAN ExIsProcessorFeaturePresent(ULONG ProcessorFeature ) ; #line 10926 typedef struct _ZONE_SEGMENT_HEADER { SINGLE_LIST_ENTRY SegmentList ; PVOID Reserved ; } ZONE_SEGMENT_HEADER , * PZONE_SEGMENT_HEADER ; typedef struct _ZONE_HEADER { SINGLE_LIST_ENTRY FreeList ; SINGLE_LIST_ENTRY SegmentList ; ULONG BlockSize ; ULONG TotalSegmentSize ; } ZONE_HEADER , * PZONE_HEADER ; #line 10939 __declspec(dllimport) NTSTATUS ExInitializeZone(PZONE_HEADER Zone , ULONG BlockSize , PVOID InitialSegment , ULONG InitialSegmentSize ) ; #line 10948 __declspec(dllimport) NTSTATUS ExExtendZone(PZONE_HEADER Zone , PVOID Segment , ULONG SegmentSize ) ; #line 10956 __declspec(dllimport) NTSTATUS ExInterlockedExtendZone(PZONE_HEADER Zone , PVOID Segment , ULONG SegmentSize , PKSPIN_LOCK Lock ) ; #line 11156 typedef ULONG_PTR ERESOURCE_THREAD ; #line 11157 typedef ERESOURCE_THREAD * PERESOURCE_THREAD ; typedef struct _OWNER_ENTRY { ERESOURCE_THREAD OwnerThread ; union { LONG OwnerCount ; ULONG TableSize ; } ; } OWNER_ENTRY , * POWNER_ENTRY ; #line 11168 typedef struct _ERESOURCE { LIST_ENTRY SystemResourcesList ; POWNER_ENTRY OwnerTable ; SHORT ActiveCount ; USHORT Flag ; PKSEMAPHORE SharedWaiters ; PKEVENT ExclusiveWaiters ; OWNER_ENTRY OwnerThreads[2] ; ULONG ContentionCount ; USHORT NumberOfSharedWaiters ; USHORT NumberOfExclusiveWaiters ; union { PVOID Address ; ULONG_PTR CreatorBackTraceIndex ; } ; KSPIN_LOCK SpinLock ; } ERESOURCE , * PERESOURCE ; #line 11197 typedef struct _RESOURCE_HASH_ENTRY { LIST_ENTRY ListEntry ; PVOID Address ; ULONG ContentionCount ; ULONG Number ; } RESOURCE_HASH_ENTRY , * PRESOURCE_HASH_ENTRY ; typedef struct _RESOURCE_PERFORMANCE_DATA { ULONG ActiveResourceCount ; ULONG TotalResourceCount ; ULONG ExclusiveAcquire ; ULONG SharedFirstLevel ; ULONG SharedSecondLevel ; ULONG StarveFirstLevel ; ULONG StarveSecondLevel ; ULONG WaitForExclusive ; ULONG OwnerTableExpands ; ULONG MaximumTableExpand ; LIST_ENTRY HashTable[64] ; } RESOURCE_PERFORMANCE_DATA , * PRESOURCE_PERFORMANCE_DATA ; #line 11222 __declspec(dllimport) NTSTATUS ExInitializeResourceLite(PERESOURCE Resource ) ; #line 11228 __declspec(dllimport) NTSTATUS ExReinitializeResourceLite(PERESOURCE Resource ) ; #line 11234 __declspec(dllimport) BOOLEAN ExAcquireResourceSharedLite(PERESOURCE Resource , BOOLEAN Wait ) ; #line 11241 __declspec(dllimport) BOOLEAN ExAcquireResourceExclusiveLite(PERESOURCE Resource , BOOLEAN Wait ) ; #line 11248 __declspec(dllimport) BOOLEAN ExAcquireSharedStarveExclusive(PERESOURCE Resource , BOOLEAN Wait ) ; #line 11255 __declspec(dllimport) BOOLEAN ExAcquireSharedWaitForExclusive(PERESOURCE Resource , BOOLEAN Wait ) ; #line 11262 __declspec(dllimport) BOOLEAN ExTryToAcquireResourceExclusiveLite(PERESOURCE Resource ) ; #line 11277 __declspec(dllimport) void _fastcall ExReleaseResourceLite(PERESOURCE Resource ) ; #line 11284 __declspec(dllimport) void ExReleaseResourceForThreadLite(PERESOURCE Resource , ERESOURCE_THREAD ResourceThreadId ) ; #line 11291 __declspec(dllimport) void ExSetResourceOwnerPointer(PERESOURCE Resource , PVOID OwnerPointer ) ; #line 11298 __declspec(dllimport) void ExConvertExclusiveToSharedLite(PERESOURCE Resource ) ; #line 11304 __declspec(dllimport) NTSTATUS ExDeleteResourceLite(PERESOURCE Resource ) ; #line 11310 __declspec(dllimport) ULONG ExGetExclusiveWaiterCount(PERESOURCE Resource ) ; #line 11316 __declspec(dllimport) ULONG ExGetSharedWaiterCount(PERESOURCE Resource ) ; #line 11330 __declspec(dllimport) BOOLEAN ExIsResourceAcquiredExclusiveLite(PERESOURCE Resource ) ; #line 11336 __declspec(dllimport) ULONG ExIsResourceAcquiredSharedLite(PERESOURCE Resource ) ; #line 11360 __declspec(dllimport) KPROCESSOR_MODE ExGetPreviousMode(void ) ; #line 11369 __declspec(dllimport) void __stdcall ExRaiseStatus(NTSTATUS Status ) ; #line 11378 __declspec(dllimport) void ExRaiseDatatypeMisalignment(void ) ; #line 11384 __declspec(dllimport) void ExRaiseAccessViolation(void ) ; #line 11394 __declspec(dllimport) ULONG ExSetTimerResolution(ULONG DesiredTime , BOOLEAN SetResolution ) ; #line 11406 __declspec(dllimport) void ExSystemTimeToLocalTime(PLARGE_INTEGER SystemTime , PLARGE_INTEGER LocalTime ) ; #line 11417 __declspec(dllimport) void ExLocalTimeToSystemTime(PLARGE_INTEGER LocalTime , PLARGE_INTEGER SystemTime ) ; #line 11429 typedef struct _CALLBACK_OBJECT * PCALLBACK_OBJECT___0 ; typedef void ( * PCALLBACK_FUNCTION )(PVOID CallbackContext , PVOID Argument1 , PVOID Argument2 ) ; #line 11438 __declspec(dllimport) NTSTATUS ExCreateCallback(PCALLBACK_OBJECT___0 * CallbackObject , POBJECT_ATTRIBUTES ObjectAttributes , BOOLEAN Create , BOOLEAN AllowMultipleCallbacks ) ; #line 11447 __declspec(dllimport) PVOID ExRegisterCallback(PCALLBACK_OBJECT___0 CallbackObject , PCALLBACK_FUNCTION CallbackFunction , PVOID CallbackContext ) ; #line 11455 __declspec(dllimport) void ExUnregisterCallback(PVOID CallbackRegistration ) ; #line 11461 __declspec(dllimport) void ExNotifyCallback(PVOID CallbackObject , PVOID Argument1 , PVOID Argument2 ) ; #line 11474 typedef GUID UUID ; __declspec(dllimport) NTSTATUS ExUuidCreate(UUID * Uuid ) ; #line 11596 extern PBOOLEAN Mm64BitPhysicalAddress ; #line 11862 typedef enum _MM_SYSTEM_SIZE { MmSmallSystem, MmMediumSystem, MmLargeSystem } MM_SYSTEMSIZE ; __declspec(dllimport) MM_SYSTEMSIZE MmQuerySystemSize(void ) ; #line 11876 __declspec(dllimport) BOOLEAN MmIsThisAnNtAsSystem(void ) ; #line 11884 typedef enum _LOCK_OPERATION { IoReadAccess, IoWriteAccess, IoModifyAccess } LOCK_OPERATION ; #line 11891 __declspec(dllimport) void MmProbeAndLockProcessPages(PMDL MemoryDescriptorList , PEPROCESS Process , KPROCESSOR_MODE AccessMode , LOCK_OPERATION Operation ) ; #line 11906 __declspec(dllimport) void MmProbeAndLockPages(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode , LOCK_OPERATION Operation ) ; #line 11915 __declspec(dllimport) void MmUnlockPages(PMDL MemoryDescriptorList ) ; #line 11921 __declspec(dllimport) void MmBuildMdlForNonPagedPool(PMDL MemoryDescriptorList ) ; #line 11927 __declspec(dllimport) PVOID MmMapLockedPages(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode ) ; #line 11934 __declspec(dllimport) PVOID MmGetSystemRoutineAddress(PUNICODE_STRING SystemRoutineName ) ; #line 11942 __declspec(dllimport) NTSTATUS MmMapUserAddressesToPage(PVOID BaseAddress , SIZE_T NumberOfBytes , PVOID PageAddress ) ; #line 11970 typedef enum _MM_PAGE_PRIORITY { LowPagePriority, NormalPagePriority = 16, HighPagePriority = 32 } MM_PAGE_PRIORITY ; #line 11979 __declspec(dllimport) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode , MEMORY_CACHING_TYPE CacheType , PVOID BaseAddress , ULONG BugCheckOnFailure , MM_PAGE_PRIORITY Priority ) ; #line 11990 __declspec(dllimport) void MmUnmapLockedPages(PVOID BaseAddress , PMDL MemoryDescriptorList ) ; #line 11999 typedef struct _PHYSICAL_MEMORY_RANGE { PHYSICAL_ADDRESS BaseAddress ; LARGE_INTEGER NumberOfBytes ; } PHYSICAL_MEMORY_RANGE , * PPHYSICAL_MEMORY_RANGE ; __declspec(dllimport) NTSTATUS MmAddPhysicalMemory(PPHYSICAL_ADDRESS StartAddress , PLARGE_INTEGER NumberOfBytes ) ; #line 12011 __declspec(dllimport) NTSTATUS MmRemovePhysicalMemory(PPHYSICAL_ADDRESS StartAddress , PLARGE_INTEGER NumberOfBytes ) ; #line 12018 __declspec(dllimport) PPHYSICAL_MEMORY_RANGE MmGetPhysicalMemoryRanges(void ) ; #line 12024 __declspec(dllimport) PMDL MmAllocatePagesForMdl(PHYSICAL_ADDRESS LowAddress , PHYSICAL_ADDRESS HighAddress , PHYSICAL_ADDRESS SkipBytes , SIZE_T TotalBytes ) ; #line 12033 __declspec(dllimport) void MmFreePagesFromMdl(PMDL MemoryDescriptorList ) ; #line 12041 __declspec(dllimport) PVOID MmMapIoSpace(PHYSICAL_ADDRESS PhysicalAddress , SIZE_T NumberOfBytes , MEMORY_CACHING_TYPE CacheType ) ; #line 12049 __declspec(dllimport) void MmUnmapIoSpace(PVOID BaseAddress , SIZE_T NumberOfBytes ) ; #line 12057 __declspec(dllimport) PVOID MmMapVideoDisplay(PHYSICAL_ADDRESS PhysicalAddress , SIZE_T NumberOfBytes , MEMORY_CACHING_TYPE CacheType ) ; #line 12065 __declspec(dllimport) void MmUnmapVideoDisplay(PVOID BaseAddress , SIZE_T NumberOfBytes ) ; #line 12072 __declspec(dllimport) PHYSICAL_ADDRESS MmGetPhysicalAddress(PVOID BaseAddress ) ; #line 12078 __declspec(dllimport) PVOID MmGetVirtualForPhysical(PHYSICAL_ADDRESS PhysicalAddress ) ; #line 12084 __declspec(dllimport) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS HighestAcceptableAddress ) ; #line 12091 __declspec(dllimport) PVOID MmAllocateContiguousMemorySpecifyCache(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS LowestAcceptableAddress , PHYSICAL_ADDRESS HighestAcceptableAddress , PHYSICAL_ADDRESS BoundaryAddressMultiple , MEMORY_CACHING_TYPE CacheType ) ; #line 12101 __declspec(dllimport) void MmFreeContiguousMemory(PVOID BaseAddress ) ; #line 12107 __declspec(dllimport) void MmFreeContiguousMemorySpecifyCache(PVOID BaseAddress , SIZE_T NumberOfBytes , MEMORY_CACHING_TYPE CacheType ) ; #line 12116 __declspec(dllimport) PVOID MmAllocateNonCachedMemory(SIZE_T NumberOfBytes ) ; #line 12122 __declspec(dllimport) void MmFreeNonCachedMemory(PVOID BaseAddress , SIZE_T NumberOfBytes ) ; #line 12129 __declspec(dllimport) BOOLEAN MmIsAddressValid(PVOID VirtualAddress ) ; #line 12135 __declspec(dllimport) BOOLEAN MmIsNonPagedSystemAddressValid(PVOID VirtualAddress ) ; #line 12143 __declspec(dllimport) SIZE_T MmSizeOfMdl(PVOID Base , SIZE_T Length ) ; #line 12150 __declspec(dllimport) PMDL MmCreateMdl(PMDL MemoryDescriptorList , PVOID Base , SIZE_T Length ) ; #line 12158 __declspec(dllimport) PVOID MmLockPagableDataSection(PVOID AddressWithinSection ) ; #line 12166 __declspec(dllimport) void MmLockPagableSectionByHandle(PVOID ImageSectionHandle ) ; #line 12172 __declspec(dllimport) void MmResetDriverPaging(PVOID AddressWithinSection ) ; #line 12179 __declspec(dllimport) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ; #line 12185 __declspec(dllimport) void MmUnlockPagableImageSection(PVOID ImageSectionHandle ) ; #line 12193 __declspec(dllimport) HANDLE MmSecureVirtualMemory(PVOID Address , SIZE_T Size , ULONG ProbeMode ) ; #line 12201 __declspec(dllimport) void MmUnsecureVirtualMemory(HANDLE SecureHandle ) ; #line 12207 __declspec(dllimport) NTSTATUS MmMapViewInSystemSpace(PVOID Section , PVOID * MappedBase , PSIZE_T ViewSize ) ; #line 12215 __declspec(dllimport) NTSTATUS MmUnmapViewInSystemSpace(PVOID MappedBase ) ; #line 12221 __declspec(dllimport) NTSTATUS MmMapViewInSessionSpace(PVOID Section , PVOID * MappedBase , PSIZE_T ViewSize ) ; #line 12229 __declspec(dllimport) NTSTATUS MmUnmapViewInSessionSpace(PVOID MappedBase ) ; #line 12385 typedef NTSTATUS ( * PMM_DLL_INITIALIZE )(PUNICODE_STRING RegistryPath ) ; #line 12389 typedef NTSTATUS ( * PMM_DLL_UNLOAD )(void ) ; #line 12399 struct _DRIVER_OBJECT ; __declspec(dllimport) LOGICAL MmIsDriverVerifying(struct _DRIVER_OBJECT * DriverObject ) ; #line 12411 typedef enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor, QuerySecurityDescriptor, DeleteSecurityDescriptor, AssignSecurityDescriptor } SECURITY_OPERATION_CODE , * PSECURITY_OPERATION_CODE ; #line 12426 typedef struct _SECURITY_SUBJECT_CONTEXT { PACCESS_TOKEN ClientToken ; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ; PACCESS_TOKEN PrimaryToken ; PVOID ProcessAuditId ; } SECURITY_SUBJECT_CONTEXT , * PSECURITY_SUBJECT_CONTEXT ; #line 12448 typedef struct _INITIAL_PRIVILEGE_SET { ULONG PrivilegeCount ; ULONG Control ; LUID_AND_ATTRIBUTES Privilege[3] ; } INITIAL_PRIVILEGE_SET , * PINITIAL_PRIVILEGE_SET ; #line 12462 typedef struct _ACCESS_STATE { LUID OperationID ; BOOLEAN SecurityEvaluated ; BOOLEAN GenerateAudit ; BOOLEAN GenerateOnClose ; BOOLEAN PrivilegesAllocated ; ULONG Flags ; ACCESS_MASK RemainingDesiredAccess ; ACCESS_MASK PreviouslyGrantedAccess ; ACCESS_MASK OriginalDesiredAccess ; SECURITY_SUBJECT_CONTEXT SubjectSecurityContext ; PSECURITY_DESCRIPTOR SecurityDescriptor ; PVOID AuxData ; union { INITIAL_PRIVILEGE_SET InitialPrivilegeSet ; PRIVILEGE_SET PrivilegeSet ; } Privileges ; BOOLEAN AuditPrivileges ; UNICODE_STRING ObjectName ; UNICODE_STRING ObjectTypeName ; } ACCESS_STATE , * PACCESS_STATE ; #line 12487 __declspec(dllimport) NTSTATUS SeAssignSecurity(PSECURITY_DESCRIPTOR ParentDescriptor , PSECURITY_DESCRIPTOR ExplicitDescriptor , PSECURITY_DESCRIPTOR * NewDescriptor , BOOLEAN IsDirectoryObject , PSECURITY_SUBJECT_CONTEXT SubjectContext , PGENERIC_MAPPING GenericMapping , POOL_TYPE PoolType ) ; #line 12499 __declspec(dllimport) NTSTATUS SeAssignSecurityEx(PSECURITY_DESCRIPTOR ParentDescriptor , PSECURITY_DESCRIPTOR ExplicitDescriptor , PSECURITY_DESCRIPTOR * NewDescriptor , GUID * ObjectType , BOOLEAN IsDirectoryObject , ULONG AutoInheritFlags , PSECURITY_SUBJECT_CONTEXT SubjectContext , PGENERIC_MAPPING GenericMapping , POOL_TYPE PoolType ) ; #line 12513 __declspec(dllimport) NTSTATUS SeDeassignSecurity(PSECURITY_DESCRIPTOR * SecurityDescriptor ) ; #line 12519 __declspec(dllimport) BOOLEAN SeAccessCheck(PSECURITY_DESCRIPTOR SecurityDescriptor , PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext , BOOLEAN SubjectContextLocked , ACCESS_MASK DesiredAccess , ACCESS_MASK PreviouslyGrantedAccess , PPRIVILEGE_SET * Privileges , PGENERIC_MAPPING GenericMapping , KPROCESSOR_MODE AccessMode , PACCESS_MASK GrantedAccess , PNTSTATUS AccessStatus ) ; #line 12535 __declspec(dllimport) BOOLEAN SeValidSecurityDescriptor(ULONG Length , PSECURITY_DESCRIPTOR SecurityDescriptor ) ; #line 12542 __declspec(dllimport) BOOLEAN SeSinglePrivilegeCheck(LUID PrivilegeValue , KPROCESSOR_MODE PreviousMode ) ; #line 12552 __declspec(dllimport) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle , ULONG DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , HANDLE ProcessHandle , PCLIENT_ID ClientId , PKSTART_ROUTINE StartRoutine , PVOID StartContext ) ; #line 12564 __declspec(dllimport) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ; #line 12571 typedef void ( * PCREATE_PROCESS_NOTIFY_ROUTINE )(HANDLE ParentId , HANDLE ProcessId , BOOLEAN Create ) ; #line 12579 NTSTATUS PsSetCreateProcessNotifyRoutine(PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine , BOOLEAN Remove ) ; #line 12585 typedef void ( * PCREATE_THREAD_NOTIFY_ROUTINE )(HANDLE ProcessId , HANDLE ThreadId , BOOLEAN Create ) ; #line 12593 NTSTATUS PsSetCreateThreadNotifyRoutine(PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine ) ; #line 12602 typedef struct _IMAGE_INFO { union { ULONG Properties ; struct { ULONG ImageAddressingMode : 8; ULONG SystemModeImage : 1; ULONG ImageMappedToAllPids : 1; ULONG Reserved : 22; } ; } ; PVOID ImageBase ; ULONG ImageSelector ; SIZE_T ImageSize ; ULONG ImageSectionNumber ; } IMAGE_INFO , * PIMAGE_INFO ; #line 12620 typedef void ( * PLOAD_IMAGE_NOTIFY_ROUTINE )(PUNICODE_STRING FullImageName , HANDLE ProcessId , PIMAGE_INFO ImageInfo ) ; #line 12628 NTSTATUS PsSetLoadImageNotifyRoutine(PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine ) ; #line 12633 HANDLE PsGetCurrentProcessId(void ) ; #line 12636 HANDLE PsGetCurrentThreadId(void ) ; #line 12639 BOOLEAN PsGetVersion(PULONG MajorVersion , PULONG MinorVersion , PULONG BuildNumber , PUNICODE_STRING CSDVersion ) ; #line 12859 typedef NTSTATUS ( * PIO_QUERY_DEVICE_ROUTINE )(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType , ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION * BusInformation , CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber , PKEY_VALUE_FULL_INFORMATION * ControllerInformation , CONFIGURATION_TYPE PeripheralType , ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION * PeripheralInformation ) ; #line 12878 typedef enum _IO_QUERY_DEVICE_DATA_FORMAT { IoQueryDeviceIdentifier = 0, IoQueryDeviceConfigurationData, IoQueryDeviceComponentInformation, IoQueryDeviceMaxData } IO_QUERY_DEVICE_DATA_FORMAT , * PIO_QUERY_DEVICE_DATA_FORMAT ; #line 12890 typedef enum _CREATE_FILE_TYPE { CreateFileTypeNone, CreateFileTypeNamedPipe, CreateFileTypeMailslot } CREATE_FILE_TYPE ; #line 12905 struct _DEVICE_DESCRIPTION ; #line 12906 struct _DEVICE_OBJECT ; #line 12907 struct _DMA_ADAPTER ; #line 12908 struct _DRIVER_OBJECT ; #line 12909 struct _DRIVE_LAYOUT_INFORMATION ; #line 12910 struct _DISK_PARTITION ; #line 12911 struct _FILE_OBJECT ; #line 12912 struct _IRP ; #line 12913 struct _SCSI_REQUEST_BLOCK ; #line 12919 typedef void ( * PIO_DPC_ROUTINE )(PKDPC Dpc , struct _DEVICE_OBJECT * DeviceObject , struct _IRP * Irp , PVOID Context ) ; #line 12932 typedef void ( * PIO_TIMER_ROUTINE )(struct _DEVICE_OBJECT * DeviceObject , PVOID Context ) ; #line 12943 typedef NTSTATUS ( * PDRIVER_INITIALIZE )(struct _DRIVER_OBJECT * DriverObject , PUNICODE_STRING RegistryPath ) ; #line 12955 typedef void ( * PDRIVER_REINITIALIZE )(struct _DRIVER_OBJECT * DriverObject , PVOID Context , ULONG Count ) ; #line 12968 typedef void ( * PDRIVER_CANCEL )(struct _DEVICE_OBJECT * DeviceObject , struct _IRP * Irp ) ; #line 12979 typedef NTSTATUS ( * PDRIVER_DISPATCH )(struct _DEVICE_OBJECT * DeviceObject , struct _IRP * Irp ) ; #line 12990 typedef void ( * PDRIVER_STARTIO )(struct _DEVICE_OBJECT * DeviceObject , struct _IRP * Irp ) ; #line 13001 typedef void ( * PDRIVER_UNLOAD )(struct _DRIVER_OBJECT * DriverObject ) ; #line 13011 typedef NTSTATUS ( * PDRIVER_ADD_DEVICE )(struct _DRIVER_OBJECT * DriverObject , struct _DEVICE_OBJECT * PhysicalDeviceObject ) ; #line 13025 typedef BOOLEAN ( * PFAST_IO_CHECK_IF_POSSIBLE )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , ULONG Length , BOOLEAN Wait , ULONG LockKey , BOOLEAN CheckForReadOperation , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13038 typedef BOOLEAN ( * PFAST_IO_READ )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13051 typedef BOOLEAN ( * PFAST_IO_WRITE )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13068 typedef BOOLEAN ( * PFAST_IO_QUERY_BASIC_INFO )(struct _FILE_OBJECT * FileObject , BOOLEAN Wait , PFILE_BASIC_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13078 typedef BOOLEAN ( * PFAST_IO_QUERY_STANDARD_INFO )(struct _FILE_OBJECT * FileObject , BOOLEAN Wait , PFILE_STANDARD_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13092 typedef BOOLEAN ( * PFAST_IO_LOCK )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key , BOOLEAN FailImmediately , BOOLEAN ExclusiveLock , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13106 typedef BOOLEAN ( * PFAST_IO_UNLOCK_SINGLE )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13118 typedef BOOLEAN ( * PFAST_IO_UNLOCK_ALL )(struct _FILE_OBJECT * FileObject , PEPROCESS ProcessId , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13127 typedef BOOLEAN ( * PFAST_IO_UNLOCK_ALL_BY_KEY )(struct _FILE_OBJECT * FileObject , PVOID ProcessId , ULONG Key , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13141 typedef BOOLEAN ( * PFAST_IO_DEVICE_CONTROL )(struct _FILE_OBJECT * FileObject , BOOLEAN Wait , PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer , ULONG OutputBufferLength , ULONG IoControlCode , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13161 typedef void ( * PFAST_IO_ACQUIRE_FILE )(struct _FILE_OBJECT * FileObject ) ; #line 13167 typedef void ( * PFAST_IO_RELEASE_FILE )(struct _FILE_OBJECT * FileObject ) ; #line 13179 typedef void ( * PFAST_IO_DETACH_DEVICE )(struct _DEVICE_OBJECT * SourceDevice , struct _DEVICE_OBJECT * TargetDevice ) ; #line 13193 typedef BOOLEAN ( * PFAST_IO_QUERY_NETWORK_OPEN_INFO )(struct _FILE_OBJECT * FileObject , BOOLEAN Wait , struct _FILE_NETWORK_OPEN_INFORMATION * Buffer , struct _IO_STATUS_BLOCK * IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13207 typedef BOOLEAN ( * PFAST_IO_MDL_READ )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PMDL * MdlChain , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13219 typedef BOOLEAN ( * PFAST_IO_MDL_READ_COMPLETE )(struct _FILE_OBJECT * FileObject , PMDL MdlChain , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13227 typedef BOOLEAN ( * PFAST_IO_PREPARE_MDL_WRITE )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PMDL * MdlChain , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13239 typedef BOOLEAN ( * PFAST_IO_MDL_WRITE_COMPLETE )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , PMDL MdlChain , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13253 typedef NTSTATUS ( * PFAST_IO_ACQUIRE_FOR_MOD_WRITE )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER EndingOffset , struct _ERESOURCE * * ResourceToRelease , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13262 typedef NTSTATUS ( * PFAST_IO_RELEASE_FOR_MOD_WRITE )(struct _FILE_OBJECT * FileObject , struct _ERESOURCE * ResourceToRelease , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13275 typedef NTSTATUS ( * PFAST_IO_ACQUIRE_FOR_CCFLUSH )(struct _FILE_OBJECT * FileObject , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13282 typedef NTSTATUS ( * PFAST_IO_RELEASE_FOR_CCFLUSH )(struct _FILE_OBJECT * FileObject , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13289 typedef BOOLEAN ( * PFAST_IO_READ_COMPRESSED )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PVOID Buffer , PMDL * MdlChain , PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO * CompressedDataInfo , ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13304 typedef BOOLEAN ( * PFAST_IO_WRITE_COMPRESSED )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PVOID Buffer , PMDL * MdlChain , PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO * CompressedDataInfo , ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13319 typedef BOOLEAN ( * PFAST_IO_MDL_READ_COMPLETE_COMPRESSED )(struct _FILE_OBJECT * FileObject , PMDL MdlChain , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13327 typedef BOOLEAN ( * PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED )(struct _FILE_OBJECT * FileObject , PLARGE_INTEGER FileOffset , PMDL MdlChain , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13336 typedef BOOLEAN ( * PFAST_IO_QUERY_OPEN )(struct _IRP * Irp , PFILE_NETWORK_OPEN_INFORMATION NetworkInformation , struct _DEVICE_OBJECT * DeviceObject ) ; #line 13350 typedef struct _FAST_IO_DISPATCH { ULONG SizeOfFastIoDispatch ; PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible ; PFAST_IO_READ FastIoRead ; PFAST_IO_WRITE FastIoWrite ; PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo ; PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo ; PFAST_IO_LOCK FastIoLock ; PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle ; PFAST_IO_UNLOCK_ALL FastIoUnlockAll ; PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey ; PFAST_IO_DEVICE_CONTROL FastIoDeviceControl ; PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection ; PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection ; PFAST_IO_DETACH_DEVICE FastIoDetachDevice ; PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo ; PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite ; PFAST_IO_MDL_READ MdlRead ; PFAST_IO_MDL_READ_COMPLETE MdlReadComplete ; PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite ; PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete ; PFAST_IO_READ_COMPRESSED FastIoReadCompressed ; PFAST_IO_WRITE_COMPRESSED FastIoWriteCompressed ; PFAST_IO_MDL_READ_COMPLETE_COMPRESSED MdlReadCompleteCompressed ; PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED MdlWriteCompleteCompressed ; PFAST_IO_QUERY_OPEN FastIoQueryOpen ; PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite ; PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush ; PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush ; } FAST_IO_DISPATCH , * PFAST_IO_DISPATCH ; #line 13386 typedef enum _IO_ALLOCATION_ACTION { KeepObject = 1, DeallocateObject, DeallocateObjectKeepRegisters } IO_ALLOCATION_ACTION , * PIO_ALLOCATION_ACTION ; #line 13396 typedef IO_ALLOCATION_ACTION ( * PDRIVER_CONTROL )(struct _DEVICE_OBJECT * DeviceObject , struct _IRP * Irp , PVOID MapRegisterBase , PVOID Context ) ; #line 13410 typedef struct _IO_SECURITY_CONTEXT { PSECURITY_QUALITY_OF_SERVICE SecurityQos ; PACCESS_STATE AccessState ; ACCESS_MASK DesiredAccess ; ULONG FullCreateOptions ; } IO_SECURITY_CONTEXT , * PIO_SECURITY_CONTEXT ; #line 13434 typedef struct _VPB { CSHORT Type ; CSHORT Size ; USHORT Flags ; USHORT VolumeLabelLength ; struct _DEVICE_OBJECT * DeviceObject ; struct _DEVICE_OBJECT * RealDevice ; ULONG SerialNumber ; ULONG ReferenceCount ; WCHAR VolumeLabel[32 * sizeof(WCHAR ) / sizeof(WCHAR )] ; } VPB , * PVPB ; #line 13482 typedef struct _ADAPTER_OBJECT * PADAPTER_OBJECT ; #line 13491 typedef struct _WAIT_CONTEXT_BLOCK { KDEVICE_QUEUE_ENTRY WaitQueueEntry ; PDRIVER_CONTROL DeviceRoutine ; PVOID DeviceContext ; ULONG NumberOfMapRegisters ; PVOID DeviceObject ; PVOID CurrentIrp ; PKDPC BufferChainingDpc ; } WAIT_CONTEXT_BLOCK , * PWAIT_CONTEXT_BLOCK ; #line 13503 typedef struct _CONTROLLER_OBJECT { CSHORT Type ; CSHORT Size ; PVOID ControllerExtension ; KDEVICE_QUEUE DeviceWaitQueue ; ULONG Spare1 ; LARGE_INTEGER Spare2 ; } CONTROLLER_OBJECT , * PCONTROLLER_OBJECT ; #line 13537 typedef struct _DEVICE_OBJECT { CSHORT Type ; USHORT Size ; LONG ReferenceCount ; struct _DRIVER_OBJECT * DriverObject ; struct _DEVICE_OBJECT * NextDevice ; struct _DEVICE_OBJECT * AttachedDevice ; struct _IRP * CurrentIrp ; PIO_TIMER Timer ; ULONG Flags ; ULONG Characteristics ; PVPB Vpb ; PVOID DeviceExtension ; ULONG DeviceType ; CCHAR StackSize ; union { LIST_ENTRY ListEntry ; WAIT_CONTEXT_BLOCK Wcb ; } Queue ; ULONG AlignmentRequirement ; KDEVICE_QUEUE DeviceQueue ; KDPC Dpc ; ULONG ActiveThreadCount ; PSECURITY_DESCRIPTOR SecurityDescriptor ; KEVENT DeviceLock ; USHORT SectorSize ; USHORT Spare1 ; struct _DEVOBJ_EXTENSION * DeviceObjectExtension ; PVOID Reserved ; } DEVICE_OBJECT ; #line 13575 typedef struct _DEVICE_OBJECT * PDEVICE_OBJECT ; #line 13578 struct _DEVICE_OBJECT_POWER_EXTENSION ; typedef struct _DEVOBJ_EXTENSION { CSHORT Type ; USHORT Size ; PDEVICE_OBJECT DeviceObject ; } DEVOBJ_EXTENSION , * PDEVOBJ_EXTENSION ; #line 13608 typedef struct _DRIVER_EXTENSION { struct _DRIVER_OBJECT * DriverObject ; PDRIVER_ADD_DEVICE AddDevice ; ULONG Count ; UNICODE_STRING ServiceKeyName ; } DRIVER_EXTENSION , * PDRIVER_EXTENSION ; #line 13645 typedef struct _DRIVER_OBJECT { CSHORT Type ; CSHORT Size ; PDEVICE_OBJECT DeviceObject ; ULONG Flags ; PVOID DriverStart ; ULONG DriverSize ; PVOID DriverSection ; PDRIVER_EXTENSION DriverExtension ; UNICODE_STRING DriverName ; PUNICODE_STRING HardwareDatabase ; PFAST_IO_DISPATCH FastIoDispatch ; PDRIVER_INITIALIZE DriverInit ; PDRIVER_STARTIO DriverStartIo ; PDRIVER_UNLOAD DriverUnload ; PDRIVER_DISPATCH MajorFunction[0x1b + 1] ; } DRIVER_OBJECT ; #line 13706 typedef struct _DRIVER_OBJECT * PDRIVER_OBJECT ; #line 13715 typedef struct _SECTION_OBJECT_POINTERS { PVOID DataSectionObject ; PVOID SharedCacheMap ; PVOID ImageSectionObject ; } SECTION_OBJECT_POINTERS ; #line 13720 typedef SECTION_OBJECT_POINTERS * PSECTION_OBJECT_POINTERS ; #line 13726 typedef struct _IO_COMPLETION_CONTEXT { PVOID Port ; PVOID Key ; } IO_COMPLETION_CONTEXT , * PIO_COMPLETION_CONTEXT ; #line 13759 typedef struct _FILE_OBJECT { CSHORT Type ; CSHORT Size ; PDEVICE_OBJECT DeviceObject ; PVPB Vpb ; PVOID FsContext ; PVOID FsContext2 ; PSECTION_OBJECT_POINTERS SectionObjectPointer ; PVOID PrivateCacheMap ; NTSTATUS FinalStatus ; struct _FILE_OBJECT * RelatedFileObject ; BOOLEAN LockOperation ; BOOLEAN DeletePending ; BOOLEAN ReadAccess ; BOOLEAN WriteAccess ; BOOLEAN DeleteAccess ; BOOLEAN SharedRead ; BOOLEAN SharedWrite ; BOOLEAN SharedDelete ; ULONG Flags ; UNICODE_STRING FileName ; LARGE_INTEGER CurrentByteOffset ; ULONG Waiters ; ULONG Busy ; PVOID LastLock ; KEVENT Lock ; KEVENT Event ; PIO_COMPLETION_CONTEXT CompletionContext ; } FILE_OBJECT ; #line 13788 typedef struct _FILE_OBJECT * PFILE_OBJECT ; #line 13828 typedef struct _IRP { CSHORT Type ; USHORT Size ; PMDL MdlAddress ; ULONG Flags ; union { struct _IRP * MasterIrp ; LONG IrpCount ; PVOID SystemBuffer ; } AssociatedIrp ; LIST_ENTRY ThreadListEntry ; IO_STATUS_BLOCK IoStatus ; KPROCESSOR_MODE RequestorMode ; BOOLEAN PendingReturned ; CHAR StackCount ; CHAR CurrentLocation ; BOOLEAN Cancel ; KIRQL CancelIrql ; CCHAR ApcEnvironment ; UCHAR AllocationFlags ; PIO_STATUS_BLOCK UserIosb ; PKEVENT UserEvent ; union { struct { PIO_APC_ROUTINE UserApcRoutine ; PVOID UserApcContext ; } AsynchronousParameters ; LARGE_INTEGER AllocationSize ; } Overlay ; PDRIVER_CANCEL CancelRoutine ; PVOID UserBuffer ; union { struct { union { KDEVICE_QUEUE_ENTRY DeviceQueueEntry ; struct { PVOID DriverContext[4] ; } ; } ; PETHREAD Thread ; PCHAR AuxiliaryBuffer ; struct { LIST_ENTRY ListEntry ; union { struct _IO_STACK_LOCATION * CurrentStackLocation ; ULONG PacketType ; } ; } ; PFILE_OBJECT OriginalFileObject ; } Overlay ; KAPC Apc ; PVOID CompletionKey ; } Tail ; } IRP , * PIRP ; #line 14078 typedef NTSTATUS ( * PIO_COMPLETION_ROUTINE )(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; #line 14163 typedef enum _DEVICE_RELATION_TYPE { BusRelations, EjectionRelations, PowerRelations, RemovalRelations, TargetDeviceRelation } DEVICE_RELATION_TYPE , * PDEVICE_RELATION_TYPE ; typedef struct _DEVICE_RELATIONS { ULONG Count ; PDEVICE_OBJECT Objects[1] ; } DEVICE_RELATIONS , * PDEVICE_RELATIONS ; typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined, DeviceUsageTypePaging, DeviceUsageTypeHibernation, DeviceUsageTypeDumpFile } DEVICE_USAGE_NOTIFICATION_TYPE ; #line 14185 typedef struct _INTERFACE { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; } INTERFACE , * PINTERFACE ; #line 14196 typedef struct _DEVICE_CAPABILITIES { USHORT Size ; USHORT Version ; ULONG DeviceD1 : 1; ULONG DeviceD2 : 1; ULONG LockSupported : 1; ULONG EjectSupported : 1; ULONG Removable : 1; ULONG DockDevice : 1; ULONG UniqueID : 1; ULONG SilentInstall : 1; ULONG RawDeviceOK : 1; ULONG SurpriseRemovalOK : 1; ULONG WakeFromD0 : 1; ULONG WakeFromD1 : 1; ULONG WakeFromD2 : 1; ULONG WakeFromD3 : 1; ULONG HardwareDisabled : 1; ULONG NonDynamic : 1; ULONG WarmEjectSupported : 1; ULONG Reserved : 15; ULONG Address ; ULONG UINumber ; DEVICE_POWER_STATE DeviceState[PowerSystemMaximum] ; SYSTEM_POWER_STATE SystemWake ; DEVICE_POWER_STATE DeviceWake ; ULONG D1Latency ; ULONG D2Latency ; ULONG D3Latency ; } DEVICE_CAPABILITIES , * PDEVICE_CAPABILITIES ; #line 14229 typedef struct _POWER_SEQUENCE { ULONG SequenceD1 ; ULONG SequenceD2 ; ULONG SequenceD3 ; } POWER_SEQUENCE , * PPOWER_SEQUENCE ; typedef enum { BusQueryDeviceID = 0, BusQueryHardwareIDs = 1, BusQueryCompatibleIDs = 2, BusQueryInstanceID = 3, BusQueryDeviceSerialNumber = 4 } BUS_QUERY_ID_TYPE , * PBUS_QUERY_ID_TYPE ; typedef ULONG PNP_DEVICE_STATE , * PPNP_DEVICE_STATE ; #line 14252 typedef enum { DeviceTextDescription = 0, DeviceTextLocationInformation = 1 } DEVICE_TEXT_TYPE , * PDEVICE_TEXT_TYPE ; #line 24 "C:/NTDDK/inc/pshpack4.h" #pragma warning(disable:4103) #pragma pack(push, 4) #line 14271 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _IO_STACK_LOCATION { UCHAR MajorFunction ; UCHAR MinorFunction ; UCHAR Flags ; UCHAR Control ; union { struct { PIO_SECURITY_CONTEXT SecurityContext ; ULONG Options ; USHORT FileAttributes ; USHORT ShareAccess ; ULONG EaLength ; } Create ; struct { ULONG Length ; ULONG Key ; LARGE_INTEGER ByteOffset ; } Read ; struct { ULONG Length ; ULONG Key ; LARGE_INTEGER ByteOffset ; } Write ; struct { ULONG Length ; FILE_INFORMATION_CLASS FileInformationClass ; } QueryFile ; struct { ULONG Length ; FILE_INFORMATION_CLASS FileInformationClass ; PFILE_OBJECT FileObject ; union { struct { BOOLEAN ReplaceIfExists ; BOOLEAN AdvanceOnly ; } ; ULONG ClusterCount ; HANDLE DeleteHandle ; } ; } SetFile ; struct { ULONG Length ; FS_INFORMATION_CLASS FsInformationClass ; } QueryVolume ; struct { ULONG OutputBufferLength ; ULONG InputBufferLength ; ULONG IoControlCode ; PVOID Type3InputBuffer ; } DeviceIoControl ; struct { SECURITY_INFORMATION SecurityInformation ; ULONG Length ; } QuerySecurity ; struct { SECURITY_INFORMATION SecurityInformation ; PSECURITY_DESCRIPTOR SecurityDescriptor ; } SetSecurity ; struct { PVPB Vpb ; PDEVICE_OBJECT DeviceObject ; } MountVolume ; struct { PVPB Vpb ; PDEVICE_OBJECT DeviceObject ; } VerifyVolume ; struct { struct _SCSI_REQUEST_BLOCK * Srb ; } Scsi ; struct { DEVICE_RELATION_TYPE Type ; } QueryDeviceRelations ; struct { const GUID * InterfaceType ; USHORT Size ; USHORT Version ; PINTERFACE Interface ; PVOID InterfaceSpecificData ; } QueryInterface ; struct { PDEVICE_CAPABILITIES Capabilities ; } DeviceCapabilities ; struct { PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList ; } FilterResourceRequirements ; struct { ULONG WhichSpace ; PVOID Buffer ; ULONG Offset ; ULONG Length ; } ReadWriteConfig ; struct { BOOLEAN Lock ; } SetLock ; struct { BUS_QUERY_ID_TYPE IdType ; } QueryId ; struct { DEVICE_TEXT_TYPE DeviceTextType ; LCID LocaleId ; } QueryDeviceText ; struct { BOOLEAN InPath ; BOOLEAN Reserved[3] ; DEVICE_USAGE_NOTIFICATION_TYPE Type ; } UsageNotification ; struct { SYSTEM_POWER_STATE PowerState ; } WaitWake ; struct { PPOWER_SEQUENCE PowerSequence ; } PowerSequence ; struct { ULONG SystemContext ; POWER_STATE_TYPE Type ; POWER_STATE State ; POWER_ACTION ShutdownType ; } Power ; struct { PCM_RESOURCE_LIST AllocatedResources ; PCM_RESOURCE_LIST AllocatedResourcesTranslated ; } StartDevice ; struct { ULONG_PTR ProviderId ; PVOID DataPath ; ULONG BufferSize ; PVOID Buffer ; } WMI ; struct { PVOID Argument1 ; PVOID Argument2 ; PVOID Argument3 ; PVOID Argument4 ; } Others ; } Parameters ; PDEVICE_OBJECT DeviceObject ; PFILE_OBJECT FileObject ; PIO_COMPLETION_ROUTINE CompletionRoutine ; PVOID Context ; } IO_STACK_LOCATION , * PIO_STACK_LOCATION ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 14615 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _SHARE_ACCESS { ULONG OpenCount ; ULONG Readers ; ULONG Writers ; ULONG Deleters ; ULONG SharedRead ; ULONG SharedWrite ; ULONG SharedDelete ; } SHARE_ACCESS , * PSHARE_ACCESS ; #line 14635 typedef struct _CONFIGURATION_INFORMATION { ULONG DiskCount ; ULONG FloppyCount ; ULONG CdRomCount ; ULONG TapeCount ; ULONG ScsiPortCount ; ULONG SerialCount ; ULONG ParallelCount ; BOOLEAN AtDiskPrimaryAddressClaimed ; BOOLEAN AtDiskSecondaryAddressClaimed ; ULONG Version ; ULONG MediumChangerCount ; } CONFIGURATION_INFORMATION , * PCONFIGURATION_INFORMATION ; #line 14681 __declspec(dllimport) void IoAcquireCancelSpinLock(PKIRQL Irql ) ; #line 14688 __declspec(dllimport) NTSTATUS IoAllocateAdapterChannel(PADAPTER_OBJECT AdapterObject , PDEVICE_OBJECT DeviceObject , ULONG NumberOfMapRegisters , PDRIVER_CONTROL ExecutionRoutine , PVOID Context ) ; #line 14698 __declspec(dllimport) void IoAllocateController(PCONTROLLER_OBJECT ControllerObject , PDEVICE_OBJECT DeviceObject , PDRIVER_CONTROL ExecutionRoutine , PVOID Context ) ; #line 14709 __declspec(dllimport) NTSTATUS IoAllocateDriverObjectExtension(PDRIVER_OBJECT DriverObject , PVOID ClientIdentificationAddress , ULONG DriverObjectExtensionSize , PVOID * DriverObjectExtension ) ; #line 14720 __declspec(dllimport) PVOID IoAllocateErrorLogEntry(PVOID IoObject , UCHAR EntrySize ) ; #line 14727 __declspec(dllimport) PIRP IoAllocateIrp(CCHAR StackSize , BOOLEAN ChargeQuota ) ; #line 14734 __declspec(dllimport) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length , BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota , PIRP Irp ) ; #line 14776 __declspec(dllimport) NTSTATUS IoAssignResources(PUNICODE_STRING RegistryPath , PUNICODE_STRING DriverClassName , PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT DeviceObject , PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources , PCM_RESOURCE_LIST * AllocatedResources ) ; #line 14788 __declspec(dllimport) NTSTATUS IoAttachDevice(PDEVICE_OBJECT SourceDevice , PUNICODE_STRING TargetDevice , PDEVICE_OBJECT * AttachedDevice ) ; #line 14798 __declspec(dllimport) NTSTATUS IoAttachDeviceByPointer(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice ) ; #line 14807 __declspec(dllimport) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice ) ; #line 14814 __declspec(dllimport) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject , PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset , PIO_STATUS_BLOCK IoStatusBlock ) ; #line 14825 __declspec(dllimport) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode , PDEVICE_OBJECT DeviceObject , PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer , ULONG OutputBufferLength , BOOLEAN InternalDeviceIoControl , PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock ) ; #line 14839 __declspec(dllimport) void IoBuildPartialMdl(PMDL SourceMdl , PMDL TargetMdl , PVOID VirtualAddress , ULONG Length ) ; #line 14848 typedef struct _BOOTDISK_INFORMATION { LONGLONG BootPartitionOffset ; LONGLONG SystemPartitionOffset ; ULONG BootDeviceSignature ; ULONG SystemDeviceSignature ; } BOOTDISK_INFORMATION , * PBOOTDISK_INFORMATION ; __declspec(dllimport) NTSTATUS IoGetBootDiskInformation(PBOOTDISK_INFORMATION BootDiskInformation , ULONG Size ) ; #line 14863 __declspec(dllimport) PIRP IoBuildSynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject , PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset , PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock ) ; #line 14875 __declspec(dllimport) NTSTATUS _fastcall IofCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 14886 __declspec(dllimport) BOOLEAN IoCancelIrp(PIRP Irp ) ; #line 14893 __declspec(dllimport) NTSTATUS IoCheckShareAccess(ACCESS_MASK DesiredAccess , ULONG DesiredShareAccess , PFILE_OBJECT FileObject , PSHARE_ACCESS ShareAccess , BOOLEAN Update ) ; #line 14903 __declspec(dllimport) void _fastcall IofCompleteRequest(PIRP Irp , CCHAR PriorityBoost ) ; #line 14916 __declspec(dllimport) NTSTATUS IoConnectInterrupt(PKINTERRUPT * InterruptObject , PKSERVICE_ROUTINE ServiceRoutine , PVOID ServiceContext , PKSPIN_LOCK SpinLock , ULONG Vector , KIRQL Irql , KIRQL SynchronizeIrql , KINTERRUPT_MODE InterruptMode , BOOLEAN ShareVector , KAFFINITY ProcessorEnableMask , BOOLEAN FloatingSave ) ; #line 14934 __declspec(dllimport) PCONTROLLER_OBJECT IoCreateController(ULONG Size ) ; #line 14942 __declspec(dllimport) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject , ULONG DeviceExtensionSize , PUNICODE_STRING DeviceName , ULONG DeviceType , ULONG DeviceCharacteristics , BOOLEAN Exclusive , PDEVICE_OBJECT * DeviceObject ) ; #line 14957 __declspec(dllimport) BOOLEAN IoIsWdmVersionAvailable(UCHAR MajorVersion , UCHAR MinorVersion ) ; #line 14966 __declspec(dllimport) NTSTATUS IoCreateFile(PHANDLE FileHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , PIO_STATUS_BLOCK IoStatusBlock , PLARGE_INTEGER AllocationSize , ULONG FileAttributes , ULONG ShareAccess , ULONG Disposition , ULONG CreateOptions , PVOID EaBuffer , ULONG EaLength , CREATE_FILE_TYPE CreateFileType , PVOID ExtraCreateParameters , ULONG Options ) ; #line 14986 __declspec(dllimport) PKEVENT IoCreateNotificationEvent(PUNICODE_STRING EventName , PHANDLE EventHandle ) ; #line 14993 __declspec(dllimport) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName ) ; #line 15002 __declspec(dllimport) PKEVENT IoCreateSynchronizationEvent(PUNICODE_STRING EventName , PHANDLE EventHandle ) ; #line 15011 __declspec(dllimport) NTSTATUS IoCreateUnprotectedSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName ) ; #line 15049 __declspec(dllimport) void IoDeleteController(PCONTROLLER_OBJECT ControllerObject ) ; #line 15057 __declspec(dllimport) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ; #line 15063 __declspec(dllimport) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ; #line 15069 __declspec(dllimport) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ; #line 15077 __declspec(dllimport) void IoDisconnectInterrupt(PKINTERRUPT InterruptObject ) ; #line 15084 __declspec(dllimport) void IoFreeController(PCONTROLLER_OBJECT ControllerObject ) ; #line 15092 __declspec(dllimport) void IoFreeIrp(PIRP Irp ) ; #line 15098 __declspec(dllimport) void IoFreeMdl(PMDL Mdl ) ; #line 15104 __declspec(dllimport) PDEVICE_OBJECT IoGetAttachedDeviceReference(PDEVICE_OBJECT DeviceObject ) ; #line 15110 __declspec(dllimport) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void ) ; #line 15141 __declspec(dllimport) PDEVICE_OBJECT IoGetDeviceToVerify(PETHREAD Thread ) ; #line 15149 __declspec(dllimport) PVOID IoGetDriverObjectExtension(PDRIVER_OBJECT DriverObject , PVOID ClientIdentificationAddress ) ; #line 15156 __declspec(dllimport) PEPROCESS IoGetCurrentProcess(void ) ; #line 15164 __declspec(dllimport) NTSTATUS IoGetDeviceObjectPointer(PUNICODE_STRING ObjectName , ACCESS_MASK DesiredAccess , PFILE_OBJECT * FileObject , PDEVICE_OBJECT * DeviceObject ) ; #line 15173 __declspec(dllimport) struct _DMA_ADAPTER * IoGetDmaAdapter(PDEVICE_OBJECT PhysicalDeviceObject , struct _DEVICE_DESCRIPTION * DeviceDescription , PULONG NumberOfMapRegisters ) ; #line 15183 __declspec(dllimport) PGENERIC_MAPPING IoGetFileObjectGenericMapping(void ) ; #line 15228 __declspec(dllimport) PVOID IoGetInitialStack(void ) ; #line 15234 __declspec(dllimport) void IoGetStackLimits(PULONG_PTR LowLimit , PULONG_PTR HighLimit ) ; #line 15246 __inline ULONG_PTR IoGetRemainingStackSize(void ) { #line 15252 ULONG_PTR Top ; ULONG_PTR Bottom ; #line 15255 IoGetStackLimits(& Bottom, & Top); return (ULONG_PTR )(& Top) - Bottom; } #line 15286 __declspec(dllimport) PDEVICE_OBJECT IoGetRelatedDeviceObject(PFILE_OBJECT FileObject ) ; #line 15326 __declspec(dllimport) void IoInitializeIrp(PIRP Irp , USHORT PacketSize , CCHAR StackSize ) ; #line 15334 __declspec(dllimport) NTSTATUS IoInitializeTimer(PDEVICE_OBJECT DeviceObject , PIO_TIMER_ROUTINE TimerRoutine , PVOID Context ) ; #line 15343 __declspec(dllimport) void IoReuseIrp(PIRP Irp , NTSTATUS Iostatus ) ; #line 15351 __declspec(dllimport) void IoCancelFileOpen(PDEVICE_OBJECT DeviceObject , PFILE_OBJECT FileObject ) ; #line 15390 __declspec(dllimport) PIRP IoMakeAssociatedIrp(PIRP Irp , CCHAR StackSize ) ; #line 15426 __declspec(dllimport) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType , PULONG BusNumber , PCONFIGURATION_TYPE ControllerType , PULONG ControllerNumber , PCONFIGURATION_TYPE PeripheralType , PULONG PeripheralNumber , PIO_QUERY_DEVICE_ROUTINE CalloutRoutine , PVOID Context ) ; #line 15439 __declspec(dllimport) void IoRaiseHardError(PIRP Irp , PVPB Vpb , PDEVICE_OBJECT RealDeviceObject ) ; #line 15447 __declspec(dllimport) BOOLEAN IoRaiseInformationalHardError(NTSTATUS ErrorStatus , PUNICODE_STRING String , PKTHREAD Thread ) ; #line 15455 __declspec(dllimport) BOOLEAN IoSetThreadHardErrorMode(BOOLEAN EnableHardErrors ) ; #line 15461 __declspec(dllimport) void IoRegisterBootDriverReinitialization(PDRIVER_OBJECT DriverObject , PDRIVER_REINITIALIZE DriverReinitializationRoutine , PVOID Context ) ; #line 15469 __declspec(dllimport) void IoRegisterDriverReinitialization(PDRIVER_OBJECT DriverObject , PDRIVER_REINITIALIZE DriverReinitializationRoutine , PVOID Context ) ; #line 15478 __declspec(dllimport) NTSTATUS IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject ) ; #line 15484 __declspec(dllimport) NTSTATUS IoRegisterLastChanceShutdownNotification(PDEVICE_OBJECT DeviceObject ) ; #line 15492 __declspec(dllimport) void IoReleaseCancelSpinLock(KIRQL Irql ) ; #line 15499 __declspec(dllimport) void IoRemoveShareAccess(PFILE_OBJECT FileObject , PSHARE_ACCESS ShareAccess ) ; #line 15507 __declspec(dllimport) NTSTATUS IoReportResourceUsage(PUNICODE_STRING DriverClassName , PDRIVER_OBJECT DriverObject , PCM_RESOURCE_LIST DriverList , ULONG DriverListSize , PDEVICE_OBJECT DeviceObject , PCM_RESOURCE_LIST DeviceList , ULONG DeviceListSize , BOOLEAN OverrideConflict , PBOOLEAN ConflictDetected ) ; #line 15641 __declspec(dllimport) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ; #line 15743 __declspec(dllimport) void IoSetShareAccess(ACCESS_MASK DesiredAccess , ULONG DesiredShareAccess , PFILE_OBJECT FileObject , PSHARE_ACCESS ShareAccess ) ; #line 15754 typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK ; #line 15756 typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK { BOOLEAN Removed ; BOOLEAN Reserved[3] ; LONG IoCount ; KEVENT RemoveEvent ; } IO_REMOVE_LOCK_COMMON_BLOCK ; #line 15764 typedef struct _IO_REMOVE_LOCK_DBG_BLOCK { LONG Signature ; LONG HighWatermark ; LONGLONG MaxLockedTicks ; LONG AllocateTag ; LIST_ENTRY LockList ; KSPIN_LOCK Spin ; LONG LowMemoryCount ; ULONG Reserved1[4] ; PVOID Reserved2 ; PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks ; } IO_REMOVE_LOCK_DBG_BLOCK ; typedef struct _IO_REMOVE_LOCK { IO_REMOVE_LOCK_COMMON_BLOCK Common ; } IO_REMOVE_LOCK , * PIO_REMOVE_LOCK ; #line 15787 __declspec(dllimport) void __stdcall IoInitializeRemoveLockEx(PIO_REMOVE_LOCK Lock , ULONG AllocateTag , ULONG MaxLockedMinutes , ULONG HighWatermark , ULONG RemlockSize ) ; #line 15808 __declspec(dllimport) NTSTATUS __stdcall IoAcquireRemoveLockEx(PIO_REMOVE_LOCK RemoveLock , PVOID Tag , PCSTR File , ULONG Line , ULONG RemlockSize ) ; #line 15857 __declspec(dllimport) void __stdcall IoReleaseRemoveLockEx(PIO_REMOVE_LOCK RemoveLock , PVOID Tag , ULONG RemlockSize ) ; #line 15893 __declspec(dllimport) void __stdcall IoReleaseRemoveLockAndWaitEx(PIO_REMOVE_LOCK RemoveLock , PVOID Tag , ULONG RemlockSize ) ; #line 15949 __declspec(dllimport) void IoStartNextPacket(PDEVICE_OBJECT DeviceObject , BOOLEAN Cancelable ) ; #line 15956 __declspec(dllimport) void IoStartNextPacketByKey(PDEVICE_OBJECT DeviceObject , BOOLEAN Cancelable , ULONG Key ) ; #line 15964 __declspec(dllimport) void IoStartPacket(PDEVICE_OBJECT DeviceObject , PIRP Irp , PULONG Key , PDRIVER_CANCEL CancelFunction ) ; #line 15975 __declspec(dllimport) void IoStartTimer(PDEVICE_OBJECT DeviceObject ) ; #line 15981 __declspec(dllimport) void IoStopTimer(PDEVICE_OBJECT DeviceObject ) ; #line 15988 __declspec(dllimport) void IoUnregisterShutdownNotification(PDEVICE_OBJECT DeviceObject ) ; #line 15996 __declspec(dllimport) void IoUpdateShareAccess(PFILE_OBJECT FileObject , PSHARE_ACCESS ShareAccess ) ; #line 16003 __declspec(dllimport) void IoWriteErrorLogEntry(PVOID ElEntry ) ; #line 16009 typedef struct _IO_WORKITEM * PIO_WORKITEM ; typedef void ( * PIO_WORKITEM_ROUTINE )(PDEVICE_OBJECT DeviceObject , PVOID Context ) ; #line 16018 PIO_WORKITEM IoAllocateWorkItem(PDEVICE_OBJECT DeviceObject ) ; #line 16023 void IoFreeWorkItem(PIO_WORKITEM IoWorkItem ) ; #line 16028 void IoQueueWorkItem(PIO_WORKITEM IoWorkItem , PIO_WORKITEM_ROUTINE WorkerRoutine , WORK_QUEUE_TYPE QueueType , PVOID Context ) ; #line 16040 __declspec(dllimport) NTSTATUS IoWMIRegistrationControl(PDEVICE_OBJECT DeviceObject , ULONG Action ) ; #line 16064 __declspec(dllimport) NTSTATUS IoWMIAllocateInstanceIds(GUID * Guid , ULONG InstanceCount , ULONG * FirstInstanceId ) ; #line 16072 __declspec(dllimport) NTSTATUS IoWMISuggestInstanceName(PDEVICE_OBJECT PhysicalDeviceObject , PUNICODE_STRING SymbolicLinkName , BOOLEAN CombineNames , PUNICODE_STRING SuggestedInstanceName ) ; #line 16081 __declspec(dllimport) NTSTATUS IoWMIWriteEvent(PVOID WnodeEventItem ) ; #line 16100 typedef enum { DevicePropertyDeviceDescription, DevicePropertyHardwareID, DevicePropertyCompatibleIDs, DevicePropertyBootConfiguration, DevicePropertyBootConfigurationTranslated, DevicePropertyClassName, DevicePropertyClassGuid, DevicePropertyDriverKeyName, DevicePropertyManufacturer, DevicePropertyFriendlyName, DevicePropertyLocationInformation, DevicePropertyPhysicalDeviceObjectName, DevicePropertyBusTypeGuid, DevicePropertyLegacyBusType, DevicePropertyBusNumber, DevicePropertyEnumeratorName, DevicePropertyAddress, DevicePropertyUINumber } DEVICE_REGISTRY_PROPERTY ; typedef BOOLEAN ( * PTRANSLATE_BUS_ADDRESS )(PVOID Context , PHYSICAL_ADDRESS BusAddress , ULONG Length , PULONG AddressSpace , PPHYSICAL_ADDRESS TranslatedAddress ) ; #line 16129 typedef struct _DMA_ADAPTER * ( * PGET_DMA_ADAPTER )(PVOID Context , struct _DEVICE_DESCRIPTION * DeviceDescriptor , PULONG NumberOfMapRegisters ) ; #line 16135 typedef ULONG ( * PGET_SET_DEVICE_DATA )(PVOID Context , ULONG DataType , PVOID Buffer , ULONG Offset , ULONG Length ) ; #line 16148 typedef struct _PNP_BUS_INFORMATION { GUID BusTypeGuid ; INTERFACE_TYPE LegacyBusType ; ULONG BusNumber ; } PNP_BUS_INFORMATION , * PPNP_BUS_INFORMATION ; #line 16162 typedef struct _LEGACY_BUS_INFORMATION { GUID BusTypeGuid ; INTERFACE_TYPE LegacyBusType ; ULONG BusNumber ; } LEGACY_BUS_INFORMATION , * PLEGACY_BUS_INFORMATION ; typedef struct _BUS_INTERFACE_STANDARD { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PTRANSLATE_BUS_ADDRESS TranslateBusAddress ; PGET_DMA_ADAPTER GetDmaAdapter ; PGET_SET_DEVICE_DATA SetBusData ; PGET_SET_DEVICE_DATA GetBusData ; } BUS_INTERFACE_STANDARD , * PBUS_INTERFACE_STANDARD ; #line 16190 typedef BOOLEAN ( * PGPE_SERVICE_ROUTINE )(PVOID , PVOID ) ; #line 16194 typedef NTSTATUS ( * PGPE_CONNECT_VECTOR )(PDEVICE_OBJECT , ULONG , KINTERRUPT_MODE , BOOLEAN , PGPE_SERVICE_ROUTINE , PVOID , PVOID ) ; #line 16203 typedef NTSTATUS ( * PGPE_DISCONNECT_VECTOR )(PVOID ) ; #line 16206 typedef NTSTATUS ( * PGPE_ENABLE_EVENT )(PDEVICE_OBJECT , PVOID ) ; #line 16210 typedef NTSTATUS ( * PGPE_DISABLE_EVENT )(PDEVICE_OBJECT , PVOID ) ; #line 16214 typedef NTSTATUS ( * PGPE_CLEAR_STATUS )(PDEVICE_OBJECT , PVOID ) ; #line 16218 typedef void ( * PDEVICE_NOTIFY_CALLBACK )(PVOID , ULONG ) ; #line 16222 typedef NTSTATUS ( * PREGISTER_FOR_DEVICE_NOTIFICATIONS )(PDEVICE_OBJECT , PDEVICE_NOTIFY_CALLBACK , PVOID ) ; #line 16227 typedef void ( * PUNREGISTER_FOR_DEVICE_NOTIFICATIONS )(PDEVICE_OBJECT , PDEVICE_NOTIFY_CALLBACK ) ; #line 16231 typedef struct _ACPI_INTERFACE_STANDARD { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PGPE_CONNECT_VECTOR GpeConnectVector ; PGPE_DISCONNECT_VECTOR GpeDisconnectVector ; PGPE_ENABLE_EVENT GpeEnableEvent ; PGPE_DISABLE_EVENT GpeDisableEvent ; PGPE_CLEAR_STATUS GpeClearStatus ; PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications ; PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications ; } ACPI_INTERFACE_STANDARD , * PACPI_INTERFACE_STANDARD ; #line 16255 typedef enum _ACPI_REG_TYPE { PM1a_ENABLE, PM1b_ENABLE, PM1a_STATUS, PM1b_STATUS, PM1a_CONTROL, PM1b_CONTROL, GP_STATUS, GP_ENABLE, SMI_CMD, MaxRegType } ACPI_REG_TYPE , * PACPI_REG_TYPE ; typedef USHORT ( * PREAD_ACPI_REGISTER )(ACPI_REG_TYPE AcpiReg , ULONG Register ) ; #line 16272 typedef void ( * PWRITE_ACPI_REGISTER )(ACPI_REG_TYPE AcpiReg , ULONG Register , USHORT Value ) ; #line 16278 typedef struct ACPI_REGS_INTERFACE_STANDARD { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PREAD_ACPI_REGISTER ReadAcpiRegister ; PWRITE_ACPI_REGISTER WriteAcpiRegister ; } ACPI_REGS_INTERFACE_STANDARD , * PACPI_REGS_INTERFACE_STANDARD ; #line 16300 typedef struct { PVOID LinkNode ; ULONG StaticVector ; UCHAR Flags ; } ROUTING_TOKEN , * PROUTING_TOKEN ; #line 16314 typedef NTSTATUS ( * PGET_INTERRUPT_ROUTING )(PDEVICE_OBJECT Pdo , ULONG * Bus , ULONG * PciSlot , UCHAR * InterruptLine , UCHAR * InterruptPin , UCHAR * ClassCode , UCHAR * SubClassCode , PDEVICE_OBJECT * ParentPdo , ROUTING_TOKEN * RoutingToken , UCHAR * Flags ) ; #line 16329 typedef NTSTATUS ( * PSET_INTERRUPT_ROUTING_TOKEN )(PDEVICE_OBJECT Pdo , PROUTING_TOKEN RoutingToken ) ; #line 16336 typedef void ( * PUPDATE_INTERRUPT_LINE )(PDEVICE_OBJECT Pdo , UCHAR LineRegister ) ; #line 16343 typedef struct _INT_ROUTE_INTERFACE_STANDARD { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PGET_INTERRUPT_ROUTING GetInterruptRouting ; PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken ; PUPDATE_INTERRUPT_LINE UpdateInterruptLine ; } INT_ROUTE_INTERFACE_STANDARD , * PINT_ROUTE_INTERFACE_STANDARD ; #line 16366 typedef struct _IO_ASSIGNED_RESOURCES { ULONG Count ; PASSIGNED_RESOURCE AssignedResources[1] ; } IO_ASSIGNED_RESOURCES , * PIO_ASSIGNED_RESOURCES ; __declspec(dllimport) NTSTATUS IoGetAssignedResourcesForSuballocation(INTERFACE_TYPE InterfaceType , ULONG BusNumber , ULONG SlotNumber , PIO_RESOURCE_DESCRIPTOR ResourceDescriptor , PIO_ASSIGNED_RESOURCES * List ) ; #line 16381 __declspec(dllimport) NTSTATUS IoReportDetectedDevice(PDRIVER_OBJECT DriverObject , INTERFACE_TYPE LegacyBusType , ULONG BusNumber , ULONG SlotNumber , PCM_RESOURCE_LIST ResourceList , PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements , BOOLEAN ResourceAssigned , PDEVICE_OBJECT * DeviceObject ) ; #line 16396 __declspec(dllimport) void IoInvalidateDeviceRelations(PDEVICE_OBJECT DeviceObject , DEVICE_RELATION_TYPE Type ) ; #line 16403 __declspec(dllimport) void IoRequestDeviceEject(PDEVICE_OBJECT PhysicalDeviceObject ) ; #line 16409 __declspec(dllimport) NTSTATUS IoGetDeviceProperty(PDEVICE_OBJECT DeviceObject , DEVICE_REGISTRY_PROPERTY DeviceProperty , ULONG BufferLength , PVOID PropertyBuffer , PULONG ResultLength ) ; #line 16427 __declspec(dllimport) NTSTATUS IoOpenDeviceRegistryKey(PDEVICE_OBJECT DeviceObject , ULONG DevInstKeyType , ACCESS_MASK DesiredAccess , PHANDLE DevInstRegKey ) ; #line 16436 __declspec(dllimport) NTSTATUS __stdcall IoRegisterDeviceInterface(PDEVICE_OBJECT PhysicalDeviceObject , const GUID * InterfaceClassGuid , PUNICODE_STRING ReferenceString , PUNICODE_STRING SymbolicLinkName ) ; #line 16446 __declspec(dllimport) NTSTATUS IoOpenDeviceInterfaceRegistryKey(PUNICODE_STRING SymbolicLinkName , ACCESS_MASK DesiredAccess , PHANDLE DeviceInterfaceKey ) ; #line 16456 __declspec(dllimport) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName , BOOLEAN Enable ) ; #line 16465 __declspec(dllimport) NTSTATUS __stdcall IoGetDeviceInterfaces(const GUID * InterfaceClassGuid , PDEVICE_OBJECT PhysicalDeviceObject , ULONG Flags , PWSTR * SymbolicLinkList ) ; #line 16477 __declspec(dllimport) NTSTATUS __stdcall IoGetDeviceInterfaceAlias(PUNICODE_STRING SymbolicLinkName , const GUID * AliasInterfaceClassGuid , PUNICODE_STRING AliasSymbolicLinkName ) ; #line 16490 typedef enum _IO_NOTIFICATION_EVENT_CATEGORY { EventCategoryReserved, EventCategoryHardwareProfileChange, EventCategoryDeviceInterfaceChange, EventCategoryTargetDeviceChange } IO_NOTIFICATION_EVENT_CATEGORY ; #line 16504 typedef NTSTATUS ( * PDRIVER_NOTIFICATION_CALLBACK_ROUTINE )(PVOID NotificationStructure , PVOID Context ) ; #line 16512 __declspec(dllimport) NTSTATUS IoRegisterPlugPlayNotification(IO_NOTIFICATION_EVENT_CATEGORY EventCategory , ULONG EventCategoryFlags , PVOID EventCategoryData , PDRIVER_OBJECT DriverObject , PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine , PVOID Context , PVOID * NotificationEntry ) ; #line 16524 __declspec(dllimport) NTSTATUS IoUnregisterPlugPlayNotification(PVOID NotificationEntry ) ; #line 16530 __declspec(dllimport) NTSTATUS IoReportTargetDeviceChange(PDEVICE_OBJECT PhysicalDeviceObject , PVOID NotificationStructure ) ; #line 16537 typedef void ( * PDEVICE_CHANGE_COMPLETE_CALLBACK )(PVOID Context ) ; #line 16543 __declspec(dllimport) void IoInvalidateDeviceState(PDEVICE_OBJECT PhysicalDeviceObject ) ; #line 16559 __declspec(dllimport) NTSTATUS IoReportTargetDeviceChangeAsynchronous(PDEVICE_OBJECT PhysicalDeviceObject , PVOID NotificationStructure , PDEVICE_CHANGE_COMPLETE_CALLBACK Callback , PVOID Context ) ; #line 16573 typedef enum _ARBITER_ACTION { ArbiterActionTestAllocation, ArbiterActionRetestAllocation, ArbiterActionCommitAllocation, ArbiterActionRollbackAllocation, ArbiterActionQueryAllocatedResources, ArbiterActionWriteReservedResources, ArbiterActionQueryConflict, ArbiterActionQueryArbitrate, ArbiterActionAddReserved, ArbiterActionBootAllocation } ARBITER_ACTION , * PARBITER_ACTION ; typedef struct _ARBITER_CONFLICT_INFO { PDEVICE_OBJECT OwningObject ; ULONGLONG Start ; ULONGLONG End ; } ARBITER_CONFLICT_INFO , * PARBITER_CONFLICT_INFO ; #line 16608 typedef struct _ARBITER_PARAMETERS { union { struct { PLIST_ENTRY ArbitrationList ; ULONG AllocateFromCount ; PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom ; } TestAllocation ; struct { PLIST_ENTRY ArbitrationList ; ULONG AllocateFromCount ; PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom ; } RetestAllocation ; struct { PLIST_ENTRY ArbitrationList ; } BootAllocation ; struct { PCM_PARTIAL_RESOURCE_LIST * AllocatedResources ; } QueryAllocatedResources ; struct { PDEVICE_OBJECT PhysicalDeviceObject ; PIO_RESOURCE_DESCRIPTOR ConflictingResource ; PULONG ConflictCount ; PARBITER_CONFLICT_INFO * Conflicts ; } QueryConflict ; struct { PLIST_ENTRY ArbitrationList ; } QueryArbitrate ; struct { PDEVICE_OBJECT ReserveDevice ; } AddReserved ; } Parameters ; } ARBITER_PARAMETERS , * PARBITER_PARAMETERS ; #line 16719 typedef enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined = - 1, ArbiterRequestLegacyReported, ArbiterRequestHalReported, ArbiterRequestLegacyAssigned, ArbiterRequestPnpDetected, ArbiterRequestPnpEnumerated } ARBITER_REQUEST_SOURCE ; #line 16731 typedef enum _ARBITER_RESULT { ArbiterResultUndefined = - 1, ArbiterResultSuccess, ArbiterResultExternalConflict, ArbiterResultNullRequest } ARBITER_RESULT ; #line 16748 __declspec(dllimport) NTSTATUS IoReportResourceForDetection(PDRIVER_OBJECT DriverObject , PCM_RESOURCE_LIST DriverList , ULONG DriverListSize , PDEVICE_OBJECT DeviceObject , PCM_RESOURCE_LIST DeviceList , ULONG DeviceListSize , PBOOLEAN ConflictDetected ) ; #line 16761 typedef struct _ARBITER_LIST_ENTRY { LIST_ENTRY ListEntry ; ULONG AlternativeCount ; PIO_RESOURCE_DESCRIPTOR Alternatives ; PDEVICE_OBJECT PhysicalDeviceObject ; ARBITER_REQUEST_SOURCE RequestSource ; ULONG Flags ; LONG_PTR WorkSpace ; INTERFACE_TYPE InterfaceType ; ULONG SlotNumber ; ULONG BusNumber ; PCM_PARTIAL_RESOURCE_DESCRIPTOR Assignment ; PIO_RESOURCE_DESCRIPTOR SelectedAlternative ; ARBITER_RESULT Result ; } ARBITER_LIST_ENTRY , * PARBITER_LIST_ENTRY ; #line 16832 typedef NTSTATUS ( * PARBITER_HANDLER )(PVOID Context , ARBITER_ACTION Action , PARBITER_PARAMETERS Parameters ) ; #line 16853 typedef struct _ARBITER_INTERFACE { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PARBITER_HANDLER ArbiterHandler ; ULONG Flags ; } ARBITER_INTERFACE , * PARBITER_INTERFACE ; #line 16880 typedef enum _RESOURCE_TRANSLATION_DIRECTION { TranslateChildToParent, TranslateParentToChild } RESOURCE_TRANSLATION_DIRECTION ; #line 16889 typedef NTSTATUS ( * PTRANSLATE_RESOURCE_HANDLER )(PVOID Context , PCM_PARTIAL_RESOURCE_DESCRIPTOR Source , RESOURCE_TRANSLATION_DIRECTION Direction , ULONG AlternativesCount , IO_RESOURCE_DESCRIPTOR Alternatives[] , PDEVICE_OBJECT PhysicalDeviceObject , PCM_PARTIAL_RESOURCE_DESCRIPTOR Target ) ; #line 16901 typedef NTSTATUS ( * PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER )(PVOID Context , PIO_RESOURCE_DESCRIPTOR Source , PDEVICE_OBJECT PhysicalDeviceObject , PULONG TargetCount , PIO_RESOURCE_DESCRIPTOR * Target ) ; #line 16915 typedef struct _TRANSLATOR_INTERFACE { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PTRANSLATE_RESOURCE_HANDLER TranslateResources ; PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements ; } TRANSLATOR_INTERFACE , * PTRANSLATOR_INTERFACE ; #line 16931 typedef NTSTATUS ( * PLEGACY_DEVICE_DETECTION_HANDLER )(PVOID Context , INTERFACE_TYPE LegacyBusType , ULONG BusNumber , ULONG SlotNumber , PDEVICE_OBJECT * PhysicalDeviceObject ) ; #line 16945 typedef struct _LEGACY_DEVICE_DETECTION_INTERFACE { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection ; } LEGACY_DEVICE_DETECTION_INTERFACE , * PLEGACY_DEVICE_DETECTION_INTERFACE ; #line 16959 typedef struct _PLUGPLAY_NOTIFICATION_HEADER { USHORT Version ; USHORT Size ; GUID Event ; } PLUGPLAY_NOTIFICATION_HEADER , * PPLUGPLAY_NOTIFICATION_HEADER ; #line 16972 typedef struct _HWPROFILE_CHANGE_NOTIFICATION { USHORT Version ; USHORT Size ; GUID Event ; } HWPROFILE_CHANGE_NOTIFICATION , * PHWPROFILE_CHANGE_NOTIFICATION ; #line 16986 typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION { USHORT Version ; USHORT Size ; GUID Event ; GUID InterfaceClassGuid ; PUNICODE_STRING SymbolicLinkName ; } DEVICE_INTERFACE_CHANGE_NOTIFICATION , * PDEVICE_INTERFACE_CHANGE_NOTIFICATION ; #line 17006 typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION { USHORT Version ; USHORT Size ; GUID Event ; PFILE_OBJECT FileObject ; } TARGET_DEVICE_REMOVAL_NOTIFICATION , * PTARGET_DEVICE_REMOVAL_NOTIFICATION ; #line 17026 typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION { USHORT Version ; USHORT Size ; GUID Event ; PFILE_OBJECT FileObject ; LONG NameBufferOffset ; UCHAR CustomDataBuffer[1] ; } TARGET_DEVICE_CUSTOM_NOTIFICATION , * PTARGET_DEVICE_CUSTOM_NOTIFICATION ; #line 17054 typedef struct _DEVICE_DESCRIPTION { ULONG Version ; BOOLEAN Master ; BOOLEAN ScatterGather ; BOOLEAN DemandMode ; BOOLEAN AutoInitialize ; BOOLEAN Dma32BitAddresses ; BOOLEAN IgnoreCount ; BOOLEAN Reserved1 ; BOOLEAN Dma64BitAddresses ; ULONG BusNumber ; ULONG DmaChannel ; INTERFACE_TYPE InterfaceType ; DMA_WIDTH DmaWidth ; DMA_SPEED DmaSpeed ; ULONG MaximumLength ; ULONG DmaPort ; } DEVICE_DESCRIPTION , * PDEVICE_DESCRIPTION ; #line 17086 typedef BOOLEAN ( * PHAL_RESET_DISPLAY_PARAMETERS )(ULONG Columns , ULONG Rows ) ; #line 17093 __declspec(dllimport) void HalAcquireDisplayOwnership(PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters ) ; #line 17114 __declspec(dllimport) void KeFlushWriteBuffer(void ) ; #line 17124 __declspec(dllimport) NTSTATUS HalAssignSlotResources(PUNICODE_STRING RegistryPath , PUNICODE_STRING DriverClassName , PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT DeviceObject , INTERFACE_TYPE BusType , ULONG BusNumber , ULONG SlotNumber , PCM_RESOURCE_LIST * AllocatedResources ) ; #line 17137 __declspec(dllimport) ULONG HalGetInterruptVector(INTERFACE_TYPE InterfaceType , ULONG BusNumber , ULONG BusInterruptLevel , ULONG BusInterruptVector , PKIRQL Irql , PKAFFINITY Affinity ) ; #line 17148 __declspec(dllimport) ULONG HalSetBusData(BUS_DATA_TYPE BusDataType , ULONG BusNumber , ULONG SlotNumber , PVOID Buffer , ULONG Length ) ; #line 17159 __declspec(dllimport) ULONG HalSetBusDataByOffset(BUS_DATA_TYPE BusDataType , ULONG BusNumber , ULONG SlotNumber , PVOID Buffer , ULONG Offset , ULONG Length ) ; #line 17170 __declspec(dllimport) BOOLEAN HalTranslateBusAddress(INTERFACE_TYPE InterfaceType , ULONG BusNumber , PHYSICAL_ADDRESS BusAddress , PULONG AddressSpace , PPHYSICAL_ADDRESS TranslatedAddress ) ; #line 17196 __declspec(dllimport) PVOID HalAllocateCrashDumpRegisters(PADAPTER_OBJECT AdapterObject , PULONG NumberOfMapRegisters ) ; #line 17204 __declspec(dllimport) ULONG HalGetBusData(BUS_DATA_TYPE BusDataType , ULONG BusNumber , ULONG SlotNumber , PVOID Buffer , ULONG Length ) ; #line 17215 __declspec(dllimport) ULONG HalGetBusDataByOffset(BUS_DATA_TYPE BusDataType , ULONG BusNumber , ULONG SlotNumber , PVOID Buffer , ULONG Offset , ULONG Length ) ; #line 17226 __declspec(dllimport) PADAPTER_OBJECT HalGetAdapter(PDEVICE_DESCRIPTION DeviceDescription , PULONG NumberOfMapRegisters ) ; #line 17237 __declspec(dllimport) BOOLEAN HalMakeBeep(ULONG Frequency ) ; #line 17282 __declspec(dllimport) NTSTATUS IoReadPartitionTable(PDEVICE_OBJECT DeviceObject , ULONG SectorSize , BOOLEAN ReturnRecognizedPartitions , struct _DRIVE_LAYOUT_INFORMATION * * PartitionBuffer ) ; #line 17291 __declspec(dllimport) NTSTATUS IoSetPartitionInformation(PDEVICE_OBJECT DeviceObject , ULONG SectorSize , ULONG PartitionNumber , ULONG PartitionType ) ; #line 17300 __declspec(dllimport) NTSTATUS IoWritePartitionTable(PDEVICE_OBJECT DeviceObject , ULONG SectorSize , ULONG SectorsPerTrack , ULONG NumberOfHeads , struct _DRIVE_LAYOUT_INFORMATION * PartitionBuffer ) ; #line 17315 __declspec(dllimport) LARGE_INTEGER KeQueryPerformanceCounter(PLARGE_INTEGER PerformanceFrequency ) ; #line 17326 __declspec(dllimport) void KeStallExecutionProcessor(ULONG MicroSeconds ) ; #line 17333 typedef void ( * PDEVICE_CONTROL_COMPLETION )(struct _DEVICE_CONTROL_CONTEXT * ControlContext ) ; #line 17339 typedef struct _DEVICE_CONTROL_CONTEXT { NTSTATUS Status ; PDEVICE_HANDLER_OBJECT DeviceHandler ; PDEVICE_OBJECT DeviceObject ; ULONG ControlCode ; PVOID Buffer ; PULONG BufferLength ; PVOID Context ; } DEVICE_CONTROL_CONTEXT , * PDEVICE_CONTROL_CONTEXT ; typedef PBUS_HANDLER (_fastcall * pHalHandlerForBus )(INTERFACE_TYPE InterfaceType , ULONG BusNumber ) ; #line 17355 typedef void (_fastcall * pHalReferenceBusHandler )(PBUS_HANDLER BusHandler ) ; #line 17365 typedef enum _HAL_QUERY_INFORMATION_CLASS { HalInstalledBusInformation, HalProfileSourceInformation, HalInformationClassUnused1, HalPowerInformation, HalProcessorSpeedInformation, HalCallbackInformation, HalMapRegisterInformation, HalMcaLogInformation, HalFrameBufferCachingInformation, HalDisplayBiosInformation, HalProcessorFeatureInformation } HAL_QUERY_INFORMATION_CLASS , * PHAL_QUERY_INFORMATION_CLASS ; #line 17381 typedef enum _HAL_SET_INFORMATION_CLASS { HalProfileSourceInterval, HalProfileSourceInterruptHandler, HalMcaRegisterDriver } HAL_SET_INFORMATION_CLASS , * PHAL_SET_INFORMATION_CLASS ; #line 17388 typedef NTSTATUS ( * pHalQuerySystemInformation )(HAL_QUERY_INFORMATION_CLASS InformationClass , ULONG BufferSize , PVOID Buffer , PULONG ReturnedLength ) ; #line 17397 NTSTATUS HaliQuerySystemInformation(HAL_SET_INFORMATION_CLASS InformationClass , ULONG BufferSize , PVOID Buffer , PULONG ReturnedLength ) ; #line 17405 typedef NTSTATUS ( * pHalSetSystemInformation )(HAL_SET_INFORMATION_CLASS InformationClass , ULONG BufferSize , PVOID Buffer ) ; #line 17413 NTSTATUS HaliSetSystemInformation(HAL_SET_INFORMATION_CLASS InformationClass , ULONG BufferSize , PVOID Buffer ) ; #line 17420 typedef void (_fastcall * pHalExamineMBR )(PDEVICE_OBJECT DeviceObject , ULONG SectorSize , ULONG MBRTypeIdentifier , PVOID * Buffer ) ; #line 17429 typedef void (_fastcall * pHalIoAssignDriveLetters )(struct _LOADER_PARAMETER_BLOCK * LoaderBlock , PSTRING NtDeviceName , PUCHAR NtSystemPath , PSTRING NtSystemPathString ) ; #line 17438 typedef NTSTATUS (_fastcall * pHalIoReadPartitionTable )(PDEVICE_OBJECT DeviceObject , ULONG SectorSize , BOOLEAN ReturnRecognizedPartitions , struct _DRIVE_LAYOUT_INFORMATION * * PartitionBuffer ) ; #line 17447 typedef NTSTATUS (_fastcall * pHalIoSetPartitionInformation )(PDEVICE_OBJECT DeviceObject , ULONG SectorSize , ULONG PartitionNumber , ULONG PartitionType ) ; #line 17456 typedef NTSTATUS (_fastcall * pHalIoWritePartitionTable )(PDEVICE_OBJECT DeviceObject , ULONG SectorSize , ULONG SectorsPerTrack , ULONG NumberOfHeads , struct _DRIVE_LAYOUT_INFORMATION * PartitionBuffer ) ; #line 17466 typedef NTSTATUS ( * pHalQueryBusSlots )(PBUS_HANDLER BusHandler , ULONG BufferSize , PULONG SlotNumbers , PULONG ReturnedLength ) ; #line 17475 typedef NTSTATUS ( * pHalInitPnpDriver )(void ) ; #line 17481 NTSTATUS HaliInitPnpDriver(void ) ; #line 17486 typedef struct _PM_DISPATCH_TABLE { ULONG Signature ; ULONG Version ; PVOID Function[1] ; } PM_DISPATCH_TABLE , * PPM_DISPATCH_TABLE ; typedef NTSTATUS ( * pHalInitPowerManagement )(PPM_DISPATCH_TABLE PmDriverDispatchTable , PPM_DISPATCH_TABLE * PmHalDispatchTable ) ; #line 17499 NTSTATUS HaliInitPowerManagement(PPM_DISPATCH_TABLE PmDriverDispatchTable , PPM_DISPATCH_TABLE * PmHalDispatchTable ) ; #line 17505 typedef struct _DMA_ADAPTER * ( * pHalGetDmaAdapter )(PVOID Context , struct _DEVICE_DESCRIPTION * DeviceDescriptor , PULONG NumberOfMapRegisters ) ; #line 17513 struct _DMA_ADAPTER * HaliGetDmaAdapter(PVOID Context , struct _DEVICE_DESCRIPTION * DeviceDescriptor , PULONG NumberOfMapRegisters ) ; #line 17520 typedef NTSTATUS ( * pHalGetInterruptTranslator )(INTERFACE_TYPE ParentInterfaceType , ULONG ParentBusNumber , INTERFACE_TYPE BridgeInterfaceType , USHORT Size , USHORT Version , PTRANSLATOR_INTERFACE Translator , PULONG BridgeBusNumber ) ; #line 17532 NTSTATUS HaliGetInterruptTranslator(INTERFACE_TYPE ParentInterfaceType , ULONG ParentBusNumber , INTERFACE_TYPE BridgeInterfaceType , USHORT Size , USHORT Version , PTRANSLATOR_INTERFACE Translator , PULONG BridgeBusNumber ) ; #line 17543 typedef BOOLEAN ( * pHalTranslateBusAddress )(INTERFACE_TYPE InterfaceType , ULONG BusNumber , PHYSICAL_ADDRESS BusAddress , PULONG AddressSpace , PPHYSICAL_ADDRESS TranslatedAddress ) ; #line 17553 typedef NTSTATUS ( * pHalAssignSlotResources )(PUNICODE_STRING RegistryPath , PUNICODE_STRING DriverClassName , PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT DeviceObject , INTERFACE_TYPE BusType , ULONG BusNumber , ULONG SlotNumber , PCM_RESOURCE_LIST * AllocatedResources ) ; #line 17566 typedef void ( * pHalHaltSystem )(void ) ; #line 17572 typedef void ( * pHalResetDisplay )(void ) ; #line 17578 typedef BOOLEAN ( * pHalFindBusAddressTranslation )(PHYSICAL_ADDRESS BusAddress , PULONG AddressSpace , PPHYSICAL_ADDRESS TranslatedAddress , PULONG_PTR Context , BOOLEAN NextBus ) ; #line 17588 typedef struct { ULONG Version ; pHalQuerySystemInformation HalQuerySystemInformation ; pHalSetSystemInformation HalSetSystemInformation ; pHalQueryBusSlots HalQueryBusSlots ; ULONG Spare1 ; pHalExamineMBR HalExamineMBR ; pHalIoAssignDriveLetters HalIoAssignDriveLetters ; pHalIoReadPartitionTable HalIoReadPartitionTable ; pHalIoSetPartitionInformation HalIoSetPartitionInformation ; pHalIoWritePartitionTable HalIoWritePartitionTable ; pHalHandlerForBus HalReferenceHandlerForBus ; pHalReferenceBusHandler HalReferenceBusHandler ; pHalReferenceBusHandler HalDereferenceBusHandler ; pHalInitPnpDriver HalInitPnpDriver ; pHalInitPowerManagement HalInitPowerManagement ; pHalGetDmaAdapter HalGetDmaAdapter ; pHalGetInterruptTranslator HalGetInterruptTranslator ; } HAL_DISPATCH , * PHAL_DISPATCH ; #line 17613 extern PHAL_DISPATCH HalDispatchTable ; #line 17650 typedef struct _HAL_BUS_INFORMATION { INTERFACE_TYPE BusType ; BUS_DATA_TYPE ConfigurationType ; ULONG BusNumber ; ULONG Reserved ; } HAL_BUS_INFORMATION , * PHAL_BUS_INFORMATION ; #line 17658 typedef struct _HAL_PROFILE_SOURCE_INFORMATION { KPROFILE_SOURCE Source ; BOOLEAN Supported ; ULONG Interval ; } HAL_PROFILE_SOURCE_INFORMATION , * PHAL_PROFILE_SOURCE_INFORMATION ; #line 17665 typedef struct _HAL_PROFILE_SOURCE_INTERVAL { KPROFILE_SOURCE Source ; ULONG_PTR Interval ; } HAL_PROFILE_SOURCE_INTERVAL , * PHAL_PROFILE_SOURCE_INTERVAL ; #line 17671 typedef enum _HAL_DISPLAY_BIOS_INFORMATION { HalDisplayInt10Bios, HalDisplayEmulatedBios, HalDisplayNoBios } HAL_DISPLAY_BIOS_INFORMATION , * PHAL_DISPLAY_BIOS_INFORMATION ; #line 17678 typedef struct _HAL_POWER_INFORMATION { ULONG TBD ; } HAL_POWER_INFORMATION , * PHAL_POWER_INFORMATION ; #line 17683 typedef struct _HAL_PROCESSOR_SPEED_INFO { ULONG TBD ; } HAL_PROCESSOR_SPEED_INFORMATION , * PHAL_PROCESSOR_SPEED_INFORMATION ; #line 17688 typedef struct _HAL_CALLBACKS { PCALLBACK_OBJECT___0 SetSystemInformation ; PCALLBACK_OBJECT___0 BusCheck ; } HAL_CALLBACKS , * PHAL_CALLBACKS ; #line 17694 typedef struct _HAL_PROCESSOR_FEATURE { ULONG UsableFeatureBits ; } HAL_PROCESSOR_FEATURE ; #line 17706 typedef union _MCI_ADDR { struct { ULONG Address ; ULONG Reserved ; } ; ULONGLONG QuadPart ; } MCI_ADDR , * PMCI_ADDR ; #line 17716 typedef enum { HAL_MCE_RECORD, HAL_MCA_RECORD } MCA_EXCEPTION_TYPE ; #line 17726 typedef struct _MCA_EXCEPTION { ULONG VersionNumber ; MCA_EXCEPTION_TYPE ExceptionType ; LARGE_INTEGER TimeStamp ; ULONG ProcessorNumber ; union { struct { UCHAR BankNumber ; MCI_STATS Status ; MCI_ADDR Address ; ULONGLONG Misc ; } Mca ; struct { ULONGLONG Address ; ULONGLONG Type ; } Mce ; } u ; } MCA_EXCEPTION , * PMCA_EXCEPTION ; #line 17752 typedef void ( * PDRIVER_EXCPTN_CALLBACK )(PVOID Context , PMCA_EXCEPTION BankLog ) ; #line 17762 typedef struct _MCA_DRIVER_INFO { PDRIVER_EXCPTN_CALLBACK ExceptionCallback ; PKDEFERRED_ROUTINE DpcCallback ; PVOID DeviceContext ; } MCA_DRIVER_INFO , * PMCA_DRIVER_INFO ; #line 17772 typedef struct _SCATTER_GATHER_ELEMENT { PHYSICAL_ADDRESS Address ; ULONG Length ; ULONG_PTR Reserved ; } SCATTER_GATHER_ELEMENT , * PSCATTER_GATHER_ELEMENT ; #pragma warning(disable:4200) #line 17779 typedef struct _SCATTER_GATHER_LIST { ULONG NumberOfElements ; ULONG_PTR Reserved ; SCATTER_GATHER_ELEMENT Elements[] ; } SCATTER_GATHER_LIST , * PSCATTER_GATHER_LIST ; #line 17784 #pragma warning(default:4200) #line 17788 typedef struct _DMA_OPERATIONS * PDMA_OPERATIONS ; typedef struct _DMA_ADAPTER { USHORT Version ; USHORT Size ; PDMA_OPERATIONS DmaOperations ; } DMA_ADAPTER , * PDMA_ADAPTER ; #line 17797 typedef void ( * PPUT_DMA_ADAPTER )(PDMA_ADAPTER DmaAdapter ) ; #line 17801 typedef PVOID ( * PALLOCATE_COMMON_BUFFER )(PDMA_ADAPTER DmaAdapter , ULONG Length , PPHYSICAL_ADDRESS LogicalAddress , BOOLEAN CacheEnabled ) ; #line 17808 typedef void ( * PFREE_COMMON_BUFFER )(PDMA_ADAPTER DmaAdapter , ULONG Length , PHYSICAL_ADDRESS LogicalAddress , PVOID VirtualAddress , BOOLEAN CacheEnabled ) ; #line 17816 typedef NTSTATUS ( * PALLOCATE_ADAPTER_CHANNEL )(PDMA_ADAPTER DmaAdapter , PDEVICE_OBJECT DeviceObject , ULONG NumberOfMapRegisters , PDRIVER_CONTROL ExecutionRoutine , PVOID Context ) ; #line 17824 typedef BOOLEAN ( * PFLUSH_ADAPTER_BUFFERS )(PDMA_ADAPTER DmaAdapter , PMDL Mdl , PVOID MapRegisterBase , PVOID CurrentVa , ULONG Length , BOOLEAN WriteToDevice ) ; #line 17833 typedef void ( * PFREE_ADAPTER_CHANNEL )(PDMA_ADAPTER DmaAdapter ) ; #line 17837 typedef void ( * PFREE_MAP_REGISTERS )(PDMA_ADAPTER DmaAdapter , PVOID MapRegisterBase , ULONG NumberOfMapRegisters ) ; #line 17843 typedef PHYSICAL_ADDRESS ( * PMAP_TRANSFER )(PDMA_ADAPTER DmaAdapter , PMDL Mdl , PVOID MapRegisterBase , PVOID CurrentVa , PULONG Length , BOOLEAN WriteToDevice ) ; #line 17852 typedef ULONG ( * PGET_DMA_ALIGNMENT )(PDMA_ADAPTER DmaAdapter ) ; #line 17856 typedef ULONG ( * PREAD_DMA_COUNTER )(PDMA_ADAPTER DmaAdapter ) ; #line 17860 typedef void ( * PDRIVER_LIST_CONTROL )(struct _DEVICE_OBJECT * DeviceObject , struct _IRP * Irp , PSCATTER_GATHER_LIST ScatterGather , PVOID Context ) ; #line 17868 typedef NTSTATUS ( * PGET_SCATTER_GATHER_LIST )(PDMA_ADAPTER DmaAdapter , PDEVICE_OBJECT DeviceObject , PMDL Mdl , PVOID CurrentVa , ULONG Length , PDRIVER_LIST_CONTROL ExecutionRoutine , PVOID Context , BOOLEAN WriteToDevice ) ; #line 17880 typedef void ( * PPUT_SCATTER_GATHER_LIST )(PDMA_ADAPTER DmaAdapter , PSCATTER_GATHER_LIST ScatterGather , BOOLEAN WriteToDevice ) ; #line 17887 typedef struct _DMA_OPERATIONS { ULONG Size ; PPUT_DMA_ADAPTER PutDmaAdapter ; PALLOCATE_COMMON_BUFFER AllocateCommonBuffer ; PFREE_COMMON_BUFFER FreeCommonBuffer ; PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel ; PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers ; PFREE_ADAPTER_CHANNEL FreeAdapterChannel ; PFREE_MAP_REGISTERS FreeMapRegisters ; PMAP_TRANSFER MapTransfer ; PGET_DMA_ALIGNMENT GetDmaAlignment ; PREAD_DMA_COUNTER ReadDmaCounter ; PGET_SCATTER_GATHER_LIST GetScatterGatherList ; PPUT_SCATTER_GATHER_LIST PutScatterGatherList ; } DMA_OPERATIONS ; #line 18126 __declspec(dllimport) NTSTATUS HalAllocateAdapterChannel(PADAPTER_OBJECT AdapterObject , PWAIT_CONTEXT_BLOCK Wcb , ULONG NumberOfMapRegisters , PDRIVER_CONTROL ExecutionRoutine ) ; #line 18135 __declspec(dllimport) PVOID HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject , ULONG Length , PPHYSICAL_ADDRESS LogicalAddress , BOOLEAN CacheEnabled ) ; #line 18144 __declspec(dllimport) void HalFreeCommonBuffer(PADAPTER_OBJECT AdapterObject , ULONG Length , PHYSICAL_ADDRESS LogicalAddress , PVOID VirtualAddress , BOOLEAN CacheEnabled ) ; #line 18154 __declspec(dllimport) ULONG HalReadDmaCounter(PADAPTER_OBJECT AdapterObject ) ; #line 18160 __declspec(dllimport) BOOLEAN IoFlushAdapterBuffers(PADAPTER_OBJECT AdapterObject , PMDL Mdl , PVOID MapRegisterBase , PVOID CurrentVa , ULONG Length , BOOLEAN WriteToDevice ) ; #line 18171 __declspec(dllimport) void IoFreeAdapterChannel(PADAPTER_OBJECT AdapterObject ) ; #line 18177 __declspec(dllimport) void IoFreeMapRegisters(PADAPTER_OBJECT AdapterObject , PVOID MapRegisterBase , ULONG NumberOfMapRegisters ) ; #line 18185 __declspec(dllimport) PHYSICAL_ADDRESS IoMapTransfer(PADAPTER_OBJECT AdapterObject , PMDL Mdl , PVOID MapRegisterBase , PVOID CurrentVa , PULONG Length , BOOLEAN WriteToDevice ) ; #line 18197 NTSTATUS HalGetScatterGatherList(PADAPTER_OBJECT DmaAdapter , PDEVICE_OBJECT DeviceObject , PMDL Mdl , PVOID CurrentVa , ULONG Length , PDRIVER_LIST_CONTROL ExecutionRoutine , PVOID Context , BOOLEAN WriteToDevice ) ; #line 18209 void HalPutScatterGatherList(PADAPTER_OBJECT DmaAdapter , PSCATTER_GATHER_LIST ScatterGather , BOOLEAN WriteToDevice ) ; #line 18216 void HalPutDmaAdapter(PADAPTER_OBJECT DmaAdapter ) ; #line 18222 __declspec(dllimport) void PoSetSystemState(EXECUTION_STATE Flags ) ; #line 18228 __declspec(dllimport) PVOID PoRegisterSystemState(PVOID StateHandle , EXECUTION_STATE Flags ) ; #line 18235 typedef void ( * PREQUEST_POWER_COMPLETE )(PDEVICE_OBJECT DeviceObject , UCHAR MinorFunction , POWER_STATE PowerState , PVOID Context , PIO_STATUS_BLOCK IoStatus ) ; #line 18245 __declspec(dllimport) NTSTATUS PoRequestPowerIrp(PDEVICE_OBJECT DeviceObject , UCHAR MinorFunction , POWER_STATE PowerState , PREQUEST_POWER_COMPLETE CompletionFunction , PVOID Context , PIRP * Irp ) ; #line 18256 __declspec(dllimport) void PoUnregisterSystemState(PVOID StateHandle ) ; #line 18263 __declspec(dllimport) POWER_STATE PoSetPowerState(PDEVICE_OBJECT DeviceObject , POWER_STATE_TYPE Type , POWER_STATE State ) ; #line 18271 __declspec(dllimport) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 18278 __declspec(dllimport) void PoStartNextPowerIrp(PIRP Irp ) ; #line 18285 __declspec(dllimport) PULONG PoRegisterDeviceForIdleDetection(PDEVICE_OBJECT DeviceObject , ULONG ConservationIdleTime , ULONG PerformanceIdleTime , DEVICE_POWER_STATE State ) ; #line 18311 __declspec(dllimport) BOOLEAN FsRtlIsTotalDeviceFailure(NTSTATUS Status ) ; #line 18321 typedef struct _OBJECT_HANDLE_INFORMATION { ULONG HandleAttributes ; ACCESS_MASK GrantedAccess ; } OBJECT_HANDLE_INFORMATION , * POBJECT_HANDLE_INFORMATION ; __declspec(dllimport) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType , KPROCESSOR_MODE AccessMode , PVOID * Object , POBJECT_HANDLE_INFORMATION HandleInformation ) ; #line 18342 __declspec(dllimport) void _fastcall ObfReferenceObject(PVOID Object ) ; #line 18350 __declspec(dllimport) NTSTATUS ObReferenceObjectByPointer(PVOID Object , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType , KPROCESSOR_MODE AccessMode ) ; #line 18359 __declspec(dllimport) void _fastcall ObfDereferenceObject(PVOID Object ) ; #line 18366 NTSTATUS ObGetObjectSecurity(PVOID Object , PSECURITY_DESCRIPTOR * SecurityDescriptor , PBOOLEAN MemoryAllocated ) ; #line 18373 void ObReleaseObjectSecurity(PSECURITY_DESCRIPTOR SecurityDescriptor , BOOLEAN MemoryAllocated ) ; #line 18402 typedef struct _PCI_SLOT_NUMBER { union { struct { ULONG DeviceNumber : 5; ULONG FunctionNumber : 3; ULONG Reserved : 24; } bits ; ULONG AsULONG ; } u ; } PCI_SLOT_NUMBER , * PPCI_SLOT_NUMBER ; #line 18418 typedef struct _PCI_COMMON_CONFIG { USHORT VendorID ; USHORT DeviceID ; USHORT Command ; USHORT Status ; UCHAR RevisionID ; UCHAR ProgIf ; UCHAR SubClass ; UCHAR BaseClass ; UCHAR CacheLineSize ; UCHAR LatencyTimer ; UCHAR HeaderType ; UCHAR BIST ; union { struct _PCI_HEADER_TYPE_0 { ULONG BaseAddresses[6] ; ULONG CIS ; USHORT SubVendorID ; USHORT SubSystemID ; ULONG ROMBaseAddress ; UCHAR CapabilitiesPtr ; UCHAR Reserved1[3] ; ULONG Reserved2 ; UCHAR InterruptLine ; UCHAR InterruptPin ; UCHAR MinimumGrant ; UCHAR MaximumLatency ; } type0 ; struct _PCI_HEADER_TYPE_1 { ULONG BaseAddresses[2] ; UCHAR PrimaryBus ; UCHAR SecondaryBus ; UCHAR SubordinateBus ; UCHAR SecondaryLatency ; UCHAR IOBase ; UCHAR IOLimit ; USHORT SecondaryStatus ; USHORT MemoryBase ; USHORT MemoryLimit ; USHORT PrefetchBase ; USHORT PrefetchLimit ; ULONG PrefetchBaseUpper32 ; ULONG PrefetchLimitUpper32 ; USHORT IOBaseUpper16 ; USHORT IOLimitUpper16 ; UCHAR CapabilitiesPtr ; UCHAR Reserved1[3] ; ULONG ROMBaseAddress ; UCHAR InterruptLine ; UCHAR InterruptPin ; USHORT BridgeControl ; } type1 ; struct _PCI_HEADER_TYPE_2 { ULONG SocketRegistersBaseAddress ; UCHAR CapabilitiesPtr ; UCHAR Reserved ; USHORT SecondaryStatus ; UCHAR PrimaryBus ; UCHAR SecondaryBus ; UCHAR SubordinateBus ; UCHAR SecondaryLatency ; struct { ULONG Base ; ULONG Limit ; } Range[5 - 1] ; UCHAR InterruptLine ; UCHAR InterruptPin ; USHORT BridgeControl ; } type2 ; } u ; UCHAR DeviceSpecific[192] ; } PCI_COMMON_CONFIG , * PPCI_COMMON_CONFIG ; #line 18591 typedef struct _PCI_CAPABILITIES_HEADER { UCHAR CapabilityID ; UCHAR Next ; } PCI_CAPABILITIES_HEADER , * PPCI_CAPABILITIES_HEADER ; #line 18600 typedef struct _PCI_PMC { UCHAR Version : 3; UCHAR PMEClock : 1; UCHAR Rsvd1 : 1; UCHAR DeviceSpecificInitialization : 1; UCHAR Rsvd2 : 2; struct _PM_SUPPORT { UCHAR Rsvd2 : 1; UCHAR D1 : 1; UCHAR D2 : 1; UCHAR PMED0 : 1; UCHAR PMED1 : 1; UCHAR PMED2 : 1; UCHAR PMED3Hot : 1; UCHAR PMED3Cold : 1; } Support ; } PCI_PMC , * PPCI_PMC ; typedef struct _PCI_PMCSR { USHORT PowerState : 2; USHORT Rsvd1 : 6; USHORT PMEEnable : 1; USHORT DataSelect : 4; USHORT DataScale : 2; USHORT PMEStatus : 1; } PCI_PMCSR , * PPCI_PMCSR ; #line 18628 typedef struct _PCI_PMCSR_BSE { UCHAR Rsvd1 : 6; UCHAR D3HotSupportsStopClock : 1; UCHAR BusPowerClockControlEnabled : 1; } PCI_PMCSR_BSE , * PPCI_PMCSR_BSE ; #line 18635 typedef struct _PCI_PM_CAPABILITY { PCI_CAPABILITIES_HEADER Header ; union { PCI_PMC Capabilities ; USHORT AsUSHORT ; } PMC ; union { PCI_PMCSR ControlStatus ; USHORT AsUSHORT ; } PMCSR ; union { PCI_PMCSR_BSE BridgeSupport ; UCHAR AsUCHAR ; } PMCSR_BSE ; UCHAR Data ; } PCI_PM_CAPABILITY , * PPCI_PM_CAPABILITY ; #line 18679 typedef struct _PCI_AGP_CAPABILITY { PCI_CAPABILITIES_HEADER Header ; USHORT Minor : 4; USHORT Major : 4; USHORT Rsvd1 : 8; struct _PCI_AGP_STATUS { ULONG Rate : 3; ULONG Rsvd1 : 1; ULONG FastWrite : 1; ULONG FourGB : 1; ULONG Rsvd2 : 3; ULONG SideBandAddressing : 1; ULONG Rsvd3 : 14; ULONG RequestQueueDepthMaximum : 8; } AGPStatus ; struct _PCI_AGP_COMMAND { ULONG Rate : 3; ULONG Rsvd1 : 1; ULONG FastWriteEnable : 1; ULONG FourGBEnable : 1; ULONG Rsvd2 : 2; ULONG AGPEnable : 1; ULONG SBAEnable : 1; ULONG Rsvd3 : 14; ULONG RequestQueueDepth : 8; } AGPCommand ; } PCI_AGP_CAPABILITY , * PPCI_AGP_CAPABILITY ; #line 18720 typedef struct _PCI_MSI_CAPABILITY { PCI_CAPABILITIES_HEADER Header ; struct _PCI_MSI_MESSAGE_CONTROL { USHORT MSIEnable : 1; USHORT MultipleMessageCapable : 3; USHORT MultipleMessageEnable : 3; USHORT CapableOf64Bits : 1; USHORT Reserved : 8; } MessageControl ; union { struct _PCI_MSI_MESSAGE_ADDRESS { ULONG_PTR Reserved : 2; ULONG_PTR Address : 30; } Register ; ULONG_PTR Raw ; } MessageAddress ; union { struct _PCI_MSI_64BIT_DATA { ULONG MessageUpperAddress ; USHORT MessageData ; } Bit64 ; struct _PCI_MSI_32BIT_DATA { USHORT MessageData ; ULONG Unused ; } Bit32 ; } Data ; } PCI_MSI_CAPABILITY , * PPCI_PCI_CAPABILITY ; #line 18946 typedef void ( * PciPin2Line )(struct _BUS_HANDLER * BusHandler , struct _BUS_HANDLER * RootHandler , PCI_SLOT_NUMBER SlotNumber , PPCI_COMMON_CONFIG PciData ) ; #line 18954 typedef void ( * PciLine2Pin )(struct _BUS_HANDLER * BusHandler , struct _BUS_HANDLER * RootHandler , PCI_SLOT_NUMBER SlotNumber , PPCI_COMMON_CONFIG PciNewData , PPCI_COMMON_CONFIG PciOldData ) ; #line 18963 typedef void ( * PciReadWriteConfig )(struct _BUS_HANDLER * BusHandler , PCI_SLOT_NUMBER Slot , PVOID Buffer , ULONG Offset , ULONG Length ) ; #line 18975 typedef struct _PCIBUSDATA { ULONG Tag ; ULONG Version ; PciReadWriteConfig ReadConfig ; PciReadWriteConfig WriteConfig ; PciPin2Line Pin2Line ; PciLine2Pin Line2Pin ; PCI_SLOT_NUMBER ParentSlot ; PVOID Reserved[4] ; } PCIBUSDATA , * PPCIBUSDATA ; typedef ULONG ( * PCI_READ_WRITE_CONFIG )(PVOID Context , UCHAR BusOffset , ULONG Slot , PVOID Buffer , ULONG Offset , ULONG Length ) ; #line 18995 typedef void ( * PCI_PIN_TO_LINE )(PVOID Context , PPCI_COMMON_CONFIG PciData ) ; #line 19000 typedef void ( * PCI_LINE_TO_PIN )(PVOID Context , PPCI_COMMON_CONFIG PciNewData , PPCI_COMMON_CONFIG PciOldData ) ; #line 19006 typedef struct _PCI_BUS_INTERFACE_STANDARD { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PCI_READ_WRITE_CONFIG ReadConfig ; PCI_READ_WRITE_CONFIG WriteConfig ; PCI_PIN_TO_LINE PinToLine ; PCI_LINE_TO_PIN LineToPin ; } PCI_BUS_INTERFACE_STANDARD , * PPCI_BUS_INTERFACE_STANDARD ; #line 19028 typedef BOOLEAN ( * PPCI_IS_DEVICE_PRESENT )(USHORT VendorID , USHORT DeviceID , UCHAR RevisionID , USHORT SubVendorID , USHORT SubSystemID , ULONG Flags ) ; #line 19043 typedef struct _PCI_DEVICE_PRESENT_INTERFACE { USHORT Size ; USHORT Version ; PVOID Context ; PINTERFACE_REFERENCE InterfaceReference ; PINTERFACE_DEREFERENCE InterfaceDereference ; PPCI_IS_DEVICE_PRESENT IsDevicePresent ; } PCI_DEVICE_PRESENT_INTERFACE , * PPCI_DEVICE_PRESENT_INTERFACE ; #line 19066 extern POBJECT_TYPE * IoFileObjectType ; extern POBJECT_TYPE * ExEventObjectType ; extern POBJECT_TYPE * ExSemaphoreObjectType ; #line 19074 __declspec(dllimport) NTSTATUS __stdcall ZwCreateFile(PHANDLE FileHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , PIO_STATUS_BLOCK IoStatusBlock , PLARGE_INTEGER AllocationSize , ULONG FileAttributes , ULONG ShareAccess , ULONG CreateDisposition , ULONG CreateOptions , PVOID EaBuffer , ULONG EaLength ) ; #line 19091 __declspec(dllimport) NTSTATUS __stdcall ZwOpenFile(PHANDLE FileHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , PIO_STATUS_BLOCK IoStatusBlock , ULONG ShareAccess , ULONG OpenOptions ) ; #line 19103 __declspec(dllimport) NTSTATUS __stdcall ZwQueryInformationFile(HANDLE FileHandle , PIO_STATUS_BLOCK IoStatusBlock , PVOID FileInformation , ULONG Length , FILE_INFORMATION_CLASS FileInformationClass ) ; #line 19114 __declspec(dllimport) NTSTATUS __stdcall ZwSetInformationFile(HANDLE FileHandle , PIO_STATUS_BLOCK IoStatusBlock , PVOID FileInformation , ULONG Length , FILE_INFORMATION_CLASS FileInformationClass ) ; #line 19125 __declspec(dllimport) NTSTATUS __stdcall ZwReadFile(HANDLE FileHandle , HANDLE Event , PIO_APC_ROUTINE ApcRoutine , PVOID ApcContext , PIO_STATUS_BLOCK IoStatusBlock , PVOID Buffer , ULONG Length , PLARGE_INTEGER ByteOffset , PULONG Key ) ; #line 19140 __declspec(dllimport) NTSTATUS __stdcall ZwWriteFile(HANDLE FileHandle , HANDLE Event , PIO_APC_ROUTINE ApcRoutine , PVOID ApcContext , PIO_STATUS_BLOCK IoStatusBlock , PVOID Buffer , ULONG Length , PLARGE_INTEGER ByteOffset , PULONG Key ) ; #line 19155 __declspec(dllimport) NTSTATUS __stdcall ZwClose(HANDLE Handle ) ; #line 19162 __declspec(dllimport) NTSTATUS __stdcall ZwCreateDirectoryObject(PHANDLE DirectoryHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes ) ; #line 19171 __declspec(dllimport) NTSTATUS __stdcall ZwMakeTemporaryObject(HANDLE Handle ) ; #line 19178 __declspec(dllimport) NTSTATUS __stdcall ZwOpenSection(PHANDLE SectionHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes ) ; #line 19187 __declspec(dllimport) NTSTATUS __stdcall ZwMapViewOfSection(HANDLE SectionHandle , HANDLE ProcessHandle , PVOID * BaseAddress , ULONG ZeroBits , ULONG CommitSize , PLARGE_INTEGER SectionOffset , PSIZE_T ViewSize , SECTION_INHERIT InheritDisposition , ULONG AllocationType , ULONG Protect ) ; #line 19203 __declspec(dllimport) NTSTATUS __stdcall ZwUnmapViewOfSection(HANDLE ProcessHandle , PVOID BaseAddress ) ; #line 19211 __declspec(dllimport) NTSTATUS __stdcall ZwSetInformationThread(HANDLE ThreadHandle , THREADINFOCLASS ThreadInformationClass , PVOID ThreadInformation , ULONG ThreadInformationLength ) ; #line 19221 __declspec(dllimport) NTSTATUS __stdcall ZwCreateKey(PHANDLE KeyHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , ULONG TitleIndex , PUNICODE_STRING Class , ULONG CreateOptions , PULONG Disposition ) ; #line 19234 __declspec(dllimport) NTSTATUS __stdcall ZwOpenKey(PHANDLE KeyHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes ) ; #line 19243 __declspec(dllimport) NTSTATUS __stdcall ZwDeleteKey(HANDLE KeyHandle ) ; #line 19250 __declspec(dllimport) NTSTATUS __stdcall ZwEnumerateKey(HANDLE KeyHandle , ULONG Index , KEY_INFORMATION_CLASS KeyInformationClass , PVOID KeyInformation , ULONG Length , PULONG ResultLength ) ; #line 19262 __declspec(dllimport) NTSTATUS __stdcall ZwEnumerateValueKey(HANDLE KeyHandle , ULONG Index , KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass , PVOID KeyValueInformation , ULONG Length , PULONG ResultLength ) ; #line 19274 __declspec(dllimport) NTSTATUS __stdcall ZwFlushKey(HANDLE KeyHandle ) ; #line 19281 __declspec(dllimport) NTSTATUS __stdcall ZwQueryKey(HANDLE KeyHandle , KEY_INFORMATION_CLASS KeyInformationClass , PVOID KeyInformation , ULONG Length , PULONG ResultLength ) ; #line 19292 __declspec(dllimport) NTSTATUS __stdcall ZwQueryValueKey(HANDLE KeyHandle , PUNICODE_STRING ValueName , KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass , PVOID KeyValueInformation , ULONG Length , PULONG ResultLength ) ; #line 19304 __declspec(dllimport) NTSTATUS __stdcall ZwSetValueKey(HANDLE KeyHandle , PUNICODE_STRING ValueName , ULONG TitleIndex , ULONG Type , PVOID Data , ULONG DataSize ) ; #line 19316 __declspec(dllimport) NTSTATUS __stdcall ZwOpenSymbolicLinkObject(PHANDLE LinkHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes ) ; #line 19325 __declspec(dllimport) NTSTATUS __stdcall ZwQuerySymbolicLinkObject(HANDLE LinkHandle , PUNICODE_STRING LinkTarget , PULONG ReturnedLength ) ; #line 19334 NTSTATUS ZwCreateTimer(PHANDLE TimerHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , TIMER_TYPE TimerType ) ; #line 19342 NTSTATUS ZwOpenTimer(PHANDLE TimerHandle , ACCESS_MASK DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes ) ; #line 19349 NTSTATUS ZwCancelTimer(HANDLE TimerHandle , PBOOLEAN CurrentState ) ; #line 19355 NTSTATUS ZwSetTimer(HANDLE TimerHandle , PLARGE_INTEGER DueTime , PTIMER_APC_ROUTINE TimerApcRoutine , PVOID TimerContext , BOOLEAN WakeTimer , LONG Period , PBOOLEAN PreviousState ) ; #line 26 "C:/NTDDK/inc/ntddkbd.h" #pragma once #line 73 extern const GUID GUID_CLASS_KEYBOARD ; #line 80 typedef struct _KEYBOARD_INPUT_DATA { USHORT UnitId ; USHORT MakeCode ; USHORT Flags ; USHORT Reserved ; ULONG ExtraInformation ; } KEYBOARD_INPUT_DATA , * PKEYBOARD_INPUT_DATA ; #line 134 typedef struct _KEYBOARD_TYPEMATIC_PARAMETERS { USHORT UnitId ; USHORT Rate ; USHORT Delay ; } KEYBOARD_TYPEMATIC_PARAMETERS , * PKEYBOARD_TYPEMATIC_PARAMETERS ; #line 162 typedef struct _KEYBOARD_ID { UCHAR Type ; UCHAR Subtype ; } KEYBOARD_ID , * PKEYBOARD_ID ; typedef struct _KEYBOARD_ATTRIBUTES { KEYBOARD_ID KeyboardIdentifier ; USHORT KeyboardMode ; USHORT NumberOfFunctionKeys ; USHORT NumberOfIndicators ; USHORT NumberOfKeysTotal ; ULONG InputDataQueueLength ; KEYBOARD_TYPEMATIC_PARAMETERS KeyRepeatMinimum ; KEYBOARD_TYPEMATIC_PARAMETERS KeyRepeatMaximum ; } KEYBOARD_ATTRIBUTES , * PKEYBOARD_ATTRIBUTES ; #line 236 typedef struct _KEYBOARD_INDICATOR_PARAMETERS { USHORT UnitId ; USHORT LedFlags ; } KEYBOARD_INDICATOR_PARAMETERS , * PKEYBOARD_INDICATOR_PARAMETERS ; #line 258 typedef struct _INDICATOR_LIST { USHORT MakeCode ; USHORT IndicatorFlags ; } INDICATOR_LIST , * PINDICATOR_LIST ; #line 274 typedef struct _KEYBOARD_INDICATOR_TRANSLATION { USHORT NumberOfIndicatorKeys ; INDICATOR_LIST IndicatorList[1] ; } KEYBOARD_INDICATOR_TRANSLATION , * PKEYBOARD_INDICATOR_TRANSLATION ; #line 307 typedef struct _KEYBOARD_UNIT_ID_PARAMETER { USHORT UnitId ; } KEYBOARD_UNIT_ID_PARAMETER , * PKEYBOARD_UNIT_ID_PARAMETER ; #line 330 typedef struct _KEYBOARD_IME_STATUS { USHORT UnitId ; ULONG ImeOpen ; ULONG ImeConvMode ; } KEYBOARD_IME_STATUS , * PKEYBOARD_IME_STATUS ; #line 26 "C:/NTDDK/inc/ntddmou.h" #pragma once #line 63 extern const GUID GUID_CLASS_MOUSE ; #line 69 typedef struct _MOUSE_INPUT_DATA { USHORT UnitId ; USHORT Flags ; union { ULONG Buttons ; struct { USHORT ButtonFlags ; USHORT ButtonData ; } ; } ; ULONG RawButtons ; LONG LastX ; LONG LastY ; ULONG ExtraInformation ; } MOUSE_INPUT_DATA , * PMOUSE_INPUT_DATA ; #line 162 typedef struct _MOUSE_ATTRIBUTES { USHORT MouseIdentifier ; USHORT NumberOfButtons ; USHORT SampleRate ; ULONG InputDataQueueLength ; } MOUSE_ATTRIBUTES , * PMOUSE_ATTRIBUTES ; #line 211 typedef struct _MOUSE_UNIT_ID_PARAMETER { USHORT UnitId ; } MOUSE_UNIT_ID_PARAMETER , * PMOUSE_UNIT_ID_PARAMETER ; #line 67 "kbdmou.h" typedef struct _CONNECT_DATA { PDEVICE_OBJECT ClassDeviceObject ; PVOID ClassService ; } CONNECT_DATA , * PCONNECT_DATA ; #line 76 typedef void ( * PSERVICE_CALLBACK_ROUTINE )(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 , PVOID SystemArgument3 ) ; #line 10 "C:/NTDDK/inc/wmidata.h" extern const GUID MSWmi_MofData_GUID ; #line 13 typedef struct _MSWmi_MofData { ULONG Unused1 ; ULONG Unused2 ; ULONG Size ; ULONG Unused4 ; UCHAR BinaryMofData[1] ; } MSWmi_MofData , * PMSWmi_MofData ; #line 47 extern const GUID MSWmi_ProviderInfo_GUID ; #line 51 typedef struct _MSWmi_ProviderInfo { char VariableData[1] ; } MSWmi_ProviderInfo , * PMSWmi_ProviderInfo ; #line 63 extern const GUID MSWmi_PnPDeviceId_GUID ; #line 66 typedef struct _MSWmi_PnPDeviceId { CHAR VariableData[1] ; } MSWmi_PnPDeviceId , * PMSWmi_PnPDeviceId ; #line 80 extern const GUID MSWmi_PnPInstanceNames_GUID ; #line 83 typedef struct _MSWmi_PnPInstanceNames { ULONG Count ; WCHAR InstanceNameList[1] ; } MSWmi_PnPInstanceNames , * PMSWmi_PnPInstanceNames ; #line 102 extern const GUID MSSmBios_RawSMBiosTables_GUID ; #line 105 typedef struct _MSSmBios_RawSMBiosTables { BOOLEAN Used20CallingMethod ; UCHAR SmbiosMajorVersion ; UCHAR SmbiosMinorVersion ; UCHAR DmiRevision ; ULONG Size ; UCHAR SMBiosData[1] ; } MSSmBios_RawSMBiosTables , * PMSSmBios_RawSMBiosTables ; #line 144 extern const GUID MSPower_DeviceEnable_GUID ; #line 147 typedef struct _MSPower_DeviceEnable { BOOLEAN Enable ; } MSPower_DeviceEnable , * PMSPower_DeviceEnable ; #line 162 extern const GUID MSPower_DeviceWakeEnable_GUID ; #line 165 typedef struct _MSPower_DeviceWakeEnable { BOOLEAN Enable ; } MSPower_DeviceWakeEnable , * PMSPower_DeviceWakeEnable ; #line 179 extern const GUID MSNdis_NetworkAddress_GUID ; #line 182 typedef struct _MSNdis_NetworkAddress { UCHAR Address[6] ; } MSNdis_NetworkAddress , * PMSNdis_NetworkAddress ; #line 196 extern const GUID MSNdis_NetworkShortAddress_GUID ; #line 199 typedef struct _MSNdis_NetworkShortAddress { UCHAR Address[2] ; } MSNdis_NetworkShortAddress , * PMSNdis_NetworkShortAddress ; #line 213 extern const GUID MSNdis_NetworkLinkSpeed_GUID ; #line 216 typedef struct _MSNdis_NetworkLinkSpeed { ULONG Outbound ; ULONG Inbound ; } MSNdis_NetworkLinkSpeed , * PMSNdis_NetworkLinkSpeed ; #line 236 extern const GUID MSNdis_EnumerateAdapter_GUID ; #line 239 typedef struct _MSNdis_EnumerateAdapter { CHAR VariableData[1] ; } MSNdis_EnumerateAdapter , * PMSNdis_EnumerateAdapter ; #line 253 extern const GUID MSNdis_NotifyAdapterRemoval_GUID ; #line 256 typedef struct _MSNdis_NotifyAdapterRemoval { CHAR VariableData[1] ; } MSNdis_NotifyAdapterRemoval , * PMSNdis_NotifyAdapterRemoval ; #line 270 extern const GUID MSNdis_NotifyAdapterArrival_GUID ; #line 273 typedef struct _MSNdis_NotifyAdapterArrival { CHAR VariableData[1] ; } MSNdis_NotifyAdapterArrival , * PMSNdis_NotifyAdapterArrival ; #line 287 extern const GUID MSNdis_NdisEnumerateVc_GUID ; #line 291 typedef struct _MSNdis_NdisEnumerateVc { char VariableData[1] ; } MSNdis_NdisEnumerateVc , * PMSNdis_NdisEnumerateVc ; #line 303 extern const GUID MSNdis_NotifyVcRemoval_GUID ; #line 307 typedef struct _MSNdis_NotifyVcRemoval { char VariableData[1] ; } MSNdis_NotifyVcRemoval , * PMSNdis_NotifyVcRemoval ; #line 319 extern const GUID MSNdis_NotifyVcArrival_GUID ; #line 323 typedef struct _MSNdis_NotifyVcArrival { char VariableData[1] ; } MSNdis_NotifyVcArrival , * PMSNdis_NotifyVcArrival ; #line 335 extern const GUID MSNdis_HardwareStatus_GUID ; #line 338 typedef struct _MSNdis_HardwareStatus { ULONG NdisHardwareStatus ; } MSNdis_HardwareStatus , * PMSNdis_HardwareStatus ; #line 353 extern const GUID MSNdis_MediaSupported_GUID ; #line 356 typedef struct _MSNdis_MediaSupported { ULONG NumberElements ; ULONG NdisMediaSupported[1] ; } MSNdis_MediaSupported , * PMSNdis_MediaSupported ; #line 375 extern const GUID MSNdis_MediaInUse_GUID ; #line 378 typedef struct _MSNdis_MediaInUse { ULONG NumberElements ; ULONG NdisMediaInUse[1] ; } MSNdis_MediaInUse , * PMSNdis_MediaInUse ; #line 397 extern const GUID MSNdis_MaximumLookahead_GUID ; #line 400 typedef struct _MSNdis_MaximumLookahead { ULONG NdisMaximumLookahead ; } MSNdis_MaximumLookahead , * PMSNdis_MaximumLookahead ; #line 415 extern const GUID MSNdis_MaximumFrameSize_GUID ; #line 418 typedef struct _MSNdis_MaximumFrameSize { ULONG NdisMaximumFrameSize ; } MSNdis_MaximumFrameSize , * PMSNdis_MaximumFrameSize ; #line 433 extern const GUID MSNdis_LinkSpeed_GUID ; #line 436 typedef struct _MSNdis_LinkSpeed { ULONG NdisLinkSpeed ; } MSNdis_LinkSpeed , * PMSNdis_LinkSpeed ; #line 451 extern const GUID MSNdis_TransmitBufferSpace_GUID ; #line 454 typedef struct _MSNdis_TransmitBufferSpace { ULONG NdisTransmitBufferSpace ; } MSNdis_TransmitBufferSpace , * PMSNdis_TransmitBufferSpace ; #line 469 extern const GUID MSNdis_ReceiveBufferSpace_GUID ; #line 472 typedef struct _MSNdis_ReceiveBufferSpace { ULONG NdisReceiveBufferSpace ; } MSNdis_ReceiveBufferSpace , * PMSNdis_ReceiveBufferSpace ; #line 487 extern const GUID MSNdis_TransmitBlockSize_GUID ; #line 490 typedef struct _MSNdis_TransmitBlockSize { ULONG NdisTransmitBlockSize ; } MSNdis_TransmitBlockSize , * PMSNdis_TransmitBlockSize ; #line 505 extern const GUID MSNdis_ReceiveBlockSize_GUID ; #line 508 typedef struct _MSNdis_ReceiveBlockSize { ULONG NdisReceiveBlockSize ; } MSNdis_ReceiveBlockSize , * PMSNdis_ReceiveBlockSize ; #line 523 extern const GUID MSNdis_VendorID_GUID ; #line 526 typedef struct _MSNdis_VendorID { ULONG NdisVendorID ; } MSNdis_VendorID , * PMSNdis_VendorID ; #line 541 extern const GUID MSNdis_VendorDescription_GUID ; #line 544 typedef struct _MSNdis_VendorDescription { CHAR VariableData[1] ; } MSNdis_VendorDescription , * PMSNdis_VendorDescription ; #line 558 extern const GUID MSNdis_CurrentPacketFilter_GUID ; #line 561 typedef struct _MSNdis_CurrentPacketFilter { ULONG NdisCurrentPacketFilter ; } MSNdis_CurrentPacketFilter , * PMSNdis_CurrentPacketFilter ; #line 576 extern const GUID MSNdis_CurrentLookahead_GUID ; #line 579 typedef struct _MSNdis_CurrentLookahead { ULONG NdisCurrentLookahead ; } MSNdis_CurrentLookahead , * PMSNdis_CurrentLookahead ; #line 594 extern const GUID MSNdis_DriverVersion_GUID ; #line 597 typedef struct _MSNdis_DriverVersion { USHORT NdisDriverVersion ; } MSNdis_DriverVersion , * PMSNdis_DriverVersion ; #line 612 extern const GUID MSNdis_MaximumTotalSize_GUID ; #line 615 typedef struct _MSNdis_MaximumTotalSize { ULONG NdisMaximumTotalSize ; } MSNdis_MaximumTotalSize , * PMSNdis_MaximumTotalSize ; #line 630 extern const GUID MSNdis_MacOptions_GUID ; #line 633 typedef struct _MSNdis_MacOptions { ULONG NdisMacOptions ; } MSNdis_MacOptions , * PMSNdis_MacOptions ; #line 648 extern const GUID MSNdis_MediaConnectStatus_GUID ; #line 651 typedef struct _MSNdis_MediaConnectStatus { ULONG NdisMediaConnectStatus ; } MSNdis_MediaConnectStatus , * PMSNdis_MediaConnectStatus ; #line 666 extern const GUID MSNdis_MaximumSendPackets_GUID ; #line 669 typedef struct _MSNdis_MaximumSendPackets { ULONG NdisMaximumSendPackets ; } MSNdis_MaximumSendPackets , * PMSNdis_MaximumSendPackets ; #line 684 extern const GUID MSNdis_VendorDriverVersion_GUID ; #line 687 typedef struct _MSNdis_VendorDriverVersion { ULONG NdisVendorDriverVersion ; } MSNdis_VendorDriverVersion , * PMSNdis_VendorDriverVersion ; #line 702 extern const GUID MSNdis_TransmitsOk_GUID ; #line 705 typedef struct _MSNdis_TransmitsOk { ULONG NdisTransmitsOk ; } MSNdis_TransmitsOk , * PMSNdis_TransmitsOk ; #line 720 extern const GUID MSNdis_ReceivesOk_GUID ; #line 723 typedef struct _MSNdis_ReceivesOk { ULONG NdisReceivesOk ; } MSNdis_ReceivesOk , * PMSNdis_ReceivesOk ; #line 738 extern const GUID MSNdis_TransmitsError_GUID ; #line 741 typedef struct _MSNdis_TransmitsError { ULONG NdisTransmitsError ; } MSNdis_TransmitsError , * PMSNdis_TransmitsError ; #line 756 extern const GUID MSNdis_ReceiveError_GUID ; #line 759 typedef struct _MSNdis_ReceiveError { ULONG NdisReceiveError ; } MSNdis_ReceiveError , * PMSNdis_ReceiveError ; #line 774 extern const GUID MSNdis_ReceiveNoBuffer_GUID ; #line 777 typedef struct _MSNdis_ReceiveNoBuffer { ULONG NdisReceiveNoBuffer ; } MSNdis_ReceiveNoBuffer , * PMSNdis_ReceiveNoBuffer ; #line 792 extern const GUID MSNdis_CoHardwareStatus_GUID ; #line 795 typedef struct _MSNdis_CoHardwareStatus { ULONG NdisCoHardwareStatus ; } MSNdis_CoHardwareStatus , * PMSNdis_CoHardwareStatus ; #line 810 extern const GUID MSNdis_CoMediaSupported_GUID ; #line 813 typedef struct _MSNdis_CoMediaSupported { ULONG NumberElements ; ULONG NdisCoMediaSupported[1] ; } MSNdis_CoMediaSupported , * PMSNdis_CoMediaSupported ; #line 832 extern const GUID MSNdis_CoMediaInUse_GUID ; #line 835 typedef struct _MSNdis_CoMediaInUse { ULONG NumberElements ; ULONG NdisCoMediaInUse[1] ; } MSNdis_CoMediaInUse , * PMSNdis_CoMediaInUse ; #line 854 extern const GUID MSNdis_CoLinkSpeed_GUID ; #line 857 typedef struct _MSNdis_CoLinkSpeed { MSNdis_NetworkLinkSpeed NdisCoLinkSpeed ; } MSNdis_CoLinkSpeed , * PMSNdis_CoLinkSpeed ; #line 872 extern const GUID MSNdis_CoVendorId_GUID ; #line 875 typedef struct _MSNdis_CoVendorId { ULONG NdisCoVendorID ; } MSNdis_CoVendorId , * PMSNdis_CoVendorId ; #line 890 extern const GUID MSNdis_CoVendorDescription_GUID ; #line 893 typedef struct _MSNdis_CoVendorDescription { CHAR VariableData[1] ; } MSNdis_CoVendorDescription , * PMSNdis_CoVendorDescription ; #line 907 extern const GUID MSNdis_CoDriverVersion_GUID ; #line 910 typedef struct _MSNdis_CoDriverVersion { USHORT NdisCoDriverVersion ; } MSNdis_CoDriverVersion , * PMSNdis_CoDriverVersion ; #line 925 extern const GUID MSNdis_CoMacOptions_GUID ; #line 928 typedef struct _MSNdis_CoMacOptions { ULONG NdisCoMacOptions ; } MSNdis_CoMacOptions , * PMSNdis_CoMacOptions ; #line 943 extern const GUID MSNdis_CoMediaConnectStatus_GUID ; #line 946 typedef struct _MSNdis_CoMediaConnectStatus { ULONG NdisCoMediaConnectStatus ; } MSNdis_CoMediaConnectStatus , * PMSNdis_CoMediaConnectStatus ; #line 961 extern const GUID MSNdis_CoVendorDriverVersion_GUID ; #line 964 typedef struct _MSNdis_CoVendorDriverVersion { ULONG NdisCoVendorDriverVersion ; } MSNdis_CoVendorDriverVersion , * PMSNdis_CoVendorDriverVersion ; #line 979 extern const GUID MSNdis_CoMinimumLinkSpeed_GUID ; #line 982 typedef struct _MSNdis_CoMinimumLinkSpeed { MSNdis_NetworkLinkSpeed NdisCoMinimumLinkSpeed ; } MSNdis_CoMinimumLinkSpeed , * PMSNdis_CoMinimumLinkSpeed ; #line 997 extern const GUID MSNdis_CoTransmitPdusOk_GUID ; #line 1000 typedef struct _MSNdis_CoTransmitPdusOk { ULONG NdisCoTransmitPdusOk ; } MSNdis_CoTransmitPdusOk , * PMSNdis_CoTransmitPdusOk ; #line 1015 extern const GUID MSNdis_CoReceivePdusOk_GUID ; #line 1018 typedef struct _MSNdis_CoReceivePdusOk { ULONG NdisCoReceivePdusOk ; } MSNdis_CoReceivePdusOk , * PMSNdis_CoReceivePdusOk ; #line 1033 extern const GUID MSNdis_CoTransmitPduErrors_GUID ; #line 1036 typedef struct _MSNdis_CoTransmitPduErrors { ULONG NdisCoTransmitPduErrors ; } MSNdis_CoTransmitPduErrors , * PMSNdis_CoTransmitPduErrors ; #line 1051 extern const GUID MSNdis_CoReceivePduErrors_GUID ; #line 1054 typedef struct _MSNdis_CoReceivePduErrors { ULONG NdisCoReceivePduErrors ; } MSNdis_CoReceivePduErrors , * PMSNdis_CoReceivePduErrors ; #line 1069 extern const GUID MSNdis_CoReceivePdusNoBuffer_GUID ; #line 1072 typedef struct _MSNdis_CoReceivePdusNoBuffer { ULONG NdisCoReceivePdusNoBuffer ; } MSNdis_CoReceivePdusNoBuffer , * PMSNdis_CoReceivePdusNoBuffer ; #line 1087 extern const GUID MSNdis_AtmSupportedVcRates_GUID ; #line 1090 typedef struct _MSNdis_AtmSupportedVcRates { ULONG MinCellRate ; ULONG MaxCellRate ; } MSNdis_AtmSupportedVcRates , * PMSNdis_AtmSupportedVcRates ; #line 1110 extern const GUID MSNdis_AtmSupportedServiceCategory_GUID ; #line 1113 typedef struct _MSNdis_AtmSupportedServiceCategory { ULONG NdisAtmSupportedServiceCategory ; } MSNdis_AtmSupportedServiceCategory , * PMSNdis_AtmSupportedServiceCategory ; #line 1128 extern const GUID MSNdis_AtmSupportedAalTypes_GUID ; #line 1131 typedef struct _MSNdis_AtmSupportedAalTypes { ULONG NdisAtmSupportedAalTypes ; } MSNdis_AtmSupportedAalTypes , * PMSNdis_AtmSupportedAalTypes ; #line 1146 extern const GUID MSNdis_AtmHardwareCurrentAddress_GUID ; #line 1149 typedef struct _MSNdis_AtmHardwareCurrentAddress { MSNdis_NetworkAddress NdisAtmHardwareCurrentAddress ; } MSNdis_AtmHardwareCurrentAddress , * PMSNdis_AtmHardwareCurrentAddress ; #line 1164 extern const GUID MSNdis_AtmMaxActiveVcs_GUID ; #line 1167 typedef struct _MSNdis_AtmMaxActiveVcs { ULONG NdisAtmMaxActiveVcs ; } MSNdis_AtmMaxActiveVcs , * PMSNdis_AtmMaxActiveVcs ; #line 1182 extern const GUID MSNdis_AtmMaxActiveVciBits_GUID ; #line 1185 typedef struct _MSNdis_AtmMaxActiveVciBits { ULONG NdisAtmMaxActiveVciBits ; } MSNdis_AtmMaxActiveVciBits , * PMSNdis_AtmMaxActiveVciBits ; #line 1200 extern const GUID MSNdis_AtmMaxActiveVpiBits_GUID ; #line 1203 typedef struct _MSNdis_AtmMaxActiveVpiBits { ULONG NdisAtmMaxActiveVpiBits ; } MSNdis_AtmMaxActiveVpiBits , * PMSNdis_AtmMaxActiveVpiBits ; #line 1218 extern const GUID MSNdis_AtmMaxAal0PacketSize_GUID ; #line 1221 typedef struct _MSNdis_AtmMaxAal0PacketSize { ULONG NdisAtmMaxAal0PacketSize ; } MSNdis_AtmMaxAal0PacketSize , * PMSNdis_AtmMaxAal0PacketSize ; #line 1236 extern const GUID MSNdis_AtmMaxAal1PacketSize_GUID ; #line 1239 typedef struct _MSNdis_AtmMaxAal1PacketSize { ULONG NdisAtmMaxAal1PacketSize ; } MSNdis_AtmMaxAal1PacketSize , * PMSNdis_AtmMaxAal1PacketSize ; #line 1254 extern const GUID MSNdis_AtmMaxAal34PacketSize_GUID ; #line 1257 typedef struct _MSNdis_AtmMaxAal34PacketSize { ULONG NdisAtmMaxAal34PacketSize ; } MSNdis_AtmMaxAal34PacketSize , * PMSNdis_AtmMaxAal34PacketSize ; #line 1272 extern const GUID MSNdis_AtmMaxAal5PacketSize_GUID ; #line 1275 typedef struct _MSNdis_AtmMaxAal5PacketSize { ULONG NdisAtmMaxAal5PacketSize ; } MSNdis_AtmMaxAal5PacketSize , * PMSNdis_AtmMaxAal5PacketSize ; #line 1290 extern const GUID MSNdis_AtmReceiveCellsOk_GUID ; #line 1293 typedef struct _MSNdis_AtmReceiveCellsOk { ULONGLONG NdisAtmReceiveCellsOk ; } MSNdis_AtmReceiveCellsOk , * PMSNdis_AtmReceiveCellsOk ; #line 1308 extern const GUID MSNdis_AtmTransmitCellsOk_GUID ; #line 1311 typedef struct _MSNdis_AtmTransmitCellsOk { ULONGLONG NdisAtmTransmitCellsOk ; } MSNdis_AtmTransmitCellsOk , * PMSNdis_AtmTransmitCellsOk ; #line 1326 extern const GUID MSNdis_AtmReceiveCellsDropped_GUID ; #line 1329 typedef struct _MSNdis_AtmReceiveCellsDropped { ULONGLONG NdisAtmReceiveCellsDropped ; } MSNdis_AtmReceiveCellsDropped , * PMSNdis_AtmReceiveCellsDropped ; #line 1344 extern const GUID MSNdis_EthernetPermanentAddress_GUID ; #line 1347 typedef struct _MSNdis_EthernetPermanentAddress { MSNdis_NetworkAddress NdisPermanentAddress ; } MSNdis_EthernetPermanentAddress , * PMSNdis_EthernetPermanentAddress ; #line 1362 extern const GUID MSNdis_EthernetCurrentAddress_GUID ; #line 1365 typedef struct _MSNdis_EthernetCurrentAddress { MSNdis_NetworkAddress NdisCurrentAddress ; } MSNdis_EthernetCurrentAddress , * PMSNdis_EthernetCurrentAddress ; #line 1380 extern const GUID MSNdis_EthernetMulticastList_GUID ; #line 1383 typedef struct _MSNdis_EthernetMulticastList { ULONG NumberElements ; MSNdis_NetworkAddress NdisMulticastList[1] ; } MSNdis_EthernetMulticastList , * PMSNdis_EthernetMulticastList ; #line 1402 extern const GUID MSNdis_EthernetMaximumMulticastListSize_GUID ; #line 1405 typedef struct _MSNdis_EthernetMaximumMulticastListSize { ULONG NdisEthernetMaximumMulticastListSize ; } MSNdis_EthernetMaximumMulticastListSize , * PMSNdis_EthernetMaximumMulticastListSize ; #line 1420 extern const GUID MSNdis_EthernetMacOptions_GUID ; #line 1423 typedef struct _MSNdis_EthernetMacOptions { ULONG NdisEthernetMacOptions ; } MSNdis_EthernetMacOptions , * PMSNdis_EthernetMacOptions ; #line 1438 extern const GUID MSNdis_EthernetReceiveErrorAlignment_GUID ; #line 1441 typedef struct _MSNdis_EthernetReceiveErrorAlignment { ULONG NdisEthernetReceiveErrorAlignment ; } MSNdis_EthernetReceiveErrorAlignment , * PMSNdis_EthernetReceiveErrorAlignment ; #line 1456 extern const GUID MSNdis_EthernetOneTransmitCollision_GUID ; #line 1459 typedef struct _MSNdis_EthernetOneTransmitCollision { ULONG NdisEthernetOneTransmitCollision ; } MSNdis_EthernetOneTransmitCollision , * PMSNdis_EthernetOneTransmitCollision ; #line 1474 extern const GUID MSNdis_EthernetMoreTransmitCollisions_GUID ; #line 1477 typedef struct _MSNdis_EthernetMoreTransmitCollisions { ULONG NdisEthernetMoreTransmitCollisions ; } MSNdis_EthernetMoreTransmitCollisions , * PMSNdis_EthernetMoreTransmitCollisions ; #line 1492 extern const GUID MSNdis_TokenRingPermanentAddress_GUID ; #line 1495 typedef struct _MSNdis_TokenRingPermanentAddress { MSNdis_NetworkAddress NdisPermanentAddress ; } MSNdis_TokenRingPermanentAddress , * PMSNdis_TokenRingPermanentAddress ; #line 1510 extern const GUID MSNdis_TokenRingCurrentAddress_GUID ; #line 1513 typedef struct _MSNdis_TokenRingCurrentAddress { MSNdis_NetworkAddress NdisCurrentAddress ; } MSNdis_TokenRingCurrentAddress , * PMSNdis_TokenRingCurrentAddress ; #line 1528 extern const GUID MSNdis_TokenRingCurrentFunctional_GUID ; #line 1531 typedef struct _MSNdis_TokenRingCurrentFunctional { ULONG NdisTokenRingCurrentFunctional ; } MSNdis_TokenRingCurrentFunctional , * PMSNdis_TokenRingCurrentFunctional ; #line 1546 extern const GUID MSNdis_TokenRingCurrentGroup_GUID ; #line 1549 typedef struct _MSNdis_TokenRingCurrentGroup { ULONG NdisTokenRingCurrentGroup ; } MSNdis_TokenRingCurrentGroup , * PMSNdis_TokenRingCurrentGroup ; #line 1564 extern const GUID MSNdis_TokenRingLastOpenStatus_GUID ; #line 1567 typedef struct _MSNdis_TokenRingLastOpenStatus { ULONG NdisTokenRingLastOpenStatus ; } MSNdis_TokenRingLastOpenStatus , * PMSNdis_TokenRingLastOpenStatus ; #line 1582 extern const GUID MSNdis_TokenRingCurrentRingStatus_GUID ; #line 1585 typedef struct _MSNdis_TokenRingCurrentRingStatus { ULONG NdisTokenRingCurrentRingStatus ; } MSNdis_TokenRingCurrentRingStatus , * PMSNdis_TokenRingCurrentRingStatus ; #line 1600 extern const GUID MSNdis_TokenRingCurrentRingState_GUID ; #line 1603 typedef struct _MSNdis_TokenRingCurrentRingState { ULONG NdisTokenRingCurrentRingState ; } MSNdis_TokenRingCurrentRingState , * PMSNdis_TokenRingCurrentRingState ; #line 1618 extern const GUID MSNdis_TokenRingLineErrors_GUID ; #line 1621 typedef struct _MSNdis_TokenRingLineErrors { ULONG NdisTokenRingLineErrors ; } MSNdis_TokenRingLineErrors , * PMSNdis_TokenRingLineErrors ; #line 1636 extern const GUID MSNdis_TokenRingLostFrames_GUID ; #line 1639 typedef struct _MSNdis_TokenRingLostFrames { ULONG NdisTokenRingLostFrames ; } MSNdis_TokenRingLostFrames , * PMSNdis_TokenRingLostFrames ; #line 1654 extern const GUID MSNdis_FddiLongPermanentAddress_GUID ; #line 1657 typedef struct _MSNdis_FddiLongPermanentAddress { MSNdis_NetworkAddress NdisPermanentAddress ; } MSNdis_FddiLongPermanentAddress , * PMSNdis_FddiLongPermanentAddress ; #line 1672 extern const GUID MSNdis_FddiLongCurrentAddress_GUID ; #line 1675 typedef struct _MSNdis_FddiLongCurrentAddress { MSNdis_NetworkAddress NdisCurrentAddress ; } MSNdis_FddiLongCurrentAddress , * PMSNdis_FddiLongCurrentAddress ; #line 1690 extern const GUID MSNdis_FddiLongMulticastList_GUID ; #line 1693 typedef struct _MSNdis_FddiLongMulticastList { ULONG NumberElements ; MSNdis_NetworkAddress NdisMulticastList[1] ; } MSNdis_FddiLongMulticastList , * PMSNdis_FddiLongMulticastList ; #line 1712 extern const GUID MSNdis_FddiLongMaximumListSize_GUID ; #line 1715 typedef struct _MSNdis_FddiLongMaximumListSize { ULONG NdisFddiLongMaximumListSize ; } MSNdis_FddiLongMaximumListSize , * PMSNdis_FddiLongMaximumListSize ; #line 1730 extern const GUID MSNdis_FddiShortPermanentAddress_GUID ; #line 1733 typedef struct _MSNdis_FddiShortPermanentAddress { MSNdis_NetworkShortAddress NdisPermanentAddress ; } MSNdis_FddiShortPermanentAddress , * PMSNdis_FddiShortPermanentAddress ; #line 1748 extern const GUID MSNdis_FddiShortCurrentAddress_GUID ; #line 1751 typedef struct _MSNdis_FddiShortCurrentAddress { MSNdis_NetworkShortAddress NdisCurrentAddress ; } MSNdis_FddiShortCurrentAddress , * PMSNdis_FddiShortCurrentAddress ; #line 1766 extern const GUID MSNdis_FddiShortMulticastList_GUID ; #line 1769 typedef struct _MSNdis_FddiShortMulticastList { ULONG NumberElements ; MSNdis_NetworkShortAddress NdisMulticastList[1] ; } MSNdis_FddiShortMulticastList , * PMSNdis_FddiShortMulticastList ; #line 1788 extern const GUID MSNdis_FddiShortMaximumListSize_GUID ; #line 1791 typedef struct _MSNdis_FddiShortMaximumListSize { ULONG NdisFddiShortMaximumListSize ; } MSNdis_FddiShortMaximumListSize , * PMSNdis_FddiShortMaximumListSize ; #line 1806 extern const GUID MSNdis_FddiAttachmentType_GUID ; #line 1809 typedef struct _MSNdis_FddiAttachmentType { ULONG NdisFddiAttachmentType ; } MSNdis_FddiAttachmentType , * PMSNdis_FddiAttachmentType ; #line 1824 extern const GUID MSNdis_FddiUpstreamNodeLong_GUID ; #line 1827 typedef struct _MSNdis_FddiUpstreamNodeLong { MSNdis_NetworkAddress NdisFddiUpstreamNodeLong ; } MSNdis_FddiUpstreamNodeLong , * PMSNdis_FddiUpstreamNodeLong ; #line 1842 extern const GUID MSNdis_FddiDownstreamNodeLong_GUID ; #line 1845 typedef struct _MSNdis_FddiDownstreamNodeLong { MSNdis_NetworkAddress NdisFddiDownstreamNodeLong ; } MSNdis_FddiDownstreamNodeLong , * PMSNdis_FddiDownstreamNodeLong ; #line 1860 extern const GUID MSNdis_FddiFrameErrors_GUID ; #line 1863 typedef struct _MSNdis_FddiFrameErrors { ULONG NdisFddiFrameErrors ; } MSNdis_FddiFrameErrors , * PMSNdis_FddiFrameErrors ; #line 1878 extern const GUID MSNdis_FddiFramesLost_GUID ; #line 1881 typedef struct _MSNdis_FddiFramesLost { ULONG NdisFddiFramesLost ; } MSNdis_FddiFramesLost , * PMSNdis_FddiFramesLost ; #line 1896 extern const GUID MSNdis_FddiRingManagmentState_GUID ; #line 1899 typedef struct _MSNdis_FddiRingManagmentState { ULONG NdisFddiRingManagmentState ; } MSNdis_FddiRingManagmentState , * PMSNdis_FddiRingManagmentState ; #line 1914 extern const GUID MSNdis_FddiLctFailures_GUID ; #line 1917 typedef struct _MSNdis_FddiLctFailures { ULONG NdisFddiLctFailures ; } MSNdis_FddiLctFailures , * PMSNdis_FddiLctFailures ; #line 1932 extern const GUID MSNdis_FddiLemRejects_GUID ; #line 1935 typedef struct _MSNdis_FddiLemRejects { ULONG NdisFddiLemRejects ; } MSNdis_FddiLemRejects , * PMSNdis_FddiLemRejects ; #line 1950 extern const GUID MSNdis_FddiLConnectionState_GUID ; #line 1953 typedef struct _MSNdis_FddiLConnectionState { ULONG NdisFddiLConnectionState ; } MSNdis_FddiLConnectionState , * PMSNdis_FddiLConnectionState ; #line 1968 extern const GUID MSNdis_StatusResetStart_GUID ; #line 1972 typedef struct _MSNdis_StatusResetStart { char VariableData[1] ; } MSNdis_StatusResetStart , * PMSNdis_StatusResetStart ; #line 1984 extern const GUID MSNdis_StatusResetEnd_GUID ; #line 1988 typedef struct _MSNdis_StatusResetEnd { char VariableData[1] ; } MSNdis_StatusResetEnd , * PMSNdis_StatusResetEnd ; #line 2000 extern const GUID MSNdis_StatusMediaConnect_GUID ; #line 2004 typedef struct _MSNdis_StatusMediaConnect { char VariableData[1] ; } MSNdis_StatusMediaConnect , * PMSNdis_StatusMediaConnect ; #line 2016 extern const GUID MSNdis_StatusMediaDisconnect_GUID ; #line 2020 typedef struct _MSNdis_StatusMediaDisconnect { char VariableData[1] ; } MSNdis_StatusMediaDisconnect , * PMSNdis_StatusMediaDisconnect ; #line 2032 extern const GUID MSNdis_StatusMediaSpecificIndication_GUID ; #line 2035 typedef struct _MSNdis_StatusMediaSpecificIndication { ULONG NumberElements ; UCHAR NdisStatusMediaSpecificIndication[1] ; } MSNdis_StatusMediaSpecificIndication , * PMSNdis_StatusMediaSpecificIndication ; #line 2054 extern const GUID MSNdis_StatusLinkSpeedChange_GUID ; #line 2057 typedef struct _MSNdis_StatusLinkSpeedChange { MSNdis_NetworkLinkSpeed NdisStatusLinkSpeedChange ; } MSNdis_StatusLinkSpeedChange , * PMSNdis_StatusLinkSpeedChange ; #line 2072 extern const GUID MSNdis_StatusProtocolBind_GUID ; #line 2075 typedef struct _MSNdis_StatusProtocolBind { CHAR VariableData[1] ; } MSNdis_StatusProtocolBind , * PMSNdis_StatusProtocolBind ; #line 2089 extern const GUID MSNdis_StatusProtocolUnbind_GUID ; #line 2092 typedef struct _MSNdis_StatusProtocolUnbind { CHAR VariableData[1] ; } MSNdis_StatusProtocolUnbind , * PMSNdis_StatusProtocolUnbind ; #line 2106 extern const GUID MSKeyboard_PortInformation_GUID ; #line 2109 typedef struct _KEYBOARD_PORT_WMI_STD_DATA { ULONG ConnectorType ; ULONG DataQueueSize ; ULONG ErrorCount ; ULONG FunctionKeys ; ULONG Indicators ; } KEYBOARD_PORT_WMI_STD_DATA , * PKEYBOARD_PORT_WMI_STD_DATA ; #line 2149 extern const GUID MSMouse_PortInformation_GUID ; #line 2152 typedef struct _POINTER_PORT_WMI_STD_DATA { ULONG ConnectorType ; ULONG DataQueueSize ; ULONG ErrorCount ; ULONG Buttons ; ULONG HardwareType ; } POINTER_PORT_WMI_STD_DATA , * PPOINTER_PORT_WMI_STD_DATA ; #line 2202 extern const GUID MSMouse_ClassInformation_GUID ; #line 2205 typedef struct _MSMouse_ClassInformation { ULONGLONG DeviceId ; } MSMouse_ClassInformation , * PMSMouse_ClassInformation ; #line 2220 extern const GUID MSKeyboard_ClassInformation_GUID ; #line 2223 typedef struct _MSKeyboard_ClassInformation { ULONGLONG DeviceId ; } MSKeyboard_ClassInformation , * PMSKeyboard_ClassInformation ; #line 2238 extern const GUID MSAcpi_ThermalZoneTemperature_GUID ; #line 2241 typedef struct _MSAcpi_ThermalZoneTemperature { ULONG ThermalStamp ; ULONG ThermalConstant1 ; ULONG ThermalConstant2 ; ULONG Reserved ; ULONG SamplingPeriod ; ULONG CurrentTemperature ; ULONG PassiveTripPoint ; ULONG CriticalTripPoint ; ULONG ActiveTripPointCount ; ULONG ActiveTripPoint[10] ; } MSAcpi_ThermalZoneTemperature , * PMSAcpi_ThermalZoneTemperature ; #line 2301 extern const GUID MSDiskDriver_Geometry_GUID ; #line 2304 typedef struct _WMI_DISK_GEOMETRY { LONGLONG Cylinders ; ULONG MediaType ; ULONG TracksPerCylinder ; ULONG SectorsPerTrack ; ULONG BytesPerSector ; } WMI_DISK_GEOMETRY , * PWMI_DISK_GEOMETRY ; #line 2339 extern const GUID MSDiskDriver_PerformanceData_GUID ; #line 2342 typedef struct _WMI_DISK_PERFORMANCE { LONGLONG BytesRead ; LONGLONG BytesWritten ; LONGLONG ReadTime ; LONGLONG WriteTime ; LONGLONG IdleTime ; ULONG ReadCount ; ULONG WriteCount ; ULONG QueueDepth ; ULONG SplitCount ; LONGLONG QueryTime ; ULONG StorageDeviceNumber ; USHORT StorageManagerName[8] ; } WMI_DISK_PERFORMANCE , * PWMI_DISK_PERFORMANCE ; #line 2412 extern const GUID MSDiskDriver_Performance_GUID ; #line 2415 typedef struct _MSDiskDriver_Performance { WMI_DISK_PERFORMANCE PerfData ; CHAR VariableData[1] ; } MSDiskDriver_Performance , * PMSDiskDriver_Performance ; #line 2434 extern const GUID MSStorageDriver_FailurePredictStatus_GUID ; #line 2437 typedef struct _STORAGE_FAILURE_PREDICT_STATUS { ULONG Reason ; BOOLEAN PredictFailure ; } STORAGE_FAILURE_PREDICT_STATUS , * PSTORAGE_FAILURE_PREDICT_STATUS ; #line 2457 extern const GUID MSStorageDriver_FailurePredictData_GUID ; #line 2460 typedef struct _STORAGE_FAILURE_PREDICT_DATA { ULONG Length ; UCHAR VendorSpecific[512] ; } STORAGE_FAILURE_PREDICT_DATA , * PSTORAGE_FAILURE_PREDICT_DATA ; #line 2480 extern const GUID MSStorageDriver_FailurePredictEvent_GUID ; #line 2483 typedef struct _STORAGE_FAILURE_PREDICT_EVENT { ULONG Length ; UCHAR VendorSpecific[1] ; } STORAGE_FAILURE_PREDICT_EVENT , * PSTORAGE_FAILURE_PREDICT_EVENT ; #line 2502 extern const GUID MSStorageDriver_FailurePredictFunction_GUID ; #line 2513 typedef struct _STORAGE_FAILURE_PREDICT_FUNCTION { char VariableData[1] ; } STORAGE_FAILURE_PREDICT_FUNCTION , * PSTORAGE_FAILURE_PREDICT_FUNCTION ; #line 2525 extern const GUID MSIde_PortDeviceInfo_GUID ; #line 2528 typedef struct _MSIde_PortDeviceInfo { UCHAR Bus ; UCHAR Target ; UCHAR Lun ; } MSIde_PortDeviceInfo , * PMSIde_PortDeviceInfo ; #line 2553 extern const GUID MSSerial_PortName_GUID ; #line 2556 typedef struct _MSSerial_PortName { CHAR VariableData[1] ; } MSSerial_PortName , * PMSSerial_PortName ; #line 2570 extern const GUID MSSerial_CommInfo_GUID ; #line 2573 typedef struct _SERIAL_WMI_COMM_DATA { ULONG BaudRate ; ULONG BitsPerByte ; ULONG Parity ; BOOLEAN ParityCheckEnable ; ULONG StopBits ; ULONG XoffCharacter ; ULONG XoffXmitThreshold ; ULONG XonCharacter ; ULONG XonXmitThreshold ; ULONG MaximumBaudRate ; ULONG MaximumOutputBufferSize ; ULONG MaximumInputBufferSize ; BOOLEAN Support16BitMode ; BOOLEAN SupportDTRDSR ; BOOLEAN SupportIntervalTimeouts ; BOOLEAN SupportParityCheck ; BOOLEAN SupportRTSCTS ; BOOLEAN SupportXonXoff ; BOOLEAN SettableBaudRate ; BOOLEAN SettableDataBits ; BOOLEAN SettableFlowControl ; BOOLEAN SettableParity ; BOOLEAN SettableParityCheck ; BOOLEAN SettableStopBits ; BOOLEAN IsBusy ; } SERIAL_WMI_COMM_DATA , * PSERIAL_WMI_COMM_DATA ; #line 2720 extern const GUID MSSerial_HardwareConfiguration_GUID ; #line 2723 typedef struct _SERIAL_WMI_HW_DATA { ULONG IrqNumber ; ULONG IrqVector ; ULONG IrqLevel ; ULONG IrqAffinityMask ; ULONG InterruptType ; ULONGLONG BaseIOAddress ; } SERIAL_WMI_HW_DATA , * PSERIAL_WMI_HW_DATA ; #line 2767 extern const GUID MSSerial_PerformanceInformation_GUID ; #line 2770 typedef struct _SERIAL_WMI_PERF_DATA { ULONG ReceivedCount ; ULONG TransmittedCount ; ULONG FrameErrorCount ; ULONG SerialOverrunErrorCount ; ULONG BufferOverrunErrorCount ; ULONG ParityErrorCount ; } SERIAL_WMI_PERF_DATA , * PSERIAL_WMI_PERF_DATA ; #line 2810 extern const GUID MSSerial_CommProperties_GUID ; #line 2813 typedef struct _SERIAL_WMI_COMMPROP { USHORT wPacketLength ; USHORT wPacketVersion ; ULONG dwServiceMask ; ULONG dwReserved1 ; ULONG dwMaxTxQueue ; ULONG dwMaxRxQueue ; ULONG dwMaxBaud ; ULONG dwProvSubType ; ULONG dwProvCapabilities ; ULONG dwSettableParams ; ULONG dwSettableBaud ; USHORT wSettableData ; USHORT wSettableStopParity ; ULONG dwCurrentTxQueue ; ULONG dwCurrentRxQueue ; ULONG dwProvSpec1 ; ULONG dwProvSpec2 ; ULONG dwProvCharSize ; UCHAR wcProvChar[1] ; } SERIAL_WMI_COMMPROP , * PSERIAL_WMI_COMMPROP ; #line 2917 extern const GUID MSParallel_AllocFreeCounts_GUID ; #line 2920 typedef struct _PARPORT_WMI_ALLOC_FREE_COUNTS { ULONG PortAllocates ; ULONG PortFrees ; } PARPORT_WMI_ALLOC_FREE_COUNTS , * PPARPORT_WMI_ALLOC_FREE_COUNTS ; #line 2940 extern const GUID MSParallel_DeviceBytesTransferred_GUID ; #line 2943 typedef struct _PARALLEL_WMI_LOG_INFO { ULONG Flags1 ; ULONG Flags2 ; ULONG spare[2] ; LONGLONG SppWriteCount ; LONGLONG NibbleReadCount ; LONGLONG BoundedEcpWriteCount ; LONGLONG BoundedEcpReadCount ; LONGLONG HwEcpWriteCount ; LONGLONG HwEcpReadCount ; LONGLONG SwEcpWriteCount ; LONGLONG SwEcpReadCount ; LONGLONG HwEppWriteCount ; LONGLONG HwEppReadCount ; LONGLONG SwEppWriteCount ; LONGLONG SwEppReadCount ; LONGLONG ByteReadCount ; LONGLONG ChannelNibbleReadCount ; } PARALLEL_WMI_LOG_INFO , * PPARALLEL_WMI_LOG_INFO ; #line 3038 extern const GUID MSRedbook_DriverInformationGuid ; #line 3041 typedef struct _REDBOOK_WMI_STD_DATA { ULONG NumberOfBuffers ; ULONG SectorsPerRead ; ULONG SectorsPerReadMask ; ULONG MaximumSectorsPerRead ; BOOLEAN PlayEnabled ; BOOLEAN CDDASupported ; BOOLEAN CDDAAccurate ; BOOLEAN Reserved1 ; } REDBOOK_WMI_STD_DATA , * PREDBOOK_WMI_STD_DATA ; #line 3091 extern const GUID MSRedbook_PerformanceGuid ; #line 3094 typedef struct _REDBOOK_WMI_PERF_DATA { LONGLONG TimeReadDelay ; LONGLONG TimeReading ; LONGLONG TimeStreamDelay ; LONGLONG TimeStreaming ; LONGLONG DataProcessed ; ULONG StreamPausedCount ; } REDBOOK_WMI_PERF_DATA , * PREDBOOK_WMI_PERF_DATA ; #line 3134 extern const GUID RegisteredGuids_GUID ; #line 3137 typedef struct _RegisteredGuids { ULONG GuidType ; ULONG LoggerId ; ULONG EnableLevel ; ULONG EnableFlags ; BOOLEAN IsEnabled ; } RegisteredGuids , * PRegisteredGuids ; #line 26 "C:/NTDDK/inc/ntdd8042.h" #pragma once #line 83 typedef NTSTATUS ( * PI8042_SYNCH_READ_PORT )(PVOID Context , PUCHAR Value , BOOLEAN WaitForACK ) ; #line 119 typedef NTSTATUS ( * PI8042_SYNCH_WRITE_PORT )(PVOID Context , UCHAR Value , BOOLEAN WaitForACK ) ; #line 131 typedef void ( * PI8042_ISR_WRITE_PORT )(PVOID Context , UCHAR Value ) ; #line 142 typedef void ( * PI8042_QUEUE_PACKET )(PVOID Context ) ; #line 151 typedef enum _TRANSMIT_STATE { Idle = 0, SendingBytes } TRANSMIT_STATE ; #line 160 typedef struct _OUTPUT_PACKET { PUCHAR Bytes ; ULONG CurrentByte ; ULONG ByteCount ; TRANSMIT_STATE State ; } OUTPUT_PACKET , * POUTPUT_PACKET ; typedef enum _MOUSE_STATE { MouseIdle, XMovement, YMovement, ZMovement, MouseExpectingACK, MouseResetting } MOUSE_STATE , * PMOUSE_STATE ; #line 204 typedef enum _MOUSE_RESET_SUBSTATE { ExpectingReset = 0, ExpectingResetId, ExpectingGetDeviceIdACK, ExpectingGetDeviceIdValue, ExpectingSetResolutionDefaultACK, ExpectingSetResolutionDefaultValueACK, ExpectingSetResolutionACK, ExpectingSetResolutionValueACK, ExpectingSetScaling1to1ACK, ExpectingSetScaling1to1ACK2, ExpectingSetScaling1to1ACK3, ExpectingReadMouseStatusACK, ExpectingReadMouseStatusByte1, ExpectingReadMouseStatusByte2, ExpectingReadMouseStatusByte3, StartPnPIdDetection, ExpectingLoopSetSamplingRateACK, ExpectingLoopSetSamplingRateValueACK, ExpectingPnpIdByte1, ExpectingPnpIdByte2, ExpectingPnpIdByte3, ExpectingPnpIdByte4, ExpectingPnpIdByte5, ExpectingPnpIdByte6, ExpectingPnpIdByte7, EnableWheel, Enable5Buttons, ExpectingGetDeviceId2ACK, ExpectingGetDeviceId2Value, ExpectingSetSamplingRateACK, ExpectingSetSamplingRateValueACK, ExpectingEnableACK, ExpectingFinalResolutionACK, ExpectingFinalResolutionValueACK, CustomHookStateMinimum = 100, CustomHookStateMaximum = 999, I8042ReservedMinimum = 1000 } MOUSE_RESET_SUBSTATE , * PMOUSE_RESET_SUBSTATE ; #line 268 typedef BOOLEAN ( * PI8042_MOUSE_ISR )(PVOID IsrContext , PMOUSE_INPUT_DATA CurrentInput , POUTPUT_PACKET CurrentOutput , UCHAR StatusByte , PUCHAR Byte , PBOOLEAN ContinueProcessing , PMOUSE_STATE MouseState , PMOUSE_RESET_SUBSTATE ResetSubState ) ; #line 281 typedef struct _INTERNAL_I8042_HOOK_MOUSE { PVOID Context ; PI8042_MOUSE_ISR IsrRoutine ; PI8042_ISR_WRITE_PORT IsrWritePort ; PI8042_QUEUE_PACKET QueueMousePacket ; PVOID CallContext ; } INTERNAL_I8042_HOOK_MOUSE , * PINTERNAL_I8042_HOOK_MOUSE ; #line 321 typedef enum _KEYBOARD_SCAN_STATE { Normal, GotE0, GotE1 } KEYBOARD_SCAN_STATE , * PKEYBOARD_SCAN_STATE ; typedef NTSTATUS ( * PI8042_KEYBOARD_INITIALIZATION_ROUTINE )(PVOID InitializationContext , PVOID SynchFuncContext , PI8042_SYNCH_READ_PORT ReadPort , PI8042_SYNCH_WRITE_PORT WritePort , PBOOLEAN TurnTranslationOn ) ; #line 337 typedef BOOLEAN ( * PI8042_KEYBOARD_ISR )(PVOID IsrContext , PKEYBOARD_INPUT_DATA CurrentInput , POUTPUT_PACKET CurrentOutput , UCHAR StatusByte , PUCHAR Byte , PBOOLEAN ContinueProcessing , PKEYBOARD_SCAN_STATE ScanState ) ; #line 349 typedef struct _INTERNAL_I8042_HOOK_KEYBOARD { PVOID Context ; PI8042_KEYBOARD_INITIALIZATION_ROUTINE InitializationRoutine ; PI8042_KEYBOARD_ISR IsrRoutine ; PI8042_ISR_WRITE_PORT IsrWritePort ; PI8042_QUEUE_PACKET QueueKeyboardPacket ; PVOID CallContext ; } INTERNAL_I8042_HOOK_KEYBOARD , * PINTERNAL_I8042_HOOK_KEYBOARD ; #line 384 typedef struct _INTERNAL_I8042_START_INFORMATION { ULONG Size ; PKINTERRUPT InterruptObject ; ULONG Reserved[8] ; } INTERNAL_I8042_START_INFORMATION , * PINTERNAL_I8042_START_INFORMATION ; #line 58 "kbfiltr.h" typedef struct _DEVICE_EXTENSION { PDEVICE_OBJECT Self ; PDEVICE_OBJECT PDO ; PDEVICE_OBJECT TopOfStack ; LONG EnableCount ; CONNECT_DATA UpperConnectData ; PVOID UpperContext ; PI8042_KEYBOARD_INITIALIZATION_ROUTINE UpperInitializationRoutine ; PI8042_KEYBOARD_ISR UpperIsrHook ; PI8042_ISR_WRITE_PORT IsrWritePort ; PI8042_QUEUE_PACKET QueueKeyboardPacket ; PVOID CallContext ; DEVICE_POWER_STATE DeviceState ; BOOLEAN Started ; BOOLEAN SurpriseRemoved ; BOOLEAN Removed ; } DEVICE_EXTENSION , * PDEVICE_EXTENSION ; #line 123 NTSTATUS KbFilter_AddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT BusDeviceObject ) ; #line 129 NTSTATUS KbFilter_CreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 135 NTSTATUS KbFilter_DispatchPassThrough(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 141 NTSTATUS KbFilter_InternIoCtl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 147 NTSTATUS KbFilter_IoCtl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 153 NTSTATUS KbFilter_PnP(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 159 NTSTATUS KbFilter_Power(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; #line 165 NTSTATUS KbFilter_InitializationRoutine(PDEVICE_OBJECT DeviceObject , PVOID SynchFuncContext , PI8042_SYNCH_READ_PORT ReadPort , PI8042_SYNCH_WRITE_PORT WritePort , PBOOLEAN TurnTranslationOn ) ; #line 174 BOOLEAN KbFilter_IsrHook(PDEVICE_OBJECT DeviceObject , PKEYBOARD_INPUT_DATA CurrentInput , POUTPUT_PACKET CurrentOutput , UCHAR StatusByte , PUCHAR DataByte , PBOOLEAN ContinueProcessing , PKEYBOARD_SCAN_STATE ScanState ) ; #line 185 void KbFilter_ServiceCallback(PDEVICE_OBJECT DeviceObject , PKEYBOARD_INPUT_DATA InputDataStart , PKEYBOARD_INPUT_DATA InputDataEnd , PULONG InputDataConsumed ) ; #line 193 void KbFilter_Unload(PDRIVER_OBJECT DriverObject ) ; #line 21 "kbfiltr.c" NTSTATUS DriverEntry(PDRIVER_OBJECT , PUNICODE_STRING ) ; #line 24 #pragma alloc_text(INIT, DriverEntry) #line 25 #pragma alloc_text(PAGE, KbFilter_AddDevice) #line 26 #pragma alloc_text(PAGE, KbFilter_CreateClose) #line 27 #pragma alloc_text(PAGE, KbFilter_IoCtl) #line 28 #pragma alloc_text(PAGE, KbFilter_InternIoCtl) #line 29 #pragma alloc_text(PAGE, KbFilter_Unload) #line 30 #pragma alloc_text(PAGE, KbFilter_DispatchPassThrough) #line 31 #pragma alloc_text(PAGE, KbFilter_PnP) #line 32 #pragma alloc_text(PAGE, KbFilter_Power) #line 35 void errorFn() { #line 36 ERROR: goto ERROR; #line 36 ; } #line 40 int s ; int UNLOADED , NP , DC , SKIP1 , SKIP2 , MPR1 , MPR3 , IPC ; int pended ; PIO_COMPLETION_ROUTINE compFptr ; int compRegistered ; int lowerDriverReturn ; int setEventCalled ; int customIrp ; int myStatus ; #line 51 void _BLAST_init() { #line 52 UNLOADED = 0; NP = 1; DC = 2; SKIP1 = 3; SKIP2 = 4; MPR1 = 5; MPR3 = 6; IPC = 7; #line 62 s = UNLOADED; pended = 0; compFptr = 0; compRegistered = 0; lowerDriverReturn = 0; setEventCalled = 0; customIrp = 0; } #line 72 NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) { #line 84 ULONG i ; #line 86 RegistryPath; #line 92 //for(i = 0; i < 0x1b; i++) { #line 93 (DriverObject->MajorFunction)[i] = KbFilter_DispatchPassThrough; } #line 96 (DriverObject->MajorFunction)[0x00] = KbFilter_CreateClose; (DriverObject->MajorFunction)[0x02] = KbFilter_CreateClose; (DriverObject->MajorFunction)[0x1b] = KbFilter_PnP; (DriverObject->MajorFunction)[0x16] = KbFilter_Power; (DriverObject->MajorFunction)[0x0f] = KbFilter_InternIoCtl; #line 108 DriverObject->DriverUnload = KbFilter_Unload; (DriverObject->DriverExtension)->AddDevice = KbFilter_AddDevice; #line 111 return (NTSTATUS )0x00000000L; } NTSTATUS KbFilter_AddDevice(PDRIVER_OBJECT Driver , PDEVICE_OBJECT PDO ) { #line 120 PDEVICE_EXTENSION devExt ; IO_ERROR_LOG_PACKET errorLogEntry ; PDEVICE_OBJECT device ; NTSTATUS status = (NTSTATUS )0x00000000L; #line 125 ; #line 127 status = IoCreateDevice(Driver, sizeof(DEVICE_EXTENSION ), (void * )0, 0x0000000b, 0, 0, & device); #line 136 if(! ((NTSTATUS )status >= 0)) { #line 137 return status; } #line 140 memset(device->DeviceExtension, 0, sizeof(DEVICE_EXTENSION )); #line 142 devExt = (PDEVICE_EXTENSION )device->DeviceExtension; devExt->TopOfStack = IoAttachDeviceToDeviceStack(device, PDO); #line 145 ; #line 147 devExt->Self = device; devExt->PDO = PDO; devExt->DeviceState = PowerDeviceD0; #line 151 devExt->SurpriseRemoved = 0; devExt->Removed = 0; devExt->Started = 0; #line 155 device->Flags |= 0x00000004 | 0x00002000; device->Flags &= ~ 0x00000080; #line 158 return status; } NTSTATUS KbFilter_Complete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) { #line 175 PKEVENT event ; #line 177 event = (PKEVENT )Context; #line 179 DeviceObject; Irp; #line 187 KeSetEvent(event, 0, 0); #line 192 return (NTSTATUS )0xC0000016L; } NTSTATUS KbFilter_CreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { #line 207 PIO_STACK_LOCATION irpStack ; NTSTATUS status ; PDEVICE_EXTENSION devExt ; #line 212 ; #line 214 irpStack = ((Irp->Tail).Overlay).CurrentStackLocation; devExt = (PDEVICE_EXTENSION )DeviceObject->DeviceExtension; #line 217 status = (Irp->IoStatus).Status; status = myStatus; #line 220 switch(irpStack->MajorFunction) { #line 221 case 0x00: #line 221 ; #line 223 if((void * )0 == (devExt->UpperConnectData).ClassService) { #line 227 status = (NTSTATUS )0xC0000184L; } else { #line 229 if(1 == InterlockedIncrement(& devExt->EnableCount)) { } else { } } #line 240 break; #line 242 case 0x02: #line 242 ; #line 244 if(0 == InterlockedDecrement(& devExt->EnableCount)) { } #line 250 break; } #line 253 (Irp->IoStatus).Status = status; myStatus = status; #line 259 return KbFilter_DispatchPassThrough(DeviceObject, Irp); } NTSTATUS KbFilter_DispatchPassThrough(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { #line 286 PIO_STACK_LOCATION irpStack = ((Irp->Tail).Overlay).CurrentStackLocation; #line 291 if(s == NP) #line 291 s = SKIP1; else #line 291 errorFn(); Irp->CurrentLocation++; #line 292 ((Irp->Tail).Overlay).CurrentStackLocation++; #line 292 ; #line 294 return IofCallDriver(((PDEVICE_EXTENSION )DeviceObject->DeviceExtension)->TopOfStack, Irp); } #line 297 NTSTATUS KbFilter_InternIoCtl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { #line 335 PIO_STACK_LOCATION irpStack ; PDEVICE_EXTENSION devExt ; PINTERNAL_I8042_HOOK_KEYBOARD hookKeyboard ; KEVENT event ; PCONNECT_DATA connectData ; NTSTATUS status = (NTSTATUS )0x00000000L; #line 342 devExt = (PDEVICE_EXTENSION )DeviceObject->DeviceExtension; (Irp->IoStatus).Information = 0; irpStack = ((Irp->Tail).Overlay).CurrentStackLocation; #line 346 switch(((irpStack->Parameters).DeviceIoControl).IoControlCode) { #line 351 case 0x0000000b << 16 | 0 << 14 | 0x0080 << 2 | 3: #line 351 ; #line 355 if((devExt->UpperConnectData).ClassService != (void * )0) { #line 356 status = (NTSTATUS )0xC0000043L; break; } else { #line 359 if(((irpStack->Parameters).DeviceIoControl).InputBufferLength < sizeof(CONNECT_DATA )) { #line 364 status = (NTSTATUS )0xC000000DL; break; } } #line 371 connectData = (PCONNECT_DATA )((irpStack->Parameters).DeviceIoControl).Type3InputBuffer ; devExt->UpperConnectData = * connectData; #line 380 connectData->ClassDeviceObject = devExt->Self; connectData->ClassService = KbFilter_ServiceCallback; #line 383 break; #line 388 case 0x0000000b << 16 | 0 << 14 | 0x0100 << 2 | 3: #line 388 ; #line 396 status = (NTSTATUS )0xC0000002L; break; #line 404 case 0x0000000b << 16 | 0 << 14 | 0x0FF0 << 2 | 3: #line 404 ; ; if(((irpStack->Parameters).DeviceIoControl).InputBufferLength < sizeof(INTERNAL_I8042_HOOK_KEYBOARD )) { #line 408 ; #line 410 status = (NTSTATUS )0xC000000DL; break; } hookKeyboard = (PINTERNAL_I8042_HOOK_KEYBOARD )((irpStack->Parameters).DeviceIoControl).Type3InputBuffer ; #line 420 devExt->UpperContext = hookKeyboard->Context; #line 425 hookKeyboard->Context = (PVOID )DeviceObject; #line 427 if(hookKeyboard->InitializationRoutine) { #line 428 devExt->UpperInitializationRoutine = hookKeyboard->InitializationRoutine; } hookKeyboard->InitializationRoutine = (PI8042_KEYBOARD_INITIALIZATION_ROUTINE )KbFilter_InitializationRoutine; #line 435 if(hookKeyboard->IsrRoutine) { #line 436 devExt->UpperIsrHook = hookKeyboard->IsrRoutine; } hookKeyboard->IsrRoutine = (PI8042_KEYBOARD_ISR )KbFilter_IsrHook; #line 443 devExt->IsrWritePort = hookKeyboard->IsrWritePort; devExt->QueueKeyboardPacket = hookKeyboard->QueueKeyboardPacket; devExt->CallContext = hookKeyboard->CallContext; #line 447 status = (NTSTATUS )0x00000000L; break; #line 465 case 0x0000000b << 16 | 0 << 14 | 0x0000 << 2 | 0: #line 465 ; case 0x0000000b << 16 | 0 << 14 | 0x0020 << 2 | 0: #line 466 ; case 0x0000000b << 16 | 0 << 14 | 0x0010 << 2 | 0: #line 467 ; case 0x0000000b << 16 | 0 << 14 | 0x0002 << 2 | 0: #line 468 ; case 0x0000000b << 16 | 0 << 14 | 0x0008 << 2 | 0: #line 469 ; case 0x0000000b << 16 | 0 << 14 | 0x0001 << 2 | 0: #line 470 ; break; } #line 474 if(! ((NTSTATUS )status >= 0)) { #line 475 (Irp->IoStatus).Status = status; myStatus = status; IofCompleteRequest(Irp, 0); return status; } #line 481 return KbFilter_DispatchPassThrough(DeviceObject, Irp); } NTSTATUS KbFilter_PnP(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { #line 507 PDEVICE_EXTENSION devExt ; PIO_STACK_LOCATION irpStack ; NTSTATUS status = (NTSTATUS )0x00000000L; KIRQL oldIrql ; KEVENT event ; #line 513 ; #line 515 devExt = (PDEVICE_EXTENSION )DeviceObject->DeviceExtension; irpStack = ((Irp->Tail).Overlay).CurrentStackLocation; #line 518 switch(irpStack->MinorFunction) { #line 519 case 0x00: #line 519 ; { { #line 527 PIO_STACK_LOCATION irpSp ; #line 527 PIO_STACK_LOCATION nextIrpSp ; #line 527 irpSp = ((Irp->Tail).Overlay).CurrentStackLocation; #line 527 nextIrpSp = ((Irp->Tail).Overlay).CurrentStackLocation - 1; #line 527 memcpy(nextIrpSp, irpSp, (LONG )((LONG_PTR )(& ((IO_STACK_LOCATION * )0)->CompletionRoutine))); #line 527 nextIrpSp->Control = 0; } #line 527 ; KeInitializeEvent(& event, NotificationEvent, 0); #line 532 if(s != NP) #line 532 errorFn(); else { #line 534 if(compRegistered != 0) #line 534 errorFn(); else { #line 536 compRegistered = 1; compFptr = KbFilter_Complete; } } { #line 545 PIO_STACK_LOCATION irpSp ; #line 545 ; #line 545 irpSp = ((Irp->Tail).Overlay).CurrentStackLocation - 1; #line 545 irpSp->CompletionRoutine = (PIO_COMPLETION_ROUTINE )KbFilter_Complete; #line 545 irpSp->Context = & event; #line 545 irpSp->Control = 0; #line 545 if(1) { #line 545 irpSp->Control = 0x40; } #line 545 if(1) { #line 545 irpSp->Control |= 0x80; } #line 545 if(1) { #line 545 irpSp->Control |= 0x20; } } #line 545 ; #line 547 status = IofCallDriver(devExt->TopOfStack, Irp); #line 549 if((NTSTATUS )0x00000103L == status) { #line 550 KeWaitForSingleObject(& event, Executive, KernelMode, 0, (void * )0); } #line 560 if((NTSTATUS )status >= 0 && (NTSTATUS )myStatus >= 0) { #line 565 devExt->Started = 1; devExt->Removed = 0; devExt->SurpriseRemoved = 0; } #line 574 (Irp->IoStatus).Status = status; myStatus = status; (Irp->IoStatus).Information = 0; IofCompleteRequest(Irp, 0); #line 579 break; } #line 582 case 0x17: #line 582 ; #line 586 devExt->SurpriseRemoved = 1; #line 590 if(s == NP) #line 590 s = SKIP1; else #line 590 errorFn(); Irp->CurrentLocation++; #line 591 ((Irp->Tail).Overlay).CurrentStackLocation++; #line 591 ; status = IofCallDriver(devExt->TopOfStack, Irp); break; #line 595 case 0x02: #line 595 ; #line 597 devExt->Removed = 1; #line 601 if(s == NP) #line 601 s = SKIP1; else #line 601 errorFn(); Irp->CurrentLocation++; #line 602 ((Irp->Tail).Overlay).CurrentStackLocation++; #line 602 ; IofCallDriver(devExt->TopOfStack, Irp); #line 605 IoDetachDevice(devExt->TopOfStack); IoDeleteDevice(DeviceObject); #line 608 status = (NTSTATUS )0x00000000L; break; #line 611 case 0x01: #line 611 ; case 0x05: #line 612 ; case 0x03: #line 613 ; case 0x06: #line 614 ; case 0x0D: #line 615 ; case 0x04: #line 616 ; case 0x07: #line 617 ; case 0x08: #line 618 ; case 0x09: #line 619 ; case 0x0C: #line 620 ; case 0x0A: #line 621 ; case 0x0B: #line 622 ; case 0x0F: #line 623 ; case 0x10: #line 624 ; case 0x11: #line 625 ; case 0x12: #line 626 ; case 0x13: #line 627 ; case 0x14: #line 628 ; default : #line 629 ; #line 634 if(s == NP) #line 634 s = SKIP1; else #line 634 errorFn(); Irp->CurrentLocation++; #line 635 ((Irp->Tail).Overlay).CurrentStackLocation++; #line 635 ; status = IofCallDriver(devExt->TopOfStack, Irp); break; } #line 640 return status; } NTSTATUS KbFilter_Power(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { #line 667 PIO_STACK_LOCATION irpStack ; PDEVICE_EXTENSION devExt ; POWER_STATE powerState ; POWER_STATE_TYPE powerType ; #line 672 ; #line 674 devExt = (PDEVICE_EXTENSION )DeviceObject->DeviceExtension; irpStack = ((Irp->Tail).Overlay).CurrentStackLocation; #line 677 powerType = ((irpStack->Parameters).Power).Type; powerState = ((irpStack->Parameters).Power).State; #line 680 switch(irpStack->MinorFunction) { #line 681 case 0x02: #line 681 ; if(powerType == DevicePowerState) { #line 683 devExt->DeviceState = powerState.DeviceState; } #line 686 case 0x01: #line 686 ; case 0x00: #line 687 ; case 0x03: #line 688 ; default : #line 689 ; break; } #line 693 PoStartNextPowerIrp(Irp); #line 695 if(s == NP) #line 695 s = SKIP1; else #line 695 errorFn(); Irp->CurrentLocation++; #line 696 ((Irp->Tail).Overlay).CurrentStackLocation++; #line 696 ; return PoCallDriver(devExt->TopOfStack, Irp); } NTSTATUS KbFilter_InitializationRoutine(PDEVICE_OBJECT DeviceObject , PVOID SynchFuncContext , PI8042_SYNCH_READ_PORT ReadPort , PI8042_SYNCH_WRITE_PORT WritePort , PBOOLEAN TurnTranslationOn ) { #line 737 PDEVICE_EXTENSION devExt ; NTSTATUS status = (NTSTATUS )0x00000000L; #line 740 devExt = DeviceObject->DeviceExtension; #line 746 if(devExt->UpperInitializationRoutine) { #line 747 status = (* devExt->UpperInitializationRoutine)(devExt->UpperContext, SynchFuncContext, ReadPort, WritePort, TurnTranslationOn); #line 755 if(! ((NTSTATUS )status >= 0)) { #line 756 return status; } } #line 760 * TurnTranslationOn = 1; return status; } BOOLEAN KbFilter_IsrHook(PDEVICE_OBJECT DeviceObject , PKEYBOARD_INPUT_DATA CurrentInput , POUTPUT_PACKET CurrentOutput , UCHAR StatusByte , PUCHAR DataByte , PBOOLEAN ContinueProcessing , PKEYBOARD_SCAN_STATE ScanState ) { #line 813 PDEVICE_EXTENSION devExt ; BOOLEAN retVal = 1; #line 816 devExt = DeviceObject->DeviceExtension; #line 818 if(devExt->UpperIsrHook) { #line 819 retVal = (* devExt->UpperIsrHook)(devExt->UpperContext, CurrentInput, CurrentOutput, StatusByte, DataByte, ContinueProcessing, ScanState); #line 829 if(! retVal || ! * ContinueProcessing) { #line 830 return retVal; } } #line 834 * ContinueProcessing = 1; return retVal; } void KbFilter_ServiceCallback(PDEVICE_OBJECT DeviceObject , PKEYBOARD_INPUT_DATA InputDataStart , PKEYBOARD_INPUT_DATA InputDataEnd , PULONG InputDataConsumed ) { #line 875 PDEVICE_EXTENSION devExt ; #line 877 devExt = (PDEVICE_EXTENSION )DeviceObject->DeviceExtension; #line 879 (* (PSERVICE_CALLBACK_ROUTINE )(devExt->UpperConnectData).ClassService)((devExt->UpperConnectData ).ClassDeviceObject, InputDataStart, InputDataEnd, InputDataConsumed); } #line 886 void KbFilter_Unload(PDRIVER_OBJECT Driver ) { #line 907 ; #line 909 Driver; #line 911 ; } #line 16 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h" #pragma once #line 32 #pragma pack(push, 8) #line 72 typedef enum _EXCEPTION_DISPOSITION ; #line 89 struct _EXCEPTION_RECORD ; #line 90 struct _CONTEXT ; #line 155 #pragma pack(pop) #line 25 "C:/NTDDK/inc/ntdef.h" #pragma once #line 15 "C:/Program Files/Microsoft Visual Studio/VC98/include/ctype.h" #pragma once #line 60 typedef unsigned short ; #line 66 typedef wchar_t ; #line 67 typedef wchar_t ; #line 127 "C:/NTDDK/inc/ntdef.h" typedef unsigned long ; #line 25 "C:/NTDDK/inc/basetsd.h" #pragma once #line 36 typedef int ; #line 37 typedef int ; #line 43 typedef unsigned int ; #line 44 typedef unsigned int ; #line 45 typedef unsigned int ; #line 84 typedef int ; #line 85 typedef unsigned int ; typedef long ; #line 88 typedef unsigned long ; #line 248 typedef unsigned short ; #line 249 typedef short ; #line 250 typedef unsigned long ; #line 288 typedef ULONG_PTR ; #line 289 typedef LONG_PTR ; #line 295 typedef ULONG_PTR ; #line 301 typedef __int64 ; #line 302 typedef __int64 ; #line 309 typedef unsigned __int64 ; #line 310 typedef unsigned __int64 ; #line 311 typedef unsigned __int64 ; #line 217 "C:/NTDDK/inc/ntdef.h" typedef void ; #line 218 typedef void ; #line 266 typedef char ; #line 267 typedef short ; #line 268 typedef long ; #line 276 typedef wchar_t ; #line 282 typedef WCHAR ; #line 283 typedef WCHAR ; #line 284 typedef const WCHAR ; #line 285 typedef WCHAR ; #line 286 typedef WCHAR ; typedef const WCHAR ; #line 293 typedef CHAR ; #line 294 typedef CHAR ; typedef const CHAR ; #line 297 typedef CHAR ; #line 298 typedef CHAR ; #line 299 typedef const CHAR ; #line 321 typedef char ; #line 322 typedef unsigned char ; #line 326 typedef LPSTR ; #line 327 typedef LPSTR ; #line 328 typedef LPCSTR ; #line 337 typedef double ; typedef struct _QUAD ; #line 349 typedef SHORT ; #line 350 typedef LONG ; #line 351 typedef QUAD ; #line 360 typedef unsigned char ; #line 361 typedef unsigned short ; #line 362 typedef unsigned long ; #line 363 typedef QUAD ; #line 369 typedef UCHAR ; #line 370 typedef USHORT ; #line 371 typedef ULONG ; #line 372 typedef UQUAD ; #line 378 typedef signed char ; #line 379 typedef SCHAR ; #line 394 typedef void ; #line 400 typedef HANDLE ; #line 406 typedef UCHAR ; #line 407 typedef USHORT ; #line 408 typedef ULONG ; #line 414 typedef LONG ; #line 478 typedef char ; #line 479 typedef short ; #line 480 typedef ULONG ; typedef CCHAR ; #line 483 typedef CSHORT ; #line 484 typedef CLONG ; #line 492 typedef ULONG ; #line 493 typedef PULONG ; #line 494 typedef USHORT ; #line 500 typedef ULONG ; #line 501 typedef ULONG ; #line 508 typedef LONG ; typedef NTSTATUS ; #line 602 typedef struct _FLOAT128 ; #line 607 typedef FLOAT128 ; #line 621 typedef __int64 ; #line 622 typedef unsigned __int64 ; #line 639 typedef LONGLONG ; #line 640 typedef ULONGLONG ; #line 644 typedef LONGLONG ; #line 649 typedef union _LARGE_INTEGER ; #line 662 typedef LARGE_INTEGER ; #line 668 typedef union _ULARGE_INTEGER ; #line 681 typedef ULARGE_INTEGER ; #line 690 typedef struct _LUID ; #line 696 typedef ULONGLONG ; #line 697 typedef DWORDLONG ; #line 707 typedef LARGE_INTEGER ; #line 831 #pragma warning(push) #pragma warning(disable:4035) __inline ULONGLONG __stdcall Int64ShllMod32___1(ULONGLONG Value , ULONG ShiftCount ) { #line 842 /* __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shld edx, eax, cl shl eax, cl }; */ } #line 845 __inline LONGLONG __stdcall Int64ShraMod32___1(LONGLONG Value , ULONG ShiftCount ) { #line 852 /* __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl sar edx, cl }; */ } #line 855 __inline ULONGLONG __stdcall Int64ShrlMod32___1(ULONGLONG Value , ULONG ShiftCount ) { #line 862 /* __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl shr edx, cl }; */ } #pragma warning(pop) #line 956 typedef enum _EVENT_TYPE ; #line 965 typedef enum _TIMER_TYPE ; #line 974 typedef enum _WAIT_TYPE ; #line 983 typedef CHAR ; #line 984 typedef const char ; #line 991 typedef struct _STRING ; #line 999 typedef STRING ; typedef STRING ; #line 1002 typedef PSTRING ; typedef STRING ; #line 1005 typedef PSTRING ; #line 1011 typedef struct _CSTRING ; #line 1016 typedef CSTRING ; #line 1019 typedef STRING ; #line 1020 typedef PSTRING ; #line 1027 typedef struct _UNICODE_STRING ; #line 1036 typedef UNICODE_STRING ; #line 1037 typedef const UNICODE_STRING ; #line 1046 typedef UCHAR ; #line 1047 typedef BOOLEAN ; #line 1057 typedef struct _LIST_ENTRY ; #line 1067 typedef struct _SINGLE_LIST_ENTRY ; #line 1078 typedef struct LIST_ENTRY32 ; #line 1082 typedef LIST_ENTRY32 ; typedef struct LIST_ENTRY64 ; #line 1088 typedef LIST_ENTRY64 ; #line 1127 typedef struct _STRING32 ; #line 1132 typedef STRING32 ; typedef STRING32 ; #line 1135 typedef UNICODE_STRING32 ; typedef STRING32 ; #line 1138 typedef ANSI_STRING32 ; #line 1141 typedef struct _STRING64 ; #line 1146 typedef STRING64 ; typedef STRING64 ; #line 1149 typedef UNICODE_STRING64 ; typedef STRING64 ; #line 1152 typedef ANSI_STRING64 ; #line 1173 typedef struct _OBJECT_ATTRIBUTES ; #line 1181 typedef OBJECT_ATTRIBUTES ; #line 17 "C:/NTDDK/inc/guiddef.h" typedef struct _GUID ; #line 70 typedef GUID ; #line 75 typedef const GUID ; #line 81 typedef GUID ; #line 82 typedef IID ; #line 85 typedef GUID ; #line 86 typedef CLSID ; #line 89 typedef GUID ; #line 90 typedef FMTID ; #line 16 "C:/NTDDK/inc/string.h" #pragma once #line 54 typedef unsigned int ; #line 1233 "C:/NTDDK/inc/ntdef.h" typedef struct _OBJECTID ; #line 1288 struct _CONTEXT ; #line 1289 struct _EXCEPTION_RECORD ; typedef EXCEPTION_DISPOSITION ; #line 1306 typedef UCHAR ; typedef KIRQL ; #line 1316 typedef enum _NT_PRODUCT_TYPE ; #line 1329 typedef enum _SUITE_TYPE ; #line 75 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _KTHREAD ; #line 76 typedef struct _ETHREAD ; #line 77 typedef struct _EPROCESS ; #line 78 typedef struct _PEB ; #line 79 typedef struct _KINTERRUPT ; #line 80 typedef struct _IO_TIMER ; #line 81 typedef struct _OBJECT_TYPE ; #line 82 typedef struct _CALLBACK_OBJECT ; #line 83 typedef struct _DEVICE_HANDLER_OBJECT ; #line 84 typedef struct _BUS_HANDLER ; #line 143 typedef union _SLIST_HEADER ; #line 204 typedef CCHAR ; typedef enum _MODE ; #line 222 struct _KAPC ; typedef void ; #line 232 typedef void ; #line 242 typedef void ; #line 248 typedef BOOLEAN ; #line 254 typedef BOOLEAN ; #line 265 typedef struct _KAPC ; #line 292 struct _KDPC ; typedef void ; #line 351 typedef enum _KDPC_IMPORTANCE ; #line 361 typedef struct _KDPC ; #line 377 typedef PVOID ; typedef void ; #line 392 typedef struct _KIPI_COUNTS ; #line 443 typedef struct _MDL ; #line 532 typedef PVOID ; #line 538 typedef PVOID ; #line 544 typedef PVOID ; typedef ULONG ; #line 547 typedef ACCESS_MASK ; #line 597 typedef struct _GENERIC_MAPPING ; #line 603 typedef GENERIC_MAPPING ; #line 24 "C:/NTDDK/inc/pshpack4.h" #pragma warning(disable:4103) #pragma pack(push, 4) #line 618 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _LUID_AND_ATTRIBUTES ; #line 622 typedef LUID_AND_ATTRIBUTES ; #line 623 typedef LUID_AND_ATTRIBUTES_ARRAY ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 642 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _ACL ; #line 649 typedef ACL ; #line 681 typedef struct _PRIVILEGE_SET ; #line 735 typedef enum _SECURITY_IMPERSONATION_LEVEL ; #line 753 typedef BOOLEAN ; #line 762 typedef struct _SECURITY_QUALITY_OF_SERVICE ; #line 774 typedef struct _SE_IMPERSONATION_STATE ; #line 782 typedef ULONG ; #line 809 typedef ULONG ; #line 810 typedef KAFFINITY ; #line 816 typedef LONG ; #line 824 typedef ULONG_PTR ; #line 825 typedef KSPIN_LOCK ; #line 833 typedef void ; #line 842 typedef enum _KPROFILE_SOURCE ; #line 1079 typedef NTSTATUS ; #line 1088 typedef struct _RTL_QUERY_REGISTRY_TABLE ; #line 1952 #pragma warning(push) #pragma warning(disable:4035) #line 2019 #pragma warning(pop) #line 2214 typedef struct _TIME_FIELDS ; #line 2224 typedef TIME_FIELDS ; #line 2499 typedef struct _RTL_BITMAP ; #line 2503 typedef RTL_BITMAP ; #line 2627 typedef struct _RTL_BITMAP_RUN ; #line 2633 typedef RTL_BITMAP_RUN ; #line 2886 typedef struct _RTL_RANGE ; #line 2924 typedef struct _RTL_RANGE_LIST ; #line 2950 typedef struct _RANGE_LIST_ITERATOR ; #line 3019 typedef BOOLEAN ; #line 3155 typedef struct _OSVERSIONINFOA ; #line 3164 typedef struct _OSVERSIONINFOW ; #line 3177 typedef OSVERSIONINFOA ; #line 3178 typedef POSVERSIONINFOA ; #line 3179 typedef LPOSVERSIONINFOA ; #line 3182 typedef struct _OSVERSIONINFOEXA ; #line 3195 typedef struct _OSVERSIONINFOEXW ; #line 3213 typedef OSVERSIONINFOEXA ; #line 3214 typedef POSVERSIONINFOEXA ; #line 3215 typedef LPOSVERSIONINFOEXA ; #line 3648 typedef struct _IO_STATUS_BLOCK ; #line 3669 typedef void ; #line 3685 typedef enum _FILE_INFORMATION_CLASS ; #line 3731 typedef struct _FILE_BASIC_INFORMATION ; #line 3739 typedef struct _FILE_STANDARD_INFORMATION ; #line 3747 typedef struct _FILE_POSITION_INFORMATION ; #line 3751 typedef struct _FILE_ALIGNMENT_INFORMATION ; #line 3755 typedef struct _FILE_NAME_INFORMATION ; #line 3760 typedef struct _FILE_NETWORK_OPEN_INFORMATION ; #line 3770 typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION ; #line 3775 typedef struct _FILE_DISPOSITION_INFORMATION ; #line 3779 typedef struct _FILE_END_OF_FILE_INFORMATION ; #line 3784 typedef struct _FILE_FULL_EA_INFORMATION ; #line 3798 typedef enum _FSINFOCLASS ; #line 3810 typedef struct _FILE_FS_DEVICE_INFORMATION ; #line 3820 typedef union _FILE_SEGMENT_ELEMENT ; #line 3829 typedef enum _INTERFACE_TYPE ; #line 3854 typedef enum _DMA_WIDTH ; #line 3865 typedef enum _DMA_SPEED ; #line 3879 typedef void ; #line 3880 typedef void ; #line 3888 typedef enum _BUS_DATA_TYPE ; #line 3910 typedef struct _IO_ERROR_LOG_PACKET ; #line 3931 typedef struct _IO_ERROR_LOG_MESSAGE ; #line 4074 typedef struct _KEY_BASIC_INFORMATION ; #line 4081 typedef struct _KEY_NODE_INFORMATION ; #line 4091 typedef struct _KEY_FULL_INFORMATION ; #line 4106 typedef struct _KEY_NAME_INFORMATION ; #line 4112 typedef enum _KEY_INFORMATION_CLASS ; #line 4122 typedef struct _KEY_WRITE_TIME_INFORMATION ; #line 4126 typedef enum _KEY_SET_INFORMATION_CLASS ; #line 4134 typedef struct _KEY_VALUE_BASIC_INFORMATION ; #line 4141 typedef struct _KEY_VALUE_FULL_INFORMATION ; #line 4151 typedef struct _KEY_VALUE_PARTIAL_INFORMATION ; #line 4158 typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 ; #line 4164 typedef struct _KEY_VALUE_ENTRY ; #line 4171 typedef enum _KEY_VALUE_INFORMATION_CLASS ; #line 4210 typedef struct _OBJECT_NAME_INFORMATION ; #line 4221 typedef enum _SECTION_INHERIT ; #line 4294 typedef struct _CLIENT_ID ; #line 4298 typedef CLIENT_ID ; #line 4315 typedef struct _NT_TIB ; #line 4327 typedef NT_TIB ; #line 4332 typedef enum _PROCESSINFOCLASS ; #line 4366 typedef enum _THREADINFOCLASS ; #line 4395 typedef struct _PROCESS_WS_WATCH_INFORMATION ; #line 4405 typedef struct _PROCESS_BASIC_INFORMATION ; #line 4413 typedef PROCESS_BASIC_INFORMATION ; #line 4422 typedef struct _PROCESS_DEVICEMAP_INFORMATION ; #line 4440 typedef struct _PROCESS_SESSION_INFORMATION ; #line 4454 typedef struct _QUOTA_LIMITS ; #line 4462 typedef QUOTA_LIMITS ; #line 4472 typedef struct _IO_COUNTERS ; #line 4480 typedef IO_COUNTERS ; #line 4488 typedef struct _VM_COUNTERS ; #line 4501 typedef VM_COUNTERS ; #line 4508 typedef struct _POOLED_USAGE_AND_LIMITS ; #line 4519 typedef POOLED_USAGE_AND_LIMITS ; #line 4528 typedef struct _PROCESS_ACCESS_TOKEN ; #line 4555 typedef struct _KERNEL_USER_TIMES ; #line 4561 typedef KERNEL_USER_TIMES ; #line 4587 typedef enum _SYSTEM_POWER_STATE ; #line 4598 typedef enum { PowerActionNone = 0, PowerActionReserved, PowerActionSleep, PowerActionHibernate, PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, PowerActionWarmEject } ; typedef enum _DEVICE_POWER_STATE ; #line 4618 typedef union _POWER_STATE ; #line 4623 typedef enum _POWER_STATE_TYPE ; #line 4654 typedef ULONG ; typedef enum { LT_DONT_CARE, LT_LOWEST_LATENCY } ; #line 4663 typedef enum { SystemPowerPolicyAc, SystemPowerPolicyDc, VerifySystemPolicyAc, VerifySystemPolicyDc, SystemPowerCapabilities, SystemBatteryState, SystemPowerStateHandler, ProcessorStateHandler, SystemPowerPolicyCurrent, AdministratorPowerPolicy, SystemReserveHiberFile, ProcessorInformation, SystemPowerInformation } ; #line 4690 typedef ULONG ; typedef LONG ; #line 4693 typedef ULONG ; #line 4719 typedef union _MCI_STATS ; #line 4978 typedef struct _KPCR ; #line 5006 typedef KPCR ; #line 5012 typedef struct _KFLOATING_SAVE ; #line 5153 typedef enum _INTERLOCKED_RESULT ; #line 5252 #pragma warning(disable:4035) #line 6994 typedef struct _KSYSTEM_TIME ; #line 7014 #pragma warning(push) #pragma warning(disable:4164) #line 7019 #pragma function(_enable) #line 7020 #pragma function(_disable) #line 7024 #pragma warning(pop) #line 7085 typedef struct _FLOATING_SAVE_AREA ; #line 7097 typedef FLOATING_SAVE_AREA ; #line 7109 typedef struct _CONTEXT ; #line 7197 typedef CONTEXT ; #line 7826 typedef void ; #line 7850 typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE ; #line 7899 typedef struct _KUSER_SHARED_DATA ; #line 8123 typedef enum _CM_SERVICE_NODE_TYPE ; #line 8132 typedef enum _CM_SERVICE_LOAD_TYPE ; #line 8140 typedef enum _CM_ERROR_CONTROL_TYPE ; #line 8172 typedef int ; #line 8198 typedef enum _CM_SHARE_DISPOSITION ; #line 8211 typedef PVOID ; #line 24 "C:/NTDDK/inc/pshpack4.h" #pragma warning(disable:4103) #pragma pack(push, 4) #line 8309 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 8419 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_PARTIAL_RESOURCE_LIST ; #line 8443 typedef struct _CM_FULL_RESOURCE_DESCRIPTOR ; #line 8454 typedef struct _CM_RESOURCE_LIST ; #line 8471 typedef struct _DEVICE_FLAGS ; #line 8485 typedef struct _CM_COMPONENT_INFORMATION ; #line 8503 typedef struct _CM_ROM_BLOCK ; #line 24 "C:/NTDDK/inc/pshpack1.h" #pragma warning(disable:4103) #pragma pack(push, 1) #line 8518 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_INT13_DRIVE_PARAMETER ; #line 8532 typedef struct _CM_MCA_POS_DATA ; #line 8544 typedef struct _EISA_MEMORY_TYPE ; #line 8554 typedef struct _EISA_MEMORY_CONFIGURATION ; #line 8567 typedef struct _EISA_IRQ_DESCRIPTOR ; #line 8575 typedef struct _EISA_IRQ_CONFIGURATION ; #line 8585 typedef struct _DMA_CONFIGURATION_BYTE0 ; #line 8592 typedef struct _DMA_CONFIGURATION_BYTE1 ; #line 8599 typedef struct _EISA_DMA_CONFIGURATION ; #line 8609 typedef struct _EISA_PORT_DESCRIPTOR ; #line 8616 typedef struct _EISA_PORT_CONFIGURATION ; #line 8628 typedef struct _CM_EISA_SLOT_INFORMATION ; #line 8644 typedef struct _CM_EISA_FUNCTION_INFORMATION ; #line 8678 typedef struct _CM_PNP_BIOS_DEVICE_NODE ; #line 8692 typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 8761 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _CM_SCSI_DEVICE_DATA ; #line 8775 typedef struct _CM_VIDEO_DEVICE_DATA ; #line 8785 typedef struct _CM_SONIC_DEVICE_DATA ; #line 8796 typedef struct _CM_SERIAL_DEVICE_DATA ; #line 8810 typedef struct _CM_MONITOR_DEVICE_DATA ; #line 8844 typedef struct _CM_FLOPPY_DEVICE_DATA ; #line 8881 typedef struct _CM_KEYBOARD_DEVICE_DATA ; #line 8893 typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA ; #line 8905 typedef struct _CM_PCCARD_DEVICE_DATA ; #line 8944 typedef struct _IO_RESOURCE_DESCRIPTOR ; #line 9027 typedef struct _IO_RESOURCE_LIST ; #line 9036 typedef struct _IO_RESOURCE_REQUIREMENTS_LIST ; #line 9065 typedef struct _EXCEPTION_RECORD ; #line 9074 typedef EXCEPTION_RECORD ; typedef struct _EXCEPTION_RECORD32 ; #line 9085 typedef struct _EXCEPTION_RECORD64 ; #line 9099 typedef struct _EXCEPTION_POINTERS ; #line 9111 typedef enum _CONFIGURATION_TYPE ; #line 9161 typedef enum _KINTERRUPT_MODE ; #line 9170 typedef enum _KWAIT_REASON ; #line 9207 typedef struct _DISPATCHER_HEADER ; #line 9217 typedef struct _KWAIT_BLOCK ; #line 9230 typedef void ; #line 9244 typedef struct _KDEVICE_QUEUE ; #line 9252 typedef struct _KDEVICE_QUEUE_ENTRY ; #line 9263 typedef struct _KEVENT ; #line 9271 typedef BOOLEAN ; #line 9281 typedef struct _KMUTANT ; #line 9294 typedef struct _KSEMAPHORE ; #line 9304 typedef struct _KTIMER ; #line 9899 typedef enum _KBUGCHECK_BUFFER_DUMP_STATE ; #line 9907 typedef void ; #line 9914 typedef struct _KBUGCHECK_CALLBACK_RECORD ; #line 10002 typedef void ; #line 10020 typedef LOGICAL ; #line 10037 typedef void ; #line 10053 typedef enum _MEMORY_CACHING_TYPE_ORIG ; #line 10057 typedef enum _MEMORY_CACHING_TYPE ; #line 10087 typedef struct _DBGKD_DEBUG_DATA_HEADER64 ; #line 10115 typedef enum _POOL_TYPE ; #line 10195 typedef enum _EX_POOL_PRIORITY ; #line 10247 typedef struct _FAST_MUTEX ; #line 10574 typedef PVOID ; #line 10582 typedef void ; #line 10588 typedef struct _GENERAL_LOOKASIDE ; #line 10619 typedef struct _NPAGED_LOOKASIDE_LIST ; #line 10729 typedef struct _PAGED_LOOKASIDE_LIST ; #line 10882 typedef enum _WORK_QUEUE_TYPE ; #line 10889 typedef void ; #line 10895 typedef struct _WORK_QUEUE_ITEM ; #line 10926 typedef struct _ZONE_SEGMENT_HEADER ; #line 10931 typedef struct _ZONE_HEADER ; #line 11156 typedef ULONG_PTR ; #line 11157 typedef ERESOURCE_THREAD ; typedef struct _OWNER_ENTRY ; #line 11168 typedef struct _ERESOURCE ; #line 11197 typedef struct _RESOURCE_HASH_ENTRY ; #line 11204 typedef struct _RESOURCE_PERFORMANCE_DATA ; #line 11429 typedef struct _CALLBACK_OBJECT ; typedef void ; #line 11474 typedef GUID ; #line 11862 typedef enum _MM_SYSTEM_SIZE ; #line 11884 typedef enum _LOCK_OPERATION ; #line 11970 typedef enum _MM_PAGE_PRIORITY ; #line 11999 typedef struct _PHYSICAL_MEMORY_RANGE ; #line 12385 typedef NTSTATUS ; #line 12389 typedef NTSTATUS ; #line 12399 struct _DRIVER_OBJECT ; #line 12411 typedef enum _SECURITY_OPERATION_CODE ; #line 12426 typedef struct _SECURITY_SUBJECT_CONTEXT ; #line 12448 typedef struct _INITIAL_PRIVILEGE_SET ; #line 12462 typedef struct _ACCESS_STATE ; #line 12571 typedef void ; #line 12585 typedef void ; #line 12602 typedef struct _IMAGE_INFO ; #line 12620 typedef void ; #line 12859 typedef NTSTATUS ; #line 12878 typedef enum _IO_QUERY_DEVICE_DATA_FORMAT ; #line 12890 typedef enum _CREATE_FILE_TYPE ; #line 12905 struct _DEVICE_DESCRIPTION ; #line 12906 struct _DEVICE_OBJECT ; #line 12907 struct _DMA_ADAPTER ; #line 12908 struct _DRIVER_OBJECT ; #line 12909 struct _DRIVE_LAYOUT_INFORMATION ; #line 12910 struct _DISK_PARTITION ; #line 12911 struct _FILE_OBJECT ; #line 12912 struct _IRP ; #line 12913 struct _SCSI_REQUEST_BLOCK ; #line 12919 typedef void ; #line 12932 typedef void ; #line 12943 typedef NTSTATUS ; #line 12955 typedef void ; #line 12968 typedef void ; #line 12979 typedef NTSTATUS ; #line 12990 typedef void ; #line 13001 typedef void ; #line 13011 typedef NTSTATUS ; #line 13025 typedef BOOLEAN ; #line 13038 typedef BOOLEAN ; #line 13051 typedef BOOLEAN ; #line 13068 typedef BOOLEAN ; #line 13078 typedef BOOLEAN ; #line 13092 typedef BOOLEAN ; #line 13106 typedef BOOLEAN ; #line 13118 typedef BOOLEAN ; #line 13127 typedef BOOLEAN ; #line 13141 typedef BOOLEAN ; #line 13161 typedef void ; #line 13167 typedef void ; #line 13179 typedef void ; #line 13193 typedef BOOLEAN ; #line 13207 typedef BOOLEAN ; #line 13219 typedef BOOLEAN ; #line 13227 typedef BOOLEAN ; #line 13239 typedef BOOLEAN ; #line 13253 typedef NTSTATUS ; #line 13262 typedef NTSTATUS ; #line 13275 typedef NTSTATUS ; #line 13282 typedef NTSTATUS ; #line 13289 typedef BOOLEAN ; #line 13304 typedef BOOLEAN ; #line 13319 typedef BOOLEAN ; #line 13327 typedef BOOLEAN ; #line 13336 typedef BOOLEAN ; #line 13350 typedef struct _FAST_IO_DISPATCH ; #line 13386 typedef enum _IO_ALLOCATION_ACTION ; #line 13396 typedef IO_ALLOCATION_ACTION ; #line 13410 typedef struct _IO_SECURITY_CONTEXT ; #line 13434 typedef struct _VPB ; #line 13482 typedef struct _ADAPTER_OBJECT ; #line 13491 typedef struct _WAIT_CONTEXT_BLOCK ; #line 13503 typedef struct _CONTROLLER_OBJECT ; #line 13537 typedef struct _DEVICE_OBJECT ; #line 13575 typedef struct _DEVICE_OBJECT ; #line 13578 struct _DEVICE_OBJECT_POWER_EXTENSION ; typedef struct _DEVOBJ_EXTENSION ; #line 13608 typedef struct _DRIVER_EXTENSION ; #line 13645 typedef struct _DRIVER_OBJECT ; #line 13706 typedef struct _DRIVER_OBJECT ; #line 13715 typedef struct _SECTION_OBJECT_POINTERS ; #line 13720 typedef SECTION_OBJECT_POINTERS ; #line 13726 typedef struct _IO_COMPLETION_CONTEXT ; #line 13759 typedef struct _FILE_OBJECT ; #line 13788 typedef struct _FILE_OBJECT ; #line 13828 typedef struct _IRP ; #line 14078 typedef NTSTATUS ; #line 14163 typedef enum _DEVICE_RELATION_TYPE ; #line 14171 typedef struct _DEVICE_RELATIONS ; #line 14176 typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE ; #line 14185 typedef struct _INTERFACE ; #line 14196 typedef struct _DEVICE_CAPABILITIES ; #line 14229 typedef struct _POWER_SEQUENCE ; #line 14235 typedef enum { BusQueryDeviceID = 0, BusQueryHardwareIDs = 1, BusQueryCompatibleIDs = 2, BusQueryInstanceID = 3, BusQueryDeviceSerialNumber = 4 } ; typedef ULONG ; #line 14252 typedef enum { DeviceTextDescription = 0, DeviceTextLocationInformation = 1 } ; #line 24 "C:/NTDDK/inc/pshpack4.h" #pragma warning(disable:4103) #pragma pack(push, 4) #line 14271 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _IO_STACK_LOCATION ; #line 27 "C:/NTDDK/inc/poppack.h" #pragma warning(disable:4103) #pragma pack(pop) #line 14615 "C:/NTDDK/inc/ddk/ntddk.h" typedef struct _SHARE_ACCESS ; #line 14635 typedef struct _CONFIGURATION_INFORMATION ; #line 14848 typedef struct _BOOTDISK_INFORMATION ; #line 15754 typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK ; typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK ; #line 15764 typedef struct _IO_REMOVE_LOCK_DBG_BLOCK ; #line 15777 typedef struct _IO_REMOVE_LOCK ; #line 16009 typedef struct _IO_WORKITEM ; typedef void ; #line 16100 typedef enum { DevicePropertyDeviceDescription, DevicePropertyHardwareID, DevicePropertyCompatibleIDs, DevicePropertyBootConfiguration, DevicePropertyBootConfigurationTranslated, DevicePropertyClassName, DevicePropertyClassGuid, DevicePropertyDriverKeyName, DevicePropertyManufacturer, DevicePropertyFriendlyName, DevicePropertyLocationInformation, DevicePropertyPhysicalDeviceObjectName, DevicePropertyBusTypeGuid, DevicePropertyLegacyBusType, DevicePropertyBusNumber, DevicePropertyEnumeratorName, DevicePropertyAddress, DevicePropertyUINumber } ; typedef BOOLEAN ; #line 16129 typedef struct _DMA_ADAPTER ; #line 16135 typedef ULONG ; #line 16148 typedef struct _PNP_BUS_INFORMATION ; #line 16162 typedef struct _LEGACY_BUS_INFORMATION ; #line 16168 typedef struct _BUS_INTERFACE_STANDARD ; #line 16190 typedef BOOLEAN ; #line 16194 typedef NTSTATUS ; #line 16203 typedef NTSTATUS ; #line 16206 typedef NTSTATUS ; #line 16210 typedef NTSTATUS ; #line 16214 typedef NTSTATUS ; #line 16218 typedef void ; #line 16222 typedef NTSTATUS ; #line 16227 typedef void ; #line 16231 typedef struct _ACPI_INTERFACE_STANDARD ; #line 16255 typedef enum _ACPI_REG_TYPE ; #line 16268 typedef USHORT ; #line 16272 typedef void ; #line 16278 typedef struct ACPI_REGS_INTERFACE_STANDARD ; #line 16300 typedef struct { PVOID LinkNode ; ULONG StaticVector ; UCHAR Flags ; } ; #line 16314 typedef NTSTATUS ; #line 16329 typedef NTSTATUS ; #line 16336 typedef void ; #line 16343 typedef struct _INT_ROUTE_INTERFACE_STANDARD ; #line 16366 typedef struct _IO_ASSIGNED_RESOURCES ; #line 16490 typedef enum _IO_NOTIFICATION_EVENT_CATEGORY ; #line 16504 typedef NTSTATUS ; #line 16537 typedef void ; #line 16573 typedef enum _ARBITER_ACTION ; #line 16586 typedef struct _ARBITER_CONFLICT_INFO ; #line 16608 typedef struct _ARBITER_PARAMETERS ; #line 16719 typedef enum _ARBITER_REQUEST_SOURCE ; #line 16731 typedef enum _ARBITER_RESULT ; #line 16761 typedef struct _ARBITER_LIST_ENTRY ; #line 16832 typedef NTSTATUS ; #line 16853 typedef struct _ARBITER_INTERFACE ; #line 16880 typedef enum _RESOURCE_TRANSLATION_DIRECTION ; #line 16889 typedef NTSTATUS ; #line 16901 typedef NTSTATUS ; #line 16915 typedef struct _TRANSLATOR_INTERFACE ; #line 16931 typedef NTSTATUS ; #line 16945 typedef struct _LEGACY_DEVICE_DETECTION_INTERFACE ; #line 16959 typedef struct _PLUGPLAY_NOTIFICATION_HEADER ; #line 16972 typedef struct _HWPROFILE_CHANGE_NOTIFICATION ; #line 16986 typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION ; #line 17006 typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION ; #line 17026 typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION ; #line 17054 typedef struct _DEVICE_DESCRIPTION ; #line 17086 typedef BOOLEAN ; #line 17333 typedef void ; #line 17339 typedef struct _DEVICE_CONTROL_CONTEXT ; #line 17349 typedef PBUS_HANDLER ; #line 17355 typedef void ; #line 17365 typedef enum _HAL_QUERY_INFORMATION_CLASS ; #line 17381 typedef enum _HAL_SET_INFORMATION_CLASS ; #line 17388 typedef NTSTATUS ; #line 17405 typedef NTSTATUS ; #line 17420 typedef void ; #line 17429 typedef void ; #line 17438 typedef NTSTATUS ; #line 17447 typedef NTSTATUS ; #line 17456 typedef NTSTATUS ; #line 17466 typedef NTSTATUS ; #line 17475 typedef NTSTATUS ; #line 17486 typedef struct _PM_DISPATCH_TABLE ; #line 17492 typedef NTSTATUS ; #line 17505 typedef struct _DMA_ADAPTER ; #line 17520 typedef NTSTATUS ; #line 17543 typedef BOOLEAN ; #line 17553 typedef NTSTATUS ; #line 17566 typedef void ; #line 17572 typedef void ; #line 17578 typedef BOOLEAN ; #line 17588 typedef struct { ULONG Version ; pHalQuerySystemInformation HalQuerySystemInformation ; pHalSetSystemInformation HalSetSystemInformation ; pHalQueryBusSlots HalQueryBusSlots ; ULONG Spare1 ; pHalExamineMBR HalExamineMBR ; pHalIoAssignDriveLetters HalIoAssignDriveLetters ; pHalIoReadPartitionTable HalIoReadPartitionTable ; pHalIoSetPartitionInformation HalIoSetPartitionInformation ; pHalIoWritePartitionTable HalIoWritePartitionTable ; pHalHandlerForBus HalReferenceHandlerForBus ; pHalReferenceBusHandler HalReferenceBusHandler ; pHalReferenceBusHandler HalDereferenceBusHandler ; pHalInitPnpDriver HalInitPnpDriver ; pHalInitPowerManagement HalInitPowerManagement ; pHalGetDmaAdapter HalGetDmaAdapter ; pHalGetInterruptTranslator HalGetInterruptTranslator ; } ; #line 17650 typedef struct _HAL_BUS_INFORMATION ; #line 17658 typedef struct _HAL_PROFILE_SOURCE_INFORMATION ; #line 17665 typedef struct _HAL_PROFILE_SOURCE_INTERVAL ; #line 17671 typedef enum _HAL_DISPLAY_BIOS_INFORMATION ; #line 17678 typedef struct _HAL_POWER_INFORMATION ; #line 17683 typedef struct _HAL_PROCESSOR_SPEED_INFO ; #line 17688 typedef struct _HAL_CALLBACKS ; #line 17694 typedef struct _HAL_PROCESSOR_FEATURE ; #line 17706 typedef union _MCI_ADDR ; #line 17716 typedef enum { HAL_MCE_RECORD, HAL_MCA_RECORD } ; #line 17726 typedef struct _MCA_EXCEPTION ; #line 17752 typedef void ; #line 17762 typedef struct _MCA_DRIVER_INFO ; #line 17772 typedef struct _SCATTER_GATHER_ELEMENT ; #line 17778 #pragma warning(disable:4200) #line 17779 typedef struct _SCATTER_GATHER_LIST ; #line 17784 #pragma warning(default:4200) #line 17788 typedef struct _DMA_OPERATIONS ; typedef struct _DMA_ADAPTER ; #line 17797 typedef void ; #line 17801 typedef PVOID ; #line 17808 typedef void ; #line 17816 typedef NTSTATUS ; #line 17824 typedef BOOLEAN ; #line 17833 typedef void ; #line 17837 typedef void ; #line 17843 typedef PHYSICAL_ADDRESS ; #line 17852 typedef ULONG ; #line 17856 typedef ULONG ; #line 17860 typedef void ; #line 17868 typedef NTSTATUS ; #line 17880 typedef void ; #line 17887 typedef struct _DMA_OPERATIONS ; #line 18235 typedef void ; #line 18321 typedef struct _OBJECT_HANDLE_INFORMATION ; #line 18402 typedef struct _PCI_SLOT_NUMBER ; #line 18418 typedef struct _PCI_COMMON_CONFIG ; #line 18591 typedef struct _PCI_CAPABILITIES_HEADER ; #line 18600 typedef struct _PCI_PMC ; #line 18618 typedef struct _PCI_PMCSR ; #line 18628 typedef struct _PCI_PMCSR_BSE ; #line 18635 typedef struct _PCI_PM_CAPABILITY ; #line 18679 typedef struct _PCI_AGP_CAPABILITY ; #line 18720 typedef struct _PCI_MSI_CAPABILITY ; #line 18946 typedef void ; #line 18954 typedef void ; #line 18963 typedef void ; #line 18975 typedef struct _PCIBUSDATA ; #line 18986 typedef ULONG ; #line 18995 typedef void ; #line 19000 typedef void ; #line 19006 typedef struct _PCI_BUS_INTERFACE_STANDARD ; #line 19028 typedef BOOLEAN ; #line 19043 typedef struct _PCI_DEVICE_PRESENT_INTERFACE ; #line 16 "../slam-kernel.c" extern void errorFn() ; #line 19 extern int s ; extern int UNLOADED , NP , DC , SKIP1 , SKIP2 , MPR1 , MPR3 , IPC ; extern int pended ; extern PIO_COMPLETION_ROUTINE compFptr ; extern int compRegistered ; extern int lowerDriverReturn ; extern int setEventCalled ; extern int customIrp ; #line 28 extern void _BLAST_init() ; #line 32 extern NTSTATUS DriverEntry(PDRIVER_OBJECT , PUNICODE_STRING ) ; #line 36 IRP * pirp ; void stub_driver_init() { s = NP; pended = 0; compFptr = 0; compRegistered = 0; lowerDriverReturn = 0; setEventCalled = 0; customIrp = 0; } #line 47 int main() { #line 48 DRIVER_OBJECT d ; UNICODE_STRING u ; NTSTATUS status ; int we_should_unload ; #line 53 _BLAST_init(); #line 55 status = DriverEntry(& d, & u); #line 57 if((NTSTATUS )status >= 0) { #line 58 int __BLAST_NONDET ; int idx ; int irp_choice ; DEVICE_OBJECT devobj ; #line 67 extern NTSTATUS KbFilter_AddDevice(PDRIVER_OBJECT , PDEVICE_OBJECT ) ; #line 70 s = NP; pended = (compFptr = (compRegistered = (lowerDriverReturn = (setEventCalled = (customIrp = 0))))); #line 74 (pirp->IoStatus).Status = (NTSTATUS )0x00000000L; myStatus = (NTSTATUS )0x00000000L; #line 77 if(irp_choice == 0) { #line 78 (pirp->IoStatus).Status = (NTSTATUS )0xC00000BBL; myStatus = (NTSTATUS )0xC00000BBL; } #line 82 status = KbFilter_AddDevice(& d, & devobj); #line 84 stub_driver_init(); #line 86 if(! ((NTSTATUS )status >= 0)) #line 86 return - 1; #line 90 switch(__BLAST_NONDET) { case 0: #line 92 ; { #line 93 extern NTSTATUS KbFilter_CreateClose(PDEVICE_OBJECT , PIRP ) ; #line 94 status = KbFilter_CreateClose(& devobj, pirp); } #line 95 break; #line 98 case 1: #line 98 ; { #line 99 extern NTSTATUS KbFilter_CreateClose(PDEVICE_OBJECT , PIRP ) ; #line 100 status = KbFilter_CreateClose(& devobj, pirp); } #line 101 break; #line 104 case 2: #line 104 ; { #line 105 extern NTSTATUS KbFilter_IoCtl(PDEVICE_OBJECT , PIRP ) ; #line 106 status = KbFilter_IoCtl(& devobj, pirp); } #line 107 break; #line 110 case 3: #line 110 ; { #line 111 extern NTSTATUS KbFilter_PnP(PDEVICE_OBJECT , PIRP ) ; #line 112 status = KbFilter_PnP(& devobj, pirp); } #line 113 break; #line 116 case 4: #line 116 ; { #line 117 extern NTSTATUS KbFilter_Power(PDEVICE_OBJECT , PIRP ) ; #line 118 status = KbFilter_Power(& devobj, pirp); } #line 119 break; #line 140 case 8: #line 140 ; { #line 141 extern NTSTATUS KbFilter_InternIoCtl(PDEVICE_OBJECT , PIRP ) ; #line 142 status = KbFilter_InternIoCtl(& devobj, pirp); } #line 143 break; #line 181 default : #line 181 ; return - 1; } #line 187 if(we_should_unload) { #line 188 extern void KbFilter_Unload(PDRIVER_OBJECT ) ; KbFilter_Unload(& d); } } #line 193 RETPT: { #line 194 if(pended == 1 && s == NP) { #line 195 s = NP; } else { #line 197 if(pended == 1 && s == MPR3) { #line 198 s = MPR3; } else { #line 200 if(s == UNLOADED || status == - 1) { #line 201 ; } else { #line 203 if(s != SKIP2 && s != IPC && s != DC) #line 203 ;//BLAST slice errorFn(); //BUG 2 else { #line 205 if(pended == 1) { #line 206 if(status != 259) #line 206 errorFn(); } else { #line 208 if(s == DC) { #line 209 if(status == 259) #line 209 ; //BLAST slice errorFn(); //BUG 1 } else { #line 211 if(status != lowerDriverReturn) #line 211 ;//BLAST sliced errorFn(); } } } } } } } #line 218 return status; } char _SLAM_alloc_dummy ; char * malloc(int i ) { #line 224 int __BLAST_NONDET ; #line 226 if(__BLAST_NONDET) { #line 227 return (char * )0; } else #line 228 return (char * )1; } #line 237 __declspec(dllimport) void ExAcquireFastMutex(PFAST_MUTEX FastMutex ) { #line 244 return; } __declspec(dllimport) void ExReleaseFastMutex(PFAST_MUTEX FastMutex ) { #line 254 return; } #line 271 __declspec(dllimport) PVOID __stdcall ExAllocatePoolWithTag(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) { #line 280 PVOID x ; x = malloc(NumberOfBytes); return x; } #line 286 __declspec(dllimport) void __stdcall ExFreePool(PVOID P ) { #line 292 return; } __declspec(dllimport) PLIST_ENTRY ExfInterlockedInsertHeadList(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) { #line 303 return (void * )0; } __declspec(dllimport) PLIST_ENTRY ExfInterlockedInsertTailList(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) { #line 315 return (void * )0; } __declspec(dllimport) PLIST_ENTRY ExfInterlockedRemoveHeadList(PLIST_ENTRY ListHead , PKSPIN_LOCK Lock ) { #line 326 return (void * )0; } #line 342 __declspec(dllimport) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length , BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota , PIRP Irp ) { #line 352 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 354 case 0: #line 354 ; #line 354 return (void * )malloc(sizeof(MDL )); default : #line 355 ; #line 355 return (void * )0; } } __declspec(dllimport) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice ) { #line 366 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 368 case 0: #line 368 ; #line 368 return TargetDevice; default : #line 369 ; #line 369 return (void * )0; } } __declspec(dllimport) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject , PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset , PIO_STATUS_BLOCK IoStatusBlock ) { #line 384 int __BLAST_NONDET ; customIrp = 1; #line 387 switch(__BLAST_NONDET) { #line 388 case 0: #line 388 ; #line 388 return (void * )malloc(sizeof(IRP )); default : #line 389 ; #line 389 return (void * )0; } } #line 404 __declspec(dllimport) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode , PDEVICE_OBJECT DeviceObject , PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer , ULONG OutputBufferLength , BOOLEAN InternalDeviceIoControl , PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock ) { #line 418 int __BLAST_NONDET ; customIrp = 1; #line 421 switch(__BLAST_NONDET) { #line 422 case 0: #line 422 ; #line 422 return (void * )malloc(sizeof(IRP )); default : #line 423 ; #line 423 return (void * )0; } } __declspec(dllimport) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject , ULONG DeviceExtensionSize , PUNICODE_STRING DeviceName , ULONG DeviceType , ULONG DeviceCharacteristics , BOOLEAN Exclusive , PDEVICE_OBJECT * DeviceObject ) { #line 439 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 441 case 0: #line 441 ; #line 441 * DeviceObject = (void * )malloc(sizeof(DEVICE_OBJECT )); return (NTSTATUS )0x00000000L; #line 448 default : #line 448 ; #line 448 return (NTSTATUS )0xC0000001L; } } #line 453 __declspec(dllimport) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName ) { #line 460 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 462 case 0: #line 462 ; #line 462 return (NTSTATUS )0x00000000L; default : #line 463 ; #line 463 return (NTSTATUS )0xC0000001L; } } __declspec(dllimport) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) { } #line 476 __declspec(dllimport) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) { #line 482 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 484 case 0: #line 484 ; #line 484 return (NTSTATUS )0x00000000L; default : #line 485 ; #line 485 return (NTSTATUS )0xC0000001L; } } __declspec(dllimport) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) { } #line 498 __declspec(dllimport) void IoFreeIrp(PIRP Irp ) { } #line 507 __declspec(dllimport) void IoFreeMdl(PMDL Mdl ) { } #line 516 __declspec(dllimport) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void ) { #line 521 return (void * )malloc(sizeof(CONFIGURATION_INFORMATION )); } __declspec(dllimport) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType , PULONG BusNumber , PCONFIGURATION_TYPE ControllerType , PULONG ControllerNumber , PCONFIGURATION_TYPE PeripheralType , PULONG PeripheralNumber , PIO_QUERY_DEVICE_ROUTINE CalloutRoutine , PVOID Context ) { #line 537 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 539 case 0: #line 539 ; #line 539 return (NTSTATUS )0x00000000L; default : #line 540 ; #line 540 return (NTSTATUS )0xC0000001L; } } __declspec(dllimport) NTSTATUS __stdcall IoRegisterDeviceInterface(PDEVICE_OBJECT PhysicalDeviceObject , const GUID * InterfaceClassGuid , PUNICODE_STRING ReferenceString , PUNICODE_STRING SymbolicLinkName ) { #line 554 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 556 case 0: #line 556 ; #line 556 return (NTSTATUS )0x00000000L; default : #line 557 ; #line 557 return (NTSTATUS )0xC0000010L; } } __declspec(dllimport) void IoReleaseCancelSpinLock(KIRQL Irql ) { } #line 570 __declspec(dllimport) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName , BOOLEAN Enable ) { #line 577 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 579 case 0: #line 579 ; #line 579 return (NTSTATUS )0x00000000L; #line 584 default : #line 584 ; #line 584 return (NTSTATUS )0xC0000001L; } } #line 589 __declspec(dllimport) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) { } #line 602 void stubMoreProcessingRequired() { #line 605 if(s == NP) #line 605 s = MPR1; else #line 606 errorFn(); } __declspec(dllimport) NTSTATUS IofCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { #line 617 int __BLAST_NONDET ; NTSTATUS returnVal2 ; int compRetStatus ; PVOID lcontext ; #line 622 if(compRegistered) { #line 623 /* compRetStatus = (* compFptr)(DeviceObject, Irp, lcontext); */ compRetStatus = KbFilter_Complete(DeviceObject, Irp, lcontext); if(compRetStatus == (NTSTATUS )0xC0000016L) #line 624 stubMoreProcessingRequired(); } #line 629 switch(__BLAST_NONDET) { #line 630 case 0: #line 630 ; #line 630 returnVal2 = (NTSTATUS )0x00000000L; #line 630 break; #line 632 case 1: #line 632 ; #line 632 returnVal2 = (NTSTATUS )0xC0000001L; #line 632 break; #line 634 default : #line 634 ; #line 634 returnVal2 = (NTSTATUS )0x00000103L; #line 634 break; } if(s == NP) { #line 637 s = IPC; #line 637 lowerDriverReturn = returnVal2; } else { #line 639 if(s == MPR1) { #line 640 if(returnVal2 == 259) { #line 641 s = MPR3; #line 641 lowerDriverReturn = returnVal2; } else { #line 643 s = NP; #line 643 lowerDriverReturn = returnVal2; } } else { #line 646 if(s == SKIP1) { #line 646 s = SKIP2; #line 646 lowerDriverReturn = returnVal2; } else #line 647 errorFn(); } } return returnVal2; } #line 672 __declspec(dllimport) void IofCompleteRequest(PIRP Irp , CCHAR PriorityBoost ) { #line 680 if(s == NP) #line 680 s = DC; else #line 681 errorFn(); } __declspec(dllimport) KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) { } #line 693 __declspec(dllimport) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Interval ) { #line 701 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 703 case 0: #line 703 ; #line 703 return (NTSTATUS )0x00000000L; #line 708 default : #line 708 ; #line 708 return (NTSTATUS )0xC0000001L; } } #line 713 __declspec(dllimport) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type , BOOLEAN State ) { } #line 724 __declspec(dllimport) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore , LONG Count , LONG Limit ) { } #line 735 __declspec(dllimport) void __stdcall KeInitializeSpinLock(PKSPIN_LOCK SpinLock ) { } #line 745 __declspec(dllimport) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment , LONG Adjustment , BOOLEAN Wait ) { #line 754 LONG r ; return r; } __declspec(dllimport) void KfReleaseSpinLock(PKSPIN_LOCK SpinLock , KIRQL NewIrql ) { } #line 769 __declspec(dllimport) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait ) { #line 777 LONG l ; #line 779 setEventCalled = 1; #line 781 return l; } __declspec(dllimport) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Timeout ) { #line 794 int __BLAST_NONDET ; if(s == MPR3 && setEventCalled == 1) { #line 796 s = NP; #line 796 setEventCalled = 0; } else { #line 798 if(customIrp == 1) { #line 799 s = NP; #line 799 customIrp = 0; } else { #line 801 if(s == MPR3) #line 801 errorFn(); } } #line 805 switch(__BLAST_NONDET) { #line 806 case 0: #line 806 ; #line 806 return (NTSTATUS )0x00000000L; #line 812 default : #line 812 ; #line 812 return (NTSTATUS )0xC0000001L; } } #line 817 __declspec(dllimport) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS HighestAcceptableAddress ) { #line 823 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 825 case 0: #line 825 ; #line 825 return malloc(NumberOfBytes); case 1: #line 826 ; #line 826 return (void * )0; } } __declspec(dllimport) void MmFreeContiguousMemory(PVOID BaseAddress ) { } #line 839 __declspec(dllimport) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode , MEMORY_CACHING_TYPE CacheType , PVOID BaseAddress , ULONG BugCheckOnFailure , MM_PAGE_PRIORITY Priority ) { #line 850 return (void * )0; } __declspec(dllimport) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) { #line 859 return (void * )0; } __declspec(dllimport) void MmResetDriverPaging(PVOID AddressWithinSection ) { } #line 872 __declspec(dllimport) void MmUnlockPages(PMDL MemoryDescriptorList ) { } #line 881 __declspec(dllimport) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType , KPROCESSOR_MODE AccessMode , PVOID * Object , POBJECT_HANDLE_INFORMATION HandleInformation ) { #line 892 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 894 case 0: #line 894 ; #line 894 return (NTSTATUS )0x00000000L; #line 900 default : #line 900 ; #line 900 return (NTSTATUS )0xC0000001L; } } #line 906 __declspec(dllimport) void ObfDereferenceObject(PVOID Object ) { } #line 916 __declspec(dllimport) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { #line 923 int __BLAST_NONDET ; int compRetStatus ; NTSTATUS returnVal ; #line 927 PVOID lcontext ; #line 929 if(compRegistered) { #line 930 /* compRetStatus = (* compFptr)(DeviceObject, Irp, lcontext); */ compRetStatus = KbFilter_Complete(DeviceObject, Irp, lcontext); if(compRetStatus == (NTSTATUS )0xC0000016L) #line 931 stubMoreProcessingRequired(); } #line 936 switch(__BLAST_NONDET) { #line 937 case 0: #line 937 ; returnVal = (NTSTATUS )0x00000000L; break; case 1: #line 940 ; returnVal = (NTSTATUS )0xC0000001L; break; default : #line 943 ; returnVal = (NTSTATUS )0x00000103L; #line 944 break; } if(s == NP) { #line 947 s = IPC; #line 947 lowerDriverReturn = returnVal; } else { #line 949 if(s == MPR1) { #line 950 if(returnVal == (NTSTATUS )0x00000103L) { #line 951 s = MPR3; #line 951 lowerDriverReturn = returnVal; } else { #line 953 s = NP; #line 953 lowerDriverReturn = returnVal; } } else { #line 956 if(s == SKIP1) { #line 956 s = SKIP2; lowerDriverReturn = returnVal; } else #line 957 errorFn(); } } return returnVal; } __declspec(dllimport) void PoStartNextPowerIrp(PIRP Irp ) { } #line 972 __declspec(dllimport) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle , ULONG DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , HANDLE ProcessHandle , PCLIENT_ID ClientId , PKSTART_ROUTINE StartRoutine , PVOID StartContext ) { #line 984 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 986 case 0: #line 986 ; #line 986 return (NTSTATUS )0x00000000L; default : #line 987 ; #line 987 return (NTSTATUS )0xC0000001L; } } __declspec(dllimport) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) { #line 997 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 999 case 0: #line 999 ; #line 999 return (NTSTATUS )0x00000000L; default : #line 1000 ; #line 1000 return (NTSTATUS )0xC0000001L; } } #line 1005 __declspec(dllimport) NTSTATUS __stdcall RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString , PANSI_STRING SourceString , BOOLEAN AllocateDestinationString ) { #line 1014 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 1016 case 0: #line 1016 ; #line 1016 return (NTSTATUS )0x00000000L; default : #line 1017 ; #line 1017 return (NTSTATUS )0xC0000001L; } } __declspec(dllimport) SIZE_T __stdcall RtlCompareMemory(const void * Source1 , const void * Source2 , SIZE_T Length ) { #line 1030 SIZE_T r ; return r; } __declspec(dllimport) void __stdcall RtlCopyUnicodeString(PUNICODE_STRING DestinationString , PUNICODE_STRING SourceString ) { } #line 1045 __declspec(dllimport) NTSTATUS __stdcall RtlDeleteRegistryValue(ULONG RelativeTo , PCWSTR Path , PCWSTR ValueName ) { #line 1054 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 1056 case 0: #line 1056 ; #line 1056 return (NTSTATUS )0x00000000L; default : #line 1057 ; #line 1057 return (NTSTATUS )0xC0000001L; } } __declspec(dllimport) void __stdcall RtlFreeUnicodeString(PUNICODE_STRING UnicodeString ) { } #line 1071 __declspec(dllimport) void __stdcall RtlInitString(PSTRING DestinationString , PCSZ SourceString ) { } #line 1082 __declspec(dllimport) void __stdcall RtlInitUnicodeString(PUNICODE_STRING DestinationString , PCWSTR SourceString ) { } #line 1094 __declspec(dllimport) NTSTATUS __stdcall RtlQueryRegistryValues(ULONG RelativeTo , PCWSTR Path , PRTL_QUERY_REGISTRY_TABLE QueryTable , PVOID Context , PVOID Environment ) { #line 1105 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 1107 case 0: #line 1107 ; #line 1107 return (NTSTATUS )0x00000000L; #line 1112 default : #line 1112 ; #line 1112 return (NTSTATUS )0xC0000001L; } } __declspec(dllimport) NTSTATUS __stdcall ZwClose(HANDLE Handle ) { #line 1123 int __BLAST_NONDET ; switch(__BLAST_NONDET) { #line 1125 case 0: #line 1125 ; #line 1125 return (NTSTATUS )0x00000000L; #line 1131 default : #line 1131 ; #line 1131 return (NTSTATUS )0xC0000001L; } }