Revert r46466 this time for real
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 27 Mar 2010 18:57:56 +0000 (18:57 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 27 Mar 2010 18:57:56 +0000 (18:57 +0000)
svn path=/trunk/; revision=46493

115 files changed:
reactos/boot/freeldr/freeldr/disk/scsiport.c
reactos/dll/win32/gdi32/objects/bitmap.c
reactos/dll/win32/hid/precomp.h
reactos/dll/win32/setupapi/setupapi.rbuild
reactos/dll/win32/setupapi/setupapi_private.h
reactos/drivers/battery/battc/battc.c
reactos/drivers/directx/dxapi/dxapi_driver.h
reactos/drivers/directx/dxg/dxg_int.h
reactos/drivers/filesystems/ext2/inc/ext2fsd.h
reactos/drivers/serial/serial/serial.h
reactos/drivers/storage/ide/uniata/atapi.h
reactos/drivers/storage/ide/uniata/bsmaster.h
reactos/drivers/storage/ide/uniata/config.h
reactos/drivers/storage/ide/uniata/id_ata.cpp
reactos/drivers/storage/ide/uniata/srb.h
reactos/drivers/storage/scsiport/stubs.c
reactos/drivers/video/displays/vga/vgaddi.h
reactos/include/ddk/afilter.h
reactos/include/ddk/atsmedia.h [new file with mode: 0644]
reactos/include/ddk/bdasup.h
reactos/include/ddk/cfg.h [moved from reactos/include/psdk/cfg.h with 65% similarity]
reactos/include/ddk/cfgmgr32.h [new file with mode: 0644]
reactos/include/ddk/csq.h
reactos/include/ddk/hidclass.h
reactos/include/ddk/hidpi.h
reactos/include/ddk/mcd.h
reactos/include/ddk/mce.h [deleted file]
reactos/include/ddk/miniport.h
reactos/include/ddk/minitape.h
reactos/include/ddk/ndis.h
reactos/include/ddk/ntagp.h
reactos/include/ddk/ntdd8042.h
reactos/include/ddk/ntddk.h
reactos/include/ddk/ntifs.h
reactos/include/ddk/ntimage.h
reactos/include/ddk/ntpoapi.h
reactos/include/ddk/parallel.h
reactos/include/ddk/scsiwmi.h
reactos/include/ddk/smbus.h
reactos/include/ddk/srb.h
reactos/include/ddk/storport.h
reactos/include/ddk/tdikrnl.h
reactos/include/ddk/tvout.h [moved from reactos/include/psdk/tvout.h with 81% similarity]
reactos/include/ddk/upssvc.h
reactos/include/ddk/video.h
reactos/include/ddk/videoagp.h
reactos/include/ddk/wdm.h
reactos/include/ddk/wmilib.h
reactos/include/ddk/xmldsodid.h [new file with mode: 0644]
reactos/include/ndk/ketypes.h
reactos/include/ndk/peb_teb.h
reactos/include/ndk/pstypes.h
reactos/include/ndk/rtlfuncs.h
reactos/include/psdk/atsmedia.h [deleted file]
reactos/include/psdk/batclass.h
reactos/include/psdk/cfgmgr32.h [deleted file]
reactos/include/psdk/devpropdef.h [deleted file]
reactos/include/psdk/evntprov.h [deleted file]
reactos/include/psdk/ktmtypes.h
reactos/include/psdk/ntdef.h
reactos/include/psdk/ntiologc.h [deleted file]
reactos/include/psdk/ntstatus.h
reactos/include/psdk/usbioctl.h
reactos/include/psdk/winbase.h
reactos/include/psdk/wincon.h
reactos/include/psdk/windef.h
reactos/include/psdk/wingdi.h
reactos/include/psdk/winnt.h
reactos/include/psdk/winuser.h
reactos/include/reactos/idl/pnp.idl
reactos/include/reactos/wine/cfgmgr32.h [new file with mode: 0644]
reactos/include/xdk/amd64/ke.h [deleted file]
reactos/include/xdk/amd64/mm.h [deleted file]
reactos/include/xdk/arm/ke.h [deleted file]
reactos/include/xdk/cmfuncs.h [deleted file]
reactos/include/xdk/cmtypes.h [deleted file]
reactos/include/xdk/exfuncs.h [deleted file]
reactos/include/xdk/extypes.h [deleted file]
reactos/include/xdk/generate.bat [deleted file]
reactos/include/xdk/halfuncs.h [deleted file]
reactos/include/xdk/haltypes.h [deleted file]
reactos/include/xdk/ia64/ke.h [deleted file]
reactos/include/xdk/interlocked.h [deleted file]
reactos/include/xdk/iofuncs.h [deleted file]
reactos/include/xdk/iotypes.h [deleted file]
reactos/include/xdk/kdfuncs.h [deleted file]
reactos/include/xdk/kdtypes.h [deleted file]
reactos/include/xdk/kefuncs.h [deleted file]
reactos/include/xdk/ketypes.h [deleted file]
reactos/include/xdk/mips/ke.h [deleted file]
reactos/include/xdk/mmfuncs.h [deleted file]
reactos/include/xdk/mmtypes.h [deleted file]
reactos/include/xdk/ntddk.template.h [deleted file]
reactos/include/xdk/nttmapi.h [deleted file]
reactos/include/xdk/obfuncs.h [deleted file]
reactos/include/xdk/obtypes.h [deleted file]
reactos/include/xdk/pofuncs.h [deleted file]
reactos/include/xdk/potypes.h [deleted file]
reactos/include/xdk/ppc/ke.h [deleted file]
reactos/include/xdk/psfuncs.h [deleted file]
reactos/include/xdk/pstypes.h [deleted file]
reactos/include/xdk/rtlfuncs.h [deleted file]
reactos/include/xdk/rtltypes.h [deleted file]
reactos/include/xdk/sefuncs.h [deleted file]
reactos/include/xdk/setypes.h [deleted file]
reactos/include/xdk/wdm.template.h [deleted file]
reactos/include/xdk/wmifuncs.h [deleted file]
reactos/include/xdk/wmitypes.h [deleted file]
reactos/include/xdk/x86/ke.h [deleted file]
reactos/include/xdk/x86/mm.h [deleted file]
reactos/include/xdk/zwfuncs.h [deleted file]
reactos/ntoskrnl/include/ntoskrnl.h
reactos/ntoskrnl/mm/mminit.c
reactos/subsystems/subsystems.rbuild
reactos/subsystems/win32/win32k/pch.h

index 81ba4a4..d8d15b1 100644 (file)
@@ -385,7 +385,7 @@ SpiCreatePortConfig(
 }
 
 VOID
 }
 
 VOID
-__cdecl
+DDKCDECLAPI
 ScsiDebugPrint(
     IN ULONG DebugPrintLevel,
     IN PCCHAR DebugMessage,
 ScsiDebugPrint(
     IN ULONG DebugPrintLevel,
     IN PCCHAR DebugMessage,
@@ -421,7 +421,7 @@ ScsiDebugPrint(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortCompleteRequest(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
 ScsiPortCompleteRequest(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
@@ -435,7 +435,7 @@ ScsiPortCompleteRequest(
 
 #undef ScsiPortConvertPhysicalAddressToUlong
 ULONG
 
 #undef ScsiPortConvertPhysicalAddressToUlong
 ULONG
-NTAPI
+DDKAPI
 ScsiPortConvertPhysicalAddressToUlong(
     IN SCSI_PHYSICAL_ADDRESS Address)
 {
 ScsiPortConvertPhysicalAddressToUlong(
     IN SCSI_PHYSICAL_ADDRESS Address)
 {
@@ -443,7 +443,7 @@ ScsiPortConvertPhysicalAddressToUlong(
 }
 
 SCSI_PHYSICAL_ADDRESS
 }
 
 SCSI_PHYSICAL_ADDRESS
-NTAPI
+DDKAPI
 ScsiPortConvertUlongToPhysicalAddress(
     IN ULONG UlongAddress)
 {
 ScsiPortConvertUlongToPhysicalAddress(
     IN ULONG UlongAddress)
 {
@@ -451,7 +451,7 @@ ScsiPortConvertUlongToPhysicalAddress(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortFlushDma(
     IN PVOID DeviceExtension)
 {
 ScsiPortFlushDma(
     IN PVOID DeviceExtension)
 {
@@ -460,7 +460,7 @@ ScsiPortFlushDma(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortFreeDeviceBase(
     IN PVOID HwDeviceExtension,
     IN PVOID MappedAddress)
 ScsiPortFreeDeviceBase(
     IN PVOID HwDeviceExtension,
     IN PVOID MappedAddress)
@@ -469,7 +469,7 @@ ScsiPortFreeDeviceBase(
 }
 
 ULONG
 }
 
 ULONG
-NTAPI
+DDKAPI
 ScsiPortGetBusData(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
 ScsiPortGetBusData(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
@@ -482,7 +482,7 @@ ScsiPortGetBusData(
 }
 
 PVOID
 }
 
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetDeviceBase(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
 ScsiPortGetDeviceBase(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
@@ -514,7 +514,7 @@ ScsiPortGetDeviceBase(
 }
 
 PVOID
 }
 
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetLogicalUnit(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
 ScsiPortGetLogicalUnit(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
@@ -527,7 +527,7 @@ ScsiPortGetLogicalUnit(
 }
 
 SCSI_PHYSICAL_ADDRESS
 }
 
 SCSI_PHYSICAL_ADDRESS
-NTAPI
+DDKAPI
 ScsiPortGetPhysicalAddress(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
 ScsiPortGetPhysicalAddress(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
@@ -564,7 +564,7 @@ ScsiPortGetPhysicalAddress(
 }
 
 PSCSI_REQUEST_BLOCK
 }
 
 PSCSI_REQUEST_BLOCK
-NTAPI
+DDKAPI
 ScsiPortGetSrb(
     IN PVOID DeviceExtension,
     IN UCHAR PathId,
 ScsiPortGetSrb(
     IN PVOID DeviceExtension,
     IN UCHAR PathId,
@@ -641,7 +641,7 @@ SpiAllocateCommonBuffer(
 }
 
 PVOID
 }
 
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetUncachedExtension(
     IN PVOID HwDeviceExtension,
     IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
 ScsiPortGetUncachedExtension(
     IN PVOID HwDeviceExtension,
     IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
@@ -726,7 +726,7 @@ ScsiPortGetUncachedExtension(
 }
 
 PVOID
 }
 
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetVirtualAddress(
     IN PVOID HwDeviceExtension,
     IN SCSI_PHYSICAL_ADDRESS PhysicalAddress)
 ScsiPortGetVirtualAddress(
     IN PVOID HwDeviceExtension,
     IN SCSI_PHYSICAL_ADDRESS PhysicalAddress)
@@ -1031,7 +1031,7 @@ SpiGetPciConfigData(
 }
 
 ULONG
 }
 
 ULONG
-NTAPI
+DDKAPI
 ScsiPortInitialize(
     IN PVOID Argument1,
     IN PVOID Argument2,
 ScsiPortInitialize(
     IN PVOID Argument1,
     IN PVOID Argument2,
@@ -1186,7 +1186,7 @@ ScsiPortInitialize(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortIoMapTransfer(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb,
 ScsiPortIoMapTransfer(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb,
@@ -1198,7 +1198,7 @@ ScsiPortIoMapTransfer(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortLogError(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
 ScsiPortLogError(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
@@ -1213,7 +1213,7 @@ ScsiPortLogError(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortMoveMemory(
     IN PVOID WriteBuffer,
     IN PVOID ReadBuffer,
 ScsiPortMoveMemory(
     IN PVOID WriteBuffer,
     IN PVOID ReadBuffer,
@@ -1223,7 +1223,7 @@ ScsiPortMoveMemory(
 }
 
 VOID
 }
 
 VOID
-__cdecl
+DDKCDECLAPI
 ScsiPortNotification(
     IN SCSI_NOTIFICATION_TYPE NotificationType,
     IN PVOID HwDeviceExtension,
 ScsiPortNotification(
     IN SCSI_NOTIFICATION_TYPE NotificationType,
     IN PVOID HwDeviceExtension,
@@ -1259,7 +1259,7 @@ ScsiPortNotification(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUchar(
     IN PUCHAR Port,
     OUT PUCHAR Buffer,
 ScsiPortReadPortBufferUchar(
     IN PUCHAR Port,
     OUT PUCHAR Buffer,
@@ -1269,7 +1269,7 @@ ScsiPortReadPortBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUlong(
     IN PULONG Port,
     OUT PULONG Buffer,
 ScsiPortReadPortBufferUlong(
     IN PULONG Port,
     OUT PULONG Buffer,
@@ -1279,7 +1279,7 @@ ScsiPortReadPortBufferUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUshort(
     IN PUSHORT Port,
     OUT PUSHORT Buffer,
 ScsiPortReadPortBufferUshort(
     IN PUSHORT Port,
     OUT PUSHORT Buffer,
@@ -1289,7 +1289,7 @@ ScsiPortReadPortBufferUshort(
 }
 
 UCHAR
 }
 
 UCHAR
-NTAPI
+DDKAPI
 ScsiPortReadPortUchar(
     IN PUCHAR Port)
 {
 ScsiPortReadPortUchar(
     IN PUCHAR Port)
 {
@@ -1300,7 +1300,7 @@ ScsiPortReadPortUchar(
 }
 
 ULONG
 }
 
 ULONG
-NTAPI
+DDKAPI
 ScsiPortReadPortUlong(
     IN PULONG Port)
 {
 ScsiPortReadPortUlong(
     IN PULONG Port)
 {
@@ -1308,7 +1308,7 @@ ScsiPortReadPortUlong(
 }
 
 USHORT
 }
 
 USHORT
-NTAPI
+DDKAPI
 ScsiPortReadPortUshort(
     IN PUSHORT Port)
 {
 ScsiPortReadPortUshort(
     IN PUSHORT Port)
 {
@@ -1316,7 +1316,7 @@ ScsiPortReadPortUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
 ScsiPortReadRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
@@ -1327,7 +1327,7 @@ ScsiPortReadRegisterBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
 ScsiPortReadRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
@@ -1338,7 +1338,7 @@ ScsiPortReadRegisterBufferUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
 ScsiPortReadRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
@@ -1349,7 +1349,7 @@ ScsiPortReadRegisterBufferUshort(
 }
 
 UCHAR
 }
 
 UCHAR
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUchar(
     IN PUCHAR Register)
 {
 ScsiPortReadRegisterUchar(
     IN PUCHAR Register)
 {
@@ -1357,7 +1357,7 @@ ScsiPortReadRegisterUchar(
 }
 
 ULONG
 }
 
 ULONG
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUlong(
     IN PULONG Register)
 {
 ScsiPortReadRegisterUlong(
     IN PULONG Register)
 {
@@ -1365,7 +1365,7 @@ ScsiPortReadRegisterUlong(
 }
 
 USHORT
 }
 
 USHORT
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUshort(
     IN PUSHORT Register)
 {
 ScsiPortReadRegisterUshort(
     IN PUSHORT Register)
 {
@@ -1373,7 +1373,7 @@ ScsiPortReadRegisterUshort(
 }
 
 ULONG
 }
 
 ULONG
-NTAPI
+DDKAPI
 ScsiPortSetBusDataByOffset(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
 ScsiPortSetBusDataByOffset(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
@@ -1389,7 +1389,7 @@ ScsiPortSetBusDataByOffset(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortStallExecution(
     IN ULONG Delay)
 {
 ScsiPortStallExecution(
     IN ULONG Delay)
 {
@@ -1397,7 +1397,7 @@ ScsiPortStallExecution(
 }
 
 BOOLEAN
 }
 
 BOOLEAN
-NTAPI
+DDKAPI
 ScsiPortValidateRange(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
 ScsiPortValidateRange(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
@@ -1417,7 +1417,7 @@ ScsiPortValidateRange(
 
 
 VOID
 
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
 ScsiPortWritePortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
@@ -1427,7 +1427,7 @@ ScsiPortWritePortBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
 ScsiPortWritePortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
@@ -1437,7 +1437,7 @@ ScsiPortWritePortBufferUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
 ScsiPortWritePortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
@@ -1447,7 +1447,7 @@ ScsiPortWritePortBufferUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUchar(
     IN PUCHAR Port,
     IN UCHAR Value)
 ScsiPortWritePortUchar(
     IN PUCHAR Port,
     IN UCHAR Value)
@@ -1456,7 +1456,7 @@ ScsiPortWritePortUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUlong(
     IN PULONG Port,
     IN ULONG Value)
 ScsiPortWritePortUlong(
     IN PULONG Port,
     IN ULONG Value)
@@ -1465,7 +1465,7 @@ ScsiPortWritePortUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUshort(
     IN PUSHORT Port,
     IN USHORT Value)
 ScsiPortWritePortUshort(
     IN PUSHORT Port,
     IN USHORT Value)
@@ -1474,7 +1474,7 @@ ScsiPortWritePortUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
 ScsiPortWriteRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
@@ -1485,7 +1485,7 @@ ScsiPortWriteRegisterBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
 ScsiPortWriteRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
@@ -1496,7 +1496,7 @@ ScsiPortWriteRegisterBufferUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
 ScsiPortWriteRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
@@ -1507,7 +1507,7 @@ ScsiPortWriteRegisterBufferUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUchar(
     IN PUCHAR Register,
     IN ULONG Value)
 ScsiPortWriteRegisterUchar(
     IN PUCHAR Register,
     IN ULONG Value)
@@ -1516,7 +1516,7 @@ ScsiPortWriteRegisterUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUlong(
     IN PULONG Register,
     IN ULONG Value)
 ScsiPortWriteRegisterUlong(
     IN PULONG Register,
     IN ULONG Value)
@@ -1525,7 +1525,7 @@ ScsiPortWriteRegisterUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUshort(
     IN PUSHORT Register,
     IN USHORT Value)
 ScsiPortWriteRegisterUshort(
     IN PUSHORT Register,
     IN USHORT Value)
index 2c7d4ce..f94c31a 100644 (file)
@@ -292,7 +292,7 @@ CreateBitmap(INT  Width,
              INT  Height,
              UINT  Planes,
              UINT  BitsPixel,
              INT  Height,
              UINT  Planes,
              UINT  BitsPixel,
-             CONST VOID* pUnsafeBits)
+             PCVOID pUnsafeBits)
 {
     /* FIXME some part should be done in user mode */
     if (Width && Height)
 {
     /* FIXME some part should be done in user mode */
     if (Width && Height)
index 9ae79ca..29e4dd6 100644 (file)
@@ -10,6 +10,7 @@ typedef VOID
 typedef VOID
 (WINAPI *PINTERFACE_DEREFERENCE)(
   PVOID  Context);
 typedef VOID
 (WINAPI *PINTERFACE_DEREFERENCE)(
   PVOID  Context);
+#define DDKAPI __stdcall // FIXME
 #include <ntndk.h>
 #include <hidusage.h>
 #include <hidclass.h>
 #include <ntndk.h>
 #include <hidusage.h>
 #include <hidclass.h>
index 6f2d0c2..bb3e0e3 100644 (file)
@@ -10,7 +10,6 @@
        <define name="wcsnicmp">_wcsnicmp</define>
 
        <define name="_SETUPAPI_" />
        <define name="wcsnicmp">_wcsnicmp</define>
 
        <define name="_SETUPAPI_" />
-       <define name="_CFGMGR32_" />
        <library>pnp_client</library>
        <library>uuid</library>
        <library>wine</library>
        <library>pnp_client</library>
        <library>uuid</library>
        <library>wine</library>
index a3ff489..50c2d42 100644 (file)
 
 #include <pseh/pseh2.h>
 
 
 #include <pseh/pseh2.h>
 
+/* This hack definition is necessary as long as setupapi 
+   depends on Wine "compatibility" headers */
+typedef ULONG RESOURCEID;
+typedef RESOURCEID *PRESOURCEID;
+
 #include <pnp_c.h>
 #include "rpc_private.h"
 #include "resource.h"
 #include <pnp_c.h>
 #include "rpc_private.h"
 #include "resource.h"
@@ -56,8 +61,6 @@
 #define SETUP_DEVICE_INFO_SET_MAGIC 0xd00ff057
 #define SETUP_CLASS_IMAGE_LIST_MAGIC 0xd00ff058
 
 #define SETUP_DEVICE_INFO_SET_MAGIC 0xd00ff057
 #define SETUP_CLASS_IMAGE_LIST_MAGIC 0xd00ff058
 
-#define CMP_MAGIC  0x01234567
-
 struct DeviceInterface /* Element of DeviceInfo.InterfaceListHead */
 {
     LIST_ENTRY ListEntry;
 struct DeviceInterface /* Element of DeviceInfo.InterfaceListHead */
 {
     LIST_ENTRY ListEntry;
index 7e4854c..6a0b722 100644 (file)
@@ -23,7 +23,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassUnload(PVOID ClassData)
 {
   PBATTERY_CLASS_DATA BattClass = ClassData;
 BatteryClassUnload(PVOID ClassData)
 {
   PBATTERY_CLASS_DATA BattClass = ClassData;
@@ -44,7 +44,7 @@ BatteryClassUnload(PVOID ClassData)
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassSystemControl(PVOID ClassData,
                           PVOID WmiLibContext,
                           PDEVICE_OBJECT DeviceObject,
 BatteryClassSystemControl(PVOID ClassData,
                           PVOID WmiLibContext,
                           PDEVICE_OBJECT DeviceObject,
@@ -58,7 +58,7 @@ BatteryClassSystemControl(PVOID ClassData,
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassQueryWmiDataBlock(PVOID ClassData,
                               PDEVICE_OBJECT DeviceObject,
                               PIRP Irp,
 BatteryClassQueryWmiDataBlock(PVOID ClassData,
                               PDEVICE_OBJECT DeviceObject,
                               PIRP Irp,
@@ -74,7 +74,7 @@ BatteryClassQueryWmiDataBlock(PVOID ClassData,
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassStatusNotify(PVOID ClassData)
 {
   PBATTERY_CLASS_DATA BattClass = ClassData;
 BatteryClassStatusNotify(PVOID ClassData)
 {
   PBATTERY_CLASS_DATA BattClass = ClassData;
@@ -129,7 +129,7 @@ BatteryClassStatusNotify(PVOID ClassData)
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassInitializeDevice(PBATTERY_MINIPORT_INFO MiniportInfo,
                              PVOID *ClassData)
 {
 BatteryClassInitializeDevice(PBATTERY_MINIPORT_INFO MiniportInfo,
                              PVOID *ClassData)
 {
@@ -172,7 +172,7 @@ BatteryClassInitializeDevice(PBATTERY_MINIPORT_INFO MiniportInfo,
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassIoctl(PVOID ClassData,
                   PIRP Irp)
 {
 BatteryClassIoctl(PVOID ClassData,
                   PIRP Irp)
 {
index 996353c..322d6d1 100644 (file)
@@ -1,10 +1,10 @@
 
 /* DDK/NDK/SDK Headers */
 
 /* DDK/NDK/SDK Headers */
-#include <ntddk.h>
-#include <ntddmou.h>
-#include <ntifs.h>
-#include <tvout.h>
-#include <ntndk.h>
+#include <ddk/ntddk.h>
+#include <ddk/ntddmou.h>
+#include <ddk/ntifs.h>
+#include <ddk/tvout.h>
+#include <ndk/ntndk.h>
 
 #include <stdarg.h>
 #include <windef.h>
 
 #include <stdarg.h>
 #include <windef.h>
@@ -16,7 +16,7 @@
 #include <dde.h>
 
 
 #include <dde.h>
 
 
-#include <ddkmapi.h>
+#include <ddk/ddkmapi.h>
 
 /* Prototypes */
 VOID DxGetVersionNumber(PVOID lpvInBuffer, LPDDGETVERSIONNUMBER lpvOutBuffer);
 
 /* Prototypes */
 VOID DxGetVersionNumber(PVOID lpvInBuffer, LPDDGETVERSIONNUMBER lpvOutBuffer);
index ccb2204..b457e6d 100644 (file)
@@ -1,9 +1,9 @@
 /* DDK/NDK/SDK Headers */
 /* DDK/NDK/SDK Headers */
-#include <ntddk.h>
-#include <ntddmou.h>
-#include <ntifs.h>
-#include <tvout.h>
-#include <ntndk.h>
+#include <ddk/ntddk.h>
+#include <ddk/ntddmou.h>
+#include <ddk/ntifs.h>
+#include <ddk/tvout.h>
+#include <ndk/ntndk.h>
 
 /* Win32 Headers */
 #define WINBASEAPI
 
 /* Win32 Headers */
 #define WINBASEAPI
index dcf35d9..bf2b784 100644 (file)
@@ -42,11 +42,8 @@ typedef unsigned char   BYTE;
 /* REACTOS FIXME */
 #undef DeleteFile
 /* This is deprecated and should be changed in the EXT2FS driver. */
 /* REACTOS FIXME */
 #undef DeleteFile
 /* This is deprecated and should be changed in the EXT2FS driver. */
-
-/* FIXME : Those two definitions already exist in wdm.h
 #define RtlLargeIntegerLessThan(a, b) (a).QuadPart < (b).QuadPart
 #define RtlLargeIntegerGreaterThan(a, b) (a).QuadPart > (b).QuadPart
 #define RtlLargeIntegerLessThan(a, b) (a).QuadPart < (b).QuadPart
 #define RtlLargeIntegerGreaterThan(a, b) (a).QuadPart > (b).QuadPart
-*/
 
 
 // the following include files should be in the inc sub-dir associated with this driver
 
 
 // the following include files should be in the inc sub-dir associated with this driver
index b6ed661..de94b29 100644 (file)
 #define PST_RS232 1
 #define COMMPROP_INITIALIZED 0xE73CF52E
 
 #define PST_RS232 1
 #define COMMPROP_INITIALIZED 0xE73CF52E
 
+#ifndef _NTIFS_
+/* Why is it only defined in ntifs.h file? */
+NTSTATUS NTAPI
+IoAttachDeviceToDeviceStackSafe(
+  IN PDEVICE_OBJECT SourceDevice,
+  IN PDEVICE_OBJECT TargetDevice,
+  OUT PDEVICE_OBJECT *AttachedToDeviceObject);
+#endif
+
 typedef enum
 {
   dsStopped,
 typedef enum
 {
   dsStopped,
index 2648d4b..9974b51 100644 (file)
@@ -77,7 +77,7 @@ extern "C" {
 
 SCSIPORT_API
 VOID
 
 SCSIPORT_API
 VOID
-__cdecl
+DDKCDECLAPI
 ScsiDebugPrint(
     ULONG DebugPrintLevel,
     PCCHAR DebugMessage,
 ScsiDebugPrint(
     ULONG DebugPrintLevel,
     PCCHAR DebugMessage,
@@ -1066,7 +1066,7 @@ IdeMediaStatus(
     IN UCHAR Channel
     );
 
     IN UCHAR Channel
     );
 
-ULONG NTAPI
+ULONG DDKAPI
 AtapiFindController(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
 AtapiFindController(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
index 6d2adab..cfb1539 100644 (file)
@@ -1015,7 +1015,7 @@ UniataEnumBusMasterController(
     PVOID Argument2
     );
 
     PVOID Argument2
     );
 
-extern ULONG NTAPI
+extern ULONG DDKAPI
 UniataFindCompatBusMasterController1(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
 UniataFindCompatBusMasterController1(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
@@ -1025,7 +1025,7 @@ UniataFindCompatBusMasterController1(
     OUT PBOOLEAN Again
     );
 
     OUT PBOOLEAN Again
     );
 
-extern ULONG NTAPI
+extern ULONG DDKAPI
 UniataFindCompatBusMasterController2(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
 UniataFindCompatBusMasterController2(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
@@ -1044,7 +1044,7 @@ UniataAllocateLunExt(
     ULONG NewNumberChannels
     );
 
     ULONG NewNumberChannels
     );
 
-extern ULONG NTAPI
+extern ULONG DDKAPI
 UniataFindBusMasterController(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
 UniataFindBusMasterController(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
@@ -1054,7 +1054,7 @@ UniataFindBusMasterController(
     OUT PBOOLEAN Again
     );
 
     OUT PBOOLEAN Again
     );
 
-extern ULONG NTAPI
+extern ULONG DDKAPI
 UniataFindFakeBusMasterController(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
 UniataFindFakeBusMasterController(
     IN PVOID HwDeviceExtension,
     IN PVOID Context,
index c0b9f4f..e17416f 100644 (file)
@@ -86,7 +86,9 @@
 /*  Compiler dependencies                          */
 /***************************************************/
 
 /*  Compiler dependencies                          */
 /***************************************************/
 
+#define DDKAPI          __stdcall
 #define DDKFASTAPI      __fastcall
 #define DDKFASTAPI      __fastcall
+#define DDKCDECLAPI     __cdecl
 
 /* Are we under GNU C (mingw) ??? */
 #ifdef __GNUC__
 
 /* Are we under GNU C (mingw) ??? */
 #ifdef __GNUC__
index 1cace8b..5bb5cf7 100644 (file)
@@ -94,7 +94,7 @@ BOOLEAN WinVer_WDM_Model = FALSE;
 UCHAR g_foo = 0;
 
 BOOLEAN
 UCHAR g_foo = 0;
 
 BOOLEAN
-NTAPI
+DDKAPI
 AtapiResetController__(
     IN PVOID HwDeviceExtension,
     IN ULONG PathId,
 AtapiResetController__(
     IN PVOID HwDeviceExtension,
     IN ULONG PathId,
@@ -115,7 +115,7 @@ AtapiHwInitialize__(
 #ifndef UNIATA_CORE
 
 VOID
 #ifndef UNIATA_CORE
 
 VOID
-NTAPI
+DDKAPI
 AtapiCallBack_X(
     IN PVOID HwDeviceExtension
     );
 AtapiCallBack_X(
     IN PVOID HwDeviceExtension
     );
@@ -129,13 +129,13 @@ AtapiCallBack_X(
 #endif
 
 RETTYPE_XXableInterrupts
 #endif
 
 RETTYPE_XXableInterrupts
-NTAPI
+DDKAPI
 AtapiInterruptDpc(
     IN PVOID HwDeviceExtension
     );
 
 RETTYPE_XXableInterrupts
 AtapiInterruptDpc(
     IN PVOID HwDeviceExtension
     );
 
 RETTYPE_XXableInterrupts
-NTAPI
+DDKAPI
 AtapiEnableInterrupts__(
     IN PVOID HwDeviceExtension
     );
 AtapiEnableInterrupts__(
     IN PVOID HwDeviceExtension
     );
@@ -150,7 +150,7 @@ AtapiQueueTimerDpc(
     );
 
 SCSI_ADAPTER_CONTROL_STATUS
     );
 
 SCSI_ADAPTER_CONTROL_STATUS
-NTAPI
+DDKAPI
 AtapiAdapterControl(
     IN PVOID HwDeviceExtension,
     IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
 AtapiAdapterControl(
     IN PVOID HwDeviceExtension,
     IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
@@ -1005,7 +1005,7 @@ AtaUmode(PIDENTIFY_DATA2 ident)
 #ifndef UNIATA_CORE
 
 VOID
 #ifndef UNIATA_CORE
 
 VOID
-NTAPI
+DDKAPI
 AtapiTimerDpc(
     IN PVOID HwDeviceExtension
     )
 AtapiTimerDpc(
     IN PVOID HwDeviceExtension
     )
@@ -1856,7 +1856,7 @@ Return Value:
 
 --*/
 BOOLEAN
 
 --*/
 BOOLEAN
-NTAPI
+DDKAPI
 AtapiResetController(
     IN PVOID HwDeviceExtension,
     IN ULONG PathId
 AtapiResetController(
     IN PVOID HwDeviceExtension,
     IN ULONG PathId
@@ -2598,7 +2598,7 @@ Return Value:
 
 --*/
 BOOLEAN
 
 --*/
 BOOLEAN
-NTAPI
+DDKAPI
 AtapiHwInitialize(
     IN PVOID HwDeviceExtension
     )
 AtapiHwInitialize(
     IN PVOID HwDeviceExtension
     )
@@ -3210,7 +3210,7 @@ Return Value:
 
 --*/
 BOOLEAN
 
 --*/
 BOOLEAN
-NTAPI
+DDKAPI
 AtapiInterrupt(
     IN PVOID HwDeviceExtension
     )
 AtapiInterrupt(
     IN PVOID HwDeviceExtension
     )
@@ -3400,7 +3400,7 @@ AtapiInterrupt2(
 } // end AtapiInterrupt2()
 
 RETTYPE_XXableInterrupts
 } // end AtapiInterrupt2()
 
 RETTYPE_XXableInterrupts
-NTAPI
+DDKAPI
 AtapiInterruptDpc(
     IN PVOID HwDeviceExtension
     )
 AtapiInterruptDpc(
     IN PVOID HwDeviceExtension
     )
@@ -3437,7 +3437,7 @@ AtapiInterruptDpc(
 
 
 RETTYPE_XXableInterrupts
 
 
 RETTYPE_XXableInterrupts
-NTAPI
+DDKAPI
 AtapiEnableInterrupts__(
     IN PVOID HwDeviceExtension
     )
 AtapiEnableInterrupts__(
     IN PVOID HwDeviceExtension
     )
@@ -7251,7 +7251,7 @@ Return Value:
 
 --*/
 BOOLEAN
 
 --*/
 BOOLEAN
-NTAPI
+DDKAPI
 AtapiStartIo(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb
 AtapiStartIo(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb
@@ -8343,7 +8343,7 @@ Return Value:
 --*/
 extern "C"
 ULONG
 --*/
 extern "C"
 ULONG
-NTAPI
+DDKAPI
 DriverEntry(
     IN PVOID DriverObject,
     IN PVOID Argument2
 DriverEntry(
     IN PVOID DriverObject,
     IN PVOID Argument2
@@ -9059,7 +9059,7 @@ AtapiRegCheckParameterValue(
 
 
 SCSI_ADAPTER_CONTROL_STATUS
 
 
 SCSI_ADAPTER_CONTROL_STATUS
-NTAPI
+DDKAPI
 AtapiAdapterControl(
     IN PVOID HwDeviceExtension,
     IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
 AtapiAdapterControl(
     IN PVOID HwDeviceExtension,
     IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
@@ -9152,7 +9152,7 @@ AtapiAdapterControl(
 extern "C"
 NTHALAPI
 VOID
 extern "C"
 NTHALAPI
 VOID
-NTAPI
+DDKAPI
 HalDisplayString (
     PUCHAR String
     );
 HalDisplayString (
     PUCHAR String
     );
index b3795b2..aa4f7f1 100644 (file)
@@ -424,38 +424,38 @@ typedef struct _SCSI_WMI_REQUEST_BLOCK {
 
 typedef
 BOOLEAN
 
 typedef
 BOOLEAN
-(NTAPI *PHW_INITIALIZE) (
+(DDKAPI *PHW_INITIALIZE) (
     IN PVOID DeviceExtension
     );
 
 typedef
 BOOLEAN
     IN PVOID DeviceExtension
     );
 
 typedef
 BOOLEAN
-(NTAPI *PHW_STARTIO) (
+(DDKAPI *PHW_STARTIO) (
     IN PVOID DeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb
     );
 
 typedef
 BOOLEAN
     IN PVOID DeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb
     );
 
 typedef
 BOOLEAN
-(NTAPI *PHW_INTERRUPT) (
+(DDKAPI *PHW_INTERRUPT) (
     IN PVOID DeviceExtension
     );
 
 typedef
 VOID
     IN PVOID DeviceExtension
     );
 
 typedef
 VOID
-(NTAPI *PHW_TIMER) (
+(DDKAPI *PHW_TIMER) (
     IN PVOID DeviceExtension
     );
 
 typedef
 VOID
     IN PVOID DeviceExtension
     );
 
 typedef
 VOID
-(NTAPI *PHW_DMA_STARTED) (
+(DDKAPI *PHW_DMA_STARTED) (
     IN PVOID DeviceExtension
     );
 
 typedef
 ULONG
     IN PVOID DeviceExtension
     );
 
 typedef
 ULONG
-(NTAPI *PHW_FIND_ADAPTER) (
+(DDKAPI *PHW_FIND_ADAPTER) (
     IN PVOID DeviceExtension,
     IN PVOID HwContext,
     IN PVOID BusInformation,
     IN PVOID DeviceExtension,
     IN PVOID HwContext,
     IN PVOID BusInformation,
@@ -466,14 +466,14 @@ ULONG
 
 typedef
 BOOLEAN
 
 typedef
 BOOLEAN
-(NTAPI *PHW_RESET_BUS) (
+(DDKAPI *PHW_RESET_BUS) (
     IN PVOID DeviceExtension,
     IN ULONG PathId
     );
 
 typedef
 BOOLEAN
     IN PVOID DeviceExtension,
     IN ULONG PathId
     );
 
 typedef
 BOOLEAN
-(NTAPI *PHW_ADAPTER_STATE) (
+(DDKAPI *PHW_ADAPTER_STATE) (
     IN PVOID DeviceExtension,
     IN PVOID Context,
     IN BOOLEAN SaveState
     IN PVOID DeviceExtension,
     IN PVOID Context,
     IN BOOLEAN SaveState
@@ -481,7 +481,7 @@ BOOLEAN
 
 typedef
 SCSI_ADAPTER_CONTROL_STATUS
 
 typedef
 SCSI_ADAPTER_CONTROL_STATUS
-(NTAPI *PHW_ADAPTER_CONTROL) (
+(DDKAPI *PHW_ADAPTER_CONTROL) (
     IN PVOID DeviceExtension,
     IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
     IN PVOID Parameters
     IN PVOID DeviceExtension,
     IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
     IN PVOID Parameters
@@ -607,7 +607,7 @@ typedef struct _HW_INITIALIZATION_DATA_COMMON {
 //
 
 SCSIPORT_API
 //
 
 SCSIPORT_API
-ULONG NTAPI
+ULONG DDKAPI
 ScsiPortInitialize(
     IN PVOID Argument1,
     IN PVOID Argument2,
 ScsiPortInitialize(
     IN PVOID Argument1,
     IN PVOID Argument2,
@@ -616,14 +616,14 @@ ScsiPortInitialize(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortFreeDeviceBase(
     IN PVOID HwDeviceExtension,
     IN PVOID MappedAddress
     );
 
 SCSIPORT_API
 ScsiPortFreeDeviceBase(
     IN PVOID HwDeviceExtension,
     IN PVOID MappedAddress
     );
 
 SCSIPORT_API
-ULONG NTAPI
+ULONG DDKAPI
 ScsiPortGetBusData(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
 ScsiPortGetBusData(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
@@ -634,7 +634,7 @@ ScsiPortGetBusData(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-ULONG NTAPI
+ULONG DDKAPI
 ScsiPortSetBusDataByOffset(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
 ScsiPortSetBusDataByOffset(
     IN PVOID DeviceExtension,
     IN ULONG BusDataType,
@@ -646,7 +646,7 @@ ScsiPortSetBusDataByOffset(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-PVOID NTAPI
+PVOID DDKAPI
 ScsiPortGetDeviceBase(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
 ScsiPortGetDeviceBase(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
@@ -657,7 +657,7 @@ ScsiPortGetDeviceBase(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-PVOID NTAPI
+PVOID DDKAPI
 ScsiPortGetLogicalUnit(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
 ScsiPortGetLogicalUnit(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
@@ -666,7 +666,7 @@ ScsiPortGetLogicalUnit(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-PSCSI_REQUEST_BLOCK NTAPI
+PSCSI_REQUEST_BLOCK DDKAPI
 ScsiPortGetSrb(
     IN PVOID DeviceExtension,
     IN UCHAR PathId,
 ScsiPortGetSrb(
     IN PVOID DeviceExtension,
     IN UCHAR PathId,
@@ -676,7 +676,7 @@ ScsiPortGetSrb(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-SCSI_PHYSICAL_ADDRESS NTAPI
+SCSI_PHYSICAL_ADDRESS DDKAPI
 ScsiPortGetPhysicalAddress(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb,
 ScsiPortGetPhysicalAddress(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb,
@@ -685,14 +685,14 @@ ScsiPortGetPhysicalAddress(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-PVOID NTAPI
+PVOID DDKAPI
 ScsiPortGetVirtualAddress(
     IN PVOID HwDeviceExtension,
     IN SCSI_PHYSICAL_ADDRESS PhysicalAddress
     );
 
 SCSIPORT_API
 ScsiPortGetVirtualAddress(
     IN PVOID HwDeviceExtension,
     IN SCSI_PHYSICAL_ADDRESS PhysicalAddress
     );
 
 SCSIPORT_API
-PVOID NTAPI
+PVOID DDKAPI
 ScsiPortGetUncachedExtension(
     IN PVOID HwDeviceExtension,
     IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
 ScsiPortGetUncachedExtension(
     IN PVOID HwDeviceExtension,
     IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
@@ -700,13 +700,13 @@ ScsiPortGetUncachedExtension(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortFlushDma(
     IN PVOID DeviceExtension
     );
 
 SCSIPORT_API
 ScsiPortFlushDma(
     IN PVOID DeviceExtension
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortIoMapTransfer(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb,
 ScsiPortIoMapTransfer(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb,
@@ -715,7 +715,7 @@ ScsiPortIoMapTransfer(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID __cdecl
+VOID DDKCDECLAPI
 ScsiPortNotification(
     IN SCSI_NOTIFICATION_TYPE NotificationType,
     IN PVOID HwDeviceExtension,
 ScsiPortNotification(
     IN SCSI_NOTIFICATION_TYPE NotificationType,
     IN PVOID HwDeviceExtension,
@@ -723,7 +723,7 @@ ScsiPortNotification(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortLogError(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
 ScsiPortLogError(
     IN PVOID HwDeviceExtension,
     IN PSCSI_REQUEST_BLOCK Srb OPTIONAL,
@@ -735,7 +735,7 @@ ScsiPortLogError(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortCompleteRequest(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
 ScsiPortCompleteRequest(
     IN PVOID HwDeviceExtension,
     IN UCHAR PathId,
@@ -745,7 +745,7 @@ ScsiPortCompleteRequest(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortMoveMemory(
     IN PVOID WriteBuffer,
     IN PVOID ReadBuffer,
 ScsiPortMoveMemory(
     IN PVOID WriteBuffer,
     IN PVOID ReadBuffer,
@@ -753,25 +753,25 @@ ScsiPortMoveMemory(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-UCHAR NTAPI
+UCHAR DDKAPI
 ScsiPortReadPortUchar(
     IN PUCHAR Port
     );
 
 SCSIPORT_API
 ScsiPortReadPortUchar(
     IN PUCHAR Port
     );
 
 SCSIPORT_API
-USHORT NTAPI
+USHORT DDKAPI
 ScsiPortReadPortUshort(
     IN PUSHORT Port
     );
 
 SCSIPORT_API
 ScsiPortReadPortUshort(
     IN PUSHORT Port
     );
 
 SCSIPORT_API
-ULONG NTAPI
+ULONG DDKAPI
 ScsiPortReadPortUlong(
     IN PULONG Port
     );
 
 SCSIPORT_API
 ScsiPortReadPortUlong(
     IN PULONG Port
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortReadPortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
 ScsiPortReadPortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
@@ -779,7 +779,7 @@ ScsiPortReadPortBufferUchar(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortReadPortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
 ScsiPortReadPortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
@@ -787,7 +787,7 @@ ScsiPortReadPortBufferUshort(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortReadPortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
 ScsiPortReadPortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
@@ -795,25 +795,25 @@ ScsiPortReadPortBufferUlong(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-UCHAR NTAPI
+UCHAR DDKAPI
 ScsiPortReadRegisterUchar(
     IN PUCHAR Register
     );
 
 SCSIPORT_API
 ScsiPortReadRegisterUchar(
     IN PUCHAR Register
     );
 
 SCSIPORT_API
-USHORT NTAPI
+USHORT DDKAPI
 ScsiPortReadRegisterUshort(
     IN PUSHORT Register
     );
 
 SCSIPORT_API
 ScsiPortReadRegisterUshort(
     IN PUSHORT Register
     );
 
 SCSIPORT_API
-ULONG NTAPI
+ULONG DDKAPI
 ScsiPortReadRegisterUlong(
     IN PULONG Register
     );
 
 SCSIPORT_API
 ScsiPortReadRegisterUlong(
     IN PULONG Register
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortReadRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
 ScsiPortReadRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
@@ -821,7 +821,7 @@ ScsiPortReadRegisterBufferUchar(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortReadRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
 ScsiPortReadRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
@@ -829,7 +829,7 @@ ScsiPortReadRegisterBufferUshort(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortReadRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
 ScsiPortReadRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
@@ -837,34 +837,34 @@ ScsiPortReadRegisterBufferUlong(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortStallExecution(
     IN ULONG Delay
     );
 
 SCSIPORT_API
 ScsiPortStallExecution(
     IN ULONG Delay
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWritePortUchar(
     IN PUCHAR Port,
     IN UCHAR Value
     );
 
 SCSIPORT_API
 ScsiPortWritePortUchar(
     IN PUCHAR Port,
     IN UCHAR Value
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWritePortUshort(
     IN PUSHORT Port,
     IN USHORT Value
     );
 
 SCSIPORT_API
 ScsiPortWritePortUshort(
     IN PUSHORT Port,
     IN USHORT Value
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWritePortUlong(
     IN PULONG Port,
     IN ULONG Value
     );
 
 SCSIPORT_API
 ScsiPortWritePortUlong(
     IN PULONG Port,
     IN ULONG Value
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWritePortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
 ScsiPortWritePortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
@@ -872,7 +872,7 @@ ScsiPortWritePortBufferUchar(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWritePortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
 ScsiPortWritePortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
@@ -880,7 +880,7 @@ ScsiPortWritePortBufferUshort(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWritePortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
 ScsiPortWritePortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
@@ -888,28 +888,28 @@ ScsiPortWritePortBufferUlong(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWriteRegisterUchar(
     IN PUCHAR Register,
     IN UCHAR Value
     );
 
 SCSIPORT_API
 ScsiPortWriteRegisterUchar(
     IN PUCHAR Register,
     IN UCHAR Value
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWriteRegisterUshort(
     IN PUSHORT Register,
     IN USHORT Value
     );
 
 SCSIPORT_API
 ScsiPortWriteRegisterUshort(
     IN PUSHORT Register,
     IN USHORT Value
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWriteRegisterUlong(
     IN PULONG Register,
     IN ULONG Value
     );
 
 SCSIPORT_API
 ScsiPortWriteRegisterUlong(
     IN PULONG Register,
     IN ULONG Value
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWriteRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
 ScsiPortWriteRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
@@ -917,7 +917,7 @@ ScsiPortWriteRegisterBufferUchar(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWriteRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
 ScsiPortWriteRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
@@ -925,7 +925,7 @@ ScsiPortWriteRegisterBufferUshort(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-VOID NTAPI
+VOID DDKAPI
 ScsiPortWriteRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
 ScsiPortWriteRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
@@ -933,13 +933,13 @@ ScsiPortWriteRegisterBufferUlong(
     );
 
 SCSIPORT_API
     );
 
 SCSIPORT_API
-SCSI_PHYSICAL_ADDRESS NTAPI
+SCSI_PHYSICAL_ADDRESS DDKAPI
 ScsiPortConvertUlongToPhysicalAddress(
     ULONG UlongAddress
     );
 
 SCSIPORT_API
 ScsiPortConvertUlongToPhysicalAddress(
     ULONG UlongAddress
     );
 
 SCSIPORT_API
-ULONG NTAPI
+ULONG DDKAPI
 ScsiPortConvertPhysicalAddressToUlong(
     SCSI_PHYSICAL_ADDRESS Address
     );
 ScsiPortConvertPhysicalAddressToUlong(
     SCSI_PHYSICAL_ADDRESS Address
     );
@@ -947,7 +947,7 @@ ScsiPortConvertPhysicalAddressToUlong(
 #define ScsiPortConvertPhysicalAddressToUlong(Address) ((Address).LowPart)
 
 SCSIPORT_API
 #define ScsiPortConvertPhysicalAddressToUlong(Address) ((Address).LowPart)
 
 SCSIPORT_API
-BOOLEAN NTAPI
+BOOLEAN DDKAPI
 ScsiPortValidateRange(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
 ScsiPortValidateRange(
     IN PVOID HwDeviceExtension,
     IN INTERFACE_TYPE BusType,
@@ -960,7 +960,7 @@ ScsiPortValidateRange(
 // begin_ntminitape
 
 SCSIPORT_API
 // begin_ntminitape
 
 SCSIPORT_API
-VOID __cdecl
+VOID DDKCDECLAPI
 ScsiDebugPrint(
     ULONG DebugPrintLevel,
     PCCHAR DebugMessage,
 ScsiDebugPrint(
     ULONG DebugPrintLevel,
     PCCHAR DebugMessage,
index 478c35b..9e286d1 100644 (file)
 #define NDEBUG
 #include <debug.h>
 
 #define NDEBUG
 #include <debug.h>
 
+#ifdef _MSC_VER
+  #define DDKAPI
+#endif
+
 SCSI_PHYSICAL_ADDRESS
 SCSI_PHYSICAL_ADDRESS
-NTAPI
+DDKAPI
 ScsiPortConvertUlongToPhysicalAddress(
     IN ULONG  UlongAddress)
 {
 ScsiPortConvertUlongToPhysicalAddress(
     IN ULONG  UlongAddress)
 {
@@ -23,7 +27,7 @@ ScsiPortConvertUlongToPhysicalAddress(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
 ScsiPortReadPortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
@@ -33,7 +37,7 @@ ScsiPortReadPortBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
 ScsiPortReadPortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
@@ -43,7 +47,7 @@ ScsiPortReadPortBufferUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
 ScsiPortReadPortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
@@ -53,7 +57,7 @@ ScsiPortReadPortBufferUlong(
 }
 
 UCHAR
 }
 
 UCHAR
-NTAPI
+DDKAPI
 ScsiPortReadPortUchar(
     IN PUCHAR Port)
 {
 ScsiPortReadPortUchar(
     IN PUCHAR Port)
 {
@@ -61,7 +65,7 @@ ScsiPortReadPortUchar(
 }
 
 USHORT
 }
 
 USHORT
-NTAPI
+DDKAPI
 ScsiPortReadPortUshort(
     IN PUSHORT Port)
 {
 ScsiPortReadPortUshort(
     IN PUSHORT Port)
 {
@@ -69,7 +73,7 @@ ScsiPortReadPortUshort(
 }
 
 ULONG
 }
 
 ULONG
-NTAPI
+DDKAPI
 ScsiPortReadPortUlong(
     IN PULONG Port)
 {
 ScsiPortReadPortUlong(
     IN PULONG Port)
 {
@@ -77,7 +81,7 @@ ScsiPortReadPortUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
 ScsiPortReadRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
@@ -87,7 +91,7 @@ ScsiPortReadRegisterBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
 ScsiPortReadRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
@@ -97,7 +101,7 @@ ScsiPortReadRegisterBufferUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
 ScsiPortReadRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
@@ -107,7 +111,7 @@ ScsiPortReadRegisterBufferUlong(
 }
 
 UCHAR
 }
 
 UCHAR
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUchar(
     IN PUCHAR Register)
 {
 ScsiPortReadRegisterUchar(
     IN PUCHAR Register)
 {
@@ -115,7 +119,7 @@ ScsiPortReadRegisterUchar(
 }
 
 USHORT
 }
 
 USHORT
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUshort(
     IN PUSHORT Register)
 {
 ScsiPortReadRegisterUshort(
     IN PUSHORT Register)
 {
@@ -123,7 +127,7 @@ ScsiPortReadRegisterUshort(
 }
 
 ULONG
 }
 
 ULONG
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUlong(
     IN PULONG Register)
 {
 ScsiPortReadRegisterUlong(
     IN PULONG Register)
 {
@@ -131,7 +135,7 @@ ScsiPortReadRegisterUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
 ScsiPortWritePortBufferUchar(
     IN PUCHAR Port,
     IN PUCHAR Buffer,
@@ -141,7 +145,7 @@ ScsiPortWritePortBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
 ScsiPortWritePortBufferUshort(
     IN PUSHORT Port,
     IN PUSHORT Buffer,
@@ -151,7 +155,7 @@ ScsiPortWritePortBufferUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
 ScsiPortWritePortBufferUlong(
     IN PULONG Port,
     IN PULONG Buffer,
@@ -161,7 +165,7 @@ ScsiPortWritePortBufferUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUchar(
     IN PUCHAR Port,
     IN UCHAR Value)
 ScsiPortWritePortUchar(
     IN PUCHAR Port,
     IN UCHAR Value)
@@ -170,7 +174,7 @@ ScsiPortWritePortUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUshort(
     IN PUSHORT Port,
     IN USHORT Value)
 ScsiPortWritePortUshort(
     IN PUSHORT Port,
     IN USHORT Value)
@@ -179,7 +183,7 @@ ScsiPortWritePortUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUlong(
     IN PULONG Port,
     IN ULONG Value)
 ScsiPortWritePortUlong(
     IN PULONG Port,
     IN ULONG Value)
@@ -188,7 +192,7 @@ ScsiPortWritePortUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
 ScsiPortWriteRegisterBufferUchar(
     IN PUCHAR Register,
     IN PUCHAR Buffer,
@@ -198,7 +202,7 @@ ScsiPortWriteRegisterBufferUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
 ScsiPortWriteRegisterBufferUshort(
     IN PUSHORT Register,
     IN PUSHORT Buffer,
@@ -208,7 +212,7 @@ ScsiPortWriteRegisterBufferUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
 ScsiPortWriteRegisterBufferUlong(
     IN PULONG Register,
     IN PULONG Buffer,
@@ -218,7 +222,7 @@ ScsiPortWriteRegisterBufferUlong(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUchar(
     IN PUCHAR  Register,
     IN ULONG  Value)
 ScsiPortWriteRegisterUchar(
     IN PUCHAR  Register,
     IN ULONG  Value)
@@ -227,7 +231,7 @@ ScsiPortWriteRegisterUchar(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUshort(
     IN PUSHORT Register,
     IN USHORT Value)
 ScsiPortWriteRegisterUshort(
     IN PUSHORT Register,
     IN USHORT Value)
@@ -236,7 +240,7 @@ ScsiPortWriteRegisterUshort(
 }
 
 VOID
 }
 
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUlong(
     IN PULONG Register,
     IN ULONG Value)
 ScsiPortWriteRegisterUlong(
     IN PULONG Register,
     IN ULONG Value)
index 980965d..97282f8 100644 (file)
@@ -26,6 +26,7 @@
 
 #define DDKFASTAPI __fastcall
 #define FASTCALL __fastcall
 
 #define DDKFASTAPI __fastcall
 #define FASTCALL __fastcall
+#define DDKCDECLAPI __cdecl
 
 ULONG DbgPrint(PCCH Format,...);
 
 
 ULONG DbgPrint(PCCH Format,...);
 
index 53900bf..7997a7c 100644 (file)
@@ -104,33 +104,33 @@ typedef struct _ARC_FILTER
 } ARC_FILTER,*PARC_FILTER;
 
 BOOLEAN
 } ARC_FILTER,*PARC_FILTER;
 
 BOOLEAN
-NTAPI
+DDKAPI
 ArcCreateFilter(
   IN struct _NDIS_MINIPORT_BLOCK  *Miniport,
   IN UCHAR  AdapterAddress,
   OUT PARC_FILTER  *Filter);
 
 VOID
 ArcCreateFilter(
   IN struct _NDIS_MINIPORT_BLOCK  *Miniport,
   IN UCHAR  AdapterAddress,
   OUT PARC_FILTER  *Filter);
 
 VOID
-NTAPI
+DDKAPI
 ArcDeleteFilter(
   IN PARC_FILTER Filter);
 
 BOOLEAN
 ArcDeleteFilter(
   IN PARC_FILTER Filter);
 
 BOOLEAN
-NTAPI
+DDKAPI
 ArcNoteFilterOpenAdapter(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  NdisBindingHandle,
   OUT PNDIS_HANDLE  NdisFilterHandle);
 
 NDIS_STATUS
 ArcNoteFilterOpenAdapter(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  NdisBindingHandle,
   OUT PNDIS_HANDLE  NdisFilterHandle);
 
 NDIS_STATUS
-NTAPI
+DDKAPI
 ArcDeleteFilterOpenAdapter(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  NdisFilterHandle,
   IN PNDIS_REQUEST  NdisRequest);
 
 NDIS_STATUS
 ArcDeleteFilterOpenAdapter(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  NdisFilterHandle,
   IN PNDIS_REQUEST  NdisRequest);
 
 NDIS_STATUS
-NTAPI
+DDKAPI
 ArcFilterAdjust(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  NdisFilterHandle,
 ArcFilterAdjust(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  NdisFilterHandle,
@@ -139,12 +139,12 @@ ArcFilterAdjust(
   IN BOOLEAN  Set);
 
 VOID
   IN BOOLEAN  Set);
 
 VOID
-NTAPI
+DDKAPI
 ArcFilterDprIndicateReceiveComplete(
   IN PARC_FILTER  Filter);
 
 VOID
 ArcFilterDprIndicateReceiveComplete(
   IN PARC_FILTER  Filter);
 
 VOID
-NTAPI
+DDKAPI
 ArcFilterDprIndicateReceive(
   IN PARC_FILTER  Filter,
   IN PUCHAR  pRawHeader,
 ArcFilterDprIndicateReceive(
   IN PARC_FILTER  Filter,
   IN PUCHAR  pRawHeader,
@@ -152,7 +152,7 @@ ArcFilterDprIndicateReceive(
   IN UINT  Length);
 
 NDIS_STATUS
   IN UINT  Length);
 
 NDIS_STATUS
-NTAPI
+DDKAPI
 ArcFilterTransferData(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
 ArcFilterTransferData(
   IN PARC_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
@@ -162,18 +162,18 @@ ArcFilterTransferData(
   OUT PUINT  BytesTransfered);
 
 VOID
   OUT PUINT  BytesTransfered);
 
 VOID
-NTAPI
+DDKAPI
 ArcFreeNdisPacket(
   IN PARC_PACKET  Packet);
 
 VOID
 ArcFreeNdisPacket(
   IN PARC_PACKET  Packet);
 
 VOID
-NTAPI
+DDKAPI
 ArcFilterDoIndication(
   IN PARC_FILTER  Filter,
   IN PARC_PACKET  Packet);
 
 VOID
 ArcFilterDoIndication(
   IN PARC_FILTER  Filter,
   IN PARC_PACKET  Packet);
 
 VOID
-NTAPI
+DDKAPI
 ArcDestroyPacket(
   IN PARC_FILTER  Filter,
   IN PARC_PACKET  Packet);
 ArcDestroyPacket(
   IN PARC_FILTER  Filter,
   IN PARC_PACKET  Packet);
diff --git a/reactos/include/ddk/atsmedia.h b/reactos/include/ddk/atsmedia.h
new file mode 100644 (file)
index 0000000..744a465
--- /dev/null
@@ -0,0 +1,17 @@
+
+/* $Id: $
+ *
+ * COPYRIGHT:            This file is in the public domain.
+ * PROJECT:              ReactOS kernel
+ * FILE:
+ * PURPOSE:              headers
+ * PROGRAMMER:           Magnus Olsen (greatlrd)
+ *
+ */
+
+#if !defined(_ATSCMEDIA_)
+#define _ATSCMEDIA_
+#define BDANETWORKTYPE_ATSC DEFINE_GUIDNAMED(BDANETWORKTYPE_ATSC)
+#define STATIC_BDANETWORKTYPE_ATSC 0x71985F51, 0x1CA1, 0x11D3, 0x9C, 0xC8, 0x0, 0xC0, 0x4F, 0x79, 0x71, 0xE0
+DEFINE_GUIDSTRUCT("71985F51-1CA1-11D3-9CC8-00C04F7971E0", BDANETWORKTYPE_ATSC);
+#endif
index 373ccdb..0bdd590 100644 (file)
@@ -1,12 +1,8 @@
-#pragma once
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
 #if defined(__cplusplus)
 extern "C" {
 #endif
 
 #if defined(__cplusplus)
 extern "C" {
 #endif
 
-/* Helper macro to enable gcc's extension. */
+/* Helper macro to enable gcc's extension.  */
 #ifndef __GNU_EXTENSION
 #ifdef __GNUC__
 #define __GNU_EXTENSION __extension__
 #ifndef __GNU_EXTENSION
 #ifdef __GNUC__
 #define __GNU_EXTENSION __extension__
@@ -16,190 +12,150 @@ extern "C" {
 #endif
 
 #define STDMETHODCALLTYPE __stdcall
 #endif
 
 #define STDMETHODCALLTYPE __stdcall
-
-#ifndef _WDMDDK_
 typedef GUID *PGUID;
 typedef GUID *PGUID;
-#endif
 
 /* Types */
 
 
 /* Types */
 
-typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT;
-
-typedef struct _BDA_PIN_PAIRING {
-  ULONG ulInputPin;
-  ULONG ulOutputPin;
-  ULONG ulcMaxInputsPerOutput;
-  ULONG ulcMinInputsPerOutput;
-  ULONG ulcMaxOutputsPerInput;
-  ULONG ulcMinOutputsPerInput;
-  ULONG ulcTopologyJoints;
-  const ULONG *pTopologyJoints;
+typedef struct _BDA_PIN_PAIRING
+{
+    ULONG ulInputPin;
+    ULONG ulOutputPin;
+    ULONG ulcMaxInputsPerOutput;
+    ULONG ulcMinInputsPerOutput;
+    ULONG ulcMaxOutputsPerInput;
+    ULONG ulcMinOutputsPerInput;
+    ULONG ulcTopologyJoints;
+    const ULONG *pTopologyJoints;
 } BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
 
 } BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
 
-typedef struct _BDA_FILTER_TEMPLATE {
-  const KSFILTER_DESCRIPTOR *pFilterDescriptor;
-  ULONG ulcPinPairs;
-  const BDA_PIN_PAIRING *pPinPairs;
+typedef struct _BDA_FILTER_TEMPLATE
+{
+    const KSFILTER_DESCRIPTOR *pFilterDescriptor;
+    ULONG ulcPinPairs;
+    const BDA_PIN_PAIRING *pPinPairs;
 } BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
 
 } BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
 
-typedef struct _KSM_PIN_PAIR {
-  KSMETHOD Method;
-  ULONG InputPinId;
-  ULONG OutputPinId;
-  ULONG Reserved;
-} KSM_PIN_PAIR, * PKSM_PIN_PAIR;
-
-typedef struct _KSM_PIN {
-  KSMETHOD Method;
-  __GNU_EXTENSION union {
-    ULONG PinId;
-    ULONG PinType;
-  };
-  ULONG Reserved;
+
+typedef struct _KSM_PIN
+{
+    KSMETHOD    Method;
+    __GNU_EXTENSION union
+    {
+        ULONG       PinId;
+        ULONG       PinType;
+    };
+    ULONG       Reserved;
 } KSM_PIN, * PKSM_PIN;
 
 /* Functions */
 
 } KSM_PIN, * PKSM_PIN;
 
 /* Functions */
 
-STDMETHODIMP_(NTSTATUS)
-BdaCheckChanges(
-  IN PIRP Irp);
-
-STDMETHODIMP_(NTSTATUS)
-BdaCommitChanges(
-  IN PIRP Irp);
-
-STDMETHODIMP_(NTSTATUS)
-BdaCreateFilterFactory(
-  IN PKSDEVICE pKSDevice,
-  IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
-  IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
-
-STDMETHODIMP_(NTSTATUS)
-BdaCreateFilterFactoryEx(
-  IN PKSDEVICE pKSDevice,
-  IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
-  IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
-  OUT PKSFILTERFACTORY  *ppKSFilterFactory);
-
-STDMETHODIMP_(NTSTATUS)
-BdaCreatePin(
-  IN PKSFILTER pKSFilter,
-  IN ULONG ulPinType,
-  OUT ULONG *pulPinId);
-
-STDMETHODIMP_(NTSTATUS)
-BdaCreateTopology(
-  IN PKSFILTER pKSFilter,
-  IN ULONG InputPinId,
-  IN ULONG OutputPinId);
-
-STDMETHODIMP_(NTSTATUS)
-BdaDeletePin(
-  IN PKSFILTER pKSFilter,
-  IN ULONG *pulPinId);
-
-STDMETHODIMP_(NTSTATUS)
-BdaFilterFactoryUpdateCacheData(
-  IN PKSFILTERFACTORY pFilterFactory,
-  IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
-
-STDMETHODIMP_(NTSTATUS)
-BdaGetChangeState(
-  IN PIRP Irp,
-  OUT BDA_CHANGE_STATE *pChangeState);
-
-STDMETHODIMP_(NTSTATUS)
-BdaInitFilter(
-  IN PKSFILTER pKSFilter,
-  IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
-
-STDMETHODIMP_(NTSTATUS)
-BdaMethodCreatePin(
-  IN PIRP Irp,
-  IN KSMETHOD *pKSMethod,
-  OUT ULONG *pulPinFactoryID);
-
-STDMETHODIMP_(NTSTATUS)
-BdaMethodCreateTopology(
-  IN PIRP Irp,
-  IN KSMETHOD *pKSMethod,
-  OPTIONAL PVOID pvIgnored);
-
-STDMETHODIMP_(NTSTATUS)
-BdaMethodDeletePin(
-  IN PIRP Irp,
-  IN KSMETHOD *pKSMethod,
-  OPTIONAL PVOID pvIgnored);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyGetControllingPinId(
-  IN PIRP Irp,
-  IN KSP_BDA_NODE_PIN *pProperty,
-  OUT ULONG *pulControllingPinId);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyGetPinControl(
-  IN PIRP Irp,
-  IN KSPROPERTY *pKSProperty,
-  OUT ULONG *pulProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyNodeDescriptors(
-  IN PIRP Irp,
-  IN KSPROPERTY *pKSProperty,
-  OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyNodeEvents(
-  IN PIRP Irp,
-  IN KSP_NODE *pKSProperty,
-  OUT GUID *pguidProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyNodeMethods(
-  IN PIRP Irp,
-  IN KSP_NODE *pKSProperty,
-  OUT GUID *pguidProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyNodeProperties(
-  IN PIRP Irp,
-  IN KSP_NODE *pKSProperty,
-  OUT GUID *pguidProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyNodeTypes(
-  IN PIRP Irp,
-  IN KSPROPERTY *pKSProperty,
-  OUT ULONG *pulProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyPinTypes(
-  IN PIRP Irp,
-  IN KSPROPERTY *pKSProperty,
-  OUT ULONG *pulProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaPropertyTemplateConnections(
-  IN PIRP Irp,
-  IN KSPROPERTY *pKSProperty,
-  OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
-
-STDMETHODIMP_(NTSTATUS)
-BdaStartChanges(
-  IN PIRP Irp);
-
-STDMETHODIMP_(NTSTATUS)
-BdaUninitFilter(
-  IN PKSFILTER pKSFilter);
-
-STDMETHODIMP_(NTSTATUS)
-BdaValidateNodeProperty(
-  IN PIRP Irp,
-  IN KSPROPERTY *pKSProperty);
+STDMETHODIMP_(NTSTATUS) BdaCheckChanges(IN PIRP  Irp);
+STDMETHODIMP_(NTSTATUS) BdaCommitChanges(IN PIRP  Irp);
+
+STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactory(
+    IN PKSDEVICE  pKSDevice,
+    IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
+    IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
+
+STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactoryEx(
+    IN  PKSDEVICE pKSDevice,
+    IN  const KSFILTER_DESCRIPTOR *pFilterDescriptor,
+    IN  const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
+    OUT PKSFILTERFACTORY  *ppKSFilterFactory);
+
+STDMETHODIMP_(NTSTATUS) BdaCreatePin(
+    IN PKSFILTER pKSFilter,
+    IN ULONG ulPinType,
+    OUT ULONG *pulPinId);
+
+STDMETHODIMP_(NTSTATUS) BdaCreateTopology(
+    IN PKSFILTER pKSFilter,
+    IN ULONG InputPinId,
+    IN ULONG OutputPinId);
+
+STDMETHODIMP_(NTSTATUS) BdaDeletePin(
+    IN PKSFILTER pKSFilter,
+    IN ULONG *pulPinId);
+
+STDMETHODIMP_(NTSTATUS) BdaFilterFactoryUpdateCacheData(
+    IN PKSFILTERFACTORY pFilterFactory,
+    IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
+
+STDMETHODIMP_(NTSTATUS) BdaGetChangeState(
+    IN PIRP Irp,
+    OUT BDA_CHANGE_STATE *pChangeState);
+
+STDMETHODIMP_(NTSTATUS) BdaInitFilter(
+    IN PKSFILTER pKSFilter,
+    IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
+
+STDMETHODIMP_(NTSTATUS) BdaMethodCreatePin(
+    IN PIRP Irp,
+    IN KSMETHOD *pKSMethod,
+    OUT ULONG *pulPinFactoryID);
+
+STDMETHODIMP_(NTSTATUS) BdaMethodCreateTopology(
+    IN PIRP Irp,
+    IN KSMETHOD *pKSMethod,
+    OPTIONAL PVOID pvIgnored);
+
+STDMETHODIMP_(NTSTATUS) BdaMethodDeletePin(
+    IN PIRP Irp,
+    IN KSMETHOD *pKSMethod,
+    OPTIONAL PVOID pvIgnored);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyGetControllingPinId(
+    IN PIRP Irp,
+    IN KSP_BDA_NODE_PIN *pProperty,
+    OUT ULONG *pulControllingPinId);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyGetPinControl(
+    IN PIRP Irp,
+    IN KSPROPERTY *pKSProperty,
+    OUT ULONG *pulProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyNodeDescriptors(
+    IN PIRP Irp,
+    IN KSPROPERTY *pKSProperty,
+    OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyNodeEvents(
+    IN PIRP Irp,
+    IN KSP_NODE *pKSProperty,
+    OUT GUID *pguidProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyNodeMethods(
+    IN PIRP Irp,
+    IN KSP_NODE *pKSProperty,
+    OUT GUID *pguidProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyNodeProperties(
+    IN PIRP Irp,
+    IN KSP_NODE *pKSProperty,
+    OUT GUID *pguidProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyNodeTypes(
+    IN PIRP Irp,
+    IN KSPROPERTY *pKSProperty,
+    OUT ULONG *pulProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyPinTypes(
+    IN PIRP Irp,
+    IN KSPROPERTY *pKSProperty,
+    OUT ULONG *pulProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaPropertyTemplateConnections(
+    IN PIRP Irp,
+    IN KSPROPERTY *pKSProperty,
+    OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
+
+STDMETHODIMP_(NTSTATUS) BdaStartChanges(IN PIRP Irp);
+STDMETHODIMP_(NTSTATUS) BdaUninitFilter(IN PKSFILTER pKSFilter);
+
+STDMETHODIMP_(NTSTATUS) BdaValidateNodeProperty(
+    IN PIRP Irp,
+    IN KSPROPERTY *pKSProperty);
 
 #if defined(__cplusplus)
 }
 #endif
 
 #if defined(__cplusplus)
 }
 #endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
similarity index 65%
rename from reactos/include/psdk/cfg.h
rename to reactos/include/ddk/cfg.h
index 3653dec..d9a4802 100644 (file)
@@ -20,8 +20,7 @@
  *
  */
 
  *
  */
 
-#pragma once
-
+#ifndef _CFG_INCLUDED_
 #define _CFG_INCLUDED_
 
 #ifdef __cplusplus
 #define _CFG_INCLUDED_
 
 #ifdef __cplusplus
@@ -78,26 +77,7 @@ extern "C" {
 #define CM_PROB_DRIVER_BLOCKED              0x00000030
 #define CM_PROB_REGISTRY_TOO_LARGE          0x00000031
 #define CM_PROB_SETPROPERTIES_FAILED        0x00000032
 #define CM_PROB_DRIVER_BLOCKED              0x00000030
 #define CM_PROB_REGISTRY_TOO_LARGE          0x00000031
 #define CM_PROB_SETPROPERTIES_FAILED        0x00000032
-#define CM_PROB_WAITING_ON_DEPENDENCY       0x00000033
-#define CM_PROB_UNSIGNED_DRIVER             0x00000034
-
-#define NUM_CM_PROB_V1                      0x00000025
-#define NUM_CM_PROB_V2                      0x00000032
-#define NUM_CM_PROB_V3                      0x00000033
-#define NUM_CM_PROB_V4                      0x00000034
-#define NUM_CM_PROB_V5                      0x00000035
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-#define NUM_CM_PROB NUM_CM_PROB_V5
-#elif (NTDDI_VERSION >= NTDDI_WS08)
-#define NUM_CM_PROB NUM_CM_PROB_V4
-#elif (NTDDI_VERSION >= NTDDI_WS03)
-#define NUM_CM_PROB NUM_CM_PROB_V3
-#elif (NTDDI_VERSION >= NTDDI_WINXP)
-#define NUM_CM_PROB NUM_CM_PROB_V2
-#elif (NTDDI_VERSION >= WIN2K)
-#define NUM_CM_PROB NUM_CM_PROB_V1
-#endif
+#define NUM_CM_PROB                         0x00000033
 
 #define LCPRI_FORCECONFIG                 0x00000000
 #define LCPRI_BOOTCONFIG                  0x00000001
 
 #define LCPRI_FORCECONFIG                 0x00000000
 #define LCPRI_BOOTCONFIG                  0x00000001
@@ -115,24 +95,24 @@ extern "C" {
 #define LCPRI_DISABLED                    0x0000FFFF
 #define MAX_LCPRI                         0x0000FFFF
 
 #define LCPRI_DISABLED                    0x0000FFFF
 #define MAX_LCPRI                         0x0000FFFF
 
-#define DN_ROOT_ENUMERATED  0x00000001 /* Was enumerated by ROOT */
-#define DN_DRIVER_LOADED    0x00000002 /* Has Register_Device_Driver */
-#define DN_ENUM_LOADED      0x00000004 /* Has Register_Enumerator */
-#define DN_STARTED          0x00000008 /* Is currently configured */
-#define DN_MANUAL           0x00000010 /* Manually installed */
-#define DN_NEED_TO_ENUM     0x00000020 /* May need reenumeration */
-#define DN_NOT_FIRST_TIME   0x00000040 /* Has received a config (Win9x only) */
-#define DN_HARDWARE_ENUM    0x00000080 /* Enum generates hardware ID */
-#define DN_LIAR             0x00000100 /* Lied about can reconfig once (Win9x only) */
-#define DN_HAS_MARK         0x00000200 /* Not CM_Create_DevNode lately (Win9x only) */
-#define DN_HAS_PROBLEM      0x00000400 /* Need device installer */
-#define DN_FILTERED         0x00000800 /* Is filtered */
-#define DN_MOVED            0x00001000 /* Has been moved (Win9x only) */
-#define DN_DISABLEABLE      0x00002000 /* Can be rebalanced */
-#define DN_REMOVABLE        0x00004000 /* Can be removed */
-#define DN_PRIVATE_PROBLEM  0x00008000 /* Has a private problem */
-#define DN_MF_PARENT        0x00010000 /* Multi function parent */
-#define DN_MF_CHILD         0x00020000 /* Multi function child */
+#define DN_ROOT_ENUMERATED  0x00000001 /* Was enumerated by ROOT */
+#define DN_DRIVER_LOADED    0x00000002 /* Has Register_Device_Driver */
+#define DN_ENUM_LOADED      0x00000004 /* Has Register_Enumerator */
+#define DN_STARTED          0x00000008 /* Is currently configured */
+#define DN_MANUAL           0x00000010 /* Manually installed */
+#define DN_NEED_TO_ENUM     0x00000020 /* May need reenumeration */
+#define DN_NOT_FIRST_TIME   0x00000040 /* Has received a config (Win9x only) */
+#define DN_HARDWARE_ENUM    0x00000080 /* Enum generates hardware ID */
+#define DN_LIAR             0x00000100 /* Lied about can reconfig once (Win9x only) */
+#define DN_HAS_MARK         0x00000200 /* Not CM_Create_DevNode lately (Win9x only) */
+#define DN_HAS_PROBLEM      0x00000400 /* Need device installer */
+#define DN_FILTERED         0x00000800 /* Is filtered */
+#define DN_MOVED            0x00001000 /* Has been moved (Win9x only) */
+#define DN_DISABLEABLE      0x00002000 /* Can be rebalanced */
+#define DN_REMOVABLE        0x00004000 /* Can be removed */
+#define DN_PRIVATE_PROBLEM  0x00008000 /* Has a private problem */
+#define DN_MF_PARENT        0x00010000 /* Multi function parent */
+#define DN_MF_CHILD         0x00020000 /* Multi function child */
 #define DN_WILL_BE_REMOVED  0x00040000
 #define DN_NOT_FIRST_TIMEE  0x00080000
 #define DN_STOP_FREE_RES    0x00100000
 #define DN_WILL_BE_REMOVED  0x00040000
 #define DN_NOT_FIRST_TIMEE  0x00080000
 #define DN_STOP_FREE_RES    0x00100000
@@ -148,33 +128,11 @@ extern "C" {
 #define DN_NO_SHOW_IN_DM    0x40000000
 #define DN_BOOT_LOG_PROB    0x80000000
 
 #define DN_NO_SHOW_IN_DM    0x40000000
 #define DN_BOOT_LOG_PROB    0x80000000
 
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-#define DN_NEED_RESTART DN_LIAR
-#define DN_DRIVER_BLOCKED DN_NOT_FIRST_TIME
-#define DN_LEGACY_DRIVER DN_MOVED
+#define DN_NEED_RESTART          DN_LIAR
+#define DN_DRIVER_BLOCKED        DN_NOT_FIRST_TIME
+#define DN_LEGACY_DRIVER         DN_MOVED
 #define DN_CHILD_WITH_INVALID_ID DN_HAS_MARK
 
 #define DN_CHILD_WITH_INVALID_ID DN_HAS_MARK
 
-#elif (NTDDI_VERSION >= NTDDI_WIN2K)
-
-#define DN_NEED_RESTART 0x00000100
-
-#endif
-
-#define DN_CHANGEABLE_FLAGS (DN_NOT_FIRST_TIME + \
-                             DN_HARDWARE_ENUM + \
-                             DN_HAS_MARK + \
-                             DN_DISABLEABLE + \
-                             DN_REMOVABLE + \
-                             DN_MF_CHILD + \
-                             DN_MF_PARENT + \
-                             DN_NOT_FIRST_TIMEE + \
-                             DN_STOP_FREE_RES + \
-                             DN_REBAL_CANDIDATE + \
-                             DN_NT_ENUMERATOR + \
-                             DN_NT_DRIVER + \
-                             DN_SILENT_INSTALL + \
-                             DN_NO_SHOW_IN_DM)
 
 typedef enum _PNP_VETO_TYPE {
   PNP_VetoTypeUnknown,
 
 typedef enum _PNP_VETO_TYPE {
   PNP_VetoTypeUnknown,
@@ -191,7 +149,14 @@ typedef enum _PNP_VETO_TYPE {
   PNP_VetoLegacyDriver
 } PNP_VETO_TYPE, *PPNP_VETO_TYPE;
 
   PNP_VetoLegacyDriver
 } PNP_VETO_TYPE, *PPNP_VETO_TYPE;
 
+#define CM_GLOBAL_STATE_CAN_DO_UI           0x00000001
+#define CM_GLOBAL_STATE_ON_BIG_STACK        0x00000002
+#define CM_GLOBAL_STATE_SERVICES_AVAILABLE  0x00000004
+#define CM_GLOBAL_STATE_SHUTTING_DOWN       0x00000008
+#define CM_GLOBAL_STATE_DETECTION_PENDING   0x00000010
+
 #ifdef __cplusplus
 }
 #endif
 
 #ifdef __cplusplus
 }
 #endif
 
+#endif /* _CFG_INCLUDED_ */
diff --git a/reactos/include/ddk/cfgmgr32.h b/reactos/include/ddk/cfgmgr32.h
new file mode 100644 (file)
index 0000000..5ca47bd
--- /dev/null
@@ -0,0 +1,2244 @@
+/*
+ * cfgmgr32.h
+ *
+ * PnP configuration manager
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef _CFGMGR32_H_
+#define _CFGMGR32_H_
+
+#include "cfg.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_CFGMGR32_)
+#define CMAPI
+#else
+#define CMAPI DECLSPEC_IMPORT
+#endif
+
+#include <pshpack1.h>
+
+#define CR_SUCCESS                        0x00000000
+#define CR_DEFAULT                        0x00000001
+#define CR_OUT_OF_MEMORY                  0x00000002
+#define CR_INVALID_POINTER                0x00000003
+#define CR_INVALID_FLAG                   0x00000004
+#define CR_INVALID_DEVNODE                0x00000005
+#define CR_INVALID_DEVINST                CR_INVALID_DEVNODE
+#define CR_INVALID_RES_DES                0x00000006
+#define CR_INVALID_LOG_CONF               0x00000007
+#define CR_INVALID_ARBITRATOR             0x00000008
+#define CR_INVALID_NODELIST               0x00000009
+#define CR_DEVNODE_HAS_REQS               0x0000000A
+#define CR_DEVINST_HAS_REQS               CR_DEVNODE_HAS_REQS
+#define CR_INVALID_RESOURCEID             0x0000000B
+#define CR_DLVXD_NOT_FOUND                0x0000000C
+#define CR_NO_SUCH_DEVNODE                0x0000000D
+#define CR_NO_SUCH_DEVINST                CR_NO_SUCH_DEVNODE
+#define CR_NO_MORE_LOG_CONF               0x0000000E
+#define CR_NO_MORE_RES_DES                0x0000000F
+#define CR_ALREADY_SUCH_DEVNODE           0x00000010
+#define CR_ALREADY_SUCH_DEVINST           CR_ALREADY_SUCH_DEVNODE
+#define CR_INVALID_RANGE_LIST             0x00000011
+#define CR_INVALID_RANGE                  0x00000012
+#define CR_FAILURE                        0x00000013
+#define CR_NO_SUCH_LOGICAL_DEV            0x00000014
+#define CR_CREATE_BLOCKED                 0x00000015
+#define CR_NOT_SYSTEM_VM                  0x00000016
+#define CR_REMOVE_VETOED                  0x00000017
+#define CR_APM_VETOED                     0x00000018
+#define CR_INVALID_LOAD_TYPE              0x00000019
+#define CR_BUFFER_SMALL                   0x0000001A
+#define CR_NO_ARBITRATOR                  0x0000001B
+#define CR_NO_REGISTRY_HANDLE             0x0000001C
+#define CR_REGISTRY_ERROR                 0x0000001D
+#define CR_INVALID_DEVICE_ID              0x0000001E
+#define CR_INVALID_DATA                   0x0000001F
+#define CR_INVALID_API                    0x00000020
+#define CR_DEVLOADER_NOT_READY            0x00000021
+#define CR_NEED_RESTART                   0x00000022
+#define CR_NO_MORE_HW_PROFILES            0x00000023
+#define CR_DEVICE_NOT_THERE               0x00000024
+#define CR_NO_SUCH_VALUE                  0x00000025
+#define CR_WRONG_TYPE                     0x00000026
+#define CR_INVALID_PRIORITY               0x00000027
+#define CR_NOT_DISABLEABLE                0x00000028
+#define CR_FREE_RESOURCES                 0x00000029
+#define CR_QUERY_VETOED                   0x0000002A
+#define CR_CANT_SHARE_IRQ                 0x0000002B
+#define CR_NO_DEPENDENT                   0x0000002C
+#define CR_SAME_RESOURCES                 0x0000002D
+#define CR_NO_SUCH_REGISTRY_KEY           0x0000002E
+#define CR_INVALID_MACHINENAME            0x0000002F
+#define CR_REMOTE_COMM_FAILURE            0x00000030
+#define CR_MACHINE_UNAVAILABLE            0x00000031
+#define CR_NO_CM_SERVICES                 0x00000032
+#define CR_ACCESS_DENIED                  0x00000033
+#define CR_CALL_NOT_IMPLEMENTED           0x00000034
+#define CR_INVALID_PROPERTY               0x00000035
+#define CR_DEVICE_INTERFACE_ACTIVE        0x00000036
+#define CR_NO_SUCH_DEVICE_INTERFACE       0x00000037
+#define CR_INVALID_REFERENCE_STRING       0x00000038
+#define CR_INVALID_CONFLICT_LIST          0x00000039
+#define CR_INVALID_INDEX                  0x0000003A
+#define CR_INVALID_STRUCTURE_SIZE         0x0000003B
+
+#define RegDisposition_OpenAlways         0x00000000
+#define RegDisposition_OpenExisting       0x00000001
+#define RegDisposition_Bits               0x00000001
+
+
+typedef DWORD RETURN_TYPE;
+typedef RETURN_TYPE CONFIGRET;
+
+typedef HANDLE HMACHINE;
+typedef HMACHINE *PHMACHINE;
+
+typedef DWORD_PTR RES_DES;
+typedef RES_DES *PRES_DES;
+
+typedef DWORD_PTR RANGE_ELEMENT;
+typedef RANGE_ELEMENT *PRANGE_ELEMENT;
+
+typedef ULONG_PTR CONFLICT_LIST;
+typedef CONFLICT_LIST *PCONFLICT_LIST;
+
+typedef DWORD_PTR LOG_CONF;
+typedef LOG_CONF *PLOG_CONF;
+
+typedef ULONG PRIORITY;
+typedef PRIORITY *PPRIORITY;
+
+typedef DWORD_PTR RANGE_LIST;
+typedef RANGE_LIST *PRANGE_LIST;
+
+typedef DWORD DEVNODE, DEVINST;
+typedef DEVNODE *PDEVNODE, *PDEVINST;
+
+typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
+typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
+
+#ifdef UNICODE
+typedef DEVNODEID_W DEVNODEID;
+typedef DEVINSTID_W DEVINSTID;
+#else
+typedef DEVNODEID_A DEVNODEID;
+typedef DEVINSTID_A DEVINSTID;
+#endif
+
+typedef ULONG REGDISPOSITION;
+
+typedef ULONG RESOURCEID;
+typedef RESOURCEID *PRESOURCEID;
+
+#define CM_RESDES_WIDTH_DEFAULT  0x00000000
+#define CM_RESDES_WIDTH_32       0x00000001
+#define CM_RESDES_WIDTH_64       0x00000002
+#define CM_RESDES_WIDTH_BITS     0x00000003
+
+
+#define MAX_CONFIG_VALUE         9999
+#define MAX_INSTANCE_VALUE       9999
+
+#define MAX_DEVICE_ID_LEN        200
+#define MAX_DEVNODE_ID_LEN       MAX_DEVICE_ID_LEN
+
+#define MAX_CLASS_NAME_LEN       32
+#define MAX_GUID_STRING_LEN      39
+#define MAX_PROFILE_LEN          80
+
+
+#define ResType_All                       0x00000000
+#define ResType_None                      0x00000000
+#define ResType_Mem                       0x00000001
+#define ResType_IO                        0x00000002
+#define ResType_DMA                       0x00000003
+#define ResType_IRQ                       0x00000004
+#define ResType_DoNotUse                  0x00000005
+#define ResType_BusNumber                 0x00000006
+#define ResType_MAX                       0x00000006
+#define ResType_Ignored_Bit               0x00008000
+#define ResType_ClassSpecific             0x0000FFFF
+#define ResType_Reserved                  0x00008000
+#define ResType_DevicePrivate             0x00008001
+#define ResType_PcCardConfig              0x00008002
+#define ResType_MfCardConfig              0x00008003
+
+#define CM_GETIDLIST_FILTER_NONE              0x00000000
+#define CM_GETIDLIST_FILTER_ENUMERATOR        0x00000001
+#define CM_GETIDLIST_FILTER_SERVICE           0x00000002
+#define CM_GETIDLIST_FILTER_EJECTRELATIONS    0x00000004
+#define CM_GETIDLIST_FILTER_REMOVALRELATIONS  0x00000008
+#define CM_GETIDLIST_FILTER_POWERRELATIONS    0x00000010
+#define CM_GETIDLIST_FILTER_BUSRELATIONS      0x00000020
+#define CM_GETIDLIST_DONOTGENERATE            0x10000040
+#define CM_GETIDLIST_FILTER_BITS              0x1000007F
+
+#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT      0x00000000
+#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES  0x00000001
+#define CM_GET_DEVICE_INTERFACE_LIST_BITS         0x00000001
+
+#define CM_DRP_DEVICEDESC                  0x00000001
+#define CM_DRP_HARDWAREID                  0x00000002
+#define CM_DRP_COMPATIBLEIDS               0x00000003
+#define CM_DRP_UNUSED0                     0x00000004
+#define CM_DRP_SERVICE                     0x00000005
+#define CM_DRP_UNUSED1                     0x00000006
+#define CM_DRP_UNUSED2                     0x00000007
+#define CM_DRP_CLASS                       0x00000008
+#define CM_DRP_CLASSGUID                   0x00000009
+#define CM_DRP_DRIVER                      0x0000000A
+#define CM_DRP_CONFIGFLAGS                 0x0000000B
+#define CM_DRP_MFG                         0x0000000C
+#define CM_DRP_FRIENDLYNAME                0x0000000D
+#define CM_DRP_LOCATION_INFORMATION        0x0000000E
+#define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME 0x0000000F
+#define CM_DRP_CAPABILITIES                0x00000010
+#define CM_DRP_UI_NUMBER                   0x00000011
+#define CM_DRP_UPPERFILTERS                0x00000012
+#define CM_DRP_LOWERFILTERS                0x00000013
+#define CM_DRP_BUSTYPEGUID                 0x00000014
+#define CM_DRP_LEGACYBUSTYPE               0x00000015
+#define CM_DRP_BUSNUMBER                   0x00000016
+#define CM_DRP_ENUMERATOR_NAME             0x00000017
+
+#define CM_DRP_MIN                         0x00000001
+#define CM_DRP_MAX                         0x00000017
+
+#define CM_REGISTRY_HARDWARE               0x00000000
+#define CM_REGISTRY_SOFTWARE               0x00000001
+#define CM_REGISTRY_USER                   0x00000100
+#define CM_REGISTRY_CONFIG                 0x00000200
+#define CM_REGISTRY_BITS                   0x00000301
+
+#define CM_DEVCAP_LOCKSUPPORTED            0x00000001
+#define CM_DEVCAP_EJECTSUPPORTED           0x00000002
+#define CM_DEVCAP_REMOVABLE                0x00000004
+#define CM_DEVCAP_DOCKDEVICE               0x00000008
+#define CM_DEVCAP_UNIQUEID                 0x00000010
+#define CM_DEVCAP_SILENTINSTALL            0x00000020
+#define CM_DEVCAP_RAWDEVICEOK              0x00000040
+#define CM_DEVCAP_SURPRISEREMOVALOK        0x00000080
+#define CM_DEVCAP_HARDWAREDISABLED         0x00000100
+#define CM_DEVCAP_NONDYNAMIC               0x00000200
+
+typedef struct BusNumber_Des_s {
+  DWORD  BUSD_Count;
+  DWORD  BUSD_Type;
+  DWORD  BUSD_Flags;
+  ULONG  BUSD_Alloc_Base;
+  ULONG  BUSD_Alloc_End;
+} BUSNUMBER_DES, *PBUSNUMBER_DES;
+
+typedef struct BusNumber_Range_s {
+  ULONG  BUSR_Min;
+  ULONG  BUSR_Max;
+  ULONG  BUSR_nBusNumbers;
+  ULONG  BUSR_Flags;
+} BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
+
+#define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
+
+typedef struct BusNumber_Resource_s {
+  BUSNUMBER_DES  BusNumber_Header;
+  BUSNUMBER_RANGE  BusNumber_Data[ANYSIZE_ARRAY];
+} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
+
+typedef struct CS_Des_s {
+  DWORD  CSD_SignatureLength;
+  DWORD  CSD_LegacyDataOffset;
+  DWORD  CSD_LegacyDataSize;
+  DWORD  CSD_Flags;
+  GUID  CSD_ClassGuid;
+  BYTE  CSD_Signature[ANYSIZE_ARRAY];
+} CS_DES, *PCS_DES;
+
+typedef struct CS_Resource_s {
+  CS_DES  CS_Header;
+} CS_RESOURCE, *PCS_RESOURCE;
+
+typedef struct DevPrivate_Des_s {
+  DWORD  PD_Count;
+  DWORD  PD_Type;
+  DWORD  PD_Data1;
+  DWORD  PD_Data2;
+  DWORD  PD_Data3;
+  DWORD  PD_Flags;
+} DEVPRIVATE_DES, *PDEVPRIVATE_DES;
+
+typedef struct DevPrivate_Range_s {
+  DWORD  PR_Data1;
+  DWORD  PR_Data2;
+  DWORD  PR_Data3;
+} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
+
+#define PType_Range sizeof(DEVPRIVATE_RANGE)
+
+typedef struct DevPrivate_Resource_s {
+  DEVPRIVATE_DES  PRV_Header;
+  DEVPRIVATE_RANGE  PRV_Data[ANYSIZE_ARRAY];
+} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
+
+/* DMA_DES.DD_Flags constants and masks */
+#define mDD_Width                         0x3
+#define fDD_BYTE                          0x0
+#define fDD_WORD                          0x1
+#define fDD_DWORD                         0x2
+#define fDD_BYTE_AND_WORD                 0x3
+
+#define mDD_BusMaster                     0x4
+#define fDD_NoBusMaster                   0x0
+#define fDD_BusMaster                     0x4
+
+#define mDD_Type                          0x18
+#define fDD_TypeStandard                  0x00
+#define fDD_TypeA                         0x08
+#define fDD_TypeB                         0x10
+#define fDD_TypeF                         0x18
+
+typedef struct DMA_Des_s {
+  DWORD  DD_Count;
+  DWORD  DD_Type;
+  DWORD  DD_Flags;
+  ULONG  DD_Alloc_Chan;
+} DMA_DES, *PDMA_DES;
+
+typedef struct DMA_Range_s {
+  ULONG  DR_Min;
+  ULONG  DR_Max;
+  ULONG  DR_Flags;
+} DMA_RANGE, *PDMA_RANGE;
+
+#define DType_Range sizeof(DMA_RANGE)
+
+typedef struct DMA_Resource_s {
+  DMA_DES  DMA_Header;
+  DMA_RANGE  DMA_Data[ANYSIZE_ARRAY];
+} DMA_RESOURCE, *PDMA_RESOURCE;
+
+/* IO_DES.Type constants and masks */
+#define fIOD_PortType                     0x1
+#define fIOD_Memory                       0x0
+#define fIOD_IO                           0x1
+#define fIOD_DECODE                       0x00fc
+#define fIOD_10_BIT_DECODE                0x0004
+#define fIOD_12_BIT_DECODE                0x0008
+#define fIOD_16_BIT_DECODE                0x0010
+#define fIOD_POSITIVE_DECODE              0x0020
+#define fIOD_PASSIVE_DECODE               0x0040
+#define fIOD_WINDOW_DECODE                0x0080
+
+typedef struct IO_Des_s {
+  DWORD  IOD_Count;
+  DWORD  IOD_Type;
+  DWORDLONG  IOD_Alloc_Base;
+  DWORDLONG  IOD_Alloc_End;
+  DWORD  IOD_DesFlags;
+} IO_DES, *PIO_DES;
+
+/* IO_RANGE.IOR_Alias constants */
+#define IO_ALIAS_10_BIT_DECODE            0x00000004
+#define IO_ALIAS_12_BIT_DECODE            0x00000010
+#define IO_ALIAS_16_BIT_DECODE            0x00000000
+#define IO_ALIAS_POSITIVE_DECODE          0x000000FF
+
+typedef struct IO_Range_s {
+  DWORDLONG  IOR_Align;
+  DWORD  IOR_nPorts;
+  DWORDLONG  IOR_Min;
+  DWORDLONG  IOR_Max;
+  DWORD  IOR_RangeFlags;
+  DWORDLONG  IOR_Alias;
+} IO_RANGE, *PIO_RANGE;
+
+#define IOType_Range sizeof(IO_RANGE)
+
+typedef struct IO_Resource_s {
+  IO_DES  IO_Header;
+  IO_RANGE  IO_Data[ANYSIZE_ARRAY];
+} IO_RESOURCE, *PIO_RESOURCE;
+
+/* IRQ_DES.IRQD_flags constants */
+#define mIRQD_Share                       0x1
+#define fIRQD_Exclusive                   0x0
+#define fIRQD_Share                       0x1
+
+#define fIRQD_Share_Bit                   0
+#define fIRQD_Level_Bit                   1
+
+#define mIRQD_Edge_Level                  0x2
+#define fIRQD_Level                       0x0
+#define fIRQD_Edge                        0x2
+
+typedef struct IRQ_Des_32_s {
+  DWORD  IRQD_Count;
+  DWORD  IRQD_Type;
+  DWORD  IRQD_Flags;
+  ULONG  IRQD_Alloc_Num;
+  ULONG32  IRQD_Affinity;
+} IRQ_DES_32, *PIRQ_DES_32;
+
+typedef struct IRQ_Des_64_s {
+  DWORD  IRQD_Count;
+  DWORD  IRQD_Type;
+  DWORD  IRQD_Flags;
+  ULONG  IRQD_Alloc_Num;
+  ULONG64  IRQD_Affinity;
+} IRQ_DES_64, *PIRQ_DES_64;
+
+#ifdef _WIN64
+typedef IRQ_DES_64 IRQ_DES;
+typedef PIRQ_DES_64 PIRQ_DES;
+#else
+typedef IRQ_DES_32 IRQ_DES;
+typedef PIRQ_DES_32 PIRQ_DES;
+#endif
+
+typedef struct IRQ_Range_s {
+  ULONG  IRQR_Min;
+  ULONG  IRQR_Max;
+  ULONG  IRQR_Flags;
+} IRQ_RANGE, *PIRQ_RANGE;
+
+#define IRQType_Range sizeof(IRQ_RANGE)
+
+typedef struct IRQ_Resource_s {
+  IRQ_DES  IRQ_Header;
+  IRQ_RANGE  IRQ_Data[ANYSIZE_ARRAY];
+} IRQ_RESOURCE, *PIRQ_RESOURCE;
+
+/* MEM_DES.MD_Flags constants */
+#define mMD_MemoryType              0x1
+#define fMD_MemoryType              mMD_MemoryType
+#define fMD_ROM                     0x0
+#define fMD_RAM                     0x1
+
+#define mMD_32_24                   0x2
+#define fMD_32_24                   mMD_32_24
+#define fMD_24                      0x0
+#define fMD_32                      0x2
+
+#define mMD_Prefetchable            0x4
+#define fMD_Prefetchable            mMD_Prefetchable
+#define fMD_Pref                    mMD_Prefetchable
+#define fMD_PrefetchDisallowed      0x0
+#define fMD_PrefetchAllowed         0x4
+
+#define mMD_Readable                0x8
+#define fMD_Readable                mMD_Readable
+#define fMD_ReadAllowed             0x0
+#define fMD_ReadDisallowed          0x8
+
+#define mMD_CombinedWrite           0x10
+#define fMD_CombinedWrite           mMD_CombinedWrite
+#define fMD_CombinedWriteDisallowed 0x0
+#define fMD_CombinedWriteAllowed    0x10
+
+#define mMD_Cacheable               0x20
+#define fMD_NonCacheable            0x0
+#define fMD_Cacheable               0x20
+
+typedef struct Mem_Des_s {
+  DWORD  MD_Count;
+  DWORD  MD_Type;
+  DWORDLONG  MD_Alloc_Base;
+  DWORDLONG  MD_Alloc_End;
+  DWORD  MD_Flags;
+  DWORD  MD_Reserved;
+} MEM_DES, *PMEM_DES;
+
+typedef struct Mem_Range_s {
+  DWORDLONG  MR_Align;
+  ULONG  MR_nBytes;
+  DWORDLONG  MR_Min;
+  DWORDLONG  MR_Max;
+  DWORD  MR_Flags;
+  DWORD  MR_Reserved;
+} MEM_RANGE, *PMEM_RANGE;
+
+#define MType_Range sizeof(MEM_RANGE)
+
+typedef struct Mem_Resource_s {
+  MEM_DES  MEM_Header;
+  MEM_RANGE  MEM_Data[ANYSIZE_ARRAY];
+} MEM_RESOURCE, *PMEM_RESOURCE;
+
+/* MFCARD_DES.PMF_Flags constants */
+#define fPMF_AUDIO_ENABLE                 0x8
+#define mPMF_AUDIO_ENABLE                 fPMF_AUDIO_ENABLE
+
+typedef struct MfCard_Des_s {
+  DWORD  PMF_Count;
+  DWORD  PMF_Type;
+  DWORD  PMF_Flags;
+  BYTE  PMF_ConfigOptions;
+  BYTE  PMF_IoResourceIndex;
+  BYTE  PMF_Reserved[2];
+  DWORD  PMF_ConfigRegisterBase;
+} MFCARD_DES, *PMFCARD_DES;
+
+typedef struct MfCard_Resource_s {
+  MFCARD_DES  MfCard_Header;
+} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
+
+/* PCCARD_DES.PCD_Flags constants */
+
+typedef struct PcCard_Des_s {
+  DWORD  PCD_Count;
+  DWORD  PCD_Type;
+  DWORD  PCD_Flags;
+  BYTE  PCD_ConfigIndex;
+  BYTE  PCD_Reserved[3];
+  DWORD  PCD_MemoryCardBase1;
+  DWORD  PCD_MemoryCardBase2;
+} PCCARD_DES, *PPCCARD_DES;
+
+#define mPCD_IO_8_16                      0x1
+#define fPCD_IO_8                         0x0
+#define fPCD_IO_16                        0x1
+#define mPCD_MEM_8_16                     0x2
+#define fPCD_MEM_8                        0x0
+#define fPCD_MEM_16                       0x2
+#define mPCD_MEM_A_C                      0xC
+#define fPCD_MEM1_A                       0x4
+#define fPCD_MEM2_A                       0x8
+#define fPCD_IO_ZW_8                      0x10
+#define fPCD_IO_SRC_16                    0x20
+#define fPCD_IO_WS_16                     0x40
+#define mPCD_MEM_WS                       0x300
+#define fPCD_MEM_WS_ONE                   0x100
+#define fPCD_MEM_WS_TWO                   0x200
+#define fPCD_MEM_WS_THREE                 0x300
+
+#define fPCD_MEM_A                        0x4
+
+#define fPCD_ATTRIBUTES_PER_WINDOW        0x8000
+
+#define fPCD_IO1_16                       0x00010000
+#define fPCD_IO1_ZW_8                     0x00020000
+#define fPCD_IO1_SRC_16                   0x00040000
+#define fPCD_IO1_WS_16                    0x00080000
+
+#define fPCD_IO2_16                       0x00100000
+#define fPCD_IO2_ZW_8                     0x00200000
+#define fPCD_IO2_SRC_16                   0x00400000
+#define fPCD_IO2_WS_16                    0x00800000
+
+#define mPCD_MEM1_WS                      0x03000000
+#define fPCD_MEM1_WS_ONE                  0x01000000
+#define fPCD_MEM1_WS_TWO                  0x02000000
+#define fPCD_MEM1_WS_THREE                0x03000000
+#define fPCD_MEM1_16                      0x04000000
+
+#define mPCD_MEM2_WS                      0x30000000
+#define fPCD_MEM2_WS_ONE                  0x10000000
+#define fPCD_MEM2_WS_TWO                  0x20000000
+#define fPCD_MEM2_WS_THREE                0x30000000
+#define fPCD_MEM2_16                      0x40000000
+
+#define PCD_MAX_MEMORY                    2
+#define PCD_MAX_IO                        2
+
+typedef struct PcCard_Resource_s {
+  PCCARD_DES  PcCard_Header;
+} PCCARD_RESOURCE, *PPCCARD_RESOURCE;
+
+
+/* CONFLICT_DETAILS.CD.ulMask constants */
+#define CM_CDMASK_DEVINST                 0x00000001
+#define CM_CDMASK_RESDES                  0x00000002
+#define CM_CDMASK_FLAGS                   0x00000004
+#define CM_CDMASK_DESCRIPTION             0x00000008
+#define CM_CDMASK_VALID                   0x0000000F
+
+/* CONFLICT_DETAILS.CD.ulFlags constants */
+#define CM_CDFLAGS_DRIVER                 0x00000001
+#define CM_CDFLAGS_ROOT_OWNED             0x00000002
+#define CM_CDFLAGS_RESERVED               0x00000004
+
+typedef struct _CONFLICT_DETAILS_A {
+  ULONG  CD_ulSize;
+  ULONG  CD_ulMask;
+  DEVINST  CD_dnDevInst;
+  RES_DES  CD_rdResDes;
+  ULONG  CD_ulFlags;
+  CHAR  CD_szDescription[MAX_PATH];
+} CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
+
+typedef struct _CONFLICT_DETAILS_W {
+  ULONG  CD_ulSize;
+  ULONG  CD_ulMask;
+  DEVINST  CD_dnDevInst;
+  RES_DES  CD_rdResDes;
+  ULONG  CD_ulFlags;
+  WCHAR  CD_szDescription[MAX_PATH];
+} CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W;
+
+#ifdef UNICODE
+typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
+typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
+#else
+typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
+typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
+#endif
+
+
+#define CMP_MAGIC  0x01234567
+
+
+CMAPI
+CONFIGRET
+WINAPI
+CMP_Init_Detection(
+  IN DWORD  dwMagic);
+
+CMAPI
+CONFIGRET
+WINAPI
+CMP_RegisterNotification(
+  IN HANDLE hRecipient,
+  IN LPVOID lpvNotificationFilter,
+  IN DWORD  dwFlags,
+  OUT PULONG pluhDevNotify);
+
+CMAPI
+CONFIGRET
+WINAPI
+CMP_Report_LogOn(
+  IN DWORD dwMagic,
+  IN DWORD dwProcessId);
+
+CMAPI
+CONFIGRET
+WINAPI
+CMP_UnregisterNotification(IN ULONG luhDevNotify);
+
+/* FIXME: Missing CMP_WaitNoPendingInstallEvents */
+/* FIXME: Missing CMP_WaitServicesAvailable */
+
+/* CM_Add_Empty_Log_Conf.ulFlags constants */
+#define BASIC_LOG_CONF                    0x00000000
+#define FILTERED_LOG_CONF                 0x00000001
+#define ALLOC_LOG_CONF                    0x00000002
+#define BOOT_LOG_CONF                     0x00000003
+#define FORCED_LOG_CONF                   0x00000004
+#define OVERRIDE_LOG_CONF                 0x00000005
+#define NUM_LOG_CONF                      0x00000006
+#define LOG_CONF_BITS                     0x00000007
+
+#define PRIORITY_EQUAL_FIRST              0x00000008
+#define PRIORITY_EQUAL_LAST               0x00000000
+#define PRIORITY_BIT                      0x00000008
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Empty_Log_Conf(
+  OUT PLOG_CONF  plcLogConf,
+  IN DEVINST  dnDevInst,
+  IN PRIORITY  Priority,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Empty_Log_Conf_Ex(
+  OUT PLOG_CONF  plcLogConf,
+  IN DEVINST  dnDevInst,
+  IN PRIORITY  Priority,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* CM_Add_ID.ulFlags constants */
+#define CM_ADD_ID_HARDWARE                0x00000000
+#define CM_ADD_ID_COMPATIBLE              0x00000001
+#define CM_ADD_ID_BITS                    0x00000001
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_IDA(
+  IN DEVINST  dnDevInst,
+  IN PSTR  pszID,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_ID_ExA(
+  IN DEVINST  dnDevInst,
+  IN PSTR  pszID,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_ID_ExW(
+  IN DEVINST  dnDevInst,
+  IN PWSTR  pszID,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_IDW(
+  IN DEVINST  dnDevInst,
+  IN PWSTR  pszID,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Add_ID CM_Add_IDW
+#define CM_Add_ID_Ex CM_Add_ID_ExW
+#else
+#define CM_Add_ID CM_Add_IDA
+#define CM_Add_ID_Ex CM_Add_ID_ExA
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Add_Range */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Res_Des(
+  OUT PRES_DES  prdResDes,
+  IN LOG_CONF  lcLogConf,
+  IN RESOURCEID  ResourceID,
+  IN PCVOID  ResourceData,
+  IN ULONG  ResourceLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Res_Des_Ex(
+  OUT PRES_DES  prdResDes,
+  IN LOG_CONF  lcLogConf,
+  IN RESOURCEID  ResourceID,
+  IN PCVOID  ResourceData,
+  IN ULONG  ResourceLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Connect_MachineA(
+  IN PCSTR  UNCServerName,
+  OUT PHMACHINE  phMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Connect_MachineW(
+  IN PCWSTR  UNCServerName,
+  OUT PHMACHINE  phMachine);
+
+#ifdef UNICODE
+#define CM_Connect_Machine CM_Connect_MachineW
+#else
+#define CM_Connect_Machine CM_Connect_MachineA
+#endif /* UNICODE */
+
+/* Flags for CM_Create_DevNode[_Ex].ulFlags constants */
+#define CM_CREATE_DEVNODE_NORMAL          0x00000000
+#define CM_CREATE_DEVNODE_NO_WAIT_INSTALL 0x00000001
+#define CM_CREATE_DEVNODE_PHANTOM         0x00000002
+#define CM_CREATE_DEVNODE_GENERATE_ID     0x00000004
+#define CM_CREATE_DEVNODE_DO_NOT_INSTALL  0x00000008
+#define CM_CREATE_DEVNODE_BITS            0x0000000F
+
+#define CM_CREATE_DEVINST_NORMAL          CM_CREATE_DEVNODE_NORMAL
+#define CM_CREATE_DEVINST_NO_WAIT_INSTALL CM_CREATE_DEVNODE_NO_WAIT_INSTALL
+#define CM_CREATE_DEVINST_PHANTOM         CM_CREATE_DEVNODE_PHANTOM
+#define CM_CREATE_DEVINST_GENERATE_ID     CM_CREATE_DEVNODE_GENERATE_ID
+#define CM_CREATE_DEVINST_DO_NOT_INSTALL  CM_CREATE_DEVNODE_DO_NOT_INSTALL
+#define CM_CREATE_DEVINST_BITS            CM_CREATE_DEVNODE_BITS
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Create_DevNodeA(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_A  pDeviceID,
+  IN DEVINST  dnParent,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Create_DevNodeW(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_W  pDeviceID,
+  IN DEVINST  dnParent,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Create_DevNode_ExA(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_A  pDeviceID,
+  IN DEVINST  dnParent,
+  IN ULONG  ulFlags,
+  IN HANDLE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Create_DevNode_ExW(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_W  pDeviceID,
+  IN DEVINST  dnParent,
+  IN ULONG  ulFlags,
+  IN HANDLE  hMachine);
+
+#define CM_Create_DevInstW CM_Create_DevNodeW
+#define CM_Create_DevInstA CM_Create_DevNodeA
+#define CM_Create_DevInst_ExW CM_Create_DevNode_ExW
+#define CM_Create_DevInst_ExA CM_Create_DevNode_ExA
+#ifdef UNICODE
+#define CM_Create_DevNode CM_Create_DevNodeW
+#define CM_Create_DevInst CM_Create_DevNodeW
+#define CM_Create_DevNode_Ex CM_Create_DevNode_ExW
+#define CM_Create_DevInst_Ex CM_Create_DevInst_ExW
+#else
+#define CM_Create_DevNode CM_Create_DevNodeA
+#define CM_Create_DevInst CM_Create_DevNodeA
+#define CM_Create_DevNode_Ex CM_Create_DevNode_ExA
+#define CM_Create_DevInst_Ex CM_Create_DevNode_ExA
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Create_Range_List */
+
+/* Flags for CM_Delete_Class_Key.ulFlags constants */
+#define CM_DELETE_CLASS_ONLY              0x00000000
+#define CM_DELETE_CLASS_SUBKEYS           0x00000001
+#define CM_DELETE_CLASS_BITS              0x00000001
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Delete_Class_Key(
+  IN LPGUID  ClassGuid,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Delete_Class_Key_Ex(
+  IN LPGUID  ClassGuid,
+  IN ULONG  ulFlags,
+  IN HANDLE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Delete_DevNode_Key(
+  IN DEVNODE  dnDevNode,
+  IN ULONG  ulHardwareProfile,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Delete_DevNode_Key_Ex(
+  IN DEVNODE  dnDevNode,
+  IN ULONG  ulHardwareProfile,
+  IN ULONG  ulFlags,
+  IN HANDLE  hMachine);
+
+#define CM_Delete_DevInst_Key CM_Delete_DevNode_Key
+#define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex
+
+/* FIXME: Obsolete CM_Delete_Range */
+/* FIXME: Obsolete CM_Detected_Resource_Conflict */
+/* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Disable_DevNode(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Disable_DevNode_Ex(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Disable_DevInst CM_Disable_DevNode
+#define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Disconnect_Machine(
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enable_DevNode(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enable_DevNode_Ex(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Enable_DevInst CM_Enable_DevNode
+#define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Classes(
+  IN ULONG  ulClassIndex,
+  OUT LPGUID  ClassGuid,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Classes_Ex(
+  IN ULONG  ulClassIndex,
+  OUT LPGUID  ClassGuid,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_EnumeratorsA(
+  IN ULONG  ulEnumIndex,
+  OUT PCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Enumerators_ExA(
+  IN ULONG  ulEnumIndex,
+  OUT PCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Enumerators_ExW(
+  IN ULONG  ulEnumIndex,
+  OUT PWCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_EnumeratorsW(
+  IN ULONG  ulEnumIndex,
+  OUT PWCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
+#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
+#else
+#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
+#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Find_Range */
+/* FIXME: Obsolete CM_First_Range */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Log_Conf(
+  IN LOG_CONF  lcLogConfToBeFreed,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Log_Conf_Ex(
+  IN LOG_CONF  lcLogConfToBeFreed,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Log_Conf_Handle(
+  IN LOG_CONF  lcLogConf);
+
+/* FIXME: Obsolete CM_Free_Range_List */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Res_Des(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Res_Des_Ex(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Res_Des_Handle(
+  IN RES_DES  rdResDes);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Resource_Conflict_Handle(
+  IN CONFLICT_LIST  clConflictList);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Child(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Child_Ex(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_NameA(
+  IN LPGUID  ClassGuid,
+  OUT PCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_NameW(
+  IN LPGUID  ClassGuid,
+  OUT PWCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_Name_ExA(
+  IN LPGUID  ClassGuid,
+  OUT PCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_Name_ExW(
+  IN LPGUID  ClassGuid,
+  OUT PWCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#ifdef UNICODE
+#define CM_Get_Class_Name CM_Get_Class_NameW
+#define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
+#else
+#define CM_Get_Class_Name CM_Get_Class_NameA
+#define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_Key_NameA(
+  IN LPGUID  ClassGuid,
+  OUT LPSTR  pszKeyName,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_Key_NameW(
+  IN LPGUID  ClassGuid,
+  OUT LPWSTR  pszKeyName,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_Key_Name_ExA(
+  IN LPGUID  ClassGuid,
+  OUT LPSTR  pszKeyName,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Class_Key_Name_ExW(
+  IN LPGUID  ClassGuid,
+  OUT LPWSTR  pszKeyName,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#ifdef UNICODE
+#define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
+#define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
+#else
+#define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
+#define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Get_Class_Registry_Property */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Depth(
+  OUT PULONG  pulDepth,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Depth_Ex(
+  OUT PULONG  pulDepth,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_IDA(
+  IN DEVINST  dnDevInst,
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ExA(
+  IN DEVINST  dnDevInst,
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ExW(
+  IN DEVINST  dnDevInst,
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_IDW(
+  IN DEVINST  dnDevInst,
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Get_Device_ID CM_Get_Device_IDW
+#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
+#else
+#define CM_Get_Device_ID CM_Get_Device_IDA
+#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ListA(
+  IN PCSTR  pszFilter,  OPTIONAL
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_ExA(
+  IN PCSTR  pszFilter,  OPTIONAL
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_ExW(
+  IN PCWSTR  pszFilter,  OPTIONAL
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ListW(
+  IN PCWSTR  pszFilter,  OPTIONAL
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
+#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
+#else
+#define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
+#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_SizeA(
+  OUT PULONG  pulLen,
+  IN PCSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_Size_ExA(
+  OUT PULONG  pulLen,
+  IN PCSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_Size_ExW(
+  OUT PULONG  pulLen,
+  IN PCWSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_SizeW(
+  OUT PULONG  pulLen,
+  IN PCWSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
+#define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
+#else
+#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
+#define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_Size(
+  OUT PULONG  pulLen,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_Size_Ex(
+  OUT PULONG  pulLen,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Get_Device_Interface_Alias */
+/* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
+/* FIXME: Obsolete CM_Get_Device_Interface_List */
+/* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
+/* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
+/* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
+/* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
+/* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_DevNode_Registry_PropertyA(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  OUT PULONG  pulRegDataType,  OPTIONAL
+  OUT PVOID  Buffer,  OPTIONAL
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_DevNode_Registry_PropertyW(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  OUT PULONG  pulRegDataType,  OPTIONAL
+  OUT PVOID  Buffer,  OPTIONAL
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_DevNode_Registry_Property_ExA(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  OUT PULONG  pulRegDataType,  OPTIONAL
+  OUT PVOID  Buffer,  OPTIONAL
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_DevNode_Registry_Property_ExW(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  OUT PULONG  pulRegDataType,  OPTIONAL
+  OUT PVOID  Buffer,  OPTIONAL
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
+#define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
+#define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
+#define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
+
+#ifdef UNICODE
+#define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
+#define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
+#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
+#define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
+#else
+#define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
+#define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
+#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
+#define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_DevNode_Status(
+  OUT PULONG  pulStatus,
+  OUT PULONG  pulProblemNumber,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_DevNode_Status_Ex(
+  OUT PULONG  pulStatus,
+  OUT PULONG  pulProblemNumber,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Get_DevInst_Status CM_Get_DevNode_Status
+#define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
+
+/* CM_Get_First_Log_Conf.ulFlags constants */
+#define BASIC_LOG_CONF    0x00000000  /* Specifies the req list. */
+#define FILTERED_LOG_CONF 0x00000001  /* Specifies the filtered req list. */
+#define ALLOC_LOG_CONF    0x00000002  /* Specifies the Alloc Element. */
+#define BOOT_LOG_CONF     0x00000003  /* Specifies the RM Alloc Element. */
+#define FORCED_LOG_CONF   0x00000004  /* Specifies the Forced Log Conf */
+#define OVERRIDE_LOG_CONF 0x00000005  /* Specifies the Override req list. */
+#define NUM_LOG_CONF      0x00000006  /* Number of Log Conf type */
+#define LOG_CONF_BITS     0x00000007  /* The bits of the log conf type. */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_First_Log_Conf(
+  OUT PLOG_CONF  plcLogConf,  OPTIONAL
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_First_Log_Conf_Ex(
+  OUT PLOG_CONF  plcLogConf,  OPTIONAL
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Global_State(
+  OUT PULONG  pulState,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Global_State_Ex(
+  OUT PULONG  pulState,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
+/* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_HW_Prof_FlagsA(
+  IN DEVINSTID_A  szDevInstName,
+  IN ULONG  ulHardwareProfile,
+  OUT PULONG  pulValue,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_HW_Prof_FlagsW(
+  IN DEVINSTID_W  szDevInstName,
+  IN ULONG  ulHardwareProfile,
+  OUT PULONG  pulValue,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_HW_Prof_Flags_ExA(
+  IN DEVINSTID_A  szDevInstName,
+  IN ULONG  ulHardwareProfile,
+  OUT PULONG  pulValue,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_HW_Prof_Flags_ExW(
+  IN DEVINSTID_W  szDevInstName,
+  IN ULONG  ulHardwareProfile,
+  OUT PULONG  pulValue,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#ifdef UNICODE
+#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW
+#define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW
+#else
+#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsA
+#define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Log_Conf_Priority(
+  IN LOG_CONF  lcLogConf,
+  OUT PPRIORITY  pPriority,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Log_Conf_Priority_Ex(
+  IN LOG_CONF  lcLogConf,
+  OUT PPRIORITY  pPriority,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Next_Log_Conf(
+  OUT PLOG_CONF  plcLogConf,  OPTIONAL
+  IN LOG_CONF  lcLogConf,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Next_Log_Conf_Ex(
+  OUT PLOG_CONF  plcLogConf,  OPTIONAL
+  IN LOG_CONF  lcLogConf,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Next_Res_Des(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN RESOURCEID  ForResource,
+  OUT PRESOURCEID  pResourceID,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Next_Res_Des_Ex(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN RESOURCEID  ForResource,
+  OUT PRESOURCEID  pResourceID,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Parent(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Parent_Ex(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Res_Des_Data(
+  IN RES_DES  rdResDes,
+  OUT PVOID  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Res_Des_Data_Ex(
+  IN RES_DES  rdResDes,
+  OUT PVOID  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Res_Des_Data_Size(
+  OUT PULONG  pulSize,
+  IN RES_DES  rdResDes,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Res_Des_Data_Size_Ex(
+  OUT PULONG  pulSize,
+  IN RES_DES  rdResDes,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Resource_Conflict_Count(
+  IN CONFLICT_LIST  clConflictList,
+  OUT PULONG  pulCount);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Resource_Conflict_DetailsA(
+  IN CONFLICT_LIST  clConflictList,
+  IN ULONG  ulIndex,
+  IN OUT PCONFLICT_DETAILS_A  pConflictDetails);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Resource_Conflict_DetailsW(
+  IN CONFLICT_LIST  clConflictList,
+  IN ULONG  ulIndex,
+  IN OUT PCONFLICT_DETAILS_W  pConflictDetails);
+
+#ifdef UNICODE
+#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
+#else
+#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Sibling(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  DevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Sibling_Ex(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  DevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+WORD
+WINAPI
+CM_Get_Version(
+  VOID);
+
+CMAPI
+WORD
+WINAPI
+CM_Get_Version_Ex(
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Intersect_Range_List */
+/* FIXME: Obsolete CM_Invert_Range_List */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Is_Dock_Station_Present(
+  OUT PBOOL  pbPresent);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Is_Dock_Station_Present_Ex(
+  OUT PBOOL  pbPresent,
+  IN HMACHINE  hMachine);
+
+/* CM_Locate_DevNode.ulFlags constants */
+#define CM_LOCATE_DEVNODE_NORMAL         0x00000000
+#define CM_LOCATE_DEVNODE_PHANTOM        0x00000001
+#define CM_LOCATE_DEVNODE_CANCELREMOVE   0x00000002
+#define CM_LOCATE_DEVNODE_NOVALIDATION   0x00000004
+#define CM_LOCATE_DEVNODE_BITS           0x00000007
+
+#define CM_LOCATE_DEVINST_NORMAL         CM_LOCATE_DEVNODE_NORMAL
+#define CM_LOCATE_DEVINST_PHANTOM        CM_LOCATE_DEVNODE_PHANTOM
+#define CM_LOCATE_DEVINST_CANCELREMOVE   CM_LOCATE_DEVNODE_CANCELREMOVE
+#define CM_LOCATE_DEVINST_NOVALIDATION   CM_LOCATE_DEVNODE_NOVALIDATION
+#define CM_LOCATE_DEVINST_BITS           CM_LOCATE_DEVNODE_BITS
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Locate_DevNodeA(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_A  pDeviceID,  OPTIONAL
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Locate_DevNode_ExA(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_A  pDeviceID,  OPTIONAL
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Locate_DevNode_ExW(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_W  pDeviceID,  OPTIONAL
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Locate_DevNodeW(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINSTID_W  pDeviceID,  OPTIONAL
+  IN ULONG  ulFlags);
+
+#define CM_Locate_DevInstA CM_Locate_DevNodeA
+#define CM_Locate_DevInstW CM_Locate_DevNodeW
+#define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
+#define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
+
+#ifdef UNICODE
+#define CM_Locate_DevNode CM_Locate_DevNodeW
+#define CM_Locate_DevInst CM_Locate_DevNodeW
+#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
+#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
+#else
+#define CM_Locate_DevNode CM_Locate_DevNodeA
+#define CM_Locate_DevInst CM_Locate_DevNodeA
+#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
+#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Merge_Range_List */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Modify_Res_Des(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN RESOURCEID  ResourceID,
+  IN PCVOID  ResourceData,
+  IN ULONG  ResourceLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Modify_Res_Des_Ex(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN RESOURCEID  ResourceID,
+  IN PCVOID  ResourceData,
+  IN ULONG  ResourceLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Move_DevNode */
+/* FIXME: Obsolete CM_Move_DevNode_Ex */
+/* FIXME: Obsolete CM_Next_Range */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Open_Class_KeyA(
+  IN LPGUID  ClassGuid, OPTIONAL
+  IN LPCSTR  pszClassName, OPTIONAL
+  IN REGSAM  samDesired,
+  IN REGDISPOSITION  Disposition,
+  OUT PHKEY  phkClass,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Open_Class_KeyW(
+  IN LPGUID  ClassGuid, OPTIONAL
+  IN LPCWSTR  pszClassName, OPTIONAL
+  IN REGSAM  samDesired,
+  IN REGDISPOSITION  Disposition,
+  OUT PHKEY  phkClass,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Open_Class_Key_ExA(
+  IN LPGUID  pszClassGuid, OPTIONAL
+  IN LPCSTR  pszClassName, OPTIONAL
+  IN REGSAM  samDesired,
+  IN REGDISPOSITION  Disposition,
+  OUT PHKEY  phkClass,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Open_Class_Key_ExW(
+  IN LPGUID  pszClassGuid, OPTIONAL
+  IN LPCWSTR  pszClassName, OPTIONAL
+  IN REGSAM  samDesired,
+  IN REGDISPOSITION Disposition,
+  OUT PHKEY  phkClass,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#ifdef UNICODE
+#define CM_Open_Class_Key CM_Open_Class_KeyW
+#define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
+#else
+#define CM_Open_Class_Key CM_Open_Class_KeyA
+#define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Open_DevNode_Key(
+  IN DEVINST  dnDevNode,
+  IN REGSAM  samDesired,
+  IN ULONG  ulHardwareProfile,
+  IN REGDISPOSITION  Disposition,
+  OUT PHKEY  phkDevice,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Open_DevNode_Key_Ex(
+  IN DEVINST  dnDevNode,
+  IN REGSAM  samDesired,
+  IN ULONG  ulHardwareProfile,
+  IN REGDISPOSITION  Disposition,
+  OUT PHKEY  phkDevice,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Open_DevInst_Key CM_Open_DevNode_Key
+#define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex
+
+/* CM_Query_And_Remove_SubTree.ulFlags constants */
+#define CM_REMOVE_UI_OK                                0x00000000
+#define CM_REMOVE_UI_NOT_OK                            0x00000001
+#define CM_REMOVE_NO_RESTART                           0x00000002
+#define CM_REMOVE_BITS                                 0x00000003
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Query_And_Remove_SubTreeA(
+  IN  DEVINST dnAncestor,
+  OUT PPNP_VETO_TYPE pVetoType,
+  OUT LPSTR pszVetoName,
+  IN  ULONG ulNameLength,
+  IN  ULONG ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Query_And_Remove_SubTreeW(
+  IN  DEVINST dnAncestor,
+  OUT PPNP_VETO_TYPE pVetoType,
+  OUT LPWSTR pszVetoName,
+  IN  ULONG ulNameLength,
+  IN  ULONG ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Query_And_Remove_SubTree_ExA(
+  IN  DEVINST dnAncestor,
+  OUT PPNP_VETO_TYPE pVetoType,
+  OUT LPSTR pszVetoName,
+  IN  ULONG ulNameLength,
+  IN  ULONG ulFlags,
+  IN  HMACHINE hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Query_And_Remove_SubTree_ExW(
+  IN  DEVINST dnAncestor,
+  OUT PPNP_VETO_TYPE pVetoType,
+  OUT LPWSTR pszVetoName,
+  IN  ULONG ulNameLength,
+  IN  ULONG ulFlags,
+  IN  HMACHINE hMachine);
+
+/* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
+/* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
+/* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
+/* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
+/* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
+/* FIXME: Obsolete CM_Query_Remove_SubTree */
+/* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Query_Resource_Conflict_List(
+  OUT PCONFLICT_LIST  pclConflictList,
+  IN DEVINST  dnDevInst,
+  IN RESOURCEID  ResourceID,
+  IN PCVOID  ResourceData,
+  IN ULONG  ResourceLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* CM_Reenumerate_DevNode.ulFlags constants */
+#define CM_REENUMERATE_NORMAL             0x00000000
+#define CM_REENUMERATE_SYNCHRONOUS        0x00000001
+#define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
+#define CM_REENUMERATE_ASYNCHRONOUS       0x00000004
+#define CM_REENUMERATE_BITS               0x00000007
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Reenumerate_DevNode(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Reenumerate_DevNode_Ex(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
+#define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
+
+/* FIXME: Obsolete CM_Register_Device_Driver */
+/* FIXME: Obsolete CM_Register_Device_Driver_Ex */
+/* FIXME: Obsolete CM_Register_Device_Interface */
+/* FIXME: Obsolete CM_Register_Device_Interface_Ex */
+/* FIXME: Obsolete CM_Remove_SubTree */
+/* FIXME: Obsolete CM_Remove_SubTree_Ex */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Request_Device_EjectA(
+  IN DEVINST  dnDevInst,
+  OUT PPNP_VETO_TYPE  pVetoType,
+  OUT LPSTR  pszVetoName,
+  IN ULONG  ulNameLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Request_Device_Eject_ExW(
+  IN DEVINST  dnDevInst,
+  OUT PPNP_VETO_TYPE  pVetoType,
+  OUT LPWSTR  pszVetoName,
+  IN ULONG  ulNameLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Request_Device_Eject_ExA(
+  IN DEVINST  dnDevInst,
+  OUT PPNP_VETO_TYPE  pVetoType,
+  OUT LPSTR  pszVetoName,
+  IN ULONG  ulNameLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Request_Device_EjectW(
+  IN DEVINST  dnDevInst,
+  OUT PPNP_VETO_TYPE  pVetoType,
+  OUT LPWSTR  pszVetoName,
+  IN ULONG  ulNameLength,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Request_Device_Eject CM_Request_Device_EjectW
+#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
+#else
+#define CM_Request_Device_Eject CM_Request_Device_EjectA
+#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Request_Eject_PC(
+  VOID);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Request_Eject_PC_Ex(
+  IN HMACHINE  hMachine);
+
+/* CM_Run_Detection[_Ex].ulFlags constants */
+#define CM_DETECT_NEW_PROFILE       0x00000001
+#define CM_DETECT_CRASHED           0x00000002
+#define CM_DETECT_HWPROF_FIRST_BOOT 0x00000004
+#define CM_DETECT_RUN               0x80000000
+#define CM_DETECT_BITS              0x80000007
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Run_Detection(
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Run_Detection_Ex(
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Set_Class_Registry_Property */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_DevNode_Problem(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProblem,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_DevNode_Problem_Ex(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProblem,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Set_DevInst_Problem CM_Set_DevNode_Problem
+#define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_DevNode_Registry_PropertyA(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  IN PCVOID  Buffer, OPTIONAL
+  IN ULONG  ulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_DevNode_Registry_PropertyW(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  IN PCVOID  Buffer, OPTIONAL
+  IN ULONG  ulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_DevNode_Registry_Property_ExA(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  IN PCVOID  Buffer, OPTIONAL
+  IN ULONG  ulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_DevNode_Registry_Property_ExW(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulProperty,
+  IN PCVOID  Buffer, OPTIONAL
+  IN ULONG  ulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
+#define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
+#define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
+#define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
+
+#ifdef UNICODE
+#define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
+#define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
+#define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
+#define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
+#else
+#define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
+#define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
+#define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
+#define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_HW_Prof(
+  IN ULONG  ulHardwareProfile,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_HW_Prof_Ex(
+  IN ULONG  ulHardwareProfile,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* CM_Set_HW_Prof_Flags[_Ex].ulFlags constants */
+#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK  (0x00000001)
+#define CM_SET_HW_PROF_FLAGS_BITS       (0x00000001)
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_HW_Prof_FlagsA(
+  IN DEVINSTID_A  szDevInstName,
+  IN ULONG  ulConfig,
+  IN ULONG  ulValue,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_HW_Prof_FlagsW(
+  IN DEVINSTID_W  szDevInstName,
+  IN ULONG  ulConfig,
+  IN ULONG  ulValue,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_HW_Prof_Flags_ExA(
+  IN DEVINSTID_A  szDevInstName,
+  IN ULONG  ulConfig,
+  IN ULONG  ulValue,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Set_HW_Prof_Flags_ExW(
+  IN DEVINSTID_W  szDevInstName,
+  IN ULONG  ulConfig,
+  IN ULONG  ulValue,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#ifdef UNICODE
+#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW
+#define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW
+#else
+#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsA
+#define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExA
+#endif /* UNICODE */
+
+/* CM_Setup_DevInst[_Ex].ulFlags constants */
+#define CM_SETUP_DEVNODE_READY   (0x00000000)
+#define CM_SETUP_DEVINST_READY   CM_SETUP_DEVNODE_READY
+#define CM_SETUP_DOWNLOAD        (0x00000001)
+#define CM_SETUP_WRITE_LOG_CONFS (0x00000002)
+#define CM_SETUP_PROP_CHANGE     (0x00000003)
+#define CM_SETUP_DEVNODE_RESET   (0x00000004)
+#define CM_SETUP_DEVINST_RESET   CM_SETUP_DEVNODE_RESET
+#define CM_SETUP_BITS            (0x00000007)
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Setup_DevNode(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Setup_DevNode_Ex(
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Test_Range_Available */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Uninstall_DevNode(
+  IN DEVINST  dnPhantom,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Uninstall_DevNode_Ex(
+  IN DEVINST  dnPhantom,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Unregister_Device_Interface */
+/* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
+
+#define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
+
+CMAPI
+DWORD
+WINAPI
+CMP_WaitNoPendingInstallEvents(
+  IN DWORD dwTimeout);
+
+#include <poppack.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CFGMGR32_H_ */
index cf7b2c1..99056f6 100644 (file)
@@ -229,11 +229,9 @@ typedef struct _IO_CSQ_IRP_CONTEXT {
        }
  *
  */
        }
  *
  */
-#ifndef IO_TYPE_CSQ_EX
 typedef NTSTATUS (NTAPI *PIO_CSQ_INSERT_IRP_EX) (struct _IO_CSQ *Csq,
                                                  PIRP Irp,
                                                  PVOID InsertContext);
 typedef NTSTATUS (NTAPI *PIO_CSQ_INSERT_IRP_EX) (struct _IO_CSQ *Csq,
                                                  PIRP Irp,
                                                  PVOID InsertContext);
-#endif
 
 /*
  * CANCEL-SAFE QUEUE DDIs
 
 /*
  * CANCEL-SAFE QUEUE DDIs
index c93bfb4..f269c03 100644 (file)
@@ -98,11 +98,11 @@ enum DeviceObjectState {
   DeviceObjectRemoved
 };
 
   DeviceObjectRemoved
 };
 
-typedef VOID (NTAPI *PHID_STATUS_CHANGE)(
+typedef VOID (DDKAPI *PHID_STATUS_CHANGE)(
   PVOID  Context,
   enum DeviceObjectState  State);
 
   PVOID  Context,
   enum DeviceObjectState  State);
 
-typedef NTSTATUS (NTAPI *PHIDP_GETCAPS)(
+typedef NTSTATUS (DDKAPI *PHIDP_GETCAPS)(
   IN PHIDP_PREPARSED_DATA  PreparsedData,
   OUT PHIDP_CAPS  Capabilities);
 
   IN PHIDP_PREPARSED_DATA  PreparsedData,
   OUT PHIDP_CAPS  Capabilities);
 
index ca6d891..63d3cf1 100644 (file)
@@ -69,7 +69,7 @@ typedef struct _HIDP_KEYBOARD_MODIFIER_STATE {
   } DUMMYUNIONNAME;
 } HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;
 
   } DUMMYUNIONNAME;
 } HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;
 
-typedef BOOLEAN (NTAPI *PHIDP_INSERT_SCANCODES)(
+typedef BOOLEAN (DDKAPI *PHIDP_INSERT_SCANCODES)(
   IN PVOID  Context,
   IN PCHAR  NewScanCodes,
   IN ULONG  Length);
   IN PVOID  Context,
   IN PCHAR  NewScanCodes,
   IN ULONG  Length);
@@ -94,7 +94,7 @@ typedef struct _HIDD_CONFIGURATION {
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_TranslateUsageAndPagesToI8042ScanCodes(
   IN PUSAGE_AND_PAGE  ChangedUsageList,
   IN ULONG  UsageListLength,
 HidP_TranslateUsageAndPagesToI8042ScanCodes(
   IN PUSAGE_AND_PAGE  ChangedUsageList,
   IN ULONG  UsageListLength,
@@ -105,7 +105,7 @@ HidP_TranslateUsageAndPagesToI8042ScanCodes(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_TranslateUsagesToI8042ScanCodes(
   IN PUSAGE  ChangedUsageList,
   IN ULONG  UsageListLength,
 HidP_TranslateUsagesToI8042ScanCodes(
   IN PUSAGE  ChangedUsageList,
   IN ULONG  UsageListLength,
@@ -313,14 +313,14 @@ typedef enum _HIDP_REPORT_TYPE {
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetCaps(
   IN PHIDP_PREPARSED_DATA  PreparsedData,
   OUT PHIDP_CAPS  Capabilities);
 
 HIDAPI
 NTSTATUS
 HidP_GetCaps(
   IN PHIDP_PREPARSED_DATA  PreparsedData,
   OUT PHIDP_CAPS  Capabilities);
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetData(
   IN HIDP_REPORT_TYPE  ReportType,
   OUT PHIDP_DATA  DataList,
 HidP_GetData(
   IN HIDP_REPORT_TYPE  ReportType,
   OUT PHIDP_DATA  DataList,
@@ -331,7 +331,7 @@ HidP_GetData(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetExtendedAttributes(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USHORT  DataIndex,
 HidP_GetExtendedAttributes(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USHORT  DataIndex,
@@ -341,7 +341,7 @@ HidP_GetExtendedAttributes(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetLinkCollectionNodes(
   OUT PHIDP_LINK_COLLECTION_NODE  LinkCollectionNodes,
   IN OUT PULONG  LinkCollectionNodesLength,
 HidP_GetLinkCollectionNodes(
   OUT PHIDP_LINK_COLLECTION_NODE  LinkCollectionNodes,
   IN OUT PULONG  LinkCollectionNodesLength,
@@ -349,7 +349,7 @@ HidP_GetLinkCollectionNodes(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetScaledUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_GetScaledUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -362,7 +362,7 @@ HidP_GetScaledUsageValue(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetSpecificButtonCaps(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_GetSpecificButtonCaps(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -374,7 +374,7 @@ HidP_GetSpecificButtonCaps(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetSpecificValueCaps(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_GetSpecificValueCaps(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -386,7 +386,7 @@ HidP_GetSpecificValueCaps(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetUsages(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_GetUsages(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -399,7 +399,7 @@ HidP_GetUsages(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetUsagesEx(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USHORT  LinkCollection,
 HidP_GetUsagesEx(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USHORT  LinkCollection,
@@ -411,7 +411,7 @@ HidP_GetUsagesEx(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_GetUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -424,7 +424,7 @@ HidP_GetUsageValue(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_GetUsageValueArray(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_GetUsageValueArray(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -453,7 +453,7 @@ HidP_GetUsageValueArray(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_InitializeReportForID(
   IN HIDP_REPORT_TYPE  ReportType,
   IN UCHAR  ReportID,
 HidP_InitializeReportForID(
   IN HIDP_REPORT_TYPE  ReportType,
   IN UCHAR  ReportID,
@@ -475,14 +475,14 @@ HidP_InitializeReportForID(
 
 HIDAPI
 ULONG
 
 HIDAPI
 ULONG
-NTAPI
+DDKAPI
 HidP_MaxDataListLength(
   IN HIDP_REPORT_TYPE  ReportType,
   IN PHIDP_PREPARSED_DATA  PreparsedData);
 
 HIDAPI
 ULONG
 HidP_MaxDataListLength(
   IN HIDP_REPORT_TYPE  ReportType,
   IN PHIDP_PREPARSED_DATA  PreparsedData);
 
 HIDAPI
 ULONG
-NTAPI
+DDKAPI
 HidP_MaxUsageListLength(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage  OPTIONAL,
 HidP_MaxUsageListLength(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage  OPTIONAL,
@@ -509,7 +509,7 @@ HidP_MaxUsageListLength(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_SetData(
   IN HIDP_REPORT_TYPE  ReportType,
   IN PHIDP_DATA  DataList,
 HidP_SetData(
   IN HIDP_REPORT_TYPE  ReportType,
   IN PHIDP_DATA  DataList,
@@ -520,7 +520,7 @@ HidP_SetData(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_SetScaledUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_SetScaledUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -533,7 +533,7 @@ HidP_SetScaledUsageValue(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_SetUsages(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_SetUsages(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -546,7 +546,7 @@ HidP_SetUsages(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_SetUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_SetUsageValue(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -559,7 +559,7 @@ HidP_SetUsageValue(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_SetUsageValueArray(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_SetUsageValueArray(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -592,7 +592,7 @@ HidP_SetUsageValueArray(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_UnsetUsages(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
 HidP_UnsetUsages(
   IN HIDP_REPORT_TYPE  ReportType,
   IN USAGE  UsagePage,
@@ -605,7 +605,7 @@ HidP_UnsetUsages(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_UsageAndPageListDifference(
   IN PUSAGE_AND_PAGE  PreviousUsageList,
   IN PUSAGE_AND_PAGE  CurrentUsageList,
 HidP_UsageAndPageListDifference(
   IN PUSAGE_AND_PAGE  PreviousUsageList,
   IN PUSAGE_AND_PAGE  CurrentUsageList,
@@ -615,7 +615,7 @@ HidP_UsageAndPageListDifference(
 
 HIDAPI
 NTSTATUS
 
 HIDAPI
 NTSTATUS
-NTAPI
+DDKAPI
 HidP_UsageListDifference(
   IN PUSAGE  PreviousUsageList,
   IN PUSAGE  CurrentUsageList,
 HidP_UsageListDifference(
   IN PUSAGE  PreviousUsageList,
   IN PUSAGE  CurrentUsageList,
index eb3e542..cb4a1a4 100644 (file)
@@ -51,7 +51,7 @@ extern "C" {
 
 CHANGERAPI
 PVOID
 
 CHANGERAPI
 PVOID
-NTAPI
+DDKAPI
 ChangerClassAllocatePool(
   IN POOL_TYPE  PoolType,
   IN ULONG  NumberOfBytes);
 ChangerClassAllocatePool(
   IN POOL_TYPE  PoolType,
   IN ULONG  NumberOfBytes);
@@ -64,13 +64,13 @@ ChangerClassDebugPrint(
 
 CHANGERAPI
 PVOID
 
 CHANGERAPI
 PVOID
-NTAPI
+DDKAPI
 ChangerClassFreePool(
   IN PVOID  PoolToFree);
 
 CHANGERAPI
 NTSTATUS
 ChangerClassFreePool(
   IN PVOID  PoolToFree);
 
 CHANGERAPI
 NTSTATUS
-NTAPI
+DDKAPI
 ChangerClassSendSrbSynchronous(
   IN PDEVICE_OBJECT  DeviceObject,
   IN PSCSI_REQUEST_BLOCK  Srb,
 ChangerClassSendSrbSynchronous(
   IN PDEVICE_OBJECT  DeviceObject,
   IN PSCSI_REQUEST_BLOCK  Srb,
@@ -79,27 +79,27 @@ ChangerClassSendSrbSynchronous(
   IN BOOLEAN  WriteToDevice);
 
 
   IN BOOLEAN  WriteToDevice);
 
 
-typedef NTSTATUS NTAPI
+typedef NTSTATUS DDKAPI
 (*CHANGER_INITIALIZE)(
   IN PDEVICE_OBJECT  DeviceObject);
 
 (*CHANGER_INITIALIZE)(
   IN PDEVICE_OBJECT  DeviceObject);
 
-typedef ULONG NTAPI
+typedef ULONG DDKAPI
 (*CHANGER_EXTENSION_SIZE)(
   VOID);
 
 (*CHANGER_EXTENSION_SIZE)(
   VOID);
 
-typedef VOID NTAPI
+typedef VOID DDKAPI
 (*CHANGER_ERROR_ROUTINE)(
   PDEVICE_OBJECT  DeviceObject,
   PSCSI_REQUEST_BLOCK  Srb,
   NTSTATUS  *Status,
   BOOLEAN  *Retry);
 
 (*CHANGER_ERROR_ROUTINE)(
   PDEVICE_OBJECT  DeviceObject,
   PSCSI_REQUEST_BLOCK  Srb,
   NTSTATUS  *Status,
   BOOLEAN  *Retry);
 
-typedef NTSTATUS NTAPI
+typedef NTSTATUS DDKAPI
 (*CHANGER_COMMAND_ROUTINE)(
   IN PDEVICE_OBJECT  DeviceObject,
   IN PIRP  Irp);
 
 (*CHANGER_COMMAND_ROUTINE)(
   IN PDEVICE_OBJECT  DeviceObject,
   IN PIRP  Irp);
 
-typedef NTSTATUS NTAPI
+typedef NTSTATUS DDKAPI
 (*CHANGER_PERFORM_DIAGNOSTICS)(
   IN PDEVICE_OBJECT  DeviceObject,
   OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR  ChangerDeviceError);
 (*CHANGER_PERFORM_DIAGNOSTICS)(
   IN PDEVICE_OBJECT  DeviceObject,
   OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR  ChangerDeviceError);
@@ -125,7 +125,7 @@ typedef struct _MCD_INIT_DATA {
 
 CHANGERAPI
 NTSTATUS
 
 CHANGERAPI
 NTSTATUS
-NTAPI
+DDKAPI
 ChangerClassInitialize(
   IN PDRIVER_OBJECT  DriverObject,
   IN PUNICODE_STRING  RegistryPath,
 ChangerClassInitialize(
   IN PDRIVER_OBJECT  DriverObject,
   IN PUNICODE_STRING  RegistryPath,
diff --git a/reactos/include/ddk/mce.h b/reactos/include/ddk/mce.h
deleted file mode 100644 (file)
index e2d8407..0000000
+++ /dev/null
@@ -1,1074 +0,0 @@
-#pragma once
-
-#if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
-
-typedef union _MCI_ADDR {
-  struct {
-    ULONG Address;
-    ULONG Reserved;
-  } DUMMYSTRUCTNAME;
-  ULONGLONG QuadPart;
-} MCI_ADDR, *PMCI_ADDR;
-
-typedef enum {
-  HAL_MCE_RECORD,
-  HAL_MCA_RECORD
-} MCA_EXCEPTION_TYPE;
-
-#if defined(_AMD64_)
-
-#if (NTDDI_VERSION <= NTDDI_WINXP)
-
-typedef union _MCI_STATS {
-  struct {
-    USHORT McaCod;
-    USHORT ModelErrorCode;
-    ULONG OtherInfo:25;
-    ULONG Damage:1;
-    ULONG AddressValid:1;
-    ULONG MiscValid:1;
-    ULONG Enabled:1;
-    ULONG Uncorrected:1;
-    ULONG OverFlow:1;
-    ULONG Valid:1;
-  } MciStatus;
-  ULONG64 QuadPart;
-} MCI_STATS, *PMCI_STATS;
-
-#else
-
-typedef union _MCI_STATS {
-  struct {
-    USHORT McaErrorCode;
-    USHORT ModelErrorCode;
-    ULONG OtherInformation:25;
-    ULONG ContextCorrupt:1;
-    ULONG AddressValid:1;
-    ULONG MiscValid:1;
-    ULONG ErrorEnabled:1;
-    ULONG UncorrectedError:1;
-    ULONG StatusOverFlow:1;
-    ULONG Valid:1;
-  } MciStatus;
-  ULONG64 QuadPart;
-} MCI_STATS, *PMCI_STATS;
-
-#endif /* (NTDDI_VERSION <= NTDDI_WINXP) */
-
-#endif /* defined(_AMD64_) */
-
-#if defined(_X86_)
-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;
-#endif
-
-#define MCA_EXTREG_V2MAX               24
-
-#if defined(_X86_) || defined(_AMD64_)
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-typedef struct _MCA_EXCEPTION {
-  ULONG VersionNumber;
-  MCA_EXCEPTION_TYPE ExceptionType;
-  LARGE_INTEGER TimeStamp;
-  ULONG ProcessorNumber;
-  ULONG Reserved1;
-  union {
-    struct {
-      UCHAR BankNumber;
-      UCHAR Reserved2[7];
-      MCI_STATS Status;
-      MCI_ADDR Address;
-      ULONGLONG Misc;
-    } Mca;
-    struct {
-      ULONGLONG Address;
-      ULONGLONG Type;
-    } Mce;
-  } u;
-  ULONG ExtCnt;
-  ULONG Reserved3;
-  ULONGLONG ExtReg[MCA_EXTREG_V2MAX];
-} MCA_EXCEPTION, *PMCA_EXCEPTION;
-
-#else
-
-typedef struct _MCA_EXCEPTION {
-  ULONG VersionNumber;
-  MCA_EXCEPTION_TYPE ExceptionType;
-  LARGE_INTEGER TimeStamp;
-  ULONG ProcessorNumber;
-  ULONG Reserved1;
-  union {
-    struct {
-      UCHAR BankNumber;
-      UCHAR Reserved2[7];
-      MCI_STATS Status;
-      MCI_ADDR Address;
-      ULONGLONG Misc;
-    } Mca;
-    struct {
-      ULONGLONG Address;
-      ULONGLONG Type;
-    } Mce;
-  } u;
-} MCA_EXCEPTION, *PMCA_EXCEPTION;
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-typedef MCA_EXCEPTION CMC_EXCEPTION, *PCMC_EXCEPTION;
-typedef MCA_EXCEPTION CPE_EXCEPTION, *PCPE_EXCEPTION;
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-#define MCA_EXCEPTION_V1_SIZE FIELD_OFFSET(MCA_EXCEPTION, ExtCnt)
-#define MCA_EXCEPTION_V2_SIZE sizeof(struct _MCA_EXCEPTION)
-#endif
-
-#endif /* defined(_X86_) || defined(_AMD64_) */
-
-#if defined(_AMD64_) || defined(_IA64_)
-
-typedef UCHAR ERROR_SEVERITY, *PERROR_SEVERITY;
-
-typedef enum _ERROR_SEVERITY_VALUE {
-  ErrorRecoverable = 0,
-  ErrorFatal = 1,
-  ErrorCorrected = 2,
-  ErrorOthers = 3,
-} ERROR_SEVERITY_VALUE;
-
-#endif
-
-#if defined(_IA64_)
-
-typedef union _ERROR_REVISION {
-  USHORT Revision;
-  struct {
-    UCHAR Minor;
-    UCHAR Major;
-  } DUMMYSTRUCTNAME;
-} ERROR_REVISION, *PERROR_REVISION;
-
-#if (NTDDI_VERSION > NTDDI_WINXP)
-#define ERROR_MAJOR_REVISION_SAL_03_00      0
-#define ERROR_MINOR_REVISION_SAL_03_00      2
-#define ERROR_REVISION_SAL_03_00 {ERROR_MINOR_REVISION_SAL_03_00,ERROR_MAJOR_REVISION_SAL_03_00}
-#define ERROR_FIXED_SECTION_REVISION {2,0}
-#else
-#define ERROR_REVISION_SAL_03_00 {2,0}
-#endif /* (NTDDI_VERSION > NTDDI_WINXP) */
-
-typedef union _ERROR_TIMESTAMP {
-  ULONGLONG TimeStamp;
-  struct {
-    UCHAR Seconds;
-    UCHAR Minutes;
-    UCHAR Hours;
-    UCHAR Reserved;
-    UCHAR Day;
-    UCHAR Month;
-    UCHAR Year;
-    UCHAR Century;
-  } DUMMYSTRUCTNAME;
-} ERROR_TIMESTAMP, *PERROR_TIMESTAMP;
-
-typedef struct _ERROR_GUID {
-  ULONG Data1;
-  USHORT Data2;
-  USHORT Data3;
-  UCHAR Data4[8];
-} ERROR_GUID, *PERROR_GUID;
-
-typedef ERROR_GUID            _ERROR_DEVICE_GUID;
-typedef _ERROR_DEVICE_GUID    ERROR_DEVICE_GUID, *PERROR_DEVICE_GUID;
-
-typedef ERROR_GUID            _ERROR_PLATFORM_GUID;
-typedef _ERROR_PLATFORM_GUID  ERROR_PLATFORM_GUID, *PERROR_PLATFORM_GUID;
-
-typedef union _ERROR_RECORD_VALID {
-  UCHAR Valid;
-  struct {
-    UCHAR OemPlatformID:1;
-    UCHAR Reserved:7;
-  } DUMMYSTRUCTNAME;
-} ERROR_RECORD_VALID, *PERROR_RECORD_VALID;
-
-typedef struct _ERROR_RECORD_HEADER {
-  ULONGLONG Id;
-  ERROR_REVISION Revision;
-  ERROR_SEVERITY ErrorSeverity;
-  ERROR_RECORD_VALID Valid;
-  ULONG Length;
-  ERROR_TIMESTAMP TimeStamp;
-  UCHAR OemPlatformId[16];
-} ERROR_RECORD_HEADER, *PERROR_RECORD_HEADER;
-
-typedef union _ERROR_RECOVERY_INFO {
-  UCHAR RecoveryInfo;
-  struct {
-    UCHAR Corrected:1;
-    UCHAR NotContained:1;
-    UCHAR Reset:1;
-    UCHAR Reserved:4;
-    UCHAR Valid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_RECOVERY_INFO, *PERROR_RECOVERY_INFO;
-
-typedef struct _ERROR_SECTION_HEADER {
-  ERROR_DEVICE_GUID Guid;
-  ERROR_REVISION Revision;
-  ERROR_RECOVERY_INFO RecoveryInfo;
-  UCHAR Reserved;
-  ULONG Length;
-} ERROR_SECTION_HEADER, *PERROR_SECTION_HEADER;
-
-#if !defined(__midl) && defined(_MSC_EXTENSIONS)
-__inline
-USHORT
-NTAPI
-GetFwMceLogProcessorNumber(
-  PERROR_RECORD_HEADER Log)
-{
-  PERROR_SECTION_HEADER section = (PERROR_SECTION_HEADER)((ULONG64)Log + sizeof(*Log));
-  USHORT lid = (USHORT)((UCHAR)(section->Reserved));
-  lid |= (USHORT)((UCHAR)(Log->TimeStamp.Reserved) << 8);
-  return( lid );
-}
-#endif
-
-#define ERROR_PROCESSOR_GUID {0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_MODINFO_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG CheckInfo:1;
-    ULONGLONG RequestorIdentifier:1;
-    ULONGLONG ResponderIdentifier:1;
-    ULONGLONG TargetIdentifier:1;
-    ULONGLONG PreciseIP:1;
-    ULONGLONG Reserved:59;
-  } DUMMYSTRUCTNAME;
-} ERROR_MODINFO_VALID, *PERROR_MODINFO_VALID;
-
-typedef enum _ERROR_CHECK_IS {
-  isIA64 = 0,
-  isIA32 = 1,
-} ERROR_CHECK_IS;
-
-typedef enum _ERROR_CACHE_CHECK_OPERATION {
-  CacheUnknownOp = 0,
-  CacheLoad = 1,
-  CacheStore = 2,
-  CacheInstructionFetch = 3,
-  CacheDataPrefetch = 4,
-  CacheSnoop = 5,
-  CacheCastOut = 6,
-  CacheMoveIn = 7,
-} ERROR_CACHE_CHECK_OPERATION;
-
-typedef enum _ERROR_CACHE_CHECK_MESI {
-  CacheInvalid = 0,
-  CacheHeldShared = 1,
-  CacheHeldExclusive = 2,
-  CacheModified = 3,
-} ERROR_CACHE_CHECK_MESI;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-typedef union _ERROR_CACHE_CHECK {
-  ULONGLONG CacheCheck;
-  struct {
-    ULONGLONG Operation:4;
-    ULONGLONG Level:2;
-    ULONGLONG Reserved1:2;
-    ULONGLONG DataLine:1;
-    ULONGLONG TagLine:1;
-    ULONGLONG DataCache:1;
-    ULONGLONG InstructionCache:1;
-    ULONGLONG MESI:3;
-    ULONGLONG MESIValid:1;
-    ULONGLONG Way:5;
-    ULONGLONG WayIndexValid:1;
-    ULONGLONG Reserved2:1;
-    ULONGLONG DP:1;
-    ULONGLONG Reserved3:8;
-    ULONGLONG Index:20;
-    ULONGLONG Reserved4:2;
-    ULONGLONG InstructionSet:1;
-    ULONGLONG InstructionSetValid:1;
-    ULONGLONG PrivilegeLevel:2;
-    ULONGLONG PrivilegeLevelValid:1;
-    ULONGLONG MachineCheckCorrected:1;
-    ULONGLONG TargetAddressValid:1;
-    ULONGLONG RequestIdValid:1;
-    ULONGLONG ResponderIdValid:1;
-    ULONGLONG PreciseIPValid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
-
-# else
-
-typedef union _ERROR_CACHE_CHECK {
-  ULONGLONG CacheCheck;
-  struct {
-    ULONGLONG Operation:4;
-    ULONGLONG Level:2;
-    ULONGLONG Reserved1:2;
-    ULONGLONG DataLine:1;
-    ULONGLONG TagLine:1;
-    ULONGLONG DataCache:1;
-    ULONGLONG InstructionCache:1;
-    ULONGLONG MESI:3;
-    ULONGLONG MESIValid:1;
-    ULONGLONG Way:5;
-    ULONGLONG WayIndexValid:1;
-    ULONGLONG Reserved2:10;
-    ULONGLONG Index:20;
-    ULONGLONG Reserved3:2;
-    ULONGLONG InstructionSet:1;
-    ULONGLONG InstructionSetValid:1;
-    ULONGLONG PrivilegeLevel:2;
-    ULONGLONG PrivilegeLevelValid:1;
-    ULONGLONG MachineCheckCorrected:1;
-    ULONGLONG TargetAddressValid:1;
-    ULONGLONG RequestIdValid:1;
-    ULONGLONG ResponderIdValid:1;
-    ULONGLONG PreciseIPValid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-typedef enum _ERROR_TLB_CHECK_OPERATION {
-  TlbUnknownOp = 0,
-  TlbAccessWithLoad = 1,
-  TlbAccessWithStore = 2,
-  TlbAccessWithInstructionFetch = 3,
-  TlbAccessWithDataPrefetch = 4,
-  TlbShootDown = 5,
-  TlbProbe = 6,
-  TlbVhptFill = 7,
-  TlbPurge = 8,
-} ERROR_TLB_CHECK_OPERATION;
-
-typedef union _ERROR_TLB_CHECK {
-  ULONGLONG TlbCheck;
-  struct {
-    ULONGLONG TRSlot:8;
-    ULONGLONG TRSlotValid:1;
-    ULONGLONG Reserved1:1;
-    ULONGLONG Level:2;
-    ULONGLONG Reserved2:4;
-    ULONGLONG DataTransReg:1;
-    ULONGLONG InstructionTransReg:1;
-    ULONGLONG DataTransCache:1;
-    ULONGLONG InstructionTransCache:1;
-    ULONGLONG Operation:4;
-    ULONGLONG Reserved3:30;
-    ULONGLONG InstructionSet:1;
-    ULONGLONG InstructionSetValid:1;
-    ULONGLONG PrivilegeLevel:2;
-    ULONGLONG PrivilegeLevelValid:1;
-    ULONGLONG MachineCheckCorrected:1;
-    ULONGLONG TargetAddressValid:1;
-    ULONGLONG RequestIdValid:1;
-    ULONGLONG ResponderIdValid:1;
-    ULONGLONG PreciseIPValid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_TLB_CHECK, *PERROR_TLB_CHECK;
-
-typedef enum _ERROR_BUS_CHECK_OPERATION {
-  BusUnknownOp = 0,
-  BusPartialRead = 1,
-  BusPartialWrite = 2,
-  BusFullLineRead = 3,
-  BusFullLineWrite = 4,
-  BusWriteBack = 5,
-  BusSnoopProbe = 6,
-  BusIncomingPtcG = 7,
-  BusWriteCoalescing = 8,
-} ERROR_BUS_CHECK_OPERATION;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-typedef union _ERROR_BUS_CHECK {
-  ULONGLONG BusCheck;
-  struct {
-    ULONGLONG Size:5;
-    ULONGLONG Internal:1;
-    ULONGLONG External:1;
-    ULONGLONG CacheTransfer:1;
-    ULONGLONG Type:8;
-    ULONGLONG Severity:5;
-    ULONGLONG Hierarchy:2;
-    ULONGLONG DP:1;
-    ULONGLONG Status:8;
-    ULONGLONG Reserved1:22;
-    ULONGLONG InstructionSet:1;
-    ULONGLONG InstructionSetValid:1;
-    ULONGLONG PrivilegeLevel:2;
-    ULONGLONG PrivilegeLevelValid:1;
-    ULONGLONG MachineCheckCorrected:1;
-    ULONGLONG TargetAddressValid:1;
-    ULONGLONG RequestIdValid:1;
-    ULONGLONG ResponderIdValid:1;
-    ULONGLONG PreciseIPValid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
-
-#else
-
-typedef union _ERROR_BUS_CHECK {
-  ULONGLONG BusCheck;
-  struct {
-    ULONGLONG Size:5;
-    ULONGLONG Internal:1;
-    ULONGLONG External:1;
-    ULONGLONG CacheTransfer:1;
-    ULONGLONG Type:8;
-    ULONGLONG Severity:5;
-    ULONGLONG Hierarchy:2;
-    ULONGLONG Reserved1:1;
-    ULONGLONG Status:8;
-    ULONGLONG Reserved2:22;
-    ULONGLONG InstructionSet:1;
-    ULONGLONG InstructionSetValid:1;
-    ULONGLONG PrivilegeLevel:2;
-    ULONGLONG PrivilegeLevelValid:1;
-    ULONGLONG MachineCheckCorrected:1;
-    ULONGLONG TargetAddressValid:1;
-    ULONGLONG RequestIdValid:1;
-    ULONGLONG ResponderIdValid:1;
-    ULONGLONG PreciseIPValid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
-
-#endif
-
-typedef enum _ERROR_REGFILE_CHECK_IDENTIFIER {
-  RegFileUnknownId = 0,
-  GeneralRegisterBank1 = 1,
-  GeneralRegisterBank0 = 2,
-  FloatingPointRegister = 3,
-  BranchRegister = 4,
-  PredicateRegister = 5,
-  ApplicationRegister = 6,
-  ControlRegister = 7,
-  RegionRegister = 8,
-  ProtectionKeyRegister = 9,
-  DataBreakPointRegister = 10,
-  InstructionBreakPointRegister = 11,
-  PerformanceMonitorControlRegister = 12,
-  PerformanceMonitorDataRegister = 13,
-} ERROR_REGFILE_CHECK_IDENTIFIER;
-
-typedef enum _ERROR_REGFILE_CHECK_OPERATION {
-  RegFileUnknownOp = 0,
-  RegFileRead = 1,
-  RegFileWrite = 2,
-} ERROR_REGFILE_CHECK_OPERATION;
-
-typedef union _ERROR_REGFILE_CHECK {
-  ULONGLONG RegFileCheck;
-  struct {
-    ULONGLONG Identifier:4;
-    ULONGLONG Operation:4;
-    ULONGLONG RegisterNumber:7;
-    ULONGLONG RegisterNumberValid:1;
-    ULONGLONG Reserved1:38;
-    ULONGLONG InstructionSet:1;
-    ULONGLONG InstructionSetValid:1;
-    ULONGLONG PrivilegeLevel:2;
-    ULONGLONG PrivilegeLevelValid:1;
-    ULONGLONG MachineCheckCorrected:1;
-    ULONGLONG Reserved2:3;
-    ULONGLONG PreciseIPValid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_REGFILE_CHECK, *PERROR_REGFILE_CHECK;
-
-#if (NTDDK_VERSION <= WINXP)
-typedef enum _ERROR_MS_CHECK_OPERATION {
-  MsUnknownOp = 0,
-  MsReadOrLoad = 1,
-  MsWriteOrStore = 2
-} ERROR_MS_CHECK_OPERATION;
-#else
-typedef enum _ERROR_MS_CHECK_OPERATION {
-  MsUnknownOp = 0,
-  MsReadOrLoad = 1,
-  MsWriteOrStore = 2,
-  MsOverTemperature = 3,
-  MsNormalTemperature = 4
-} ERROR_MS_CHECK_OPERATION;
-#endif
-
-typedef union _ERROR_MS_CHECK {
-  ULONGLONG MsCheck;
-  struct {
-    ULONGLONG StructureIdentifier:5;
-    ULONGLONG Level:3;
-    ULONGLONG ArrayId:4;
-    ULONGLONG Operation:4;
-    ULONGLONG Way:6;
-    ULONGLONG WayValid:1;
-    ULONGLONG IndexValid:1;
-    ULONGLONG Reserved1:8;
-    ULONGLONG Index:8;
-    ULONGLONG Reserved2:14;
-    ULONGLONG InstructionSet:1;
-    ULONGLONG InstructionSetValid:1;
-    ULONGLONG PrivilegeLevel:2;
-    ULONGLONG PrivilegeLevelValid:1;
-    ULONGLONG MachineCheckCorrected:1;
-    ULONGLONG TargetAddressValid:1;
-    ULONGLONG RequestIdValid:1;
-    ULONGLONG ResponderIdValid:1;
-    ULONGLONG PreciseIPValid:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_MS_CHECK, *PERROR_MS_CHECK;
-
-typedef union _ERROR_CHECK_INFO {
-  ULONGLONG CheckInfo;
-  ERROR_CACHE_CHECK CacheCheck;
-  ERROR_TLB_CHECK TlbCheck;
-  ERROR_BUS_CHECK BusCheck;
-  ERROR_REGFILE_CHECK RegFileCheck;
-  ERROR_MS_CHECK MsCheck;
-} ERROR_CHECK_INFO, *PERROR_CHECK_INFO;
-
-typedef struct _ERROR_MODINFO {
-  ERROR_MODINFO_VALID Valid;
-  ERROR_CHECK_INFO CheckInfo;
-  ULONGLONG RequestorId;
-  ULONGLONG ResponderId;
-  ULONGLONG TargetId;
-  ULONGLONG PreciseIP;
-} ERROR_MODINFO, *PERROR_MODINFO;
-
-typedef union _ERROR_PROCESSOR_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG ErrorMap:1;
-    ULONGLONG StateParameter:1;
-    ULONGLONG CRLid:1;
-    ULONGLONG StaticStruct:1;
-    ULONGLONG CacheCheckNum:4;
-    ULONGLONG TlbCheckNum:4;
-    ULONGLONG BusCheckNum:4;
-    ULONGLONG RegFileCheckNum:4;
-    ULONGLONG MsCheckNum:4;
-    ULONGLONG CpuIdInfo:1;
-    ULONGLONG Reserved:39;
-  } DUMMYSTRUCTNAME;
-} ERROR_PROCESSOR_VALID, *PERROR_PROCESSOR_VALID;
-
-typedef union _ERROR_PROCESSOR_ERROR_MAP {
-  ULONGLONG ErrorMap;
-  struct {
-    ULONGLONG   Cid:4;
-    ULONGLONG   Tid:4;
-    ULONGLONG   Eic:4;
-    ULONGLONG   Edc:4;
-    ULONGLONG   Eit:4;
-    ULONGLONG   Edt:4;
-    ULONGLONG   Ebh:4;
-    ULONGLONG   Erf:4;
-    ULONGLONG   Ems:16;
-    ULONGLONG   Reserved:16;
-  } DUMMYSTRUCTNAME;
-} ERROR_PROCESSOR_ERROR_MAP, *PERROR_PROCESSOR_ERROR_MAP;
-
-typedef ERROR_PROCESSOR_ERROR_MAP    _ERROR_PROCESSOR_LEVEL_INDEX;
-typedef _ERROR_PROCESSOR_LEVEL_INDEX ERROR_PROCESSOR_LEVEL_INDEX, *PERROR_PROCESSOR_LEVEL_INDEX;
-
-typedef union _ERROR_PROCESSOR_STATE_PARAMETER {
-  ULONGLONG   StateParameter;
-  struct {
-    ULONGLONG reserved0:2;
-    ULONGLONG rz:1;
-    ULONGLONG ra:1;
-    ULONGLONG me:1;
-    ULONGLONG mn:1;
-    ULONGLONG sy:1;
-    ULONGLONG co:1;
-    ULONGLONG ci:1;
-    ULONGLONG us:1;
-    ULONGLONG hd:1;
-    ULONGLONG tl:1;
-    ULONGLONG mi:1;
-    ULONGLONG pi:1;
-    ULONGLONG pm:1;
-    ULONGLONG dy:1;
-    ULONGLONG in:1;
-    ULONGLONG rs:1;
-    ULONGLONG cm:1;
-    ULONGLONG ex:1;
-    ULONGLONG cr:1;
-    ULONGLONG pc:1;
-    ULONGLONG dr:1;
-    ULONGLONG tr:1;
-    ULONGLONG rr:1;
-    ULONGLONG ar:1;
-    ULONGLONG br:1;
-    ULONGLONG pr:1;
-    ULONGLONG fp:1;
-    ULONGLONG b1:1;
-    ULONGLONG b0:1;
-    ULONGLONG gr:1;
-    ULONGLONG dsize:16;
-    ULONGLONG reserved1:11;
-    ULONGLONG cc:1;
-    ULONGLONG tc:1;
-    ULONGLONG bc:1;
-    ULONGLONG rc:1;
-    ULONGLONG uc:1;
-  } DUMMYSTRUCTNAME;
-} ERROR_PROCESSOR_STATE_PARAMETER, *PERROR_PROCESSOR_STATE_PARAMETER;
-
-typedef union _PROCESSOR_LOCAL_ID {
-  ULONGLONG LocalId;
-  struct {
-    ULONGLONG reserved:16;
-    ULONGLONG eid:8;
-    ULONGLONG id:8;
-    ULONGLONG ignored:32;
-  } DUMMYSTRUCTNAME;
-} PROCESSOR_LOCAL_ID, *PPROCESSOR_LOCAL_ID;
-
-typedef struct _ERROR_PROCESSOR_MS {
-  ULONGLONG MsError[1];
-} ERROR_PROCESSOR_MS, *PERROR_PROCESSOR_MS;
-
-typedef struct _ERROR_PROCESSOR_CPUID_INFO {
-  ULONGLONG CpuId0;
-  ULONGLONG CpuId1;
-  ULONGLONG CpuId2;
-  ULONGLONG CpuId3;
-  ULONGLONG CpuId4;
-  ULONGLONG Reserved;
-} ERROR_PROCESSOR_CPUID_INFO, *PERROR_PROCESSOR_CPUID_INFO;
-
-typedef union _ERROR_PROCESSOR_STATIC_INFO_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG MinState:1;
-    ULONGLONG BR:1;
-    ULONGLONG CR:1;
-    ULONGLONG AR:1;
-    ULONGLONG RR:1;
-    ULONGLONG FR:1;
-    ULONGLONG Reserved:58;
-  } DUMMYSTRUCTNAME;
-} ERROR_PROCESSOR_STATIC_INFO_VALID, *PERROR_PROCESSOR_STATIC_INFO_VALID;
-
-typedef struct _ERROR_PROCESSOR_STATIC_INFO {
-  ERROR_PROCESSOR_STATIC_INFO_VALID Valid;
-  UCHAR MinState[1024];
-  ULONGLONG BR[8];
-  ULONGLONG CR[128];
-  ULONGLONG AR[128];
-  ULONGLONG RR[8];
-  ULONGLONG FR[2 * 128];
-} ERROR_PROCESSOR_STATIC_INFO, *PERROR_PROCESSOR_STATIC_INFO;
-
-typedef struct _ERROR_PROCESSOR {
-  ERROR_SECTION_HEADER Header;
-  ERROR_PROCESSOR_VALID Valid;
-  ERROR_PROCESSOR_ERROR_MAP ErrorMap;
-  ERROR_PROCESSOR_STATE_PARAMETER StateParameter;
-  PROCESSOR_LOCAL_ID CRLid;
-} ERROR_PROCESSOR, *PERROR_PROCESSOR;
-
-#define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_SHIFT         59
-#define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_MASK          0x1
-#define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_SHIFT           60
-#define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_MASK            0x1
-#define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_SHIFT           61
-#define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_MASK            0x1
-#define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_SHIFT           62
-#define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_MASK            0x1
-#define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT     63
-#define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK      0x1
-
-#define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_SHIFT       ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT
-#define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_MASK        ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK
-
-typedef enum _ERR_TYPES {
-  ERR_INTERNAL = 1,
-  ERR_BUS = 16,
-  ERR_MEM = 4,
-  ERR_TLB = 5,
-  ERR_CACHE = 6,
-  ERR_FUNCTION = 7,
-  ERR_SELFTEST = 8,
-  ERR_FLOW = 9,
-  ERR_MAP = 17,
-  ERR_IMPROPER = 18,
-  ERR_UNIMPL = 19,
-  ERR_LOL = 20,
-  ERR_RESPONSE = 21,
-  ERR_PARITY = 22,
-  ERR_PROTOCOL = 23,
-  ERR_ERROR = 24,
-  ERR_TIMEOUT = 25,
-  ERR_POISONED = 26,
-} _ERR_TYPE;
-
-typedef union _ERROR_STATUS {
-  ULONGLONG Status;
-  struct {
-    ULONGLONG Reserved0:8;
-    ULONGLONG Type:8;
-    ULONGLONG Address:1;
-    ULONGLONG Control:1;
-    ULONGLONG Data:1;
-    ULONGLONG Responder:1;
-    ULONGLONG Requestor:1;
-    ULONGLONG FirstError:1;
-    ULONGLONG Overflow:1;
-    ULONGLONG Reserved1:41;
-  } DUMMYSTRUCTNAME;
-} ERROR_STATUS, *PERROR_STATUS;
-
-typedef struct _ERROR_OEM_DATA {
-  USHORT Length;
-} ERROR_OEM_DATA, *PERROR_OEM_DATA;
-
-typedef union _ERROR_BUS_SPECIFIC_DATA {
-  ULONGLONG BusSpecificData;
-  struct {
-    ULONGLONG LockAsserted:1;
-    ULONGLONG DeferLogged:1;
-    ULONGLONG IOQEmpty:1;
-    ULONGLONG DeferredTransaction:1;
-    ULONGLONG RetriedTransaction:1;
-    ULONGLONG MemoryClaimedTransaction:1;
-    ULONGLONG IOClaimedTransaction:1;
-    ULONGLONG ResponseParitySignal:1;
-    ULONGLONG DeferSignal:1;
-    ULONGLONG HitMSignal:1;
-    ULONGLONG HitSignal:1;
-    ULONGLONG RequestBusFirstCycle:6;
-    ULONGLONG RequestBusSecondCycle:6;
-    ULONGLONG AddressParityBusFirstCycle:2;
-    ULONGLONG AddressParityBusSecondCycle:2;
-    ULONGLONG ResponseBus:3;
-    ULONGLONG RequestParitySignalFirstCycle:1;
-    ULONGLONG RequestParitySignalSecondCycle:1;
-    ULONGLONG Reserved:32;
-  } DUMMYSTRUCTNAME;
-} ERROR_BUS_SPECIFIC_DATA, *PERROR_BUS_SPECIFIC_DATA;
-
-#define ERROR_MEMORY_GUID {0xe429faf2, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_MEMORY_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG ErrorStatus:1;
-    ULONGLONG PhysicalAddress:1;
-    ULONGLONG AddressMask:1;
-    ULONGLONG Node:1;
-    ULONGLONG Card:1;
-    ULONGLONG Module:1;
-    ULONGLONG Bank:1;
-    ULONGLONG Device:1;
-    ULONGLONG Row:1;
-    ULONGLONG Column:1;
-    ULONGLONG BitPosition:1;
-    ULONGLONG RequestorId:1;
-    ULONGLONG ResponderId:1;
-    ULONGLONG TargetId:1;
-    ULONGLONG BusSpecificData:1;
-    ULONGLONG OemId:1;
-    ULONGLONG OemData:1;
-    ULONGLONG Reserved:47;
-  } DUMMYSTRUCTNAME;
-} ERROR_MEMORY_VALID, *PERROR_MEMORY_VALID;
-
-typedef struct _ERROR_MEMORY {
-  ERROR_SECTION_HEADER Header;
-  ERROR_MEMORY_VALID Valid;
-  ERROR_STATUS ErrorStatus;
-  ULONGLONG PhysicalAddress;
-  ULONGLONG PhysicalAddressMask;
-  USHORT Node;
-  USHORT Card;
-  USHORT Module;
-  USHORT Bank;
-  USHORT Device;
-  USHORT Row;
-  USHORT Column;
-  USHORT BitPosition;
-  ULONGLONG RequestorId;
-  ULONGLONG ResponderId;
-  ULONGLONG TargetId;
-  ULONGLONG BusSpecificData;
-  UCHAR OemId[16];
-  ERROR_OEM_DATA OemData;
-} ERROR_MEMORY, *PERROR_MEMORY;
-
-#define ERROR_PCI_BUS_GUID {0xe429faf4, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_PCI_BUS_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG ErrorStatus:1;
-    ULONGLONG ErrorType:1;
-    ULONGLONG Id:1;
-    ULONGLONG Address:1;
-    ULONGLONG Data:1;
-    ULONGLONG CmdType:1;
-    ULONGLONG RequestorId:1;
-    ULONGLONG ResponderId:1;
-    ULONGLONG TargetId:1;
-    ULONGLONG OemId:1;
-    ULONGLONG OemData:1;
-    ULONGLONG Reserved:53;
-  } DUMMYSTRUCTNAME;
-} ERROR_PCI_BUS_VALID, *PERROR_PCI_BUS_VALID;
-
-typedef struct _ERROR_PCI_BUS_TYPE {
-  UCHAR Type;
-  UCHAR Reserved;
-} ERROR_PCI_BUS_TYPE, *PERROR_PCI_BUS_TYPE;
-
-#define PciBusUnknownError       ((UCHAR)0)
-#define PciBusDataParityError    ((UCHAR)1)
-#define PciBusSystemError        ((UCHAR)2)
-#define PciBusMasterAbort        ((UCHAR)3)
-#define PciBusTimeOut            ((UCHAR)4)
-#define PciMasterDataParityError ((UCHAR)5)
-#define PciAddressParityError    ((UCHAR)6)
-#define PciCommandParityError    ((UCHAR)7)
-
-typedef struct _ERROR_PCI_BUS_ID {
-  UCHAR BusNumber;
-  UCHAR SegmentNumber;
-} ERROR_PCI_BUS_ID, *PERROR_PCI_BUS_ID;
-
-typedef struct _ERROR_PCI_BUS {
-  ERROR_SECTION_HEADER Header;
-  ERROR_PCI_BUS_VALID Valid;
-  ERROR_STATUS ErrorStatus;
-  ERROR_PCI_BUS_TYPE Type;
-  ERROR_PCI_BUS_ID Id;
-  UCHAR Reserved[4];
-  ULONGLONG Address;
-  ULONGLONG Data;
-  ULONGLONG CmdType;
-  ULONGLONG RequestorId;
-  ULONGLONG ResponderId;
-  ULONGLONG TargetId;
-  UCHAR OemId[16];
-  ERROR_OEM_DATA OemData;
-} ERROR_PCI_BUS, *PERROR_PCI_BUS;
-
-#define ERROR_PCI_COMPONENT_GUID {0xe429faf6, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_PCI_COMPONENT_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG ErrorStatus:1;
-    ULONGLONG Info:1;
-    ULONGLONG MemoryMappedRegistersPairs:1;
-    ULONGLONG ProgrammedIORegistersPairs:1;
-    ULONGLONG RegistersDataPairs:1;
-    ULONGLONG OemData:1;
-    ULONGLONG Reserved:58;
-  } DUMMYSTRUCTNAME;
-} ERROR_PCI_COMPONENT_VALID, *PERROR_PCI_COMPONENT_VALID;
-
-typedef struct _ERROR_PCI_COMPONENT_INFO {
-  USHORT VendorId;
-  USHORT DeviceId;
-  UCHAR ClassCodeInterface;
-  UCHAR ClassCodeSubClass;
-  UCHAR ClassCodeBaseClass;
-  UCHAR FunctionNumber;
-  UCHAR DeviceNumber;
-  UCHAR BusNumber;
-  UCHAR SegmentNumber;
-  UCHAR Reserved0;
-  ULONG Reserved1;
-} ERROR_PCI_COMPONENT_INFO, *PERROR_PCI_COMPONENT_INFO;
-
-typedef struct _ERROR_PCI_COMPONENT {
-  ERROR_SECTION_HEADER Header;
-  ERROR_PCI_COMPONENT_VALID Valid;
-  ERROR_STATUS ErrorStatus;
-  ERROR_PCI_COMPONENT_INFO Info;
-  ULONG MemoryMappedRegistersPairs;
-  ULONG ProgrammedIORegistersPairs;
-} ERROR_PCI_COMPONENT, *PERROR_PCI_COMPONENT;
-
-#define ERROR_SYSTEM_EVENT_LOG_GUID {0xe429faf3, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_SYSTEM_EVENT_LOG_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG RecordId:1;
-    ULONGLONG RecordType:1;
-    ULONGLONG GeneratorId:1;
-    ULONGLONG EVMRev:1;
-    ULONGLONG SensorType:1;
-    ULONGLONG SensorNum:1;
-    ULONGLONG EventDirType:1;
-    ULONGLONG EventData1:1;
-    ULONGLONG EventData2:1;
-    ULONGLONG EventData3:1;
-    ULONGLONG Reserved:54;
-  } DUMMYSTRUCTNAME;
-} ERROR_SYSTEM_EVENT_LOG_VALID, *PSYSTEM_EVENT_LOG_VALID;
-
-typedef struct _ERROR_SYSTEM_EVENT_LOG {
-  ERROR_SECTION_HEADER Header;
-  ERROR_SYSTEM_EVENT_LOG_VALID Valid;
-  USHORT RecordId;
-  UCHAR RecordType;
-  ULONG TimeStamp;
-  USHORT GeneratorId;
-  UCHAR EVMRevision;
-  UCHAR SensorType;
-  UCHAR SensorNumber;
-  UCHAR EventDir;
-  UCHAR Data1;
-  UCHAR Data2;
-  UCHAR Data3;
-} ERROR_SYSTEM_EVENT_LOG, *PERROR_SYSTEM_EVENT_LOG;
-
-#define ERROR_SMBIOS_GUID {0xe429faf5, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_SMBIOS_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG EventType:1;
-    ULONGLONG Length:1;
-    ULONGLONG TimeStamp:1;
-    ULONGLONG OemData:1;
-    ULONGLONG Reserved:60;
-  } DUMMYSTRUCTNAME;
-} ERROR_SMBIOS_VALID, *PERROR_SMBIOS_VALID;
-
-typedef UCHAR ERROR_SMBIOS_EVENT_TYPE, *PERROR_SMBIOS_EVENT_TYPE;
-
-typedef struct _ERROR_SMBIOS {
-  ERROR_SECTION_HEADER Header;
-  ERROR_SMBIOS_VALID Valid;
-  ERROR_SMBIOS_EVENT_TYPE EventType;
-  UCHAR Length;
-  ERROR_TIMESTAMP TimeStamp;
-  ERROR_OEM_DATA OemData;
-} ERROR_SMBIOS, *PERROR_SMBIOS;
-
-#define ERROR_PLATFORM_SPECIFIC_GUID {0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_PLATFORM_SPECIFIC_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG ErrorStatus:1;
-    ULONGLONG RequestorId:1;
-    ULONGLONG ResponderId:1;
-    ULONGLONG TargetId:1;
-    ULONGLONG BusSpecificData:1;
-    ULONGLONG OemId:1;
-    ULONGLONG OemData:1;
-    ULONGLONG OemDevicePath:1;
-    ULONGLONG Reserved:56;
-  } DUMMYSTRUCTNAME;
-} ERROR_PLATFORM_SPECIFIC_VALID, *PERROR_PLATFORM_SPECIFIC_VALID;
-
-typedef struct _ERROR_PLATFORM_SPECIFIC {
-  ERROR_SECTION_HEADER Header;
-  ERROR_PLATFORM_SPECIFIC_VALID Valid;
-  ERROR_STATUS ErrorStatus;
-  ULONGLONG RequestorId;
-  ULONGLONG ResponderId;
-  ULONGLONG TargetId;
-  ERROR_BUS_SPECIFIC_DATA BusSpecificData;
-  UCHAR OemId[16];
-  ERROR_OEM_DATA OemData;
-} ERROR_PLATFORM_SPECIFIC, *PERROR_PLATFORM_SPECIFIC;
-
-#define ERROR_PLATFORM_BUS_GUID {0xe429faf9, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_PLATFORM_BUS_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG ErrorStatus:1;
-    ULONGLONG RequestorId:1;
-    ULONGLONG ResponderId:1;
-    ULONGLONG TargetId:1;
-    ULONGLONG BusSpecificData:1;
-    ULONGLONG OemId:1;
-    ULONGLONG OemData:1;
-    ULONGLONG OemDevicePath:1;
-    ULONGLONG Reserved:56;
-  } DUMMYSTRUCTNAME;
-} ERROR_PLATFORM_BUS_VALID, *PERROR_PLATFORM_BUS_VALID;
-
-typedef struct _ERROR_PLATFORM_BUS {
-  ERROR_SECTION_HEADER Header;
-  ERROR_PLATFORM_BUS_VALID Valid;
-  ERROR_STATUS ErrorStatus;
-  ULONGLONG RequestorId;
-  ULONGLONG ResponderId;
-  ULONGLONG TargetId;
-  ERROR_BUS_SPECIFIC_DATA BusSpecificData;
-  UCHAR OemId[16];
-  ERROR_OEM_DATA OemData;
-} ERROR_PLATFORM_BUS, *PERROR_PLATFORM_BUS;
-
-#define ERROR_PLATFORM_HOST_CONTROLLER_GUID {0xe429faf8, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
-
-typedef union _ERROR_PLATFORM_HOST_CONTROLLER_VALID {
-  ULONGLONG Valid;
-  struct {
-    ULONGLONG ErrorStatus:1;
-    ULONGLONG RequestorId:1;
-    ULONGLONG ResponderId:1;
-    ULONGLONG TargetId:1;
-    ULONGLONG BusSpecificData:1;
-    ULONGLONG OemId:1;
-    ULONGLONG OemData:1;
-    ULONGLONG OemDevicePath:1;
-    ULONGLONG Reserved:56;
-  } DUMMYSTRUCTNAME;
-} ERROR_PLATFORM_HOST_CONTROLLER_VALID, *PERROR_PLATFORM_HOST_CONTROLLER_VALID;
-
-typedef struct _ERROR_PLATFORM_HOST_CONTROLLER {
-  ERROR_SECTION_HEADER Header;
-  ERROR_PCI_COMPONENT_VALID Valid;
-  ERROR_STATUS ErrorStatus;
-  ULONGLONG RequestorId;
-  ULONGLONG ResponderId;
-  ULONGLONG TargetId;
-  ERROR_BUS_SPECIFIC_DATA BusSpecificData;
-  UCHAR OemId[16];
-  ERROR_OEM_DATA OemData;
-} ERROR_PLATFORM_HOST_CONTROLLER, *PERROR_PLATFORM_HOST_CONTROLLER;
-
-typedef ERROR_RECORD_HEADER ERROR_LOGRECORD, *PERROR_LOGRECORD;
-typedef ERROR_RECORD_HEADER MCA_EXCEPTION, *PMCA_EXCEPTION;
-typedef ERROR_RECORD_HEADER CMC_EXCEPTION, *PCMC_EXCEPTION;
-typedef ERROR_RECORD_HEADER CPE_EXCEPTION, *PCPE_EXCEPTION;
-#if (NTDDI_VERSION > NTDDI_WINXP)
-typedef ERROR_RECORD_HEADER INIT_EXCEPTION, *PINIT_EXCEPTION;
-#endif
-
-#endif /* defined(_IA64_) */
-
-#endif /* defined(_X86_) || defined(_IA64_) || defined(_AMD64_) */
index 0191e60..59fcc52 100644 (file)
@@ -59,7 +59,7 @@ typedef struct _VIDEO_ACCESS_RANGE {
 #endif
 
 typedef VOID
 #endif
 
 typedef VOID
-(NTAPI *PBANKED_SECTION_ROUTINE)(
+(DDKAPI *PBANKED_SECTION_ROUTINE)(
   IN ULONG  ReadBank,
   IN ULONG  WriteBank,
   IN PVOID  Context);
   IN ULONG  ReadBank,
   IN ULONG  WriteBank,
   IN PVOID  Context);
index 43b1b03..d8f7532 100644 (file)
@@ -159,24 +159,24 @@ typedef struct _MODE_CAPABILITIES_PAGE {
        UCHAR Reserved11[2];
 } MODE_CAPABILITIES_PAGE, *PMODE_CAPABILITIES_PAGE;
 
        UCHAR Reserved11[2];
 } MODE_CAPABILITIES_PAGE, *PMODE_CAPABILITIES_PAGE;
 
-typedef BOOLEAN NTAPI
+typedef BOOLEAN DDKAPI
 (*TAPE_VERIFY_INQUIRY_ROUTINE)(
        IN PINQUIRYDATA  InquiryData,
        IN PMODE_CAPABILITIES_PAGE ModeCapabilitiesPage);
 
 (*TAPE_VERIFY_INQUIRY_ROUTINE)(
        IN PINQUIRYDATA  InquiryData,
        IN PMODE_CAPABILITIES_PAGE ModeCapabilitiesPage);
 
-typedef VOID NTAPI
+typedef VOID DDKAPI
 (*TAPE_EXTENSION_INIT_ROUTINE)(
   IN PVOID  MinitapeExtension,
   IN PINQUIRYDATA  InquiryData,
   IN PMODE_CAPABILITIES_PAGE  ModeCapabilitiesPage);
 
 (*TAPE_EXTENSION_INIT_ROUTINE)(
   IN PVOID  MinitapeExtension,
   IN PINQUIRYDATA  InquiryData,
   IN PMODE_CAPABILITIES_PAGE  ModeCapabilitiesPage);
 
-typedef VOID NTAPI
+typedef VOID DDKAPI
 (*TAPE_ERROR_ROUTINE)(
     IN PVOID  MinitapeExtension,
     IN PSCSI_REQUEST_BLOCK  Srb,
     IN OUT PTAPE_STATUS  TapeStatus);
 
 (*TAPE_ERROR_ROUTINE)(
     IN PVOID  MinitapeExtension,
     IN PSCSI_REQUEST_BLOCK  Srb,
     IN OUT PTAPE_STATUS  TapeStatus);
 
-typedef TAPE_STATUS NTAPI
+typedef TAPE_STATUS DDKAPI
 (*TAPE_PROCESS_COMMAND_ROUTINE)(
   IN OUT PVOID  MinitapeExtension,
   IN OUT PVOID  CommandExtension,
 (*TAPE_PROCESS_COMMAND_ROUTINE)(
   IN OUT PVOID  MinitapeExtension,
   IN OUT PVOID  CommandExtension,
index da301b1..b08fb68 100644 (file)
@@ -268,7 +268,7 @@ typedef struct _LOCK_STATE {
 /* Timer */
 
 typedef VOID
 /* Timer */
 
 typedef VOID
-(NTAPI *PNDIS_TIMER_FUNCTION)(
+(DDKAPI *PNDIS_TIMER_FUNCTION)(
        IN PVOID  SystemSpecific1,
        IN PVOID  FunctionContext,
        IN PVOID  SystemSpecific2,
        IN PVOID  SystemSpecific1,
        IN PVOID  FunctionContext,
        IN PVOID  SystemSpecific2,
@@ -626,16 +626,16 @@ typedef struct _NDIS_WAN_LINE_UP {
 
 
 typedef VOID
 
 
 typedef VOID
-(NTAPI *ADAPTER_SHUTDOWN_HANDLER)(
+(DDKAPI *ADAPTER_SHUTDOWN_HANDLER)(
   IN PVOID  ShutdownContext);
 
 typedef NTSTATUS
   IN PVOID  ShutdownContext);
 
 typedef NTSTATUS
-(NTAPI *TDI_REGISTER_CALLBACK)(
+(DDKAPI *TDI_REGISTER_CALLBACK)(
     IN  PUNICODE_STRING         DeviceName,
     OUT HANDLE*                 TdiHandle);
 
 typedef NTSTATUS
     IN  PUNICODE_STRING         DeviceName,
     OUT HANDLE*                 TdiHandle);
 
 typedef NTSTATUS
-(NTAPI *TDI_PNP_HANDLER)(
+(DDKAPI *TDI_PNP_HANDLER)(
     IN  PUNICODE_STRING         UpperComponent,
     IN  PUNICODE_STRING         LowerComponent,
     IN  PUNICODE_STRING         BindList,
     IN  PUNICODE_STRING         UpperComponent,
     IN  PUNICODE_STRING         LowerComponent,
     IN  PUNICODE_STRING         BindList,
@@ -1057,88 +1057,88 @@ typedef struct _WAN_CO_LINKPARAMS {
 /* Call Manager */
 
 typedef VOID
 /* Call Manager */
 
 typedef VOID
-(NTAPI *CM_ACTIVATE_VC_COMPLETE_HANDLER)(
+(DDKAPI *CM_ACTIVATE_VC_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
-(NTAPI *CM_ADD_PARTY_HANDLER)(
+(DDKAPI *CM_ADD_PARTY_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
   IN NDIS_HANDLE  NdisPartyHandle,
   OUT PNDIS_HANDLE  CallMgrPartyContext);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  CallMgrVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
   IN NDIS_HANDLE  NdisPartyHandle,
   OUT PNDIS_HANDLE  CallMgrPartyContext);
 
 typedef NDIS_STATUS
-(NTAPI *CM_CLOSE_AF_HANDLER)(
+(DDKAPI *CM_CLOSE_AF_HANDLER)(
   IN NDIS_HANDLE  CallMgrAfContext);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  CallMgrAfContext);
 
 typedef NDIS_STATUS
-(NTAPI *CM_CLOSE_CALL_HANDLER)(
+(DDKAPI *CM_CLOSE_CALL_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN NDIS_HANDLE  CallMgrPartyContext  OPTIONAL,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  CallMgrVcContext,
   IN NDIS_HANDLE  CallMgrPartyContext  OPTIONAL,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef NDIS_STATUS
-(NTAPI *CM_DEREG_SAP_HANDLER)(
+(DDKAPI *CM_DEREG_SAP_HANDLER)(
   IN NDIS_HANDLE  CallMgrSapContext);
 
 typedef VOID
   IN NDIS_HANDLE  CallMgrSapContext);
 
 typedef VOID
-(NTAPI *CM_DEACTIVATE_VC_COMPLETE_HANDLER)(
+(DDKAPI *CM_DEACTIVATE_VC_COMPLETE_HANDLER)(
        IN NDIS_STATUS  Status,
        IN NDIS_HANDLE  CallMgrVcContext);
 
 typedef NDIS_STATUS
        IN NDIS_STATUS  Status,
        IN NDIS_HANDLE  CallMgrVcContext);
 
 typedef NDIS_STATUS
-(NTAPI *CM_DROP_PARTY_HANDLER)(
+(DDKAPI *CM_DROP_PARTY_HANDLER)(
   IN NDIS_HANDLE  CallMgrPartyContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef VOID
   IN NDIS_HANDLE  CallMgrPartyContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef VOID
-(NTAPI *CM_INCOMING_CALL_COMPLETE_HANDLER)(
+(DDKAPI *CM_INCOMING_CALL_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
-(NTAPI *CM_MAKE_CALL_HANDLER)(
+(DDKAPI *CM_MAKE_CALL_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
   IN NDIS_HANDLE  NdisPartyHandle      OPTIONAL,
   OUT PNDIS_HANDLE  CallMgrPartyContext  OPTIONAL);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  CallMgrVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
   IN NDIS_HANDLE  NdisPartyHandle      OPTIONAL,
   OUT PNDIS_HANDLE  CallMgrPartyContext  OPTIONAL);
 
 typedef NDIS_STATUS
-(NTAPI *CM_MODIFY_CALL_QOS_HANDLER)(
+(DDKAPI *CM_MODIFY_CALL_QOS_HANDLER)(
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  CallMgrVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
-(NTAPI *CM_OPEN_AF_HANDLER)(
+(DDKAPI *CM_OPEN_AF_HANDLER)(
        IN NDIS_HANDLE  CallMgrBindingContext,
        IN PCO_ADDRESS_FAMILY  AddressFamily,
        IN NDIS_HANDLE  NdisAfHandle,
        OUT PNDIS_HANDLE  CallMgrAfContext);
 
 typedef NDIS_STATUS
        IN NDIS_HANDLE  CallMgrBindingContext,
        IN PCO_ADDRESS_FAMILY  AddressFamily,
        IN NDIS_HANDLE  NdisAfHandle,
        OUT PNDIS_HANDLE  CallMgrAfContext);
 
 typedef NDIS_STATUS
-(NTAPI *CM_REG_SAP_HANDLER)(
+(DDKAPI *CM_REG_SAP_HANDLER)(
   IN NDIS_HANDLE  CallMgrAfContext,
   IN PCO_SAP  Sap,
   IN NDIS_HANDLE  NdisSapHandle,
   OUT  PNDIS_HANDLE  CallMgrSapContext);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  CallMgrAfContext,
   IN PCO_SAP  Sap,
   IN NDIS_HANDLE  NdisSapHandle,
   OUT  PNDIS_HANDLE  CallMgrSapContext);
 
 typedef NDIS_STATUS
-(NTAPI *CO_CREATE_VC_HANDLER)(
+(DDKAPI *CO_CREATE_VC_HANDLER)(
   IN NDIS_HANDLE  ProtocolAfContext,
   IN NDIS_HANDLE  NdisVcHandle,
   OUT PNDIS_HANDLE  ProtocolVcContext);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  ProtocolAfContext,
   IN NDIS_HANDLE  NdisVcHandle,
   OUT PNDIS_HANDLE  ProtocolVcContext);
 
 typedef NDIS_STATUS
-(NTAPI *CO_DELETE_VC_HANDLER)(
+(DDKAPI *CO_DELETE_VC_HANDLER)(
   IN NDIS_HANDLE  ProtocolVcContext);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolVcContext);
 
 typedef VOID
-(NTAPI *CO_REQUEST_COMPLETE_HANDLER)(
+(DDKAPI *CO_REQUEST_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolAfContext  OPTIONAL,
   IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolAfContext  OPTIONAL,
   IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
@@ -1146,7 +1146,7 @@ typedef VOID
   IN PNDIS_REQUEST  NdisRequest);
 
 typedef NDIS_STATUS
   IN PNDIS_REQUEST  NdisRequest);
 
 typedef NDIS_STATUS
-(NTAPI *CO_REQUEST_HANDLER)(
+(DDKAPI *CO_REQUEST_HANDLER)(
   IN NDIS_HANDLE  ProtocolAfContext,
   IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
   IN NDIS_HANDLE       ProtocolPartyContext  OPTIONAL,
   IN NDIS_HANDLE  ProtocolAfContext,
   IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
   IN NDIS_HANDLE       ProtocolPartyContext  OPTIONAL,
@@ -1185,80 +1185,80 @@ typedef VOID (*CL_OPEN_AF_COMPLETE_HANDLER)(
   IN NDIS_HANDLE NdisAfHandle);
 
 typedef VOID
   IN NDIS_HANDLE NdisAfHandle);
 
 typedef VOID
-(NTAPI *CL_CLOSE_AF_COMPLETE_HANDLER)(
+(DDKAPI *CL_CLOSE_AF_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolAfContext);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolAfContext);
 
 typedef VOID
-(NTAPI *CL_REG_SAP_COMPLETE_HANDLER)(
+(DDKAPI *CL_REG_SAP_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolSapContext,
   IN PCO_SAP  Sap,
   IN NDIS_HANDLE  NdisSapHandle);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolSapContext,
   IN PCO_SAP  Sap,
   IN NDIS_HANDLE  NdisSapHandle);
 
 typedef VOID
-(NTAPI *CL_DEREG_SAP_COMPLETE_HANDLER)(
+(DDKAPI *CL_DEREG_SAP_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolSapContext);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolSapContext);
 
 typedef VOID
-(NTAPI *CL_MAKE_CALL_COMPLETE_HANDLER)(
+(DDKAPI *CL_MAKE_CALL_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN NDIS_HANDLE  NdisPartyHandle  OPTIONAL,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN NDIS_HANDLE  NdisPartyHandle  OPTIONAL,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
-(NTAPI *CL_MODIFY_CALL_QOS_COMPLETE_HANDLER)(
+(DDKAPI *CL_MODIFY_CALL_QOS_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
-(NTAPI *CL_CLOSE_CALL_COMPLETE_HANDLER)(
+(DDKAPI *CL_CLOSE_CALL_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN NDIS_HANDLE  ProtocolPartyContext  OPTIONAL);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN NDIS_HANDLE  ProtocolPartyContext  OPTIONAL);
 
 typedef VOID
-(NTAPI *CL_ADD_PARTY_COMPLETE_HANDLER)(
+(DDKAPI *CL_ADD_PARTY_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolPartyContext,
   IN NDIS_HANDLE  NdisPartyHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolPartyContext,
   IN NDIS_HANDLE  NdisPartyHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
-(NTAPI *CL_DROP_PARTY_COMPLETE_HANDLER)(
+(DDKAPI *CL_DROP_PARTY_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolPartyContext);
 
 typedef NDIS_STATUS
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolPartyContext);
 
 typedef NDIS_STATUS
-(NTAPI *CL_INCOMING_CALL_HANDLER)(
+(DDKAPI *CL_INCOMING_CALL_HANDLER)(
   IN NDIS_HANDLE  ProtocolSapContext,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolSapContext,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
-(NTAPI *CL_INCOMING_CALL_QOS_CHANGE_HANDLER)(
+(DDKAPI *CL_INCOMING_CALL_QOS_CHANGE_HANDLER)(
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 typedef VOID
-(NTAPI *CL_INCOMING_CLOSE_CALL_HANDLER)(
+(DDKAPI *CL_INCOMING_CLOSE_CALL_HANDLER)(
   IN NDIS_STATUS  CloseStatus,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef VOID
   IN NDIS_STATUS  CloseStatus,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef VOID
-(NTAPI *CL_INCOMING_DROP_PARTY_HANDLER)(
+(DDKAPI *CL_INCOMING_DROP_PARTY_HANDLER)(
   IN NDIS_STATUS  DropStatus,
   IN NDIS_HANDLE  ProtocolPartyContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef VOID
   IN NDIS_STATUS  DropStatus,
   IN NDIS_HANDLE  ProtocolPartyContext,
   IN PVOID  CloseData  OPTIONAL,
   IN UINT  Size  OPTIONAL);
 
 typedef VOID
-(NTAPI *CL_CALL_CONNECTED_HANDLER)(
+(DDKAPI *CL_CALL_CONNECTED_HANDLER)(
   IN NDIS_HANDLE  ProtocolVcContext);
 
 
   IN NDIS_HANDLE  ProtocolVcContext);
 
 
@@ -1293,64 +1293,64 @@ typedef struct _NDIS_CLIENT_CHARACTERISTICS {
 /* Prototypes for NDIS 3.0 protocol characteristics */
 
 typedef VOID
 /* Prototypes for NDIS 3.0 protocol characteristics */
 
 typedef VOID
-(NTAPI *OPEN_ADAPTER_COMPLETE_HANDLER)(
+(DDKAPI *OPEN_ADAPTER_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status,
   IN NDIS_STATUS  OpenErrorStatus);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status,
   IN NDIS_STATUS  OpenErrorStatus);
 
 typedef VOID
-(NTAPI *CLOSE_ADAPTER_COMPLETE_HANDLER)(
+(DDKAPI *CLOSE_ADAPTER_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status);
 
 typedef VOID
-(NTAPI *RESET_COMPLETE_HANDLER)(
+(DDKAPI *RESET_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  Status);
 
 typedef VOID
-(NTAPI *REQUEST_COMPLETE_HANDLER)(
+(DDKAPI *REQUEST_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_REQUEST  NdisRequest,
   IN NDIS_STATUS  Status);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_REQUEST  NdisRequest,
   IN NDIS_STATUS  Status);
 
 typedef VOID
-(NTAPI *STATUS_HANDLER)(
+(DDKAPI *STATUS_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  GeneralStatus,
   IN PVOID  StatusBuffer,
   IN UINT  StatusBufferSize);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_STATUS  GeneralStatus,
   IN PVOID  StatusBuffer,
   IN UINT  StatusBufferSize);
 
 typedef VOID
-(NTAPI *STATUS_COMPLETE_HANDLER)(
+(DDKAPI *STATUS_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext);
 
 typedef VOID
-(NTAPI *SEND_COMPLETE_HANDLER)(
+(DDKAPI *SEND_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
 typedef VOID
-(NTAPI *WAN_SEND_COMPLETE_HANDLER)(
+(DDKAPI *WAN_SEND_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_WAN_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_WAN_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
 typedef VOID
-(NTAPI *TRANSFER_DATA_COMPLETE_HANDLER)(
+(DDKAPI *TRANSFER_DATA_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status,
   IN UINT  BytesTransferred);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status,
   IN UINT  BytesTransferred);
 
 typedef VOID
-(NTAPI *WAN_TRANSFER_DATA_COMPLETE_HANDLER)(
+(DDKAPI *WAN_TRANSFER_DATA_COMPLETE_HANDLER)(
     VOID);
 
 
 typedef NDIS_STATUS
     VOID);
 
 
 typedef NDIS_STATUS
-(NTAPI *RECEIVE_HANDLER)(
+(DDKAPI *RECEIVE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PVOID  HeaderBuffer,
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PVOID  HeaderBuffer,
@@ -1360,13 +1360,13 @@ typedef NDIS_STATUS
   IN UINT  PacketSize);
 
 typedef NDIS_STATUS
   IN UINT  PacketSize);
 
 typedef NDIS_STATUS
-(NTAPI *WAN_RECEIVE_HANDLER)(
+(DDKAPI *WAN_RECEIVE_HANDLER)(
   IN NDIS_HANDLE  NdisLinkHandle,
   IN PUCHAR  Packet,
   IN ULONG  PacketSize);
 
 typedef VOID
   IN NDIS_HANDLE  NdisLinkHandle,
   IN PUCHAR  Packet,
   IN ULONG  PacketSize);
 
 typedef VOID
-(NTAPI *RECEIVE_COMPLETE_HANDLER)(
+(DDKAPI *RECEIVE_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext);
 
 
   IN NDIS_HANDLE  ProtocolBindingContext);
 
 
@@ -1409,12 +1409,12 @@ typedef struct _NDIS30_PROTOCOL_CHARACTERISTICS {
 /* Prototypes for NDIS 4.0 protocol characteristics */
 
 typedef INT
 /* Prototypes for NDIS 4.0 protocol characteristics */
 
 typedef INT
-(NTAPI *RECEIVE_PACKET_HANDLER)(
+(DDKAPI *RECEIVE_PACKET_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
-(NTAPI *BIND_HANDLER)(
+(DDKAPI *BIND_HANDLER)(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  BindContext,
   IN PNDIS_STRING  DeviceName,
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  BindContext,
   IN PNDIS_STRING  DeviceName,
@@ -1422,18 +1422,18 @@ typedef VOID
   IN PVOID  SystemSpecific2);
 
 typedef VOID
   IN PVOID  SystemSpecific2);
 
 typedef VOID
-(NTAPI *UNBIND_HANDLER)(
+(DDKAPI *UNBIND_HANDLER)(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  UnbindContext);
 
 typedef NDIS_STATUS
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  UnbindContext);
 
 typedef NDIS_STATUS
-(NTAPI *PNP_EVENT_HANDLER)(
+(DDKAPI *PNP_EVENT_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNET_PNP_EVENT  NetPnPEvent);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PNET_PNP_EVENT  NetPnPEvent);
 
 typedef VOID
-(NTAPI *UNLOAD_PROTOCOL_HANDLER)(
+(DDKAPI *UNLOAD_PROTOCOL_HANDLER)(
   VOID);
 
 
   VOID);
 
 
@@ -1468,13 +1468,13 @@ typedef struct _NDIS40_PROTOCOL_CHARACTERISTICS {
 /* Prototypes for NDIS 5.0 protocol characteristics */
 
 typedef VOID
 /* Prototypes for NDIS 5.0 protocol characteristics */
 
 typedef VOID
-(NTAPI *CO_SEND_COMPLETE_HANDLER)(
+(DDKAPI *CO_SEND_COMPLETE_HANDLER)(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
-(NTAPI *CO_STATUS_HANDLER)(
+(DDKAPI *CO_STATUS_HANDLER)(
        IN NDIS_HANDLE  ProtocolBindingContext,
        IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
        IN NDIS_STATUS  GeneralStatus,
        IN NDIS_HANDLE  ProtocolBindingContext,
        IN NDIS_HANDLE  ProtocolVcContext  OPTIONAL,
        IN NDIS_STATUS  GeneralStatus,
@@ -1482,13 +1482,13 @@ typedef VOID
        IN UINT  StatusBufferSize);
 
 typedef UINT
        IN UINT  StatusBufferSize);
 
 typedef UINT
-(NTAPI *CO_RECEIVE_PACKET_HANDLER)(
+(DDKAPI *CO_RECEIVE_PACKET_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN NDIS_HANDLE  ProtocolVcContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
-(NTAPI *CO_AF_REGISTER_NOTIFY_HANDLER)(
+(DDKAPI *CO_AF_REGISTER_NOTIFY_HANDLER)(
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PCO_ADDRESS_FAMILY  AddressFamily);
 
   IN NDIS_HANDLE  ProtocolBindingContext,
   IN PCO_ADDRESS_FAMILY  AddressFamily);
 
@@ -1538,7 +1538,7 @@ typedef struct _NDIS_PROTOCOL_CHARACTERISTICS {
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAllocateBuffer(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_BUFFER  *Buffer,
 NdisAllocateBuffer(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_BUFFER  *Buffer,
@@ -1549,7 +1549,7 @@ NdisAllocateBuffer(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAllocateBufferPool(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  PoolHandle,
 NdisAllocateBufferPool(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  PoolHandle,
@@ -1557,7 +1557,7 @@ NdisAllocateBufferPool(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAllocatePacket(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_PACKET  *Packet,
 NdisAllocatePacket(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_PACKET  *Packet,
@@ -1565,7 +1565,7 @@ NdisAllocatePacket(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAllocatePacketPool(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  PoolHandle,
 NdisAllocatePacketPool(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  PoolHandle,
@@ -1574,7 +1574,7 @@ NdisAllocatePacketPool(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCopyBuffer(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_BUFFER  *Buffer,
 NdisCopyBuffer(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_BUFFER  *Buffer,
@@ -1585,7 +1585,7 @@ NdisCopyBuffer(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCopyFromPacketToPacket(
   IN PNDIS_PACKET  Destination,
   IN UINT  DestinationOffset,
 NdisCopyFromPacketToPacket(
   IN PNDIS_PACKET  Destination,
   IN UINT  DestinationOffset,
@@ -1626,7 +1626,7 @@ NdisCopyFromPacketToPacket(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDprAllocatePacket(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_PACKET  *Packet,
 NdisDprAllocatePacket(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_PACKET  *Packet,
@@ -1634,7 +1634,7 @@ NdisDprAllocatePacket(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDprAllocatePacketNonInterlocked(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_PACKET  *Packet,
 NdisDprAllocatePacketNonInterlocked(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_PACKET  *Packet,
@@ -1642,96 +1642,96 @@ NdisDprAllocatePacketNonInterlocked(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDprFreePacket(
   IN PNDIS_PACKET  Packet);
 
 NDISAPI
 VOID
 NdisDprFreePacket(
   IN PNDIS_PACKET  Packet);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDprFreePacketNonInterlocked(
   IN PNDIS_PACKET  Packet);
 
 NDISAPI
 VOID
 NdisDprFreePacketNonInterlocked(
   IN PNDIS_PACKET  Packet);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisFreeBufferPool(
   IN NDIS_HANDLE  PoolHandle);
 
 NDISAPI
 VOID
 NdisFreeBufferPool(
   IN NDIS_HANDLE  PoolHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisFreePacket(
   IN PNDIS_PACKET  Packet);
 
 NDISAPI
 VOID
 NdisFreePacket(
   IN PNDIS_PACKET  Packet);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisFreePacketPool(
   IN NDIS_HANDLE  PoolHandle);
 
 NDISAPI
 VOID
 NdisFreePacketPool(
   IN NDIS_HANDLE  PoolHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReturnPackets(
   IN PNDIS_PACKET  *PacketsToReturn,
   IN UINT  NumberOfPackets);
 
 NDISAPI
 VOID
 NdisReturnPackets(
   IN PNDIS_PACKET  *PacketsToReturn,
   IN UINT  NumberOfPackets);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisUnchainBufferAtBack(
   IN OUT PNDIS_PACKET  Packet,
   OUT PNDIS_BUFFER  *Buffer);
 
 NDISAPI
 VOID
 NdisUnchainBufferAtBack(
   IN OUT PNDIS_PACKET  Packet,
   OUT PNDIS_BUFFER  *Buffer);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisUnchainBufferAtFront(
   IN OUT PNDIS_PACKET  Packet,
   OUT PNDIS_BUFFER  *Buffer);
 
 NDISAPI
 VOID
 NdisUnchainBufferAtFront(
   IN OUT PNDIS_PACKET  Packet,
   OUT PNDIS_BUFFER  *Buffer);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAdjustBufferLength(
   IN PNDIS_BUFFER  Buffer,
   IN UINT  Length);
 
 NDISAPI
 ULONG
 NdisAdjustBufferLength(
   IN PNDIS_BUFFER  Buffer,
   IN UINT  Length);
 
 NDISAPI
 ULONG
-NTAPI
+DDKAPI
 NdisBufferLength(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 PVOID
 NdisBufferLength(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 PVOID
-NTAPI
+DDKAPI
 NdisBufferVirtualAddress(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 ULONG
 NdisBufferVirtualAddress(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 ULONG
-NTAPI
+DDKAPI
 NDIS_BUFFER_TO_SPAN_PAGES(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 VOID
 NDIS_BUFFER_TO_SPAN_PAGES(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisFreeBuffer(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 VOID
 NdisFreeBuffer(
   IN PNDIS_BUFFER  Buffer);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisGetBufferPhysicalArraySize(
   IN PNDIS_BUFFER  Buffer,
   OUT PUINT  ArraySize);
 
 NDISAPI
 VOID
 NdisGetBufferPhysicalArraySize(
   IN PNDIS_BUFFER  Buffer,
   OUT PUINT  ArraySize);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisGetFirstBufferFromPacket(
   IN PNDIS_PACKET  _Packet,
   OUT PNDIS_BUFFER  *_FirstBuffer,
 NdisGetFirstBufferFromPacket(
   IN PNDIS_PACKET  _Packet,
   OUT PNDIS_BUFFER  *_FirstBuffer,
@@ -1741,7 +1741,7 @@ NdisGetFirstBufferFromPacket(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisQueryBuffer(
   IN PNDIS_BUFFER  Buffer,
   OUT PVOID  *VirtualAddress OPTIONAL,
 NdisQueryBuffer(
   IN PNDIS_BUFFER  Buffer,
   OUT PVOID  *VirtualAddress OPTIONAL,
@@ -1749,7 +1749,7 @@ NdisQueryBuffer(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisQueryBufferOffset(
   IN PNDIS_BUFFER  Buffer,
   OUT PUINT  Offset,
 NdisQueryBufferOffset(
   IN PNDIS_BUFFER  Buffer,
   OUT PUINT  Offset,
@@ -2152,7 +2152,7 @@ NdisQueryPacketLength(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCreateLookaheadBufferFromSharedMemory(
   IN PVOID  pSharedMemory,
   IN UINT  LookaheadLength,
 NdisCreateLookaheadBufferFromSharedMemory(
   IN PVOID  pSharedMemory,
   IN UINT  LookaheadLength,
@@ -2160,7 +2160,7 @@ NdisCreateLookaheadBufferFromSharedMemory(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDestroyLookaheadBufferFromSharedMemory(
   IN PVOID  pLookaheadBuffer);
 
 NdisDestroyLookaheadBufferFromSharedMemory(
   IN PVOID  pLookaheadBuffer);
 
@@ -2236,7 +2236,7 @@ NdisDestroyLookaheadBufferFromSharedMemory(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisAllocateMemory(
   OUT  PVOID  *VirtualAddress,
   IN UINT  Length,
 NdisAllocateMemory(
   OUT  PVOID  *VirtualAddress,
   IN UINT  Length,
@@ -2245,7 +2245,7 @@ NdisAllocateMemory(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisFreeMemory(
   IN PVOID  VirtualAddress,
   IN UINT  Length,
 NdisFreeMemory(
   IN PVOID  VirtualAddress,
   IN UINT  Length,
@@ -2253,7 +2253,7 @@ NdisFreeMemory(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisImmediateReadSharedMemory(
   IN NDIS_HANDLE WrapperConfigurationContext,
   IN ULONG       SharedMemoryAddress,
 NdisImmediateReadSharedMemory(
   IN NDIS_HANDLE WrapperConfigurationContext,
   IN ULONG       SharedMemoryAddress,
@@ -2262,7 +2262,7 @@ NdisImmediateReadSharedMemory(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisImmediateWriteSharedMemory(
   IN NDIS_HANDLE WrapperConfigurationContext,
   IN ULONG       SharedMemoryAddress,
 NdisImmediateWriteSharedMemory(
   IN NDIS_HANDLE WrapperConfigurationContext,
   IN ULONG       SharedMemoryAddress,
@@ -2271,7 +2271,7 @@ NdisImmediateWriteSharedMemory(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMAllocateSharedMemory(
   IN   NDIS_HANDLE  MiniportAdapterHandle,
   IN   ULONG  Length,
 NdisMAllocateSharedMemory(
   IN   NDIS_HANDLE  MiniportAdapterHandle,
   IN   ULONG  Length,
@@ -2281,7 +2281,7 @@ NdisMAllocateSharedMemory(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMAllocateSharedMemoryAsync(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN ULONG  Length,
 NdisMAllocateSharedMemoryAsync(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN ULONG  Length,
@@ -2299,7 +2299,7 @@ NdisMAllocateSharedMemoryAsync(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisUpdateSharedMemory(
   IN NDIS_HANDLE             NdisAdapterHandle,
   IN ULONG                   Length,
 NdisUpdateSharedMemory(
   IN NDIS_HANDLE             NdisAdapterHandle,
   IN ULONG                   Length,
@@ -2413,7 +2413,7 @@ NdisUpdateSharedMemory(
   RtlZeroMemory(Destination, Length)
 
 typedef VOID
   RtlZeroMemory(Destination, Length)
 
 typedef VOID
-(NTAPI *NDIS_BLOCK_INITIALIZER) (
+(DDKAPI *NDIS_BLOCK_INITIALIZER) (
     IN  PUCHAR  Block,
     IN  SIZE_T  NumberOfBytes
     );
     IN  PUCHAR  Block,
     IN  SIZE_T  NumberOfBytes
     );
@@ -2422,7 +2422,7 @@ typedef VOID
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisOpenConfiguration(
   OUT  PNDIS_STATUS  Status,
   OUT  PNDIS_HANDLE  ConfigurationHandle,
 NdisOpenConfiguration(
   OUT  PNDIS_STATUS  Status,
   OUT  PNDIS_HANDLE  ConfigurationHandle,
@@ -2430,7 +2430,7 @@ NdisOpenConfiguration(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReadNetworkAddress(
   OUT PNDIS_STATUS  Status,
   OUT PVOID  *NetworkAddress,
 NdisReadNetworkAddress(
   OUT PNDIS_STATUS  Status,
   OUT PVOID  *NetworkAddress,
@@ -2439,7 +2439,7 @@ NdisReadNetworkAddress(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReadEisaSlotInformation(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
 NdisReadEisaSlotInformation(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
@@ -2448,7 +2448,7 @@ NdisReadEisaSlotInformation(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReadEisaSlotInformationEx(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
 NdisReadEisaSlotInformationEx(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
@@ -2458,7 +2458,7 @@ NdisReadEisaSlotInformationEx(
 
 NDISAPI
 ULONG
 
 NDISAPI
 ULONG
-NTAPI
+DDKAPI
 NdisReadPciSlotInformation(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  SlotNumber,
 NdisReadPciSlotInformation(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  SlotNumber,
@@ -2468,7 +2468,7 @@ NdisReadPciSlotInformation(
 
 NDISAPI
 ULONG
 
 NDISAPI
 ULONG
-NTAPI
+DDKAPI
 NdisWritePciSlotInformation(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  SlotNumber,
 NdisWritePciSlotInformation(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  SlotNumber,
@@ -2482,7 +2482,7 @@ NdisWritePciSlotInformation(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisAnsiStringToUnicodeString(
   IN OUT PNDIS_STRING  DestinationString,
   IN PNDIS_ANSI_STRING  SourceString);
 NdisAnsiStringToUnicodeString(
   IN OUT PNDIS_STRING  DestinationString,
   IN PNDIS_ANSI_STRING  SourceString);
@@ -2499,21 +2499,21 @@ NdisAnsiStringToUnicodeString(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisInitAnsiString(
   IN OUT PNDIS_ANSI_STRING  DestinationString,
   IN PCSTR  SourceString);
 
 NDISAPI
 VOID
 NdisInitAnsiString(
   IN OUT PNDIS_ANSI_STRING  DestinationString,
   IN PCSTR  SourceString);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisInitUnicodeString(
   IN OUT PNDIS_STRING  DestinationString,
   IN PCWSTR  SourceString);
 
 NDISAPI
 NDIS_STATUS
 NdisInitUnicodeString(
   IN OUT PNDIS_STRING  DestinationString,
   IN PCWSTR  SourceString);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisUnicodeStringToAnsiString(
   IN OUT PNDIS_ANSI_STRING  DestinationString,
   IN PNDIS_STRING  SourceString);
 NdisUnicodeStringToAnsiString(
   IN OUT PNDIS_ANSI_STRING  DestinationString,
   IN PNDIS_STRING  SourceString);
@@ -2526,37 +2526,37 @@ NdisUnicodeStringToAnsiString(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAllocateSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
 NdisAllocateSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisFreeSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
 NdisFreeSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAcquireSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
 NdisAcquireSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReleaseSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
 NdisReleaseSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDprAcquireSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
 NdisDprAcquireSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDprReleaseSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
 NdisDprReleaseSpinLock(
   IN PNDIS_SPIN_LOCK  SpinLock);
 
@@ -2821,13 +2821,13 @@ NdisDprReleaseSpinLock(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCloseConfiguration(
   IN NDIS_HANDLE  ConfigurationHandle);
 
 NDISAPI
 VOID
 NdisCloseConfiguration(
   IN NDIS_HANDLE  ConfigurationHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReadConfiguration(
   OUT  PNDIS_STATUS  Status,
   OUT  PNDIS_CONFIGURATION_PARAMETER  *ParameterValue,
 NdisReadConfiguration(
   OUT  PNDIS_STATUS  Status,
   OUT  PNDIS_CONFIGURATION_PARAMETER  *ParameterValue,
@@ -2837,7 +2837,7 @@ NdisReadConfiguration(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisWriteConfiguration(
   OUT  PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
 NdisWriteConfiguration(
   OUT  PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
@@ -2846,7 +2846,7 @@ NdisWriteConfiguration(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-__cdecl
+DDKCDECLAPI
 NdisWriteErrorLogEntry(
        IN NDIS_HANDLE  NdisAdapterHandle,
        IN NDIS_ERROR_CODE  ErrorCode,
 NdisWriteErrorLogEntry(
        IN NDIS_HANDLE  NdisAdapterHandle,
        IN NDIS_ERROR_CODE  ErrorCode,
@@ -2862,18 +2862,18 @@ NdisWriteErrorLogEntry(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisGetCurrentSystemTime(
   IN PLARGE_INTEGER  pSystemTime);
 
 NDISAPI
 CCHAR
 NdisGetCurrentSystemTime(
   IN PLARGE_INTEGER  pSystemTime);
 
 NDISAPI
 CCHAR
-NTAPI
+DDKAPI
 NdisSystemProcessorCount(VOID);
 
 NDISAPI
 VOID
 NdisSystemProcessorCount(VOID);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisGetCurrentProcessorCpuUsage(
   OUT PULONG  pCpuUsage);
 
 NdisGetCurrentProcessorCpuUsage(
   OUT PULONG  pCpuUsage);
 
@@ -2902,7 +2902,7 @@ NdisGetCurrentProcessorCpuUsage(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMFreeSharedMemory(
        IN NDIS_HANDLE  MiniportAdapterHandle,
        IN ULONG  Length,
 NdisMFreeSharedMemory(
        IN NDIS_HANDLE  MiniportAdapterHandle,
        IN ULONG  Length,
@@ -2912,7 +2912,7 @@ NdisMFreeSharedMemory(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMWanIndicateReceive(
        OUT PNDIS_STATUS  Status,
        IN NDIS_HANDLE  MiniportAdapterHandle,
 NdisMWanIndicateReceive(
        OUT PNDIS_STATUS  Status,
        IN NDIS_HANDLE  MiniportAdapterHandle,
@@ -2922,13 +2922,13 @@ NdisMWanIndicateReceive(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMWanIndicateReceiveComplete(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 VOID
 NdisMWanIndicateReceiveComplete(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMWanSendComplete(
        IN NDIS_HANDLE  MiniportAdapterHandle,
        IN PNDIS_WAN_PACKET  Packet,
 NdisMWanSendComplete(
        IN NDIS_HANDLE  MiniportAdapterHandle,
        IN PNDIS_WAN_PACKET  Packet,
@@ -2936,7 +2936,7 @@ NdisMWanSendComplete(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisPciAssignResources(
        IN NDIS_HANDLE  NdisMacHandle,
        IN NDIS_HANDLE  NdisWrapperHandle,
 NdisPciAssignResources(
        IN NDIS_HANDLE  NdisMacHandle,
        IN NDIS_HANDLE  NdisWrapperHandle,
@@ -2949,7 +2949,7 @@ NdisPciAssignResources(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAcquireReadWriteLock(
   IN PNDIS_RW_LOCK  Lock,
   IN BOOLEAN  fWrite,
 NdisAcquireReadWriteLock(
   IN PNDIS_RW_LOCK  Lock,
   IN BOOLEAN  fWrite,
@@ -2957,7 +2957,7 @@ NdisAcquireReadWriteLock(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisAllocateMemoryWithTag(
   OUT PVOID  *VirtualAddress,
   IN UINT  Length,
 NdisAllocateMemoryWithTag(
   OUT PVOID  *VirtualAddress,
   IN UINT  Length,
@@ -2965,7 +2965,7 @@ NdisAllocateMemoryWithTag(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisAllocatePacketPoolEx(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  PoolHandle,
 NdisAllocatePacketPoolEx(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  PoolHandle,
@@ -2975,7 +2975,7 @@ NdisAllocatePacketPoolEx(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCompletePnPEvent(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle,
 NdisCompletePnPEvent(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle,
@@ -2983,7 +2983,7 @@ NdisCompletePnPEvent(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisGetCurrentProcessorCounts(
   OUT PULONG  pIdleCount,
   OUT PULONG  pKernelAndUser,
 NdisGetCurrentProcessorCounts(
   OUT PULONG  pIdleCount,
   OUT PULONG  pKernelAndUser,
@@ -2991,39 +2991,39 @@ NdisGetCurrentProcessorCounts(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisGetDriverHandle(
   IN PNDIS_HANDLE  NdisBindingHandle,
   OUT PNDIS_HANDLE  NdisDriverHandle);
 
 NDISAPI
 PNDIS_PACKET
 NdisGetDriverHandle(
   IN PNDIS_HANDLE  NdisBindingHandle,
   OUT PNDIS_HANDLE  NdisDriverHandle);
 
 NDISAPI
 PNDIS_PACKET
-NTAPI
+DDKAPI
 NdisGetReceivedPacket(
   IN PNDIS_HANDLE  NdisBindingHandle,
   IN PNDIS_HANDLE  MacContext);
 
 NDISAPI
 VOID
 NdisGetReceivedPacket(
   IN PNDIS_HANDLE  NdisBindingHandle,
   IN PNDIS_HANDLE  MacContext);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisGetSystemUpTime(
   OUT PULONG  pSystemUpTime);
 
 NDISAPI
 VOID
 NdisGetSystemUpTime(
   OUT PULONG  pSystemUpTime);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisInitializeReadWriteLock(
   IN PNDIS_RW_LOCK  Lock);
 
 NDISAPI
 NDIS_STATUS
 NdisInitializeReadWriteLock(
   IN PNDIS_RW_LOCK  Lock);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMDeregisterDevice(
   IN NDIS_HANDLE  NdisDeviceHandle);
 
 NDISAPI
 VOID
 NdisMDeregisterDevice(
   IN NDIS_HANDLE  NdisDeviceHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMGetDeviceProperty(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN OUT PDEVICE_OBJECT  *PhysicalDeviceObject  OPTIONAL,
 NdisMGetDeviceProperty(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN OUT PDEVICE_OBJECT  *PhysicalDeviceObject  OPTIONAL,
@@ -3034,7 +3034,7 @@ NdisMGetDeviceProperty(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMInitializeScatterGatherDma(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN BOOLEAN  Dma64BitAddresses,
 NdisMInitializeScatterGatherDma(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN BOOLEAN  Dma64BitAddresses,
@@ -3042,20 +3042,20 @@ NdisMInitializeScatterGatherDma(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMPromoteMiniport(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisMPromoteMiniport(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMQueryAdapterInstanceName(
   OUT PNDIS_STRING  AdapterInstanceName,
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisMQueryAdapterInstanceName(
   OUT PNDIS_STRING  AdapterInstanceName,
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMRegisterDevice(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PNDIS_STRING  DeviceName,
 NdisMRegisterDevice(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PNDIS_STRING  DeviceName,
@@ -3066,27 +3066,27 @@ NdisMRegisterDevice(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMRegisterUnloadHandler(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PDRIVER_UNLOAD  UnloadHandler);
 
 NDISAPI
 NDIS_STATUS
 NdisMRegisterUnloadHandler(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PDRIVER_UNLOAD  UnloadHandler);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMRemoveMiniport(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisMRemoveMiniport(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMSetMiniportSecondary(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  PrimaryMiniportAdapterHandle);
 
 NDISAPI
 VOID
 NdisMSetMiniportSecondary(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  PrimaryMiniportAdapterHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisOpenConfigurationKeyByIndex(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  ConfigurationHandle,
 NdisOpenConfigurationKeyByIndex(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  ConfigurationHandle,
@@ -3096,7 +3096,7 @@ NdisOpenConfigurationKeyByIndex(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisOpenConfigurationKeyByName(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  ConfigurationHandle,
 NdisOpenConfigurationKeyByName(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  ConfigurationHandle,
@@ -3105,20 +3105,20 @@ NdisOpenConfigurationKeyByName(
 
 NDISAPI
 UINT
 
 NDISAPI
 UINT
-NTAPI
+DDKAPI
 NdisPacketPoolUsage(
   IN NDIS_HANDLE  PoolHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisPacketPoolUsage(
   IN NDIS_HANDLE  PoolHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisQueryAdapterInstanceName(
   OUT PNDIS_STRING  AdapterInstanceName,
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 ULONG
 NdisQueryAdapterInstanceName(
   OUT PNDIS_STRING  AdapterInstanceName,
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 ULONG
-NTAPI
+DDKAPI
 NdisReadPcmciaAttributeMemory(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  Offset,
 NdisReadPcmciaAttributeMemory(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  Offset,
@@ -3127,14 +3127,14 @@ NdisReadPcmciaAttributeMemory(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReleaseReadWriteLock(
   IN PNDIS_RW_LOCK  Lock,
   IN PLOCK_STATE  LockState);
 
 NDISAPI
 NDIS_STATUS
 NdisReleaseReadWriteLock(
   IN PNDIS_RW_LOCK  Lock,
   IN PLOCK_STATE  LockState);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisWriteEventLogEntry(
   IN PVOID  LogHandle,
   IN NDIS_STATUS  EventCode,
 NdisWriteEventLogEntry(
   IN PVOID  LogHandle,
   IN NDIS_STATUS  EventCode,
@@ -3146,7 +3146,7 @@ NdisWriteEventLogEntry(
 
 NDISAPI
 ULONG
 
 NDISAPI
 ULONG
-NTAPI
+DDKAPI
 NdisWritePcmciaAttributeMemory(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  Offset,
 NdisWritePcmciaAttributeMemory(
   IN NDIS_HANDLE  NdisAdapterHandle,
   IN ULONG  Offset,
@@ -3158,7 +3158,7 @@ NdisWritePcmciaAttributeMemory(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClAddParty(
   IN NDIS_HANDLE  NdisVcHandle,
   IN NDIS_HANDLE  ProtocolPartyContext,
 NdisClAddParty(
   IN NDIS_HANDLE  NdisVcHandle,
   IN NDIS_HANDLE  ProtocolPartyContext,
@@ -3167,13 +3167,13 @@ NdisClAddParty(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClCloseAddressFamily(
   IN NDIS_HANDLE  NdisAfHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisClCloseAddressFamily(
   IN NDIS_HANDLE  NdisAfHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClCloseCall(
   IN NDIS_HANDLE NdisVcHandle,
   IN NDIS_HANDLE NdisPartyHandle  OPTIONAL,
 NdisClCloseCall(
   IN NDIS_HANDLE NdisVcHandle,
   IN NDIS_HANDLE NdisPartyHandle  OPTIONAL,
@@ -3182,13 +3182,13 @@ NdisClCloseCall(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClDeregisterSap(
   IN NDIS_HANDLE  NdisSapHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisClDeregisterSap(
   IN NDIS_HANDLE  NdisSapHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClDropParty(
   IN NDIS_HANDLE  NdisPartyHandle,
   IN PVOID  Buffer  OPTIONAL,
 NdisClDropParty(
   IN NDIS_HANDLE  NdisPartyHandle,
   IN PVOID  Buffer  OPTIONAL,
@@ -3196,7 +3196,7 @@ NdisClDropParty(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisClIncomingCallComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisClIncomingCallComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3204,7 +3204,7 @@ NdisClIncomingCallComplete(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClMakeCall(
   IN NDIS_HANDLE  NdisVcHandle,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
 NdisClMakeCall(
   IN NDIS_HANDLE  NdisVcHandle,
   IN OUT PCO_CALL_PARAMETERS  CallParameters,
@@ -3213,7 +3213,7 @@ NdisClMakeCall(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClModifyCallQoS(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 NdisClModifyCallQoS(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
@@ -3221,7 +3221,7 @@ NdisClModifyCallQoS(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClOpenAddressFamily(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN PCO_ADDRESS_FAMILY  AddressFamily,
 NdisClOpenAddressFamily(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN PCO_ADDRESS_FAMILY  AddressFamily,
@@ -3232,7 +3232,7 @@ NdisClOpenAddressFamily(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisClRegisterSap(
   IN NDIS_HANDLE  NdisAfHandle,
   IN NDIS_HANDLE  ProtocolSapContext,
 NdisClRegisterSap(
   IN NDIS_HANDLE  NdisAfHandle,
   IN NDIS_HANDLE  ProtocolSapContext,
@@ -3244,14 +3244,14 @@ NdisClRegisterSap(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisCmActivateVc(
   IN NDIS_HANDLE  NdisVcHandle,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
 NDISAPI
 VOID
 NdisCmActivateVc(
   IN NDIS_HANDLE  NdisVcHandle,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmAddPartyComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisPartyHandle,
 NdisCmAddPartyComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisPartyHandle,
@@ -3260,14 +3260,14 @@ NdisCmAddPartyComplete(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmCloseAddressFamilyComplete(
   IN NDIS_STATUS Status,
   IN NDIS_HANDLE NdisAfHandle);
 
 NDISAPI
 VOID
 NdisCmCloseAddressFamilyComplete(
   IN NDIS_STATUS Status,
   IN NDIS_HANDLE NdisAfHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmCloseCallComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisCmCloseCallComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3275,26 +3275,26 @@ NdisCmCloseCallComplete(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisCmDeactivateVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 VOID
 NdisCmDeactivateVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmDeregisterSapComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisSapHandle);
 
 NDISAPI
 VOID
 NdisCmDeregisterSapComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisSapHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmDispatchCallConnected(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisCmDispatchCallConnected(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisCmDispatchIncomingCall(
   IN NDIS_HANDLE  NdisSapHandle,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisCmDispatchIncomingCall(
   IN NDIS_HANDLE  NdisSapHandle,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3302,14 +3302,14 @@ NdisCmDispatchIncomingCall(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmDispatchIncomingCallQoSChange(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 NDISAPI
 VOID
 NdisCmDispatchIncomingCallQoSChange(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmDispatchIncomingCloseCall(
   IN NDIS_STATUS  CloseStatus,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisCmDispatchIncomingCloseCall(
   IN NDIS_STATUS  CloseStatus,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3318,7 +3318,7 @@ NdisCmDispatchIncomingCloseCall(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmDispatchIncomingDropParty(
   IN NDIS_STATUS  DropStatus,
   IN NDIS_HANDLE  NdisPartyHandle,
 NdisCmDispatchIncomingDropParty(
   IN NDIS_STATUS  DropStatus,
   IN NDIS_HANDLE  NdisPartyHandle,
@@ -3327,14 +3327,14 @@ NdisCmDispatchIncomingDropParty(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmDropPartyComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisPartyHandle);
 
 NDISAPI
 VOID
 NdisCmDropPartyComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisPartyHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmMakeCallComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisCmMakeCallComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3344,7 +3344,7 @@ NdisCmMakeCallComplete(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmModifyCallQoSComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisCmModifyCallQoSComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3352,7 +3352,7 @@ NdisCmModifyCallQoSComplete(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmOpenAddressFamilyComplete(
   IN NDIS_STATUS Status,
   IN NDIS_HANDLE NdisAfHandle,
 NdisCmOpenAddressFamilyComplete(
   IN NDIS_STATUS Status,
   IN NDIS_HANDLE NdisAfHandle,
@@ -3360,7 +3360,7 @@ NdisCmOpenAddressFamilyComplete(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisCmRegisterAddressFamily(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN PCO_ADDRESS_FAMILY  AddressFamily,
 NdisCmRegisterAddressFamily(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN PCO_ADDRESS_FAMILY  AddressFamily,
@@ -3369,7 +3369,7 @@ NdisCmRegisterAddressFamily(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCmRegisterSapComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisSapHandle,
 NdisCmRegisterSapComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisSapHandle,
@@ -3378,14 +3378,14 @@ NdisCmRegisterSapComplete(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMCmActivateVc(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 NDISAPI
 NDIS_STATUS
 NdisMCmActivateVc(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PCO_CALL_PARAMETERS  CallParameters);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMCmCreateVc(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisAfHandle,
 NdisMCmCreateVc(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisAfHandle,
@@ -3394,19 +3394,19 @@ NdisMCmCreateVc(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMCmDeactivateVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisMCmDeactivateVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMCmDeleteVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisMCmDeleteVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMCmRegisterAddressFamily(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PCO_ADDRESS_FAMILY  AddressFamily,
 NdisMCmRegisterAddressFamily(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PCO_ADDRESS_FAMILY  AddressFamily,
@@ -3415,7 +3415,7 @@ NdisMCmRegisterAddressFamily(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMCmRequest(
   IN NDIS_HANDLE  NdisAfHandle,
   IN NDIS_HANDLE  NdisVcHandle  OPTIONAL,
 NdisMCmRequest(
   IN NDIS_HANDLE  NdisAfHandle,
   IN NDIS_HANDLE  NdisVcHandle  OPTIONAL,
@@ -3427,7 +3427,7 @@ NdisMCmRequest(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisCoCreateVc(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN NDIS_HANDLE  NdisAfHandle  OPTIONAL,
 NdisCoCreateVc(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN NDIS_HANDLE  NdisAfHandle  OPTIONAL,
@@ -3436,13 +3436,13 @@ NdisCoCreateVc(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisCoDeleteVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisCoDeleteVc(
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisCoRequest(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN NDIS_HANDLE  NdisAfHandle  OPTIONAL,
 NdisCoRequest(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN NDIS_HANDLE  NdisAfHandle  OPTIONAL,
@@ -3452,7 +3452,7 @@ NdisCoRequest(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCoRequestComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisAfHandle,
 NdisCoRequestComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisAfHandle,
@@ -3462,7 +3462,7 @@ NdisCoRequestComplete(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCoSendPackets(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PPNDIS_PACKET  PacketArray,
 NdisCoSendPackets(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PPNDIS_PACKET  PacketArray,
@@ -3470,7 +3470,7 @@ NdisCoSendPackets(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCoActivateVcComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisMCoActivateVcComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3478,14 +3478,14 @@ NdisMCoActivateVcComplete(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCoDeactivateVcComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 VOID
 NdisMCoDeactivateVcComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCoIndicateReceivePacket(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PPNDIS_PACKET  PacketArray,
 NdisMCoIndicateReceivePacket(
   IN NDIS_HANDLE  NdisVcHandle,
   IN PPNDIS_PACKET  PacketArray,
@@ -3493,7 +3493,7 @@ NdisMCoIndicateReceivePacket(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCoIndicateStatus(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisVcHandle  OPTIONAL,
 NdisMCoIndicateStatus(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisVcHandle  OPTIONAL,
@@ -3503,13 +3503,13 @@ NdisMCoIndicateStatus(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCoReceiveComplete(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 VOID
 NdisMCoReceiveComplete(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCoRequestComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  MiniportAdapterHandle,
 NdisMCoRequestComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  MiniportAdapterHandle,
@@ -3517,7 +3517,7 @@ NdisMCoRequestComplete(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCoSendComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
 NdisMCoSendComplete(
   IN NDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisVcHandle,
@@ -3528,53 +3528,53 @@ NdisMCoSendComplete(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisIMAssociateMiniport(
   IN NDIS_HANDLE  DriverHandle,
   IN NDIS_HANDLE  ProtocolHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisIMAssociateMiniport(
   IN NDIS_HANDLE  DriverHandle,
   IN NDIS_HANDLE  ProtocolHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisIMCancelInitializeDeviceInstance(
   IN NDIS_HANDLE  DriverHandle,
   IN PNDIS_STRING  DeviceInstance);
 
 NDISAPI
 VOID
 NdisIMCancelInitializeDeviceInstance(
   IN NDIS_HANDLE  DriverHandle,
   IN PNDIS_STRING  DeviceInstance);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisIMCopySendCompletePerPacketInfo(
   IN PNDIS_PACKET  DstPacket,
   IN PNDIS_PACKET  SrcPacket);
 
 NDISAPI
 VOID
 NdisIMCopySendCompletePerPacketInfo(
   IN PNDIS_PACKET  DstPacket,
   IN PNDIS_PACKET  SrcPacket);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisIMCopySendPerPacketInfo(
   IN PNDIS_PACKET  DstPacket,
   IN PNDIS_PACKET  SrcPacket);
 
 NDISAPI
 VOID
 NdisIMCopySendPerPacketInfo(
   IN PNDIS_PACKET  DstPacket,
   IN PNDIS_PACKET  SrcPacket);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisIMDeregisterLayeredMiniport(
   IN NDIS_HANDLE  DriverHandle);
 
 NDISAPI
 NDIS_HANDLE
 NdisIMDeregisterLayeredMiniport(
   IN NDIS_HANDLE  DriverHandle);
 
 NDISAPI
 NDIS_HANDLE
-NTAPI
+DDKAPI
 NdisIMGetBindingContext(
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 NDIS_HANDLE
 NdisIMGetBindingContext(
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 NDIS_HANDLE
-NTAPI
+DDKAPI
 NdisIMGetDeviceContext(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisIMGetDeviceContext(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisIMInitializeDeviceInstanceEx(
   IN NDIS_HANDLE  DriverHandle,
   IN PNDIS_STRING  DriverInstance,
 NdisIMInitializeDeviceInstanceEx(
   IN NDIS_HANDLE  DriverHandle,
   IN PNDIS_STRING  DriverInstance,
@@ -3582,14 +3582,14 @@ NdisIMInitializeDeviceInstanceEx(
 
 NDISAPI
 PSINGLE_LIST_ENTRY
 
 NDISAPI
 PSINGLE_LIST_ENTRY
-NTAPI
+DDKAPI
 NdisInterlockedPopEntrySList(
   IN PSLIST_HEADER  ListHead,
   IN PKSPIN_LOCK  Lock);
 
 NDISAPI
 PSINGLE_LIST_ENTRY
 NdisInterlockedPopEntrySList(
   IN PSLIST_HEADER  ListHead,
   IN PKSPIN_LOCK  Lock);
 
 NDISAPI
 PSINGLE_LIST_ENTRY
-NTAPI
+DDKAPI
 NdisInterlockedPushEntrySList(
   IN PSLIST_HEADER  ListHead,
   IN PSINGLE_LIST_ENTRY  ListEntry,
 NdisInterlockedPushEntrySList(
   IN PSLIST_HEADER  ListHead,
   IN PSINGLE_LIST_ENTRY  ListEntry,
@@ -3597,7 +3597,7 @@ NdisInterlockedPushEntrySList(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisQueryBufferSafe(
   IN PNDIS_BUFFER  Buffer,
   OUT PVOID  *VirtualAddress  OPTIONAL,
 NdisQueryBufferSafe(
   IN PNDIS_BUFFER  Buffer,
   OUT PVOID  *VirtualAddress  OPTIONAL,
@@ -3607,27 +3607,27 @@ NdisQueryBufferSafe(
 /* Prototypes for NDIS_MINIPORT_CHARACTERISTICS */
 
 typedef BOOLEAN
 /* Prototypes for NDIS_MINIPORT_CHARACTERISTICS */
 
 typedef BOOLEAN
-(NTAPI *W_CHECK_FOR_HANG_HANDLER)(
+(DDKAPI *W_CHECK_FOR_HANG_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
-(NTAPI *W_DISABLE_INTERRUPT_HANDLER)(
+(DDKAPI *W_DISABLE_INTERRUPT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
-(NTAPI *W_ENABLE_INTERRUPT_HANDLER)(
+(DDKAPI *W_ENABLE_INTERRUPT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
-(NTAPI *W_HALT_HANDLER)(
+(DDKAPI *W_HALT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef VOID
-(NTAPI *W_HANDLE_INTERRUPT_HANDLER)(
+(DDKAPI *W_HANDLE_INTERRUPT_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef NDIS_STATUS
-(NTAPI *W_INITIALIZE_HANDLER)(
+(DDKAPI *W_INITIALIZE_HANDLER)(
   OUT PNDIS_STATUS  OpenErrorStatus,
   OUT PUINT  SelectedMediumIndex,
   IN PNDIS_MEDIUM  MediumArray,
   OUT PNDIS_STATUS  OpenErrorStatus,
   OUT PUINT  SelectedMediumIndex,
   IN PNDIS_MEDIUM  MediumArray,
@@ -3636,13 +3636,13 @@ typedef NDIS_STATUS
   IN NDIS_HANDLE  WrapperConfigurationContext);
 
 typedef VOID
   IN NDIS_HANDLE  WrapperConfigurationContext);
 
 typedef VOID
-(NTAPI *W_ISR_HANDLER)(
+(DDKAPI *W_ISR_HANDLER)(
   OUT PBOOLEAN  InterruptRecognized,
   OUT PBOOLEAN  QueueMiniportHandleInterrupt,
   IN   NDIS_HANDLE  MiniportAdapterContext);
 
 typedef NDIS_STATUS
   OUT PBOOLEAN  InterruptRecognized,
   OUT PBOOLEAN  QueueMiniportHandleInterrupt,
   IN   NDIS_HANDLE  MiniportAdapterContext);
 
 typedef NDIS_STATUS
-(NTAPI *W_QUERY_INFORMATION_HANDLER)(
+(DDKAPI *W_QUERY_INFORMATION_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_OID  Oid,
   IN PVOID  InformationBuffer,
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_OID  Oid,
   IN PVOID  InformationBuffer,
@@ -3651,30 +3651,30 @@ typedef NDIS_STATUS
   OUT PULONG  BytesNeeded);
 
 typedef NDIS_STATUS
   OUT PULONG  BytesNeeded);
 
 typedef NDIS_STATUS
-(NTAPI *W_RECONFIGURE_HANDLER)(
+(DDKAPI *W_RECONFIGURE_HANDLER)(
   OUT PNDIS_STATUS  OpenErrorStatus,
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE       WrapperConfigurationContext);
 
 typedef NDIS_STATUS
   OUT PNDIS_STATUS  OpenErrorStatus,
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE       WrapperConfigurationContext);
 
 typedef NDIS_STATUS
-(NTAPI *W_RESET_HANDLER)(
+(DDKAPI *W_RESET_HANDLER)(
   OUT PBOOLEAN  AddressingReset,
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef NDIS_STATUS
   OUT PBOOLEAN  AddressingReset,
   IN NDIS_HANDLE  MiniportAdapterContext);
 
 typedef NDIS_STATUS
-(NTAPI *W_SEND_HANDLER)(
+(DDKAPI *W_SEND_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PNDIS_PACKET  Packet,
   IN UINT  Flags);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PNDIS_PACKET  Packet,
   IN UINT  Flags);
 
 typedef NDIS_STATUS
-(NTAPI *WM_SEND_HANDLER)(
+(DDKAPI *WM_SEND_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  NdisLinkHandle,
   IN PNDIS_WAN_PACKET  Packet);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  NdisLinkHandle,
   IN PNDIS_WAN_PACKET  Packet);
 
 typedef NDIS_STATUS
-(NTAPI *W_SET_INFORMATION_HANDLER)(
+(DDKAPI *W_SET_INFORMATION_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_OID  Oid,
   IN PVOID  InformationBuffer,
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_OID  Oid,
   IN PVOID  InformationBuffer,
@@ -3683,7 +3683,7 @@ typedef NDIS_STATUS
   OUT PULONG  BytesNeeded);
 
 typedef NDIS_STATUS
   OUT PULONG  BytesNeeded);
 
 typedef NDIS_STATUS
-(NTAPI *W_TRANSFER_DATA_HANDLER)(
+(DDKAPI *W_TRANSFER_DATA_HANDLER)(
   OUT PNDIS_PACKET  Packet,
   OUT PUINT  BytesTransferred,
   IN NDIS_HANDLE  MiniportAdapterContext,
   OUT PNDIS_PACKET  Packet,
   OUT PUINT  BytesTransferred,
   IN NDIS_HANDLE  MiniportAdapterContext,
@@ -3692,7 +3692,7 @@ typedef NDIS_STATUS
   IN UINT  BytesToTransfer);
 
 typedef NDIS_STATUS
   IN UINT  BytesToTransfer);
 
 typedef NDIS_STATUS
-(NTAPI *WM_TRANSFER_DATA_HANDLER)(
+(DDKAPI *WM_TRANSFER_DATA_HANDLER)(
   VOID);
 
 
   VOID);
 
 
@@ -3724,18 +3724,18 @@ typedef struct _NDIS30_MINIPORT_CHARACTERISTICS {
 /* Extensions for NDIS 4.0 miniports */
 
 typedef VOID
 /* Extensions for NDIS 4.0 miniports */
 
 typedef VOID
-(NTAPI *W_SEND_PACKETS_HANDLER)(
+(DDKAPI *W_SEND_PACKETS_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
 typedef VOID
-(NTAPI *W_RETURN_PACKET_HANDLER)(
+(DDKAPI *W_RETURN_PACKET_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PNDIS_PACKET  Packet);
 
 typedef VOID
-(NTAPI *W_ALLOCATE_COMPLETE_HANDLER)(
+(DDKAPI *W_ALLOCATE_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  VirtualAddress,
   IN PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  VirtualAddress,
   IN PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
@@ -3768,32 +3768,32 @@ typedef struct _NDIS40_MINIPORT_CHARACTERISTICS {
 /* Extensions for NDIS 5.0 miniports */
 
 typedef NDIS_STATUS
 /* Extensions for NDIS 5.0 miniports */
 
 typedef NDIS_STATUS
-(NTAPI *W_CO_CREATE_VC_HANDLER)(
+(DDKAPI *W_CO_CREATE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  NdisVcHandle,
   OUT PNDIS_HANDLE  MiniportVcContext);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  NdisVcHandle,
   OUT PNDIS_HANDLE  MiniportVcContext);
 
 typedef NDIS_STATUS
-(NTAPI *W_CO_DELETE_VC_HANDLER)(
+(DDKAPI *W_CO_DELETE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MiniportVcContext);
 
 typedef NDIS_STATUS
-(NTAPI *W_CO_ACTIVATE_VC_HANDLER)(
+(DDKAPI *W_CO_ACTIVATE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MiniportVcContext,
   IN OUT PCO_CALL_PARAMETERS  CallParameters);
 
 typedef NDIS_STATUS
-(NTAPI *W_CO_DEACTIVATE_VC_HANDLER)(
+(DDKAPI *W_CO_DEACTIVATE_VC_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportVcContext);
 
 typedef VOID
-(NTAPI *W_CO_SEND_PACKETS_HANDLER)(
+(DDKAPI *W_CO_SEND_PACKETS_HANDLER)(
   IN NDIS_HANDLE  MiniportVcContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MiniportVcContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
 typedef NDIS_STATUS
-(NTAPI *W_CO_REQUEST_HANDLER)(
+(DDKAPI *W_CO_REQUEST_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  MiniportVcContext  OPTIONAL,
   IN OUT PNDIS_REQUEST  NdisRequest);
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_HANDLE  MiniportVcContext  OPTIONAL,
   IN OUT PNDIS_REQUEST  NdisRequest);
@@ -3830,19 +3830,19 @@ typedef struct _NDIS50_MINIPORT_CHARACTERISTICS {
 /* Extensions for NDIS 5.1 miniports */
 
 typedef VOID
 /* Extensions for NDIS 5.1 miniports */
 
 typedef VOID
-(NTAPI *W_CANCEL_SEND_PACKETS_HANDLER)(
+(DDKAPI *W_CANCEL_SEND_PACKETS_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  CancelId);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  CancelId);
 
 typedef VOID
-(NTAPI *W_PNP_EVENT_NOTIFY_HANDLER)(
+(DDKAPI *W_PNP_EVENT_NOTIFY_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_DEVICE_PNP_EVENT  PnPEvent,
   IN PVOID  InformationBuffer,
   IN ULONG  InformationBufferLength);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN NDIS_DEVICE_PNP_EVENT  PnPEvent,
   IN PVOID  InformationBuffer,
   IN ULONG  InformationBufferLength);
 
 typedef VOID
-(NTAPI *W_MINIPORT_SHUTDOWN_HANDLER)(
+(DDKAPI *W_MINIPORT_SHUTDOWN_HANDLER)(
   IN PVOID  ShutdownContext);
 
 #ifdef __cplusplus
   IN PVOID  ShutdownContext);
 
 #ifdef __cplusplus
@@ -3887,12 +3887,12 @@ typedef struct _NDIS_MINIPORT_CHARACTERISTICS {
 
 
 typedef NDIS_STATUS
 
 
 typedef NDIS_STATUS
-(NTAPI *SEND_HANDLER)(
+(DDKAPI *SEND_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle,
   IN PNDIS_PACKET  Packet);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MacBindingHandle,
   IN PNDIS_PACKET  Packet);
 
 typedef NDIS_STATUS
-(NTAPI *TRANSFER_DATA_HANDLER)(
+(DDKAPI *TRANSFER_DATA_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle,
   IN NDIS_HANDLE  MacReceiveContext,
   IN UINT  ByteOffset,
   IN NDIS_HANDLE  MacBindingHandle,
   IN NDIS_HANDLE  MacReceiveContext,
   IN UINT  ByteOffset,
@@ -3901,11 +3901,11 @@ typedef NDIS_STATUS
   OUT PUINT  BytesTransferred);
 
 typedef NDIS_STATUS
   OUT PUINT  BytesTransferred);
 
 typedef NDIS_STATUS
-(NTAPI *RESET_HANDLER)(
+(DDKAPI *RESET_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle);
 
 typedef NDIS_STATUS
   IN NDIS_HANDLE  MacBindingHandle);
 
 typedef NDIS_STATUS
-(NTAPI *REQUEST_HANDLER)(
+(DDKAPI *REQUEST_HANDLER)(
   IN NDIS_HANDLE   MacBindingHandle,
   IN PNDIS_REQUEST   NdisRequest);
 
   IN NDIS_HANDLE   MacBindingHandle,
   IN PNDIS_REQUEST   NdisRequest);
 
@@ -3914,11 +3914,11 @@ typedef NDIS_STATUS
 /* Structures available only to full MAC drivers */
 
 typedef BOOLEAN
 /* Structures available only to full MAC drivers */
 
 typedef BOOLEAN
-(NTAPI *PNDIS_INTERRUPT_SERVICE)(
+(DDKAPI *PNDIS_INTERRUPT_SERVICE)(
   IN PVOID  InterruptContext);
 
 typedef VOID
   IN PVOID  InterruptContext);
 
 typedef VOID
-(NTAPI *PNDIS_DEFERRED_PROCESSING)(
+(DDKAPI *PNDIS_DEFERRED_PROCESSING)(
   IN PVOID  SystemSpecific1,
   IN PVOID  InterruptContext,
   IN PVOID  SystemSpecific2,
   IN PVOID  SystemSpecific1,
   IN PVOID  InterruptContext,
   IN PVOID  SystemSpecific2,
@@ -4012,11 +4012,11 @@ typedef struct _NDIS_BIND_PATHS {
 
 
 typedef VOID
 
 
 typedef VOID
-(NTAPI *ETH_RCV_COMPLETE_HANDLER)(
+(DDKAPI *ETH_RCV_COMPLETE_HANDLER)(
   IN PETH_FILTER  Filter);
 
 typedef VOID
   IN PETH_FILTER  Filter);
 
 typedef VOID
-(NTAPI *ETH_RCV_INDICATE_HANDLER)(
+(DDKAPI *ETH_RCV_INDICATE_HANDLER)(
   IN PETH_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PCHAR  Address,
   IN PETH_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PCHAR  Address,
@@ -4027,11 +4027,11 @@ typedef VOID
   IN UINT  PacketSize);
 
 typedef VOID
   IN UINT  PacketSize);
 
 typedef VOID
-(NTAPI *FDDI_RCV_COMPLETE_HANDLER)(
+(DDKAPI *FDDI_RCV_COMPLETE_HANDLER)(
   IN PFDDI_FILTER  Filter);
 
 typedef VOID
   IN PFDDI_FILTER  Filter);
 
 typedef VOID
-(NTAPI *FDDI_RCV_INDICATE_HANDLER)(
+(DDKAPI *FDDI_RCV_INDICATE_HANDLER)(
   IN PFDDI_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PCHAR  Address,
   IN PFDDI_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PCHAR  Address,
@@ -4043,17 +4043,17 @@ typedef VOID
   IN UINT  PacketSize);
 
 typedef VOID
   IN UINT  PacketSize);
 
 typedef VOID
-(NTAPI *FILTER_PACKET_INDICATION_HANDLER)(
+(DDKAPI *FILTER_PACKET_INDICATION_HANDLER)(
   IN NDIS_HANDLE  Miniport,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
 typedef VOID
   IN NDIS_HANDLE  Miniport,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
 
 typedef VOID
-(NTAPI *TR_RCV_COMPLETE_HANDLER)(
+(DDKAPI *TR_RCV_COMPLETE_HANDLER)(
   IN PTR_FILTER  Filter);
 
 typedef VOID
   IN PTR_FILTER  Filter);
 
 typedef VOID
-(NTAPI *TR_RCV_INDICATE_HANDLER)(
+(DDKAPI *TR_RCV_INDICATE_HANDLER)(
   IN PTR_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PVOID  HeaderBuffer,
   IN PTR_FILTER  Filter,
   IN NDIS_HANDLE  MacReceiveContext,
   IN PVOID  HeaderBuffer,
@@ -4063,12 +4063,12 @@ typedef VOID
   IN UINT  PacketSize);
 
 typedef VOID
   IN UINT  PacketSize);
 
 typedef VOID
-(NTAPI *WAN_RCV_COMPLETE_HANDLER)(
+(DDKAPI *WAN_RCV_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisLinkContext);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisLinkContext);
 
 typedef VOID
-(NTAPI *WAN_RCV_HANDLER)(
+(DDKAPI *WAN_RCV_HANDLER)(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisLinkContext,
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  NdisLinkContext,
@@ -4094,24 +4094,24 @@ typedef NDIS_STATUS
   IN PVOID  WorkItemContext);
 
 typedef VOID
   IN PVOID  WorkItemContext);
 
 typedef VOID
-(NTAPI *NDIS_M_REQ_COMPLETE_HANDLER)(
+(DDKAPI *NDIS_M_REQ_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_STATUS  Status);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_STATUS  Status);
 
 typedef VOID
-(NTAPI *NDIS_M_RESET_COMPLETE_HANDLER)(
+(DDKAPI *NDIS_M_RESET_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_STATUS  Status,
   IN BOOLEAN  AddressingReset);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_STATUS  Status,
   IN BOOLEAN  AddressingReset);
 
 typedef VOID
-(NTAPI *NDIS_M_SEND_COMPLETE_HANDLER)(
+(DDKAPI *NDIS_M_SEND_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status);
 
 typedef VOID
-(NTAPI *NDIS_M_SEND_RESOURCES_HANDLER)(
+(DDKAPI *NDIS_M_SEND_RESOURCES_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 typedef BOOLEAN
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 typedef BOOLEAN
@@ -4119,24 +4119,24 @@ typedef BOOLEAN
   IN PNDIS_MINIPORT_BLOCK  Miniport);
 
 typedef VOID
   IN PNDIS_MINIPORT_BLOCK  Miniport);
 
 typedef VOID
-(NTAPI *NDIS_M_STATUS_HANDLER)(
+(DDKAPI *NDIS_M_STATUS_HANDLER)(
   IN NDIS_HANDLE  MiniportHandle,
   IN NDIS_STATUS  GeneralStatus,
   IN PVOID  StatusBuffer,
   IN UINT  StatusBufferSize);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportHandle,
   IN NDIS_STATUS  GeneralStatus,
   IN PVOID  StatusBuffer,
   IN UINT  StatusBufferSize);
 
 typedef VOID
-(NTAPI *NDIS_M_STS_COMPLETE_HANDLER)(
+(DDKAPI *NDIS_M_STS_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 typedef VOID
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 typedef VOID
-(NTAPI *NDIS_M_TD_COMPLETE_HANDLER)(
+(DDKAPI *NDIS_M_TD_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status,
   IN UINT  BytesTransferred);
 
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PNDIS_PACKET  Packet,
   IN NDIS_STATUS  Status,
   IN UINT  BytesTransferred);
 
-typedef VOID (NTAPI *NDIS_WM_SEND_COMPLETE_HANDLER)(
+typedef VOID (DDKAPI *NDIS_WM_SEND_COMPLETE_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PVOID  Packet,
   IN NDIS_STATUS  Status);
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PVOID  Packet,
   IN NDIS_STATUS  Status);
@@ -4376,14 +4376,14 @@ struct _NDIS_MINIPORT_BLOCK {
 
 /* Handler prototypes for NDIS_OPEN_BLOCK */
 
 
 /* Handler prototypes for NDIS_OPEN_BLOCK */
 
-typedef NDIS_STATUS (NTAPI *WAN_SEND_HANDLER)(
+typedef NDIS_STATUS (DDKAPI *WAN_SEND_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle,
   IN NDIS_HANDLE  LinkHandle,
   IN PVOID  Packet);
 
 /* NDIS 4.0 extension */
 
   IN NDIS_HANDLE  MacBindingHandle,
   IN NDIS_HANDLE  LinkHandle,
   IN PVOID  Packet);
 
 /* NDIS 4.0 extension */
 
-typedef VOID (NTAPI *SEND_PACKETS_HANDLER)(
+typedef VOID (DDKAPI *SEND_PACKETS_HANDLER)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PPNDIS_PACKET  PacketArray,
   IN UINT  NumberOfPackets);
@@ -4466,7 +4466,7 @@ struct _NDIS_OPEN_BLOCK
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisInitializeWrapper(
   OUT PNDIS_HANDLE  NdisWrapperHandle,
   IN PVOID  SystemSpecific1,
 NdisInitializeWrapper(
   OUT PNDIS_HANDLE  NdisWrapperHandle,
   IN PVOID  SystemSpecific1,
@@ -4475,7 +4475,7 @@ NdisInitializeWrapper(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMAllocateMapRegisters(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN UINT  DmaChannel,
 NdisMAllocateMapRegisters(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN UINT  DmaChannel,
@@ -4521,13 +4521,13 @@ NdisMAllocateMapRegisters(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCloseLog(
   IN NDIS_HANDLE  LogHandle);
 
 NDISAPI
 NDIS_STATUS
 NdisMCloseLog(
   IN NDIS_HANDLE  LogHandle);
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMCreateLog(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN UINT  Size,
 NdisMCreateLog(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN UINT  Size,
@@ -4535,19 +4535,19 @@ NdisMCreateLog(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMDeregisterAdapterShutdownHandler(
   IN NDIS_HANDLE  MiniportHandle);
 
 NDISAPI
 VOID
 NdisMDeregisterAdapterShutdownHandler(
   IN NDIS_HANDLE  MiniportHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMDeregisterInterrupt(
   IN PNDIS_MINIPORT_INTERRUPT  Interrupt);
 
 NDISAPI
 VOID
 NdisMDeregisterInterrupt(
   IN PNDIS_MINIPORT_INTERRUPT  Interrupt);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMDeregisterIoPortRange(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN UINT  InitialPort,
 NdisMDeregisterIoPortRange(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN UINT  InitialPort,
@@ -4643,13 +4643,13 @@ NdisMDeregisterIoPortRange(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMFlushLog(
   IN NDIS_HANDLE  LogHandle);
 
 NDISAPI
 VOID
 NdisMFlushLog(
   IN NDIS_HANDLE  LogHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMFreeMapRegisters(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
 NdisMFreeMapRegisters(
   IN NDIS_HANDLE  MiniportAdapterHandle);
 
@@ -4708,7 +4708,7 @@ NdisMFreeMapRegisters(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMMapIoSpace(
   OUT PVOID  *VirtualAddress,
   IN NDIS_HANDLE  MiniportAdapterHandle,
 NdisMMapIoSpace(
   OUT PVOID  *VirtualAddress,
   IN NDIS_HANDLE  MiniportAdapterHandle,
@@ -4726,7 +4726,7 @@ NdisMMapIoSpace(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMRegisterAdapterShutdownHandler(
   IN NDIS_HANDLE  MiniportHandle,
   IN PVOID  ShutdownContext,
 NdisMRegisterAdapterShutdownHandler(
   IN NDIS_HANDLE  MiniportHandle,
   IN PVOID  ShutdownContext,
@@ -4734,7 +4734,7 @@ NdisMRegisterAdapterShutdownHandler(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMRegisterInterrupt(
   OUT PNDIS_MINIPORT_INTERRUPT  Interrupt,
   IN NDIS_HANDLE  MiniportAdapterHandle,
 NdisMRegisterInterrupt(
   OUT PNDIS_MINIPORT_INTERRUPT  Interrupt,
   IN NDIS_HANDLE  MiniportAdapterHandle,
@@ -4746,7 +4746,7 @@ NdisMRegisterInterrupt(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMRegisterIoPortRange(
   OUT PVOID  *PortOffset,
   IN NDIS_HANDLE  MiniportAdapterHandle,
 NdisMRegisterIoPortRange(
   OUT PVOID  *PortOffset,
   IN NDIS_HANDLE  MiniportAdapterHandle,
@@ -4755,7 +4755,7 @@ NdisMRegisterIoPortRange(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMRegisterMiniport(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PNDIS_MINIPORT_CHARACTERISTICS  MiniportCharacteristics,
 NdisMRegisterMiniport(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PNDIS_MINIPORT_CHARACTERISTICS  MiniportCharacteristics,
@@ -4763,14 +4763,14 @@ NdisMRegisterMiniport(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMSetTimer(
   IN PNDIS_MINIPORT_TIMER  Timer,
   IN UINT  MillisecondsToDelay);
 
 NDISAPI
 VOID
 NdisMSetTimer(
   IN PNDIS_MINIPORT_TIMER  Timer,
   IN UINT  MillisecondsToDelay);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMInitializeTimer(
   IN OUT PNDIS_MINIPORT_TIMER Timer,
   IN NDIS_HANDLE MiniportAdapterHandle,
 NdisMInitializeTimer(
   IN OUT PNDIS_MINIPORT_TIMER Timer,
   IN NDIS_HANDLE MiniportAdapterHandle,
@@ -4779,14 +4779,14 @@ NdisMInitializeTimer(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMSetPeriodicTimer(
   IN PNDIS_MINIPORT_TIMER  Timer,
   IN UINT  MillisecondPeriod);
 
 NDISAPI
 VOID
 NdisMSetPeriodicTimer(
   IN PNDIS_MINIPORT_TIMER  Timer,
   IN UINT  MillisecondPeriod);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMCancelTimer(
   IN PNDIS_MINIPORT_TIMER  Timer,
   OUT PBOOLEAN  TimerCancelled);
 NdisMCancelTimer(
   IN PNDIS_MINIPORT_TIMER  Timer,
   OUT PBOOLEAN  TimerCancelled);
@@ -4874,7 +4874,7 @@ NdisMCancelTimer(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMSetAttributesEx(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  MiniportAdapterContext,
 NdisMSetAttributesEx(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN NDIS_HANDLE  MiniportAdapterContext,
@@ -4895,13 +4895,13 @@ NdisMSetAttributesEx(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMSleep(
   IN ULONG  MicrosecondsToSleep);
 
 NDISAPI
 BOOLEAN
 NdisMSleep(
   IN ULONG  MicrosecondsToSleep);
 
 NDISAPI
 BOOLEAN
-NTAPI
+DDKAPI
 NdisMSynchronizeWithInterrupt(
   IN PNDIS_MINIPORT_INTERRUPT  Interrupt,
   IN PVOID  SynchronizeFunction,
 NdisMSynchronizeWithInterrupt(
   IN PNDIS_MINIPORT_INTERRUPT  Interrupt,
   IN PVOID  SynchronizeFunction,
@@ -4950,7 +4950,7 @@ NdisMSynchronizeWithInterrupt(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisMWriteLogData(
   IN NDIS_HANDLE  LogHandle,
   IN PVOID  LogBuffer,
 NdisMWriteLogData(
   IN NDIS_HANDLE  LogHandle,
   IN PVOID  LogBuffer,
@@ -4958,7 +4958,7 @@ NdisMWriteLogData(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMQueryAdapterResources(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
 NdisMQueryAdapterResources(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  WrapperConfigurationContext,
@@ -4967,14 +4967,14 @@ NdisMQueryAdapterResources(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisTerminateWrapper(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PVOID  SystemSpecific);
 
 NDISAPI
 VOID
 NdisTerminateWrapper(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PVOID  SystemSpecific);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisMUnmapIoSpace(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PVOID  VirtualAddress,
 NdisMUnmapIoSpace(
   IN NDIS_HANDLE  MiniportAdapterHandle,
   IN PVOID  VirtualAddress,
@@ -4986,25 +4986,25 @@ NdisMUnmapIoSpace(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisInitializeEvent(
   IN PNDIS_EVENT  Event);
 
 NDISAPI
 VOID
 NdisInitializeEvent(
   IN PNDIS_EVENT  Event);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisSetEvent(
   IN PNDIS_EVENT  Event);
 
 NDISAPI
 VOID
 NdisSetEvent(
   IN PNDIS_EVENT  Event);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisResetEvent(
   IN PNDIS_EVENT  Event);
 
 NDISAPI
 BOOLEAN
 NdisResetEvent(
   IN PNDIS_EVENT  Event);
 
 NDISAPI
 BOOLEAN
-NTAPI
+DDKAPI
 NdisWaitEvent(
   IN PNDIS_EVENT  Event,
   IN UINT  Timeout);
 NdisWaitEvent(
   IN PNDIS_EVENT  Event,
   IN UINT  Timeout);
@@ -5013,7 +5013,7 @@ NdisWaitEvent(
 
 /* NDIS intermediate miniport structures */
 
 
 /* NDIS intermediate miniport structures */
 
-typedef VOID (NTAPI *W_MINIPORT_CALLBACK)(
+typedef VOID (DDKAPI *W_MINIPORT_CALLBACK)(
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  CallbackContext);
 
   IN NDIS_HANDLE  MiniportAdapterContext,
   IN PVOID  CallbackContext);
 
@@ -5023,7 +5023,7 @@ typedef VOID (NTAPI *W_MINIPORT_CALLBACK)(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisIMDeInitializeDeviceInstance(
   IN NDIS_HANDLE NdisMiniportHandle);
 
 NdisIMDeInitializeDeviceInstance(
   IN NDIS_HANDLE NdisMiniportHandle);
 
@@ -5038,7 +5038,7 @@ NdisIMDeInitializeDeviceInstance(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisIMRegisterLayeredMiniport(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PNDIS_MINIPORT_CHARACTERISTICS  MiniportCharacteristics,
 NdisIMRegisterLayeredMiniport(
   IN NDIS_HANDLE  NdisWrapperHandle,
   IN PNDIS_MINIPORT_CHARACTERISTICS  MiniportCharacteristics,
@@ -5050,13 +5050,13 @@ NdisIMRegisterLayeredMiniport(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisFreeDmaChannel(
   IN PNDIS_HANDLE  NdisDmaHandle);
 
 NDISAPI
 VOID
 NdisFreeDmaChannel(
   IN PNDIS_HANDLE  NdisDmaHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisSetupDmaTransfer(
   OUT PNDIS_STATUS  Status,
   IN PNDIS_HANDLE  NdisDmaHandle,
 NdisSetupDmaTransfer(
   OUT PNDIS_STATUS  Status,
   IN PNDIS_HANDLE  NdisDmaHandle,
@@ -5067,7 +5067,7 @@ NdisSetupDmaTransfer(
 
 NDISAPI
 NTSTATUS
 
 NDISAPI
 NTSTATUS
-NTAPI
+DDKAPI
 NdisUpcaseUnicodeString(
   OUT PUNICODE_STRING  DestinationString,
   IN PUNICODE_STRING  SourceString);
 NdisUpcaseUnicodeString(
   OUT PUNICODE_STRING  DestinationString,
   IN PUNICODE_STRING  SourceString);
@@ -5077,7 +5077,7 @@ NdisUpcaseUnicodeString(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisRequest(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle,
 NdisRequest(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle,
@@ -5085,14 +5085,14 @@ NdisRequest(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisReset(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 VOID
 NdisReset(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisSend(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle,
 NdisSend(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle,
@@ -5100,7 +5100,7 @@ NdisSend(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisSendPackets(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN PPNDIS_PACKET  PacketArray,
 NdisSendPackets(
   IN NDIS_HANDLE  NdisBindingHandle,
   IN PPNDIS_PACKET  PacketArray,
@@ -5108,7 +5108,7 @@ NdisSendPackets(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisTransferData(
   OUT PNDIS_STATUS        Status,
   IN NDIS_HANDLE  NdisBindingHandle,
 NdisTransferData(
   OUT PNDIS_STATUS        Status,
   IN NDIS_HANDLE  NdisBindingHandle,
@@ -5120,14 +5120,14 @@ NdisTransferData(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCloseAdapter(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 VOID
 NdisCloseAdapter(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisBindingHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCompleteBindAdapter(
   IN NDIS_HANDLE  BindAdapterContext,
   IN NDIS_STATUS  Status,
 NdisCompleteBindAdapter(
   IN NDIS_HANDLE  BindAdapterContext,
   IN NDIS_STATUS  Status,
@@ -5135,21 +5135,21 @@ NdisCompleteBindAdapter(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisCompleteUnbindAdapter(
   IN NDIS_HANDLE  UnbindAdapterContext,
   IN NDIS_STATUS  Status);
 
 NDISAPI
 VOID
 NdisCompleteUnbindAdapter(
   IN NDIS_HANDLE  UnbindAdapterContext,
   IN NDIS_STATUS  Status);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisDeregisterProtocol(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisProtocolHandle);
 
 NDISAPI
 VOID
 NdisDeregisterProtocol(
   OUT PNDIS_STATUS  Status,
   IN NDIS_HANDLE  NdisProtocolHandle);
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisOpenAdapter(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_STATUS  OpenErrorStatus,
 NdisOpenAdapter(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_STATUS  OpenErrorStatus,
@@ -5165,7 +5165,7 @@ NdisOpenAdapter(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisOpenProtocolConfiguration(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  ConfigurationHandle,
 NdisOpenProtocolConfiguration(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  ConfigurationHandle,
@@ -5173,7 +5173,7 @@ NdisOpenProtocolConfiguration(
 
 NDISAPI
 VOID
 
 NDISAPI
 VOID
-NTAPI
+DDKAPI
 NdisRegisterProtocol(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  NdisProtocolHandle,
 NdisRegisterProtocol(
   OUT PNDIS_STATUS  Status,
   OUT PNDIS_HANDLE  NdisProtocolHandle,
@@ -5182,7 +5182,7 @@ NdisRegisterProtocol(
 
 NDISAPI
 NDIS_STATUS
 
 NDISAPI
 NDIS_STATUS
-NTAPI
+DDKAPI
 NdisScheduleWorkItem(
   IN  PNDIS_WORK_ITEM WorkItem);
 
 NdisScheduleWorkItem(
   IN  PNDIS_WORK_ITEM WorkItem);
 
@@ -5201,20 +5201,20 @@ typedef NDIS_STATUS (*OPEN_ADAPTER_HANDLER)(
   IN UINT  OpenOptions,
   IN PSTRING  AddressingInformation  OPTIONAL);
 
   IN UINT  OpenOptions,
   IN PSTRING  AddressingInformation  OPTIONAL);
 
-typedef NDIS_STATUS (NTAPI *CLOSE_ADAPTER_HANDLER)(
+typedef NDIS_STATUS (DDKAPI *CLOSE_ADAPTER_HANDLER)(
   IN NDIS_HANDLE  MacBindingHandle);
 
   IN NDIS_HANDLE  MacBindingHandle);
 
-typedef NDIS_STATUS (NTAPI *WAN_TRANSFER_DATA_HANDLER)(
+typedef NDIS_STATUS (DDKAPI *WAN_TRANSFER_DATA_HANDLER)(
   VOID);
 
   VOID);
 
-typedef NDIS_STATUS (NTAPI *QUERY_GLOBAL_STATISTICS_HANDLER)(
+typedef NDIS_STATUS (DDKAPI *QUERY_GLOBAL_STATISTICS_HANDLER)(
   IN NDIS_HANDLE  MacAdapterContext,
   IN PNDIS_REQUEST  NdisRequest);
 
   IN NDIS_HANDLE  MacAdapterContext,
   IN PNDIS_REQUEST  NdisRequest);
 
-typedef VOID (NTAPI *UNLOAD_MAC_HANDLER)(
+typedef VOID (DDKAPI *UNLOAD_MAC_HANDLER)(
   IN NDIS_HANDLE  MacMacContext);
 
   IN NDIS_HANDLE  MacMacContext);
 
-typedef NDIS_STATUS (NTAPI *ADD_ADAPTER_HANDLER)(
+typedef NDIS_STATUS (DDKAPI *ADD_ADAPTER_HANDLER)(
   IN NDIS_HANDLE  MacMacContext,
   IN NDIS_HANDLE  WrapperConfigurationContext,
   IN PNDIS_STRING  AdapterName);
   IN NDIS_HANDLE  MacMacContext,
   IN NDIS_HANDLE  WrapperConfigurationContext,
   IN PNDIS_STRING  AdapterName);
index 6622d81..6776d2a 100644 (file)
@@ -36,7 +36,7 @@ extern "C" {
 #define AGP_CAPABILITIES_MAP_PHYSICAL     0x00000001L
 
 typedef NTSTATUS
 #define AGP_CAPABILITIES_MAP_PHYSICAL     0x00000001L
 
 typedef NTSTATUS
-(NTAPI *PAGP_BUS_COMMIT_MEMORY)(
+(DDKAPI *PAGP_BUS_COMMIT_MEMORY)(
   IN     PVOID  AgpContext,
   IN     PVOID  MapHandle,
   IN     ULONG  NumberOfPages,
   IN     PVOID  AgpContext,
   IN     PVOID  MapHandle,
   IN     ULONG  NumberOfPages,
@@ -45,19 +45,19 @@ typedef NTSTATUS
   OUT    PHYSICAL_ADDRESS  *MemoryBase);
 
 typedef NTSTATUS
   OUT    PHYSICAL_ADDRESS  *MemoryBase);
 
 typedef NTSTATUS
-(NTAPI *PAGP_BUS_FREE_MEMORY)(
+(DDKAPI *PAGP_BUS_FREE_MEMORY)(
   IN  PVOID  AgpContext,
   IN  PVOID  MapHandle,
   IN  ULONG  NumberOfPages,
   IN  ULONG  OffsetInPages);
 
 typedef NTSTATUS
   IN  PVOID  AgpContext,
   IN  PVOID  MapHandle,
   IN  ULONG  NumberOfPages,
   IN  ULONG  OffsetInPages);
 
 typedef NTSTATUS
-(NTAPI *PAGP_BUS_RELEASE_MEMORY)(
+(DDKAPI *PAGP_BUS_RELEASE_MEMORY)(
   IN  PVOID  AgpContext,
   IN  PVOID  MapHandle);
 
 typedef NTSTATUS
   IN  PVOID  AgpContext,
   IN  PVOID  MapHandle);
 
 typedef NTSTATUS
-(NTAPI *PAGP_BUS_RESERVE_MEMORY)(
+(DDKAPI *PAGP_BUS_RESERVE_MEMORY)(
   IN  PVOID  AgpContext,
   IN  ULONG  NumberOfPages,
   IN  MEMORY_CACHING_TYPE  MemoryType,
   IN  PVOID  AgpContext,
   IN  ULONG  NumberOfPages,
   IN  MEMORY_CACHING_TYPE  MemoryType,
@@ -65,12 +65,12 @@ typedef NTSTATUS
   OUT PHYSICAL_ADDRESS  *PhysicalAddress  OPTIONAL);
 
 typedef NTSTATUS
   OUT PHYSICAL_ADDRESS  *PhysicalAddress  OPTIONAL);
 
 typedef NTSTATUS
-(NTAPI *PAGP_BUS_SET_RATE)(
+(DDKAPI *PAGP_BUS_SET_RATE)(
   IN  PVOID  AgpContext,
   IN  ULONG  AgpRate);
 
 typedef NTSTATUS
   IN  PVOID  AgpContext,
   IN  ULONG  AgpRate);
 
 typedef NTSTATUS
-(NTAPI *PAGP_GET_MAPPED_PAGES)(
+(DDKAPI *PAGP_GET_MAPPED_PAGES)(
   IN  PVOID  AgpContext,
   IN  PVOID  MapHandle,
   IN  ULONG  NumberOfPages,
   IN  PVOID  AgpContext,
   IN  PVOID  MapHandle,
   IN  ULONG  NumberOfPages,
index 4bb3252..0527ef4 100644 (file)
@@ -134,29 +134,29 @@ typedef struct _INTERNAL_I8042_START_INFORMATION {
 } INTERNAL_I8042_START_INFORMATION, *PINTERNAL_I8042_START_INFORMATION;
 
 typedef VOID
 } INTERNAL_I8042_START_INFORMATION, *PINTERNAL_I8042_START_INFORMATION;
 
 typedef VOID
-(NTAPI *PI8042_ISR_WRITE_PORT)(
+(DDKAPI *PI8042_ISR_WRITE_PORT)(
   IN PVOID  Context,
   IN UCHAR  Value);
 
 typedef VOID
   IN PVOID  Context,
   IN UCHAR  Value);
 
 typedef VOID
-(NTAPI *PI8042_QUEUE_PACKET)(
+(DDKAPI *PI8042_QUEUE_PACKET)(
   IN PVOID  Context);
 
 typedef NTSTATUS
   IN PVOID  Context);
 
 typedef NTSTATUS
-(NTAPI *PI8042_SYNCH_READ_PORT) (
+(DDKAPI *PI8042_SYNCH_READ_PORT) (
   IN PVOID  Context,
   OUT PUCHAR  Value,
   IN BOOLEAN  WaitForACK);
 
 typedef NTSTATUS
   IN PVOID  Context,
   OUT PUCHAR  Value,
   IN BOOLEAN  WaitForACK);
 
 typedef NTSTATUS
-(NTAPI *PI8042_SYNCH_WRITE_PORT)(
+(DDKAPI *PI8042_SYNCH_WRITE_PORT)(
   IN PVOID  Context,
   IN UCHAR  Value,
   IN BOOLEAN  WaitForACK);
 
 
 typedef NTSTATUS
   IN PVOID  Context,
   IN UCHAR  Value,
   IN BOOLEAN  WaitForACK);
 
 
 typedef NTSTATUS
-(NTAPI *PI8042_KEYBOARD_INITIALIZATION_ROUTINE)(
+(DDKAPI *PI8042_KEYBOARD_INITIALIZATION_ROUTINE)(
   IN PVOID  InitializationContext,
   IN PVOID  SynchFuncContext,
   IN PI8042_SYNCH_READ_PORT  ReadPort,
   IN PVOID  InitializationContext,
   IN PVOID  SynchFuncContext,
   IN PI8042_SYNCH_READ_PORT  ReadPort,
@@ -164,7 +164,7 @@ typedef NTSTATUS
   OUT PBOOLEAN  TurnTranslationOn);
 
 typedef BOOLEAN
   OUT PBOOLEAN  TurnTranslationOn);
 
 typedef BOOLEAN
-(NTAPI *PI8042_KEYBOARD_ISR)(
+(DDKAPI *PI8042_KEYBOARD_ISR)(
   PVOID  IsrContext,
   PKEYBOARD_INPUT_DATA  CurrentInput,
   POUTPUT_PACKET  CurrentOutput,
   PVOID  IsrContext,
   PKEYBOARD_INPUT_DATA  CurrentInput,
   POUTPUT_PACKET  CurrentOutput,
@@ -183,7 +183,7 @@ typedef struct _INTERNAL_I8042_HOOK_KEYBOARD {
 } INTERNAL_I8042_HOOK_KEYBOARD, *PINTERNAL_I8042_HOOK_KEYBOARD;
 
 typedef BOOLEAN
 } INTERNAL_I8042_HOOK_KEYBOARD, *PINTERNAL_I8042_HOOK_KEYBOARD;
 
 typedef BOOLEAN
-(NTAPI *PI8042_MOUSE_ISR)(
+(DDKAPI *PI8042_MOUSE_ISR)(
   PVOID  IsrContext,
   PMOUSE_INPUT_DATA  CurrentInput,
   POUTPUT_PACKET  CurrentOutput,
   PVOID  IsrContext,
   PMOUSE_INPUT_DATA  CurrentInput,
   POUTPUT_PACKET  CurrentOutput,
index 61c23d3..0475b3a 100644 (file)
@@ -1,13 +1,12 @@
 /*
  * ntddk.h
  *
 /*
  * ntddk.h
  *
- * Windows NT Device Driver Kit
+ * Windows Device Driver Kit
  *
  *
- * This file is part of the ReactOS DDK package.
+ * This file is part of the w32api package.
  *
  * Contributors:
  *
  * Contributors:
- *   Amine Khaldi
- *   Timo Kreuzer (timo.kreuzer@reactos.org)
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
  *
  * THIS SOFTWARE IS NOT COPYRIGHTED
  *
  *
  * THIS SOFTWARE IS NOT COPYRIGHTED
  *
  * DISCLAIMED. This includes but is not limited to warranties of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  *
  * DISCLAIMED. This includes but is not limited to warranties of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  *
+ * DEFINES:
+ *    DBG          - Debugging enabled/disabled (0/1)
+ *    POOL_TAGGING - Enable pool tagging
+ *    _X86_        - X86 environment
  */
 
  */
 
-#pragma once
-
+#ifndef _NTDDK_
 #define _NTDDK_
 
 #if !defined(_NTHAL_) && !defined(_NTIFS_)
 #define _NTDDK_
 
 #if !defined(_NTHAL_) && !defined(_NTIFS_)
@@ -39,7 +41,6 @@
 #include <excpt.h>
 #include <ntdef.h>
 #include <ntstatus.h>
 #include <excpt.h>
 #include <ntdef.h>
 #include <ntstatus.h>
-#include <mce.h>
 
 /* FIXME
 #include <bugcodes.h>
 
 /* FIXME
 #include <bugcodes.h>
 extern "C" {
 #endif
 
 extern "C" {
 #endif
 
-/* GUID and UUID */
-#ifndef _NTLSA_IFS_
-#ifndef _NTLSA_AUDIT_
-#define _NTLSA_AUDIT_
-
-#ifndef GUID_DEFINED
-#include <guiddef.h>
-#endif
-
-#endif /* _NTLSA_AUDIT_ */
-#endif /* _NTLSA_IFS_ */
-
-typedef GUID UUID;
-
 struct _LOADER_PARAMETER_BLOCK;
 struct _CREATE_DISK;
 struct _DRIVE_LAYOUT_INFORMATION_EX;
 struct _SET_PARTITION_INFORMATION_EX;
 
 struct _LOADER_PARAMETER_BLOCK;
 struct _CREATE_DISK;
 struct _DRIVE_LAYOUT_INFORMATION_EX;
 struct _SET_PARTITION_INFORMATION_EX;
 
-typedef struct _BUS_HANDLER *PBUS_HANDLER;
-typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
-#if defined(_NTHAL_INCLUDED_)
-typedef struct _KAFFINITY_EX *PKAFFINITY_EX;
+//
+// GUID and UUID
+//
+#ifndef GUID_DEFINED
+#include <guiddef.h>
 #endif
 #endif
-typedef struct _PEB *PPEB;
+typedef GUID UUID;
 
 
-#ifndef _NTIMAGE_
+typedef struct _BUS_HANDLER *PBUS_HANDLER;
 
 
-typedef struct _IMAGE_NT_HEADERS *PIMAGE_NT_HEADERS32;
-typedef struct _IMAGE_NT_HEADERS64 *PIMAGE_NT_HEADERS64;
+#define EXCEPTION_READ_FAULT    0
+#define EXCEPTION_WRITE_FAULT   1
+#define EXCEPTION_EXECUTE_FAULT 8
 
 
-#ifdef _WIN64
-typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS;
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+extern NTSYSAPI volatile CCHAR KeNumberProcessors;
+#elif (NTDDI_VERSION >= NTDDI_WINXP)
+extern NTSYSAPI CCHAR KeNumberProcessors;
 #else
 #else
-typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
+extern PCCHAR KeNumberProcessors;
 #endif
 
 #endif
 
-#endif /* _NTIMAGE_ */
-
-/******************************************************************************
- *                            Executive Types                                 *
- ******************************************************************************/
-
-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;
-
-#define PROTECTED_POOL                    0x80000000
-
-
-/******************************************************************************
- *                         I/O Manager Types                                  *
- ******************************************************************************/
-
-/* DEVICE_OBJECT.Flags */
-#define DO_DEVICE_HAS_NAME                0x00000040
-#define DO_SYSTEM_BOOT_PARTITION          0x00000100
-#define DO_LONG_TERM_REQUESTS             0x00000200
-#define DO_NEVER_LAST_DEVICE              0x00000400
-#define DO_LOW_PRIORITY_FILESYSTEM        0x00010000
-#define DO_SUPPORTS_TRANSACTIONS          0x00040000
-#define DO_FORCE_NEITHER_IO               0x00080000
-#define DO_VOLUME_DEVICE_OBJECT           0x00100000
-#define DO_SYSTEM_SYSTEM_PARTITION        0x00200000
-#define DO_SYSTEM_CRITICAL_PARTITION      0x00400000
-#define DO_DISALLOW_EXECUTE               0x00800000
+#define MAX_WOW64_SHARED_ENTRIES 16
 
 
-#ifndef _ARC_DDK_
-#define _ARC_DDK_
-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,
-  RealModePCIEnumeration,
-  MaximumType
-} CONFIGURATION_TYPE, *PCONFIGURATION_TYPE;
-#endif /* !_ARC_DDK_ */
+#define NX_SUPPORT_POLICY_ALWAYSOFF 0
+#define NX_SUPPORT_POLICY_ALWAYSON 1
+#define NX_SUPPORT_POLICY_OPTIN 2
+#define NX_SUPPORT_POLICY_OPTOUT 3
 
 /*
 ** IRP function codes
 
 /*
 ** IRP function codes
@@ -210,118 +122,102 @@ typedef enum _CONFIGURATION_TYPE {
 
 #define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
 
 
 #define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
 
-#define IO_CHECK_CREATE_PARAMETERS      0x0200
-#define IO_ATTACH_DEVICE                0x0400
-#define IO_IGNORE_SHARE_ACCESS_CHECK    0x0800
+typedef struct _IO_COUNTERS {
+  ULONGLONG ReadOperationCount;
+  ULONGLONG WriteOperationCount;
+  ULONGLONG OtherOperationCount;
+  ULONGLONG ReadTransferCount;
+  ULONGLONG WriteTransferCount;
+  ULONGLONG OtherTransferCount;
+} IO_COUNTERS, *PIO_COUNTERS;
 
 
-typedef
-NTSTATUS
-(NTAPI *PIO_QUERY_DEVICE_ROUTINE)(
-  IN PVOID Context,
-  IN PUNICODE_STRING PathName,
-  IN INTERFACE_TYPE BusType,
-  IN ULONG BusNumber,
-  IN PKEY_VALUE_FULL_INFORMATION *BusInformation,
-  IN CONFIGURATION_TYPE ControllerType,
-  IN ULONG ControllerNumber,
-  IN PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
-  IN CONFIGURATION_TYPE PeripheralType,
-  IN ULONG PeripheralNumber,
-  IN PKEY_VALUE_FULL_INFORMATION *PeripheralInformation);
+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, *PVM_COUNTERS;
 
 
-typedef enum _IO_QUERY_DEVICE_DATA_FORMAT {
-  IoQueryDeviceIdentifier = 0,
-  IoQueryDeviceConfigurationData,
-  IoQueryDeviceComponentInformation,
-  IoQueryDeviceMaxData
-} IO_QUERY_DEVICE_DATA_FORMAT, *PIO_QUERY_DEVICE_DATA_FORMAT;
+typedef struct _VM_COUNTERS_EX
+{
+  SIZE_T PeakVirtualSize;
+  SIZE_T VirtualSize;
+  ULONG PageFaultCount;
+  SIZE_T PeakWorkingSetSize;
+  SIZE_T WorkingSetSize;
+  SIZE_T QuotaPeakPagedPoolUsage;
+  SIZE_T QuotaPagedPoolUsage;
+  SIZE_T QuotaPeakNonPagedPoolUsage;
+  SIZE_T QuotaNonPagedPoolUsage;
+  SIZE_T PagefileUsage;
+  SIZE_T PeakPagefileUsage;
+  SIZE_T PrivateUsage;
+} VM_COUNTERS_EX, *PVM_COUNTERS_EX;
 
 
-typedef VOID
-(NTAPI *PDRIVER_REINITIALIZE)(
-  IN struct _DRIVER_OBJECT *DriverObject,
-  IN PVOID Context OPTIONAL,
-  IN ULONG Count);
+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, *PPOOLED_USAGE_AND_LIMITS;
 
 
-typedef struct _CONTROLLER_OBJECT {
-  CSHORT Type;
-  CSHORT Size;
-  PVOID ControllerExtension;
-  KDEVICE_QUEUE DeviceWaitQueue;
-  ULONG Spare1;
-  LARGE_INTEGER Spare2;
-} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
+/* DEVICE_OBJECT.Flags */
+
+#define DO_VERIFY_VOLUME                    0x00000002
+#define DO_BUFFERED_IO                      0x00000004
+#define DO_EXCLUSIVE                        0x00000008
+#define DO_DIRECT_IO                        0x00000010
+#define DO_MAP_IO_BUFFER                    0x00000020
+#define DO_DEVICE_HAS_NAME                  0x00000040
+#define DO_DEVICE_INITIALIZING              0x00000080
+#define DO_SYSTEM_BOOT_PARTITION            0x00000100
+#define DO_LONG_TERM_REQUESTS               0x00000200
+#define DO_NEVER_LAST_DEVICE                0x00000400
+#define DO_SHUTDOWN_REGISTERED              0x00000800
+#define DO_BUS_ENUMERATED_DEVICE            0x00001000
+#define DO_POWER_PAGABLE                    0x00002000
+#define DO_POWER_INRUSH                     0x00004000
+#define DO_LOW_PRIORITY_FILESYSTEM          0x00010000
+#define DO_SUPPORTS_TRANSACTIONS            0x00040000
+#define DO_FORCE_NEITHER_IO                 0x00080000
+#define DO_VOLUME_DEVICE_OBJECT             0x00100000
+#define DO_SYSTEM_SYSTEM_PARTITION          0x00200000
+#define DO_SYSTEM_CRITICAL_PARTITION        0x00400000
+#define DO_DISALLOW_EXECUTE                 0x00800000
 
 #define DRVO_REINIT_REGISTERED          0x00000008
 #define DRVO_INITIALIZED                0x00000010
 #define DRVO_BOOTREINIT_REGISTERED      0x00000020
 #define DRVO_LEGACY_RESOURCES           0x00000040
 
 
 #define DRVO_REINIT_REGISTERED          0x00000008
 #define DRVO_INITIALIZED                0x00000010
 #define DRVO_BOOTREINIT_REGISTERED      0x00000020
 #define DRVO_LEGACY_RESOURCES           0x00000040
 
-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;
-
-typedef struct _DISK_SIGNATURE {
-  ULONG PartitionStyle;
-  _ANONYMOUS_UNION union {
-    struct {
-      ULONG Signature;
-      ULONG CheckSum;
-    } Mbr;
-    struct {
-      GUID DiskId;
-    } Gpt;
-  } DUMMYUNIONNAME;
-} DISK_SIGNATURE, *PDISK_SIGNATURE;
-
-typedef struct _TXN_PARAMETER_BLOCK {
-  USHORT Length;
-  USHORT TxFsContext;
-  PVOID TransactionObject;
-} TXN_PARAMETER_BLOCK, *PTXN_PARAMETER_BLOCK;
-
-#define TXF_MINIVERSION_DEFAULT_VIEW        (0xFFFE)
-
-typedef struct _IO_DRIVER_CREATE_CONTEXT {
-  CSHORT Size;
-  struct _ECP_LIST *ExtraCreateParameter;
-  PVOID DeviceObjectHint;
-  PTXN_PARAMETER_BLOCK TxnParameters;
-} IO_DRIVER_CREATE_CONTEXT, *PIO_DRIVER_CREATE_CONTEXT;
-
-typedef struct _AGP_TARGET_BUS_INTERFACE_STANDARD {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PGET_SET_DEVICE_DATA SetBusData;
-  PGET_SET_DEVICE_DATA GetBusData;
-  UCHAR CapabilityID;
-} AGP_TARGET_BUS_INTERFACE_STANDARD, *PAGP_TARGET_BUS_INTERFACE_STANDARD;
-
-typedef NTSTATUS
-(NTAPI *PGET_LOCATION_STRING)(
-  IN OUT PVOID Context OPTIONAL,
-  OUT PWCHAR *LocationStrings);
+typedef enum _ARBITER_REQUEST_SOURCE {
+  ArbiterRequestUndefined = -1,
+  ArbiterRequestLegacyReported,
+  ArbiterRequestHalReported,
+  ArbiterRequestLegacyAssigned,
+  ArbiterRequestPnpDetected,
+  ArbiterRequestPnpEnumerated
+} ARBITER_REQUEST_SOURCE;
 
 
-typedef struct _PNP_LOCATION_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PGET_LOCATION_STRING GetLocationString;
-} PNP_LOCATION_INTERFACE, *PPNP_LOCATION_INTERFACE;
+typedef enum _ARBITER_RESULT {
+  ArbiterResultUndefined = -1,
+  ArbiterResultSuccess,
+  ArbiterResultExternalConflict,
+  ArbiterResultNullRequest
+} ARBITER_RESULT;
 
 typedef enum _ARBITER_ACTION {
   ArbiterActionTestAllocation,
 
 typedef enum _ARBITER_ACTION {
   ArbiterActionTestAllocation,
@@ -342,69 +238,39 @@ typedef struct _ARBITER_CONFLICT_INFO {
   ULONGLONG End;
 } ARBITER_CONFLICT_INFO, *PARBITER_CONFLICT_INFO;
 
   ULONGLONG End;
 } ARBITER_CONFLICT_INFO, *PARBITER_CONFLICT_INFO;
 
-typedef struct _ARBITER_TEST_ALLOCATION_PARAMETERS {
-  IN OUT PLIST_ENTRY ArbitrationList;
-  IN ULONG AllocateFromCount;
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom;
-} ARBITER_TEST_ALLOCATION_PARAMETERS, *PARBITER_TEST_ALLOCATION_PARAMETERS;
-
-typedef struct _ARBITER_RETEST_ALLOCATION_PARAMETERS {
-  IN OUT PLIST_ENTRY ArbitrationList;
-  IN ULONG AllocateFromCount;
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom;
-} ARBITER_RETEST_ALLOCATION_PARAMETERS, *PARBITER_RETEST_ALLOCATION_PARAMETERS;
-
-typedef struct _ARBITER_BOOT_ALLOCATION_PARAMETERS {
-  IN OUT PLIST_ENTRY ArbitrationList;
-} ARBITER_BOOT_ALLOCATION_PARAMETERS, *PARBITER_BOOT_ALLOCATION_PARAMETERS;
-
-typedef struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS {
-  OUT PCM_PARTIAL_RESOURCE_LIST *AllocatedResources;
-} ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS, *PARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS;
-
-typedef struct _ARBITER_QUERY_CONFLICT_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  IN PIO_RESOURCE_DESCRIPTOR ConflictingResource;
-  OUT PULONG ConflictCount;
-  OUT PARBITER_CONFLICT_INFO *Conflicts;
-} ARBITER_QUERY_CONFLICT_PARAMETERS, *PARBITER_QUERY_CONFLICT_PARAMETERS;
-
-typedef struct _ARBITER_QUERY_ARBITRATE_PARAMETERS {
-  IN PLIST_ENTRY ArbitrationList;
-} ARBITER_QUERY_ARBITRATE_PARAMETERS, *PARBITER_QUERY_ARBITRATE_PARAMETERS;
-
-typedef struct _ARBITER_ADD_RESERVED_PARAMETERS {
-  IN PDEVICE_OBJECT ReserveDevice;
-} ARBITER_ADD_RESERVED_PARAMETERS, *PARBITER_ADD_RESERVED_PARAMETERS;
-
 typedef struct _ARBITER_PARAMETERS {
   union {
 typedef struct _ARBITER_PARAMETERS {
   union {
-    ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation;
-    ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation;
-    ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation;
-    ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources;
-    ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict;
-    ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate;
-    ARBITER_ADD_RESERVED_PARAMETERS AddReserved;
+    struct {
+      IN OUT PLIST_ENTRY ArbitrationList;
+      IN ULONG AllocateFromCount;
+      IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom;
+    } TestAllocation;
+    struct {
+      IN OUT PLIST_ENTRY ArbitrationList;
+      IN ULONG AllocateFromCount;
+      IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom;
+    } RetestAllocation;
+    struct {
+      IN OUT PLIST_ENTRY ArbitrationList;
+    } BootAllocation;
+    struct {
+      OUT PCM_PARTIAL_RESOURCE_LIST *AllocatedResources;
+    } QueryAllocatedResources;
+    struct {
+      IN PDEVICE_OBJECT PhysicalDeviceObject;
+      IN PIO_RESOURCE_DESCRIPTOR ConflictingResource;
+      OUT PULONG ConflictCount;
+      OUT PARBITER_CONFLICT_INFO *Conflicts;
+    } QueryConflict;
+    struct {
+      IN PLIST_ENTRY ArbitrationList;
+    } QueryArbitrate;
+    struct {
+      IN PDEVICE_OBJECT ReserveDevice;
+    } AddReserved;
   } Parameters;
 } ARBITER_PARAMETERS, *PARBITER_PARAMETERS;
 
   } Parameters;
 } ARBITER_PARAMETERS, *PARBITER_PARAMETERS;
 
-typedef enum _ARBITER_REQUEST_SOURCE {
-  ArbiterRequestUndefined = -1,
-  ArbiterRequestLegacyReported,
-  ArbiterRequestHalReported,
-  ArbiterRequestLegacyAssigned,
-  ArbiterRequestPnpDetected,
-  ArbiterRequestPnpEnumerated
-} ARBITER_REQUEST_SOURCE;
-
-typedef enum _ARBITER_RESULT {
-  ArbiterResultUndefined = -1,
-  ArbiterResultSuccess,
-  ArbiterResultExternalConflict,
-  ArbiterResultNullRequest
-} ARBITER_RESULT;
-
 #define ARBITER_FLAG_BOOT_CONFIG 0x00000001
 
 typedef struct _ARBITER_LIST_ENTRY {
 #define ARBITER_FLAG_BOOT_CONFIG 0x00000001
 
 typedef struct _ARBITER_LIST_ENTRY {
@@ -441,826 +307,6 @@ typedef struct _ARBITER_INTERFACE {
   ULONG Flags;
 } ARBITER_INTERFACE, *PARBITER_INTERFACE;
 
   ULONG Flags;
 } ARBITER_INTERFACE, *PARBITER_INTERFACE;
 
-typedef enum _RESOURCE_TRANSLATION_DIRECTION {
-  TranslateChildToParent,
-  TranslateParentToChild
-} RESOURCE_TRANSLATION_DIRECTION;
-
-typedef NTSTATUS
-(NTAPI *PTRANSLATE_RESOURCE_HANDLER)(
-  IN OUT PVOID Context OPTIONAL,
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Source,
-  IN RESOURCE_TRANSLATION_DIRECTION Direction,
-  IN ULONG AlternativesCount OPTIONAL,
-  IN IO_RESOURCE_DESCRIPTOR Alternatives[],
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR Target);
-
-typedef NTSTATUS
-(NTAPI *PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER)(
-  IN OUT PVOID Context OPTIONAL,
-  IN PIO_RESOURCE_DESCRIPTOR Source,
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  OUT PULONG TargetCount,
-  OUT PIO_RESOURCE_DESCRIPTOR *Target);
-
-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;
-
-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 Agp3Mode:1;
-    ULONG FastWrite:1;
-    ULONG FourGB:1;
-    ULONG HostTransDisable:1;
-    ULONG Gart64:1;
-    ULONG ITA_Coherent:1;
-    ULONG SideBandAddressing:1;
-    ULONG CalibrationCycle:3;
-    ULONG AsyncRequestSize:3;
-    ULONG Rsvd1:1;
-    ULONG Isoch:1;
-    ULONG Rsvd2:6;
-    ULONG RequestQueueDepthMaximum:8;
-  } AGPStatus;
-  struct _PCI_AGP_COMMAND {
-    ULONG Rate:3;
-    ULONG Rsvd1:1;
-    ULONG FastWriteEnable:1;
-    ULONG FourGBEnable:1;
-    ULONG Rsvd2:1;
-    ULONG Gart64:1;
-    ULONG AGPEnable:1;
-    ULONG SBAEnable:1;
-    ULONG CalibrationCycle:3;
-    ULONG AsyncReqSize:3;
-    ULONG Rsvd3:8;
-    ULONG RequestQueueDepth:8;
-  } AGPCommand;
-} PCI_AGP_CAPABILITY, *PPCI_AGP_CAPABILITY;
-
-typedef enum _EXTENDED_AGP_REGISTER {
-  IsochStatus,
-  AgpControl,
-  ApertureSize,
-  AperturePageSize,
-  GartLow,
-  GartHigh,
-  IsochCommand
-} EXTENDED_AGP_REGISTER, *PEXTENDED_AGP_REGISTER;
-
-typedef struct _PCI_AGP_ISOCH_STATUS {
-  ULONG ErrorCode:2;
-  ULONG Rsvd1:1;
-  ULONG Isoch_L:3;
-  ULONG Isoch_Y:2;
-  ULONG Isoch_N:8;
-  ULONG Rsvd2:16;
-} PCI_AGP_ISOCH_STATUS, *PPCI_AGP_ISOCH_STATUS;
-
-typedef struct _PCI_AGP_CONTROL {
-  ULONG Rsvd1:7;
-  ULONG GTLB_Enable:1;
-  ULONG AP_Enable:1;
-  ULONG CAL_Disable:1;
-  ULONG Rsvd2:22;
-} PCI_AGP_CONTROL, *PPCI_AGP_CONTROL;
-
-typedef struct _PCI_AGP_APERTURE_PAGE_SIZE {
-  USHORT PageSizeMask:11;
-  USHORT Rsvd1:1;
-  USHORT PageSizeSelect:4;
-} PCI_AGP_APERTURE_PAGE_SIZE, *PPCI_AGP_APERTURE_PAGE_SIZE;
-
-typedef struct _PCI_AGP_ISOCH_COMMAND {
-  USHORT Rsvd1:6;
-  USHORT Isoch_Y:2;
-  USHORT Isoch_N:8;
-} PCI_AGP_ISOCH_COMMAND, *PPCI_AGP_ISOCH_COMMAND;
-
-typedef struct PCI_AGP_EXTENDED_CAPABILITY {
-  PCI_AGP_ISOCH_STATUS IsochStatus;
-  PCI_AGP_CONTROL AgpControl;
-  USHORT ApertureSize;
-  PCI_AGP_APERTURE_PAGE_SIZE AperturePageSize;
-  ULONG GartLow;
-  ULONG GartHigh;
-  PCI_AGP_ISOCH_COMMAND IsochCommand;
-} PCI_AGP_EXTENDED_CAPABILITY, *PPCI_AGP_EXTENDED_CAPABILITY;
-
-#define PCI_AGP_RATE_1X     0x1
-#define PCI_AGP_RATE_2X     0x2
-#define PCI_AGP_RATE_4X     0x4
-
-#define PCIX_MODE_CONVENTIONAL_PCI  0x0
-#define PCIX_MODE1_66MHZ            0x1
-#define PCIX_MODE1_100MHZ           0x2
-#define PCIX_MODE1_133MHZ           0x3
-#define PCIX_MODE2_266_66MHZ        0x9
-#define PCIX_MODE2_266_100MHZ       0xA
-#define PCIX_MODE2_266_133MHZ       0xB
-#define PCIX_MODE2_533_66MHZ        0xD
-#define PCIX_MODE2_533_100MHZ       0xE
-#define PCIX_MODE2_533_133MHZ       0xF
-
-#define PCIX_VERSION_MODE1_ONLY     0x0
-#define PCIX_VERSION_MODE2_ECC      0x1
-#define PCIX_VERSION_DUAL_MODE_ECC  0x2
-
-typedef struct _PCIX_BRIDGE_CAPABILITY {
-  PCI_CAPABILITIES_HEADER Header;
-  union {
-    struct {
-      USHORT Bus64Bit:1;
-      USHORT Bus133MHzCapable:1;
-      USHORT SplitCompletionDiscarded:1;
-      USHORT UnexpectedSplitCompletion:1;
-      USHORT SplitCompletionOverrun:1;
-      USHORT SplitRequestDelayed:1;
-      USHORT BusModeFrequency:4;
-      USHORT Rsvd:2;
-      USHORT Version:2;
-      USHORT Bus266MHzCapable:1;
-      USHORT Bus533MHzCapable:1;
-    } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-  } SecondaryStatus;
-  union {
-    struct {
-      ULONG FunctionNumber:3;
-      ULONG DeviceNumber:5;
-      ULONG BusNumber:8;
-      ULONG Device64Bit:1;
-      ULONG Device133MHzCapable:1;
-      ULONG SplitCompletionDiscarded:1;
-      ULONG UnexpectedSplitCompletion:1;
-      ULONG SplitCompletionOverrun:1;
-      ULONG SplitRequestDelayed:1;
-      ULONG Rsvd:7;
-      ULONG DIMCapable:1;
-      ULONG Device266MHzCapable:1;
-      ULONG Device533MHzCapable:1;
-    } DUMMYSTRUCTNAME;
-    ULONG AsULONG;
-  } BridgeStatus;
-  USHORT UpstreamSplitTransactionCapacity;
-  USHORT UpstreamSplitTransactionLimit;
-  USHORT DownstreamSplitTransactionCapacity;
-  USHORT DownstreamSplitTransactionLimit;
-  union {
-    struct {
-      ULONG SelectSecondaryRegisters:1;
-      ULONG ErrorPresentInOtherBank:1;
-      ULONG AdditionalCorrectableError:1;
-      ULONG AdditionalUncorrectableError:1;
-      ULONG ErrorPhase:3;
-      ULONG ErrorCorrected:1;
-      ULONG Syndrome:8;
-      ULONG ErrorFirstCommand:4;
-      ULONG ErrorSecondCommand:4;
-      ULONG ErrorUpperAttributes:4;
-      ULONG ControlUpdateEnable:1;
-      ULONG Rsvd:1;
-      ULONG DisableSingleBitCorrection:1;
-      ULONG EccMode:1;
-    } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-  } EccControlStatus;
-  ULONG EccFirstAddress;
-  ULONG EccSecondAddress;
-  ULONG EccAttribute;
-} PCIX_BRIDGE_CAPABILITY, *PPCIX_BRIDGE_CAPABILITY;
-
-typedef struct _PCI_SUBSYSTEM_IDS_CAPABILITY {
-  PCI_CAPABILITIES_HEADER Header;
-  USHORT Reserved;
-  USHORT SubVendorID;
-  USHORT SubSystemID;
-} PCI_SUBSYSTEM_IDS_CAPABILITY, *PPCI_SUBSYSTEM_IDS_CAPABILITY;
-
-#define OSC_FIRMWARE_FAILURE                            0x02
-#define OSC_UNRECOGNIZED_UUID                           0x04
-#define OSC_UNRECOGNIZED_REVISION                       0x08
-#define OSC_CAPABILITIES_MASKED                         0x10
-
-#define PCI_ROOT_BUS_OSC_METHOD_CAPABILITY_REVISION     0x01
-
-typedef struct _PCI_ROOT_BUS_OSC_SUPPORT_FIELD {
-  union {
-    struct {
-      ULONG ExtendedConfigOpRegions:1;
-      ULONG ActiveStatePowerManagement:1;
-      ULONG ClockPowerManagement:1;
-      ULONG SegmentGroups:1;
-      ULONG MessageSignaledInterrupts:1;
-      ULONG WindowsHardwareErrorArchitecture:1;
-      ULONG Reserved:26;
-    } DUMMYSTRUCTNAME;
-    ULONG AsULONG;
-  } u;
-} PCI_ROOT_BUS_OSC_SUPPORT_FIELD, *PPCI_ROOT_BUS_OSC_SUPPORT_FIELD;
-
-typedef struct _PCI_ROOT_BUS_OSC_CONTROL_FIELD {
-  union {
-    struct {
-      ULONG ExpressNativeHotPlug:1;
-      ULONG ShpcNativeHotPlug:1;
-      ULONG ExpressNativePME:1;
-      ULONG ExpressAdvancedErrorReporting:1;
-      ULONG ExpressCapabilityStructure:1;
-      ULONG Reserved:27;
-    } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-  } u;
-} PCI_ROOT_BUS_OSC_CONTROL_FIELD, *PPCI_ROOT_BUS_OSC_CONTROL_FIELD;
-
-typedef enum _PCI_HARDWARE_INTERFACE {
-  PciConventional,
-  PciXMode1,
-  PciXMode2,
-  PciExpress
-} PCI_HARDWARE_INTERFACE, *PPCI_HARDWARE_INTERFACE;
-
-typedef enum {
-  BusWidth32Bits,
-  BusWidth64Bits
-} PCI_BUS_WIDTH;
-
-typedef struct _PCI_ROOT_BUS_HARDWARE_CAPABILITY {
-  PCI_HARDWARE_INTERFACE SecondaryInterface;
-  struct {
-    BOOLEAN BusCapabilitiesFound;
-    ULONG CurrentSpeedAndMode;
-    ULONG SupportedSpeedsAndModes;
-    BOOLEAN DeviceIDMessagingCapable;
-    PCI_BUS_WIDTH SecondaryBusWidth;
-  } DUMMYSTRUCTNAME;
-  PCI_ROOT_BUS_OSC_SUPPORT_FIELD OscFeatureSupport;
-  PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlRequest;
-  PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlGranted;
-} PCI_ROOT_BUS_HARDWARE_CAPABILITY, *PPCI_ROOT_BUS_HARDWARE_CAPABILITY;
-
-typedef union _PCI_EXPRESS_CAPABILITIES_REGISTER {
-  struct {
-    USHORT CapabilityVersion:4;
-    USHORT DeviceType:4;
-    USHORT SlotImplemented:1;
-    USHORT InterruptMessageNumber:5;
-    USHORT Rsvd:2;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_CAPABILITIES_REGISTER, *PPCI_EXPRESS_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER {
-  struct {
-    ULONG MaxPayloadSizeSupported:3;
-    ULONG PhantomFunctionsSupported:2;
-    ULONG ExtendedTagSupported:1;
-    ULONG L0sAcceptableLatency:3;
-    ULONG L1AcceptableLatency:3;
-    ULONG Undefined:3;
-    ULONG RoleBasedErrorReporting:1;
-    ULONG Rsvd1:2;
-    ULONG CapturedSlotPowerLimit:8;
-    ULONG CapturedSlotPowerLimitScale:2;
-    ULONG Rsvd2:4;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER, *PPCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER;
-
-#define PCI_EXPRESS_AER_DEVICE_CONTROL_MASK 0x07;
-
-typedef union _PCI_EXPRESS_DEVICE_CONTROL_REGISTER {
-  struct {
-    USHORT CorrectableErrorEnable:1;
-    USHORT NonFatalErrorEnable:1;
-    USHORT FatalErrorEnable:1;
-    USHORT UnsupportedRequestErrorEnable:1;
-    USHORT EnableRelaxedOrder:1;
-    USHORT MaxPayloadSize:3;
-    USHORT ExtendedTagEnable:1;
-    USHORT PhantomFunctionsEnable:1;
-    USHORT AuxPowerEnable:1;
-    USHORT NoSnoopEnable:1;
-    USHORT MaxReadRequestSize:3;
-    USHORT BridgeConfigRetryEnable:1;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_DEVICE_CONTROL_REGISTER, *PPCI_EXPRESS_DEVICE_CONTROL_REGISTER;
-
-#define PCI_EXPRESS_AER_DEVICE_STATUS_MASK 0x0F;
-
-typedef union _PCI_EXPRESS_DEVICE_STATUS_REGISTER {
-  struct {
-    USHORT CorrectableErrorDetected:1;
-    USHORT NonFatalErrorDetected:1;
-    USHORT FatalErrorDetected:1;
-    USHORT UnsupportedRequestDetected:1;
-    USHORT AuxPowerDetected:1;
-    USHORT TransactionsPending:1;
-    USHORT Rsvd:10;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_DEVICE_STATUS_REGISTER, *PPCI_EXPRESS_DEVICE_STATUS_REGISTER;
-
-typedef union _PCI_EXPRESS_LINK_CAPABILITIES_REGISTER {
-  struct {
-    ULONG MaximumLinkSpeed:4;
-    ULONG MaximumLinkWidth:6;
-    ULONG ActiveStatePMSupport:2;
-    ULONG L0sExitLatency:3;
-    ULONG L1ExitLatency:3;
-    ULONG ClockPowerManagement:1;
-    ULONG SurpriseDownErrorReportingCapable:1;
-    ULONG DataLinkLayerActiveReportingCapable:1;
-    ULONG Rsvd:3;
-    ULONG PortNumber:8;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_LINK_CAPABILITIES_REGISTER, *PPCI_EXPRESS_LINK_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_LINK_CONTROL_REGISTER {
-  struct {
-    USHORT ActiveStatePMControl:2;
-    USHORT Rsvd1:1;
-    USHORT ReadCompletionBoundary:1;
-    USHORT LinkDisable:1;
-    USHORT RetrainLink:1;
-    USHORT CommonClockConfig:1;
-    USHORT ExtendedSynch:1;
-    USHORT EnableClockPowerManagement:1;
-    USHORT Rsvd2:7;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_LINK_CONTROL_REGISTER, *PPCI_EXPRESS_LINK_CONTROL_REGISTER;
-
-typedef union _PCI_EXPRESS_LINK_STATUS_REGISTER {
-  struct {
-    USHORT LinkSpeed:4;
-    USHORT LinkWidth:6;
-    USHORT Undefined:1;
-    USHORT LinkTraining:1;
-    USHORT SlotClockConfig:1;
-    USHORT DataLinkLayerActive:1;
-    USHORT Rsvd:2;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_LINK_STATUS_REGISTER, *PPCI_EXPRESS_LINK_STATUS_REGISTER;
-
-typedef union _PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER {
-  struct {
-    ULONG AttentionButtonPresent:1;
-    ULONG PowerControllerPresent:1;
-    ULONG MRLSensorPresent:1;
-    ULONG AttentionIndicatorPresent:1;
-    ULONG PowerIndicatorPresent:1;
-    ULONG HotPlugSurprise:1;
-    ULONG HotPlugCapable:1;
-    ULONG SlotPowerLimit:8;
-    ULONG SlotPowerLimitScale:2;
-    ULONG ElectromechanicalLockPresent:1;
-    ULONG NoCommandCompletedSupport:1;
-    ULONG PhysicalSlotNumber:13;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER, *PPCI_EXPRESS_SLOT_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_SLOT_CONTROL_REGISTER {
-  struct {
-    USHORT AttentionButtonEnable:1;
-    USHORT PowerFaultDetectEnable:1;
-    USHORT MRLSensorEnable:1;
-    USHORT PresenceDetectEnable:1;
-    USHORT CommandCompletedEnable:1;
-    USHORT HotPlugInterruptEnable:1;
-    USHORT AttentionIndicatorControl:2;
-    USHORT PowerIndicatorControl:2;
-    USHORT PowerControllerControl:1;
-    USHORT ElectromechanicalLockControl:1;
-    USHORT DataLinkStateChangeEnable:1;
-    USHORT Rsvd:3;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SLOT_CONTROL_REGISTER, *PPCI_EXPRESS_SLOT_CONTROL_REGISTER;
-
-typedef union _PCI_EXPRESS_SLOT_STATUS_REGISTER {
-  struct {
-    USHORT AttentionButtonPressed:1;
-    USHORT PowerFaultDetected:1;
-    USHORT MRLSensorChanged:1;
-    USHORT PresenceDetectChanged:1;
-    USHORT CommandCompleted:1;
-    USHORT MRLSensorState:1;
-    USHORT PresenceDetectState:1;
-    USHORT ElectromechanicalLockEngaged:1;
-    USHORT DataLinkStateChanged:1;
-    USHORT Rsvd:7;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SLOT_STATUS_REGISTER, *PPCI_EXPRESS_SLOT_STATUS_REGISTER;
-
-typedef union _PCI_EXPRESS_ROOT_CONTROL_REGISTER {
-  struct {
-    USHORT CorrectableSerrEnable:1;
-    USHORT NonFatalSerrEnable:1;
-    USHORT FatalSerrEnable:1;
-    USHORT PMEInterruptEnable:1;
-    USHORT CRSSoftwareVisibilityEnable:1;
-    USHORT Rsvd:11;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_ROOT_CONTROL_REGISTER, *PPCI_EXPRESS_ROOT_CONTROL_REGISTER;
-
-typedef union _PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER {
-  struct {
-    USHORT CRSSoftwareVisibility:1;
-    USHORT Rsvd:15;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER, *PPCI_EXPRESS_ROOT_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_ROOT_STATUS_REGISTER {
-  struct {
-    ULONG PMERequestorId:16;
-    ULONG PMEStatus:1;
-    ULONG PMEPending:1;
-    ULONG Rsvd:14;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ROOT_STATUS_REGISTER, *PPCI_EXPRESS_ROOT_STATUS_REGISTER;
-
-typedef struct _PCI_EXPRESS_CAPABILITY {
-  PCI_CAPABILITIES_HEADER Header;
-  PCI_EXPRESS_CAPABILITIES_REGISTER ExpressCapabilities;
-  PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER DeviceCapabilities;
-  PCI_EXPRESS_DEVICE_CONTROL_REGISTER DeviceControl;
-  PCI_EXPRESS_DEVICE_STATUS_REGISTER DeviceStatus;
-  PCI_EXPRESS_LINK_CAPABILITIES_REGISTER LinkCapabilities;
-  PCI_EXPRESS_LINK_CONTROL_REGISTER LinkControl;
-  PCI_EXPRESS_LINK_STATUS_REGISTER LinkStatus;
-  PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER SlotCapabilities;
-  PCI_EXPRESS_SLOT_CONTROL_REGISTER SlotControl;
-  PCI_EXPRESS_SLOT_STATUS_REGISTER SlotStatus;
-  PCI_EXPRESS_ROOT_CONTROL_REGISTER RootControl;
-  PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER RootCapabilities;
-  PCI_EXPRESS_ROOT_STATUS_REGISTER RootStatus;
-} PCI_EXPRESS_CAPABILITY, *PPCI_EXPRESS_CAPABILITY;
-
-typedef enum {
-  MRLClosed = 0,
-  MRLOpen
-} PCI_EXPRESS_MRL_STATE;
-
-typedef enum {
-  SlotEmpty = 0,
-  CardPresent
-} PCI_EXPRESS_CARD_PRESENCE;
-
-typedef enum {
-  IndicatorOn = 1,
-  IndicatorBlink,
-  IndicatorOff
-} PCI_EXPRESS_INDICATOR_STATE;
-
-typedef enum {
-  PowerOn = 0,
-  PowerOff
-} PCI_EXPRESS_POWER_STATE;
-
-typedef enum {
-  L0sEntrySupport = 1,
-  L0sAndL1EntrySupport = 3
-} PCI_EXPRESS_ASPM_SUPPORT;
-
-typedef enum {
-  L0sAndL1EntryDisabled,
-  L0sEntryEnabled,
-  L1EntryEnabled,
-  L0sAndL1EntryEnabled
-} PCI_EXPRESS_ASPM_CONTROL;
-
-typedef enum {
-  L0s_Below64ns = 0,
-  L0s_64ns_128ns,
-  L0s_128ns_256ns,
-  L0s_256ns_512ns,
-  L0s_512ns_1us,
-  L0s_1us_2us,
-  L0s_2us_4us,
-  L0s_Above4us
-} PCI_EXPRESS_L0s_EXIT_LATENCY;
-
-typedef enum {
-  L1_Below1us = 0,
-  L1_1us_2us,
-  L1_2us_4us,
-  L1_4us_8us,
-  L1_8us_16us,
-  L1_16us_32us,
-  L1_32us_64us,
-  L1_Above64us
-} PCI_EXPRESS_L1_EXIT_LATENCY;
-
-typedef enum {
-  PciExpressEndpoint = 0,
-  PciExpressLegacyEndpoint,
-  PciExpressRootPort = 4,
-  PciExpressUpstreamSwitchPort,
-  PciExpressDownstreamSwitchPort,
-  PciExpressToPciXBridge,
-  PciXToExpressBridge,
-  PciExpressRootComplexIntegratedEndpoint,
-  PciExpressRootComplexEventCollector
-} PCI_EXPRESS_DEVICE_TYPE;
-
-typedef enum {
-  MaxPayload128Bytes = 0,
-  MaxPayload256Bytes,
-  MaxPayload512Bytes,
-  MaxPayload1024Bytes,
-  MaxPayload2048Bytes,
-  MaxPayload4096Bytes
-} PCI_EXPRESS_MAX_PAYLOAD_SIZE;
-
-typedef union _PCI_EXPRESS_PME_REQUESTOR_ID {
-  struct {
-    USHORT FunctionNumber:3;
-    USHORT DeviceNumber:5;
-    USHORT BusNumber:8;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_PME_REQUESTOR_ID, *PPCI_EXPRESS_PME_REQUESTOR_ID;
-
-#if defined(_WIN64)
-
-#ifndef USE_DMA_MACROS
-#define USE_DMA_MACROS
-#endif
-
-#ifndef NO_LEGACY_DRIVERS
-#define NO_LEGACY_DRIVERS
-#endif
-
-#endif /* defined(_WIN64) */
-
-typedef enum _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE {
-  ResourceTypeSingle = 0,
-  ResourceTypeRange,
-  ResourceTypeExtendedCounterConfiguration,
-  ResourceTypeOverflow,
-  ResourceTypeMax
-} PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE;
-
-typedef struct _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR {
-  PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE Type;
-  ULONG Flags;
-  union {
-    ULONG CounterIndex;
-    ULONG ExtendedRegisterAddress;
-    struct {
-      ULONG Begin;
-      ULONG End;
-    } Range;
-  } u;
-} PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR, *PPHYSICAL_COUNTER_RESOURCE_DESCRIPTOR;
-
-typedef struct _PHYSICAL_COUNTER_RESOURCE_LIST {
-  ULONG Count;
-  PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR Descriptors[ANYSIZE_ARRAY];
-} PHYSICAL_COUNTER_RESOURCE_LIST, *PPHYSICAL_COUNTER_RESOURCE_LIST;
-
-typedef VOID
-(NTAPI *PciPin2Line)(
-  IN struct _BUS_HANDLER *BusHandler,
-  IN struct _BUS_HANDLER *RootHandler,
-  IN PCI_SLOT_NUMBER SlotNumber,
-  IN PPCI_COMMON_CONFIG PciData);
-
-typedef VOID
-(NTAPI *PciLine2Pin)(
-  IN struct _BUS_HANDLER *BusHandler,
-  IN struct _BUS_HANDLER *RootHandler,
-  IN PCI_SLOT_NUMBER SlotNumber,
-  IN PPCI_COMMON_CONFIG PciNewData,
-  IN PPCI_COMMON_CONFIG PciOldData);
-
-typedef VOID
-(NTAPI *PciReadWriteConfig)(
-  IN struct _BUS_HANDLER *BusHandler,
-  IN PCI_SLOT_NUMBER Slot,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-#define PCI_DATA_TAG ' ICP'
-#define PCI_DATA_VERSION 1
-
-typedef struct _PCIBUSDATA {
-  ULONG Tag;
-  ULONG Version;
-  PciReadWriteConfig ReadConfig;
-  PciReadWriteConfig WriteConfig;
-  PciPin2Line Pin2Line;
-  PciLine2Pin Line2Pin;
-  PCI_SLOT_NUMBER ParentSlot;
-  PVOID Reserved[4];
-} PCIBUSDATA, *PPCIBUSDATA;
-
-#ifndef _PCIINTRF_X_
-#define _PCIINTRF_X_
-
-typedef ULONG
-(NTAPI *PCI_READ_WRITE_CONFIG)(
-  IN PVOID Context,
-  IN ULONG BusOffset,
-  IN ULONG Slot,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-typedef VOID
-(NTAPI *PCI_PIN_TO_LINE)(
-  IN PVOID Context,
-  IN PPCI_COMMON_CONFIG PciData);
-
-typedef VOID
-(NTAPI *PCI_LINE_TO_PIN)(
-  IN PVOID Context,
-  IN PPCI_COMMON_CONFIG PciNewData,
-  IN PPCI_COMMON_CONFIG PciOldData);
-
-typedef VOID
-(NTAPI *PCI_ROOT_BUS_CAPABILITY)(
-  IN PVOID Context,
-  OUT PPCI_ROOT_BUS_HARDWARE_CAPABILITY HardwareCapability);
-
-typedef VOID
-(NTAPI *PCI_EXPRESS_WAKE_CONTROL)(
-  IN PVOID Context,
-  IN BOOLEAN EnableWake);
-
-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_ROOT_BUS_CAPABILITY RootBusCapability;
-  PCI_EXPRESS_WAKE_CONTROL ExpressWakeControl;
-} PCI_BUS_INTERFACE_STANDARD, *PPCI_BUS_INTERFACE_STANDARD;
-
-#define PCI_BUS_INTERFACE_STANDARD_VERSION 1
-
-#endif /* _PCIINTRF_X_ */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX     0x00004000
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX    0x00008000
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX \
-    (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
-     FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED 0x00000200
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED 0x00000300
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_DEPRECATED 0x00000300
-
-#else
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL     0x00000200
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL    0x00000300
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK        0x00000300
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#define FILE_CHARACTERISTICS_PROPAGATED (   FILE_REMOVABLE_MEDIA   | \
-                                            FILE_READ_ONLY_DEVICE  | \
-                                            FILE_FLOPPY_DISKETTE   | \
-                                            FILE_WRITE_ONCE_MEDIA  | \
-                                            FILE_DEVICE_SECURE_OPEN  )
-
-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_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;
-
-typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {
-  LARGE_INTEGER ValidDataLength;
-} FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
-
-typedef struct _FILE_FS_LABEL_INFORMATION {
-  ULONG VolumeLabelLength;
-  WCHAR VolumeLabel[1];
-} FILE_FS_LABEL_INFORMATION, *PFILE_FS_LABEL_INFORMATION;
-
-typedef struct _FILE_FS_VOLUME_INFORMATION {
-  LARGE_INTEGER VolumeCreationTime;
-  ULONG VolumeSerialNumber;
-  ULONG VolumeLabelLength;
-  BOOLEAN SupportsObjects;
-  WCHAR VolumeLabel[1];
-} FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
-
-typedef struct _FILE_FS_SIZE_INFORMATION {
-  LARGE_INTEGER TotalAllocationUnits;
-  LARGE_INTEGER AvailableAllocationUnits;
-  ULONG SectorsPerAllocationUnit;
-  ULONG BytesPerSector;
-} FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION;
-
-typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
-  LARGE_INTEGER TotalAllocationUnits;
-  LARGE_INTEGER CallerAvailableAllocationUnits;
-  LARGE_INTEGER ActualAvailableAllocationUnits;
-  ULONG SectorsPerAllocationUnit;
-  ULONG BytesPerSector;
-} FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION;
-
-typedef struct _FILE_FS_OBJECTID_INFORMATION {
-  UCHAR ObjectId[16];
-  UCHAR ExtendedInfo[48];
-} FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;
-
-typedef union _FILE_SEGMENT_ELEMENT {
-  PVOID64 Buffer;
-  ULONGLONG Alignment;
-}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
-
-#define IOCTL_AVIO_ALLOCATE_STREAM      CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
-#define IOCTL_AVIO_FREE_STREAM          CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
-#define IOCTL_AVIO_MODIFY_STREAM        CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
-
-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;
-
-/* Hardware Abstraction Layer Types */
-
-typedef BOOLEAN
-(NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
-  IN ULONG Columns,
-  IN ULONG Rows);
-
-typedef PBUS_HANDLER
-(FASTCALL *pHalHandlerForBus)(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber);
-
-typedef VOID
-(FASTCALL *pHalReferenceBusHandler)(
-  IN PBUS_HANDLER BusHandler);
-
 typedef enum _HAL_QUERY_INFORMATION_CLASS {
   HalInstalledBusInformation,
   HalProfileSourceInformation,
 typedef enum _HAL_QUERY_INFORMATION_CLASS {
   HalInstalledBusInformation,
   HalProfileSourceInformation,
@@ -1307,39 +353,113 @@ typedef enum _HAL_SET_INFORMATION_CLASS {
   HalProfileDpgoSourceInterruptHandler
 } HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
 
   HalProfileDpgoSourceInterruptHandler
 } HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
 
-typedef NTSTATUS
-(NTAPI *pHalQuerySystemInformation)(
-  IN HAL_QUERY_INFORMATION_CLASS InformationClass,
-  IN ULONG BufferSize,
-  IN OUT PVOID Buffer,
-  OUT PULONG ReturnedLength);
+typedef struct _HAL_PROFILE_SOURCE_INTERVAL {
+  KPROFILE_SOURCE Source;
+  ULONG_PTR Interval;
+} HAL_PROFILE_SOURCE_INTERVAL, *PHAL_PROFILE_SOURCE_INTERVAL;
 
 
-typedef NTSTATUS
-(NTAPI *pHalSetSystemInformation)(
-  IN HAL_SET_INFORMATION_CLASS InformationClass,
-  IN ULONG BufferSize,
-  IN PVOID Buffer);
+typedef struct _HAL_PROFILE_SOURCE_INFORMATION {
+  KPROFILE_SOURCE Source;
+  BOOLEAN Supported;
+  ULONG Interval;
+} HAL_PROFILE_SOURCE_INFORMATION, *PHAL_PROFILE_SOURCE_INFORMATION;
 
 
-typedef VOID
-(FASTCALL *pHalExamineMBR)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG MBRTypeIdentifier,
-  OUT PVOID *Buffer);
+typedef struct _MAP_REGISTER_ENTRY {
+  PVOID MapRegister;
+  BOOLEAN WriteToDevice;
+} MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY;
 
 
-typedef NTSTATUS
-(FASTCALL *pHalIoReadPartitionTable)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN BOOLEAN ReturnRecognizedPartitions,
-  OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
+typedef struct _DEBUG_DEVICE_ADDRESS {
+  UCHAR Type;
+  BOOLEAN Valid;
+  UCHAR Reserved[2];
+  PUCHAR TranslatedAddress;
+  ULONG Length;
+} DEBUG_DEVICE_ADDRESS, *PDEBUG_DEVICE_ADDRESS;
 
 
-typedef NTSTATUS
-(FASTCALL *pHalIoSetPartitionInformation)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG PartitionNumber,
-  IN ULONG PartitionType);
+typedef struct _DEBUG_MEMORY_REQUIREMENTS {
+  PHYSICAL_ADDRESS Start;
+  PHYSICAL_ADDRESS MaxEnd;
+  PVOID VirtualAddress;
+  ULONG Length;
+  BOOLEAN Cached;
+  BOOLEAN Aligned;
+} DEBUG_MEMORY_REQUIREMENTS, *PDEBUG_MEMORY_REQUIREMENTS;
+
+typedef struct _DEBUG_DEVICE_DESCRIPTOR {
+  ULONG Bus;
+  ULONG Slot;
+  USHORT Segment;
+  USHORT VendorID;
+  USHORT DeviceID;
+  UCHAR BaseClass;
+  UCHAR SubClass;
+  UCHAR ProgIf;
+  BOOLEAN Initialized;
+  BOOLEAN Configured;
+  DEBUG_DEVICE_ADDRESS BaseAddress[6];
+  DEBUG_MEMORY_REQUIREMENTS Memory;
+} DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR;
+
+typedef struct _PM_DISPATCH_TABLE {
+  ULONG Signature;
+  ULONG Version;
+  PVOID Function[1];
+} PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE;
+
+typedef enum _RESOURCE_TRANSLATION_DIRECTION {
+  TranslateChildToParent,
+  TranslateParentToChild
+} RESOURCE_TRANSLATION_DIRECTION;
+
+typedef NTSTATUS
+(NTAPI *PTRANSLATE_RESOURCE_HANDLER)(
+  IN OUT PVOID Context,
+  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Source,
+  IN RESOURCE_TRANSLATION_DIRECTION Direction,
+  IN ULONG AlternativesCount OPTIONAL,
+  IN IO_RESOURCE_DESCRIPTOR Alternatives[],
+  IN PDEVICE_OBJECT PhysicalDeviceObject,
+  OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR Target);
+
+typedef NTSTATUS
+(NTAPI *PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER)(
+  IN PVOID Context OPTIONAL,
+  IN PIO_RESOURCE_DESCRIPTOR Source,
+  IN PDEVICE_OBJECT PhysicalDeviceObject,
+  OUT PULONG TargetCount,
+  OUT PIO_RESOURCE_DESCRIPTOR *Target);
+
+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;
+
+typedef VOID
+(FASTCALL *pHalExamineMBR)(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG SectorSize,
+  IN ULONG MBRTypeIdentifier,
+  OUT PVOID *Buffer);
+
+typedef NTSTATUS
+(FASTCALL *pHalIoReadPartitionTable)(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG SectorSize,
+  IN BOOLEAN ReturnRecognizedPartitions,
+  OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
+
+typedef NTSTATUS
+(FASTCALL *pHalIoSetPartitionInformation)(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG SectorSize,
+  IN ULONG PartitionNumber,
+  IN ULONG PartitionType);
 
 typedef NTSTATUS
 (FASTCALL *pHalIoWritePartitionTable)(
 
 typedef NTSTATUS
 (FASTCALL *pHalIoWritePartitionTable)(
@@ -1349,6 +469,28 @@ typedef NTSTATUS
   IN ULONG NumberOfHeads,
   IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
 
   IN ULONG NumberOfHeads,
   IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
 
+typedef PBUS_HANDLER
+(FASTCALL *pHalHandlerForBus)(
+  IN INTERFACE_TYPE InterfaceType,
+  IN ULONG BusNumber);
+
+typedef VOID
+(FASTCALL *pHalReferenceBusHandler)(
+  IN PBUS_HANDLER BusHandler);
+
+typedef NTSTATUS
+(NTAPI *pHalQuerySystemInformation)(
+  IN HAL_QUERY_INFORMATION_CLASS InformationClass,
+  IN ULONG BufferSize,
+  IN OUT PVOID Buffer,
+  OUT PULONG ReturnedLength);
+
+typedef NTSTATUS
+(NTAPI *pHalSetSystemInformation)(
+  IN HAL_SET_INFORMATION_CLASS InformationClass,
+  IN ULONG BufferSize,
+  IN PVOID Buffer);
+
 typedef NTSTATUS
 (NTAPI *pHalQueryBusSlots)(
   IN PBUS_HANDLER BusHandler,
 typedef NTSTATUS
 (NTAPI *pHalQueryBusSlots)(
   IN PBUS_HANDLER BusHandler,
@@ -1360,12 +502,6 @@ typedef NTSTATUS
 (NTAPI *pHalInitPnpDriver)(
   VOID);
 
 (NTAPI *pHalInitPnpDriver)(
   VOID);
 
-typedef struct _PM_DISPATCH_TABLE {
-  ULONG Signature;
-  ULONG Version;
-  PVOID Function[1];
-} PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE;
-
 typedef NTSTATUS
 (NTAPI *pHalInitPowerManagement)(
   IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
 typedef NTSTATUS
 (NTAPI *pHalInitPowerManagement)(
   IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
@@ -1405,7 +541,12 @@ typedef NTSTATUS
   IN PHYSICAL_ADDRESS PhysicalAddress,
   IN LARGE_INTEGER NumberOfBytes);
 
   IN PHYSICAL_ADDRESS PhysicalAddress,
   IN LARGE_INTEGER NumberOfBytes);
 
-typedef BOOLEAN
+typedef VOID
+(NTAPI *pHalEndOfBoot)(
+  VOID);
+
+typedef
+BOOLEAN
 (NTAPI *pHalTranslateBusAddress)(
   IN INTERFACE_TYPE InterfaceType,
   IN ULONG BusNumber,
 (NTAPI *pHalTranslateBusAddress)(
   IN INTERFACE_TYPE InterfaceType,
   IN ULONG BusNumber,
@@ -1413,7 +554,8 @@ typedef BOOLEAN
   IN OUT PULONG AddressSpace,
   OUT PPHYSICAL_ADDRESS TranslatedAddress);
 
   IN OUT PULONG AddressSpace,
   OUT PPHYSICAL_ADDRESS TranslatedAddress);
 
-typedef NTSTATUS
+typedef
+NTSTATUS
 (NTAPI *pHalAssignSlotResources)(
   IN PUNICODE_STRING RegistryPath,
   IN PUNICODE_STRING DriverClassName OPTIONAL,
 (NTAPI *pHalAssignSlotResources)(
   IN PUNICODE_STRING RegistryPath,
   IN PUNICODE_STRING DriverClassName OPTIONAL,
@@ -1424,24 +566,23 @@ typedef NTSTATUS
   IN ULONG SlotNumber,
   IN OUT PCM_RESOURCE_LIST *AllocatedResources);
 
   IN ULONG SlotNumber,
   IN OUT PCM_RESOURCE_LIST *AllocatedResources);
 
-typedef VOID
+typedef
+VOID
 (NTAPI *pHalHaltSystem)(
   VOID);
 
 (NTAPI *pHalHaltSystem)(
   VOID);
 
-typedef BOOLEAN
+typedef
+BOOLEAN
 (NTAPI *pHalResetDisplay)(
   VOID);
 
 (NTAPI *pHalResetDisplay)(
   VOID);
 
-typedef struct _MAP_REGISTER_ENTRY {
-  PVOID MapRegister;
-  BOOLEAN WriteToDevice;
-} MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY;
-
-typedef UCHAR
+typedef
+UCHAR
 (NTAPI *pHalVectorToIDTEntry)(
   ULONG Vector);
 
 (NTAPI *pHalVectorToIDTEntry)(
   ULONG Vector);
 
-typedef BOOLEAN
+typedef
+BOOLEAN
 (NTAPI *pHalFindBusAddressTranslation)(
   IN PHYSICAL_ADDRESS BusAddress,
   IN OUT PULONG AddressSpace,
 (NTAPI *pHalFindBusAddressTranslation)(
   IN PHYSICAL_ADDRESS BusAddress,
   IN OUT PULONG AddressSpace,
@@ -1449,33 +590,94 @@ typedef BOOLEAN
   IN OUT PULONG_PTR Context,
   IN BOOLEAN NextBus);
 
   IN OUT PULONG_PTR Context,
   IN BOOLEAN NextBus);
 
-typedef VOID
-(NTAPI *pHalEndOfBoot)(
-  VOID);
+typedef
+NTSTATUS
+(NTAPI *pKdSetupPciDeviceForDebugging)(
+  IN PVOID LoaderBlock OPTIONAL,
+  IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
+
+typedef
+NTSTATUS
+(NTAPI *pKdReleasePciDeviceForDebugging)(
+  IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
+
+typedef
+PVOID
+(NTAPI *pKdGetAcpiTablePhase0)(
+  IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+  IN ULONG Signature);
 
 
-typedef PVOID
+typedef
+PVOID
 (NTAPI *pHalGetAcpiTable)(
   IN ULONG Signature,
   IN PCSTR OemId OPTIONAL,
   IN PCSTR OemTableId OPTIONAL);
 (NTAPI *pHalGetAcpiTable)(
   IN ULONG Signature,
   IN PCSTR OemId OPTIONAL,
   IN PCSTR OemTableId OPTIONAL);
+  
+typedef
+VOID
+(NTAPI *pKdCheckPowerButton)(
+  VOID);
 
 
-#if defined(_IA64_)
-typedef NTSTATUS
-(*pHalGetErrorCapList)(
-  IN OUT PULONG CapsListLength,
-  IN OUT PUCHAR ErrorCapList);
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+typedef
+PVOID
+(NTAPI *pKdMapPhysicalMemory64)(
+  IN PHYSICAL_ADDRESS PhysicalAddress,
+  IN ULONG NumberPages,
+  IN BOOLEAN FlushCurrentTLB);
 
 
-typedef NTSTATUS
-(*pHalInjectError)(
-  IN ULONG BufferLength,
-  IN PUCHAR Buffer);
+typedef
+VOID
+(NTAPI *pKdUnmapVirtualAddress)(
+  IN PVOID VirtualAddress,
+  IN ULONG NumberPages,
+  IN BOOLEAN FlushCurrentTLB);
+#else
+typedef
+PVOID
+(NTAPI *pKdMapPhysicalMemory64)(
+  IN PHYSICAL_ADDRESS PhysicalAddress,
+  IN ULONG NumberPages);
+
+typedef
+VOID
+(NTAPI *pKdUnmapVirtualAddress)(
+  IN PVOID VirtualAddress,
+  IN ULONG NumberPages);
 #endif
 
 #endif
 
-typedef VOID
+
+typedef
+ULONG
+(NTAPI *pKdGetPciDataByOffset)(
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  OUT PVOID Buffer,
+  IN ULONG Offset,
+  IN ULONG Length);
+
+typedef
+ULONG
+(NTAPI *pKdSetPciDataByOffset)(
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  IN PVOID Buffer,
+  IN ULONG Offset,
+  IN ULONG Length);
+
+typedef BOOLEAN
+(NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
+  IN ULONG Columns,
+  IN ULONG Rows);
+
+typedef
+VOID
 (NTAPI *PCI_ERROR_HANDLER_CALLBACK)(
   VOID);
 
 (NTAPI *PCI_ERROR_HANDLER_CALLBACK)(
   VOID);
 
-typedef VOID
+typedef
+VOID
 (NTAPI *pHalSetPciErrorHandlerCallback)(
   IN PCI_ERROR_HANDLER_CALLBACK Callback);
 
 (NTAPI *pHalSetPciErrorHandlerCallback)(
   IN PCI_ERROR_HANDLER_CALLBACK Callback);
 
@@ -1549,3808 +751,1967 @@ extern NTKERNELAPI HAL_DISPATCH HalDispatchTable;
 #define HalMirrorPhysicalMemory         HALDISPATCH->HalMirrorPhysicalMemory
 #define HalEndOfBoot                    HALDISPATCH->HalEndOfBoot
 #define HalMirrorVerify                 HALDISPATCH->HalMirrorVerify
 #define HalMirrorPhysicalMemory         HALDISPATCH->HalMirrorPhysicalMemory
 #define HalEndOfBoot                    HALDISPATCH->HalEndOfBoot
 #define HalMirrorVerify                 HALDISPATCH->HalMirrorVerify
-#define HalGetCachedAcpiTable           HALDISPATCH->HalGetCachedAcpiTable
-#define HalSetPciErrorHandlerCallback   HALDISPATCH->HalSetPciErrorHandlerCallback
-#if defined(_IA64_)
-#define HalGetErrorCapList              HALDISPATCH->HalGetErrorCapList
-#define HalInjectError                  HALDISPATCH->HalInjectError
-#endif
-
-typedef struct _HAL_BUS_INFORMATION {
-  INTERFACE_TYPE BusType;
-  BUS_DATA_TYPE ConfigurationType;
-  ULONG BusNumber;
-  ULONG Reserved;
-} HAL_BUS_INFORMATION, *PHAL_BUS_INFORMATION;
-
-typedef struct _HAL_PROFILE_SOURCE_INFORMATION {
-  KPROFILE_SOURCE Source;
-  BOOLEAN Supported;
-  ULONG Interval;
-} HAL_PROFILE_SOURCE_INFORMATION, *PHAL_PROFILE_SOURCE_INFORMATION;
-
-typedef struct _HAL_PROFILE_SOURCE_INFORMATION_EX {
-  KPROFILE_SOURCE Source;
-  BOOLEAN Supported;
-  ULONG_PTR Interval;
-  ULONG_PTR DefInterval;
-  ULONG_PTR MaxInterval;
-  ULONG_PTR MinInterval;
-} HAL_PROFILE_SOURCE_INFORMATION_EX, *PHAL_PROFILE_SOURCE_INFORMATION_EX;
 
 
-typedef struct _HAL_PROFILE_SOURCE_INTERVAL {
-  KPROFILE_SOURCE Source;
-  ULONG_PTR Interval;
-} HAL_PROFILE_SOURCE_INTERVAL, *PHAL_PROFILE_SOURCE_INTERVAL;
+typedef struct _FILE_ALIGNMENT_INFORMATION {
+  ULONG AlignmentRequirement;
+} FILE_ALIGNMENT_INFORMATION, *PFILE_ALIGNMENT_INFORMATION;
 
 
-typedef struct _HAL_PROFILE_SOURCE_LIST {
-  KPROFILE_SOURCE Source;
-  PWSTR Description;
-} HAL_PROFILE_SOURCE_LIST, *PHAL_PROFILE_SOURCE_LIST;
+typedef struct _FILE_NAME_INFORMATION {
+  ULONG FileNameLength;
+  WCHAR FileName[1];
+} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
 
 
-typedef enum _HAL_DISPLAY_BIOS_INFORMATION {
-  HalDisplayInt10Bios,
-  HalDisplayEmulatedBios,
-  HalDisplayNoBios
-} HAL_DISPLAY_BIOS_INFORMATION, *PHAL_DISPLAY_BIOS_INFORMATION;
 
 
-typedef struct _HAL_POWER_INFORMATION {
-  ULONG TBD;
-} HAL_POWER_INFORMATION, *PHAL_POWER_INFORMATION;
+typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
+  ULONG FileAttributes;
+  ULONG ReparseTag;
+} FILE_ATTRIBUTE_TAG_INFORMATION, *PFILE_ATTRIBUTE_TAG_INFORMATION;
 
 
-typedef struct _HAL_PROCESSOR_SPEED_INFO {
-  ULONG ProcessorSpeed;
-} HAL_PROCESSOR_SPEED_INFORMATION, *PHAL_PROCESSOR_SPEED_INFORMATION;
+typedef struct _FILE_DISPOSITION_INFORMATION {
+  BOOLEAN DeleteFile;
+} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
 
 
-typedef struct _HAL_CALLBACKS {
-  PCALLBACK_OBJECT SetSystemInformation;
-  PCALLBACK_OBJECT BusCheck;
-} HAL_CALLBACKS, *PHAL_CALLBACKS;
+typedef struct _FILE_END_OF_FILE_INFORMATION {
+  LARGE_INTEGER EndOfFile;
+} FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;
 
 
-typedef struct _HAL_PROCESSOR_FEATURE {
-  ULONG UsableFeatureBits;
-} HAL_PROCESSOR_FEATURE;
+typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {
+  LARGE_INTEGER ValidDataLength;
+} FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
 
 
-typedef NTSTATUS
-(NTAPI *PHALIOREADWRITEHANDLER)(
-  IN BOOLEAN fRead,
-  IN ULONG dwAddr,
-  IN ULONG dwSize,
-  IN OUT PULONG pdwData);
+typedef union _FILE_SEGMENT_ELEMENT {
+  PVOID64 Buffer;
+  ULONGLONG Alignment;
+}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
 
 
-typedef struct _HAL_AMLI_BAD_IO_ADDRESS_LIST {
-  ULONG BadAddrBegin;
-  ULONG BadAddrSize;
-  ULONG OSVersionTrigger;
-  PHALIOREADWRITEHANDLER IOHandler;
-} HAL_AMLI_BAD_IO_ADDRESS_LIST, *PHAL_AMLI_BAD_IO_ADDRESS_LIST;
+#define SE_UNSOLICITED_INPUT_PRIVILEGE    6
 
 
-#if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
-
-typedef VOID
-(NTAPI *PHALMCAINTERFACELOCK)(
-  VOID);
-
-typedef VOID
-(NTAPI *PHALMCAINTERFACEUNLOCK)(
-  VOID);
-
-typedef NTSTATUS
-(NTAPI *PHALMCAINTERFACEREADREGISTER)(
-  IN UCHAR BankNumber,
-  IN OUT PVOID Exception);
-
-typedef struct _HAL_MCA_INTERFACE {
-  PHALMCAINTERFACELOCK Lock;
-  PHALMCAINTERFACEUNLOCK Unlock;
-  PHALMCAINTERFACEREADREGISTER ReadRegister;
-} HAL_MCA_INTERFACE;
-
-typedef enum {
-  ApicDestinationModePhysical = 1,
-  ApicDestinationModeLogicalFlat,
-  ApicDestinationModeLogicalClustered,
-  ApicDestinationModeUnknown
-} HAL_APIC_DESTINATION_MODE, *PHAL_APIC_DESTINATION_MODE;
-
-#if defined(_AMD64_)
-
-struct _KTRAP_FRAME;
-struct _KEXCEPTION_FRAME;
-
-typedef ERROR_SEVERITY
-(NTAPI *PDRIVER_EXCPTN_CALLBACK)(
-  IN PVOID Context,
-  IN struct _KTRAP_FRAME *TrapFrame,
-  IN struct _KEXCEPTION_FRAME *ExceptionFrame,
-  IN PMCA_EXCEPTION Exception);
-
-#endif
-
-#if defined(_X86_) || defined(_IA64_)
-typedef
-#if defined(_IA64_)
-ERROR_SEVERITY
-#else
-VOID
-#endif
-(NTAPI *PDRIVER_EXCPTN_CALLBACK)(
-  IN PVOID Context,
-  IN PMCA_EXCEPTION BankLog);
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTSYSAPI
+ULONGLONG
+NTAPI
+VerSetConditionMask(
+  IN ULONGLONG ConditionMask,
+  IN ULONG TypeMask,
+  IN UCHAR Condition);
 #endif
 
 #endif
 
-typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK;
-
-typedef struct _MCA_DRIVER_INFO {
-  PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback;
-  PKDEFERRED_ROUTINE DpcCallback;
-  PVOID DeviceContext;
-} MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;
-
-typedef struct _HAL_ERROR_INFO {
-  ULONG Version;
-  ULONG InitMaxSize;
-  ULONG McaMaxSize;
-  ULONG McaPreviousEventsCount;
-  ULONG McaCorrectedEventsCount;
-  ULONG McaKernelDeliveryFails;
-  ULONG McaDriverDpcQueueFails;
-  ULONG McaReserved;
-  ULONG CmcMaxSize;
-  ULONG CmcPollingInterval;
-  ULONG CmcInterruptsCount;
-  ULONG CmcKernelDeliveryFails;
-  ULONG CmcDriverDpcQueueFails;
-  ULONG CmcGetStateFails;
-  ULONG CmcClearStateFails;
-  ULONG CmcReserved;
-  ULONGLONG CmcLogId;
-  ULONG CpeMaxSize;
-  ULONG CpePollingInterval;
-  ULONG CpeInterruptsCount;
-  ULONG CpeKernelDeliveryFails;
-  ULONG CpeDriverDpcQueueFails;
-  ULONG CpeGetStateFails;
-  ULONG CpeClearStateFails;
-  ULONG CpeInterruptSources;
-  ULONGLONG CpeLogId;
-  ULONGLONG KernelReserved[4];
-} HAL_ERROR_INFO, *PHAL_ERROR_INFO;
-
-#define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1)
-#define HAL_MCE_DISABLED          ((ULONG)0)
-
-#define HAL_CMC_INTERRUPTS_BASED  HAL_MCE_INTERRUPTS_BASED
-#define HAL_CMC_DISABLED          HAL_MCE_DISABLED
-
-#define HAL_CPE_INTERRUPTS_BASED  HAL_MCE_INTERRUPTS_BASED
-#define HAL_CPE_DISABLED          HAL_MCE_DISABLED
-
-#define HAL_MCA_INTERRUPTS_BASED  HAL_MCE_INTERRUPTS_BASED
-#define HAL_MCA_DISABLED          HAL_MCE_DISABLED
-
-typedef VOID
-(NTAPI *PDRIVER_CMC_EXCEPTION_CALLBACK)(
-  IN PVOID Context,
-  IN PCMC_EXCEPTION CmcLog);
-
-typedef VOID
-(NTAPI *PDRIVER_CPE_EXCEPTION_CALLBACK)(
-  IN PVOID Context,
-  IN PCPE_EXCEPTION CmcLog);
-
-typedef struct _CMC_DRIVER_INFO {
-  PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback;
-  PKDEFERRED_ROUTINE DpcCallback;
-  PVOID DeviceContext;
-} CMC_DRIVER_INFO, *PCMC_DRIVER_INFO;
-
-typedef struct _CPE_DRIVER_INFO {
-  PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback;
-  PKDEFERRED_ROUTINE DpcCallback;
-  PVOID DeviceContext;
-} CPE_DRIVER_INFO, *PCPE_DRIVER_INFO;
-
-#endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
-
-#if defined(_IA64_)
+#define VER_SET_CONDITION(ConditionMask, TypeBitMask, ComparisonType)  \
+        ((ConditionMask) = VerSetConditionMask((ConditionMask), \
+        (TypeBitMask), (ComparisonType)))
 
 
-typedef NTSTATUS
-(*HALSENDCROSSPARTITIONIPI)(
-  IN USHORT ProcessorID,
-  IN UCHAR HardwareVector);
+/* RtlVerifyVersionInfo() TypeMask */
 
 
-typedef NTSTATUS
-(*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
-  OUT PULONG Vector,
-  OUT PKIRQL Irql,
-  IN OUT PGROUP_AFFINITY Affinity,
-  OUT PUCHAR HardwareVector);
+#define VER_MINORVERSION                  0x0000001
+#define VER_MAJORVERSION                  0x0000002
+#define VER_BUILDNUMBER                   0x0000004
+#define VER_PLATFORMID                    0x0000008
+#define VER_SERVICEPACKMINOR              0x0000010
+#define VER_SERVICEPACKMAJOR              0x0000020
+#define VER_SUITENAME                     0x0000040
+#define VER_PRODUCT_TYPE                  0x0000080
 
 
-typedef VOID
-(*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
-  IN ULONG Vector,
-  IN PGROUP_AFFINITY Affinity);
+/* RtlVerifyVersionInfo() ComparisonType */
 
 
-typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
-  HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
-  HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
-  HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
-} HAL_CROSS_PARTITION_IPI_INTERFACE;
+#define VER_EQUAL                       1
+#define VER_GREATER                     2
+#define VER_GREATER_EQUAL               3
+#define VER_LESS                        4
+#define VER_LESS_EQUAL                  5
+#define VER_AND                         6
+#define VER_OR                          7
 
 
-#define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \
-    FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE,    \
-                 HalFreeCrossPartitionInterruptVector)
+#define VER_CONDITION_MASK              7
+#define VER_NUM_BITS_PER_CONDITION_MASK 3
 
 
-#endif /* defined(_IA64_) */
+typedef struct _IMAGE_INFO {
+  _ANONYMOUS_UNION union {
+    ULONG Properties;
+    _ANONYMOUS_STRUCT struct {
+      ULONG ImageAddressingMode:8;
+      ULONG SystemModeImage:1;
+      ULONG ImageMappedToAllPids:1;
+      ULONG ExtendedInfoPresent:1;
+      ULONG Reserved:22;
+    } DUMMYSTRUCTNAME;
+  } DUMMYUNIONNAME;
+  PVOID ImageBase;
+  ULONG ImageSelector;
+  SIZE_T ImageSize;
+  ULONG ImageSectionNumber;
+} IMAGE_INFO, *PIMAGE_INFO;
 
 
-typedef struct _HAL_PLATFORM_INFORMATION {
-  ULONG PlatformFlags;
-} HAL_PLATFORM_INFORMATION, *PHAL_PLATFORM_INFORMATION;
+#define IMAGE_ADDRESSING_MODE_32BIT       3
 
 
-#define HAL_PLATFORM_DISABLE_WRITE_COMBINING      0x01L
-#define HAL_PLATFORM_DISABLE_PTCG                 0x04L
-#define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY       0x08L
-#define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO  0x10L
-#define HAL_PLATFORM_ACPI_TABLES_CACHED           0x20L
+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;
 
 
-/******************************************************************************
- *                              Kernel Types                                  *
- ******************************************************************************/
+typedef struct _NT_TIB {
+  struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
+  PVOID StackBase;
+  PVOID StackLimit;
+  PVOID SubSystemTib;
+  _ANONYMOUS_UNION union {
+    PVOID FiberData;
+    ULONG Version;
+  } DUMMYUNIONNAME;
+  PVOID ArbitraryUserPointer;
+  struct _NT_TIB *Self;
+} NT_TIB, *PNT_TIB;
 
 
-#define NX_SUPPORT_POLICY_ALWAYSOFF 0
-#define NX_SUPPORT_POLICY_ALWAYSON 1
-#define NX_SUPPORT_POLICY_OPTIN 2
-#define NX_SUPPORT_POLICY_OPTOUT 3
+typedef struct _NT_TIB32 {
+  ULONG ExceptionList;
+  ULONG StackBase;
+  ULONG StackLimit;
+  ULONG SubSystemTib;
+  __GNU_EXTENSION union {
+    ULONG FiberData;
+    ULONG Version;
+  };
+  ULONG ArbitraryUserPointer;
+  ULONG Self;
+} NT_TIB32,*PNT_TIB32;
 
 
-typedef VOID
-(NTAPI *PEXPAND_STACK_CALLOUT)(
-  IN PVOID Parameter OPTIONAL);
+typedef struct _NT_TIB64 {
+  ULONG64 ExceptionList;
+  ULONG64 StackBase;
+  ULONG64 StackLimit;
+  ULONG64 SubSystemTib;
+  __GNU_EXTENSION union {
+    ULONG64 FiberData;
+    ULONG Version;
+  };
+  ULONG64 ArbitraryUserPointer;
+  ULONG64 Self;
+} NT_TIB64,*PNT_TIB64;
 
 
-typedef VOID
-(NTAPI *PTIMER_APC_ROUTINE)(
-  IN PVOID TimerContext,
-  IN ULONG TimerLowValue,
-  IN LONG TimerHighValue);
+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,
+  ProcessImageFileName,
+  ProcessLUIDDeviceMapsEnabled,
+  ProcessBreakOnTermination,
+  ProcessDebugObjectHandle,
+  ProcessDebugFlags,
+  ProcessHandleTracing,
+  ProcessIoPriority,
+  ProcessExecuteFlags,
+  ProcessTlsInformation,
+  ProcessCookie,
+  ProcessImageInformation,
+  ProcessCycleTime,
+  ProcessPagePriority,
+  ProcessInstrumentationCallback,
+  ProcessThreadStackAllocation,
+  ProcessWorkingSetWatchEx,
+  ProcessImageFileNameWin32,
+  ProcessImageFileMapping,
+  ProcessAffinityUpdateMode,
+  ProcessMemoryAllocationMode,
+  ProcessGroupInformation,
+  ProcessTokenVirtualizationEnabled,
+  ProcessConsoleHostProcess,
+  ProcessWindowInformation,
+  MaxProcessInfoClass
+} PROCESSINFOCLASS;
 
 
-typedef enum _TIMER_SET_INFORMATION_CLASS {
-  TimerSetCoalescableTimer,
-  MaxTimerInfoClass 
-} TIMER_SET_INFORMATION_CLASS;
+typedef enum _THREADINFOCLASS {
+  ThreadBasicInformation,
+  ThreadTimes,
+  ThreadPriority,
+  ThreadBasePriority,
+  ThreadAffinityMask,
+  ThreadImpersonationToken,
+  ThreadDescriptorTableEntry,
+  ThreadEnableAlignmentFaultFixup,
+  ThreadEventPair_Reusable,
+  ThreadQuerySetWin32StartAddress,
+  ThreadZeroTlsCell,
+  ThreadPerformanceCount,
+  ThreadAmILastThread,
+  ThreadIdealProcessor,
+  ThreadPriorityBoost,
+  ThreadSetTlsArrayAddress,
+  ThreadIsIoPending,
+  ThreadHideFromDebugger,
+  ThreadBreakOnTermination,
+  ThreadSwitchLegacyState,
+  ThreadIsTerminated,
+  ThreadLastSystemCall,
+  ThreadIoPriority,
+  ThreadCycleTime,
+  ThreadPagePriority,
+  ThreadActualBasePriority,
+  ThreadTebInformation,
+  ThreadCSwitchMon,
+  ThreadCSwitchPmu,
+  ThreadWow64Context,
+  ThreadGroupInformation,
+  ThreadUmsInformation,
+  ThreadCounterProfiling,
+  ThreadIdealProcessorEx,
+  MaxThreadInfoClass
+} THREADINFOCLASS;
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-typedef struct _TIMER_SET_COALESCABLE_TIMER_INFO {
-  IN LARGE_INTEGER DueTime;
-  IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL;
-  IN PVOID TimerContext OPTIONAL;
-  IN struct _COUNTED_REASON_CONTEXT *WakeContext OPTIONAL;
-  IN ULONG Period OPTIONAL;
-  IN ULONG TolerableDelay;
-  OUT PBOOLEAN PreviousState OPTIONAL;
-} TIMER_SET_COALESCABLE_TIMER_INFO, *PTIMER_SET_COALESCABLE_TIMER_INFO;
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#define XSTATE_LEGACY_FLOATING_POINT        0
-#define XSTATE_LEGACY_SSE                   1
-#define XSTATE_GSSE                         2
-
-#define XSTATE_MASK_LEGACY_FLOATING_POINT   (1i64 << (XSTATE_LEGACY_FLOATING_POINT))
-#define XSTATE_MASK_LEGACY_SSE              (1i64 << (XSTATE_LEGACY_SSE))
-#define XSTATE_MASK_LEGACY                  (XSTATE_MASK_LEGACY_FLOATING_POINT | XSTATE_MASK_LEGACY_SSE)
-#define XSTATE_MASK_GSSE                    (1i64 << (XSTATE_GSSE))
-
-#define MAXIMUM_XSTATE_FEATURES             64
-
-typedef struct _XSTATE_FEATURE {
-  ULONG Offset;
-  ULONG Size;
-} XSTATE_FEATURE, *PXSTATE_FEATURE;
-
-typedef struct _XSTATE_CONFIGURATION {
-  ULONG64 EnabledFeatures;
-  ULONG Size;
-  ULONG OptimizedSave:1;
-  XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES];
-} XSTATE_CONFIGURATION, *PXSTATE_CONFIGURATION;
+typedef struct _PROCESS_BASIC_INFORMATION {
+  NTSTATUS ExitStatus;
+  struct _PEB *PebBaseAddress;
+  ULONG_PTR AffinityMask;
+  KPRIORITY BasePriority;
+  ULONG_PTR UniqueProcessId;
+  ULONG_PTR InheritedFromUniqueProcessId;
+} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
 
 
-#define MAX_WOW64_SHARED_ENTRIES 16
+typedef struct _PROCESS_WS_WATCH_INFORMATION {
+  PVOID FaultingPc;
+  PVOID FaultingVa;
+} PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION;
 
 
-typedef struct _KUSER_SHARED_DATA {
-  ULONG TickCountLowDeprecated;
-  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 LargePageMinimum;
-  ULONG Reserved2[7];
-  NT_PRODUCT_TYPE NtProductType;
-  BOOLEAN ProductTypeIsValid;
-  ULONG NtMajorVersion;
-  ULONG NtMinorVersion;
-  BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX];
-  ULONG Reserved1;
-  ULONG Reserved3;
-  volatile ULONG TimeSlip;
-  ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
-  ULONG AltArchitecturePad[1];
-  LARGE_INTEGER SystemExpirationDate;
-  ULONG SuiteMask;
-  BOOLEAN KdDebuggerEnabled;
-#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
-  UCHAR NXSupportPolicy;
-#endif
-  volatile ULONG ActiveConsoleId;
-  volatile ULONG DismountCount;
-  ULONG ComPlusPackage;
-  ULONG LastSystemRITEventTickCount;
-  ULONG NumberOfPhysicalPages;
-  BOOLEAN SafeBootMode;
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  union {
-    UCHAR TscQpcData;
+typedef struct _PROCESS_DEVICEMAP_INFORMATION {
+  __GNU_EXTENSION union {
     struct {
     struct {
-      UCHAR TscQpcEnabled:1;
-      UCHAR TscQpcSpareFlag:1;
-      UCHAR TscQpcShift:6;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-  UCHAR TscQpcPad[2];
-#endif
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-  union {
-    ULONG SharedDataFlags;
-    struct {
-      ULONG DbgErrorPortPresent:1;
-      ULONG DbgElevationEnabled:1;
-      ULONG DbgVirtEnabled:1;
-      ULONG DbgInstallerDetectEnabled:1;
-      ULONG DbgSystemDllRelocated:1;
-      ULONG DbgDynProcessorEnabled:1;
-      ULONG DbgSEHValidationEnabled:1;
-      ULONG SpareBits:25;
-    } DUMMYSTRUCTNAME2;
-  } DUMMYUNIONNAME2;
-#else
-  ULONG TraceLogging;
-#endif
-  ULONG DataFlagsPad[1];
-  ULONGLONG TestRetInstruction;
-  ULONG SystemCall;
-  ULONG SystemCallReturn;
-  ULONGLONG SystemCallPad[3];
-  _ANONYMOUS_UNION union {
-    volatile KSYSTEM_TIME TickCount;
-    volatile ULONG64 TickCountQuad;
-    _ANONYMOUS_STRUCT struct {
-      ULONG ReservedTickCountOverlay[3];
-      ULONG TickCountPad[1];
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME3;
-  ULONG Cookie;
-  ULONG CookiePad[1];
-#if (NTDDI_VERSION >= NTDDI_WS03)
-  LONGLONG ConsoleSessionForegroundProcessId;
-  ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES];
-#endif
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  USHORT UserModeGlobalLogger[16];
-#else
-  USHORT UserModeGlobalLogger[8];
-  ULONG HeapTracingPid[2];
-  ULONG CritSecTracingPid[2];
-#endif
-  ULONG ImageFileExecutionOptions;
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-  ULONG LangGenerationCount;
-#else
-  /* 4 bytes padding */
-#endif
-  ULONGLONG Reserved5;
-  volatile ULONG64 InterruptTimeBias;
-#endif
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  volatile ULONG64 TscQpcBias;
-  volatile ULONG ActiveProcessorCount;
-  volatile USHORT ActiveGroupCount;
-  USHORT Reserved4;
-  volatile ULONG AitSamplingValue;
-  volatile ULONG AppCompatFlag;
-  ULONGLONG SystemDllNativeRelocation;
-  ULONG SystemDllWowRelocation;
-  ULONG XStatePad[1];
-  XSTATE_CONFIGURATION XState;
-#endif
-} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-extern NTSYSAPI volatile CCHAR KeNumberProcessors;
-#elif (NTDDI_VERSION >= NTDDI_WINXP)
-extern NTSYSAPI CCHAR KeNumberProcessors;
-#else
-extern PCCHAR KeNumberProcessors;
-#endif
-
-
-/******************************************************************************
- *                          Kernel Debugger Types                             *
- ******************************************************************************/
-typedef struct _DEBUG_DEVICE_ADDRESS {
-  UCHAR Type;
-  BOOLEAN Valid;
-  UCHAR Reserved[2];
-  PUCHAR TranslatedAddress;
-  ULONG Length;
-} DEBUG_DEVICE_ADDRESS, *PDEBUG_DEVICE_ADDRESS;
-
-typedef struct _DEBUG_MEMORY_REQUIREMENTS {
-  PHYSICAL_ADDRESS Start;
-  PHYSICAL_ADDRESS MaxEnd;
-  PVOID VirtualAddress;
-  ULONG Length;
-  BOOLEAN Cached;
-  BOOLEAN Aligned;
-} DEBUG_MEMORY_REQUIREMENTS, *PDEBUG_MEMORY_REQUIREMENTS;
-
-typedef struct _DEBUG_DEVICE_DESCRIPTOR {
-  ULONG Bus;
-  ULONG Slot;
-  USHORT Segment;
-  USHORT VendorID;
-  USHORT DeviceID;
-  UCHAR BaseClass;
-  UCHAR SubClass;
-  UCHAR ProgIf;
-  BOOLEAN Initialized;
-  BOOLEAN Configured;
-  DEBUG_DEVICE_ADDRESS BaseAddress[6];
-  DEBUG_MEMORY_REQUIREMENTS Memory;
-} DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR;
-
-typedef NTSTATUS
-(NTAPI *pKdSetupPciDeviceForDebugging)(
-  IN PVOID LoaderBlock OPTIONAL,
-  IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
-
-typedef NTSTATUS
-(NTAPI *pKdReleasePciDeviceForDebugging)(
-  IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
-
-typedef PVOID
-(NTAPI *pKdGetAcpiTablePhase0)(
-  IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
-  IN ULONG Signature);
-
-typedef VOID
-(NTAPI *pKdCheckPowerButton)(
-  VOID);
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-typedef PVOID
-(NTAPI *pKdMapPhysicalMemory64)(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN ULONG NumberPages,
-  IN BOOLEAN FlushCurrentTLB);
-
-typedef VOID
-(NTAPI *pKdUnmapVirtualAddress)(
-  IN PVOID VirtualAddress,
-  IN ULONG NumberPages,
-  IN BOOLEAN FlushCurrentTLB);
-#else
-typedef PVOID
-(NTAPI *pKdMapPhysicalMemory64)(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN ULONG NumberPages);
-
-typedef VOID
-(NTAPI *pKdUnmapVirtualAddress)(
-  IN PVOID VirtualAddress,
-  IN ULONG NumberPages);
-#endif
-
-typedef ULONG
-(NTAPI *pKdGetPciDataByOffset)(
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  OUT PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-typedef ULONG
-(NTAPI *pKdSetPciDataByOffset)(
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-/******************************************************************************
- *                         Memory manager Types                               *
- ******************************************************************************/
-
-typedef struct _PHYSICAL_MEMORY_RANGE {
-  PHYSICAL_ADDRESS BaseAddress;
-  LARGE_INTEGER NumberOfBytes;
-} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
-
-typedef NTSTATUS
-(NTAPI *PMM_ROTATE_COPY_CALLBACK_FUNCTION)(
-  IN PMDL DestinationMdl,
-  IN PMDL SourceMdl,
-  IN PVOID Context);
-
-typedef enum _MM_ROTATE_DIRECTION {
-  MmToFrameBuffer,
-  MmToFrameBufferNoCopy,
-  MmToRegularMemory,
-  MmToRegularMemoryNoCopy,
-  MmMaximumRotateDirection
-} MM_ROTATE_DIRECTION, *PMM_ROTATE_DIRECTION;
-
-
-/******************************************************************************
- *                           Process Manager Types                            *
- ******************************************************************************/
-
-#define QUOTA_LIMITS_HARDWS_MIN_ENABLE  0x00000001
-#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
-#define QUOTA_LIMITS_HARDWS_MAX_ENABLE  0x00000004
-#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008
-#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
-
-typedef struct _QUOTA_LIMITS {
-  SIZE_T PagedPoolLimit;
-  SIZE_T NonPagedPoolLimit;
-  SIZE_T MinimumWorkingSetSize;
-  SIZE_T MaximumWorkingSetSize;
-  SIZE_T PagefileLimit;
-  LARGE_INTEGER TimeLimit;
-} QUOTA_LIMITS, *PQUOTA_LIMITS;
-
-typedef union _RATE_QUOTA_LIMIT {
-  ULONG RateData;
-  struct {
-    ULONG RatePercent:7;
-    ULONG Reserved0:25;
-  } DUMMYSTRUCTNAME;
-} RATE_QUOTA_LIMIT, *PRATE_QUOTA_LIMIT;
-
-typedef struct _QUOTA_LIMITS_EX {
-  SIZE_T PagedPoolLimit;
-  SIZE_T NonPagedPoolLimit;
-  SIZE_T MinimumWorkingSetSize;
-  SIZE_T MaximumWorkingSetSize;
-  SIZE_T PagefileLimit;
-  LARGE_INTEGER TimeLimit;
-  SIZE_T WorkingSetLimit;
-  SIZE_T Reserved2;
-  SIZE_T Reserved3;
-  SIZE_T Reserved4;
-  ULONG Flags;
-  RATE_QUOTA_LIMIT CpuRateLimit;
-} QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX;
-
-typedef struct _IO_COUNTERS {
-  ULONGLONG ReadOperationCount;
-  ULONGLONG WriteOperationCount;
-  ULONGLONG OtherOperationCount;
-  ULONGLONG ReadTransferCount;
-  ULONGLONG WriteTransferCount;
-  ULONGLONG OtherTransferCount;
-} IO_COUNTERS, *PIO_COUNTERS;
-
-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, *PVM_COUNTERS;
-
-typedef struct _VM_COUNTERS_EX {
-  SIZE_T PeakVirtualSize;
-  SIZE_T VirtualSize;
-  ULONG PageFaultCount;
-  SIZE_T PeakWorkingSetSize;
-  SIZE_T WorkingSetSize;
-  SIZE_T QuotaPeakPagedPoolUsage;
-  SIZE_T QuotaPagedPoolUsage;
-  SIZE_T QuotaPeakNonPagedPoolUsage;
-  SIZE_T QuotaNonPagedPoolUsage;
-  SIZE_T PagefileUsage;
-  SIZE_T PeakPagefileUsage;
-  SIZE_T PrivateUsage;
-} VM_COUNTERS_EX, *PVM_COUNTERS_EX;
-
-#define MAX_HW_COUNTERS 16
-#define THREAD_PROFILING_FLAG_DISPATCH  0x00000001
-
-typedef enum _HARDWARE_COUNTER_TYPE {
-  PMCCounter,
-  MaxHardwareCounterType
-} HARDWARE_COUNTER_TYPE, *PHARDWARE_COUNTER_TYPE;
-
-typedef struct _HARDWARE_COUNTER {
-  HARDWARE_COUNTER_TYPE Type;
-  ULONG Reserved;
-  ULONG64 Index;
-} HARDWARE_COUNTER, *PHARDWARE_COUNTER;
-
-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, *PPOOLED_USAGE_AND_LIMITS;
-
-typedef struct _PROCESS_ACCESS_TOKEN {
-  HANDLE Token;
-  HANDLE Thread;
-} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
-
-#define PROCESS_EXCEPTION_PORT_ALL_STATE_BITS     0x00000003UL
-#define PROCESS_EXCEPTION_PORT_ALL_STATE_FLAGS    ((ULONG_PTR)((1UL << PROCESS_EXCEPTION_PORT_ALL_STATE_BITS) - 1))
-
-typedef struct _PROCESS_EXCEPTION_PORT {
-  IN HANDLE ExceptionPortHandle;
-  IN OUT ULONG StateFlags;
-} PROCESS_EXCEPTION_PORT, *PPROCESS_EXCEPTION_PORT;
-
-typedef VOID
-(NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE)(
-  IN HANDLE ParentId,
-  IN HANDLE ProcessId,
-  IN BOOLEAN Create);
-
-typedef struct _PS_CREATE_NOTIFY_INFO {
-  IN SIZE_T Size;
-  union {
-    IN ULONG Flags;
+      HANDLE DirectoryHandle;
+    } Set;
     struct {
     struct {
-      IN ULONG FileOpenNameAvailable:1;
-      IN ULONG Reserved:31;
-    };
+      ULONG DriveMap;
+      UCHAR DriveType[32];
+    } Query;
   };
   };
-  IN HANDLE ParentProcessId;
-  IN CLIENT_ID CreatingThreadId;
-  IN OUT struct _FILE_OBJECT *FileObject;
-  IN PCUNICODE_STRING ImageFileName;
-  IN PCUNICODE_STRING CommandLine OPTIONAL;
-  IN OUT NTSTATUS CreationStatus;
-} PS_CREATE_NOTIFY_INFO, *PPS_CREATE_NOTIFY_INFO;
-
-typedef VOID
-(NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE_EX)(
-  IN OUT PEPROCESS Process,
-  IN HANDLE ProcessId,
-  IN PPS_CREATE_NOTIFY_INFO CreateInfo OPTIONAL);
-
-typedef VOID
-(NTAPI *PCREATE_THREAD_NOTIFY_ROUTINE)(
-  IN HANDLE ProcessId,
-  IN HANDLE ThreadId,
-  IN BOOLEAN Create);
-
-#define IMAGE_ADDRESSING_MODE_32BIT       3
-
-typedef struct _IMAGE_INFO {
-  _ANONYMOUS_UNION union {
-    ULONG Properties;
-    _ANONYMOUS_STRUCT struct {
-      ULONG ImageAddressingMode:8;
-      ULONG SystemModeImage:1;
-      ULONG ImageMappedToAllPids:1;
-      ULONG ExtendedInfoPresent:1;
-      ULONG Reserved:21;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-  PVOID ImageBase;
-  ULONG ImageSelector;
-  SIZE_T ImageSize;
-  ULONG ImageSectionNumber;
-} IMAGE_INFO, *PIMAGE_INFO;
-
-typedef struct _IMAGE_INFO_EX {
-  SIZE_T Size;
-  IMAGE_INFO ImageInfo;
-  struct _FILE_OBJECT *FileObject;
-} IMAGE_INFO_EX, *PIMAGE_INFO_EX;
-
-typedef VOID
-(NTAPI *PLOAD_IMAGE_NOTIFY_ROUTINE)(
-  IN PUNICODE_STRING FullImageName,
-  IN HANDLE ProcessId,
-  IN PIMAGE_INFO ImageInfo);
-
-#define THREAD_CSWITCH_PMU_DISABLE  FALSE
-#define THREAD_CSWITCH_PMU_ENABLE   TRUE
-
-#define PROCESS_LUID_DOSDEVICES_ONLY 0x00000001
-
-#define PROCESS_HANDLE_TRACING_MAX_STACKS 16
+} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
 
 
-typedef struct _NT_TIB {
-  struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
-  PVOID StackBase;
-  PVOID StackLimit;
-  PVOID SubSystemTib;
-  _ANONYMOUS_UNION union {
-    PVOID FiberData;
-    ULONG Version;
-  } DUMMYUNIONNAME;
-  PVOID ArbitraryUserPointer;
-  struct _NT_TIB *Self;
-} NT_TIB, *PNT_TIB;
-
-typedef struct _NT_TIB32 {
-  ULONG ExceptionList;
-  ULONG StackBase;
-  ULONG StackLimit;
-  ULONG SubSystemTib;
-  __GNU_EXTENSION union {
-    ULONG FiberData;
-    ULONG Version;
-  };
-  ULONG ArbitraryUserPointer;
-  ULONG Self;
-} NT_TIB32,*PNT_TIB32;
-
-typedef struct _NT_TIB64 {
-  ULONG64 ExceptionList;
-  ULONG64 StackBase;
-  ULONG64 StackLimit;
-  ULONG64 SubSystemTib;
-  __GNU_EXTENSION union {
-    ULONG64 FiberData;
-    ULONG Version;
-  };
-  ULONG64 ArbitraryUserPointer;
-  ULONG64 Self;
-} NT_TIB64,*PNT_TIB64;
-
-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,
-  ProcessImageFileName,
-  ProcessLUIDDeviceMapsEnabled,
-  ProcessBreakOnTermination,
-  ProcessDebugObjectHandle,
-  ProcessDebugFlags,
-  ProcessHandleTracing,
-  ProcessIoPriority,
-  ProcessExecuteFlags,
-  ProcessTlsInformation,
-  ProcessCookie,
-  ProcessImageInformation,
-  ProcessCycleTime,
-  ProcessPagePriority,
-  ProcessInstrumentationCallback,
-  ProcessThreadStackAllocation,
-  ProcessWorkingSetWatchEx,
-  ProcessImageFileNameWin32,
-  ProcessImageFileMapping,
-  ProcessAffinityUpdateMode,
-  ProcessMemoryAllocationMode,
-  ProcessGroupInformation,
-  ProcessTokenVirtualizationEnabled,
-  ProcessConsoleHostProcess,
-  ProcessWindowInformation,
-  MaxProcessInfoClass
-} PROCESSINFOCLASS;
-
-typedef enum _THREADINFOCLASS {
-  ThreadBasicInformation,
-  ThreadTimes,
-  ThreadPriority,
-  ThreadBasePriority,
-  ThreadAffinityMask,
-  ThreadImpersonationToken,
-  ThreadDescriptorTableEntry,
-  ThreadEnableAlignmentFaultFixup,
-  ThreadEventPair_Reusable,
-  ThreadQuerySetWin32StartAddress,
-  ThreadZeroTlsCell,
-  ThreadPerformanceCount,
-  ThreadAmILastThread,
-  ThreadIdealProcessor,
-  ThreadPriorityBoost,
-  ThreadSetTlsArrayAddress,
-  ThreadIsIoPending,
-  ThreadHideFromDebugger,
-  ThreadBreakOnTermination,
-  ThreadSwitchLegacyState,
-  ThreadIsTerminated,
-  ThreadLastSystemCall,
-  ThreadIoPriority,
-  ThreadCycleTime,
-  ThreadPagePriority,
-  ThreadActualBasePriority,
-  ThreadTebInformation,
-  ThreadCSwitchMon,
-  ThreadCSwitchPmu,
-  ThreadWow64Context,
-  ThreadGroupInformation,
-  ThreadUmsInformation,
-  ThreadCounterProfiling,
-  ThreadIdealProcessorEx,
-  MaxThreadInfoClass
-} THREADINFOCLASS;
-
-typedef struct _PAGE_PRIORITY_INFORMATION {
-  ULONG PagePriority;
-} PAGE_PRIORITY_INFORMATION, *PPAGE_PRIORITY_INFORMATION;
-
-typedef struct _PROCESS_WS_WATCH_INFORMATION {
-  PVOID FaultingPc;
-  PVOID FaultingVa;
-} PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION;
-
-typedef struct _PROCESS_BASIC_INFORMATION {
-  NTSTATUS ExitStatus;
-  struct _PEB *PebBaseAddress;
-  ULONG_PTR AffinityMask;
-  KPRIORITY BasePriority;
-  ULONG_PTR UniqueProcessId;
-  ULONG_PTR InheritedFromUniqueProcessId;
-} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
-
-typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION {
-  SIZE_T Size;
-  PROCESS_BASIC_INFORMATION BasicInfo;
-  union {
-    ULONG Flags;
-    struct {
-      ULONG IsProtectedProcess:1;
-      ULONG IsWow64Process:1;
-      ULONG IsProcessDeleting:1;
-      ULONG IsCrossSessionCreate:1;
-      ULONG SpareBits:28;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-} PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION;
-
-typedef struct _PROCESS_DEVICEMAP_INFORMATION {
-  __GNU_EXTENSION union {
-    struct {
-      HANDLE DirectoryHandle;
-    } Set;
-    struct {
-      ULONG DriveMap;
-      UCHAR DriveType[32];
-    } Query;
-  };
-} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
-
-typedef struct _PROCESS_DEVICEMAP_INFORMATION_EX {
-  union {
-    struct {
-      HANDLE DirectoryHandle;
-    } Set;
-    struct {
-      ULONG DriveMap;
-      UCHAR DriveType[32];
-    } Query;
-  } DUMMYUNIONNAME;
-  ULONG Flags;
-} PROCESS_DEVICEMAP_INFORMATION_EX, *PPROCESS_DEVICEMAP_INFORMATION_EX;
-
-typedef struct _PROCESS_SESSION_INFORMATION {
-  ULONG SessionId;
-} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
-
-typedef struct _PROCESS_HANDLE_TRACING_ENABLE {
-  ULONG Flags;
-} PROCESS_HANDLE_TRACING_ENABLE, *PPROCESS_HANDLE_TRACING_ENABLE;
-
-typedef struct _PROCESS_HANDLE_TRACING_ENABLE_EX {
-  ULONG Flags;
-  ULONG TotalSlots;
-} PROCESS_HANDLE_TRACING_ENABLE_EX, *PPROCESS_HANDLE_TRACING_ENABLE_EX;
-
-typedef struct _PROCESS_HANDLE_TRACING_ENTRY {
-  HANDLE Handle;
-  CLIENT_ID ClientId;
-  ULONG Type;
-  PVOID Stacks[PROCESS_HANDLE_TRACING_MAX_STACKS];
-} PROCESS_HANDLE_TRACING_ENTRY, *PPROCESS_HANDLE_TRACING_ENTRY;
-
-typedef struct _PROCESS_HANDLE_TRACING_QUERY {
-  HANDLE Handle;
-  ULONG TotalTraces;
-  PROCESS_HANDLE_TRACING_ENTRY HandleTrace[1];
-} PROCESS_HANDLE_TRACING_QUERY, *PPROCESS_HANDLE_TRACING_QUERY;
-
-extern NTKERNELAPI PEPROCESS PsInitialSystemProcess;
-
-
-/******************************************************************************
- *                           Runtime Library Types                            *
- ******************************************************************************/
-
-
-
-#ifndef _RTL_RUN_ONCE_DEF
-#define _RTL_RUN_ONCE_DEF
-
-#define RTL_RUN_ONCE_INIT {0}
-
-#define RTL_RUN_ONCE_CHECK_ONLY     0x00000001UL
-#define RTL_RUN_ONCE_ASYNC          0x00000002UL
-#define RTL_RUN_ONCE_INIT_FAILED    0x00000004UL
-
-#define RTL_RUN_ONCE_CTX_RESERVED_BITS 2
-
-#define RTL_HASH_ALLOCATED_HEADER            0x00000001
-
-#define RTL_HASH_RESERVED_SIGNATURE 0
-
-/* RtlVerifyVersionInfo() ComparisonType */
-
-#define VER_EQUAL                       1
-#define VER_GREATER                     2
-#define VER_GREATER_EQUAL               3
-#define VER_LESS                        4
-#define VER_LESS_EQUAL                  5
-#define VER_AND                         6
-#define VER_OR                          7
-
-#define VER_CONDITION_MASK              7
-#define VER_NUM_BITS_PER_CONDITION_MASK 3
-
-/* RtlVerifyVersionInfo() TypeMask */
-
-#define VER_MINORVERSION                  0x0000001
-#define VER_MAJORVERSION                  0x0000002
-#define VER_BUILDNUMBER                   0x0000004
-#define VER_PLATFORMID                    0x0000008
-#define VER_SERVICEPACKMINOR              0x0000010
-#define VER_SERVICEPACKMAJOR              0x0000020
-#define VER_SUITENAME                     0x0000040
-#define VER_PRODUCT_TYPE                  0x0000080
-
-#define VER_NT_WORKSTATION              0x0000001
-#define VER_NT_DOMAIN_CONTROLLER        0x0000002
-#define VER_NT_SERVER                   0x0000003
-
-#define VER_PLATFORM_WIN32s             0
-#define VER_PLATFORM_WIN32_WINDOWS      1
-#define VER_PLATFORM_WIN32_NT           2
-
-typedef union _RTL_RUN_ONCE {
-  PVOID Ptr;
-} RTL_RUN_ONCE, *PRTL_RUN_ONCE;
-
-typedef ULONG /* LOGICAL */
-(NTAPI *PRTL_RUN_ONCE_INIT_FN) (
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN OUT PVOID Parameter OPTIONAL,
-  IN OUT PVOID *Context OPTIONAL);
-
-#endif /* _RTL_RUN_ONCE_DEF */
-
-typedef enum _TABLE_SEARCH_RESULT {
-  TableEmptyTree,
-  TableFoundNode,
-  TableInsertAsLeft,
-  TableInsertAsRight
-} TABLE_SEARCH_RESULT;
-
-typedef enum _RTL_GENERIC_COMPARE_RESULTS {
-  GenericLessThan,
-  GenericGreaterThan,
-  GenericEqual
-} RTL_GENERIC_COMPARE_RESULTS;
-
-// Forwarder
-struct _RTL_AVL_TABLE;
-
-typedef RTL_GENERIC_COMPARE_RESULTS
-(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN PVOID FirstStruct,
-  IN PVOID SecondStruct);
-
-typedef PVOID
-(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN CLONG ByteSize);
-
-typedef VOID
-(NTAPI *PRTL_AVL_FREE_ROUTINE) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN PVOID Buffer);
-
-typedef NTSTATUS
-(NTAPI *PRTL_AVL_MATCH_FUNCTION) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN PVOID UserData,
-  IN PVOID MatchData);
-
-typedef struct _RTL_BALANCED_LINKS {
-  struct _RTL_BALANCED_LINKS *Parent;
-  struct _RTL_BALANCED_LINKS *LeftChild;
-  struct _RTL_BALANCED_LINKS *RightChild;
-  CHAR Balance;
-  UCHAR Reserved[3];
-} RTL_BALANCED_LINKS, *PRTL_BALANCED_LINKS;
-
-typedef struct _RTL_AVL_TABLE {
-  RTL_BALANCED_LINKS BalancedRoot;
-  PVOID OrderedPointer;
-  ULONG WhichOrderedElement;
-  ULONG NumberGenericTableElements;
-  ULONG DepthOfTree;
-  PRTL_BALANCED_LINKS RestartKey;
-  ULONG DeleteCount;
-  PRTL_AVL_COMPARE_ROUTINE CompareRoutine;
-  PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
-  PRTL_AVL_FREE_ROUTINE FreeRoutine;
-  PVOID TableContext;
-} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
-
-#ifndef RTL_USE_AVL_TABLES
-
-struct _RTL_GENERIC_TABLE;
-
-typedef RTL_GENERIC_COMPARE_RESULTS
-(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
-  IN struct _RTL_GENERIC_TABLE *Table,
-  IN PVOID FirstStruct,
-  IN PVOID SecondStruct);
-
-typedef PVOID
-(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
-  IN struct _RTL_GENERIC_TABLE *Table,
-  IN CLONG ByteSize);
-
-typedef VOID
-(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
-  IN struct _RTL_GENERIC_TABLE *Table,
-  IN PVOID Buffer);
-
-typedef struct _RTL_SPLAY_LINKS {
-  struct _RTL_SPLAY_LINKS *Parent;
-  struct _RTL_SPLAY_LINKS *LeftChild;
-  struct _RTL_SPLAY_LINKS *RightChild;
-} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
-
-typedef struct _RTL_GENERIC_TABLE {
-  PRTL_SPLAY_LINKS TableRoot;
-  LIST_ENTRY InsertOrderList;
-  PLIST_ENTRY OrderedPointer;
-  ULONG WhichOrderedElement;
-  ULONG NumberGenericTableElements;
-  PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
-  PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
-  PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
-  PVOID TableContext;
-} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
-
-#endif /* !RTL_USE_AVL_TABLES */
-
-#ifdef RTL_USE_AVL_TABLES
-
-#undef PRTL_GENERIC_COMPARE_ROUTINE
-#undef RTL_GENERIC_COMPARE_ROUTINE
-#undef PRTL_GENERIC_ALLOCATE_ROUTINE
-#undef RTL_GENERIC_ALLOCATE_ROUTINE
-#undef PRTL_GENERIC_FREE_ROUTINE
-#undef RTL_GENERIC_FREE_ROUTINE
-#undef RTL_GENERIC_TABLE
-#undef PRTL_GENERIC_TABLE
-
-#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
-#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
-#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
-#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
-#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
-#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
-#define RTL_GENERIC_TABLE RTL_AVL_TABLE
-#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
-
-#endif /* RTL_USE_AVL_TABLES */
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE_ENTRY {
-  LIST_ENTRY Linkage;
-  ULONG_PTR Signature;
-} RTL_DYNAMIC_HASH_TABLE_ENTRY, *PRTL_DYNAMIC_HASH_TABLE_ENTRY;
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT {
-  PLIST_ENTRY ChainHead;
-  PLIST_ENTRY PrevLinkage;
-  ULONG_PTR Signature;
-} RTL_DYNAMIC_HASH_TABLE_CONTEXT, *PRTL_DYNAMIC_HASH_TABLE_CONTEXT;
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR {
-  RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry;
-  PLIST_ENTRY ChainHead;
-  ULONG BucketIndex;
-} RTL_DYNAMIC_HASH_TABLE_ENUMERATOR, *PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR;
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE {
-  ULONG Flags;
-  ULONG Shift;
-  ULONG TableSize;
-  ULONG Pivot;
-  ULONG DivisorMask;
-  ULONG NumEntries;
-  ULONG NonEmptyBuckets;
-  ULONG NumEnumerators;
-  PVOID Directory;
-} RTL_DYNAMIC_HASH_TABLE, *PRTL_DYNAMIC_HASH_TABLE;
-
-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;
-
-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;
-
-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;
-
-#ifdef UNICODE
-typedef OSVERSIONINFOEXW OSVERSIONINFOEX;
-typedef POSVERSIONINFOEXW POSVERSIONINFOEX;
-typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX;
-typedef OSVERSIONINFOW OSVERSIONINFO;
-typedef POSVERSIONINFOW POSVERSIONINFO;
-typedef LPOSVERSIONINFOW LPOSVERSIONINFO;
-#else
-typedef OSVERSIONINFOEXA OSVERSIONINFOEX;
-typedef POSVERSIONINFOEXA POSVERSIONINFOEX;
-typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX;
-typedef OSVERSIONINFOA OSVERSIONINFO;
-typedef POSVERSIONINFOA POSVERSIONINFO;
-typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
-#endif /* UNICODE */
-
-#define HASH_ENTRY_KEY(x)    ((x)->Signature)
-
-/******************************************************************************
- *                            Security Manager Types                          *
- ******************************************************************************/
-#define SE_UNSOLICITED_INPUT_PRIVILEGE    6
-
-typedef enum _WELL_KNOWN_SID_TYPE {
-  WinNullSid = 0,
-  WinWorldSid = 1,
-  WinLocalSid = 2,
-  WinCreatorOwnerSid = 3,
-  WinCreatorGroupSid = 4,
-  WinCreatorOwnerServerSid = 5,
-  WinCreatorGroupServerSid = 6,
-  WinNtAuthoritySid = 7,
-  WinDialupSid = 8,
-  WinNetworkSid = 9,
-  WinBatchSid = 10,
-  WinInteractiveSid = 11,
-  WinServiceSid = 12,
-  WinAnonymousSid = 13,
-  WinProxySid = 14,
-  WinEnterpriseControllersSid = 15,
-  WinSelfSid = 16,
-  WinAuthenticatedUserSid = 17,
-  WinRestrictedCodeSid = 18,
-  WinTerminalServerSid = 19,
-  WinRemoteLogonIdSid = 20,
-  WinLogonIdsSid = 21,
-  WinLocalSystemSid = 22,
-  WinLocalServiceSid = 23,
-  WinNetworkServiceSid = 24,
-  WinBuiltinDomainSid = 25,
-  WinBuiltinAdministratorsSid = 26,
-  WinBuiltinUsersSid = 27,
-  WinBuiltinGuestsSid = 28,
-  WinBuiltinPowerUsersSid = 29,
-  WinBuiltinAccountOperatorsSid = 30,
-  WinBuiltinSystemOperatorsSid = 31,
-  WinBuiltinPrintOperatorsSid = 32,
-  WinBuiltinBackupOperatorsSid = 33,
-  WinBuiltinReplicatorSid = 34,
-  WinBuiltinPreWindows2000CompatibleAccessSid = 35,
-  WinBuiltinRemoteDesktopUsersSid = 36,
-  WinBuiltinNetworkConfigurationOperatorsSid = 37,
-  WinAccountAdministratorSid = 38,
-  WinAccountGuestSid = 39,
-  WinAccountKrbtgtSid = 40,
-  WinAccountDomainAdminsSid = 41,
-  WinAccountDomainUsersSid = 42,
-  WinAccountDomainGuestsSid = 43,
-  WinAccountComputersSid = 44,
-  WinAccountControllersSid = 45,
-  WinAccountCertAdminsSid = 46,
-  WinAccountSchemaAdminsSid = 47,
-  WinAccountEnterpriseAdminsSid = 48,
-  WinAccountPolicyAdminsSid = 49,
-  WinAccountRasAndIasServersSid = 50,
-  WinNTLMAuthenticationSid = 51,
-  WinDigestAuthenticationSid = 52,
-  WinSChannelAuthenticationSid = 53,
-  WinThisOrganizationSid = 54,
-  WinOtherOrganizationSid = 55,
-  WinBuiltinIncomingForestTrustBuildersSid = 56,
-  WinBuiltinPerfMonitoringUsersSid = 57,
-  WinBuiltinPerfLoggingUsersSid = 58,
-  WinBuiltinAuthorizationAccessSid = 59,
-  WinBuiltinTerminalServerLicenseServersSid = 60,
-  WinBuiltinDCOMUsersSid = 61,
-  WinBuiltinIUsersSid = 62,
-  WinIUserSid = 63,
-  WinBuiltinCryptoOperatorsSid = 64,
-  WinUntrustedLabelSid = 65,
-  WinLowLabelSid = 66,
-  WinMediumLabelSid = 67,
-  WinHighLabelSid = 68,
-  WinSystemLabelSid = 69,
-  WinWriteRestrictedCodeSid = 70,
-  WinCreatorOwnerRightsSid = 71,
-  WinCacheablePrincipalsGroupSid = 72,
-  WinNonCacheablePrincipalsGroupSid = 73,
-  WinEnterpriseReadonlyControllersSid = 74,
-  WinAccountReadonlyControllersSid = 75,
-  WinBuiltinEventLogReadersGroup = 76,
-  WinNewEnterpriseReadonlyControllersSid = 77,
-  WinBuiltinCertSvcDComAccessGroup = 78,
-  WinMediumPlusLabelSid = 79,
-  WinLocalLogonSid = 80,
-  WinConsoleLogonSid = 81,
-  WinThisOrganizationCertificateSid = 82,
-} WELL_KNOWN_SID_TYPE;
-
-
-
-#if defined(_M_IX86)
-
-#define PAUSE_PROCESSOR YieldProcessor();
-
-#define KERNEL_STACK_SIZE                   12288
-#define KERNEL_LARGE_STACK_SIZE             61440
-#define KERNEL_LARGE_STACK_COMMIT           12288
-
-#define SIZE_OF_80387_REGISTERS   80
-
-#if !defined(RC_INVOKED)
-
-#define CONTEXT_i386               0x10000
-#define CONTEXT_i486               0x10000
-#define CONTEXT_CONTROL            (CONTEXT_i386|0x00000001L)
-#define CONTEXT_INTEGER            (CONTEXT_i386|0x00000002L)
-#define CONTEXT_SEGMENTS           (CONTEXT_i386|0x00000004L)
-#define CONTEXT_FLOATING_POINT     (CONTEXT_i386|0x00000008L)
-#define CONTEXT_DEBUG_REGISTERS    (CONTEXT_i386|0x00000010L)
-#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L)
-
-#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS)
-#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS |  \
-                     CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS |      \
-                     CONTEXT_EXTENDED_REGISTERS)
-
-#define CONTEXT_XSTATE          (CONTEXT_i386 | 0x00000040L)
-
-#endif /* !defined(RC_INVOKED) */
-
-typedef struct _FLOATING_SAVE_AREA {
-  ULONG ControlWord;
-  ULONG StatusWord;
-  ULONG TagWord;
-  ULONG ErrorOffset;
-  ULONG ErrorSelector;
-  ULONG DataOffset;
-  ULONG DataSelector;
-  UCHAR RegisterArea[SIZE_OF_80387_REGISTERS];
-  ULONG Cr0NpxState;
-} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
-
-#include "pshpack4.h"
-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[MAXIMUM_SUPPORTED_EXTENSION];
-} CONTEXT;
-#include "poppack.h"
-
-#define KeGetPcr()                      PCR
-
-#define PCR_MINOR_VERSION 1
-#define PCR_MAJOR_VERSION 1
-
-typedef struct _KPCR {
-  union {
-    NT_TIB NtTib;
-    struct {
-      struct _EXCEPTION_REGISTRATION_RECORD *Used_ExceptionList;
-      PVOID Used_StackBase;
-      PVOID Spare2;
-      PVOID TssCopy;
-      ULONG ContextSwitches;
-      KAFFINITY SetMemberCopy;
-      PVOID Used_Self;
-    };
-  };
-  struct _KPCR *SelfPcr;
-  struct _KPRCB *Prcb;
-  KIRQL Irql;
-  ULONG IRR;
-  ULONG IrrActive;
-  ULONG IDR;
-  PVOID KdVersionBlock;
-  struct _KIDTENTRY *IDT;
-  struct _KGDTENTRY *GDT;
-  struct _KTSS *TSS;
-  USHORT MajorVersion;
-  USHORT MinorVersion;
-  KAFFINITY SetMember;
-  ULONG StallScaleFactor;
-  UCHAR SpareUnused;
-  UCHAR Number;
-  UCHAR Spare0;
-  UCHAR SecondLevelCacheAssociativity;
-  ULONG VdmAlert;
-  ULONG KernelReserved[14];
-  ULONG SecondLevelCacheSize;
-  ULONG HalReserved[16];
-} KPCR, *PKPCR;
-
-FORCEINLINE
-ULONG
-KeGetCurrentProcessorNumber(VOID)
-{
-    return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number));
-}
-
-
-
-
-
-
-extern NTKERNELAPI PVOID MmHighestUserAddress;
-extern NTKERNELAPI PVOID MmSystemRangeStart;
-extern NTKERNELAPI ULONG MmUserProbeAddress;
-
-#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
-#define MM_SYSTEM_RANGE_START MmSystemRangeStart
-#if defined(_LOCAL_COPY_USER_PROBE_ADDRESS_)
-#define MM_USER_PROBE_ADDRESS _LOCAL_COPY_USER_PROBE_ADDRESS_
-extern ULONG _LOCAL_COPY_USER_PROBE_ADDRESS_;
-#else
-#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
-#endif
-#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
-#define MM_KSEG0_BASE       MM_SYSTEM_RANGE_START
-#define MM_SYSTEM_SPACE_END 0xFFFFFFFF
-#if !defined (_X86PAE_)
-#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0800000
-#else
-#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0C00000
-#endif
-
-#elif defined(_M_AMD64)
-
-#define PAUSE_PROCESSOR YieldProcessor();
-
-#define KERNEL_STACK_SIZE 0x6000
-#define KERNEL_LARGE_STACK_SIZE 0x12000
-#define KERNEL_LARGE_STACK_COMMIT KERNEL_STACK_SIZE
-
-#define KERNEL_MCA_EXCEPTION_STACK_SIZE 0x2000
-
-#define EXCEPTION_READ_FAULT    0
-#define EXCEPTION_WRITE_FAULT   1
-#define EXCEPTION_EXECUTE_FAULT 8
-
-#if !defined(RC_INVOKED)
-
-#define CONTEXT_AMD64 0x100000
-
-#define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x1L)
-#define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x2L)
-#define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x4L)
-#define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x8L)
-#define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x10L)
-
-#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
-#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
-
-#define CONTEXT_XSTATE (CONTEXT_AMD64 | 0x20L)
-
-#define CONTEXT_EXCEPTION_ACTIVE 0x8000000
-#define CONTEXT_SERVICE_ACTIVE 0x10000000
-#define CONTEXT_EXCEPTION_REQUEST 0x40000000
-#define CONTEXT_EXCEPTION_REPORTING 0x80000000
-
-#endif /* !defined(RC_INVOKED) */
-
-#define INITIAL_MXCSR                  0x1f80
-#define INITIAL_FPCSR                  0x027f
-
-typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
-  ULONG64 P1Home;
-  ULONG64 P2Home;
-  ULONG64 P3Home;
-  ULONG64 P4Home;
-  ULONG64 P5Home;
-  ULONG64 P6Home;
-  ULONG ContextFlags;
-  ULONG MxCsr;
-  USHORT SegCs;
-  USHORT SegDs;
-  USHORT SegEs;
-  USHORT SegFs;
-  USHORT SegGs;
-  USHORT SegSs;
-  ULONG EFlags;
-  ULONG64 Dr0;
-  ULONG64 Dr1;
-  ULONG64 Dr2;
-  ULONG64 Dr3;
-  ULONG64 Dr6;
-  ULONG64 Dr7;
-  ULONG64 Rax;
-  ULONG64 Rcx;
-  ULONG64 Rdx;
-  ULONG64 Rbx;
-  ULONG64 Rsp;
-  ULONG64 Rbp;
-  ULONG64 Rsi;
-  ULONG64 Rdi;
-  ULONG64 R8;
-  ULONG64 R9;
-  ULONG64 R10;
-  ULONG64 R11;
-  ULONG64 R12;
-  ULONG64 R13;
-  ULONG64 R14;
-  ULONG64 R15;
-  ULONG64 Rip;
-  union {
-    XMM_SAVE_AREA32 FltSave;
-    struct {
-      M128A Header[2];
-      M128A Legacy[8];
-      M128A Xmm0;
-      M128A Xmm1;
-      M128A Xmm2;
-      M128A Xmm3;
-      M128A Xmm4;
-      M128A Xmm5;
-      M128A Xmm6;
-      M128A Xmm7;
-      M128A Xmm8;
-      M128A Xmm9;
-      M128A Xmm10;
-      M128A Xmm11;
-      M128A Xmm12;
-      M128A Xmm13;
-      M128A Xmm14;
-      M128A Xmm15;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-  M128A VectorRegister[26];
-  ULONG64 VectorControl;
-  ULONG64 DebugControl;
-  ULONG64 LastBranchToRip;
-  ULONG64 LastBranchFromRip;
-  ULONG64 LastExceptionToRip;
-  ULONG64 LastExceptionFromRip;
-} CONTEXT;
-
-#define PCR_MINOR_VERSION 1
-#define PCR_MAJOR_VERSION 1
-
-typedef struct _KPCR
-{
-    _ANONYMOUS_UNION union
-    {
-        NT_TIB NtTib;
-        _ANONYMOUS_STRUCT struct
-        {
-            union _KGDTENTRY64 *GdtBase;
-            struct _KTSS64 *TssBase;
-            ULONG64 UserRsp;
-            struct _KPCR *Self;
-            struct _KPRCB *CurrentPrcb;
-            PKSPIN_LOCK_QUEUE LockArray;
-            PVOID Used_Self;
-        };
-    };
-    union _KIDTENTRY64 *IdtBase;
-    ULONG64 Unused[2];
-    KIRQL Irql;
-    UCHAR SecondLevelCacheAssociativity;
-    UCHAR ObsoleteNumber;
-    UCHAR Fill0;
-    ULONG Unused0[3];
-    USHORT MajorVersion;
-    USHORT MinorVersion;
-    ULONG StallScaleFactor;
-    PVOID Unused1[3];
-    ULONG KernelReserved[15];
-    ULONG SecondLevelCacheSize;
-    ULONG HalReserved[16];
-    ULONG Unused2;
-    PVOID KdVersionBlock;
-    PVOID Unused3;
-    ULONG PcrAlign1[24];
-} KPCR, *PKPCR;
-
-FORCEINLINE
-PKPCR
-KeGetPcr(VOID)
-{
-    return (PKPCR)__readgsqword(FIELD_OFFSET(KPCR, Self));
-}
-
-FORCEINLINE
-ULONG
-KeGetCurrentProcessorNumber(VOID)
-{
-    return (ULONG)__readgsword(0x184);
-}
-
-
-#define PTI_SHIFT  12L
-#define PDI_SHIFT  21L
-#define PPI_SHIFT  30L
-#define PXI_SHIFT  39L
-#define PTE_PER_PAGE 512
-#define PDE_PER_PAGE 512
-#define PPE_PER_PAGE 512
-#define PXE_PER_PAGE 512
-#define PTI_MASK_AMD64 (PTE_PER_PAGE - 1)
-#define PDI_MASK_AMD64 (PDE_PER_PAGE - 1)
-#define PPI_MASK (PPE_PER_PAGE - 1)
-#define PXI_MASK (PXE_PER_PAGE - 1)
-
-#define PXE_BASE    0xFFFFF6FB7DBED000ULL
-#define PXE_SELFMAP 0xFFFFF6FB7DBEDF68ULL
-#define PPE_BASE    0xFFFFF6FB7DA00000ULL
-#define PDE_BASE    0xFFFFF6FB40000000ULL
-#define PTE_BASE    0xFFFFF68000000000ULL
-#define PXE_TOP     0xFFFFF6FB7DBEDFFFULL
-#define PPE_TOP     0xFFFFF6FB7DBFFFFFULL
-#define PDE_TOP     0xFFFFF6FB7FFFFFFFULL
-#define PTE_TOP     0xFFFFF6FFFFFFFFFFULL
-
-extern NTKERNELAPI PVOID MmHighestUserAddress;
-extern NTKERNELAPI PVOID MmSystemRangeStart;
-extern NTKERNELAPI ULONG64 MmUserProbeAddress;
-
-#define MM_HIGHEST_USER_ADDRESS           MmHighestUserAddress
-#define MM_SYSTEM_RANGE_START             MmSystemRangeStart
-#define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
-#define MM_LOWEST_USER_ADDRESS   (PVOID)0x10000
-#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
-
-
-#elif defined(_M_IA64)
-
-#elif defined(_M_PPC)
-
-
-#elif defined(_M_MIPS)
-
-#elif defined(_M_ARM)
-#else
-#error Unknown Architecture
-#endif
-
-/******************************************************************************
- *                          Executive Functions                               *
- ******************************************************************************/
-static __inline PVOID
-ExAllocateFromZone(
-  IN PZONE_HEADER Zone)
-{
-  if (Zone->FreeList.Next)
-    Zone->FreeList.Next = Zone->FreeList.Next->Next;
-  return (PVOID) Zone->FreeList.Next;
-}
-
-static __inline PVOID
-ExFreeToZone(
-  IN PZONE_HEADER Zone,
-  IN PVOID Block)
-{
-  ((PSINGLE_LIST_ENTRY) Block)->Next = Zone->FreeList.Next;
-  Zone->FreeList.Next = ((PSINGLE_LIST_ENTRY) Block);
-  return ((PSINGLE_LIST_ENTRY) Block)->Next;
-}
-
-/*
- * PVOID
- * ExInterlockedAllocateFromZone(
- *   IN PZONE_HEADER  Zone,
- *   IN PKSPIN_LOCK  Lock)
- */
-#define ExInterlockedAllocateFromZone(Zone, Lock) \
-    ((PVOID) ExInterlockedPopEntryList(&Zone->FreeList, Lock))
-
-/* PVOID
- * ExInterlockedFreeToZone(
- *  IN PZONE_HEADER  Zone,
- *  IN PVOID  Block,
- *  IN PKSPIN_LOCK  Lock);
- */
-#define ExInterlockedFreeToZone(Zone, Block, Lock) \
-    ExInterlockedPushEntryList(&(Zone)->FreeList, (PSINGLE_LIST_ENTRY)(Block), Lock)
-
-/*
- * BOOLEAN
- * ExIsFullZone(
- *  IN PZONE_HEADER  Zone)
- */
-#define ExIsFullZone(Zone) \
-  ((Zone)->FreeList.Next == (PSINGLE_LIST_ENTRY) NULL)
-
-/* BOOLEAN
- * ExIsObjectInFirstZoneSegment(
- *     IN PZONE_HEADER Zone,
- *     IN PVOID Object);
- */
-#define ExIsObjectInFirstZoneSegment(Zone,Object) \
-    ((BOOLEAN)( ((PUCHAR)(Object) >= (PUCHAR)(Zone)->SegmentList.Next) && \
-                ((PUCHAR)(Object) <  (PUCHAR)(Zone)->SegmentList.Next + \
-                         (Zone)->TotalSegmentSize)) )
-
-#define ExAcquireResourceExclusive ExAcquireResourceExclusiveLite
-#define ExAcquireResourceShared ExAcquireResourceSharedLite
-#define ExConvertExclusiveToShared ExConvertExclusiveToSharedLite
-#define ExDeleteResource ExDeleteResourceLite
-#define ExInitializeResource ExInitializeResourceLite
-#define ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite
-#define ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite
-#define ExIsResourceAcquired ExIsResourceAcquiredSharedLite
-#define ExReleaseResourceForThread ExReleaseResourceForThreadLite
-
-typedef enum _INTERLOCKED_RESULT {
-  ResultNegative = RESULT_NEGATIVE,
-  ResultZero = RESULT_ZERO,
-  ResultPositive = RESULT_POSITIVE
-} INTERLOCKED_RESULT;
-
-#ifdef _X86_
-NTKERNELAPI
-INTERLOCKED_RESULT
-FASTCALL
-Exfi386InterlockedIncrementLong(
-  IN OUT LONG volatile *Addend);
-
-NTKERNELAPI
-INTERLOCKED_RESULT
-FASTCALL
-Exfi386InterlockedDecrementLong(
-  IN PLONG  Addend);
-
-NTKERNELAPI
-ULONG
-FASTCALL
-Exfi386InterlockedExchangeUlong(
-  IN PULONG  Target,
-  IN ULONG  Value);
-#endif
-
-
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExExtendZone(
-  IN OUT PZONE_HEADER Zone,
-  IN OUT PVOID Segment,
-  IN ULONG SegmentSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExInitializeZone(
-  OUT PZONE_HEADER Zone,
-  IN ULONG BlockSize,
-  IN OUT PVOID InitialSegment,
-  IN ULONG InitialSegmentSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExInterlockedExtendZone(
-  IN OUT PZONE_HEADER Zone,
-  IN OUT PVOID Segment,
-  IN ULONG SegmentSize,
-  IN OUT PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExUuidCreate(
-  OUT UUID *Uuid);
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-ExRaiseAccessViolation(VOID);
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-ExRaiseDatatypeMisalignment(VOID);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-
-/* Hardware Abstraction Layer Functions */
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
-
-/* Nothing here */
-
-#else /* USE_DMA_MACROS ... */
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-VOID
-NTAPI
-IoFreeAdapterChannel(
-  IN PADAPTER_OBJECT AdapterObject);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-BOOLEAN
-NTAPI
-IoFlushAdapterBuffers(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN BOOLEAN WriteToDevice);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-VOID
-NTAPI
-IoFreeMapRegisters(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PVOID MapRegisterBase,
-  IN ULONG NumberOfMapRegisters);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-PVOID
-NTAPI
-HalAllocateCommonBuffer(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN ULONG Length,
-  OUT PPHYSICAL_ADDRESS LogicalAddress,
-  IN BOOLEAN CacheEnabled);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-VOID
-NTAPI
-HalFreeCommonBuffer(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN ULONG Length,
-  IN PHYSICAL_ADDRESS LogicalAddress,
-  IN PVOID VirtualAddress,
-  IN BOOLEAN CacheEnabled);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-ULONG
-NTAPI
-HalReadDmaCounter(
-  IN PADAPTER_OBJECT AdapterObject);
-
-NTHALAPI
-NTSTATUS
-NTAPI
-HalAllocateAdapterChannel(
-  IN PADAPTER_OBJECT  AdapterObject,
-  IN PWAIT_CONTEXT_BLOCK  Wcb,
-  IN ULONG  NumberOfMapRegisters,
-  IN PDRIVER_CONTROL  ExecutionRoutine);
-
-#endif /* USE_DMA_MACROS ... */
-
-#if !defined(NO_LEGACY_DRIVERS)
-NTHALAPI
-NTSTATUS
-NTAPI
-HalAssignSlotResources(
-  IN PUNICODE_STRING RegistryPath,
-  IN PUNICODE_STRING DriverClassName,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN INTERFACE_TYPE BusType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN OUT PCM_RESOURCE_LIST *AllocatedResources);
-
-NTHALAPI
-ULONG
-NTAPI
-HalGetInterruptVector(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber,
-  IN ULONG BusInterruptLevel,
-  IN ULONG BusInterruptVector,
-  OUT PKIRQL Irql,
-  OUT PKAFFINITY Affinity);
-
-NTHALAPI
-ULONG
-NTAPI
-HalSetBusData(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PVOID Buffer,
-  IN ULONG Length);
-
-NTHALAPI
-ULONG
-NTAPI
-HalGetBusData(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  OUT PVOID Buffer,
-  IN ULONG Length);
-
-NTHALAPI
-BOOLEAN
-NTAPI
-HalMakeBeep(
-  IN ULONG Frequency);
-#endif /* !defined(NO_LEGACY_DRIVERS) */
-
-NTHALAPI
-PADAPTER_OBJECT
-NTAPI
-HalGetAdapter(
-  IN PDEVICE_DESCRIPTION DeviceDescription,
-  OUT PULONG NumberOfMapRegisters);
-
-VOID
-NTAPI
-HalPutDmaAdapter(
-  IN PADAPTER_OBJECT DmaAdapter);
-
-NTHALAPI
-VOID
-NTAPI
-HalAcquireDisplayOwnership(
-  IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters);
-
-NTHALAPI
-ULONG
-NTAPI
-HalGetBusDataByOffset(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  OUT PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-NTHALAPI
-ULONG
-NTAPI
-HalSetBusDataByOffset(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-NTHALAPI
-BOOLEAN
-NTAPI
-HalTranslateBusAddress(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber,
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN OUT PULONG AddressSpace,
-  OUT PPHYSICAL_ADDRESS TranslatedAddress);
-
-NTHALAPI
-PVOID
-NTAPI
-HalAllocateCrashDumpRegisters(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN OUT PULONG NumberOfMapRegisters);
-
-NTSTATUS
-NTAPI
-HalGetScatterGatherList(
-  IN PADAPTER_OBJECT DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PMDL Mdl,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN PDRIVER_LIST_CONTROL ExecutionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN WriteToDevice);
-
-VOID
-NTAPI
-HalPutScatterGatherList(
-  IN PADAPTER_OBJECT DmaAdapter,
-  IN PSCATTER_GATHER_LIST ScatterGather,
-  IN BOOLEAN WriteToDevice);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-VOID
-FASTCALL
-HalExamineMBR(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG MBRTypeIdentifier,
-  OUT PVOID *Buffer);
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-NTSTATUS
-NTAPI
-HalAllocateHardwareCounters(
-  IN PGROUP_AFFINITY GroupAffinty,
-  IN ULONG GroupCount,
-  IN PPHYSICAL_COUNTER_RESOURCE_LIST ResourceList,
-  OUT PHANDLE CounterSetHandle);
-
-NTSTATUS
-NTAPI
-HalFreeHardwareCounters(
-  IN HANDLE CounterSetHandle);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#if defined(_IA64_)
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTHALAPI
-ULONG
-NTAPI
-HalGetDmaAlignmentRequirement(VOID);
-#endif
-#endif /* defined(_IA64_) */
-
-#if defined(_M_IX86) || defined(_M_AMD64)
-#define HalGetDmaAlignmentRequirement() 1L
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-typedef struct _WHEA_ERROR_SOURCE_DESCRIPTOR *PWHEA_ERROR_SOURCE_DESCRIPTOR;
-typedef struct _WHEA_ERROR_RECORD *PWHEA_ERROR_RECORD;
-
-NTHALAPI
-VOID
-NTAPI
-HalBugCheckSystem(
-  IN PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
-  IN PWHEA_ERROR_RECORD ErrorRecord);
-
-#else
-
-typedef struct _WHEA_ERROR_RECORD *PWHEA_ERROR_RECORD;
-
-NTHALAPI
-VOID
-NTAPI
-HalBugCheckSystem(
-  IN PWHEA_ERROR_RECORD ErrorRecord);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-
-/******************************************************************************
- *                         I/O Manager Functions                              *
- ******************************************************************************/
-/*
- * VOID IoAssignArcName(
- *   IN PUNICODE_STRING  ArcName,
- *   IN PUNICODE_STRING  DeviceName);
- */
-#define IoAssignArcName(_ArcName, _DeviceName) ( \
-  IoCreateSymbolicLink((_ArcName), (_DeviceName)))
-
-/*
- * VOID
- * IoDeassignArcName(
- *   IN PUNICODE_STRING  ArcName)
- */
-#define IoDeassignArcName IoDeleteSymbolicLink
-
-VOID
-FORCEINLINE
-NTAPI
-IoInitializeDriverCreateContext(
-  PIO_DRIVER_CREATE_CONTEXT DriverContext)
-{
-  RtlZeroMemory(DriverContext, sizeof(IO_DRIVER_CREATE_CONTEXT));
-  DriverContext->Size = sizeof(IO_DRIVER_CREATE_CONTEXT);
-}
-
-
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-#if !(defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_))
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAllocateAdapterChannel(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG NumberOfMapRegisters,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context);
-#endif
-
-#if !defined(DMA_MACROS_DEFINED)
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-PHYSICAL_ADDRESS
-NTAPI
-IoMapTransfer(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN OUT PULONG Length,
-  IN BOOLEAN WriteToDevice);
-#endif
-
-NTKERNELAPI
-VOID
-NTAPI
-IoAllocateController(
-  IN PCONTROLLER_OBJECT ControllerObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-PCONTROLLER_OBJECT
-NTAPI
-IoCreateController(
-  IN ULONG Size);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoDeleteController(
-  IN PCONTROLLER_OBJECT ControllerObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoFreeController(
-  IN PCONTROLLER_OBJECT ControllerObject);
-
-NTKERNELAPI
-PCONFIGURATION_INFORMATION
-NTAPI
-IoGetConfigurationInformation(VOID);
-
-NTKERNELAPI
-PDEVICE_OBJECT
-NTAPI
-IoGetDeviceToVerify(
-  IN PETHREAD Thread);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoCancelFileOpen(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PFILE_OBJECT FileObject);
-
-NTKERNELAPI
-PGENERIC_MAPPING
-NTAPI
-IoGetFileObjectGenericMapping(VOID);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoMakeAssociatedIrp(
-  IN PIRP Irp,
-  IN CCHAR StackSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoQueryDeviceDescription(
-  IN PINTERFACE_TYPE BusType OPTIONAL,
-  IN PULONG BusNumber OPTIONAL,
-  IN PCONFIGURATION_TYPE ControllerType OPTIONAL,
-  IN PULONG ControllerNumber OPTIONAL,
-  IN PCONFIGURATION_TYPE PeripheralType OPTIONAL,
-  IN PULONG PeripheralNumber OPTIONAL,
-  IN PIO_QUERY_DEVICE_ROUTINE CalloutRoutine,
-  IN OUT PVOID Context OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRaiseHardError(
-  IN PIRP Irp,
-  IN PVPB Vpb OPTIONAL,
-  IN PDEVICE_OBJECT RealDeviceObject);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoRaiseInformationalHardError(
-  IN NTSTATUS ErrorStatus,
-  IN PUNICODE_STRING String OPTIONAL,
-  IN PKTHREAD Thread OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRegisterBootDriverReinitialization(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRegisterDriverReinitialization(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAttachDeviceByPointer(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PDEVICE_OBJECT TargetDevice);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportDetectedDevice(
-  IN PDRIVER_OBJECT DriverObject,
-  IN INTERFACE_TYPE LegacyBusType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PCM_RESOURCE_LIST ResourceList OPTIONAL,
-  IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL,
-  IN BOOLEAN ResourceAssigned,
-  IN OUT PDEVICE_OBJECT *DeviceObject OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportResourceForDetection(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PCM_RESOURCE_LIST DriverList OPTIONAL,
-  IN ULONG DriverListSize OPTIONAL,
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
-  IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
-  IN ULONG DeviceListSize OPTIONAL,
-  OUT PBOOLEAN ConflictDetected);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportResourceUsage(
-  IN PUNICODE_STRING DriverClassName OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PCM_RESOURCE_LIST DriverList OPTIONAL,
-  IN ULONG DriverListSize OPTIONAL,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
-  IN ULONG DeviceListSize OPTIONAL,
-  IN BOOLEAN OverrideConflict,
-  OUT PBOOLEAN ConflictDetected);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoSetHardErrorOrVerifyDevice(
-  IN PIRP Irp,
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAssignResources(
-  IN PUNICODE_STRING RegistryPath,
-  IN PUNICODE_STRING DriverClassName OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
-  IN PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources OPTIONAL,
-  IN OUT PCM_RESOURCE_LIST *AllocatedResources);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoSetThreadHardErrorMode(
-  IN BOOLEAN EnableHardErrors);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoIsFileOriginRemote(
-  IN PFILE_OBJECT FileObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetFileOrigin(
-  IN PFILE_OBJECT FileObject,
-  IN BOOLEAN Remote);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2KSP3) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-NTSTATUS
-FASTCALL
-IoReadPartitionTable(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN BOOLEAN ReturnRecognizedPartitions,
-  OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
+typedef struct _KERNEL_USER_TIMES {
+  LARGE_INTEGER CreateTime;
+  LARGE_INTEGER ExitTime;
+  LARGE_INTEGER KernelTime;
+  LARGE_INTEGER UserTime;
+} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
 
 
-NTKERNELAPI
-NTSTATUS
-FASTCALL
-IoSetPartitionInformation(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG PartitionNumber,
-  IN ULONG PartitionType);
+typedef struct _PROCESS_ACCESS_TOKEN {
+  HANDLE Token;
+  HANDLE Thread;
+} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
 
 
-NTKERNELAPI
-NTSTATUS
-FASTCALL
-IoWritePartitionTable(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG SectorsPerTrack,
-  IN ULONG NumberOfHeads,
-  IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
+typedef struct _PROCESS_SESSION_INFORMATION {
+  ULONG SessionId;
+} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateDisk(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN struct _CREATE_DISK* Disk OPTIONAL);
+typedef enum _IO_QUERY_DEVICE_DATA_FORMAT {
+  IoQueryDeviceIdentifier = 0,
+  IoQueryDeviceConfigurationData,
+  IoQueryDeviceComponentInformation,
+  IoQueryDeviceMaxData
+} IO_QUERY_DEVICE_DATA_FORMAT, *PIO_QUERY_DEVICE_DATA_FORMAT;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReadDiskSignature(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG BytesPerSector,
-  OUT PDISK_SIGNATURE Signature);
+typedef struct _DISK_SIGNATURE {
+  ULONG PartitionStyle;
+  _ANONYMOUS_UNION union {
+    struct {
+      ULONG Signature;
+      ULONG CheckSum;
+    } Mbr;
+    struct {
+      GUID DiskId;
+    } Gpt;
+  } DUMMYUNIONNAME;
+} DISK_SIGNATURE, *PDISK_SIGNATURE;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReadPartitionTableEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  OUT struct _DRIVE_LAYOUT_INFORMATION_EX **PartitionBuffer);
+typedef ULONG_PTR
+(NTAPI *PDRIVER_VERIFIER_THUNK_ROUTINE)(
+  IN PVOID Context);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetPartitionInformationEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG PartitionNumber,
-  IN struct _SET_PARTITION_INFORMATION_EX *PartitionInfo);
+typedef struct _DRIVER_VERIFIER_THUNK_PAIRS {
+  PDRIVER_VERIFIER_THUNK_ROUTINE PristineRoutine;
+  PDRIVER_VERIFIER_THUNK_ROUTINE NewRoutine;
+} DRIVER_VERIFIER_THUNK_PAIRS, *PDRIVER_VERIFIER_THUNK_PAIRS;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetSystemPartition(
-  IN PUNICODE_STRING VolumeNameString);
+#define DRIVER_VERIFIER_SPECIAL_POOLING             0x0001
+#define DRIVER_VERIFIER_FORCE_IRQL_CHECKING         0x0002
+#define DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES  0x0004
+#define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS      0x0008
+#define DRIVER_VERIFIER_IO_CHECKING                 0x0010
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoVerifyPartitionTable(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN FixErrors);
+typedef VOID
+(NTAPI *PTIMER_APC_ROUTINE)(
+  IN PVOID TimerContext,
+  IN ULONG TimerLowValue,
+  IN LONG TimerHighValue);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoVolumeDeviceToDosName(
-  IN PVOID VolumeDeviceObject,
-  OUT PUNICODE_STRING DosName);
+typedef struct _KUSER_SHARED_DATA
+{
+    ULONG TickCountLowDeprecated;
+    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 LargePageMinimum;
+    ULONG Reserved2[7];
+    NT_PRODUCT_TYPE NtProductType;
+    BOOLEAN ProductTypeIsValid;
+    ULONG NtMajorVersion;
+    ULONG NtMinorVersion;
+    BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX];
+    ULONG Reserved1;
+    ULONG Reserved3;
+    volatile ULONG TimeSlip;
+    ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
+    ULONG AltArchitecturePad[1];
+    LARGE_INTEGER SystemExpirationDate;
+    ULONG SuiteMask;
+    BOOLEAN KdDebuggerEnabled;
+#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
+    UCHAR NXSupportPolicy;
+#endif
+    volatile ULONG ActiveConsoleId;
+    volatile ULONG DismountCount;
+    ULONG ComPlusPackage;
+    ULONG LastSystemRITEventTickCount;
+    ULONG NumberOfPhysicalPages;
+    BOOLEAN SafeBootMode;
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+    union {
+        UCHAR TscQpcData;
+        struct {
+            UCHAR TscQpcEnabled:1;
+            UCHAR TscQpcSpareFlag:1;
+            UCHAR TscQpcShift:6;
+        } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME;
+    UCHAR TscQpcPad[2];
+#endif
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+    union {
+        ULONG SharedDataFlags;
+        struct {
+            ULONG DbgErrorPortPresent:1;
+            ULONG DbgElevationEnabled:1;
+            ULONG DbgVirtEnabled:1;
+            ULONG DbgInstallerDetectEnabled:1;
+            ULONG DbgSystemDllRelocated:1;
+            ULONG DbgDynProcessorEnabled:1;
+            ULONG DbgSEHValidationEnabled:1;
+            ULONG SpareBits:25;
+        } DUMMYSTRUCTNAME2;
+    } DUMMYUNIONNAME2;
+#else
+    ULONG TraceLogging;
+#endif
+    ULONG DataFlagsPad[1];
+    ULONGLONG TestRetInstruction;
+    ULONG SystemCall;
+    ULONG SystemCallReturn;
+    ULONGLONG SystemCallPad[3];
+    _ANONYMOUS_UNION union {
+        volatile KSYSTEM_TIME TickCount;
+        volatile ULONG64 TickCountQuad;
+        _ANONYMOUS_STRUCT struct {
+            ULONG ReservedTickCountOverlay[3];
+            ULONG TickCountPad[1];
+        } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME3;
+    ULONG Cookie;
+    ULONG CookiePad[1];
+#if (NTDDI_VERSION >= NTDDI_WS03)
+    LONGLONG ConsoleSessionForegroundProcessId;
+    ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES];
+#endif
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+    USHORT UserModeGlobalLogger[16];
+#else
+    USHORT UserModeGlobalLogger[8];
+    ULONG HeapTracingPid[2];
+    ULONG CritSecTracingPid[2];
+#endif
+    ULONG ImageFileExecutionOptions;
+#if (NTDDI_VERSION >= NTDDI_VISTASP1)
+    ULONG LangGenerationCount;
+#else
+    /* 4 bytes padding */
+#endif
+    ULONGLONG Reserved5;
+    volatile ULONG64 InterruptTimeBias;
+#endif
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+    volatile ULONG64 TscQpcBias;
+    volatile ULONG ActiveProcessorCount;
+    volatile USHORT ActiveGroupCount;
+    USHORT Reserved4;
+    volatile ULONG AitSamplingValue;
+    volatile ULONG AppCompatFlag;
+    ULONGLONG SystemDllNativeRelocation;
+    ULONG SystemDllWowRelocation;
+    ULONG XStatePad[1];
+    XSTATE_CONFIGURATION XState;
+#endif
+} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWritePartitionTableEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout);
+extern NTKERNELAPI PVOID MmHighestUserAddress;
+extern NTKERNELAPI PVOID MmSystemRangeStart;
+extern NTKERNELAPI ULONG MmUserProbeAddress;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateFileSpecifyDeviceObjectHint(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG Disposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength,
-  IN CREATE_FILE_TYPE CreateFileType,
-  IN PVOID InternalParameters OPTIONAL,
-  IN ULONG Options,
-  IN PVOID DeviceObject OPTIONAL);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAttachDeviceToDeviceStackSafe(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PDEVICE_OBJECT TargetDevice,
-  OUT PDEVICE_OBJECT *AttachedToDeviceObject);
+#ifdef _X86_
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
+#define MM_SYSTEM_RANGE_START MmSystemRangeStart
+#if defined(_LOCAL_COPY_USER_PROBE_ADDRESS_)
+#define MM_USER_PROBE_ADDRESS _LOCAL_COPY_USER_PROBE_ADDRESS_
+extern ULONG _LOCAL_COPY_USER_PROBE_ADDRESS_;
+#else
+#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
+#endif
+#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
+#define MM_KSEG0_BASE       MM_SYSTEM_RANGE_START
+#define MM_SYSTEM_SPACE_END 0xFFFFFFFF
+#if !defined (_X86PAE_)
+#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0800000
+#else
+#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0C00000
+#endif
 
 
+#define KeGetPcr()                      PCR
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
-NTKERNELAPI
-IO_PAGING_PRIORITY
-FASTCALL
-IoGetPagingIoPriority(
-  IN PIRP Irp);
+#define KERNEL_STACK_SIZE                   12288
+#define KERNEL_LARGE_STACK_SIZE             61440
+#define KERNEL_LARGE_STACK_COMMIT           12288
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
+#define SIZE_OF_80387_REGISTERS   80
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-BOOLEAN
-NTAPI
-IoTranslateBusAddress(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber,
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN OUT PULONG AddressSpace,
-  OUT PPHYSICAL_ADDRESS TranslatedAddress);
-#endif
+#define PCR_MINOR_VERSION 1
+#define PCR_MAJOR_VERSION 1
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoUpdateDiskGeometry(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN struct _DISK_GEOMETRY_EX* OldDiskGeometry,
-  IN struct _DISK_GEOMETRY_EX* NewDiskGeometry);
+#if !defined(RC_INVOKED)
 
 
-PTXN_PARAMETER_BLOCK
-NTAPI
-IoGetTransactionParameterBlock(
-  IN PFILE_OBJECT FileObject);
+#define CONTEXT_i386               0x10000
+#define CONTEXT_i486               0x10000
+#define CONTEXT_CONTROL            (CONTEXT_i386|0x00000001L)
+#define CONTEXT_INTEGER            (CONTEXT_i386|0x00000002L)
+#define CONTEXT_SEGMENTS           (CONTEXT_i386|0x00000004L)
+#define CONTEXT_FLOATING_POINT     (CONTEXT_i386|0x00000008L)
+#define CONTEXT_DEBUG_REGISTERS    (CONTEXT_i386|0x00000010L)
+#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L)
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateFileEx(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG Disposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength,
-  IN CREATE_FILE_TYPE CreateFileType,
-  IN PVOID InternalParameters OPTIONAL,
-  IN ULONG Options,
-  IN PIO_DRIVER_CREATE_CONTEXT DriverContext OPTIONAL);
+#define CONTEXT_FULL  (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS)
 
 
-NTSTATUS
-NTAPI
-IoSetIrpExtraCreateParameter(
-  IN OUT PIRP Irp,
-  IN struct _ECP_LIST *ExtraCreateParameter);
+#endif /* !defined(RC_INVOKED) */
 
 
-VOID
-NTAPI
-IoClearIrpExtraCreateParameter(
-  IN OUT PIRP Irp);
+typedef struct _KPCR {
+  union {
+    NT_TIB NtTib;
+    struct {
+      struct _EXCEPTION_REGISTRATION_RECORD *Used_ExceptionList;
+      PVOID Used_StackBase;
+      PVOID Spare2;
+      PVOID TssCopy;
+      ULONG ContextSwitches;
+      KAFFINITY SetMemberCopy;
+      PVOID Used_Self;
+    };
+  };
+  struct _KPCR *SelfPcr;
+  struct _KPRCB *Prcb;
+  KIRQL Irql;
+  ULONG IRR;
+  ULONG IrrActive;
+  ULONG IDR;
+  PVOID KdVersionBlock;
+  struct _KIDTENTRY *IDT;
+  struct _KGDTENTRY *GDT;
+  struct _KTSS *TSS;
+  USHORT MajorVersion;
+  USHORT MinorVersion;
+  KAFFINITY SetMember;
+  ULONG StallScaleFactor;
+  UCHAR SpareUnused;
+  UCHAR Number;
+  UCHAR Spare0;
+  UCHAR SecondLevelCacheAssociativity;
+  ULONG VdmAlert;
+  ULONG KernelReserved[14];
+  ULONG SecondLevelCacheSize;
+  ULONG HalReserved[16];
+} KPCR, *PKPCR;
+
+FORCEINLINE
+ULONG
+KeGetCurrentProcessorNumber(VOID)
+{
+    return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number));
+}
+
+typedef struct _FLOATING_SAVE_AREA {
+  ULONG ControlWord;
+  ULONG StatusWord;
+  ULONG TagWord;
+  ULONG ErrorOffset;
+  ULONG ErrorSelector;
+  ULONG DataOffset;
+  ULONG DataSelector;
+  UCHAR RegisterArea[SIZE_OF_80387_REGISTERS];
+  ULONG Cr0NpxState;
+} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
 
 
-NTSTATUS
-NTAPI
-IoGetIrpExtraCreateParameter(
-  IN PIRP Irp,
-  OUT struct _ECP_LIST **ExtraCreateParameter OPTIONAL);
+#include "pshpack4.h"
+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[MAXIMUM_SUPPORTED_EXTENSION];
+} CONTEXT;
+#include "poppack.h"
 
 
-BOOLEAN
-NTAPI
-IoIsFileObjectIgnoringSharing(
-  IN PFILE_OBJECT FileObject);
+#endif /* _X86_ */
 
 
+#ifdef _AMD64_
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+#define PTI_SHIFT  12L
+#define PDI_SHIFT  21L
+#define PPI_SHIFT  30L
+#define PXI_SHIFT  39L
+#define PTE_PER_PAGE 512
+#define PDE_PER_PAGE 512
+#define PPE_PER_PAGE 512
+#define PXE_PER_PAGE 512
+#define PTI_MASK_AMD64 (PTE_PER_PAGE - 1)
+#define PDI_MASK_AMD64 (PDE_PER_PAGE - 1)
+#define PPI_MASK (PPE_PER_PAGE - 1)
+#define PXI_MASK (PXE_PER_PAGE - 1)
 
 
+#define PXE_BASE    0xFFFFF6FB7DBED000ULL
+#define PXE_SELFMAP 0xFFFFF6FB7DBEDF68ULL
+#define PPE_BASE    0xFFFFF6FB7DA00000ULL
+#define PDE_BASE    0xFFFFF6FB40000000ULL
+#define PTE_BASE    0xFFFFF68000000000ULL
+#define PXE_TOP     0xFFFFF6FB7DBEDFFFULL
+#define PPE_TOP     0xFFFFF6FB7DBFFFFFULL
+#define PDE_TOP     0xFFFFF6FB7FFFFFFFULL
+#define PTE_TOP     0xFFFFF6FFFFFFFFFFULL
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-NTSTATUS
-NTAPI
-IoSetFileObjectIgnoreSharing(
-  IN PFILE_OBJECT FileObject);
+#define MM_HIGHEST_USER_ADDRESS           MmHighestUserAddress
+#define MM_SYSTEM_RANGE_START             MmSystemRangeStart
+#define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
+#define MM_LOWEST_USER_ADDRESS   (PVOID)0x10000
+#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
+#define KI_USER_SHARED_DATA       0xFFFFF78000000000ULL
 
 
+typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
+    ULONG64 P1Home;
+    ULONG64 P2Home;
+    ULONG64 P3Home;
+    ULONG64 P4Home;
+    ULONG64 P5Home;
+    ULONG64 P6Home;
+
+    /* Control flags */
+    ULONG ContextFlags;
+    ULONG MxCsr;
+
+    /* Segment */
+    USHORT SegCs;
+    USHORT SegDs;
+    USHORT SegEs;
+    USHORT SegFs;
+    USHORT SegGs;
+    USHORT SegSs;
+    ULONG EFlags;
+
+    /* Debug */
+    ULONG64 Dr0;
+    ULONG64 Dr1;
+    ULONG64 Dr2;
+    ULONG64 Dr3;
+    ULONG64 Dr6;
+    ULONG64 Dr7;
+
+    /* Integer */
+    ULONG64 Rax;
+    ULONG64 Rcx;
+    ULONG64 Rdx;
+    ULONG64 Rbx;
+    ULONG64 Rsp;
+    ULONG64 Rbp;
+    ULONG64 Rsi;
+    ULONG64 Rdi;
+    ULONG64 R8;
+    ULONG64 R9;
+    ULONG64 R10;
+    ULONG64 R11;
+    ULONG64 R12;
+    ULONG64 R13;
+    ULONG64 R14;
+    ULONG64 R15;
+
+    /* Counter */
+    ULONG64 Rip;
+
+   /* Floating point */
+   union {
+       XMM_SAVE_AREA32 FltSave;
+       struct {
+           M128A Header[2];
+           M128A Legacy[8];
+           M128A Xmm0;
+           M128A Xmm1;
+           M128A Xmm2;
+           M128A Xmm3;
+           M128A Xmm4;
+           M128A Xmm5;
+           M128A Xmm6;
+           M128A Xmm7;
+           M128A Xmm8;
+           M128A Xmm9;
+           M128A Xmm10;
+           M128A Xmm11;
+           M128A Xmm12;
+           M128A Xmm13;
+           M128A Xmm14;
+           M128A Xmm15;
+      } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME;
+
+     /* Vector */
+    M128A VectorRegister[26];
+    ULONG64 VectorControl;
+
+    /* Debug control */
+    ULONG64 DebugControl;
+    ULONG64 LastBranchToRip;
+    ULONG64 LastBranchFromRip;
+    ULONG64 LastExceptionToRip;
+    ULONG64 LastExceptionFromRip;
+} CONTEXT;
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+typedef struct _KPCR
+{
+    _ANONYMOUS_UNION union
+    {
+        NT_TIB NtTib;
+        _ANONYMOUS_STRUCT struct
+        {
+            union _KGDTENTRY64 *GdtBase;
+            struct _KTSS64 *TssBase;
+            ULONG64 UserRsp;
+            struct _KPCR *Self;
+            struct _KPRCB *CurrentPrcb;
+            PKSPIN_LOCK_QUEUE LockArray;
+            PVOID Used_Self;
+        };
+    };
+    union _KIDTENTRY64 *IdtBase;
+    ULONG64 Unused[2];
+    KIRQL Irql;
+    UCHAR SecondLevelCacheAssociativity;
+    UCHAR ObsoleteNumber;
+    UCHAR Fill0;
+    ULONG Unused0[3];
+    USHORT MajorVersion;
+    USHORT MinorVersion;
+    ULONG StallScaleFactor;
+    PVOID Unused1[3];
+    ULONG KernelReserved[15];
+    ULONG SecondLevelCacheSize;
+    ULONG HalReserved[16];
+    ULONG Unused2;
+    PVOID KdVersionBlock;
+    PVOID Unused3;
+    ULONG PcrAlign1[24];
+} KPCR, *PKPCR;
 
 
+FORCEINLINE
+PKPCR
+KeGetPcr(VOID)
+{
+    return (PKPCR)__readgsqword(FIELD_OFFSET(KPCR, Self));
+}
 
 
-/******************************************************************************
- *                          Kernel Debugger Functions                         *
- ******************************************************************************/
-NTSYSAPI
+FORCEINLINE
 ULONG
 ULONG
-NTAPI
-DbgPrompt(
-  IN PCCH Prompt,
-  OUT PCH Response,
-  IN ULONG MaximumResponseLength);
+KeGetCurrentProcessorNumber(VOID)
+{
+    return (ULONG)__readgsword(0x184);
+}
 
 
-/******************************************************************************
- *                              Kernel Functions                              *
- ******************************************************************************/
-NTKERNELAPI
-VOID
-FASTCALL
-KeInvalidateRangeAllCaches(
-  IN PVOID BaseAddress,
-  IN ULONG Length);
+#if !defined(RC_INVOKED)
+
+#define CONTEXT_AMD64 0x100000
 
 
+#define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x1L)
+#define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x2L)
+#define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x4L)
+#define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x8L)
+#define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x10L)
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
+#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-KeSetImportanceDpc(
-  IN OUT PRKDPC Dpc,
-  IN KDPC_IMPORTANCE Importance);
+#define CONTEXT_XSTATE (CONTEXT_AMD64 | 0x20L)
 
 
-NTKERNELAPI
-LONG
-NTAPI
-KePulseEvent(
-  IN OUT PRKEVENT Event,
-  IN KPRIORITY Increment,
-  IN BOOLEAN Wait);
+#define CONTEXT_EXCEPTION_ACTIVE 0x8000000
+#define CONTEXT_SERVICE_ACTIVE 0x10000000
+#define CONTEXT_EXCEPTION_REQUEST 0x40000000
+#define CONTEXT_EXCEPTION_REPORTING 0x80000000
 
 
-NTKERNELAPI
-LONG
-NTAPI
-KeSetBasePriorityThread(
-  IN OUT PRKTHREAD Thread,
-  IN LONG Increment);
+#endif /* RC_INVOKED */
 
 
-NTKERNELAPI
-VOID
-NTAPI
-KeEnterCriticalRegion(VOID);
+#endif /* _AMD64_ */
 
 
-NTKERNELAPI
-VOID
-NTAPI
-KeLeaveCriticalRegion(VOID);
+typedef enum _INTERLOCKED_RESULT {
+  ResultNegative = RESULT_NEGATIVE,
+  ResultZero = RESULT_ZERO,
+  ResultPositive = RESULT_POSITIVE
+} INTERLOCKED_RESULT;
 
 
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-KeBugCheck(
-  IN ULONG BugCheckCode);
+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;
 
 
-#if defined(SINGLE_GROUP_LEGACY_API)
+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;
 
 
+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;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-KeSetTargetProcessorDpc(
-  IN OUT PRKDPC Dpc,
-  IN CCHAR Number);
+#ifdef UNICODE
+typedef OSVERSIONINFOEXW OSVERSIONINFOEX;
+typedef POSVERSIONINFOEXW POSVERSIONINFOEX;
+typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX;
+typedef OSVERSIONINFOW OSVERSIONINFO;
+typedef POSVERSIONINFOW POSVERSIONINFO;
+typedef LPOSVERSIONINFOW LPOSVERSIONINFO;
+#else
+typedef OSVERSIONINFOEXA OSVERSIONINFOEX;
+typedef POSVERSIONINFOEXA POSVERSIONINFOEX;
+typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX;
+typedef OSVERSIONINFOA OSVERSIONINFO;
+typedef POSVERSIONINFOA POSVERSIONINFO;
+typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
+#endif /* UNICODE */
 
 
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryActiveProcessors(VOID);
+/* Executive Types */
 
 
-#endif /* defined(SINGLE_GROUP_LEGACY_API) */
+#define PROTECTED_POOL                    0x80000000
 
 
+typedef struct _ZONE_SEGMENT_HEADER {
+  SINGLE_LIST_ENTRY SegmentList;
+  PVOID Reserved;
+} ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER;
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+typedef struct _ZONE_HEADER {
+  SINGLE_LIST_ENTRY FreeList;
+  SINGLE_LIST_ENTRY SegmentList;
+  ULONG BlockSize;
+  ULONG TotalSegmentSize;
+} ZONE_HEADER, *PZONE_HEADER;
 
 
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeAreApcsDisabled(VOID);
+/* Executive Functions */
 
 
+static __inline PVOID
+ExAllocateFromZone(
+  IN PZONE_HEADER Zone)
+{
+  if (Zone->FreeList.Next)
+    Zone->FreeList.Next = Zone->FreeList.Next->Next;
+  return (PVOID) Zone->FreeList.Next;
+}
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+static __inline PVOID
+ExFreeToZone(
+  IN PZONE_HEADER  Zone,
+  IN PVOID  Block)
+{
+  ((PSINGLE_LIST_ENTRY) Block)->Next = Zone->FreeList.Next;
+  Zone->FreeList.Next = ((PSINGLE_LIST_ENTRY) Block);
+  return ((PSINGLE_LIST_ENTRY) Block)->Next;
+}
 
 
+/*
+ * PVOID
+ * ExInterlockedAllocateFromZone(
+ *   IN PZONE_HEADER  Zone,
+ *   IN PKSPIN_LOCK  Lock)
+ */
+#define ExInterlockedAllocateFromZone(Zone, Lock) \
+    ((PVOID) ExInterlockedPopEntryList(&Zone->FreeList, Lock))
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
+/* PVOID
+ * ExInterlockedFreeToZone(
+ *  IN PZONE_HEADER  Zone,
+ *  IN PVOID  Block,
+ *  IN PKSPIN_LOCK  Lock);
+ */
+#define ExInterlockedFreeToZone(Zone, Block, Lock) \
+    ExInterlockedPushEntryList(&(Zone)->FreeList, (PSINGLE_LIST_ENTRY)(Block), Lock)
 
 
+/*
+ * BOOLEAN
+ * ExIsFullZone(
+ *  IN PZONE_HEADER  Zone)
+ */
+#define ExIsFullZone(Zone) \
+  ((Zone)->FreeList.Next == (PSINGLE_LIST_ENTRY) NULL)
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInvalidateAllCaches(VOID);
+/* BOOLEAN
+ * ExIsObjectInFirstZoneSegment(
+ *     IN PZONE_HEADER Zone,
+ *     IN PVOID Object);
+ */
+#define ExIsObjectInFirstZoneSegment(Zone,Object) \
+    ((BOOLEAN)( ((PUCHAR)(Object) >= (PUCHAR)(Zone)->SegmentList.Next) && \
+                ((PUCHAR)(Object) <  (PUCHAR)(Zone)->SegmentList.Next + \
+                         (Zone)->TotalSegmentSize)) )
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
+#define ExAcquireResourceExclusive ExAcquireResourceExclusiveLite
+#define ExAcquireResourceShared ExAcquireResourceSharedLite
+#define ExConvertExclusiveToShared ExConvertExclusiveToSharedLite
+#define ExDeleteResource ExDeleteResourceLite
+#define ExInitializeResource ExInitializeResourceLite
+#define ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite
+#define ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite
+#define ExIsResourceAcquired ExIsResourceAcquiredSharedLite
+#define ExReleaseResourceForThread ExReleaseResourceForThreadLite
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-KeExpandKernelStackAndCallout(
-  IN PEXPAND_STACK_CALLOUT Callout,
-  IN PVOID Parameter OPTIONAL,
-  IN SIZE_T Size);
+ExExtendZone(
+  IN OUT PZONE_HEADER Zone,
+  IN OUT PVOID Segment,
+  IN ULONG SegmentSize);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-KeEnterGuardedRegion(VOID);
+ExInitializeZone(
+  OUT PZONE_HEADER Zone,
+  IN ULONG BlockSize,
+  IN OUT PVOID InitialSegment,
+  IN ULONG InitialSegmentSize);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-KeLeaveGuardedRegion(VOID);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
+ExInterlockedExtendZone(
+  IN OUT PZONE_HEADER Zone,
+  IN OUT PVOID Segment,
+  IN ULONG SegmentSize,
+  IN OUT PKSPIN_LOCK Lock);
 
 
-#if defined(SINGLE_GROUP_LEGACY_API)
 NTKERNELAPI
 NTKERNELAPI
-ULONG
+NTSTATUS
 NTAPI
 NTAPI
-KeQueryActiveProcessorCount(
-  OUT PKAFFINITY ActiveProcessors OPTIONAL);
+ExUuidCreate(
+  OUT UUID *Uuid);
 
 NTKERNELAPI
 
 NTKERNELAPI
-ULONG
+DECLSPEC_NORETURN
+VOID
 NTAPI
 NTAPI
-KeQueryMaximumProcessorCount(VOID);
-
-#endif /* SINGLE_GROUP_LEGACY_API */
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
+ExRaiseAccessViolation(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-ULONG
+DECLSPEC_NORETURN
+VOID
 NTAPI
 NTAPI
-KeQueryActiveProcessorCountEx(
-  IN USHORT GroupNumber);
+ExRaiseDatatypeMisalignment(
+  VOID);
 
 
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCountEx(
-  IN USHORT GroupNumber);
+#endif
 
 
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryActiveGroupCount(VOID);
+#ifdef _X86_
 
 NTKERNELAPI
 
 NTKERNELAPI
-USHORT
-NTAPI
-KeQueryMaximumGroupCount(VOID);
+INTERLOCKED_RESULT
+FASTCALL
+Exfi386InterlockedIncrementLong(
+  IN OUT LONG volatile *Addend);
 
 NTKERNELAPI
 
 NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryGroupAffinity(
-  IN USHORT GroupNumber);
+INTERLOCKED_RESULT
+FASTCALL
+Exfi386InterlockedDecrementLong(
+  IN PLONG  Addend);
 
 NTKERNELAPI
 ULONG
 
 NTKERNELAPI
 ULONG
-NTAPI
-KeGetCurrentProcessorNumberEx(
-  OUT PPROCESSOR_NUMBER ProcNumber OPTIONAL);
+FASTCALL
+Exfi386InterlockedExchangeUlong(
+  IN PULONG  Target,
+  IN ULONG  Value);
 
 
-NTKERNELAPI
-VOID
-NTAPI
-KeQueryNodeActiveAffinity(
-  IN USHORT NodeNumber,
-  OUT PGROUP_AFFINITY Affinity OPTIONAL,
-  OUT PUSHORT Count OPTIONAL);
+#endif /* _X86_ */
 
 
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryNodeMaximumProcessorCount(
-  IN USHORT NodeNumber);
+#ifndef _ARC_DDK_
+#define _ARC_DDK_
+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,
+  RealModePCIEnumeration,
+  MaximumType
+} CONFIGURATION_TYPE, *PCONFIGURATION_TYPE;
+#endif /* !_ARC_DDK_ */
 
 
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryHighestNodeNumber(VOID);
+typedef struct _CONTROLLER_OBJECT {
+  CSHORT Type;
+  CSHORT Size;
+  PVOID ControllerExtension;
+  KDEVICE_QUEUE DeviceWaitQueue;
+  ULONG Spare1;
+  LARGE_INTEGER Spare2;
+} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
 
 
-NTKERNELAPI
-USHORT
-NTAPI
-KeGetCurrentNodeNumber(VOID);
+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;
 
 
-NTKERNELAPI
+typedef
 NTSTATUS
 NTSTATUS
-NTAPI
-KeQueryLogicalProcessorRelationship(
-  IN PPROCESSOR_NUMBER ProcessorNumber OPTIONAL,
-  IN LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
-  OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information OPTIONAL,
-  IN OUT PULONG Length);
+(NTAPI *PIO_QUERY_DEVICE_ROUTINE)(
+  IN PVOID Context,
+  IN PUNICODE_STRING PathName,
+  IN INTERFACE_TYPE BusType,
+  IN ULONG BusNumber,
+  IN PKEY_VALUE_FULL_INFORMATION *BusInformation,
+  IN CONFIGURATION_TYPE ControllerType,
+  IN ULONG ControllerNumber,
+  IN PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
+  IN CONFIGURATION_TYPE PeripheralType,
+  IN ULONG PeripheralNumber,
+  IN PKEY_VALUE_FULL_INFORMATION *PeripheralInformation);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSetHardwareCounterConfiguration(
-  IN PHARDWARE_COUNTER CounterArray,
+typedef
+VOID
+(NTAPI DRIVER_REINITIALIZE)(
+  IN struct _DRIVER_OBJECT *DriverObject,
+  IN PVOID Context,
   IN ULONG Count);
 
   IN ULONG Count);
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryHardwareCounterConfiguration(
-  OUT PHARDWARE_COUNTER CounterArray,
-  IN ULONG MaximumCount,
-  OUT PULONG Count);
-
+typedef DRIVER_REINITIALIZE *PDRIVER_REINITIALIZE;
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-
-/******************************************************************************
- *                       Memory manager Functions                             *
- ******************************************************************************/
+/** Filesystem runtime library routines **/
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTKERNELAPI
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTKERNELAPI
-PPHYSICAL_MEMORY_RANGE
+BOOLEAN
 NTAPI
 NTAPI
-MmGetPhysicalMemoryRanges(VOID);
+FsRtlIsTotalDeviceFailure(
+  IN NTSTATUS Status);
+#endif
 
 
-NTKERNELAPI
-PHYSICAL_ADDRESS
-NTAPI
-MmGetPhysicalAddress(
-  IN PVOID BaseAddress);
+/* Hardware Abstraction Layer Types */
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-MmIsNonPagedSystemAddressValid(
-  IN PVOID VirtualAddress);
+typedef VOID
+(NTAPI *PciPin2Line)(
+  IN struct _BUS_HANDLER *BusHandler,
+  IN struct _BUS_HANDLER *RootHandler,
+  IN PCI_SLOT_NUMBER SlotNumber,
+  IN PPCI_COMMON_CONFIG PciData);
+
+typedef VOID
+(NTAPI *PciLine2Pin)(
+  IN struct _BUS_HANDLER *BusHandler,
+  IN struct _BUS_HANDLER *RootHandler,
+  IN PCI_SLOT_NUMBER SlotNumber,
+  IN PPCI_COMMON_CONFIG PciNewData,
+  IN PPCI_COMMON_CONFIG PciOldData);
 
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateNonCachedMemory(
-  IN SIZE_T NumberOfBytes);
+typedef VOID
+(NTAPI *PciReadWriteConfig)(
+  IN struct _BUS_HANDLER *BusHandler,
+  IN PCI_SLOT_NUMBER Slot,
+  IN PVOID Buffer,
+  IN ULONG Offset,
+  IN ULONG Length);
 
 
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeNonCachedMemory(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes);
+#define PCI_DATA_TAG ' ICP'
+#define PCI_DATA_VERSION 1
 
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmGetVirtualForPhysical(
-  IN PHYSICAL_ADDRESS PhysicalAddress);
+typedef struct _PCIBUSDATA {
+  ULONG Tag;
+  ULONG Version;
+  PciReadWriteConfig ReadConfig;
+  PciReadWriteConfig WriteConfig;
+  PciPin2Line Pin2Line;
+  PciLine2Pin Line2Pin;
+  PCI_SLOT_NUMBER ParentSlot;
+  PVOID Reserved[4];
+} PCIBUSDATA, *PPCIBUSDATA;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmMapUserAddressesToPage(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes,
-  IN PVOID PageAddress);
+/* Hardware Abstraction Layer Functions */
 
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapVideoDisplay(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheType);
+#if !defined(NO_LEGACY_DRIVERS)
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmMapViewInSessionSpace(
-  IN PVOID Section,
-  OUT PVOID *MappedBase,
-  IN OUT PSIZE_T ViewSize);
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-NTKERNELAPI
+NTHALAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-MmMapViewInSystemSpace(
-  IN PVOID Section,
-  OUT PVOID *MappedBase,
-  IN OUT PSIZE_T ViewSize);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-MmIsAddressValid(
-  IN PVOID VirtualAddress);
+HalAssignSlotResources(
+  IN PUNICODE_STRING RegistryPath,
+  IN PUNICODE_STRING DriverClassName,
+  IN PDRIVER_OBJECT DriverObject,
+  IN PDEVICE_OBJECT DeviceObject,
+  IN INTERFACE_TYPE BusType,
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  IN OUT PCM_RESOURCE_LIST *AllocatedResources);
 
 
-NTKERNELAPI
-BOOLEAN
+NTHALAPI
+ULONG
 NTAPI
 NTAPI
-MmIsThisAnNtAsSystem(VOID);
+HalGetInterruptVector(
+  IN INTERFACE_TYPE InterfaceType,
+  IN ULONG BusNumber,
+  IN ULONG BusInterruptLevel,
+  IN ULONG BusInterruptVector,
+  OUT PKIRQL Irql,
+  OUT PKAFFINITY Affinity);
 
 
-NTKERNELAPI
-VOID
+NTHALAPI
+ULONG
 NTAPI
 NTAPI
-MmLockPagableSectionByHandle(
-  IN PVOID ImageSectionHandle);
+HalSetBusData(
+  IN BUS_DATA_TYPE BusDataType,
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  IN PVOID Buffer,
+  IN ULONG Length);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmUnmapViewInSessionSpace(
-  IN PVOID MappedBase);
+#endif
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmUnmapViewInSystemSpace(
-  IN PVOID MappedBase);
+#endif /* !defined(NO_LEGACY_DRIVERS) */
 
 
-NTKERNELAPI
-VOID
-NTAPI
-MmUnsecureVirtualMemory(
-  IN HANDLE SecureHandle);
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-NTKERNELAPI
-NTSTATUS
+NTHALAPI
+PADAPTER_OBJECT
 NTAPI
 NTAPI
-MmRemovePhysicalMemory(
-  IN PPHYSICAL_ADDRESS StartAddress,
-  IN OUT PLARGE_INTEGER NumberOfBytes);
+HalGetAdapter(
+  IN PDEVICE_DESCRIPTION DeviceDescription,
+  IN OUT PULONG NumberOfMapRegisters);
 
 
-NTKERNELAPI
-HANDLE
+NTHALAPI
+BOOLEAN
 NTAPI
 NTAPI
-MmSecureVirtualMemory(
-  IN PVOID Address,
-  IN SIZE_T Size,
-  IN ULONG ProbeMode);
+HalMakeBeep(
+  IN ULONG Frequency);
 
 
-NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-MmUnmapVideoDisplay(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAddPhysicalMemory(
-  IN PPHYSICAL_ADDRESS StartAddress,
-  IN OUT PLARGE_INTEGER NumberOfBytes);
+HalPutDmaAdapter(
+  IN PADAPTER_OBJECT DmaAdapter);
 
 
-NTKERNELAPI
-PVOID
+NTHALAPI
+VOID
 NTAPI
 NTAPI
-MmAllocateContiguousMemory(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress);
+HalAcquireDisplayOwnership(
+  IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters);
 
 
-NTKERNELAPI
-PVOID
+NTHALAPI
+ULONG
 NTAPI
 NTAPI
-MmAllocateContiguousMemorySpecifyCache(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType);
+HalGetBusData(
+  IN BUS_DATA_TYPE BusDataType,
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  OUT PVOID Buffer,
+  IN ULONG Length);
 
 
-NTKERNELAPI
-PVOID
+NTHALAPI
+ULONG
 NTAPI
 NTAPI
-MmAllocateContiguousMemorySpecifyCacheNode(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN NODE_REQUIREMENT PreferredNode);
+HalGetBusDataByOffset(
+  IN BUS_DATA_TYPE BusDataType,
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  OUT PVOID Buffer,
+  IN ULONG Offset,
+  IN ULONG Length);
 
 
-NTKERNELAPI
-VOID
+NTHALAPI
+ULONG
 NTAPI
 NTAPI
-MmFreeContiguousMemory(
-  IN PVOID BaseAddress);
+HalSetBusDataByOffset(
+  IN BUS_DATA_TYPE BusDataType,
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  IN PVOID Buffer,
+  IN ULONG Offset,
+  IN ULONG Length);
 
 
-NTKERNELAPI
-VOID
+NTHALAPI
+BOOLEAN
 NTAPI
 NTAPI
-MmFreeContiguousMemorySpecifyCache(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheType);
-
+HalTranslateBusAddress(
+  IN INTERFACE_TYPE InterfaceType,
+  IN ULONG BusNumber,
+  IN PHYSICAL_ADDRESS BusAddress,
+  IN OUT PULONG AddressSpace,
+  OUT PPHYSICAL_ADDRESS TranslatedAddress);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+#endif
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
-
 NTKERNELAPI
 NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAdvanceMdl(
-  IN OUT PMDL Mdl,
-  IN ULONG NumberOfBytes);
+VOID
+FASTCALL
+HalExamineMBR(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG SectorSize,
+  IN ULONG MBRTypeIdentifier,
+  OUT PVOID *Buffer);
+#endif
 
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateMappingAddress(
-  IN SIZE_T NumberOfBytes,
-  IN ULONG PoolTag);
+#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_) 
+// nothing here
+#else
 
 
-NTKERNELAPI
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+//DECLSPEC_DEPRECATED_DDK
+NTHALAPI
 VOID
 NTAPI
 VOID
 NTAPI
-MmFreeMappingAddress(
-  IN PVOID BaseAddress,
-  IN ULONG PoolTag);
+IoFreeAdapterChannel(
+  IN PADAPTER_OBJECT AdapterObject);
 
 
-NTKERNELAPI
-NTSTATUS
+//DECLSPEC_DEPRECATED_DDK
+NTHALAPI
+BOOLEAN
 NTAPI
 NTAPI
-MmIsVerifierEnabled(
-  OUT PULONG VerifierFlags);
+IoFlushAdapterBuffers(
+  IN PADAPTER_OBJECT AdapterObject,
+  IN PMDL Mdl,
+  IN PVOID MapRegisterBase,
+  IN PVOID CurrentVa,
+  IN ULONG Length,
+  IN BOOLEAN WriteToDevice);
 
 
-NTKERNELAPI
-PVOID
+//DECLSPEC_DEPRECATED_DDK
+NTHALAPI
+VOID
 NTAPI
 NTAPI
-MmMapLockedPagesWithReservedMapping(
-  IN PVOID MappingAddress,
-  IN ULONG PoolTag,
-  IN PMDL MemoryDescriptorList,
-  IN MEMORY_CACHING_TYPE CacheType);
+IoFreeMapRegisters(
+  IN PADAPTER_OBJECT AdapterObject,
+  IN PVOID MapRegisterBase,
+  IN ULONG NumberOfMapRegisters);
 
 
-NTKERNELAPI
-NTSTATUS
+//DECLSPEC_DEPRECATED_DDK
+NTHALAPI
+PVOID
 NTAPI
 NTAPI
-MmProtectMdlSystemAddress(
-  IN PMDL MemoryDescriptorList,
-  IN ULONG NewProtect);
+HalAllocateCommonBuffer(
+  IN PADAPTER_OBJECT AdapterObject,
+  IN ULONG Length,
+  OUT PPHYSICAL_ADDRESS LogicalAddress,
+  IN BOOLEAN CacheEnabled);
 
 
-NTKERNELAPI
+//DECLSPEC_DEPRECATED_DDK
+NTHALAPI
 VOID
 NTAPI
 VOID
 NTAPI
-MmUnmapReservedMapping(
-  IN PVOID BaseAddress,
-  IN ULONG PoolTag,
-  IN PMDL MemoryDescriptorList);
+HalFreeCommonBuffer(
+  IN PADAPTER_OBJECT AdapterObject,
+  IN ULONG Length,
+  IN PHYSICAL_ADDRESS LogicalAddress,
+  IN PVOID VirtualAddress,
+  IN BOOLEAN CacheEnabled);
 
 
-NTKERNELAPI
-NTSTATUS
+//DECLSPEC_DEPRECATED_DDK
+NTHALAPI
+ULONG
 NTAPI
 NTAPI
-MmAddVerifierThunks(
-  IN PVOID ThunkBuffer,
-  IN ULONG ThunkBufferSize);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+HalReadDmaCounter(
+  IN PADAPTER_OBJECT AdapterObject);
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
-NTKERNELAPI
+NTHALAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-MmCreateMirror(VOID);
-#endif
-
+HalAllocateAdapterChannel(
+  IN PADAPTER_OBJECT  AdapterObject,
+  IN PWAIT_CONTEXT_BLOCK  Wcb,
+  IN ULONG  NumberOfMapRegisters,
+  IN PDRIVER_CONTROL  ExecutionRoutine);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-NTSTATUS
-NTAPI
-MmRotatePhysicalView(
-  IN PVOID VirtualAddress,
-  IN OUT PSIZE_T NumberOfBytes,
-  IN PMDLX NewMdl OPTIONAL,
-  IN MM_ROTATE_DIRECTION Direction,
-  IN PMM_ROTATE_COPY_CALLBACK_FUNCTION CopyFunction,
-  IN PVOID Context OPTIONAL);
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
-#endif
+#endif /* defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)  */
 
 
-/******************************************************************************
- *                          Process Manager Functions                         *
- ******************************************************************************/
+/* I/O Manager Functions */
 
 
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtOpenProcess(
-  OUT PHANDLE ProcessHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN PCLIENT_ID ClientId OPTIONAL);
+/*
+ * VOID IoAssignArcName(
+ *   IN PUNICODE_STRING  ArcName,
+ *   IN PUNICODE_STRING  DeviceName);
+ */
+#define IoAssignArcName(_ArcName, _DeviceName) ( \
+  IoCreateSymbolicLink((_ArcName), (_DeviceName)))
 
 
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtQueryInformationProcess(
-  IN HANDLE ProcessHandle,
-  IN PROCESSINFOCLASS ProcessInformationClass,
-  OUT PVOID ProcessInformation OPTIONAL,
-  IN ULONG ProcessInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
+/*
+ * VOID
+ * IoDeassignArcName(
+ *   IN PUNICODE_STRING  ArcName)
+ */
+#define IoDeassignArcName IoDeleteSymbolicLink
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
-
+#if !(defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_))
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
-PsSetCreateProcessNotifyRoutine(
-  IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
-  IN BOOLEAN Remove);
+IoAllocateAdapterChannel(
+  IN PADAPTER_OBJECT AdapterObject,
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG NumberOfMapRegisters,
+  IN PDRIVER_CONTROL ExecutionRoutine,
+  IN PVOID Context);
+#endif
 
 
-NTKERNELAPI
-NTSTATUS
+//DECLSPEC_DEPRECATED_DDK
+NTHALAPI
+PHYSICAL_ADDRESS
 NTAPI
 NTAPI
-PsSetCreateThreadNotifyRoutine(
-  IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
+IoMapTransfer(
+  IN PADAPTER_OBJECT AdapterObject,
+  IN PMDL Mdl,
+  IN PVOID MapRegisterBase,
+  IN PVOID CurrentVa,
+  IN OUT PULONG Length,
+  IN BOOLEAN WriteToDevice);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-PsSetLoadImageNotifyRoutine(
-  IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
+IoAllocateController(
+  IN PCONTROLLER_OBJECT ControllerObject,
+  IN PDEVICE_OBJECT DeviceObject,
+  IN PDRIVER_CONTROL ExecutionRoutine,
+  IN PVOID Context OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-HANDLE
+PCONTROLLER_OBJECT
 NTAPI
 NTAPI
-PsGetCurrentProcessId(VOID);
+IoCreateController(
+  IN ULONG Size);
 
 NTKERNELAPI
 
 NTKERNELAPI
-HANDLE
+VOID
 NTAPI
 NTAPI
-PsGetCurrentThreadId(VOID);
+IoDeleteController(
+  IN PCONTROLLER_OBJECT ControllerObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+VOID
 NTAPI
 NTAPI
-PsGetVersion(
-  OUT PULONG MajorVersion OPTIONAL,
-  OUT PULONG MinorVersion OPTIONAL,
-  OUT PULONG BuildNumber OPTIONAL,
-  OUT PUNICODE_STRING CSDVersion OPTIONAL);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
+IoFreeController(
+  IN PCONTROLLER_OBJECT ControllerObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-HANDLE
+PCONFIGURATION_INFORMATION
 NTAPI
 NTAPI
-PsGetProcessId(
-  IN PEPROCESS Process);
+IoGetConfigurationInformation(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-HANDLE
+PDEVICE_OBJECT
 NTAPI
 NTAPI
-PsGetThreadId(
+IoGetDeviceToVerify(
   IN PETHREAD Thread);
 
 NTKERNELAPI
   IN PETHREAD Thread);
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-PsRemoveCreateThreadNotifyRoutine(
-  IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
+IoCancelFileOpen(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN PFILE_OBJECT FileObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PGENERIC_MAPPING
 NTAPI
 NTAPI
-PsRemoveLoadImageNotifyRoutine(
-  IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
+IoGetFileObjectGenericMapping(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-LONGLONG
+PIRP
 NTAPI
 NTAPI
-PsGetProcessCreateTimeQuadPart(
-  IN PEPROCESS Process);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+IoMakeAssociatedIrp(
+  IN PIRP Irp,
+  IN CCHAR StackSize);
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
 NTKERNELAPI
 NTKERNELAPI
-HANDLE
+NTSTATUS
 NTAPI
 NTAPI
-PsGetThreadProcessId(
-  IN PETHREAD Thread);
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+IoQueryDeviceDescription(
+  IN PINTERFACE_TYPE BusType OPTIONAL,
+  IN PULONG BusNumber OPTIONAL,
+  IN PCONFIGURATION_TYPE ControllerType OPTIONAL,
+  IN PULONG ControllerNumber OPTIONAL,
+  IN PCONFIGURATION_TYPE PeripheralType OPTIONAL,
+  IN PULONG PeripheralNumber OPTIONAL,
+  IN PIO_QUERY_DEVICE_ROUTINE CalloutRoutine,
+  IN OUT PVOID Context OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+VOID
 NTAPI
 NTAPI
-PsSetCurrentThreadPrefetching(
-  IN BOOLEAN Prefetching);
+IoRaiseHardError(
+  IN PIRP Irp,
+  IN PVPB Vpb OPTIONAL,
+  IN PDEVICE_OBJECT RealDeviceObject);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-PsIsCurrentThreadPrefetching(VOID);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+IoRaiseInformationalHardError(
+  IN NTSTATUS ErrorStatus,
+  IN PUNICODE_STRING String OPTIONAL,
+  IN PKTHREAD Thread OPTIONAL);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
 NTKERNELAPI
 NTKERNELAPI
-NTSTATUS
-NTAPI
-PsSetCreateProcessNotifyRoutineEx(
-  IN PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
-  IN BOOLEAN Remove);
-#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
-/******************************************************************************
- *                         Runtime Library Functions                          *
- ******************************************************************************/
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-
-
-#ifndef RTL_USE_AVL_TABLES
-
-NTSYSAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlInitializeGenericTable(
-  OUT PRTL_GENERIC_TABLE Table,
-  IN PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine,
-  IN PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine,
-  IN PRTL_GENERIC_FREE_ROUTINE FreeRoutine,
-  IN PVOID TableContext OPTIONAL);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlInsertElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlInsertElementGenericTableFull(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL,
-  IN PVOID NodeOrParent,
-  IN TABLE_SEARCH_RESULT SearchResult);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlDeleteElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer);
+IoRegisterBootDriverReinitialization(
+  IN PDRIVER_OBJECT DriverObject,
+  IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
+  IN PVOID Context OPTIONAL);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlLookupElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer);
+IoRegisterDriverReinitialization(
+  IN PDRIVER_OBJECT DriverObject,
+  IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
+  IN PVOID Context OPTIONAL);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlLookupElementGenericTableFull(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer,
-  OUT PVOID *NodeOrParent,
-  OUT TABLE_SEARCH_RESULT *SearchResult);
+IoAttachDeviceByPointer(
+  IN PDEVICE_OBJECT SourceDevice,
+  IN PDEVICE_OBJECT TargetDevice);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlEnumerateGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN BOOLEAN Restart);
+IoReportDetectedDevice(
+  IN PDRIVER_OBJECT DriverObject,
+  IN INTERFACE_TYPE LegacyBusType,
+  IN ULONG BusNumber,
+  IN ULONG SlotNumber,
+  IN PCM_RESOURCE_LIST ResourceList OPTIONAL,
+  IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL,
+  IN BOOLEAN ResourceAssigned,
+  IN OUT PDEVICE_OBJECT *DeviceObject);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlEnumerateGenericTableWithoutSplaying(
-  IN PRTL_GENERIC_TABLE Table,
-  IN OUT PVOID *RestartKey);
+IoReportResourceForDetection(
+  IN PDRIVER_OBJECT DriverObject,
+  IN PCM_RESOURCE_LIST DriverList OPTIONAL,
+  IN ULONG DriverListSize OPTIONAL,
+  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+  IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
+  IN ULONG DeviceListSize OPTIONAL,
+  OUT PBOOLEAN ConflictDetected);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlGetElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN ULONG I);
+IoReportResourceUsage(
+  IN PUNICODE_STRING DriverClassName OPTIONAL,
+  IN PDRIVER_OBJECT DriverObject,
+  IN PCM_RESOURCE_LIST DriverList OPTIONAL,
+  IN ULONG DriverListSize OPTIONAL,
+  IN PDEVICE_OBJECT DeviceObject,
+  IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
+  IN ULONG DeviceListSize OPTIONAL,
+  IN BOOLEAN OverrideConflict,
+  OUT PBOOLEAN ConflictDetected);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlNumberGenericTableElements(
-  IN PRTL_GENERIC_TABLE Table);
+IoSetHardErrorOrVerifyDevice(
+  IN PIRP Irp,
+  IN PDEVICE_OBJECT DeviceObject);
 
 
-NTSYSAPI
-BOOLEAN
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlIsGenericTableEmpty(
-  IN PRTL_GENERIC_TABLE Table);
+IoAssignResources(
+  IN PUNICODE_STRING RegistryPath,
+  IN PUNICODE_STRING DriverClassName OPTIONAL,
+  IN PDRIVER_OBJECT DriverObject,
+  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+  IN PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources OPTIONAL,
+  IN OUT PCM_RESOURCE_LIST *AllocatedResources);
 
 
-#endif /* !RTL_USE_AVL_TABLES */
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
-#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT     8
+#if (NTDDI_VERSION >= NTDDI_WINXP)
 
 
-NTSYSAPI
-PRTL_SPLAY_LINKS
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlSplay(
-  IN OUT PRTL_SPLAY_LINKS Links);
+IoCreateDisk(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN struct _CREATE_DISK* Disk OPTIONAL);
 
 
-NTSYSAPI
-PRTL_SPLAY_LINKS
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlDelete(
-  IN PRTL_SPLAY_LINKS Links);
+IoReadDiskSignature(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG BytesPerSector,
+  OUT PDISK_SIGNATURE Signature);
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlDeleteNoSplay(
-  IN PRTL_SPLAY_LINKS Links,
-  IN OUT PRTL_SPLAY_LINKS *Root);
+NTKERNELAPI
+NTSTATUS
+FASTCALL
+IoReadPartitionTable(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG SectorSize,
+  IN BOOLEAN ReturnRecognizedPartitions,
+  OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
 
 
-NTSYSAPI
-PRTL_SPLAY_LINKS
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlSubtreeSuccessor(
-  IN PRTL_SPLAY_LINKS Links);
+IoReadPartitionTableEx(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN struct _DRIVE_LAYOUT_INFORMATION_EX **PartitionBuffer);
 
 
-NTSYSAPI
-PRTL_SPLAY_LINKS
-NTAPI
-RtlSubtreePredecessor(
-  IN PRTL_SPLAY_LINKS Links);
+NTKERNELAPI
+NTSTATUS
+FASTCALL
+IoSetPartitionInformation(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG SectorSize,
+  IN ULONG PartitionNumber,
+  IN ULONG PartitionType);
 
 
-NTSYSAPI
-PRTL_SPLAY_LINKS
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlRealSuccessor(
-  IN PRTL_SPLAY_LINKS Links);
+IoSetPartitionInformationEx(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG PartitionNumber,
+  IN struct _SET_PARTITION_INFORMATION_EX *PartitionInfo);
 
 
-NTSYSAPI
-PRTL_SPLAY_LINKS
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlRealPredecessor(
-  IN PRTL_SPLAY_LINKS Links);
+IoSetSystemPartition(
+  IN PUNICODE_STRING VolumeNameString);
 
 
-NTSYSAPI
+NTKERNELAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-RtlPrefixUnicodeString(
-  IN PCUNICODE_STRING  String1,
-  IN PCUNICODE_STRING  String2,
-  IN BOOLEAN  CaseInSensitive);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlUpperString(
-  IN OUT PSTRING  DestinationString,
-  IN const PSTRING  SourceString);
+IoSetThreadHardErrorMode(
+  IN BOOLEAN EnableHardErrors);
 
 
-NTSYSAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-RtlUpcaseUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PCUNICODE_STRING  SourceString,
-  IN BOOLEAN  AllocateDestinationString);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlMapGenericMask(
-  IN OUT PACCESS_MASK AccessMask,
-  IN PGENERIC_MAPPING GenericMapping);
+IoVerifyPartitionTable(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN BOOLEAN FixErrors);
 
 
-NTSYSAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-RtlVolumeDeviceToDosName(
+IoVolumeDeviceToDosName(
   IN PVOID VolumeDeviceObject,
   OUT PUNICODE_STRING DosName);
 
   IN PVOID VolumeDeviceObject,
   OUT PUNICODE_STRING DosName);
 
-NTSYSAPI
+NTKERNELAPI
 NTSTATUS
 NTSTATUS
-NTAPI
-RtlGetVersion(
-  IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
+FASTCALL
+IoWritePartitionTable(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG SectorSize,
+  IN ULONG SectorsPerTrack,
+  IN ULONG NumberOfHeads,
+  IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
 
 
-NTSYSAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-RtlVerifyVersionInfo(
-  IN PRTL_OSVERSIONINFOEXW VersionInfo,
-  IN ULONG TypeMask,
-  IN ULONGLONG ConditionMask);
+IoWritePartitionTableEx(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout);
 
 
-NTSYSAPI
-LONG
-NTAPI
-RtlCompareString(
-  IN const PSTRING String1,
-  IN const PSTRING String2,
-  IN BOOLEAN CaseInSensitive);
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlCopyString(
-  OUT PSTRING DestinationString,
-  IN const PSTRING SourceString OPTIONAL);
+/** Kernel debugger routines **/
 
 NTSYSAPI
 
 NTSYSAPI
-BOOLEAN
+ULONG
 NTAPI
 NTAPI
-RtlEqualString(
-  IN const PSTRING String1,
-  IN const PSTRING String2,
-  IN BOOLEAN CaseInSensitive);
+DbgPrompt(
+  IN PCCH Prompt,
+  OUT PCH Response,
+  IN ULONG MaximumResponseLength);
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCharToInteger(
-  IN PCSZ String,
-  IN ULONG Base OPTIONAL,
-  OUT PULONG Value);
+/* Kernel Functions */
 
 
-NTSYSAPI
-CHAR
-NTAPI
-RtlUpperChar(
-  IN CHAR Character);
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+DECLSPEC_NORETURN
+VOID
 NTAPI
 NTAPI
-RtlWalkFrameChain(
-  OUT PVOID *Callers,
-  IN ULONG Count,
-  IN ULONG Flags);
+KeBugCheck(
+  IN ULONG BugCheckCode);
 
 
+NTKERNELAPI
+LONG
+NTAPI
+KePulseEvent(
+  IN OUT PRKEVENT Event,
+  IN KPRIORITY Increment,
+  IN BOOLEAN Wait);
 
 
+NTKERNELAPI
+LONG
+NTAPI
+KeSetBasePriorityThread(
+  IN OUT PRKTHREAD Thread,
+  IN LONG Increment);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+#endif
 
 
+/* Memory Manager Types */
 
 
-#if (NTDDI_VERSION >= NTDDI_WINXP)
+typedef struct _PHYSICAL_MEMORY_RANGE {
+  PHYSICAL_ADDRESS BaseAddress;
+  LARGE_INTEGER NumberOfBytes;
+} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
 
 
+/* Memory Manager Functions */
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlInitializeGenericTableAvl(
-  OUT PRTL_AVL_TABLE Table,
-  IN PRTL_AVL_COMPARE_ROUTINE CompareRoutine,
-  IN PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine,
-  IN PRTL_AVL_FREE_ROUTINE FreeRoutine,
-  IN PVOID TableContext OPTIONAL);
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+PPHYSICAL_MEMORY_RANGE
 NTAPI
 NTAPI
-RtlInsertElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL);
+MmGetPhysicalMemoryRanges(
+  VOID);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+PHYSICAL_ADDRESS
 NTAPI
 NTAPI
-RtlInsertElementGenericTableFullAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL,
-  IN PVOID NodeOrParent,
-  IN TABLE_SEARCH_RESULT SearchResult);
+MmGetPhysicalAddress(
+  IN PVOID BaseAddress);
 
 
-NTSYSAPI
+NTKERNELAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-RtlDeleteElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer);
+MmIsNonPagedSystemAddressValid(
+  IN PVOID VirtualAddress);
 
 
-NTSYSAPI
+NTKERNELAPI
 PVOID
 NTAPI
 PVOID
 NTAPI
-RtlLookupElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer);
+MmAllocateNonCachedMemory(
+  IN SIZE_T NumberOfBytes);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlLookupElementGenericTableFullAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  OUT PVOID *NodeOrParent,
-  OUT TABLE_SEARCH_RESULT *SearchResult);
+MmFreeNonCachedMemory(
+  IN PVOID BaseAddress,
+  IN SIZE_T NumberOfBytes);
 
 
-NTSYSAPI
+NTKERNELAPI
 PVOID
 NTAPI
 PVOID
 NTAPI
-RtlEnumerateGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN BOOLEAN Restart);
+MmGetVirtualForPhysical(
+  IN PHYSICAL_ADDRESS PhysicalAddress);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlEnumerateGenericTableWithoutSplayingAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN OUT PVOID *RestartKey);
+MmMapUserAddressesToPage(
+  IN PVOID BaseAddress,
+  IN SIZE_T NumberOfBytes,
+  IN PVOID PageAddress);
 
 
-NTSYSAPI
+NTKERNELAPI
 PVOID
 NTAPI
 PVOID
 NTAPI
-RtlLookupFirstMatchingElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  OUT PVOID *RestartKey);
+MmMapVideoDisplay(
+  IN PHYSICAL_ADDRESS PhysicalAddress,
+  IN SIZE_T NumberOfBytes,
+  IN MEMORY_CACHING_TYPE CacheType);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlEnumerateGenericTableLikeADirectory(
-  IN PRTL_AVL_TABLE Table,
-  IN PRTL_AVL_MATCH_FUNCTION MatchFunction OPTIONAL,
-  IN PVOID MatchData OPTIONAL,
-  IN ULONG NextFlag,
-  IN OUT PVOID *RestartKey,
-  IN OUT PULONG DeleteCount,
-  IN PVOID Buffer);
+MmMapViewInSessionSpace(
+  IN PVOID Section,
+  OUT PVOID *MappedBase,
+  IN OUT PSIZE_T ViewSize);
 
 
-NTSYSAPI
-PVOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlGetElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN ULONG I);
+MmMapViewInSystemSpace(
+  IN PVOID Section,
+  OUT PVOID *MappedBase,
+  IN OUT PSIZE_T ViewSize);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlNumberGenericTableElementsAvl(
-  IN PRTL_AVL_TABLE Table);
+MmIsAddressValid(
+  IN PVOID VirtualAddress);
 
 
-NTSYSAPI
+NTKERNELAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-RtlIsGenericTableEmptyAvl(
-  IN PRTL_AVL_TABLE Table);
-
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
+MmIsThisAnNtAsSystem(
+  VOID);
 
 
-NTSYSAPI
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlRunOnceInitialize(
-  OUT PRTL_RUN_ONCE RunOnce);
+MmLockPagableSectionByHandle(
+  IN PVOID ImageSectionHandle);
 
 
-NTSYSAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-RtlRunOnceExecuteOnce(
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN PRTL_RUN_ONCE_INIT_FN InitFn,
-  IN OUT PVOID Parameter OPTIONAL,
-  OUT PVOID *Context OPTIONAL);
+MmUnmapViewInSessionSpace(
+  IN PVOID MappedBase);
 
 
-NTSYSAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-RtlRunOnceBeginInitialize(
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN ULONG Flags,
-  OUT PVOID *Context OPTIONAL);
+MmUnmapViewInSystemSpace(
+  IN PVOID MappedBase);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlRunOnceComplete(
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN ULONG Flags,
-  IN PVOID Context OPTIONAL);
+MmUnsecureVirtualMemory(
+  IN HANDLE SecureHandle);
 
 
-NTSYSAPI
-BOOLEAN
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlGetProductInfo(
-  IN ULONG OSMajorVersion,
-  IN ULONG OSMinorVersion,
-  IN ULONG SpMajorVersion,
-  IN ULONG SpMinorVersion,
-  OUT PULONG ReturnedProductType);
-
+MmRemovePhysicalMemory(
+  IN PPHYSICAL_ADDRESS StartAddress,
+  IN OUT PLARGE_INTEGER NumberOfBytes);
 
 
+NTKERNELAPI
+HANDLE
+NTAPI
+MmSecureVirtualMemory(
+  IN PVOID Address,
+  IN SIZE_T Size,
+  IN ULONG ProbeMode);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+NTKERNELAPI
+VOID
+NTAPI
+MmUnmapVideoDisplay(
+  IN PVOID BaseAddress,
+  IN SIZE_T NumberOfBytes);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
+/* NtXxx Functions */
 
 
-NTSYSAPI
-BOOLEAN
+NTSYSCALLAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlCreateHashTable(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE *HashTable OPTIONAL,
-  IN ULONG Shift,
-  IN ULONG Flags);
+NtOpenProcess(
+  OUT PHANDLE ProcessHandle,
+  IN ACCESS_MASK DesiredAccess,
+  IN POBJECT_ATTRIBUTES ObjectAttributes,
+  IN PCLIENT_ID ClientId OPTIONAL);
 
 
-NTSYSAPI
-VOID
+NTSYSCALLAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlDeleteHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable);
+NtQueryInformationProcess(
+  IN HANDLE ProcessHandle,
+  IN PROCESSINFOCLASS ProcessInformationClass,
+  OUT PVOID ProcessInformation OPTIONAL,
+  IN ULONG ProcessInformationLength,
+  OUT PULONG ReturnLength OPTIONAL);
 
 
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlInsertEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN PRTL_DYNAMIC_HASH_TABLE_ENTRY Entry,
-  IN ULONG_PTR Signature,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context OPTIONAL);
+/** Process manager types **/
 
 
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlRemoveEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN PRTL_DYNAMIC_HASH_TABLE_ENTRY Entry,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context OPTIONAL);
+typedef VOID
+(NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE)(
+  IN HANDLE ParentId,
+  IN HANDLE ProcessId,
+  IN BOOLEAN Create);
 
 
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
-NTAPI
-RtlLookupEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN ULONG_PTR Signature,
-  OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context OPTIONAL);
+typedef VOID
+(NTAPI *PCREATE_THREAD_NOTIFY_ROUTINE)(
+  IN HANDLE ProcessId,
+  IN HANDLE ThreadId,
+  IN BOOLEAN Create);
 
 
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
-NTAPI
-RtlGetNextEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context);
+typedef VOID
+(NTAPI *PLOAD_IMAGE_NOTIFY_ROUTINE)(
+  IN PUNICODE_STRING FullImageName,
+  IN HANDLE ProcessId,
+  IN PIMAGE_INFO ImageInfo);
 
 
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlInitEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
+/** Process manager routines **/
 
 
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlEnumerateEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
+PsSetLoadImageNotifyRoutine(
+  IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
 
 
-NTSYSAPI
-VOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlEndEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
+PsSetCreateThreadNotifyRoutine(
+  IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
 
 
-NTSYSAPI
-BOOLEAN
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlInitWeakEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
+PsSetCreateProcessNotifyRoutine(
+  IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
+  IN BOOLEAN Remove);
 
 
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
+NTKERNELAPI
+HANDLE
 NTAPI
 NTAPI
-RtlWeaklyEnumerateEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
+PsGetCurrentProcessId(
+  VOID);
 
 
-NTSYSAPI
-VOID
+NTKERNELAPI
+HANDLE
 NTAPI
 NTAPI
-RtlEndWeakEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
+PsGetCurrentThreadId(
+  VOID);
 
 
-NTSYSAPI
+NTKERNELAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-RtlExpandHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable);
+PsGetVersion(
+  OUT PULONG MajorVersion OPTIONAL,
+  OUT PULONG MinorVersion OPTIONAL,
+  OUT PULONG BuildNumber OPTIONAL,
+  OUT PUNICODE_STRING CSDVersion OPTIONAL);
 
 
-NTSYSAPI
-BOOLEAN
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+
+NTKERNELAPI
+HANDLE
 NTAPI
 NTAPI
-RtlContractHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable);
+PsGetProcessId(
+  IN PEPROCESS Process);
 
 
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PsRemoveCreateThreadNotifyRoutine(
+  IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
 
 
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PsRemoveLoadImageNotifyRoutine(
+  IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 
+extern NTKERNELAPI PEPROCESS PsInitialSystemProcess;
 
 
-#if defined(_AMD64_) || defined(_IA64_)
+/* RTL Types */
 
 
+typedef struct _RTL_SPLAY_LINKS {
+  struct _RTL_SPLAY_LINKS *Parent;
+  struct _RTL_SPLAY_LINKS *LeftChild;
+  struct _RTL_SPLAY_LINKS *RightChild;
+} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
 
 
+/* RTL Functions */
 
 
-//DECLSPEC_DEPRECATED_DDK_WINXP
-FORCEINLINE
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN LARGE_INTEGER Divisor,
-  OUT PLARGE_INTEGER Remainder OPTIONAL)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = Dividend.QuadPart / Divisor.QuadPart;
-  if (Remainder)
-    Remainder->QuadPart = Dividend.QuadPart % Divisor.QuadPart;
-  return ret;
-}
+#if (defined(_M_AMD64) || defined(_M_IA64)) && !defined(_REALLY_GET_CALLERS_CALLER_)
 
 
+#define RtlGetCallersAddress(CallersAddress, CallersCaller) \
+    *CallersAddress = (PVOID)_ReturnAddress(); \
+    *CallersCaller = NULL;
 #else
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTSYSAPI
 #else
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTSYSAPI
-LARGE_INTEGER
+VOID
 NTAPI
 NTAPI
-RtlLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN LARGE_INTEGER Divisor,
-  OUT PLARGE_INTEGER Remainder OPTIONAL);
+RtlGetCallersAddress(
+  OUT PVOID *CallersAddress,
+  OUT PVOID *CallersCaller);
 #endif
 
 #endif
 
-
-#endif /* defined(_AMD64_) || defined(_IA64_) */
-
-
-
-#ifdef RTL_USE_AVL_TABLES
-
-#define RtlInitializeGenericTable               RtlInitializeGenericTableAvl
-#define RtlInsertElementGenericTable            RtlInsertElementGenericTableAvl
-#define RtlInsertElementGenericTableFull        RtlInsertElementGenericTableFullAvl
-#define RtlDeleteElementGenericTable            RtlDeleteElementGenericTableAvl
-#define RtlLookupElementGenericTable            RtlLookupElementGenericTableAvl
-#define RtlLookupElementGenericTableFull        RtlLookupElementGenericTableFullAvl
-#define RtlEnumerateGenericTable                RtlEnumerateGenericTableAvl
-#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
-#define RtlGetElementGenericTable               RtlGetElementGenericTableAvl
-#define RtlNumberGenericTableElements           RtlNumberGenericTableElementsAvl
-#define RtlIsGenericTableEmpty                  RtlIsGenericTableEmptyAvl
-
-#endif /* RTL_USE_AVL_TABLES */
-
-#define RtlInitializeSplayLinks(Links) {    \
-  PRTL_SPLAY_LINKS _SplayLinks;            \
-  _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
-  _SplayLinks->Parent = _SplayLinks;   \
-  _SplayLinks->LeftChild = NULL;       \
-  _SplayLinks->RightChild = NULL;      \
-}
-
-#define RtlIsLeftChild(Links) \
-    (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
-
-#define RtlIsRightChild(Links) \
-    (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
-
-#define RtlRightChild(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->RightChild
-
-#define RtlIsRoot(Links) \
-    (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
-
-#define RtlLeftChild(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->LeftChild
-
-#define RtlParent(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->Parent
-
-#define RtlInsertAsLeftChild(ParentLinks,ChildLinks)    \
-    {                                                   \
-        PRTL_SPLAY_LINKS _SplayParent;                  \
-        PRTL_SPLAY_LINKS _SplayChild;                   \
-        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
-        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
-        _SplayParent->LeftChild = _SplayChild;          \
-        _SplayChild->Parent = _SplayParent;             \
-    }
-
-#define RtlInsertAsRightChild(ParentLinks,ChildLinks)   \
-    {                                                   \
-        PRTL_SPLAY_LINKS _SplayParent;                  \
-        PRTL_SPLAY_LINKS _SplayChild;                   \
-        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
-        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
-        _SplayParent->RightChild = _SplayChild;         \
-        _SplayChild->Parent = _SplayParent;             \
-    }
+#endif
 
 #if !defined(MIDL_PASS)
 
 
 #if !defined(MIDL_PASS)
 
@@ -5375,160 +2736,160 @@ NTAPI_INLINE
 RtlConvertUlongToLuid(
   IN ULONG Val)
 {
 RtlConvertUlongToLuid(
   IN ULONG Val)
 {
-  LUID Luid;
-
-  Luid.LowPart = Val;
-  Luid.HighPart = 0;
-  return Luid;
+  LUID Luid;
+
+  Luid.LowPart = Val;
+  Luid.HighPart = 0;
+  return Luid;
+}
+
+#endif
+
+#if defined(_AMD64_) || defined(_IA64_)
+//DECLSPEC_DEPRECATED_DDK_WINXP
+__inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlLargeIntegerDivide(
+  IN LARGE_INTEGER Dividend,
+  IN LARGE_INTEGER Divisor,
+  OUT PLARGE_INTEGER Remainder OPTIONAL)
+{
+  LARGE_INTEGER ret;
+  ret.QuadPart = Dividend.QuadPart / Divisor.QuadPart;
+  if (Remainder)
+    Remainder->QuadPart = Dividend.QuadPart % Divisor.QuadPart;
+  return ret;
 }
 
 }
 
-#endif /* !defined(MIDL_PASS) */
-
-#if (defined(_M_AMD64) || defined(_M_IA64)) && !defined(_REALLY_GET_CALLERS_CALLER_)
-#define RtlGetCallersAddress(CallersAddress, CallersCaller) \
-    *CallersAddress = (PVOID)_ReturnAddress(); \
-    *CallersCaller = NULL;
 #else
 #else
+
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTSYSAPI
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTSYSAPI
-VOID
+LARGE_INTEGER
 NTAPI
 NTAPI
-RtlGetCallersAddress(
-  OUT PVOID *CallersAddress,
-  OUT PVOID *CallersCaller);
-#endif
+RtlLargeIntegerDivide(
+  IN LARGE_INTEGER Dividend,
+  IN LARGE_INTEGER Divisor,
+  OUT PLARGE_INTEGER Remainder OPTIONAL);
 #endif
 
 #endif
 
-#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
+#endif /* defined(_AMD64_) || defined(_IA64_) */
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-FORCEINLINE
-VOID
+NTSYSAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlInitHashTableContext(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
-{
-  Context->ChainHead = NULL;
-  Context->PrevLinkage = NULL;
-}
+RtlPrefixUnicodeString(
+  IN PCUNICODE_STRING  String1,
+  IN PCUNICODE_STRING  String2,
+  IN BOOLEAN  CaseInSensitive);
 
 
-FORCEINLINE
+NTSYSAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlInitHashTableContextFromEnumerator(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context,
-  IN PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
-{
-  Context->ChainHead = Enumerator->ChainHead;
-  Context->PrevLinkage = Enumerator->HashEntry.Linkage.Blink;
-}
+RtlUpperString(
+  IN OUT PSTRING  DestinationString,
+  IN const PSTRING  SourceString);
 
 
-FORCEINLINE
-VOID
+NTSYSAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlReleaseHashTableContext(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
-{
-  UNREFERENCED_PARAMETER(Context);
-  return;
-}
+RtlUpcaseUnicodeString(
+  IN OUT PUNICODE_STRING DestinationString,
+  IN PCUNICODE_STRING  SourceString,
+  IN BOOLEAN  AllocateDestinationString);
 
 
-FORCEINLINE
-ULONG
+NTSYSAPI
+VOID
 NTAPI
 NTAPI
-RtlTotalBucketsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->TableSize;
-}
+RtlMapGenericMask(
+  IN OUT PACCESS_MASK AccessMask,
+  IN PGENERIC_MAPPING GenericMapping);
 
 
-FORCEINLINE
-ULONG
+NTSYSAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlNonEmptyBucketsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->NonEmptyBuckets;
-}
+RtlVolumeDeviceToDosName(
+  IN PVOID VolumeDeviceObject,
+  OUT PUNICODE_STRING DosName);
 
 
-FORCEINLINE
-ULONG
+NTSYSAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlEmptyBucketsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->TableSize - HashTable->NonEmptyBuckets;
-}
+RtlGetVersion(
+  IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
 
 
-FORCEINLINE
-ULONG
+NTSYSAPI
+NTSTATUS
 NTAPI
 NTAPI
-RtlTotalEntriesHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->NumEntries;
-}
+RtlVerifyVersionInfo(
+  IN PRTL_OSVERSIONINFOEXW VersionInfo,
+  IN ULONG TypeMask,
+  IN ULONGLONG ConditionMask);
 
 
-FORCEINLINE
-ULONG
+NTSYSAPI
+LONG
 NTAPI
 NTAPI
-RtlActiveEnumeratorsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->NumEnumerators;
-}
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
+RtlCompareString(
+  IN const PSTRING String1,
+  IN const PSTRING String2,
+  BOOLEAN CaseInSensitive);
 
 
-/******************************************************************************
- *                            Security Manager Functions                      *
- ******************************************************************************/
+NTSYSAPI
+VOID
+NTAPI
+RtlCopyString(
+  OUT PSTRING DestinationString,
+  IN const PSTRING SourceString OPTIONAL);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTKERNELAPI
+NTSYSAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-SeSinglePrivilegeCheck(
-  IN LUID PrivilegeValue,
-  IN KPROCESSOR_MODE PreviousMode);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-/******************************************************************************
- *                            ZwXxx Functions                                 *
- ******************************************************************************/
-
-
+RtlEqualString(
+  IN const PSTRING String1,
+  IN const PSTRING String2,
+  IN BOOLEAN CaseInSensitive);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 
 NTSYSAPI
 NTSTATUS
 NTAPI
-ZwAllocateLocallyUniqueId(
-  OUT PLUID Luid);
+RtlCharToInteger(
+  IN PCSZ String,
+  IN ULONG Base OPTIONAL,
+  OUT PULONG Value);
 
 NTSYSAPI
 
 NTSYSAPI
-NTSTATUS
+CHAR
 NTAPI
 NTAPI
-ZwTerminateProcess(
-  IN HANDLE ProcessHandle OPTIONAL,
-  IN NTSTATUS ExitStatus);
+RtlUpperChar(
+  IN CHAR Character);
 
 NTSYSAPI
 
 NTSYSAPI
-NTSTATUS
+ULONG
 NTAPI
 NTAPI
-ZwOpenProcess(
-  OUT PHANDLE ProcessHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN PCLIENT_ID ClientId OPTIONAL);
+RtlWalkFrameChain(
+  OUT PVOID *Callers,
+  IN ULONG Count,
+  IN ULONG Flags);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
+/* Security reference monitor routines */
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+SeSinglePrivilegeCheck(
+  IN LUID PrivilegeValue,
+  IN KPROCESSOR_MODE PreviousMode);
+#endif
 
 
+/* ZwXxx Functions */
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTSTATUS
 NTAPI
 
 NTSTATUS
 NTAPI
@@ -5571,190 +2932,12 @@ ZwSetTimer(
   IN LONG Period OPTIONAL,
   OUT PBOOLEAN PreviousState OPTIONAL);
 
   IN LONG Period OPTIONAL,
   OUT PBOOLEAN PreviousState OPTIONAL);
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDisplayString(
-  IN PUNICODE_STRING String);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwPowerInformation(
-  IN POWER_INFORMATION_LEVEL PowerInformationLevel,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryVolumeInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID FsInformation,
-  IN ULONG Length,
-  IN FS_INFORMATION_CLASS FsInformationClass);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDeviceIoControlFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN ULONG IoControlCode,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength);
-
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-NTSTATUS
-NTAPI
-ZwSetTimerEx(
-  IN HANDLE TimerHandle,
-  IN TIMER_SET_INFORMATION_CLASS TimerSetInformationClass,
-  IN OUT PVOID TimerSetInformation,
-  IN ULONG TimerSetInformationLength);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-
-
-/* UNSORTED */
-
-#define VER_SET_CONDITION(ConditionMask, TypeBitMask, ComparisonType)  \
-        ((ConditionMask) = VerSetConditionMask((ConditionMask), \
-        (TypeBitMask), (ComparisonType)))
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTSYSAPI
-ULONGLONG
-NTAPI
-VerSetConditionMask(
-  IN ULONGLONG ConditionMask,
-  IN ULONG TypeMask,
-  IN UCHAR Condition);
-#endif
-
-typedef struct _KERNEL_USER_TIMES {
-  LARGE_INTEGER CreateTime;
-  LARGE_INTEGER ExitTime;
-  LARGE_INTEGER KernelTime;
-  LARGE_INTEGER UserTime;
-} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
-
-/* NtXxx Functions */
-
-typedef enum _SYSTEM_FIRMWARE_TABLE_ACTION {
-  SystemFirmwareTable_Enumerate,
-  SystemFirmwareTable_Get
-} SYSTEM_FIRMWARE_TABLE_ACTION;
-
-typedef struct _SYSTEM_FIRMWARE_TABLE_INFORMATION {
-  ULONG ProviderSignature;
-  SYSTEM_FIRMWARE_TABLE_ACTION Action;
-  ULONG TableID;
-  ULONG TableBufferLength;
-  UCHAR TableBuffer[ANYSIZE_ARRAY];
-} SYSTEM_FIRMWARE_TABLE_INFORMATION, *PSYSTEM_FIRMWARE_TABLE_INFORMATION;
-
-typedef NTSTATUS
-(__cdecl *PFNFTH)(
-  IN OUT PSYSTEM_FIRMWARE_TABLE_INFORMATION SystemFirmwareTableInfo);
-
-typedef struct _SYSTEM_FIRMWARE_TABLE_HANDLER {
-  ULONG ProviderSignature;
-  BOOLEAN Register;
-  PFNFTH FirmwareTableHandler;
-  PVOID DriverObject;
-} SYSTEM_FIRMWARE_TABLE_HANDLER, *PSYSTEM_FIRMWARE_TABLE_HANDLER;
-
-typedef ULONG_PTR
-(NTAPI *PDRIVER_VERIFIER_THUNK_ROUTINE)(
-  IN PVOID Context);
-
-typedef struct _DRIVER_VERIFIER_THUNK_PAIRS {
-  PDRIVER_VERIFIER_THUNK_ROUTINE PristineRoutine;
-  PDRIVER_VERIFIER_THUNK_ROUTINE NewRoutine;
-} DRIVER_VERIFIER_THUNK_PAIRS, *PDRIVER_VERIFIER_THUNK_PAIRS;
-
-#define DRIVER_VERIFIER_SPECIAL_POOLING             0x0001
-#define DRIVER_VERIFIER_FORCE_IRQL_CHECKING         0x0002
-#define DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES  0x0004
-#define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS      0x0008
-#define DRIVER_VERIFIER_IO_CHECKING                 0x0010
-
-#define SHARED_GLOBAL_FLAGS_ERROR_PORT_V        0x0
-#define SHARED_GLOBAL_FLAGS_ERROR_PORT          (1UL << SHARED_GLOBAL_FLAGS_ERROR_PORT_V)
-
-#define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V 0x1
-#define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED   (1UL << SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V      0x2
-#define SHARED_GLOBAL_FLAGS_VIRT_ENABLED        (1UL << SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V  0x3
-#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED    \
-    (1UL << SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_SPARE_V                     0x4
-#define SHARED_GLOBAL_FLAGS_SPARE                       \
-    (1UL << SHARED_GLOBAL_FLAGS_SPARE_V)
-
-#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V      0x5
-#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED        \
-    (1UL << SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V    0x6
-#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED        \
-    (1UL << SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V)
-
-#define EX_INIT_BITS(Flags, Bit) \
-    *((Flags)) |= (Bit)             // Safe to use before concurrently accessible
-
-#define EX_TEST_SET_BIT(Flags, Bit) \
-    InterlockedBitTestAndSet ((PLONG)(Flags), (Bit))
-
-#define EX_TEST_CLEAR_BIT(Flags, Bit) \
-    InterlockedBitTestAndReset ((PLONG)(Flags), (Bit))
-
-#define PCCARD_MAP_ERROR               0x01
-#define PCCARD_DEVICE_PCI              0x10
-
-#define PCCARD_SCAN_DISABLED           0x01
-#define PCCARD_MAP_ZERO                0x02
-#define PCCARD_NO_TIMER                0x03
-#define PCCARD_NO_PIC                  0x04
-#define PCCARD_NO_LEGACY_BASE          0x05
-#define PCCARD_DUP_LEGACY_BASE         0x06
-#define PCCARD_NO_CONTROLLERS          0x07
-
-#define MAXIMUM_EXPANSION_SIZE (KERNEL_LARGE_STACK_SIZE - (PAGE_SIZE / 2))
-
-/* Filesystem runtime library routines */
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsTotalDeviceFailure(
-  IN NTSTATUS Status);
 #endif
 
 #endif
 
-/* FIXME : These definitions below doesn't belong to NTDDK */
 
 #ifdef __cplusplus
 }
 #endif
 
 #ifdef __cplusplus
 }
 #endif
+
+
+#endif /* _NTDDK_ */
index 7e14da7..5f03272 100644 (file)
 #define _NTIFS_INCLUDED_
 #define _GNU_NTIFS_
 
 #define _NTIFS_INCLUDED_
 #define _GNU_NTIFS_
 
+/* Helper macro to enable gcc's extension.  */
+#ifndef __GNU_EXTENSION
+#ifdef __GNUC__
+#define __GNU_EXTENSION __extension__
+#else
+#define __GNU_EXTENSION
+#endif
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#if !defined(_NTHALDLL_) && !defined(_BLDR_)
+#define NTHALAPI DECLSPEC_IMPORT
+#else
+#define NTHALAPI
+#endif
+
+/* For ReactOS */
+#if !defined(_NTOSKRNL_) && !defined(_BLDR_)
+#define NTKERNELAPI DECLSPEC_IMPORT
+#else
+#define NTKERNELAPI
+#endif
+
 /* Dependencies */
 #include <ntddk.h>
 #include <excpt.h>
 /* Dependencies */
 #include <ntddk.h>
 #include <excpt.h>
@@ -54,6 +76,16 @@ extern "C" {
 #define ClearFlag(_F,_SF)     ((_F) &= ~(_SF))
 #endif
 
 #define ClearFlag(_F,_SF)     ((_F) &= ~(_SF))
 #endif
 
+#define PsGetCurrentProcess IoGetCurrentProcess
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+extern NTSYSAPI volatile CCHAR KeNumberProcessors;
+#elif (NTDDI_VERSION >= NTDDI_WINXP)
+extern NTSYSAPI CCHAR KeNumberProcessors;
+#else
+extern PCCHAR KeNumberProcessors;
+#endif
+
 typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
 typedef STRING LSA_STRING, *PLSA_STRING;
 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
 typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
 typedef STRING LSA_STRING, *PLSA_STRING;
 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
@@ -719,6 +751,8 @@ typedef enum _OBJECT_INFORMATION_CLASS {
   MaxObjectInfoClass /* FIXME, not in WDK */
 } OBJECT_INFORMATION_CLASS;
 
   MaxObjectInfoClass /* FIXME, not in WDK */
 } OBJECT_INFORMATION_CLASS;
 
+#if (NTDDI_VERSION >= NTDDI_NT4)
+
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
@@ -729,6 +763,8 @@ NtQueryObject(
   IN ULONG ObjectInformationLength,
   OUT PULONG ReturnLength OPTIONAL);
 
   IN ULONG ObjectInformationLength,
   OUT PULONG ReturnLength OPTIONAL);
 
+#endif
+
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTSYSCALLAPI
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTSYSCALLAPI
@@ -2378,11 +2414,95 @@ extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
 
 #define RTL_SYSTEM_VOLUME_INFORMATION_FOLDER    L"System Volume Information"
 
 
 #define RTL_SYSTEM_VOLUME_INFORMATION_FOLDER    L"System Volume Information"
 
+#define DEVICE_TYPE ULONG
+
+#define FILE_DEVICE_BEEP                0x00000001
+#define FILE_DEVICE_CD_ROM              0x00000002
+#define FILE_DEVICE_CD_ROM_FILE_SYSTEM  0x00000003
+#define FILE_DEVICE_CONTROLLER          0x00000004
+#define FILE_DEVICE_DATALINK            0x00000005
+#define FILE_DEVICE_DFS                 0x00000006
+#define FILE_DEVICE_DISK                0x00000007
+#define FILE_DEVICE_DISK_FILE_SYSTEM    0x00000008
+#define FILE_DEVICE_FILE_SYSTEM         0x00000009
+#define FILE_DEVICE_INPORT_PORT         0x0000000a
+#define FILE_DEVICE_KEYBOARD            0x0000000b
+#define FILE_DEVICE_MAILSLOT            0x0000000c
+#define FILE_DEVICE_MIDI_IN             0x0000000d
+#define FILE_DEVICE_MIDI_OUT            0x0000000e
+#define FILE_DEVICE_MOUSE               0x0000000f
+#define FILE_DEVICE_MULTI_UNC_PROVIDER  0x00000010
+#define FILE_DEVICE_NAMED_PIPE          0x00000011
+#define FILE_DEVICE_NETWORK             0x00000012
+#define FILE_DEVICE_NETWORK_BROWSER     0x00000013
+#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
+#define FILE_DEVICE_NULL                0x00000015
+#define FILE_DEVICE_PARALLEL_PORT       0x00000016
+#define FILE_DEVICE_PHYSICAL_NETCARD    0x00000017
+#define FILE_DEVICE_PRINTER             0x00000018
+#define FILE_DEVICE_SCANNER             0x00000019
+#define FILE_DEVICE_SERIAL_MOUSE_PORT   0x0000001a
+#define FILE_DEVICE_SERIAL_PORT         0x0000001b
+#define FILE_DEVICE_SCREEN              0x0000001c
+#define FILE_DEVICE_SOUND               0x0000001d
+#define FILE_DEVICE_STREAMS             0x0000001e
+#define FILE_DEVICE_TAPE                0x0000001f
+#define FILE_DEVICE_TAPE_FILE_SYSTEM    0x00000020
+#define FILE_DEVICE_TRANSPORT           0x00000021
+#define FILE_DEVICE_UNKNOWN             0x00000022
+#define FILE_DEVICE_VIDEO               0x00000023
+#define FILE_DEVICE_VIRTUAL_DISK        0x00000024
+#define FILE_DEVICE_WAVE_IN             0x00000025
+#define FILE_DEVICE_WAVE_OUT            0x00000026
+#define FILE_DEVICE_8042_PORT           0x00000027
+#define FILE_DEVICE_NETWORK_REDIRECTOR  0x00000028
+#define FILE_DEVICE_BATTERY             0x00000029
+#define FILE_DEVICE_BUS_EXTENDER        0x0000002a
+#define FILE_DEVICE_MODEM               0x0000002b
+#define FILE_DEVICE_VDM                 0x0000002c
+#define FILE_DEVICE_MASS_STORAGE        0x0000002d
+#define FILE_DEVICE_SMB                 0x0000002e
+#define FILE_DEVICE_KS                  0x0000002f
+#define FILE_DEVICE_CHANGER             0x00000030
+#define FILE_DEVICE_SMARTCARD           0x00000031
+#define FILE_DEVICE_ACPI                0x00000032
+#define FILE_DEVICE_DVD                 0x00000033
+#define FILE_DEVICE_FULLSCREEN_VIDEO    0x00000034
+#define FILE_DEVICE_DFS_FILE_SYSTEM     0x00000035
+#define FILE_DEVICE_DFS_VOLUME          0x00000036
+#define FILE_DEVICE_SERENUM             0x00000037
+#define FILE_DEVICE_TERMSRV             0x00000038
+#define FILE_DEVICE_KSEC                0x00000039
+#define FILE_DEVICE_FIPS                0x0000003A
+#define FILE_DEVICE_INFINIBAND          0x0000003B
+#define FILE_DEVICE_VMBUS               0x0000003E
+#define FILE_DEVICE_CRYPT_PROVIDER      0x0000003F
+#define FILE_DEVICE_WPD                 0x00000040
+#define FILE_DEVICE_BLUETOOTH           0x00000041
+#define FILE_DEVICE_MT_COMPOSITE        0x00000042
+#define FILE_DEVICE_MT_TRANSPORT        0x00000043
+#define FILE_DEVICE_BIOMETRIC           0x00000044
+#define FILE_DEVICE_PMI                 0x00000045
+
+#define CTL_CODE(DeviceType, Function, Method, Access) \
+  (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
+
+#define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)
+
 #define METHOD_FROM_CTL_CODE(ctrlCode)          ((ULONG)(ctrlCode & 3))
 
 #define METHOD_FROM_CTL_CODE(ctrlCode)          ((ULONG)(ctrlCode & 3))
 
+#define METHOD_BUFFERED                 0
+#define METHOD_IN_DIRECT                1
+#define METHOD_OUT_DIRECT               2
+#define METHOD_NEITHER                  3
 #define METHOD_DIRECT_TO_HARDWARE       METHOD_IN_DIRECT
 #define METHOD_DIRECT_FROM_HARDWARE     METHOD_OUT_DIRECT
 
 #define METHOD_DIRECT_TO_HARDWARE       METHOD_IN_DIRECT
 #define METHOD_DIRECT_FROM_HARDWARE     METHOD_OUT_DIRECT
 
+#define FILE_ANY_ACCESS                   0x00000000
+#define FILE_SPECIAL_ACCESS               FILE_ANY_ACCESS
+#define FILE_READ_ACCESS                  0x00000001
+#define FILE_WRITE_ACCESS                 0x00000002
+
 typedef ULONG  LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
 
 typedef enum _SECURITY_LOGON_TYPE {
 typedef ULONG  LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
 
 typedef enum _SECURITY_LOGON_TYPE {
@@ -4553,8 +4673,6 @@ typedef struct _KAPC_STATE {
 
 #define KAPC_STATE_ACTUAL_LENGTH (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
 
 
 #define KAPC_STATE_ACTUAL_LENGTH (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
 
-#define ASSERT_QUEUE(Q) ASSERT(((Q)->Header.Type & KOBJECT_TYPE_MASK) == QueueObject);
-
 typedef struct _KQUEUE {
   DISPATCHER_HEADER Header;
   LIST_ENTRY EntryListHead;
 typedef struct _KQUEUE {
   DISPATCHER_HEADER Header;
   LIST_ENTRY EntryListHead;
@@ -4689,7 +4807,7 @@ FASTCALL
 KeAcquireQueuedSpinLock(
   IN OUT KSPIN_LOCK_QUEUE_NUMBER Number);
 
 KeAcquireQueuedSpinLock(
   IN OUT KSPIN_LOCK_QUEUE_NUMBER Number);
 
-_DECL_HAL_KE_IMPORT
+NTHALAPI
 VOID
 FASTCALL
 KeReleaseQueuedSpinLock(
 VOID
 FASTCALL
 KeReleaseQueuedSpinLock(
@@ -4904,6 +5022,24 @@ typedef NTSTATUS
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
+NTKERNELAPI
+VOID
+NTAPI
+SeCaptureSubjectContext(
+  OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
+
+NTKERNELAPI
+VOID
+NTAPI
+SeLockSubjectContext(
+  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
+
+NTKERNELAPI
+VOID
+NTAPI
+SeUnlockSubjectContext(
+  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
+
 NTKERNELAPI
 VOID
 NTAPI
 NTKERNELAPI
 VOID
 NTAPI
@@ -5317,6 +5453,18 @@ SeLocateProcessImageName(
 
 extern NTKERNELAPI PSE_EXPORTS SeExports;
 
 
 extern NTKERNELAPI PSE_EXPORTS SeExports;
 
+#if !defined(_PSGETCURRENTTHREAD_)
+#define _PSGETCURRENTTHREAD_
+
+FORCEINLINE
+PETHREAD
+PsGetCurrentThread(
+  VOID)
+{
+  return (PETHREAD)KeGetCurrentThread();
+}
+#endif
+
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTKERNELAPI
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTKERNELAPI
@@ -5386,20 +5534,7 @@ PsReturnPoolQuota(
   IN POOL_TYPE PoolType,
   IN ULONG_PTR Amount);
 
   IN POOL_TYPE PoolType,
   IN ULONG_PTR Amount);
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsAssignImpersonationToken(
-  IN PETHREAD Thread,
-  IN HANDLE Token OPTIONAL);
-
-NTKERNELAPI
-HANDLE
-NTAPI
-PsReferencePrimaryToken(
-  IN OUT PEPROCESS Process);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+#endif
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
@@ -5688,6 +5823,18 @@ IoPageRead(
   IN PKEVENT Event,
   OUT PIO_STATUS_BLOCK IoStatusBlock);
 
   IN PKEVENT Event,
   OUT PIO_STATUS_BLOCK IoStatusBlock);
 
+NTKERNELAPI
+PDEVICE_OBJECT
+NTAPI
+IoGetAttachedDevice(
+  IN PDEVICE_OBJECT DeviceObject);
+
+NTKERNELAPI
+PDEVICE_OBJECT
+NTAPI
+IoGetAttachedDeviceReference(
+  IN PDEVICE_OBJECT DeviceObject);
+
 NTKERNELAPI
 PDEVICE_OBJECT
 NTAPI
 NTKERNELAPI
 PDEVICE_OBJECT
 NTAPI
@@ -5804,6 +5951,42 @@ NTAPI
 IoSetTopLevelIrp(
   IN PIRP Irp OPTIONAL);
 
 IoSetTopLevelIrp(
   IN PIRP Irp OPTIONAL);
 
+NTKERNELAPI
+VOID
+NTAPI
+IoStartNextPacket(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN BOOLEAN Cancelable);
+
+NTKERNELAPI
+VOID
+NTAPI
+IoStartNextPacketByKey(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN BOOLEAN Cancelable,
+  IN ULONG Key);
+
+NTKERNELAPI
+VOID
+NTAPI
+IoStartPacket(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN PIRP Irp,
+  IN PULONG Key OPTIONAL,
+  IN PDRIVER_CANCEL CancelFunction OPTIONAL);
+
+NTKERNELAPI
+VOID
+NTAPI
+IoStartTimer(
+  IN PDEVICE_OBJECT DeviceObject);
+
+NTKERNELAPI
+VOID
+NTAPI
+IoStopTimer(
+  IN PDEVICE_OBJECT DeviceObject);
+
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -5840,6 +6023,12 @@ IoVerifyVolume(
   IN PDEVICE_OBJECT DeviceObject,
   IN BOOLEAN AllowRawMount);
 
   IN PDEVICE_OBJECT DeviceObject,
   IN BOOLEAN AllowRawMount);
 
+NTKERNELAPI
+VOID
+NTAPI
+IoWriteErrorLogEntry(
+  IN PVOID ElEntry);
+
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -5866,6 +6055,13 @@ IoQueryFileDosDeviceName(
   IN PFILE_OBJECT FileObject,
   OUT POBJECT_NAME_INFORMATION *ObjectNameInformation);
 
   IN PFILE_OBJECT FileObject,
   OUT POBJECT_NAME_INFORMATION *ObjectNameInformation);
 
+VOID
+NTAPI
+IoSetStartIoAttributes(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN BOOLEAN DeferredStartIo,
+  IN BOOLEAN NonCancelable);
+
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -5964,6 +6160,53 @@ typedef struct _IO_PRIORITY_INFO {
 #define PO_CB_LID_SWITCH_STATE          4
 #define PO_CB_PROCESSOR_POWER_POLICY    5
 
 #define PO_CB_LID_SWITCH_STATE          4
 #define PO_CB_PROCESSOR_POWER_POLICY    5
 
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+PVOID
+NTAPI
+PoRegisterSystemState(
+  IN OUT PVOID StateHandle OPTIONAL,
+  IN EXECUTION_STATE Flags);
+
+NTKERNELAPI
+VOID
+NTAPI
+PoUnregisterSystemState(
+  IN OUT PVOID StateHandle);
+
+NTKERNELAPI
+POWER_STATE
+NTAPI
+PoSetPowerState(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN POWER_STATE_TYPE Type,
+  IN POWER_STATE State);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoCallDriver(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN OUT PIRP Irp);
+
+NTKERNELAPI
+VOID
+NTAPI
+PoStartNextPowerIrp(
+  IN OUT PIRP Irp);
+
+NTKERNELAPI
+PULONG
+NTAPI
+PoRegisterDeviceForIdleDetection(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN ULONG ConservationIdleTime,
+  IN ULONG PerformanceIdleTime,
+  IN DEVICE_POWER_STATE State);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 NTKERNELAPI
 NTSTATUS
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 NTKERNELAPI
 NTSTATUS
@@ -5972,6 +6215,84 @@ PoQueueShutdownWorkItem(
   IN OUT PWORK_QUEUE_ITEM WorkItem);
 #endif
 
   IN OUT PWORK_QUEUE_ITEM WorkItem);
 #endif
 
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoRegisterPowerSettingCallback(
+  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+  IN LPCGUID SettingGuid,
+  IN PPOWER_SETTING_CALLBACK Callback,
+  IN PVOID Context OPTIONAL,
+  OUT PVOID *Handle);
+
+NTKERNELAPI
+NTSTATUS
+PoUnregisterPowerSettingCallback(
+  IN OUT PVOID Handle);
+
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WIN6SP1)
+NTKERNELAPI
+VOID
+NTAPI
+PoSetDeviceBusyEx(
+  IN OUT PULONG IdlePointer);
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoCreatePowerRequest(
+  OUT PVOID *PowerRequest,
+  IN PDEVICE_OBJECT DeviceObject,
+  IN PCOUNTED_REASON_CONTEXT Context);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoSetPowerRequest(
+  IN OUT PVOID PowerRequest,
+  IN POWER_REQUEST_TYPE Type);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PoClearPowerRequest(
+  IN OUT PVOID PowerRequest,
+  IN POWER_REQUEST_TYPE Type);
+
+NTKERNELAPI
+VOID
+NTAPI
+PoDeletePowerRequest(
+  IN OUT PVOID PowerRequest);
+
+NTKERNELAPI
+VOID
+NTAPI
+PoStartDeviceBusy(
+  IN OUT PULONG IdlePointer);
+
+NTKERNELAPI
+VOID
+NTAPI
+PoEndDeviceBusy(
+  IN OUT PULONG IdlePointer);
+
+NTKERNELAPI
+BOOLEAN
+NTAPI
+PoQueryWatchdogTime(
+  IN PDEVICE_OBJECT Pdo,
+  OUT PULONG SecondsRemaining);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+
 #if defined(_IA64_)
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 //DECLSPEC_DEPRECATED_DDK
 #if defined(_IA64_)
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 //DECLSPEC_DEPRECATED_DDK
@@ -6247,247 +6568,65 @@ typedef struct _FILE_LOCK {
   LONG volatile LockRequestsInProgress;
 } FILE_LOCK, *PFILE_LOCK;
 
   LONG volatile LockRequestsInProgress;
 } FILE_LOCK, *PFILE_LOCK;
 
-typedef struct _TUNNEL {
-  FAST_MUTEX Mutex;
-  PRTL_SPLAY_LINKS Cache;
-  LIST_ENTRY TimerQueue;
-  USHORT NumEntries;
-} TUNNEL, *PTUNNEL;
-
-typedef enum _FSRTL_COMPARISON_RESULT {
-  LessThan = -1,
-  EqualTo = 0,
-  GreaterThan = 1
-} FSRTL_COMPARISON_RESULT;
-
-#define FSRTL_FAT_LEGAL                 0x01
-#define FSRTL_HPFS_LEGAL                0x02
-#define FSRTL_NTFS_LEGAL                0x04
-#define FSRTL_WILD_CHARACTER            0x08
-#define FSRTL_OLE_LEGAL                 0x10
-#define FSRTL_NTFS_STREAM_LEGAL         (FSRTL_NTFS_LEGAL | FSRTL_OLE_LEGAL)
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-typedef struct _BASE_MCB {
-  ULONG MaximumPairCount;
-  ULONG PairCount;
-  USHORT PoolType;
-  USHORT Flags;
-  PVOID Mapping;
-} BASE_MCB, *PBASE_MCB;
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlCopyRead(
+  IN PFILE_OBJECT FileObject,
+  IN PLARGE_INTEGER FileOffset,
+  IN ULONG Length,
+  IN BOOLEAN Wait,
+  IN ULONG LockKey,
+  OUT PVOID Buffer,
+  OUT PIO_STATUS_BLOCK IoStatus,
+  IN PDEVICE_OBJECT DeviceObject);
 
 
-typedef struct _LARGE_MCB {
-  PKGUARDED_MUTEX GuardedMutex;
-  BASE_MCB BaseMcb;
-} LARGE_MCB, *PLARGE_MCB;
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlCopyWrite(
+  IN PFILE_OBJECT FileObject,
+  IN PLARGE_INTEGER FileOffset,
+  IN ULONG Length,
+  IN BOOLEAN Wait,
+  IN ULONG LockKey,
+  IN PVOID Buffer,
+  OUT PIO_STATUS_BLOCK IoStatus,
+  IN PDEVICE_OBJECT DeviceObject);
 
 
-#define MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE 1
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlMdlReadDev(
+  IN PFILE_OBJECT FileObject,
+  IN PLARGE_INTEGER FileOffset,
+  IN ULONG Length,
+  IN ULONG LockKey,
+  OUT PMDL *MdlChain,
+  OUT PIO_STATUS_BLOCK IoStatus,
+  IN PDEVICE_OBJECT DeviceObject OPTIONAL);
 
 
-typedef struct _MCB {
-  LARGE_MCB DummyFieldThatSizesThisStructureCorrectly;
-} MCB, *PMCB;
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlMdlReadCompleteDev(
+  IN PFILE_OBJECT FileObject,
+  IN PMDL MdlChain,
+  IN PDEVICE_OBJECT DeviceObject OPTIONAL);
 
 
-typedef PVOID OPLOCK, *POPLOCK;
-
-typedef VOID
-(NTAPI *POPLOCK_WAIT_COMPLETE_ROUTINE) (
-  IN PVOID Context,
-  IN PIRP Irp);
-
-typedef VOID
-(NTAPI *POPLOCK_FS_PREPOST_IRP) (
-  IN PVOID Context,
-  IN PIRP Irp);
-
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-#define OPLOCK_FLAG_COMPLETE_IF_OPLOCKED    0x00000001
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-#define OPLOCK_FLAG_OPLOCK_KEY_CHECK_ONLY   0x00000002
-#define OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK  0x00000004
-#define OPLOCK_FLAG_IGNORE_OPLOCK_KEYS      0x00000008
-#define OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH   0x00000001
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-typedef struct _OPLOCK_KEY_ECP_CONTEXT {
-  GUID OplockKey;
-  ULONG Reserved;
-} OPLOCK_KEY_ECP_CONTEXT, *POPLOCK_KEY_ECP_CONTEXT;
-
-DEFINE_GUID( GUID_ECP_OPLOCK_KEY, 0x48850596, 0x3050, 0x4be7, 0x98, 0x63, 0xfe, 0xc3, 0x50, 0xce, 0x8d, 0x7f );
-
-#endif
-
-#define FSRTL_VOLUME_DISMOUNT           1
-#define FSRTL_VOLUME_DISMOUNT_FAILED    2
-#define FSRTL_VOLUME_LOCK               3
-#define FSRTL_VOLUME_LOCK_FAILED        4
-#define FSRTL_VOLUME_UNLOCK             5
-#define FSRTL_VOLUME_MOUNT              6
-#define FSRTL_VOLUME_NEEDS_CHKDSK       7
-#define FSRTL_VOLUME_WORM_NEAR_FULL     8
-#define FSRTL_VOLUME_WEARING_OUT        9
-#define FSRTL_VOLUME_FORCED_CLOSED      10
-#define FSRTL_VOLUME_INFO_MAKE_COMPAT   11
-#define FSRTL_VOLUME_PREPARING_EJECT    12
-#define FSRTL_VOLUME_CHANGE_SIZE        13
-#define FSRTL_VOLUME_BACKGROUND_FORMAT  14
-
-typedef PVOID PNOTIFY_SYNC;
-
-typedef BOOLEAN
-(NTAPI *PCHECK_FOR_TRAVERSE_ACCESS) (
-  IN PVOID NotifyContext,
-  IN PVOID TargetContext OPTIONAL,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-typedef BOOLEAN
-(NTAPI *PFILTER_REPORT_CHANGE) (
-  IN PVOID NotifyContext,
-  IN PVOID FilterContext);
-
-typedef VOID
-(NTAPI *PFSRTL_STACK_OVERFLOW_ROUTINE) (
-  IN PVOID Context,
-  IN PKEVENT Event);
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-#define FSRTL_UNC_PROVIDER_FLAGS_MAILSLOTS_SUPPORTED    0x00000001
-#define FSRTL_UNC_PROVIDER_FLAGS_CSC_ENABLED            0x00000002
-#define FSRTL_UNC_PROVIDER_FLAGS_DOMAIN_SVC_AWARE       0x00000004
-
-#define FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA           0x00000001
-
-#define FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA               0x00000001
-#define FSRTL_ALLOCATE_ECP_FLAG_NONPAGED_POOL              0x00000002
-
-#define FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL             0x00000002
-
-#define FSRTL_VIRTDISK_FULLY_ALLOCATED  0x00000001
-#define FSRTL_VIRTDISK_NO_DRIVE_LETTER  0x00000002
-
-typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 {
-  ULONG32 ProviderId;
-} FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1;
-
-typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 {
-  ULONG32 ProviderId;
-  UNICODE_STRING ProviderName;
-} FSRTL_MUP_PROVIDER_INFO_LEVEL_2, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_2;
-
-typedef VOID
-(*PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK) (
-  IN OUT PVOID EcpContext,
-  IN LPCGUID EcpType);
-
-typedef struct _ECP_LIST ECP_LIST, *PECP_LIST;
-
-typedef ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS;
-typedef ULONG FSRTL_ALLOCATE_ECP_FLAGS;
-typedef ULONG FSRTL_ECP_LOOKASIDE_FLAGS;
-
-typedef enum _FSRTL_CHANGE_BACKING_TYPE {
-  ChangeDataControlArea,
-  ChangeImageControlArea,
-  ChangeSharedCacheMap
-} FSRTL_CHANGE_BACKING_TYPE, *PFSRTL_CHANGE_BACKING_TYPE;
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-typedef struct _FSRTL_PER_FILE_CONTEXT {
-  LIST_ENTRY Links;
-  PVOID OwnerId;
-  PVOID InstanceId;
-  PFREE_FUNCTION FreeCallback;
-} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;
-
-typedef struct _FSRTL_PER_STREAM_CONTEXT {
-  LIST_ENTRY Links;
-  PVOID OwnerId;
-  PVOID InstanceId;
-  PFREE_FUNCTION FreeCallback;
-} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-typedef VOID
-(*PFN_FSRTLTEARDOWNPERSTREAMCONTEXTS) (
-  IN PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader);
-#endif
-
-typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT {
-  LIST_ENTRY Links;
-  PVOID OwnerId;
-  PVOID InstanceId;
-} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;
-
-#define FsRtlEnterFileSystem    KeEnterCriticalRegion
-#define FsRtlExitFileSystem     KeLeaveCriticalRegion
-
-#define FSRTL_CC_FLUSH_ERROR_FLAG_NO_HARD_ERROR  0x1
-#define FSRTL_CC_FLUSH_ERROR_FLAG_NO_LOG_ENTRY   0x2
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlCopyRead(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  OUT PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlCopyWrite(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  IN PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlMdlReadDev(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlMdlReadCompleteDev(
-  IN PFILE_OBJECT FileObject,
-  IN PMDL MdlChain,
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlPrepareMdlWriteDev(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN PDEVICE_OBJECT DeviceObject);
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlPrepareMdlWriteDev(
+  IN PFILE_OBJECT FileObject,
+  IN PLARGE_INTEGER FileOffset,
+  IN ULONG Length,
+  IN ULONG LockKey,
+  OUT PMDL *MdlChain,
+  OUT PIO_STATUS_BLOCK IoStatus,
+  IN PDEVICE_OBJECT DeviceObject);
 
 NTKERNELAPI
 BOOLEAN
 
 NTKERNELAPI
 BOOLEAN
@@ -6706,2633 +6845,1754 @@ FsRtlPrivateLock(
   IN PVOID Context,
   IN BOOLEAN AlreadySynchronized);
 
   IN PVOID Context,
   IN BOOLEAN AlreadySynchronized);
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlInitializeTunnelCache(
-  IN PTUNNEL Cache);
-
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlAddToTunnelCache(
-  IN PTUNNEL Cache,
-  IN ULONGLONG DirectoryKey,
-  IN PUNICODE_STRING ShortName,
-  IN PUNICODE_STRING LongName,
-  IN BOOLEAN KeyByShortName,
-  IN ULONG DataLength,
-  IN PVOID Data);
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
+#if (NTDDI_VERSION >= NTDDI_WIN7)
 NTKERNELAPI
 BOOLEAN
 NTAPI
 NTKERNELAPI
 BOOLEAN
 NTAPI
-FsRtlFindInTunnelCache(
-  IN PTUNNEL Cache,
-  IN ULONGLONG DirectoryKey,
-  IN PUNICODE_STRING Name,
-  OUT PUNICODE_STRING ShortName,
-  OUT PUNICODE_STRING LongName,
-  IN OUT PULONG DataLength,
-  OUT PVOID Data);
-
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlDeleteKeyFromTunnelCache(
-  IN PTUNNEL Cache,
-  IN ULONGLONG DirectoryKey);
+FsRtlAreThereCurrentOrInProgressFileLocks(
+  IN PFILE_LOCK FileLock);
+#endif
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlDeleteTunnelCache(
-  IN PTUNNEL Cache);
+#pragma pack(push,4)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlDissectDbcs(
-  IN ANSI_STRING Name,
-  OUT PANSI_STRING FirstPart,
-  OUT PANSI_STRING RemainingPart);
+#ifndef VER_PRODUCTBUILD
+#define VER_PRODUCTBUILD 10000
+#endif
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlDoesDbcsContainWildCards(
-  IN PANSI_STRING Name);
+#include "csq.h"
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsDbcsInExpression(
-  IN PANSI_STRING Expression,
-  IN PANSI_STRING Name);
+#ifdef _NTOSKRNL_
+extern PUCHAR                       FsRtlLegalAnsiCharacterArray;
+#else
+extern DECLSPEC_IMPORT PUCHAR       FsRtlLegalAnsiCharacterArray;
+#endif
+extern PACL                         SePublicDefaultDacl;
+extern PACL                         SeSystemDefaultDacl;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsFatDbcsLegal(
-  IN ANSI_STRING DbcsName,
-  IN BOOLEAN WildCardsPermissible,
-  IN BOOLEAN PathNamePermissible,
-  IN BOOLEAN LeadingBackslashPermissible);
+#define FS_LFN_APIS                     0x00004000
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsHpfsDbcsLegal(
-  IN ANSI_STRING DbcsName,
-  IN BOOLEAN WildCardsPermissible,
-  IN BOOLEAN PathNamePermissible,
-  IN BOOLEAN LeadingBackslashPermissible);
+#define FILE_STORAGE_TYPE_SPECIFIED             0x00000041  /* FILE_DIRECTORY_FILE | FILE_NON_DIRECTORY_FILE */
+#define FILE_STORAGE_TYPE_DEFAULT               (StorageTypeDefault << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_DIRECTORY             (StorageTypeDirectory << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_FILE                  (StorageTypeFile << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_DOCFILE               (StorageTypeDocfile << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_JUNCTION_POINT        (StorageTypeJunctionPoint << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_CATALOG               (StorageTypeCatalog << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_STRUCTURED_STORAGE    (StorageTypeStructuredStorage << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_EMBEDDING             (StorageTypeEmbedding << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_STREAM                (StorageTypeStream << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_MINIMUM_STORAGE_TYPE               FILE_STORAGE_TYPE_DEFAULT
+#define FILE_MAXIMUM_STORAGE_TYPE               FILE_STORAGE_TYPE_STREAM
+#define FILE_STORAGE_TYPE_MASK                  0x000f0000
+#define FILE_STORAGE_TYPE_SHIFT                 16
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlNormalizeNtstatus(
-  IN NTSTATUS Exception,
-  IN NTSTATUS GenericException);
+#define FILE_VC_QUOTAS_LOG_VIOLATIONS   0x00000004
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsNtstatusExpected(
-  IN NTSTATUS Ntstatus);
+#define FSRTL_VOLUME_DISMOUNT           1
+#define FSRTL_VOLUME_DISMOUNT_FAILED    2
+#define FSRTL_VOLUME_LOCK               3
+#define FSRTL_VOLUME_LOCK_FAILED        4
+#define FSRTL_VOLUME_UNLOCK             5
+#define FSRTL_VOLUME_MOUNT              6
 
 
-NTKERNELAPI
-PERESOURCE
-NTAPI
-FsRtlAllocateResource(
-  VOID);
+#define FSRTL_WILD_CHARACTER            0x08
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlInitializeLargeMcb(
-  IN PLARGE_MCB Mcb,
-  IN POOL_TYPE PoolType);
+#define FSRTL_FAT_LEGAL                 0x01
+#define FSRTL_HPFS_LEGAL                0x02
+#define FSRTL_NTFS_LEGAL                0x04
+#define FSRTL_WILD_CHARACTER            0x08
+#define FSRTL_OLE_LEGAL                 0x10
+#define FSRTL_NTFS_STREAM_LEGAL         0x14
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlUninitializeLargeMcb(
-  IN PLARGE_MCB Mcb);
+#ifdef _X86_
+#define HARDWARE_PTE    HARDWARE_PTE_X86
+#define PHARDWARE_PTE   PHARDWARE_PTE_X86
+#endif
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlResetLargeMcb(
-  IN PLARGE_MCB Mcb,
-  IN BOOLEAN SelfSynchronized);
+#define IO_CHECK_CREATE_PARAMETERS      0x0200
+#define IO_ATTACH_DEVICE                0x0400
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlTruncateLargeMcb(
-  IN PLARGE_MCB Mcb,
-  IN LONGLONG Vbn);
+#define IO_ATTACH_DEVICE_API            0x80000000
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlAddLargeMcbEntry(
-  IN PLARGE_MCB Mcb,
-  IN LONGLONG Vbn,
-  IN LONGLONG Lbn,
-  IN LONGLONG SectorCount);
+#define IO_TYPE_APC                     18
+#define IO_TYPE_DPC                     19
+#define IO_TYPE_DEVICE_QUEUE            20
+#define IO_TYPE_EVENT_PAIR              21
+#define IO_TYPE_INTERRUPT               22
+#define IO_TYPE_PROFILE                 23
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlRemoveLargeMcbEntry(
-  IN PLARGE_MCB Mcb,
-  IN LONGLONG Vbn,
-  IN LONGLONG SectorCount);
+#define IRP_BEING_VERIFIED              0x10
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupLargeMcbEntry(
-  IN PLARGE_MCB Mcb,
-  IN LONGLONG Vbn,
-  OUT PLONGLONG Lbn OPTIONAL,
-  OUT PLONGLONG SectorCountFromLbn OPTIONAL,
-  OUT PLONGLONG StartingLbn OPTIONAL,
-  OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
-  OUT PULONG Index OPTIONAL);
+#define MAILSLOT_CLASS_FIRSTCLASS       1
+#define MAILSLOT_CLASS_SECONDCLASS      2
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupLastLargeMcbEntry(
-  IN PLARGE_MCB Mcb,
-  OUT PLONGLONG Vbn,
-  OUT PLONGLONG Lbn);
+#define MAILSLOT_SIZE_AUTO              0
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupLastLargeMcbEntryAndIndex(
-  IN PLARGE_MCB OpaqueMcb,
-  OUT PLONGLONG LargeVbn,
-  OUT PLONGLONG LargeLbn,
-  OUT PULONG Index);
+#define MEM_DOS_LIM                     0x40000000
 
 
-NTKERNELAPI
-ULONG
-NTAPI
-FsRtlNumberOfRunsInLargeMcb(
-  IN PLARGE_MCB Mcb);
+#define MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE 1
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlGetNextLargeMcbEntry(
-  IN PLARGE_MCB Mcb,
-  IN ULONG RunIndex,
-  OUT PLONGLONG Vbn,
-  OUT PLONGLONG Lbn,
-  OUT PLONGLONG SectorCount);
+#define OB_TYPE_TYPE                    1
+#define OB_TYPE_DIRECTORY               2
+#define OB_TYPE_SYMBOLIC_LINK           3
+#define OB_TYPE_TOKEN                   4
+#define OB_TYPE_PROCESS                 5
+#define OB_TYPE_THREAD                  6
+#define OB_TYPE_EVENT                   7
+#define OB_TYPE_EVENT_PAIR              8
+#define OB_TYPE_MUTANT                  9
+#define OB_TYPE_SEMAPHORE               10
+#define OB_TYPE_TIMER                   11
+#define OB_TYPE_PROFILE                 12
+#define OB_TYPE_WINDOW_STATION          13
+#define OB_TYPE_DESKTOP                 14
+#define OB_TYPE_SECTION                 15
+#define OB_TYPE_KEY                     16
+#define OB_TYPE_PORT                    17
+#define OB_TYPE_ADAPTER                 18
+#define OB_TYPE_CONTROLLER              19
+#define OB_TYPE_DEVICE                  20
+#define OB_TYPE_DRIVER                  21
+#define OB_TYPE_IO_COMPLETION           22
+#define OB_TYPE_FILE                    23
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlSplitLargeMcb(
-  IN PLARGE_MCB Mcb,
-  IN LONGLONG Vbn,
-  IN LONGLONG Amount);
+#define PIN_WAIT                        (1)
+#define PIN_EXCLUSIVE                   (2)
+#define PIN_NO_READ                     (4)
+#define PIN_IF_BCB                      (8)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlInitializeMcb(
-  IN PMCB Mcb,
-  IN POOL_TYPE PoolType);
+#define SEC_BASED      0x00200000
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlUninitializeMcb(
-  IN PMCB Mcb);
+#define SECURITY_WORLD_SID_AUTHORITY    {0,0,0,0,0,1}
+#define SECURITY_WORLD_RID              (0x00000000L)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlTruncateMcb(
-  IN PMCB Mcb,
-  IN VBN Vbn);
+/* end winnt.h */
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlAddMcbEntry(
-  IN PMCB Mcb,
-  IN VBN Vbn,
-  IN LBN Lbn,
-  IN ULONG SectorCount);
+#define TOKEN_HAS_ADMIN_GROUP           0x08
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlRemoveMcbEntry(
-  IN PMCB Mcb,
-  IN VBN Vbn,
-  IN ULONG SectorCount);
+#define VACB_MAPPING_GRANULARITY        (0x40000)
+#define VACB_OFFSET_SHIFT               (18)
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupMcbEntry(
-  IN PMCB Mcb,
-  IN VBN Vbn,
-  OUT PLBN Lbn,
-  OUT PULONG SectorCount OPTIONAL,
-  OUT PULONG Index);
+#if (VER_PRODUCTBUILD >= 1381)
+#define FSCTL_GET_HFS_INFORMATION       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif /* (VER_PRODUCTBUILD >= 1381) */
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupLastMcbEntry(
-  IN PMCB Mcb,
-  OUT PVBN Vbn,
-  OUT PLBN Lbn);
+#if (VER_PRODUCTBUILD >= 2195)
 
 
-NTKERNELAPI
-ULONG
-NTAPI
-FsRtlNumberOfRunsInMcb(
-  IN PMCB Mcb);
+#define FSCTL_READ_PROPERTY_DATA        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_WRITE_PROPERTY_DATA       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS)
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlGetNextMcbEntry(
-  IN PMCB Mcb,
-  IN ULONG RunIndex,
-  OUT PVBN Vbn,
-  OUT PLBN Lbn,
-  OUT PULONG SectorCount);
+#define FSCTL_DUMP_PROPERTY_DATA        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37,  METHOD_NEITHER, FILE_ANY_ACCESS)
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlBalanceReads(
-  IN PDEVICE_OBJECT TargetDevice);
+#define FSCTL_HSM_MSG                   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSCTL_NSS_CONTROL               CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 67, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_HSM_DATA                  CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSCTL_NSS_RCONTROL              CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 70, METHOD_BUFFERED, FILE_READ_DATA)
+#endif /* (VER_PRODUCTBUILD >= 2195) */
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlInitializeOplock(
-  IN OUT POPLOCK Oplock);
+#define FSCTL_NETWORK_SET_CONFIGURATION_INFO    CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 102, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_GET_CONFIGURATION_INFO    CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 103, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_GET_CONNECTION_INFO       CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 104, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_ENUMERATE_CONNECTIONS     CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 105, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_DELETE_CONNECTION         CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 107, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_GET_STATISTICS            CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 116, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_SET_DOMAIN_NAME           CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_REMOTE_BOOT_INIT_SCRT     CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 250, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlUninitializeOplock(
-  IN OUT POPLOCK Oplock);
+#define IOCTL_REDIR_QUERY_PATH          CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS)
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlOplockFsctrl(
-  IN POPLOCK Oplock,
-  IN PIRP Irp,
-  IN ULONG OpenCount);
+typedef PVOID OPLOCK, *POPLOCK;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlCheckOplock(
-  IN POPLOCK Oplock,
-  IN PIRP Irp,
-  IN PVOID Context,
-  IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
-  IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL);
+//
+// Forwarders
+//
+struct _RTL_AVL_TABLE;
+struct _RTL_GENERIC_TABLE;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlOplockIsFastIoPossible(
-  IN POPLOCK Oplock);
+typedef PVOID PNOTIFY_SYNC;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlCurrentBatchOplock(
-  IN POPLOCK Oplock);
+typedef enum _FILE_STORAGE_TYPE {
+    StorageTypeDefault = 1,
+    StorageTypeDirectory,
+    StorageTypeFile,
+    StorageTypeJunctionPoint,
+    StorageTypeCatalog,
+    StorageTypeStructuredStorage,
+    StorageTypeEmbedding,
+    StorageTypeStream
+} FILE_STORAGE_TYPE;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlNotifyVolumeEvent(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG EventCode);
+typedef struct _OBJECT_BASIC_INFORMATION
+{
+    ULONG Attributes;
+    ACCESS_MASK GrantedAccess;
+    ULONG HandleCount;
+    ULONG PointerCount;
+    ULONG PagedPoolCharge;
+    ULONG NonPagedPoolCharge;
+    ULONG Reserved[ 3 ];
+    ULONG NameInfoSize;
+    ULONG TypeInfoSize;
+    ULONG SecurityDescriptorSize;
+    LARGE_INTEGER CreationTime;
+} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyInitializeSync(
-  IN PNOTIFY_SYNC *NotifySync);
+typedef struct _BITMAP_RANGE {
+    LIST_ENTRY      Links;
+    LONGLONG        BasePage;
+    ULONG           FirstDirtyPage;
+    ULONG           LastDirtyPage;
+    ULONG           DirtyPages;
+    PULONG          Bitmap;
+} BITMAP_RANGE, *PBITMAP_RANGE;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyUninitializeSync(
-  IN PNOTIFY_SYNC *NotifySync);
+typedef struct _CACHE_UNINITIALIZE_EVENT {
+    struct _CACHE_UNINITIALIZE_EVENT    *Next;
+    KEVENT                              Event;
+} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyFullChangeDirectory(
-  IN PNOTIFY_SYNC NotifySync,
-  IN PLIST_ENTRY NotifyList,
-  IN PVOID FsContext,
-  IN PSTRING FullDirectoryName,
-  IN BOOLEAN WatchTree,
-  IN BOOLEAN IgnoreBuffer,
-  IN ULONG CompletionFilter,
-  IN PIRP NotifyIrp OPTIONAL,
-  IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL);
+typedef struct _CC_FILE_SIZES {
+    LARGE_INTEGER AllocationSize;
+    LARGE_INTEGER FileSize;
+    LARGE_INTEGER ValidDataLength;
+} CC_FILE_SIZES, *PCC_FILE_SIZES;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyFilterReportChange(
-  IN PNOTIFY_SYNC NotifySync,
-  IN PLIST_ENTRY NotifyList,
-  IN PSTRING FullTargetName,
-  IN USHORT TargetNameOffset,
-  IN PSTRING StreamName OPTIONAL,
-  IN PSTRING NormalizedParentName OPTIONAL,
-  IN ULONG FilterMatch,
-  IN ULONG Action,
-  IN PVOID TargetContext OPTIONAL,
-  IN PVOID FilterContext OPTIONAL);
+typedef struct _FILE_COPY_ON_WRITE_INFORMATION {
+    BOOLEAN ReplaceIfExists;
+    HANDLE  RootDirectory;
+    ULONG   FileNameLength;
+    WCHAR   FileName[1];
+} FILE_COPY_ON_WRITE_INFORMATION, *PFILE_COPY_ON_WRITE_INFORMATION;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyFullReportChange(
-  IN PNOTIFY_SYNC NotifySync,
-  IN PLIST_ENTRY NotifyList,
-  IN PSTRING FullTargetName,
-  IN USHORT TargetNameOffset,
-  IN PSTRING StreamName OPTIONAL,
-  IN PSTRING NormalizedParentName OPTIONAL,
-  IN ULONG FilterMatch,
-  IN ULONG Action,
-  IN PVOID TargetContext OPTIONAL);
+typedef struct _FILE_FULL_DIRECTORY_INFORMATION {
+    ULONG           NextEntryOffset;
+    ULONG           FileIndex;
+    LARGE_INTEGER   CreationTime;
+    LARGE_INTEGER   LastAccessTime;
+    LARGE_INTEGER   LastWriteTime;
+    LARGE_INTEGER   ChangeTime;
+    LARGE_INTEGER   EndOfFile;
+    LARGE_INTEGER   AllocationSize;
+    ULONG           FileAttributes;
+    ULONG           FileNameLength;
+    ULONG           EaSize;
+    WCHAR           FileName[ANYSIZE_ARRAY];
+} FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyCleanup(
-  IN PNOTIFY_SYNC NotifySync,
-  IN PLIST_ENTRY NotifyList,
-  IN PVOID FsContext);
+typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
+    LARGE_INTEGER   TotalAllocationUnits;
+    LARGE_INTEGER   CallerAvailableAllocationUnits;
+    LARGE_INTEGER   ActualAvailableAllocationUnits;
+    ULONG           SectorsPerAllocationUnit;
+    ULONG           BytesPerSector;
+} FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlDissectName(
-  IN UNICODE_STRING Name,
-  OUT PUNICODE_STRING FirstPart,
-  OUT PUNICODE_STRING RemainingPart);
+typedef struct _FILE_FS_LABEL_INFORMATION {
+    ULONG VolumeLabelLength;
+    WCHAR VolumeLabel[1];
+} FILE_FS_LABEL_INFORMATION, *PFILE_FS_LABEL_INFORMATION;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlDoesNameContainWildCards(
-  IN PUNICODE_STRING Name);
+#if (VER_PRODUCTBUILD >= 2195)
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlAreNamesEqual(
-  IN PCUNICODE_STRING Name1,
-  IN PCUNICODE_STRING Name2,
-  IN BOOLEAN IgnoreCase,
-  IN PCWCH UpcaseTable OPTIONAL);
+typedef struct _FILE_FS_OBJECT_ID_INFORMATION {
+    UCHAR ObjectId[16];
+    UCHAR ExtendedInfo[48];
+} FILE_FS_OBJECT_ID_INFORMATION, *PFILE_FS_OBJECT_ID_INFORMATION;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsNameInExpression(
-  IN PUNICODE_STRING Expression,
-  IN PUNICODE_STRING Name,
-  IN BOOLEAN IgnoreCase,
-  IN PWCHAR UpcaseTable OPTIONAL);
+#endif /* (VER_PRODUCTBUILD >= 2195) */
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlPostPagingFileStackOverflow(
-  IN PVOID Context,
-  IN PKEVENT Event,
-  IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine);
+typedef struct _FILE_FS_SIZE_INFORMATION {
+    LARGE_INTEGER   TotalAllocationUnits;
+    LARGE_INTEGER   AvailableAllocationUnits;
+    ULONG           SectorsPerAllocationUnit;
+    ULONG           BytesPerSector;
+} FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION;
+
+typedef struct _FILE_FS_VOLUME_INFORMATION {
+    LARGE_INTEGER   VolumeCreationTime;
+    ULONG           VolumeSerialNumber;
+    ULONG           VolumeLabelLength;
+    BOOLEAN         SupportsObjects;
+    WCHAR           VolumeLabel[1];
+} FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
+
+typedef struct _FILE_FS_OBJECTID_INFORMATION
+{
+    UCHAR ObjectId[16];
+    UCHAR ExtendedInfo[48];
+} FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlPostStackOverflow (
-  IN PVOID Context,
-  IN PKEVENT Event,
-  IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine);
+/* raw internal file lock struct returned from FsRtlGetNextFileLock */
+typedef struct _FILE_SHARED_LOCK_ENTRY {
+    PVOID           Unknown1;
+    PVOID           Unknown2;
+    FILE_LOCK_INFO  FileLock;
+} FILE_SHARED_LOCK_ENTRY, *PFILE_SHARED_LOCK_ENTRY;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlRegisterUncProvider(
-  OUT PHANDLE MupHandle,
-  IN PUNICODE_STRING RedirectorDeviceName,
-  IN BOOLEAN MailslotsSupported);
+/* raw internal file lock struct returned from FsRtlGetNextFileLock */
+typedef struct _FILE_EXCLUSIVE_LOCK_ENTRY {
+    LIST_ENTRY      ListEntry;
+    PVOID           Unknown1;
+    PVOID           Unknown2;
+    FILE_LOCK_INFO  FileLock;
+} FILE_EXCLUSIVE_LOCK_ENTRY, *PFILE_EXCLUSIVE_LOCK_ENTRY;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlDeregisterUncProvider(
-  IN HANDLE Handle);
+typedef struct _FILE_MAILSLOT_PEEK_BUFFER {
+    ULONG ReadDataAvailable;
+    ULONG NumberOfMessages;
+    ULONG MessageLength;
+} FILE_MAILSLOT_PEEK_BUFFER, *PFILE_MAILSLOT_PEEK_BUFFER;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlTeardownPerStreamContexts(
-  IN PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader);
+typedef struct _FILE_OLE_CLASSID_INFORMATION {
+    GUID ClassId;
+} FILE_OLE_CLASSID_INFORMATION, *PFILE_OLE_CLASSID_INFORMATION;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlCreateSectionForDataScan(
-  OUT PHANDLE SectionHandle,
-  OUT PVOID *SectionObject,
-  OUT PLARGE_INTEGER SectionFileSize OPTIONAL,
-  IN PFILE_OBJECT FileObject,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PLARGE_INTEGER MaximumSize OPTIONAL,
-  IN ULONG SectionPageProtection,
-  IN ULONG AllocationAttributes,
-  IN ULONG Flags);
+typedef struct _FILE_OLE_ALL_INFORMATION {
+    FILE_BASIC_INFORMATION          BasicInformation;
+    FILE_STANDARD_INFORMATION       StandardInformation;
+    FILE_INTERNAL_INFORMATION       InternalInformation;
+    FILE_EA_INFORMATION             EaInformation;
+    FILE_ACCESS_INFORMATION         AccessInformation;
+    FILE_POSITION_INFORMATION       PositionInformation;
+    FILE_MODE_INFORMATION           ModeInformation;
+    FILE_ALIGNMENT_INFORMATION      AlignmentInformation;
+    USN                             LastChangeUsn;
+    USN                             ReplicationUsn;
+    LARGE_INTEGER                   SecurityChangeTime;
+    FILE_OLE_CLASSID_INFORMATION    OleClassIdInformation;
+    FILE_OBJECTID_INFORMATION       ObjectIdInformation;
+    FILE_STORAGE_TYPE               StorageType;
+    ULONG                           OleStateBits;
+    ULONG                           OleId;
+    ULONG                           NumberOfStreamReferences;
+    ULONG                           StreamIndex;
+    ULONG                           SecurityId;
+    BOOLEAN                         ContentIndexDisable;
+    BOOLEAN                         InheritContentIndexDisable;
+    FILE_NAME_INFORMATION           NameInformation;
+} FILE_OLE_ALL_INFORMATION, *PFILE_OLE_ALL_INFORMATION;
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+typedef struct _FILE_OLE_DIR_INFORMATION {
+    ULONG               NextEntryOffset;
+    ULONG               FileIndex;
+    LARGE_INTEGER       CreationTime;
+    LARGE_INTEGER       LastAccessTime;
+    LARGE_INTEGER       LastWriteTime;
+    LARGE_INTEGER       ChangeTime;
+    LARGE_INTEGER       EndOfFile;
+    LARGE_INTEGER       AllocationSize;
+    ULONG               FileAttributes;
+    ULONG               FileNameLength;
+    FILE_STORAGE_TYPE   StorageType;
+    GUID                OleClassId;
+    ULONG               OleStateBits;
+    BOOLEAN             ContentIndexDisable;
+    BOOLEAN             InheritContentIndexDisable;
+    WCHAR               FileName[1];
+} FILE_OLE_DIR_INFORMATION, *PFILE_OLE_DIR_INFORMATION;
 
 
-#if (NTDDI_VERSION >= NTDDI_WINXP)
+typedef struct _FILE_OLE_INFORMATION {
+    LARGE_INTEGER                   SecurityChangeTime;
+    FILE_OLE_CLASSID_INFORMATION    OleClassIdInformation;
+    FILE_OBJECTID_INFORMATION       ObjectIdInformation;
+    FILE_STORAGE_TYPE               StorageType;
+    ULONG                           OleStateBits;
+    BOOLEAN                         ContentIndexDisable;
+    BOOLEAN                         InheritContentIndexDisable;
+} FILE_OLE_INFORMATION, *PFILE_OLE_INFORMATION;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyFilterChangeDirectory(
-  IN PNOTIFY_SYNC NotifySync,
-  IN PLIST_ENTRY NotifyList,
-  IN PVOID FsContext,
-  IN PSTRING FullDirectoryName,
-  IN BOOLEAN WatchTree,
-  IN BOOLEAN IgnoreBuffer,
-  IN ULONG CompletionFilter,
-  IN PIRP NotifyIrp OPTIONAL,
-  IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL,
-  IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL);
+typedef struct _FILE_OLE_STATE_BITS_INFORMATION {
+    ULONG StateBits;
+    ULONG StateBitsMask;
+} FILE_OLE_STATE_BITS_INFORMATION, *PFILE_OLE_STATE_BITS_INFORMATION;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlInsertPerStreamContext(
-  IN PFSRTL_ADVANCED_FCB_HEADER PerStreamContext,
-  IN PFSRTL_PER_STREAM_CONTEXT Ptr);
+typedef enum _FSRTL_COMPARISON_RESULT
+{
+    LessThan = -1,
+    EqualTo = 0,
+    GreaterThan = 1
+} FSRTL_COMPARISON_RESULT;
+    
+#if (VER_PRODUCTBUILD >= 2600)
 
 
-NTKERNELAPI
-PFSRTL_PER_STREAM_CONTEXT
-NTAPI
-FsRtlLookupPerStreamContextInternal(
-  IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
-  IN PVOID OwnerId OPTIONAL,
-  IN PVOID InstanceId OPTIONAL);
+typedef struct _FSRTL_PER_STREAM_CONTEXT {
+    LIST_ENTRY     Links;
+    PVOID          OwnerId;
+    PVOID          InstanceId;
+    PFREE_FUNCTION FreeCallback;
+} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
 
 
-NTKERNELAPI
-PFSRTL_PER_STREAM_CONTEXT
-NTAPI
-FsRtlRemovePerStreamContext(
-  IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
-  IN PVOID OwnerId OPTIONAL,
-  IN PVOID InstanceId OPTIONAL);
+typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT
+{
+    LIST_ENTRY Links;
+    PVOID OwnerId;
+    PVOID InstanceId;
+} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlIncrementCcFastReadNotPossible(
-  VOID);
+#endif /* (VER_PRODUCTBUILD >= 2600) */
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlIncrementCcFastReadWait(
-  VOID);
+typedef struct _BASE_MCB
+{
+    ULONG MaximumPairCount;
+    ULONG PairCount;
+    USHORT PoolType;
+    USHORT Flags;
+    PVOID Mapping;
+} BASE_MCB, *PBASE_MCB;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlIncrementCcFastReadNoWait(
-  VOID);
+typedef struct _LARGE_MCB
+{
+    PKGUARDED_MUTEX GuardedMutex;
+    BASE_MCB BaseMcb;
+} LARGE_MCB, *PLARGE_MCB;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlIncrementCcFastReadResourceMiss(
-  VOID);
+typedef struct _MCB
+{
+    LARGE_MCB DummyFieldThatSizesThisStructureCorrectly;
+} MCB, *PMCB;
 
 
-NTKERNELAPI
-LOGICAL
-NTAPI
-FsRtlIsPagingFile(
-  IN PFILE_OBJECT FileObject);
+typedef struct _MAPPING_PAIR {
+    ULONGLONG Vcn;
+    ULONGLONG Lcn;
+} MAPPING_PAIR, *PMAPPING_PAIR;
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+typedef struct _GET_RETRIEVAL_DESCRIPTOR {
+    ULONG           NumberOfPairs;
+    ULONGLONG       StartVcn;
+    MAPPING_PAIR    Pair[1];
+} GET_RETRIEVAL_DESCRIPTOR, *PGET_RETRIEVAL_DESCRIPTOR;
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
+#define ASSERT_QUEUE(Q) ASSERT(((Q)->Header.Type & KOBJECT_TYPE_MASK) == QueueObject);
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlInitializeBaseMcb(
-  IN PBASE_MCB Mcb,
-  IN POOL_TYPE PoolType);
+typedef struct _MBCB {
+    CSHORT          NodeTypeCode;
+    CSHORT          NodeIsInZone;
+    ULONG           PagesToWrite;
+    ULONG           DirtyPages;
+    ULONG           Reserved;
+    LIST_ENTRY      BitmapRanges;
+    LONGLONG        ResumeWritePage;
+    BITMAP_RANGE    BitmapRange1;
+    BITMAP_RANGE    BitmapRange2;
+    BITMAP_RANGE    BitmapRange3;
+} MBCB, *PMBCB;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlUninitializeBaseMcb(
-  IN PBASE_MCB Mcb);
+typedef struct _MOVEFILE_DESCRIPTOR {
+     HANDLE         FileHandle;
+     ULONG          Reserved;
+     LARGE_INTEGER  StartVcn;
+     LARGE_INTEGER  TargetLcn;
+     ULONG          NumVcns;
+     ULONG          Reserved1;
+} MOVEFILE_DESCRIPTOR, *PMOVEFILE_DESCRIPTOR;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlResetBaseMcb(
-  IN PBASE_MCB Mcb);
+typedef struct _OBJECT_BASIC_INFO {
+    ULONG           Attributes;
+    ACCESS_MASK     GrantedAccess;
+    ULONG           HandleCount;
+    ULONG           ReferenceCount;
+    ULONG           PagedPoolUsage;
+    ULONG           NonPagedPoolUsage;
+    ULONG           Reserved[3];
+    ULONG           NameInformationLength;
+    ULONG           TypeInformationLength;
+    ULONG           SecurityDescriptorLength;
+    LARGE_INTEGER   CreateTime;
+} OBJECT_BASIC_INFO, *POBJECT_BASIC_INFO;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlTruncateBaseMcb(
-  IN PBASE_MCB Mcb,
-  IN LONGLONG Vbn);
+typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFO {
+    BOOLEAN Inherit;
+    BOOLEAN ProtectFromClose;
+} OBJECT_HANDLE_ATTRIBUTE_INFO, *POBJECT_HANDLE_ATTRIBUTE_INFO;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlAddBaseMcbEntry(
-  IN PBASE_MCB Mcb,
-  IN LONGLONG Vbn,
-  IN LONGLONG Lbn,
-  IN LONGLONG SectorCount);
+typedef struct _OBJECT_NAME_INFO {
+    UNICODE_STRING  ObjectName;
+    WCHAR           ObjectNameBuffer[1];
+} OBJECT_NAME_INFO, *POBJECT_NAME_INFO;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlRemoveBaseMcbEntry(
-  IN PBASE_MCB Mcb,
-  IN LONGLONG Vbn,
-  IN LONGLONG SectorCount);
+typedef struct _OBJECT_PROTECTION_INFO {
+    BOOLEAN Inherit;
+    BOOLEAN ProtectHandle;
+} OBJECT_PROTECTION_INFO, *POBJECT_PROTECTION_INFO;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupBaseMcbEntry(
-  IN PBASE_MCB Mcb,
-  IN LONGLONG Vbn,
-  OUT PLONGLONG Lbn OPTIONAL,
-  OUT PLONGLONG SectorCountFromLbn OPTIONAL,
-  OUT PLONGLONG StartingLbn OPTIONAL,
-  OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
-  OUT PULONG Index OPTIONAL);
+typedef struct _OBJECT_TYPE_INFO {
+    UNICODE_STRING  ObjectTypeName;
+    UCHAR           Unknown[0x58];
+    WCHAR           ObjectTypeNameBuffer[1];
+} OBJECT_TYPE_INFO, *POBJECT_TYPE_INFO;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupLastBaseMcbEntry(
-  IN PBASE_MCB Mcb,
-  OUT PLONGLONG Vbn,
-  OUT PLONGLONG Lbn);
+typedef struct _OBJECT_ALL_TYPES_INFO {
+    ULONG               NumberOfObjectTypes;
+    OBJECT_TYPE_INFO    ObjectsTypeInfo[1];
+} OBJECT_ALL_TYPES_INFO, *POBJECT_ALL_TYPES_INFO;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlLookupLastBaseMcbEntryAndIndex(
-  IN PBASE_MCB OpaqueMcb,
-  IN OUT PLONGLONG LargeVbn,
-  IN OUT PLONGLONG LargeLbn,
-  IN OUT PULONG Index);
+typedef enum _RTL_GENERIC_COMPARE_RESULTS
+{
+    GenericLessThan,
+    GenericGreaterThan,
+    GenericEqual
+} RTL_GENERIC_COMPARE_RESULTS;
 
 
-NTKERNELAPI
-ULONG
-NTAPI
-FsRtlNumberOfRunsInBaseMcb(
-  IN PBASE_MCB Mcb);
+typedef enum _TABLE_SEARCH_RESULT
+{
+    TableEmptyTree,
+    TableFoundNode,
+    TableInsertAsLeft,
+    TableInsertAsRight
+} TABLE_SEARCH_RESULT;
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlGetNextBaseMcbEntry(
-  IN PBASE_MCB Mcb,
-  IN ULONG RunIndex,
-  OUT PLONGLONG Vbn,
-  OUT PLONGLONG Lbn,
-  OUT PLONGLONG SectorCount);
+typedef NTSTATUS
+(NTAPI *PRTL_AVL_MATCH_FUNCTION)(
+    struct _RTL_AVL_TABLE *Table,
+    PVOID UserData,
+    PVOID MatchData
+);
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlSplitBaseMcb(
-  IN PBASE_MCB Mcb,
-  IN LONGLONG Vbn,
-  IN LONGLONG Amount);
+typedef RTL_GENERIC_COMPARE_RESULTS
+(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
+    struct _RTL_AVL_TABLE *Table,
+    PVOID FirstStruct,
+    PVOID SecondStruct
+);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
+typedef RTL_GENERIC_COMPARE_RESULTS
+(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
+    struct _RTL_GENERIC_TABLE *Table,
+    PVOID FirstStruct,
+    PVOID SecondStruct
+);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+typedef PVOID
+(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
+    struct _RTL_GENERIC_TABLE *Table,
+    CLONG ByteSize
+);
 
 
-BOOLEAN
-NTAPI
-FsRtlInitializeBaseMcbEx(
-  IN PBASE_MCB Mcb,
-  IN POOL_TYPE PoolType,
-  IN USHORT Flags);
+typedef VOID
+(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
+    struct _RTL_GENERIC_TABLE *Table,
+    PVOID Buffer
+);
 
 
-NTSTATUS
-NTAPI
-FsRtlAddBaseMcbEntryEx(
-  IN PBASE_MCB Mcb,
-  IN LONGLONG Vbn,
-  IN LONGLONG Lbn,
-  IN LONGLONG SectorCount);
+typedef PVOID
+(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
+    struct _RTL_AVL_TABLE *Table,
+    CLONG ByteSize
+);
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlCurrentOplock(
-  IN POPLOCK Oplock);
+typedef VOID
+(NTAPI *PRTL_AVL_FREE_ROUTINE) (
+    struct _RTL_AVL_TABLE *Table,
+    PVOID Buffer
+);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlOplockBreakToNone(
-  IN OUT POPLOCK Oplock,
-  IN PIO_STACK_LOCATION IrpSp OPTIONAL,
-  IN PIRP Irp,
-  IN PVOID Context OPTIONAL,
-  IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
-  IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL);
+typedef struct _PUBLIC_BCB {
+    CSHORT          NodeTypeCode;
+    CSHORT          NodeByteSize;
+    ULONG           MappedLength;
+    LARGE_INTEGER   MappedFileOffset;
+} PUBLIC_BCB, *PPUBLIC_BCB;
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlNotifyVolumeEventEx(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG EventCode,
-  IN PTARGET_DEVICE_CUSTOM_NOTIFICATION Event);
+typedef struct _QUERY_PATH_REQUEST {
+    ULONG                   PathNameLength;
+    PIO_SECURITY_CONTEXT    SecurityContext;
+    WCHAR                   FilePathName[1];
+} QUERY_PATH_REQUEST, *PQUERY_PATH_REQUEST;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlNotifyCleanupAll(
-  IN PNOTIFY_SYNC NotifySync,
-  IN PLIST_ENTRY NotifyList);
+typedef struct _QUERY_PATH_RESPONSE {
+    ULONG LengthAccepted;
+} QUERY_PATH_RESPONSE, *PQUERY_PATH_RESPONSE;
 
 
-NTSTATUS
-NTAPI
-FsRtlRegisterUncProviderEx(
-  OUT PHANDLE MupHandle,
-  IN PUNICODE_STRING RedirDevName,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG Flags);
+typedef struct _RTL_BALANCED_LINKS
+{
+    struct _RTL_BALANCED_LINKS *Parent;
+    struct _RTL_BALANCED_LINKS *LeftChild;
+    struct _RTL_BALANCED_LINKS *RightChild;
+    CHAR Balance;
+    UCHAR Reserved[3];
+} RTL_BALANCED_LINKS, *PRTL_BALANCED_LINKS;
+
+typedef struct _RTL_GENERIC_TABLE
+{
+    PRTL_SPLAY_LINKS TableRoot;
+    LIST_ENTRY InsertOrderList;
+    PLIST_ENTRY OrderedPointer;
+    ULONG WhichOrderedElement;
+    ULONG NumberGenericTableElements;
+    PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
+    PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
+    PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
+    PVOID TableContext;
+} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
+
+#undef PRTL_GENERIC_COMPARE_ROUTINE
+#undef PRTL_GENERIC_ALLOCATE_ROUTINE
+#undef PRTL_GENERIC_FREE_ROUTINE
+#undef RTL_GENERIC_TABLE
+#undef PRTL_GENERIC_TABLE
+
+#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
+#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
+#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
+#define RTL_GENERIC_TABLE RTL_AVL_TABLE
+#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
+
+#define RtlInitializeGenericTable               RtlInitializeGenericTableAvl
+#define RtlInsertElementGenericTable            RtlInsertElementGenericTableAvl
+#define RtlInsertElementGenericTableFull        RtlInsertElementGenericTableFullAvl
+#define RtlDeleteElementGenericTable            RtlDeleteElementGenericTableAvl
+#define RtlLookupElementGenericTable            RtlLookupElementGenericTableAvl
+#define RtlLookupElementGenericTableFull        RtlLookupElementGenericTableFullAvl
+#define RtlEnumerateGenericTable                RtlEnumerateGenericTableAvl
+#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
+#define RtlGetElementGenericTable               RtlGetElementGenericTableAvl
+#define RtlNumberGenericTableElements           RtlNumberGenericTableElementsAvl
+#define RtlIsGenericTableEmpty                  RtlIsGenericTableEmptyAvl
+
+typedef struct _RTL_AVL_TABLE
+{
+    RTL_BALANCED_LINKS BalancedRoot;
+    PVOID OrderedPointer;
+    ULONG WhichOrderedElement;
+    ULONG NumberGenericTableElements;
+    ULONG DepthOfTree;
+    PRTL_BALANCED_LINKS RestartKey;
+    ULONG DeleteCount;
+    PRTL_AVL_COMPARE_ROUTINE CompareRoutine;
+    PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
+    PRTL_AVL_FREE_ROUTINE FreeRoutine;
+    PVOID TableContext;
+} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
+
+NTSYSAPI
+VOID
+NTAPI
+RtlInitializeGenericTableAvl(
+    PRTL_AVL_TABLE Table,
+    PRTL_AVL_COMPARE_ROUTINE CompareRoutine,
+    PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine,
+    PRTL_AVL_FREE_ROUTINE FreeRoutine,
+    PVOID TableContext
+);
 
 
-NTKERNELAPI
-NTSTATUS
+NTSYSAPI
+PVOID
 NTAPI
 NTAPI
-FsRtlCancellableWaitForSingleObject(
-  IN PVOID Object,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  IN PIRP Irp OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
+RtlInsertElementGenericTableAvl (
+    PRTL_AVL_TABLE Table,
+    PVOID Buffer,
+    CLONG BufferSize,
+    PBOOLEAN NewElement OPTIONAL
+    );
+    
+NTSYSAPI
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlCancellableWaitForMultipleObjects(
-  IN ULONG Count,
-  IN PVOID ObjectArray[],
-  IN WAIT_TYPE WaitType,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  IN PKWAIT_BLOCK WaitBlockArray OPTIONAL,
-  IN PIRP Irp OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
+RtlDeleteElementGenericTableAvl (
+    PRTL_AVL_TABLE Table,
+    PVOID Buffer
+    );
+    
+NTSYSAPI
+PVOID
 NTAPI
 NTAPI
-FsRtlMupGetProviderInfoFromFileObject(
-  IN PFILE_OBJECT pFileObject,
-  IN ULONG Level,
-  OUT PVOID pBuffer,
-  IN OUT PULONG pBufferSize);
-
-NTKERNELAPI
-NTSTATUS
+RtlLookupElementGenericTableAvl (
+    PRTL_AVL_TABLE Table,
+    PVOID Buffer
+    );
+    
+NTSYSAPI
+PVOID
 NTAPI
 NTAPI
-FsRtlMupGetProviderIdFromName(
-  IN PUNICODE_STRING pProviderName,
-  OUT PULONG32 pProviderId);
+RtlEnumerateGenericTableWithoutSplayingAvl (
+    PRTL_AVL_TABLE Table,
+    PVOID *RestartKey
+    );
 
 
-NTKERNELAPI
-VOID
-NTAPI
-FsRtlIncrementCcFastMdlReadWait(
-  VOID);
+#if defined(USE_LPC6432)
+#define LPC_CLIENT_ID CLIENT_ID64
+#define LPC_SIZE_T ULONGLONG
+#define LPC_PVOID ULONGLONG
+#define LPC_HANDLE ULONGLONG
+#else
+#define LPC_CLIENT_ID CLIENT_ID
+#define LPC_SIZE_T SIZE_T
+#define LPC_PVOID PVOID
+#define LPC_HANDLE HANDLE
+#endif
+
+typedef struct _PORT_MESSAGE
+{
+    union
+    {
+        struct
+        {
+            CSHORT DataLength;
+            CSHORT TotalLength;
+        } s1;
+        ULONG Length;
+    } u1;
+    union
+    {
+        struct
+        {
+            CSHORT Type;
+            CSHORT DataInfoOffset;
+        } s2;
+        ULONG ZeroInit;
+    } u2;
+    __GNU_EXTENSION union
+    {
+        LPC_CLIENT_ID ClientId;
+        double DoNotUseThisField;
+    };
+    ULONG MessageId;
+    __GNU_EXTENSION union
+    {
+        LPC_SIZE_T ClientViewSize;
+        ULONG CallbackId;
+    };
+} PORT_MESSAGE, *PPORT_MESSAGE;
+
+#define LPC_KERNELMODE_MESSAGE      (CSHORT)((USHORT)0x8000)
+
+typedef struct _PORT_VIEW
+{
+    ULONG Length;
+    LPC_HANDLE SectionHandle;
+    ULONG SectionOffset;
+    LPC_SIZE_T ViewSize;
+    LPC_PVOID ViewBase;
+    LPC_PVOID ViewRemoteBase;
+} PORT_VIEW, *PPORT_VIEW;
+
+typedef struct _REMOTE_PORT_VIEW
+{
+    ULONG Length;
+    LPC_SIZE_T ViewSize;
+    LPC_PVOID ViewBase;
+} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
+
+typedef struct _TUNNEL {
+    FAST_MUTEX          Mutex;
+    PRTL_SPLAY_LINKS    Cache;
+    LIST_ENTRY          TimerQueue;
+    USHORT              NumEntries;
+} TUNNEL, *PTUNNEL;
+
+typedef struct _VAD_HEADER {
+    PVOID       StartVPN;
+    PVOID       EndVPN;
+    struct _VAD_HEADER* ParentLink;
+    struct _VAD_HEADER* LeftLink;
+    struct _VAD_HEADER* RightLink;
+    ULONG       Flags;          /* LSB = CommitCharge */
+    PVOID       ControlArea;
+    PVOID       FirstProtoPte;
+    PVOID       LastPTE;
+    ULONG       Unknown;
+    LIST_ENTRY  Secured;
+} VAD_HEADER, *PVAD_HEADER;
+
+#if (VER_PRODUCTBUILD >= 2600)
+
+typedef BOOLEAN
+(NTAPI *PFILTER_REPORT_CHANGE) (
+    IN PVOID  NotifyContext,
+    IN PVOID  FilterContext
+);
+
+#endif
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlValidateReparsePointBuffer(
-  IN ULONG BufferLength,
-  IN PREPARSE_DATA_BUFFER ReparseBuffer);
+CcCanIWrite (
+    IN PFILE_OBJECT FileObject,
+    IN ULONG        BytesToWrite,
+    IN BOOLEAN      Wait,
+    IN BOOLEAN      Retrying
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlRemoveDotsFromPath(
-  IN OUT PWSTR OriginalString,
-  IN USHORT PathLength,
-  OUT USHORT *NewLength);
+CcCopyRead (
+    IN PFILE_OBJECT         FileObject,
+    IN PLARGE_INTEGER       FileOffset,
+    IN ULONG                Length,
+    IN BOOLEAN              Wait,
+    OUT PVOID               Buffer,
+    OUT PIO_STATUS_BLOCK    IoStatus
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlAllocateExtraCreateParameterList(
-  IN FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
-  OUT PECP_LIST *EcpList);
+CcCopyWrite (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN ULONG            Length,
+    IN BOOLEAN          Wait,
+    IN PVOID            Buffer
+);
+
+#define CcCopyWriteWontFlush(FO, FOFF, LEN) ((LEN) <= 0x10000)
+
+typedef VOID (NTAPI *PCC_POST_DEFERRED_WRITE) (
+    IN PVOID Context1,
+    IN PVOID Context2
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-FsRtlFreeExtraCreateParameterList(
-  IN PECP_LIST EcpList);
+CcDeferWrite (
+    IN PFILE_OBJECT             FileObject,
+    IN PCC_POST_DEFERRED_WRITE  PostRoutine,
+    IN PVOID                    Context1,
+    IN PVOID                    Context2,
+    IN ULONG                    BytesToWrite,
+    IN BOOLEAN                  Retrying
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlAllocateExtraCreateParameter(
-  IN LPCGUID EcpType,
-  IN ULONG SizeOfContext,
-  IN FSRTL_ALLOCATE_ECP_FLAGS Flags,
-  IN PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback OPTIONAL,
-  IN ULONG PoolTag,
-  OUT PVOID *EcpContext);
+CcFastCopyRead (
+    IN PFILE_OBJECT         FileObject,
+    IN ULONG                FileOffset,
+    IN ULONG                Length,
+    IN ULONG                PageCount,
+    OUT PVOID               Buffer,
+    OUT PIO_STATUS_BLOCK    IoStatus
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-FsRtlFreeExtraCreateParameter(
-  IN PVOID EcpContext);
+CcFastCopyWrite (
+    IN PFILE_OBJECT FileObject,
+    IN ULONG        FileOffset,
+    IN ULONG        Length,
+    IN PVOID        Buffer
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-FsRtlInitExtraCreateParameterLookasideList(
-  IN OUT PVOID Lookaside,
-  IN FSRTL_ECP_LOOKASIDE_FLAGS Flags,
-  IN SIZE_T Size,
-  IN ULONG Tag);
+CcFlushCache (
+    IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
+    IN PLARGE_INTEGER           FileOffset OPTIONAL,
+    IN ULONG                    Length,
+    OUT PIO_STATUS_BLOCK        IoStatus OPTIONAL
+);
 
 
-VOID
-NTAPI
-FsRtlDeleteExtraCreateParameterLookasideList(
-  IN OUT PVOID Lookaside,
-  IN FSRTL_ECP_LOOKASIDE_FLAGS Flags);
+typedef VOID (NTAPI *PDIRTY_PAGE_ROUTINE) (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN ULONG            Length,
+    IN PLARGE_INTEGER   OldestLsn,
+    IN PLARGE_INTEGER   NewestLsn,
+    IN PVOID            Context1,
+    IN PVOID            Context2
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+LARGE_INTEGER
 NTAPI
 NTAPI
-FsRtlAllocateExtraCreateParameterFromLookasideList(
-  IN LPCGUID EcpType,
-  IN ULONG SizeOfContext,
-  IN FSRTL_ALLOCATE_ECP_FLAGS Flags,
-  IN PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback OPTIONAL,
-  IN OUT PVOID LookasideList,
-  OUT PVOID *EcpContext);
+CcGetDirtyPages (
+    IN PVOID                LogHandle,
+    IN PDIRTY_PAGE_ROUTINE  DirtyPageRoutine,
+    IN PVOID                Context1,
+    IN PVOID                Context2
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PFILE_OBJECT
 NTAPI
 NTAPI
-FsRtlInsertExtraCreateParameter(
-  IN OUT PECP_LIST EcpList,
-  IN OUT PVOID EcpContext);
+CcGetFileObjectFromBcb (
+    IN PVOID Bcb
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PFILE_OBJECT
 NTAPI
 NTAPI
-FsRtlFindExtraCreateParameter(
-  IN PECP_LIST EcpList,
-  IN LPCGUID EcpType,
-  OUT PVOID *EcpContext OPTIONAL,
-  OUT ULONG *EcpContextSize OPTIONAL);
+CcGetFileObjectFromSectionPtrs (
+    IN PSECTION_OBJECT_POINTERS SectionObjectPointer
+);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlRemoveExtraCreateParameter(
-  IN OUT PECP_LIST EcpList,
-  IN LPCGUID EcpType,
-  OUT PVOID *EcpContext,
-  OUT ULONG *EcpContextSize OPTIONAL);
+#define CcGetFileSizePointer(FO) (                                     \
+    ((PLARGE_INTEGER)((FO)->SectionObjectPointer->SharedCacheMap) + 1) \
+)
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlGetEcpListFromIrp(
-  IN PIRP Irp,
-  OUT PECP_LIST *EcpList OPTIONAL);
+#if (VER_PRODUCTBUILD >= 2195)
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+LARGE_INTEGER
 NTAPI
 NTAPI
-FsRtlSetEcpListIntoIrp(
-  IN OUT PIRP Irp,
-  IN PECP_LIST EcpList);
+CcGetFlushedValidData (
+    IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
+    IN BOOLEAN                  BcbListHeld
+);
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-FsRtlGetNextExtraCreateParameter(
-  IN PECP_LIST EcpList,
-  IN PVOID CurrentEcpContext OPTIONAL,
-  OUT LPGUID NextEcpType OPTIONAL,
-  OUT PVOID *NextEcpContext OPTIONAL,
-  OUT ULONG *NextEcpContextSize OPTIONAL);
+#endif /* (VER_PRODUCTBUILD >= 2195) */
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+LARGE_INTEGER
 NTAPI
 NTAPI
-FsRtlAcknowledgeEcp(
-  IN PVOID EcpContext);
+CcGetLsnForFileObject (
+    IN PFILE_OBJECT     FileObject,
+    OUT PLARGE_INTEGER  OldestLsn OPTIONAL
+);
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsEcpAcknowledged(
-  IN PVOID EcpContext);
+typedef BOOLEAN (NTAPI *PACQUIRE_FOR_LAZY_WRITE) (
+    IN PVOID    Context,
+    IN BOOLEAN  Wait
+);
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsEcpFromUserMode(
-  IN PVOID EcpContext);
+typedef VOID (NTAPI *PRELEASE_FROM_LAZY_WRITE) (
+    IN PVOID Context
+);
+
+typedef BOOLEAN (NTAPI *PACQUIRE_FOR_READ_AHEAD) (
+    IN PVOID    Context,
+    IN BOOLEAN  Wait
+);
+
+typedef VOID (NTAPI *PRELEASE_FROM_READ_AHEAD) (
+    IN PVOID Context
+);
+
+typedef struct _CACHE_MANAGER_CALLBACKS {
+    PACQUIRE_FOR_LAZY_WRITE     AcquireForLazyWrite;
+    PRELEASE_FROM_LAZY_WRITE    ReleaseFromLazyWrite;
+    PACQUIRE_FOR_READ_AHEAD     AcquireForReadAhead;
+    PRELEASE_FROM_READ_AHEAD    ReleaseFromReadAhead;
+} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlChangeBackingFileObject(
-  IN PFILE_OBJECT CurrentFileObject OPTIONAL,
-  IN PFILE_OBJECT NewFileObject,
-  IN FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
-  IN ULONG Flags);
+CcInitializeCacheMap (
+    IN PFILE_OBJECT             FileObject,
+    IN PCC_FILE_SIZES           FileSizes,
+    IN BOOLEAN                  PinAccess,
+    IN PCACHE_MANAGER_CALLBACKS Callbacks,
+    IN PVOID                    LazyWriteContext
+);
+
+#define CcIsFileCached(FO) (                                                         \
+    ((FO)->SectionObjectPointer != NULL) &&                                          \
+    (((PSECTION_OBJECT_POINTERS)(FO)->SectionObjectPointer)->SharedCacheMap != NULL) \
+)
+
+extern ULONG CcFastMdlReadWait;
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlLogCcFlushError(
-  IN PUNICODE_STRING FileName,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
-  IN NTSTATUS FlushError,
-  IN ULONG Flags);
+CcIsThereDirtyData (
+    IN PVPB Vpb
+);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-FsRtlAreVolumeStartupApplicationsComplete(
-  VOID);
+CcMapData (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN ULONG            Length,
+    IN ULONG            Flags,
+    OUT PVOID           *Bcb,
+    OUT PVOID           *Buffer
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-ULONG
+VOID
 NTAPI
 NTAPI
-FsRtlQueryMaximumVirtualDiskNestingLevel(
-  VOID);
+CcMdlRead (
+    IN PFILE_OBJECT         FileObject,
+    IN PLARGE_INTEGER       FileOffset,
+    IN ULONG                Length,
+    OUT PMDL                *MdlChain,
+    OUT PIO_STATUS_BLOCK    IoStatus
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlGetVirtualDiskNestingLevel(
-  IN PDEVICE_OBJECT DeviceObject,
-  OUT PULONG NestingLevel,
-  OUT PULONG NestingFlags OPTIONAL);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+CcMdlReadComplete (
+    IN PFILE_OBJECT FileObject,
+    IN PMDL         MdlChain
+);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
 NTKERNELAPI
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlCheckOplockEx(
-  IN POPLOCK Oplock,
-  IN PIRP Irp,
-  IN ULONG Flags,
-  IN PVOID Context OPTIONAL,
-  IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
-  IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL);
-
-#endif
+CcMdlWriteComplete (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN PMDL             MdlChain
+);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
+#define MAP_WAIT        1
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-FsRtlAreThereCurrentOrInProgressFileLocks(
-  IN PFILE_LOCK FileLock);
+CcPinMappedData (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN ULONG            Length,
+    IN ULONG            Flags,
+    IN OUT PVOID        *Bcb
+);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-FsRtlOplockIsSharedRequest(
-  IN PIRP Irp);
+CcPinRead (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN ULONG            Length,
+    IN ULONG            Flags,
+    OUT PVOID           *Bcb,
+    OUT PVOID           *Buffer
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlOplockBreakH(
-  IN POPLOCK Oplock,
-  IN PIRP Irp,
-  IN ULONG Flags,
-  IN PVOID Context OPTIONAL,
-  IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
-  IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL);
+CcPrepareMdlWrite (
+    IN PFILE_OBJECT         FileObject,
+    IN PLARGE_INTEGER       FileOffset,
+    IN ULONG                Length,
+    OUT PMDL                *MdlChain,
+    OUT PIO_STATUS_BLOCK    IoStatus
+);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-FsRtlCurrentOplockH(
-  IN POPLOCK Oplock);
+CcPreparePinWrite (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN ULONG            Length,
+    IN BOOLEAN          Zero,
+    IN ULONG            Flags,
+    OUT PVOID           *Bcb,
+    OUT PVOID           *Buffer
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlOplockBreakToNoneEx(
-  IN OUT POPLOCK Oplock,
-  IN PIRP Irp,
-  IN ULONG Flags,
-  IN PVOID Context OPTIONAL,
-  IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
-  IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL);
+CcPurgeCacheSection (
+    IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
+    IN PLARGE_INTEGER           FileOffset OPTIONAL,
+    IN ULONG                    Length,
+    IN BOOLEAN                  UninitializeCacheMaps
+);
+
+#define CcReadAhead(FO, FOFF, LEN) (                \
+    if ((LEN) >= 256) {                             \
+        CcScheduleReadAhead((FO), (FOFF), (LEN));   \
+    }                                               \
+)
+
+#if (VER_PRODUCTBUILD >= 2195)
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-FsRtlOplockFsctrlEx(
-  IN POPLOCK Oplock,
-  IN PIRP Irp,
-  IN ULONG OpenCount,
-  IN ULONG Flags);
+CcRemapBcb (
+    IN PVOID Bcb
+);
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+VOID
 NTAPI
 NTAPI
-FsRtlOplockKeysEqual(
-  IN PFILE_OBJECT Fo1 OPTIONAL,
-  IN PFILE_OBJECT Fo2 OPTIONAL);
+CcRepinBcb (
+    IN PVOID Bcb
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlInitializeExtraCreateParameterList(
-  IN OUT PECP_LIST EcpList);
+CcScheduleReadAhead (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   FileOffset,
+    IN ULONG            Length
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-FsRtlInitializeExtraCreateParameter(
-  IN PECP_HEADER Ecp,
-  IN ULONG EcpFlags,
-  IN PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback OPTIONAL,
-  IN ULONG TotalSize,
-  IN LPCGUID EcpType,
-  IN PVOID ListAllocatedFrom OPTIONAL);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+CcSetAdditionalCacheAttributes (
+    IN PFILE_OBJECT FileObject,
+    IN BOOLEAN      DisableReadAhead,
+    IN BOOLEAN      DisableWriteBehind
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlInsertPerFileContext(
-  IN PVOID* PerFileContextPointer,
-  IN PFSRTL_PER_FILE_CONTEXT Ptr);
+CcSetBcbOwnerPointer (
+    IN PVOID Bcb,
+    IN PVOID OwnerPointer
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PFSRTL_PER_FILE_CONTEXT
+VOID
 NTAPI
 NTAPI
-FsRtlLookupPerFileContext(
-  IN PVOID* PerFileContextPointer,
-  IN PVOID OwnerId OPTIONAL,
-  IN PVOID InstanceId OPTIONAL);
+CcSetDirtyPageThreshold (
+    IN PFILE_OBJECT FileObject,
+    IN ULONG        DirtyPageThreshold
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PFSRTL_PER_FILE_CONTEXT
+VOID
 NTAPI
 NTAPI
-FsRtlRemovePerFileContext(
-  IN PVOID* PerFileContextPointer,
-  IN PVOID OwnerId OPTIONAL,
-  IN PVOID InstanceId OPTIONAL);
+CcSetDirtyPinnedData (
+    IN PVOID            BcbVoid,
+    IN PLARGE_INTEGER   Lsn OPTIONAL
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-FsRtlTeardownPerFileContexts(
-  IN PVOID* PerFileContextPointer);
+CcSetFileSizes (
+    IN PFILE_OBJECT     FileObject,
+    IN PCC_FILE_SIZES   FileSizes
+);
+
+typedef VOID (NTAPI *PFLUSH_TO_LSN) (
+    IN PVOID            LogHandle,
+    IN LARGE_INTEGER    Lsn
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-FsRtlInsertPerFileObjectContext(
-  IN PFILE_OBJECT FileObject,
-  IN PFSRTL_PER_FILEOBJECT_CONTEXT Ptr);
+CcSetLogHandleForFile (
+    IN PFILE_OBJECT     FileObject,
+    IN PVOID            LogHandle,
+    IN PFLUSH_TO_LSN    FlushToLsnRoutine
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PFSRTL_PER_FILEOBJECT_CONTEXT
+VOID
 NTAPI
 NTAPI
-FsRtlLookupPerFileObjectContext(
-  IN PFILE_OBJECT FileObject,
-  IN PVOID OwnerId OPTIONAL,
-  IN PVOID InstanceId OPTIONAL);
+CcSetReadAheadGranularity (
+    IN PFILE_OBJECT FileObject,
+    IN ULONG        Granularity     /* default: PAGE_SIZE */
+                                    /* allowed: 2^n * PAGE_SIZE */
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PFSRTL_PER_FILEOBJECT_CONTEXT
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlRemovePerFileObjectContext(
-  IN PFILE_OBJECT FileObject,
-  IN PVOID OwnerId OPTIONAL,
-  IN PVOID InstanceId OPTIONAL);
+CcUninitializeCacheMap (
+    IN PFILE_OBJECT                 FileObject,
+    IN PLARGE_INTEGER               TruncateSize OPTIONAL,
+    IN PCACHE_UNINITIALIZE_EVENT    UninitializeCompleteEvent OPTIONAL
+);
 
 
-#define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) (       \
-     FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11)   \
-)
+NTKERNELAPI
+VOID
+NTAPI
+CcUnpinData (
+    IN PVOID Bcb
+);
 
 
-#define FsRtlAreThereCurrentFileLocks(FL) ( \
-    ((FL)->FastIoIsQuestionable)            \
-)
+NTKERNELAPI
+VOID
+NTAPI
+CcUnpinDataForThread (
+    IN PVOID            Bcb,
+    IN ERESOURCE_THREAD ResourceThreadId
+);
 
 
-#define FsRtlIncrementLockRequestsInProgress(FL) {                           \
-    ASSERT( (FL)->LockRequestsInProgress >= 0 );                             \
-    (void)                                                                   \
-    (InterlockedIncrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\
-}
+NTKERNELAPI
+VOID
+NTAPI
+CcUnpinRepinnedBcb (
+    IN PVOID                Bcb,
+    IN BOOLEAN              WriteThrough,
+    OUT PIO_STATUS_BLOCK    IoStatus
+);
 
 
-#define FsRtlDecrementLockRequestsInProgress(FL) {                           \
-    ASSERT( (FL)->LockRequestsInProgress > 0 );                              \
-    (void)                                                                   \
-    (InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\
-}
+#if (VER_PRODUCTBUILD >= 2195)
 
 
-extern NTKERNELAPI PUSHORT NlsOemLeadByteInfo;
-#define NLS_OEM_LEAD_BYTE_INFO            NlsOemLeadByteInfo
+NTKERNELAPI
+NTSTATUS
+NTAPI
+CcWaitForCurrentLazyWriterActivity (
+    VOID
+);
 
 
-#ifdef NLS_MB_CODE_PAGE_TAG
-#undef NLS_MB_CODE_PAGE_TAG
-#endif
-#define NLS_MB_CODE_PAGE_TAG              NlsMbOemCodePageTag
+#endif /* (VER_PRODUCTBUILD >= 2195) */
 
 
-/* GCC compatible definition, MS one is retarded */
-extern NTKERNELAPI const UCHAR * const FsRtlLegalAnsiCharacterArray;
-#define LEGAL_ANSI_CHARACTER_ARRAY        FsRtlLegalAnsiCharacterArray
+NTKERNELAPI
+BOOLEAN
+NTAPI
+CcZeroData (
+    IN PFILE_OBJECT     FileObject,
+    IN PLARGE_INTEGER   StartOffset,
+    IN PLARGE_INTEGER   EndOffset,
+    IN BOOLEAN          Wait
+);
 
 
-#define FsRtlIsAnsiCharacterWild(C) (                                       \
-    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \
-)
+#if (VER_PRODUCTBUILD >= 2600)
 
 
-#define FsRtlIsAnsiCharacterLegalFat(C, WILD) (                                \
-    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_FAT_LEGAL) |       \
-                                        ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
-)
+#ifndef __NTOSKRNL__
+NTKERNELAPI
+VOID
+FASTCALL
+ExInitializeRundownProtection (
+    IN PEX_RUNDOWN_REF  RunRef
+);
 
 
-#define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) (                               \
-    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) |      \
-                                        ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
-)
+NTKERNELAPI
+VOID
+FASTCALL
+ExReInitializeRundownProtection (
+    IN PEX_RUNDOWN_REF  RunRef
+);
 
 
-#define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) (                               \
-    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) |      \
-                                        ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
-)
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExAcquireRundownProtection (
+    IN PEX_RUNDOWN_REF  RunRef
+);
 
 
-#define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) (                    \
-    FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL)   \
-)
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExAcquireRundownProtectionEx (
+    IN PEX_RUNDOWN_REF  RunRef,
+    IN ULONG            Count
+);
 
 
-#define FsRtlIsAnsiCharacterLegal(C,FLAGS) (          \
-    FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS)) \
-)
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseRundownProtection (
+    IN PEX_RUNDOWN_REF  RunRef
+);
 
 
-#define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) (            \
-        ((SCHAR)(C) < 0) ? DEFAULT_RET :                                    \
-                           FlagOn( LEGAL_ANSI_CHARACTER_ARRAY[(C)],         \
-                                   (FLAGS) |                                \
-                                   ((WILD_OK) ? FSRTL_WILD_CHARACTER : 0) ) \
-)
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseRundownProtectionEx (
+    IN PEX_RUNDOWN_REF  RunRef,
+    IN ULONG            Count
+);
 
 
-#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) (                               \
-    (BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE :                           \
-              (NLS_MB_CODE_PAGE_TAG &&                                      \
-               (NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0)))          \
-)
+NTKERNELAPI
+VOID
+FASTCALL
+ExRundownCompleted (
+    IN PEX_RUNDOWN_REF  RunRef
+);
 
 
-#define FsRtlIsUnicodeCharacterWild(C) (                                    \
-    (((C) >= 0x40) ?                                                        \
-    FALSE :                                                                 \
-    FlagOn(FsRtlLegalAnsiCharacterArray[(C)], FSRTL_WILD_CHARACTER ))       \
-)
+NTKERNELAPI
+VOID
+FASTCALL
+ExWaitForRundownProtectionRelease (
+    IN PEX_RUNDOWN_REF  RunRef
+);
 
 
-#define FsRtlInitPerFileContext( _fc, _owner, _inst, _cb)   \
-    ((_fc)->OwnerId = (_owner),                               \
-     (_fc)->InstanceId = (_inst),                             \
-     (_fc)->FreeCallback = (_cb))
-
-#define FsRtlGetPerFileContextPointer(_fo) \
-    (FsRtlSupportsPerFileContexts(_fo) ? \
-        FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer : \
-        NULL)
-
-#define FsRtlSupportsPerFileContexts(_fo)                     \
-    ((FsRtlGetPerStreamContextPointer(_fo) != NULL) &&        \
-     (FsRtlGetPerStreamContextPointer(_fo)->Version >= FSRTL_FCB_HEADER_V1) &&  \
-     (FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer != NULL))
-
-#define FsRtlSetupAdvancedHeaderEx( _advhdr, _fmutx, _fctxptr )                     \
-{                                                                                   \
-    FsRtlSetupAdvancedHeader( _advhdr, _fmutx );                                    \
-    if ((_fctxptr) != NULL) {                                                       \
-        (_advhdr)->FileContextSupportPointer = (_fctxptr);                          \
-    }                                                                               \
+#endif
+#endif /* (VER_PRODUCTBUILD >= 2600) */
+
+
+#define FsRtlSetupAdvancedHeader( _advhdr, _fmutx )                         \
+{                                                                           \
+    SetFlag( (_advhdr)->Flags, FSRTL_FLAG_ADVANCED_HEADER );                \
+    SetFlag( (_advhdr)->Flags2, FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS );     \
+    (_advhdr)->Version = FSRTL_FCB_HEADER_V1;                               \
+    InitializeListHead( &(_advhdr)->FilterContexts );                       \
+    if ((_fmutx) != NULL) {                                                 \
+        (_advhdr)->FastMutex = (_fmutx);                                    \
+    }                                                                       \
+    *((PULONG_PTR)(&(_advhdr)->PushLock)) = 0;                              \
+    /*ExInitializePushLock( &(_advhdr)->PushLock ); API Not avaliable downlevel*/\
+    (_advhdr)->FileContextSupportPointer = NULL;                            \
 }
 
 }
 
-#define FsRtlGetPerStreamContextPointer(FO) (   \
-    (PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext \
-)
-
-#define FsRtlInitPerStreamContext(PSC, O, I, FC) ( \
-    (PSC)->OwnerId = (O),                          \
-    (PSC)->InstanceId = (I),                       \
-    (PSC)->FreeCallback = (FC)                     \
-)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlAddBaseMcbEntry (
+    IN PBASE_MCB  Mcb,
+    IN LONGLONG   Vbn,
+    IN LONGLONG   Lbn,
+    IN LONGLONG   SectorCount
+);
 
 
-#define FsRtlSupportsPerStreamContexts(FO) (                       \
-    (BOOLEAN)((NULL != FsRtlGetPerStreamContextPointer(FO) &&     \
-              FlagOn(FsRtlGetPerStreamContextPointer(FO)->Flags2, \
-              FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS))               \
-)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlAddLargeMcbEntry (
+    IN PLARGE_MCB  Mcb,
+    IN LONGLONG    Vbn,
+    IN LONGLONG    Lbn,
+    IN LONGLONG    SectorCount
+);
 
 
-#define FsRtlLookupPerStreamContext(_sc, _oid, _iid)                          \
- (((NULL != (_sc)) &&                                                         \
-   FlagOn((_sc)->Flags2,FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS) &&              \
-   !IsListEmpty(&(_sc)->FilterContexts)) ?                                    \
-        FsRtlLookupPerStreamContextInternal((_sc), (_oid), (_iid)) :          \
-        NULL)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlAddMcbEntry (
+    IN PMCB   Mcb,
+    IN VBN    Vbn,
+    IN LBN    Lbn,
+    IN ULONG  SectorCount
+);
 
 
+NTKERNELAPI
 VOID
 VOID
-FORCEINLINE
 NTAPI
 NTAPI
-FsRtlSetupAdvancedHeader(
-  IN PVOID AdvHdr,
-  IN PFAST_MUTEX FMutex )
-{
-  PFSRTL_ADVANCED_FCB_HEADER localAdvHdr = (PFSRTL_ADVANCED_FCB_HEADER)AdvHdr;
+FsRtlAddToTunnelCache (
+    IN PTUNNEL          Cache,
+    IN ULONGLONG        DirectoryKey,
+    IN PUNICODE_STRING  ShortName,
+    IN PUNICODE_STRING  LongName,
+    IN BOOLEAN          KeyByShortName,
+    IN ULONG            DataLength,
+    IN PVOID            Data
+);
 
 
-  localAdvHdr->Flags |= FSRTL_FLAG_ADVANCED_HEADER;
-  localAdvHdr->Flags2 |= FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS;
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-  localAdvHdr->Version = FSRTL_FCB_HEADER_V1;
-#else
-  localAdvHdr->Version = FSRTL_FCB_HEADER_V0;
-#endif
-  InitializeListHead( &localAdvHdr->FilterContexts );
-  if (FMutex != NULL) {
-    localAdvHdr->FastMutex = FMutex;
-  }
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-  *((PULONG_PTR)(&localAdvHdr->PushLock)) = 0;
-  localAdvHdr->FileContextSupportPointer = NULL;
-#endif
-}
+NTKERNELAPI
+PVOID
+NTAPI
+FsRtlAllocatePool (
+    IN POOL_TYPE    PoolType,
+    IN ULONG        NumberOfBytes
+);
 
 
-#define FsRtlInitPerFileObjectContext(_fc, _owner, _inst)         \
-           ((_fc)->OwnerId = (_owner), (_fc)->InstanceId = (_inst))
+NTKERNELAPI
+PVOID
+NTAPI
+FsRtlAllocatePoolWithQuota (
+    IN POOL_TYPE    PoolType,
+    IN ULONG        NumberOfBytes
+);
 
 
-#define FsRtlCompleteRequest(IRP,STATUS) {         \
-    (IRP)->IoStatus.Status = (STATUS);             \
-    IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
-}
+NTKERNELAPI
+PVOID
+NTAPI
+FsRtlAllocatePoolWithQuotaTag (
+    IN POOL_TYPE    PoolType,
+    IN ULONG        NumberOfBytes,
+    IN ULONG        Tag
+);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-typedef struct _ECP_HEADER ECP_HEADER, *PECP_HEADER;
-#endif
+NTKERNELAPI
+PVOID
+NTAPI
+FsRtlAllocatePoolWithTag (
+    IN POOL_TYPE    PoolType,
+    IN ULONG        NumberOfBytes,
+    IN ULONG        Tag
+);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlAreNamesEqual (
+    IN PCUNICODE_STRING  Name1,
+    IN PCUNICODE_STRING  Name2,
+    IN BOOLEAN           IgnoreCase,
+    IN PCWCH             UpcaseTable OPTIONAL
+);
 
 
-typedef enum _NETWORK_OPEN_LOCATION_QUALIFIER {
-  NetworkOpenLocationAny,
-  NetworkOpenLocationRemote,
-  NetworkOpenLocationLoopback
-} NETWORK_OPEN_LOCATION_QUALIFIER;
+#define FsRtlAreThereCurrentFileLocks(FL) ( \
+    ((FL)->FastIoIsQuestionable)            \
+)
 
 
-typedef enum _NETWORK_OPEN_INTEGRITY_QUALIFIER {
-  NetworkOpenIntegrityAny,
-  NetworkOpenIntegrityNone,
-  NetworkOpenIntegritySigned,
-  NetworkOpenIntegrityEncrypted,
-  NetworkOpenIntegrityMaximum
-} NETWORK_OPEN_INTEGRITY_QUALIFIER;
+typedef
+VOID
+(NTAPI*POPLOCK_WAIT_COMPLETE_ROUTINE) (
+    IN PVOID    Context,
+    IN PIRP     Irp
+);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
+typedef
+VOID
+(NTAPI*POPLOCK_FS_PREPOST_IRP) (
+    IN PVOID    Context,
+    IN PIRP     Irp
+);
 
 
-#define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING 0x1
-#define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY 0x2
-#define NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK 0x80000000
+NTKERNELAPI
+NTSTATUS
+NTAPI
+FsRtlCheckOplock (
+    IN POPLOCK                          Oplock,
+    IN PIRP                             Irp,
+    IN PVOID                            Context,
+    IN POPLOCK_WAIT_COMPLETE_ROUTINE    CompletionRoutine OPTIONAL,
+    IN POPLOCK_FS_PREPOST_IRP           PostIrpRoutine OPTIONAL
+);
 
 
-typedef struct _NETWORK_OPEN_ECP_CONTEXT {
-  USHORT Size;
-  USHORT Reserved;
-  struct {
-    struct {
-      NETWORK_OPEN_LOCATION_QUALIFIER Location;
-      NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
-      ULONG Flags;
-    } in;
-    struct {
-      NETWORK_OPEN_LOCATION_QUALIFIER Location;
-      NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
-      ULONG Flags;
-    } out;
-  } DUMMYSTRUCTNAME;
-} NETWORK_OPEN_ECP_CONTEXT, *PNETWORK_OPEN_ECP_CONTEXT;
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlCurrentBatchOplock (
+    IN POPLOCK Oplock
+);
 
 
-typedef struct _NETWORK_OPEN_ECP_CONTEXT_V0 {
-  USHORT Size;
-  USHORT Reserved;
-  struct {
-    struct {
-    NETWORK_OPEN_LOCATION_QUALIFIER Location;
-    NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
-    } in;
-    struct {
-      NETWORK_OPEN_LOCATION_QUALIFIER Location;
-      NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
-    } out;
-  } DUMMYSTRUCTNAME;
-} NETWORK_OPEN_ECP_CONTEXT_V0, *PNETWORK_OPEN_ECP_CONTEXT_V0;
-
-#elif (NTDDI_VERSION >= NTDDI_VISTA)
-typedef struct _NETWORK_OPEN_ECP_CONTEXT {
-  USHORT Size;
-  USHORT Reserved;
-  struct {
-    struct {
-      NETWORK_OPEN_LOCATION_QUALIFIER Location;
-      NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
-    } in;
-    struct {
-      NETWORK_OPEN_LOCATION_QUALIFIER Location;
-      NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
-    } out;
-  } DUMMYSTRUCTNAME;
-} NETWORK_OPEN_ECP_CONTEXT, *PNETWORK_OPEN_ECP_CONTEXT;
-#endif
-
-DEFINE_GUID(GUID_ECP_NETWORK_OPEN_CONTEXT, 0xc584edbf, 0x00df, 0x4d28, 0xb8, 0x84, 0x35, 0xba, 0xca, 0x89, 0x11, 0xe8 );
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-typedef struct _PREFETCH_OPEN_ECP_CONTEXT {
-  PVOID Context;
-} PREFETCH_OPEN_ECP_CONTEXT, *PPREFETCH_OPEN_ECP_CONTEXT;
-
-DEFINE_GUID(GUID_ECP_PREFETCH_OPEN, 0xe1777b21, 0x847e, 0x4837, 0xaa, 0x45, 0x64, 0x16, 0x1d, 0x28, 0x6, 0x55 );
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-DEFINE_GUID (GUID_ECP_NFS_OPEN, 0xf326d30c, 0xe5f8, 0x4fe7, 0xab, 0x74, 0xf5, 0xa3, 0x19, 0x6d, 0x92, 0xdb);
-DEFINE_GUID(GUID_ECP_SRV_OPEN, 0xbebfaebc, 0xaabf, 0x489d, 0x9d, 0x2c, 0xe9, 0xe3, 0x61, 0x10, 0x28, 0x53 );
-
-typedef struct sockaddr_storage *PSOCKADDR_STORAGE_NFS;
-
-typedef struct _NFS_OPEN_ECP_CONTEXT {
-  PUNICODE_STRING ExportAlias;
-  PSOCKADDR_STORAGE_NFS ClientSocketAddress;
-} NFS_OPEN_ECP_CONTEXT, *PNFS_OPEN_ECP_CONTEXT, **PPNFS_OPEN_ECP_CONTEXT;
-
-typedef struct _SRV_OPEN_ECP_CONTEXT {
-  PUNICODE_STRING ShareName;
-  PSOCKADDR_STORAGE_NFS SocketAddress;
-  BOOLEAN OplockBlockState;
-  BOOLEAN OplockAppState;
-  BOOLEAN OplockFinalState;
-} SRV_OPEN_ECP_CONTEXT, *PSRV_OPEN_ECP_CONTEXT;
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#define VACB_MAPPING_GRANULARITY        (0x40000)
-#define VACB_OFFSET_SHIFT               (18)
-
-typedef struct _PUBLIC_BCB {
-  CSHORT NodeTypeCode;
-  CSHORT NodeByteSize;
-  ULONG MappedLength;
-  LARGE_INTEGER MappedFileOffset;
-} PUBLIC_BCB, *PPUBLIC_BCB;
-
-typedef struct _CC_FILE_SIZES {
-  LARGE_INTEGER AllocationSize;
-  LARGE_INTEGER FileSize;
-  LARGE_INTEGER ValidDataLength;
-} CC_FILE_SIZES, *PCC_FILE_SIZES;
-
-typedef BOOLEAN
-(NTAPI *PACQUIRE_FOR_LAZY_WRITE) (
-  IN PVOID Context,
-  IN BOOLEAN Wait);
-
-typedef VOID
-(NTAPI *PRELEASE_FROM_LAZY_WRITE) (
-  IN PVOID Context);
-
-typedef BOOLEAN
-(NTAPI *PACQUIRE_FOR_READ_AHEAD) (
-  IN PVOID Context,
-  IN BOOLEAN Wait);
-
-typedef VOID
-(NTAPI *PRELEASE_FROM_READ_AHEAD) (
-  IN PVOID Context);
-
-typedef struct _CACHE_MANAGER_CALLBACKS {
-  PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite;
-  PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite;
-  PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead;
-  PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead;
-} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
-
-typedef struct _CACHE_UNINITIALIZE_EVENT {
-  struct _CACHE_UNINITIALIZE_EVENT *Next;
-  KEVENT Event;
-} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
-
-typedef VOID
-(NTAPI *PDIRTY_PAGE_ROUTINE) (
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN PLARGE_INTEGER OldestLsn,
-  IN PLARGE_INTEGER NewestLsn,
-  IN PVOID Context1,
-  IN PVOID Context2);
-
-typedef VOID
-(NTAPI *PFLUSH_TO_LSN) (
-  IN PVOID LogHandle,
-  IN LARGE_INTEGER Lsn);
-
-typedef VOID
-(NTAPI *PCC_POST_DEFERRED_WRITE) (
-  IN PVOID Context1,
-  IN PVOID Context2);
-
-#define CcIsFileCached(FO) (                                                         \
-    ((FO)->SectionObjectPointer != NULL) &&                                          \
-    (((PSECTION_OBJECT_POINTERS)(FO)->SectionObjectPointer)->SharedCacheMap != NULL) \
-)
-
-extern ULONG CcFastMdlReadWait;
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlDeleteKeyFromTunnelCache (
+    IN PTUNNEL      Cache,
+    IN ULONGLONG    DirectoryKey
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcInitializeCacheMap(
-  IN PFILE_OBJECT FileObject,
-  IN PCC_FILE_SIZES FileSizes,
-  IN BOOLEAN PinAccess,
-  IN PCACHE_MANAGER_CALLBACKS Callbacks,
-  IN PVOID LazyWriteContext);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcUninitializeCacheMap(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER TruncateSize OPTIONAL,
-  IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL);
+FsRtlDeleteTunnelCache (
+    IN PTUNNEL Cache
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcSetFileSizes(
-  IN PFILE_OBJECT FileObject,
-  IN PCC_FILE_SIZES FileSizes);
+FsRtlDeregisterUncProvider (
+    IN HANDLE Handle
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcSetDirtyPageThreshold(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG DirtyPageThreshold);
+FsRtlDissectDbcs (
+    IN ANSI_STRING    Name,
+    OUT PANSI_STRING  FirstPart,
+    OUT PANSI_STRING  RemainingPart
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcFlushCache(
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
-  IN PLARGE_INTEGER FileOffset OPTIONAL,
-  IN ULONG Length,
-  OUT PIO_STATUS_BLOCK IoStatus OPTIONAL);
+FsRtlDissectName (
+    IN UNICODE_STRING    Name,
+    OUT PUNICODE_STRING  FirstPart,
+    OUT PUNICODE_STRING  RemainingPart
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-LARGE_INTEGER
+BOOLEAN
 NTAPI
 NTAPI
-CcGetFlushedValidData(
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
-  IN BOOLEAN BcbListHeld);
+FsRtlDoesDbcsContainWildCards (
+    IN PANSI_STRING Name
+);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-CcZeroData(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER StartOffset,
-  IN PLARGE_INTEGER EndOffset,
-  IN BOOLEAN Wait);
+FsRtlDoesNameContainWildCards (
+    IN PUNICODE_STRING Name
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+BOOLEAN
 NTAPI
 NTAPI
-CcRemapBcb(
-  IN PVOID Bcb);
+FsRtlIsFatDbcsLegal (
+    IN ANSI_STRING DbcsName,
+    IN BOOLEAN WildCardsPermissible,
+    IN BOOLEAN PathNamePermissible,
+    IN BOOLEAN LeadingBackslashPermissible
+    );
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcRepinBcb(
-  IN PVOID Bcb);
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcUnpinRepinnedBcb(
-  IN PVOID Bcb,
-  IN BOOLEAN WriteThrough,
-  OUT PIO_STATUS_BLOCK IoStatus);
+#define FsRtlCompleteRequest(IRP,STATUS) {         \
+    (IRP)->IoStatus.Status = (STATUS);             \
+    IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
+}
 
 
-NTKERNELAPI
-PFILE_OBJECT
-NTAPI
-CcGetFileObjectFromSectionPtrs(
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer);
+#define FsRtlEnterFileSystem    KeEnterCriticalRegion
 
 
-NTKERNELAPI
-PFILE_OBJECT
-NTAPI
-CcGetFileObjectFromBcb(
-  IN PVOID Bcb);
+#define FsRtlExitFileSystem     KeLeaveCriticalRegion
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcCanIWrite(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG BytesToWrite,
-  IN BOOLEAN Wait,
-  IN BOOLEAN Retrying);
+#define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) (       \
+     FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11)   \
+)
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+BOOLEAN
 NTAPI
 NTAPI
-CcDeferWrite(
-  IN PFILE_OBJECT FileObject,
-  IN PCC_POST_DEFERRED_WRITE PostRoutine,
-  IN PVOID Context1,
-  IN PVOID Context2,
-  IN ULONG BytesToWrite,
-  IN BOOLEAN Retrying);
+FsRtlFindInTunnelCache (
+    IN PTUNNEL          Cache,
+    IN ULONGLONG        DirectoryKey,
+    IN PUNICODE_STRING  Name,
+    OUT PUNICODE_STRING ShortName,
+    OUT PUNICODE_STRING LongName,
+    IN OUT PULONG       DataLength,
+    OUT PVOID           Data
+);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-CcCopyRead(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  OUT PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus);
+FsRtlGetNextBaseMcbEntry (
+    IN PBASE_MCB   Mcb,
+    IN ULONG       RunIndex,
+    OUT PLONGLONG  Vbn,
+    OUT PLONGLONG  Lbn,
+    OUT PLONGLONG  SectorCount
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+BOOLEAN
 NTAPI
 NTAPI
-CcFastCopyRead(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG FileOffset,
-  IN ULONG Length,
-  IN ULONG PageCount,
-  OUT PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus);
+FsRtlGetNextLargeMcbEntry (
+    IN PLARGE_MCB  Mcb,
+    IN ULONG       RunIndex,
+    OUT PLONGLONG  Vbn,
+    OUT PLONGLONG  Lbn,
+    OUT PLONGLONG  SectorCount
+);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-CcCopyWrite(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN PVOID Buffer);
+FsRtlGetNextMcbEntry (
+    IN PMCB     Mcb,
+    IN ULONG    RunIndex,
+    OUT PVBN    Vbn,
+    OUT PLBN    Lbn,
+    OUT PULONG  SectorCount
+);
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcFastCopyWrite(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG FileOffset,
-  IN ULONG Length,
-  IN PVOID Buffer);
+#define FsRtlGetPerStreamContextPointer(FO) (   \
+    (PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext \
+)
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcMdlRead(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus);
+FsRtlInitializeBaseMcb (
+    IN PBASE_MCB  Mcb,
+    IN POOL_TYPE  PoolType
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcMdlReadComplete(
-  IN PFILE_OBJECT FileObject,
-  IN PMDL MdlChain);
+FsRtlInitializeLargeMcb (
+    IN PLARGE_MCB  Mcb,
+    IN POOL_TYPE   PoolType
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcPrepareMdlWrite(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus);
+FsRtlInitializeMcb (
+    IN PMCB       Mcb,
+    IN POOL_TYPE  PoolType
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcMdlWriteComplete(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PMDL MdlChain);
+FsRtlInitializeOplock (
+    IN OUT POPLOCK Oplock
+);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-CcScheduleReadAhead(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CcWaitForCurrentLazyWriterActivity(
-  VOID);
+FsRtlInitializeTunnelCache (
+    IN PTUNNEL Cache
+);
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcSetReadAheadGranularity(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG Granularity);
+#define FsRtlInitPerStreamContext(PSC, O, I, FC) ( \
+    (PSC)->OwnerId = (O),                          \
+    (PSC)->InstanceId = (I),                       \
+    (PSC)->FreeCallback = (FC)                     \
+)
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+NTSTATUS
 NTAPI
 NTAPI
-CcPinRead(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG Flags,
-  OUT PVOID *Bcb,
-  OUT PVOID *Buffer);
+FsRtlInsertPerStreamContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER  PerStreamContext,
+    IN PFSRTL_PER_STREAM_CONTEXT   Ptr
+);
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcPinMappedData(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG Flags,
-  IN OUT PVOID *Bcb);
+#define FsRtlIsAnsiCharacterLegalFat(C, WILD) (                                \
+    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_FAT_LEGAL) |       \
+                                        ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
+)
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcPreparePinWrite(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Zero,
-  IN ULONG Flags,
-  OUT PVOID *Bcb,
-  OUT PVOID *Buffer);
+#define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) (                               \
+    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) |      \
+                                        ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
+)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcSetDirtyPinnedData(
-  IN PVOID BcbVoid,
-  IN PLARGE_INTEGER Lsn OPTIONAL);
+#define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) (                               \
+    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) |      \
+                                        ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
+)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcUnpinData(
-  IN PVOID Bcb);
+#define FsRtlIsAnsiCharacterWild(C) (                                       \
+    FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \
+)
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+BOOLEAN
 NTAPI
 NTAPI
-CcSetBcbOwnerPointer(
-  IN PVOID Bcb,
-  IN PVOID OwnerPointer);
+FsRtlIsFatDbcsLegal (
+    IN ANSI_STRING  DbcsName,
+    IN BOOLEAN      WildCardsPermissible,
+    IN BOOLEAN      PathNamePermissible,
+    IN BOOLEAN      LeadingBackslashPermissible
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+BOOLEAN
 NTAPI
 NTAPI
-CcUnpinDataForThread(
-  IN PVOID Bcb,
-  IN ERESOURCE_THREAD ResourceThreadId);
+FsRtlIsHpfsDbcsLegal (
+    IN ANSI_STRING  DbcsName,
+    IN BOOLEAN      WildCardsPermissible,
+    IN BOOLEAN      PathNamePermissible,
+    IN BOOLEAN      LeadingBackslashPermissible
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+BOOLEAN
 NTAPI
 NTAPI
-CcSetAdditionalCacheAttributes(
-  IN PFILE_OBJECT FileObject,
-  IN BOOLEAN DisableReadAhead,
-  IN BOOLEAN DisableWriteBehind);
+FsRtlIsNameInExpression (
+    IN PUNICODE_STRING  Expression,
+    IN PUNICODE_STRING  Name,
+    IN BOOLEAN          IgnoreCase,
+    IN PWCHAR           UpcaseTable OPTIONAL
+);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-CcIsThereDirtyData(
-  IN PVPB Vpb);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+FsRtlIsNtstatusExpected (
+    IN NTSTATUS Ntstatus
+);
 
 
-#if (NTDDI_VERSION >= NTDDI_WINXP)
+#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcMdlWriteAbort(
-  IN PFILE_OBJECT FileObject,
-  IN PMDL MdlChain);
+extern PUSHORT NlsOemLeadByteInfo;
 
 
-NTKERNELAPI
-VOID
-NTAPI
-CcSetLogHandleForFile(
-  IN PFILE_OBJECT FileObject,
-  IN PVOID LogHandle,
-  IN PFLUSH_TO_LSN FlushToLsnRoutine);
-
-NTKERNELAPI
-LARGE_INTEGER
-NTAPI
-CcGetDirtyPages(
-  IN PVOID LogHandle,
-  IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
-  IN PVOID Context1,
-  IN PVOID Context2);
-
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcMapData(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG Flags,
-  OUT PVOID *Bcb,
-  OUT PVOID *Buffer);
-#elif (NTDDI_VERSION >= NTDDI_WIN2K)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcMapData(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  OUT PVOID *Bcb,
-  OUT PVOID *Buffer);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CcSetFileSizesEx(
-  IN PFILE_OBJECT FileObject,
-  IN PCC_FILE_SIZES FileSizes);
-
-NTKERNELAPI
-PFILE_OBJECT
-NTAPI
-CcGetFileObjectFromSectionPtrsRef(
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer);
-
-NTKERNELAPI
-VOID
-NTAPI
-CcSetParallelFlushFile(
-  IN PFILE_OBJECT FileObject,
-  IN BOOLEAN EnableParallelFlush);
-
-NTKERNELAPI
-BOOLEAN
-CcIsThereDirtyDataEx(
-  IN PVPB Vpb,
-  IN PULONG NumberOfDirtyPages OPTIONAL);
-
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-NTKERNELAPI
-VOID
-NTAPI
-CcCoherencyFlushAndPurgeCache(
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
-  IN PLARGE_INTEGER FileOffset OPTIONAL,
-  IN ULONG Length,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN ULONG Flags OPTIONAL);
-#endif
-
-#define CcGetFileSizePointer(FO) (                                     \
-    ((PLARGE_INTEGER)((FO)->SectionObjectPointer->SharedCacheMap) + 1) \
-)
-
-#define UNINITIALIZE_CACHE_MAPS          (1)
-#define DO_NOT_RETRY_PURGE               (2)
-#define DO_NOT_PURGE_DIRTY_PAGES         (0x4)
-
-#define CC_FLUSH_AND_PURGE_NO_PURGE     (0x1)
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcPurgeCacheSection(
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
-  IN PLARGE_INTEGER FileOffset OPTIONAL,
-  IN ULONG Length,
-  IN ULONG Flags);
-#elif (NTDDI_VERSION >= NTDDI_WIN2K)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcPurgeCacheSection(
-  IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
-  IN PLARGE_INTEGER FileOffset OPTIONAL,
-  IN ULONG Length,
-  IN BOOLEAN UninitializeCacheMaps);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-CcCopyWriteWontFlush(
-  IN PFILE_OBJECT FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length);
-#else
-#define CcCopyWriteWontFlush(FO, FOFF, LEN) ((LEN) <= 0x10000)
-#endif
-
-#define CcReadAhead(FO, FOFF, LEN) (                \
-    if ((LEN) >= 256) {                             \
-        CcScheduleReadAhead((FO), (FOFF), (LEN));   \
-    }                                               \
-)
-
-#define PIN_WAIT                        (1)
-#define PIN_EXCLUSIVE                   (2)
-#define PIN_NO_READ                     (4)
-#define PIN_IF_BCB                      (8)
-#define PIN_CALLER_TRACKS_DIRTY_DATA    (32)
-#define PIN_HIGH_PRIORITY               (64)
-
-#define MAP_WAIT                          1
-#define MAP_NO_READ                       (16)
-#define MAP_HIGH_PRIORITY                 (64)
-
-#define IOCTL_REDIR_QUERY_PATH          CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS)
-#define IOCTL_REDIR_QUERY_PATH_EX       CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 100, METHOD_NEITHER, FILE_ANY_ACCESS)
-
-typedef struct _QUERY_PATH_REQUEST {
-  ULONG PathNameLength;
-  PIO_SECURITY_CONTEXT SecurityContext;
-  WCHAR FilePathName[1];
-} QUERY_PATH_REQUEST, *PQUERY_PATH_REQUEST;
-
-typedef struct _QUERY_PATH_REQUEST_EX {
-  PIO_SECURITY_CONTEXT pSecurityContext;
-  ULONG EaLength;
-  PVOID pEaBuffer;
-  UNICODE_STRING PathName;
-  UNICODE_STRING DomainServiceName;
-  ULONG_PTR Reserved[ 3 ];
-} QUERY_PATH_REQUEST_EX, *PQUERY_PATH_REQUEST_EX;
-
-typedef struct _QUERY_PATH_RESPONSE {
-  ULONG LengthAccepted;
-} QUERY_PATH_RESPONSE, *PQUERY_PATH_RESPONSE;
-
-#define VOLSNAPCONTROLTYPE                              0x00000053
-#define IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES             CTL_CODE(VOLSNAPCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryObject(
-  IN HANDLE Handle OPTIONAL,
-  IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
-  OUT PVOID ObjectInformation OPTIONAL,
-  IN ULONG ObjectInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwNotifyChangeKey(
-  IN HANDLE KeyHandle,
-  IN HANDLE EventHandle OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN ULONG NotifyFilter,
-  IN BOOLEAN WatchSubtree,
-  OUT PVOID Buffer,
-  IN ULONG BufferLength,
-  IN BOOLEAN Asynchronous);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwCreateEvent(
-  OUT PHANDLE EventHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN EVENT_TYPE EventType,
-  IN BOOLEAN InitialState);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDeleteFile(
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryDirectoryFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID FileInformation,
-  IN ULONG Length,
-  IN FILE_INFORMATION_CLASS FileInformationClass,
-  IN BOOLEAN ReturnSingleEntry,
-  IN PUNICODE_STRING FileName OPTIONAL,
-  IN BOOLEAN RestartScan);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetVolumeInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PVOID FsInformation,
-  IN ULONG Length,
-  IN FS_INFORMATION_CLASS FsInformationClass);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwFsControlFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN ULONG FsControlCode,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDuplicateObject(
-  IN HANDLE SourceProcessHandle,
-  IN HANDLE SourceHandle,
-  IN HANDLE TargetProcessHandle OPTIONAL,
-  OUT PHANDLE TargetHandle OPTIONAL,
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG HandleAttributes,
-  IN ULONG Options);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenDirectoryObject(
-  OUT PHANDLE DirectoryHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwAllocateVirtualMemory(
-  IN HANDLE ProcessHandle,
-  IN OUT PVOID *BaseAddress,
-  IN ULONG_PTR ZeroBits,
-  IN OUT PSIZE_T RegionSize,
-  IN ULONG AllocationType,
-  IN ULONG Protect);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwFreeVirtualMemory(
-  IN HANDLE ProcessHandle,
-  IN OUT PVOID *BaseAddress,
-  IN OUT PSIZE_T RegionSize,
-  IN ULONG FreeType);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwWaitForSingleObject(
-  IN HANDLE Handle,
-  IN BOOLEAN Alertable,
-  IN PLARGE_INTEGER Timeout OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetEvent(
-  IN HANDLE EventHandle,
-  OUT PLONG PreviousState OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwFlushVirtualMemory(
-  IN HANDLE ProcessHandle,
-  IN OUT PVOID *BaseAddress,
-  IN OUT PSIZE_T RegionSize,
-  OUT PIO_STATUS_BLOCK IoStatusBlock);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryInformationToken(
-  IN HANDLE TokenHandle,
-  IN TOKEN_INFORMATION_CLASS TokenInformationClass,
-  OUT PVOID TokenInformation,
-  IN ULONG Length,
-  OUT PULONG ResultLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetSecurityObject(
-  IN HANDLE Handle,
-  IN SECURITY_INFORMATION SecurityInformation,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQuerySecurityObject(
-  IN HANDLE FileHandle,
-  IN SECURITY_INFORMATION SecurityInformation,
-  OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN ULONG Length,
-  OUT PULONG ResultLength);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenProcessTokenEx(
-  IN HANDLE ProcessHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG HandleAttributes,
-  OUT PHANDLE TokenHandle);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenThreadTokenEx(
-  IN HANDLE ThreadHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN BOOLEAN OpenAsSelf,
-  IN ULONG HandleAttributes,
-  OUT PHANDLE TokenHandle);
-
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwLockFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER ByteOffset,
-  IN PLARGE_INTEGER Length,
-  IN ULONG Key,
-  IN BOOLEAN FailImmediately,
-  IN BOOLEAN ExclusiveLock);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwUnlockFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER ByteOffset,
-  IN PLARGE_INTEGER Length,
-  IN ULONG Key);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryQuotaInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID Buffer,
-  IN ULONG Length,
-  IN BOOLEAN ReturnSingleEntry,
-  IN PVOID SidList,
-  IN ULONG SidListLength,
-  IN PSID StartSid OPTIONAL,
-  IN BOOLEAN RestartScan);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetQuotaInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PVOID Buffer,
-  IN ULONG Length);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwFlushBuffersFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetInformationToken(
-  IN HANDLE TokenHandle,
-  IN TOKEN_INFORMATION_CLASS TokenInformationClass,
-  IN PVOID TokenInformation,
-  IN ULONG TokenInformationLength);
-#endif
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryEaFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID Buffer,
-  IN ULONG Length,
-  IN BOOLEAN ReturnSingleEntry,
-  IN PVOID EaList OPTIONAL,
-  IN ULONG EaListLength,
-  IN PULONG EaIndex OPTIONAL,
-  IN BOOLEAN RestartScan);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetEaFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID Buffer,
-  IN ULONG Length);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDuplicateToken(
-  IN HANDLE ExistingTokenHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN BOOLEAN EffectiveOnly,
-  IN TOKEN_TYPE TokenType,
-  OUT PHANDLE NewTokenHandle);
-
-#pragma pack(push,4)
-
-#ifndef VER_PRODUCTBUILD
-#define VER_PRODUCTBUILD 10000
-#endif
-
-#include "csq.h"
-
-extern PACL                         SePublicDefaultDacl;
-extern PACL                         SeSystemDefaultDacl;
-
-#define FS_LFN_APIS                     0x00004000
-
-#define FILE_STORAGE_TYPE_SPECIFIED             0x00000041  /* FILE_DIRECTORY_FILE | FILE_NON_DIRECTORY_FILE */
-#define FILE_STORAGE_TYPE_DEFAULT               (StorageTypeDefault << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_DIRECTORY             (StorageTypeDirectory << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_FILE                  (StorageTypeFile << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_DOCFILE               (StorageTypeDocfile << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_JUNCTION_POINT        (StorageTypeJunctionPoint << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_CATALOG               (StorageTypeCatalog << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_STRUCTURED_STORAGE    (StorageTypeStructuredStorage << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_EMBEDDING             (StorageTypeEmbedding << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_STORAGE_TYPE_STREAM                (StorageTypeStream << FILE_STORAGE_TYPE_SHIFT)
-#define FILE_MINIMUM_STORAGE_TYPE               FILE_STORAGE_TYPE_DEFAULT
-#define FILE_MAXIMUM_STORAGE_TYPE               FILE_STORAGE_TYPE_STREAM
-#define FILE_STORAGE_TYPE_MASK                  0x000f0000
-#define FILE_STORAGE_TYPE_SHIFT                 16
-
-#define FILE_VC_QUOTAS_LOG_VIOLATIONS   0x00000004
-
-#ifdef _X86_
-#define HARDWARE_PTE    HARDWARE_PTE_X86
-#define PHARDWARE_PTE   PHARDWARE_PTE_X86
-#endif
-
-#define IO_ATTACH_DEVICE_API            0x80000000
-
-#define IO_TYPE_APC                     18
-#define IO_TYPE_DPC                     19
-#define IO_TYPE_DEVICE_QUEUE            20
-#define IO_TYPE_EVENT_PAIR              21
-#define IO_TYPE_INTERRUPT               22
-#define IO_TYPE_PROFILE                 23
-
-#define IRP_BEING_VERIFIED              0x10
-
-#define MAILSLOT_CLASS_FIRSTCLASS       1
-#define MAILSLOT_CLASS_SECONDCLASS      2
-
-#define MAILSLOT_SIZE_AUTO              0
-
-#define MEM_DOS_LIM                     0x40000000
-
-#define OB_TYPE_TYPE                    1
-#define OB_TYPE_DIRECTORY               2
-#define OB_TYPE_SYMBOLIC_LINK           3
-#define OB_TYPE_TOKEN                   4
-#define OB_TYPE_PROCESS                 5
-#define OB_TYPE_THREAD                  6
-#define OB_TYPE_EVENT                   7
-#define OB_TYPE_EVENT_PAIR              8
-#define OB_TYPE_MUTANT                  9
-#define OB_TYPE_SEMAPHORE               10
-#define OB_TYPE_TIMER                   11
-#define OB_TYPE_PROFILE                 12
-#define OB_TYPE_WINDOW_STATION          13
-#define OB_TYPE_DESKTOP                 14
-#define OB_TYPE_SECTION                 15
-#define OB_TYPE_KEY                     16
-#define OB_TYPE_PORT                    17
-#define OB_TYPE_ADAPTER                 18
-#define OB_TYPE_CONTROLLER              19
-#define OB_TYPE_DEVICE                  20
-#define OB_TYPE_DRIVER                  21
-#define OB_TYPE_IO_COMPLETION           22
-#define OB_TYPE_FILE                    23
-
-#define SEC_BASED      0x00200000
-
-/* end winnt.h */
-
-#define TOKEN_HAS_ADMIN_GROUP           0x08
-
-#if (VER_PRODUCTBUILD >= 1381)
-#define FSCTL_GET_HFS_INFORMATION       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#endif /* (VER_PRODUCTBUILD >= 1381) */
-
-#if (VER_PRODUCTBUILD >= 2195)
-
-#define FSCTL_READ_PROPERTY_DATA        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS)
-#define FSCTL_WRITE_PROPERTY_DATA       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS)
-
-#define FSCTL_DUMP_PROPERTY_DATA        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37,  METHOD_NEITHER, FILE_ANY_ACCESS)
-
-#define FSCTL_HSM_MSG                   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
-#define FSCTL_NSS_CONTROL               CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 67, METHOD_BUFFERED, FILE_WRITE_DATA)
-#define FSCTL_HSM_DATA                  CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
-#define FSCTL_NSS_RCONTROL              CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 70, METHOD_BUFFERED, FILE_READ_DATA)
-#endif /* (VER_PRODUCTBUILD >= 2195) */
-
-#define FSCTL_NETWORK_SET_CONFIGURATION_INFO    CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 102, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
-#define FSCTL_NETWORK_GET_CONFIGURATION_INFO    CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 103, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
-#define FSCTL_NETWORK_GET_CONNECTION_INFO       CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 104, METHOD_NEITHER, FILE_ANY_ACCESS)
-#define FSCTL_NETWORK_ENUMERATE_CONNECTIONS     CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 105, METHOD_NEITHER, FILE_ANY_ACCESS)
-#define FSCTL_NETWORK_DELETE_CONNECTION         CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 107, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define FSCTL_NETWORK_GET_STATISTICS            CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 116, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define FSCTL_NETWORK_SET_DOMAIN_NAME           CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_ANY_ACCESS)
-#define FSCTL_NETWORK_REMOTE_BOOT_INIT_SCRT     CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 250, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
-typedef enum _FILE_STORAGE_TYPE {
-    StorageTypeDefault = 1,
-    StorageTypeDirectory,
-    StorageTypeFile,
-    StorageTypeJunctionPoint,
-    StorageTypeCatalog,
-    StorageTypeStructuredStorage,
-    StorageTypeEmbedding,
-    StorageTypeStream
-} FILE_STORAGE_TYPE;
-
-typedef struct _OBJECT_BASIC_INFORMATION
-{
-    ULONG Attributes;
-    ACCESS_MASK GrantedAccess;
-    ULONG HandleCount;
-    ULONG PointerCount;
-    ULONG PagedPoolCharge;
-    ULONG NonPagedPoolCharge;
-    ULONG Reserved[ 3 ];
-    ULONG NameInfoSize;
-    ULONG TypeInfoSize;
-    ULONG SecurityDescriptorSize;
-    LARGE_INTEGER CreationTime;
-} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
-
-typedef struct _BITMAP_RANGE {
-    LIST_ENTRY      Links;
-    LONGLONG        BasePage;
-    ULONG           FirstDirtyPage;
-    ULONG           LastDirtyPage;
-    ULONG           DirtyPages;
-    PULONG          Bitmap;
-} BITMAP_RANGE, *PBITMAP_RANGE;
-
-typedef struct _FILE_COPY_ON_WRITE_INFORMATION {
-    BOOLEAN ReplaceIfExists;
-    HANDLE  RootDirectory;
-    ULONG   FileNameLength;
-    WCHAR   FileName[1];
-} FILE_COPY_ON_WRITE_INFORMATION, *PFILE_COPY_ON_WRITE_INFORMATION;
-
-typedef struct _FILE_FULL_DIRECTORY_INFORMATION {
-    ULONG           NextEntryOffset;
-    ULONG           FileIndex;
-    LARGE_INTEGER   CreationTime;
-    LARGE_INTEGER   LastAccessTime;
-    LARGE_INTEGER   LastWriteTime;
-    LARGE_INTEGER   ChangeTime;
-    LARGE_INTEGER   EndOfFile;
-    LARGE_INTEGER   AllocationSize;
-    ULONG           FileAttributes;
-    ULONG           FileNameLength;
-    ULONG           EaSize;
-    WCHAR           FileName[ANYSIZE_ARRAY];
-} FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION;
-
-/* raw internal file lock struct returned from FsRtlGetNextFileLock */
-typedef struct _FILE_SHARED_LOCK_ENTRY {
-    PVOID           Unknown1;
-    PVOID           Unknown2;
-    FILE_LOCK_INFO  FileLock;
-} FILE_SHARED_LOCK_ENTRY, *PFILE_SHARED_LOCK_ENTRY;
-
-/* raw internal file lock struct returned from FsRtlGetNextFileLock */
-typedef struct _FILE_EXCLUSIVE_LOCK_ENTRY {
-    LIST_ENTRY      ListEntry;
-    PVOID           Unknown1;
-    PVOID           Unknown2;
-    FILE_LOCK_INFO  FileLock;
-} FILE_EXCLUSIVE_LOCK_ENTRY, *PFILE_EXCLUSIVE_LOCK_ENTRY;
-
-typedef struct _FILE_MAILSLOT_PEEK_BUFFER {
-    ULONG ReadDataAvailable;
-    ULONG NumberOfMessages;
-    ULONG MessageLength;
-} FILE_MAILSLOT_PEEK_BUFFER, *PFILE_MAILSLOT_PEEK_BUFFER;
-
-typedef struct _FILE_OLE_CLASSID_INFORMATION {
-    GUID ClassId;
-} FILE_OLE_CLASSID_INFORMATION, *PFILE_OLE_CLASSID_INFORMATION;
-
-typedef struct _FILE_OLE_ALL_INFORMATION {
-    FILE_BASIC_INFORMATION          BasicInformation;
-    FILE_STANDARD_INFORMATION       StandardInformation;
-    FILE_INTERNAL_INFORMATION       InternalInformation;
-    FILE_EA_INFORMATION             EaInformation;
-    FILE_ACCESS_INFORMATION         AccessInformation;
-    FILE_POSITION_INFORMATION       PositionInformation;
-    FILE_MODE_INFORMATION           ModeInformation;
-    FILE_ALIGNMENT_INFORMATION      AlignmentInformation;
-    USN                             LastChangeUsn;
-    USN                             ReplicationUsn;
-    LARGE_INTEGER                   SecurityChangeTime;
-    FILE_OLE_CLASSID_INFORMATION    OleClassIdInformation;
-    FILE_OBJECTID_INFORMATION       ObjectIdInformation;
-    FILE_STORAGE_TYPE               StorageType;
-    ULONG                           OleStateBits;
-    ULONG                           OleId;
-    ULONG                           NumberOfStreamReferences;
-    ULONG                           StreamIndex;
-    ULONG                           SecurityId;
-    BOOLEAN                         ContentIndexDisable;
-    BOOLEAN                         InheritContentIndexDisable;
-    FILE_NAME_INFORMATION           NameInformation;
-} FILE_OLE_ALL_INFORMATION, *PFILE_OLE_ALL_INFORMATION;
-
-typedef struct _FILE_OLE_DIR_INFORMATION {
-    ULONG               NextEntryOffset;
-    ULONG               FileIndex;
-    LARGE_INTEGER       CreationTime;
-    LARGE_INTEGER       LastAccessTime;
-    LARGE_INTEGER       LastWriteTime;
-    LARGE_INTEGER       ChangeTime;
-    LARGE_INTEGER       EndOfFile;
-    LARGE_INTEGER       AllocationSize;
-    ULONG               FileAttributes;
-    ULONG               FileNameLength;
-    FILE_STORAGE_TYPE   StorageType;
-    GUID                OleClassId;
-    ULONG               OleStateBits;
-    BOOLEAN             ContentIndexDisable;
-    BOOLEAN             InheritContentIndexDisable;
-    WCHAR               FileName[1];
-} FILE_OLE_DIR_INFORMATION, *PFILE_OLE_DIR_INFORMATION;
-
-typedef struct _FILE_OLE_INFORMATION {
-    LARGE_INTEGER                   SecurityChangeTime;
-    FILE_OLE_CLASSID_INFORMATION    OleClassIdInformation;
-    FILE_OBJECTID_INFORMATION       ObjectIdInformation;
-    FILE_STORAGE_TYPE               StorageType;
-    ULONG                           OleStateBits;
-    BOOLEAN                         ContentIndexDisable;
-    BOOLEAN                         InheritContentIndexDisable;
-} FILE_OLE_INFORMATION, *PFILE_OLE_INFORMATION;
-
-typedef struct _FILE_OLE_STATE_BITS_INFORMATION {
-    ULONG StateBits;
-    ULONG StateBitsMask;
-} FILE_OLE_STATE_BITS_INFORMATION, *PFILE_OLE_STATE_BITS_INFORMATION;
-
-typedef struct _MAPPING_PAIR {
-    ULONGLONG Vcn;
-    ULONGLONG Lcn;
-} MAPPING_PAIR, *PMAPPING_PAIR;
-
-typedef struct _GET_RETRIEVAL_DESCRIPTOR {
-    ULONG           NumberOfPairs;
-    ULONGLONG       StartVcn;
-    MAPPING_PAIR    Pair[1];
-} GET_RETRIEVAL_DESCRIPTOR, *PGET_RETRIEVAL_DESCRIPTOR;
-
-typedef struct _MBCB {
-    CSHORT          NodeTypeCode;
-    CSHORT          NodeIsInZone;
-    ULONG           PagesToWrite;
-    ULONG           DirtyPages;
-    ULONG           Reserved;
-    LIST_ENTRY      BitmapRanges;
-    LONGLONG        ResumeWritePage;
-    BITMAP_RANGE    BitmapRange1;
-    BITMAP_RANGE    BitmapRange2;
-    BITMAP_RANGE    BitmapRange3;
-} MBCB, *PMBCB;
-
-typedef struct _MOVEFILE_DESCRIPTOR {
-     HANDLE         FileHandle;
-     ULONG          Reserved;
-     LARGE_INTEGER  StartVcn;
-     LARGE_INTEGER  TargetLcn;
-     ULONG          NumVcns;
-     ULONG          Reserved1;
-} MOVEFILE_DESCRIPTOR, *PMOVEFILE_DESCRIPTOR;
-
-typedef struct _OBJECT_BASIC_INFO {
-    ULONG           Attributes;
-    ACCESS_MASK     GrantedAccess;
-    ULONG           HandleCount;
-    ULONG           ReferenceCount;
-    ULONG           PagedPoolUsage;
-    ULONG           NonPagedPoolUsage;
-    ULONG           Reserved[3];
-    ULONG           NameInformationLength;
-    ULONG           TypeInformationLength;
-    ULONG           SecurityDescriptorLength;
-    LARGE_INTEGER   CreateTime;
-} OBJECT_BASIC_INFO, *POBJECT_BASIC_INFO;
-
-typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFO {
-    BOOLEAN Inherit;
-    BOOLEAN ProtectFromClose;
-} OBJECT_HANDLE_ATTRIBUTE_INFO, *POBJECT_HANDLE_ATTRIBUTE_INFO;
-
-typedef struct _OBJECT_NAME_INFO {
-    UNICODE_STRING  ObjectName;
-    WCHAR           ObjectNameBuffer[1];
-} OBJECT_NAME_INFO, *POBJECT_NAME_INFO;
-
-typedef struct _OBJECT_PROTECTION_INFO {
-    BOOLEAN Inherit;
-    BOOLEAN ProtectHandle;
-} OBJECT_PROTECTION_INFO, *POBJECT_PROTECTION_INFO;
-
-typedef struct _OBJECT_TYPE_INFO {
-    UNICODE_STRING  ObjectTypeName;
-    UCHAR           Unknown[0x58];
-    WCHAR           ObjectTypeNameBuffer[1];
-} OBJECT_TYPE_INFO, *POBJECT_TYPE_INFO;
-
-typedef struct _OBJECT_ALL_TYPES_INFO {
-    ULONG               NumberOfObjectTypes;
-    OBJECT_TYPE_INFO    ObjectsTypeInfo[1];
-} OBJECT_ALL_TYPES_INFO, *POBJECT_ALL_TYPES_INFO;
-
-#if defined(USE_LPC6432)
-#define LPC_CLIENT_ID CLIENT_ID64
-#define LPC_SIZE_T ULONGLONG
-#define LPC_PVOID ULONGLONG
-#define LPC_HANDLE ULONGLONG
-#else
-#define LPC_CLIENT_ID CLIENT_ID
-#define LPC_SIZE_T SIZE_T
-#define LPC_PVOID PVOID
-#define LPC_HANDLE HANDLE
-#endif
-
-typedef struct _PORT_MESSAGE
-{
-    union
-    {
-        struct
-        {
-            CSHORT DataLength;
-            CSHORT TotalLength;
-        } s1;
-        ULONG Length;
-    } u1;
-    union
-    {
-        struct
-        {
-            CSHORT Type;
-            CSHORT DataInfoOffset;
-        } s2;
-        ULONG ZeroInit;
-    } u2;
-    __GNU_EXTENSION union
-    {
-        LPC_CLIENT_ID ClientId;
-        double DoNotUseThisField;
-    };
-    ULONG MessageId;
-    __GNU_EXTENSION union
-    {
-        LPC_SIZE_T ClientViewSize;
-        ULONG CallbackId;
-    };
-} PORT_MESSAGE, *PPORT_MESSAGE;
-
-#define LPC_KERNELMODE_MESSAGE      (CSHORT)((USHORT)0x8000)
-
-typedef struct _PORT_VIEW
-{
-    ULONG Length;
-    LPC_HANDLE SectionHandle;
-    ULONG SectionOffset;
-    LPC_SIZE_T ViewSize;
-    LPC_PVOID ViewBase;
-    LPC_PVOID ViewRemoteBase;
-} PORT_VIEW, *PPORT_VIEW;
+#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) (                               \
+    (BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE :                           \
+              (NLS_MB_CODE_PAGE_TAG &&                                      \
+               (NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0)))          \
+)
 
 
-typedef struct _REMOTE_PORT_VIEW
-{
-    ULONG Length;
-    LPC_SIZE_T ViewSize;
-    LPC_PVOID ViewBase;
-} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
+#define FsRtlIsUnicodeCharacterWild(C) (                                    \
+    (((C) >= 0x40) ?                                                        \
+    FALSE :                                                                 \
+    FlagOn(FsRtlLegalAnsiCharacterArray[(C)], FSRTL_WILD_CHARACTER ))       \
+)
 
 
-typedef struct _VAD_HEADER {
-    PVOID       StartVPN;
-    PVOID       EndVPN;
-    struct _VAD_HEADER* ParentLink;
-    struct _VAD_HEADER* LeftLink;
-    struct _VAD_HEADER* RightLink;
-    ULONG       Flags;          /* LSB = CommitCharge */
-    PVOID       ControlArea;
-    PVOID       FirstProtoPte;
-    PVOID       LastPTE;
-    ULONG       Unknown;
-    LIST_ENTRY  Secured;
-} VAD_HEADER, *PVAD_HEADER;
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlLookupBaseMcbEntry (
+    IN PBASE_MCB   Mcb,
+    IN LONGLONG    Vbn,
+    OUT PLONGLONG  Lbn OPTIONAL,
+    OUT PLONGLONG  SectorCountFromLbn OPTIONAL,
+    OUT PLONGLONG  StartingLbn OPTIONAL,
+    OUT PLONGLONG  SectorCountFromStartingLbn OPTIONAL,
+    OUT PULONG     Index OPTIONAL
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-LARGE_INTEGER
+BOOLEAN
 NTAPI
 NTAPI
-CcGetLsnForFileObject (
-    IN PFILE_OBJECT     FileObject,
-    OUT PLARGE_INTEGER  OldestLsn OPTIONAL
+FsRtlLookupLargeMcbEntry (
+    IN PLARGE_MCB  Mcb,
+    IN LONGLONG    Vbn,
+    OUT PLONGLONG  Lbn OPTIONAL,
+    OUT PLONGLONG  SectorCountFromLbn OPTIONAL,
+    OUT PLONGLONG  StartingLbn OPTIONAL,
+    OUT PLONGLONG  SectorCountFromStartingLbn OPTIONAL,
+    OUT PULONG     Index OPTIONAL
 );
 
 NTKERNELAPI
 );
 
 NTKERNELAPI
-PVOID
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlAllocatePool (
-    IN POOL_TYPE    PoolType,
-    IN ULONG        NumberOfBytes
+FsRtlLookupLastBaseMcbEntry (
+    IN PBASE_MCB   Mcb,
+    OUT PLONGLONG  Vbn,
+    OUT PLONGLONG  Lbn
 );
 
 NTKERNELAPI
 );
 
 NTKERNELAPI
-PVOID
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlAllocatePoolWithQuota (
-    IN POOL_TYPE    PoolType,
-    IN ULONG        NumberOfBytes
+FsRtlLookupLastLargeMcbEntry (
+    IN PLARGE_MCB  Mcb,
+    OUT PLONGLONG  Vbn,
+    OUT PLONGLONG  Lbn
 );
 
 NTKERNELAPI
 );
 
 NTKERNELAPI
-PVOID
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlAllocatePoolWithQuotaTag (
-    IN POOL_TYPE    PoolType,
-    IN ULONG        NumberOfBytes,
-    IN ULONG        Tag
+FsRtlLookupLastMcbEntry (
+    IN PMCB   Mcb,
+    OUT PVBN  Vbn,
+    OUT PLBN  Lbn
 );
 
 NTKERNELAPI
 );
 
 NTKERNELAPI
-PVOID
+BOOLEAN
 NTAPI
 NTAPI
-FsRtlAllocatePoolWithTag (
-    IN POOL_TYPE    PoolType,
-    IN ULONG        NumberOfBytes,
-    IN ULONG        Tag
+FsRtlLookupLastBaseMcbEntryAndIndex (
+    IN PBASE_MCB      OpaqueMcb,
+    IN OUT PLONGLONG  LargeVbn,
+    IN OUT PLONGLONG  LargeLbn,
+    IN OUT PULONG     Index
 );
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 );
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-FsRtlIsFatDbcsLegal (
-    IN ANSI_STRING  DbcsName,
-    IN BOOLEAN      WildCardsPermissible,
-    IN BOOLEAN      PathNamePermissible,
-    IN BOOLEAN      LeadingBackslashPermissible
+FsRtlLookupLastLargeMcbEntryAndIndex (
+    IN PLARGE_MCB  OpaqueMcb,
+    OUT PLONGLONG  LargeVbn,
+    OUT PLONGLONG  LargeLbn,
+    OUT PULONG     Index
+);
+
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlLookupMcbEntry (
+    IN PMCB     Mcb,
+    IN VBN      Vbn,
+    OUT PLBN    Lbn,
+    OUT PULONG  SectorCount OPTIONAL,
+    OUT PULONG  Index
+);
+
+NTKERNELAPI
+PFSRTL_PER_STREAM_CONTEXT
+NTAPI
+FsRtlLookupPerStreamContextInternal (
+    IN PFSRTL_ADVANCED_FCB_HEADER  StreamContext,
+    IN PVOID                       OwnerId OPTIONAL,
+    IN PVOID                       InstanceId OPTIONAL
 );
 
 NTKERNELAPI
 );
 
 NTKERNELAPI
@@ -9352,6 +8612,14 @@ FsRtlMdlWriteComplete (
     IN PMDL             MdlChain
 );
 
     IN PMDL             MdlChain
 );
 
+NTKERNELAPI
+NTSTATUS
+NTAPI
+FsRtlNormalizeNtstatus (
+    IN NTSTATUS Exception,
+    IN NTSTATUS GenericException
+);
+
 NTKERNELAPI
 VOID
 NTAPI
 NTKERNELAPI
 VOID
 NTAPI
@@ -9365,6 +8633,315 @@ FsRtlNotifyChangeDirectory (
     IN PIRP         NotifyIrp
 );
 
     IN PIRP         NotifyIrp
 );
 
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlNotifyCleanup (
+    IN PNOTIFY_SYNC NotifySync,
+    IN PLIST_ENTRY  NotifyList,
+    IN PVOID        FsContext
+);
+
+typedef BOOLEAN (NTAPI *PCHECK_FOR_TRAVERSE_ACCESS) (
+    IN PVOID                        NotifyContext,
+    IN PVOID                        TargetContext,
+    IN PSECURITY_SUBJECT_CONTEXT    SubjectContext
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlNotifyFilterChangeDirectory (
+    IN PNOTIFY_SYNC                 NotifySync,
+    IN PLIST_ENTRY                  NotifyList,
+    IN PVOID                        FsContext,
+    IN PSTRING                      FullDirectoryName,
+    IN BOOLEAN                      WatchTree,
+    IN BOOLEAN                      IgnoreBuffer,
+    IN ULONG                        CompletionFilter,
+    IN PIRP                         NotifyIrp,
+    IN PCHECK_FOR_TRAVERSE_ACCESS   TraverseCallback OPTIONAL,
+    IN PSECURITY_SUBJECT_CONTEXT    SubjectContext OPTIONAL,
+    IN PFILTER_REPORT_CHANGE        FilterCallback OPTIONAL);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlNotifyFilterReportChange (
+    IN PNOTIFY_SYNC   NotifySync,
+    IN PLIST_ENTRY    NotifyList,
+    IN PSTRING        FullTargetName,
+    IN USHORT         TargetNameOffset,
+    IN PSTRING        StreamName OPTIONAL,
+    IN PSTRING        NormalizedParentName OPTIONAL,
+    IN ULONG          FilterMatch,
+    IN ULONG          Action,
+    IN PVOID          TargetContext,
+    IN PVOID          FilterContext);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlNotifyFullChangeDirectory (
+    IN PNOTIFY_SYNC                 NotifySync,
+    IN PLIST_ENTRY                  NotifyList,
+    IN PVOID                        FsContext,
+    IN PSTRING                      FullDirectoryName,
+    IN BOOLEAN                      WatchTree,
+    IN BOOLEAN                      IgnoreBuffer,
+    IN ULONG                        CompletionFilter,
+    IN PIRP                         NotifyIrp,
+    IN PCHECK_FOR_TRAVERSE_ACCESS   TraverseCallback OPTIONAL,
+    IN PSECURITY_SUBJECT_CONTEXT    SubjectContext OPTIONAL
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlNotifyFullReportChange (
+    IN PNOTIFY_SYNC NotifySync,
+    IN PLIST_ENTRY  NotifyList,
+    IN PSTRING      FullTargetName,
+    IN USHORT       TargetNameOffset,
+    IN PSTRING      StreamName OPTIONAL,
+    IN PSTRING      NormalizedParentName OPTIONAL,
+    IN ULONG        FilterMatch,
+    IN ULONG        Action,
+    IN PVOID        TargetContext
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlNotifyInitializeSync (
+    IN PNOTIFY_SYNC *NotifySync
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlNotifyUninitializeSync (
+    IN PNOTIFY_SYNC *NotifySync
+);
+
+#if (VER_PRODUCTBUILD >= 2195)
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+FsRtlNotifyVolumeEvent (
+    IN PFILE_OBJECT FileObject,
+    IN ULONG        EventCode
+);
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+
+NTKERNELAPI
+ULONG
+NTAPI
+FsRtlNumberOfRunsInBaseMcb (
+    IN PBASE_MCB Mcb
+);
+
+NTKERNELAPI
+ULONG
+NTAPI
+FsRtlNumberOfRunsInLargeMcb (
+    IN PLARGE_MCB Mcb
+);
+
+NTKERNELAPI
+ULONG
+NTAPI
+FsRtlNumberOfRunsInMcb (
+    IN PMCB Mcb
+);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+FsRtlOplockFsctrl (
+    IN POPLOCK  Oplock,
+    IN PIRP     Irp,
+    IN ULONG    OpenCount
+);
+
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlOplockIsFastIoPossible (
+    IN POPLOCK Oplock
+);
+
+typedef VOID
+(NTAPI *PFSRTL_STACK_OVERFLOW_ROUTINE) (
+    IN PVOID    Context,
+    IN PKEVENT  Event
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlPostPagingFileStackOverflow (
+    IN PVOID                          Context,
+    IN PKEVENT                        Event,
+    IN PFSRTL_STACK_OVERFLOW_ROUTINE  StackOverflowRoutine
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlPostStackOverflow (
+    IN PVOID                          Context,
+    IN PKEVENT                        Event,
+    IN PFSRTL_STACK_OVERFLOW_ROUTINE  StackOverflowRoutine
+);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+FsRtlRegisterUncProvider (
+    IN OUT PHANDLE      MupHandle,
+    IN PUNICODE_STRING  RedirectorDeviceName,
+    IN BOOLEAN          MailslotsSupported
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlRemoveBaseMcbEntry (
+    IN PBASE_MCB  Mcb,
+    IN LONGLONG   Vbn,
+    IN LONGLONG   SectorCount
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlRemoveLargeMcbEntry (
+    IN PLARGE_MCB  Mcb,
+    IN LONGLONG    Vbn,
+    IN LONGLONG    SectorCount
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlRemoveMcbEntry (
+    IN PMCB   Mcb,
+    IN VBN    Vbn,
+    IN ULONG  SectorCount
+);
+
+NTKERNELAPI
+PFSRTL_PER_STREAM_CONTEXT
+NTAPI
+FsRtlRemovePerStreamContext (
+    IN PFSRTL_ADVANCED_FCB_HEADER  StreamContext,
+    IN PVOID                       OwnerId OPTIONAL,
+    IN PVOID                       InstanceId OPTIONAL
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlResetBaseMcb (
+    IN PBASE_MCB Mcb
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlResetLargeMcb (
+    IN PLARGE_MCB  Mcb,
+    IN BOOLEAN     SelfSynchronized
+);
+
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlSplitBaseMcb (
+    IN PBASE_MCB  Mcb,
+    IN LONGLONG   Vbn,
+    IN LONGLONG   Amount
+);
+
+NTKERNELAPI
+BOOLEAN
+NTAPI
+FsRtlSplitLargeMcb (
+    IN PLARGE_MCB  Mcb,
+    IN LONGLONG    Vbn,
+    IN LONGLONG    Amount
+);
+
+#define FsRtlSupportsPerStreamContexts(FO) (                       \
+    (BOOLEAN)((NULL != FsRtlGetPerStreamContextPointer(FO) &&     \
+              FlagOn(FsRtlGetPerStreamContextPointer(FO)->Flags2, \
+              FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS))               \
+)
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlTruncateBaseMcb (
+    IN PBASE_MCB  Mcb,
+    IN LONGLONG   Vbn
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlTruncateLargeMcb (
+    IN PLARGE_MCB  Mcb,
+    IN LONGLONG    Vbn
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlTruncateMcb (
+    IN PMCB  Mcb,
+    IN VBN   Vbn
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlUninitializeBaseMcb (
+    IN PBASE_MCB Mcb
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlUninitializeLargeMcb (
+    IN PLARGE_MCB Mcb
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlUninitializeMcb (
+    IN PMCB Mcb
+);
+
+NTKERNELAPI
+VOID
+NTAPI
+FsRtlUninitializeOplock (
+    IN OUT POPLOCK Oplock
+);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+IoAttachDeviceToDeviceStackSafe(
+    IN PDEVICE_OBJECT   SourceDevice,
+    IN PDEVICE_OBJECT   TargetDevice,
+    OUT PDEVICE_OBJECT  *AttachedToDeviceObject
+);
+
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -9401,6 +8978,23 @@ ObReferenceObjectByName (
     OUT PVOID           *Object
 );
 
     OUT PVOID           *Object
 );
 
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+PsAssignImpersonationToken(
+  IN PETHREAD Thread,
+  IN HANDLE Token OPTIONAL);
+
+NTKERNELAPI
+HANDLE
+NTAPI
+PsReferencePrimaryToken(
+  IN OUT PEPROCESS Process);
+
+#endif
+
 #define PsDereferenceImpersonationToken(T)  \
             {if (ARGUMENT_PRESENT(T)) {     \
                 (ObDereferenceObject((T))); \
 #define PsDereferenceImpersonationToken(T)  \
             {if (ARGUMENT_PRESENT(T)) {     \
                 (ObDereferenceObject((T))); \
@@ -9418,6 +9012,14 @@ PsLookupProcessThreadByCid (
     OUT PETHREAD    *Thread
 );
 
     OUT PETHREAD    *Thread
 );
 
+NTSYSAPI
+VOID
+NTAPI
+RtlSecondsSince1970ToTime (
+    IN ULONG            SecondsSince1970,
+    OUT PLARGE_INTEGER  Time
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9428,6 +9030,105 @@ RtlSetSaclSecurityDescriptor (
     IN BOOLEAN                  SaclDefaulted
 );
 
     IN BOOLEAN                  SaclDefaulted
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlUnicodeStringToCountedOemString (
+    IN OUT POEM_STRING  DestinationString,
+    IN PCUNICODE_STRING SourceString,
+    IN BOOLEAN          AllocateDestinationString
+);
+
+/* RTL Splay Tree Functions */
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlSplay(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlDelete(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+VOID
+NTAPI
+RtlDeleteNoSplay(
+    PRTL_SPLAY_LINKS Links,
+    PRTL_SPLAY_LINKS *Root
+);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlSubtreeSuccessor(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlSubtreePredecessor(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlRealSuccessor(PRTL_SPLAY_LINKS Links);
+
+NTSYSAPI
+PRTL_SPLAY_LINKS
+NTAPI
+RtlRealPredecessor(PRTL_SPLAY_LINKS Links);
+
+#define RtlIsLeftChild(Links) \
+    (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlIsRightChild(Links) \
+    (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlRightChild(Links) \
+    ((PRTL_SPLAY_LINKS)(Links))->RightChild
+
+#define RtlIsRoot(Links) \
+    (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlLeftChild(Links) \
+    ((PRTL_SPLAY_LINKS)(Links))->LeftChild
+
+#define RtlParent(Links) \
+    ((PRTL_SPLAY_LINKS)(Links))->Parent
+
+#define RtlInitializeSplayLinks(Links)                  \
+    {                                                   \
+        PRTL_SPLAY_LINKS _SplayLinks;                   \
+        _SplayLinks = (PRTL_SPLAY_LINKS)(Links);        \
+        _SplayLinks->Parent = _SplayLinks;              \
+        _SplayLinks->LeftChild = NULL;                  \
+        _SplayLinks->RightChild = NULL;                 \
+    }
+
+#define RtlInsertAsLeftChild(ParentLinks,ChildLinks)    \
+    {                                                   \
+        PRTL_SPLAY_LINKS _SplayParent;                  \
+        PRTL_SPLAY_LINKS _SplayChild;                   \
+        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
+        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
+        _SplayParent->LeftChild = _SplayChild;          \
+        _SplayChild->Parent = _SplayParent;             \
+    }
+
+#define RtlInsertAsRightChild(ParentLinks,ChildLinks)   \
+    {                                                   \
+        PRTL_SPLAY_LINKS _SplayParent;                  \
+        PRTL_SPLAY_LINKS _SplayChild;                   \
+        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
+        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
+        _SplayParent->RightChild = _SplayChild;         \
+        _SplayChild->Parent = _SplayParent;             \
+    }
+
+//
+// RTL time functions
+//
+
 #define SeEnableAccessToExports() SeExports = *(PSE_EXPORTS *)SeExports;
 
 #if (VER_PRODUCTBUILD >= 2195)
 #define SeEnableAccessToExports() SeExports = *(PSE_EXPORTS *)SeExports;
 
 #if (VER_PRODUCTBUILD >= 2195)
@@ -9453,6 +9154,18 @@ ZwAlertThread (
     IN HANDLE ThreadHandle
 );
 
     IN HANDLE ThreadHandle
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwAllocateVirtualMemory (
+    IN HANDLE       ProcessHandle,
+    IN OUT PVOID    *BaseAddress,
+    IN ULONG_PTR    ZeroBits,
+    IN OUT PSIZE_T  RegionSize,
+    IN ULONG        AllocationType,
+    IN ULONG        Protect
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9498,6 +9211,19 @@ ZwCloseObjectAuditAlarm (
     IN BOOLEAN          GenerateOnClose
 );
 
     IN BOOLEAN          GenerateOnClose
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreateSection (
+    OUT PHANDLE             SectionHandle,
+    IN ACCESS_MASK          DesiredAccess,
+    IN POBJECT_ATTRIBUTES   ObjectAttributes OPTIONAL,
+    IN PLARGE_INTEGER       MaximumSize OPTIONAL,
+    IN ULONG                SectionPageProtection,
+    IN ULONG                AllocationAttributes,
+    IN HANDLE               FileHandle OPTIONAL
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9508,6 +9234,71 @@ ZwCreateSymbolicLinkObject (
     IN PUNICODE_STRING      TargetName
 );
 
     IN PUNICODE_STRING      TargetName
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDeleteFile (
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDeleteValueKey (
+    IN HANDLE           Handle,
+    IN PUNICODE_STRING  Name
+);
+
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDeviceIoControlFile (
+  IN HANDLE FileHandle,
+  IN HANDLE Event OPTIONAL,
+  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
+  IN PVOID ApcContext OPTIONAL,
+  OUT PIO_STATUS_BLOCK IoStatusBlock,
+  IN ULONG IoControlCode,
+  IN PVOID InputBuffer OPTIONAL,
+  IN ULONG InputBufferLength,
+  OUT PVOID OutputBuffer OPTIONAL,
+  IN ULONG OutputBufferLength);
+#endif
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDisplayString (
+    IN PUNICODE_STRING String
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDuplicateObject (
+    IN HANDLE       SourceProcessHandle,
+    IN HANDLE       SourceHandle,
+    IN HANDLE       TargetProcessHandle OPTIONAL,
+    OUT PHANDLE     TargetHandle OPTIONAL,
+    IN ACCESS_MASK  DesiredAccess,
+    IN ULONG        HandleAttributes,
+    IN ULONG        Options
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwDuplicateToken (
+    IN HANDLE               ExistingTokenHandle,
+    IN ACCESS_MASK          DesiredAccess,
+    IN POBJECT_ATTRIBUTES   ObjectAttributes,
+    IN BOOLEAN              EffectiveOnly,
+    IN TOKEN_TYPE           TokenType,
+    OUT PHANDLE             NewTokenHandle
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9527,6 +9318,46 @@ ZwFlushBuffersFile(
 
 #if (VER_PRODUCTBUILD >= 2195)
 
 
 #if (VER_PRODUCTBUILD >= 2195)
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwFlushVirtualMemory (
+    IN HANDLE               ProcessHandle,
+    IN OUT PVOID            *BaseAddress,
+    IN OUT PULONG           FlushSize,
+    OUT PIO_STATUS_BLOCK    IoStatusBlock
+);
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwFreeVirtualMemory (
+    IN HANDLE       ProcessHandle,
+    IN OUT PVOID    *BaseAddress,
+    IN OUT PSIZE_T  RegionSize,
+    IN ULONG        FreeType
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwFsControlFile (
+    IN HANDLE               FileHandle,
+    IN HANDLE               Event OPTIONAL,
+    IN PIO_APC_ROUTINE      ApcRoutine OPTIONAL,
+    IN PVOID                ApcContext OPTIONAL,
+    OUT PIO_STATUS_BLOCK    IoStatusBlock,
+    IN ULONG                FsControlCode,
+    IN PVOID                InputBuffer OPTIONAL,
+    IN ULONG                InputBufferLength,
+    OUT PVOID               OutputBuffer OPTIONAL,
+    IN ULONG                OutputBufferLength
+);
+
+#if (VER_PRODUCTBUILD >= 2195)
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9539,6 +9370,14 @@ ZwInitiatePowerAction (
 
 #endif /* (VER_PRODUCTBUILD >= 2195) */
 
 
 #endif /* (VER_PRODUCTBUILD >= 2195) */
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwLoadDriver (
+    /* "\\Registry\\Machine\\System\\CurrentControlSet\\Services\\<DriverName>" */
+    IN PUNICODE_STRING RegistryPath
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9547,6 +9386,41 @@ ZwLoadKey (
     IN POBJECT_ATTRIBUTES FileObjectAttributes
 );
 
     IN POBJECT_ATTRIBUTES FileObjectAttributes
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwNotifyChangeKey (
+    IN HANDLE               KeyHandle,
+    IN HANDLE               EventHandle OPTIONAL,
+    IN PIO_APC_ROUTINE      ApcRoutine OPTIONAL,
+    IN PVOID                ApcContext OPTIONAL,
+    OUT PIO_STATUS_BLOCK    IoStatusBlock,
+    IN ULONG                NotifyFilter,
+    IN BOOLEAN              WatchSubtree,
+    IN PVOID                Buffer,
+    IN ULONG                BufferLength,
+    IN BOOLEAN              Asynchronous
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwOpenDirectoryObject (
+    OUT PHANDLE             DirectoryHandle,
+    IN ACCESS_MASK          DesiredAccess,
+    IN POBJECT_ATTRIBUTES   ObjectAttributes
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwOpenProcess (
+    OUT PHANDLE             ProcessHandle,
+    IN ACCESS_MASK          DesiredAccess,
+    IN POBJECT_ATTRIBUTES   ObjectAttributes,
+    IN PCLIENT_ID           ClientId OPTIONAL
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9576,6 +9450,21 @@ ZwOpenThreadToken (
     OUT PHANDLE     TokenHandle
 );
 
     OUT PHANDLE     TokenHandle
 );
 
+#if (VER_PRODUCTBUILD >= 2195)
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwPowerInformation (
+    IN POWER_INFORMATION_LEVEL  PowerInformationLevel,
+    IN PVOID                    InputBuffer OPTIONAL,
+    IN ULONG                    InputBufferLength,
+    OUT PVOID                   OutputBuffer OPTIONAL,
+    IN ULONG                    OutputBufferLength
+);
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9592,6 +9481,23 @@ ZwQueryDefaultLocale (
     OUT PLCID   Locale
 );
 
     OUT PLCID   Locale
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryDirectoryFile (
+    IN HANDLE                   FileHandle,
+    IN HANDLE                   Event OPTIONAL,
+    IN PIO_APC_ROUTINE          ApcRoutine OPTIONAL,
+    IN PVOID                    ApcContext OPTIONAL,
+    OUT PIO_STATUS_BLOCK        IoStatusBlock,
+    OUT PVOID                   FileInformation,
+    IN ULONG                    Length,
+    IN FILE_INFORMATION_CLASS   FileInformationClass,
+    IN BOOLEAN                  ReturnSingleEntry,
+    IN PUNICODE_STRING          FileName OPTIONAL,
+    IN BOOLEAN                  RestartScan
+);
+
 #if (VER_PRODUCTBUILD >= 2195)
 
 NTSYSAPI
 #if (VER_PRODUCTBUILD >= 2195)
 
 NTSYSAPI
@@ -9607,6 +9513,21 @@ ZwQueryDirectoryObject (
     OUT PULONG      ReturnLength OPTIONAL
 );
 
     OUT PULONG      ReturnLength OPTIONAL
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryEaFile (
+    IN HANDLE               FileHandle,
+    OUT PIO_STATUS_BLOCK    IoStatusBlock,
+    OUT PVOID               Buffer,
+    IN ULONG                Length,
+    IN BOOLEAN              ReturnSingleEntry,
+    IN PVOID                EaList OPTIONAL,
+    IN ULONG                EaListLength,
+    IN PULONG               EaIndex OPTIONAL,
+    IN BOOLEAN              RestartScan
+);
+
 #endif /* (VER_PRODUCTBUILD >= 2195) */
 
 NTSYSAPI
 #endif /* (VER_PRODUCTBUILD >= 2195) */
 
 NTSYSAPI
@@ -9620,6 +9541,39 @@ ZwQueryInformationProcess (
     OUT PULONG          ReturnLength OPTIONAL
 );
 
     OUT PULONG          ReturnLength OPTIONAL
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryInformationToken (
+    IN HANDLE                   TokenHandle,
+    IN TOKEN_INFORMATION_CLASS  TokenInformationClass,
+    OUT PVOID                   TokenInformation,
+    IN ULONG                    Length,
+    OUT PULONG                  ResultLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQuerySecurityObject (
+    IN HANDLE                   FileHandle,
+    IN SECURITY_INFORMATION     SecurityInformation,
+    OUT PSECURITY_DESCRIPTOR    SecurityDescriptor,
+    IN ULONG                    Length,
+    OUT PULONG                  ResultLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryVolumeInformationFile (
+    IN HANDLE               FileHandle,
+    OUT PIO_STATUS_BLOCK    IoStatusBlock,
+    OUT PVOID               FsInformation,
+    IN ULONG                Length,
+    IN FS_INFORMATION_CLASS FsInformationClass
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9675,8 +9629,26 @@ ZwSetDefaultUILanguage (
     IN LANGID LanguageId
 );
 
     IN LANGID LanguageId
 );
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetEaFile (
+    IN HANDLE               FileHandle,
+    OUT PIO_STATUS_BLOCK    IoStatusBlock,
+    OUT PVOID               Buffer,
+    IN ULONG                Length
+);
+
 #endif /* (VER_PRODUCTBUILD >= 2195) */
 
 #endif /* (VER_PRODUCTBUILD >= 2195) */
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetEvent (
+    IN HANDLE   EventHandle,
+    OUT PLONG   PreviousState OPTIONAL
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9687,6 +9659,19 @@ ZwSetInformationProcess (
     IN ULONG            ProcessInformationLength
 );
 
     IN ULONG            ProcessInformationLength
 );
 
+#if (VER_PRODUCTBUILD >= 2195)
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetSecurityObject (
+    IN HANDLE               Handle,
+    IN SECURITY_INFORMATION SecurityInformation,
+    IN PSECURITY_DESCRIPTOR SecurityDescriptor
+);
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9695,6 +9680,37 @@ ZwSetSystemTime (
     OUT PLARGE_INTEGER  OldTime OPTIONAL
 );
 
     OUT PLARGE_INTEGER  OldTime OPTIONAL
 );
 
+#if (VER_PRODUCTBUILD >= 2195)
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwSetVolumeInformationFile (
+    IN HANDLE               FileHandle,
+    OUT PIO_STATUS_BLOCK    IoStatusBlock,
+    IN PVOID                FsInformation,
+    IN ULONG                Length,
+    IN FS_INFORMATION_CLASS FsInformationClass
+);
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwTerminateProcess (
+    IN HANDLE   ProcessHandle OPTIONAL,
+    IN NTSTATUS ExitStatus
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwUnloadDriver (
+    /* "\\Registry\\Machine\\System\\CurrentControlSet\\Services\\<DriverName>" */
+    IN PUNICODE_STRING RegistryPath
+);
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9702,6 +9718,16 @@ ZwUnloadKey (
     IN POBJECT_ATTRIBUTES KeyObjectAttributes
 );
 
     IN POBJECT_ATTRIBUTES KeyObjectAttributes
 );
 
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwWaitForSingleObject (
+  IN HANDLE Handle,
+  IN BOOLEAN Alertable,
+  IN PLARGE_INTEGER Timeout OPTIONAL);
+#endif
+
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
index 8df9847..e008a2d 100644 (file)
@@ -394,33 +394,22 @@ typedef struct _IMAGE_NT_HEADERS64 {
     ULONG Signature;
     IMAGE_FILE_HEADER FileHeader;
     IMAGE_OPTIONAL_HEADER64 OptionalHeader;
     ULONG Signature;
     IMAGE_FILE_HEADER FileHeader;
     IMAGE_OPTIONAL_HEADER64 OptionalHeader;
-} IMAGE_NT_HEADERS64;
+} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64;
 
 typedef struct _IMAGE_NT_HEADERS {
     ULONG Signature;
     IMAGE_FILE_HEADER FileHeader;
     IMAGE_OPTIONAL_HEADER32 OptionalHeader;
 
 typedef struct _IMAGE_NT_HEADERS {
     ULONG Signature;
     IMAGE_FILE_HEADER FileHeader;
     IMAGE_OPTIONAL_HEADER32 OptionalHeader;
-} IMAGE_NT_HEADERS32;
+} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
 
 #ifdef _WIN64
 typedef IMAGE_NT_HEADERS64                  IMAGE_NT_HEADERS;
 
 #ifdef _WIN64
 typedef IMAGE_NT_HEADERS64                  IMAGE_NT_HEADERS;
-#else
-typedef IMAGE_NT_HEADERS32                  IMAGE_NT_HEADERS;
-#endif
-
-#ifndef _NTDDK_
-
-typedef struct _IMAGE_NT_HEADERS *PIMAGE_NT_HEADERS32;
-typedef struct _IMAGE_NT_HEADERS64 *PIMAGE_NT_HEADERS64;
-
-#ifdef _WIN64
 typedef PIMAGE_NT_HEADERS64                 PIMAGE_NT_HEADERS;
 #else
 typedef PIMAGE_NT_HEADERS64                 PIMAGE_NT_HEADERS;
 #else
+typedef IMAGE_NT_HEADERS32                  IMAGE_NT_HEADERS;
 typedef PIMAGE_NT_HEADERS32                 PIMAGE_NT_HEADERS;
 #endif
 
 typedef PIMAGE_NT_HEADERS32                 PIMAGE_NT_HEADERS;
 #endif
 
-#endif /* _NTDDK_ */
-
 //
 // Retreives the first image section header from the Nt Header
 //
 //
 // Retreives the first image section header from the Nt Header
 //
index c4a4b28..48f7107 100644 (file)
@@ -220,7 +220,7 @@ typedef struct _POWER_STATE_NOTIFY_HANDLER {
 
 NTSYSCALLAPI
 NTSTATUS
 
 NTSYSCALLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 NtPowerInformation(
   IN POWER_INFORMATION_LEVEL  InformationLevel,
   IN PVOID  InputBuffer OPTIONAL,
 NtPowerInformation(
   IN POWER_INFORMATION_LEVEL  InformationLevel,
   IN PVOID  InputBuffer OPTIONAL,
index c45f09b..d567bbd 100644 (file)
@@ -80,27 +80,27 @@ typedef struct _MORE_PARALLEL_PORT_INFORMATION {
 } MORE_PARALLEL_PORT_INFORMATION, *PMORE_PARALLEL_PORT_INFORMATION;
 
 typedef NTSTATUS
 } MORE_PARALLEL_PORT_INFORMATION, *PMORE_PARALLEL_PORT_INFORMATION;
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_SET_CHIP_MODE)(
+(DDKAPI *PPARALLEL_SET_CHIP_MODE)(
        IN  PVOID  SetChipContext,
        IN  UCHAR  ChipMode);
 
 typedef NTSTATUS
        IN  PVOID  SetChipContext,
        IN  UCHAR  ChipMode);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_CLEAR_CHIP_MODE)(
+(DDKAPI *PPARALLEL_CLEAR_CHIP_MODE)(
        IN  PVOID  ClearChipContext,
        IN  UCHAR  ChipMode);
 
 typedef NTSTATUS
        IN  PVOID  ClearChipContext,
        IN  UCHAR  ChipMode);
 
 typedef NTSTATUS
-(NTAPI *PPARCHIP_CLEAR_CHIP_MODE)(
+(DDKAPI *PPARCHIP_CLEAR_CHIP_MODE)(
        IN  PVOID  ClearChipContext,
        IN  UCHAR  ChipMode);
 
 typedef NTSTATUS
        IN  PVOID  ClearChipContext,
        IN  UCHAR  ChipMode);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_TRY_SELECT_ROUTINE)(
+(DDKAPI *PPARALLEL_TRY_SELECT_ROUTINE)(
        IN  PVOID  TrySelectContext,
        IN  PVOID  TrySelectCommand);
 
 typedef NTSTATUS
        IN  PVOID  TrySelectContext,
        IN  PVOID  TrySelectCommand);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_DESELECT_ROUTINE)(
+(DDKAPI *PPARALLEL_DESELECT_ROUTINE)(
        IN PVOID  DeselectContext,
        IN PVOID  DeselectCommand);
 
        IN PVOID  DeselectContext,
        IN PVOID  DeselectCommand);
 
@@ -134,15 +134,15 @@ typedef struct _PARALLEL_PNP_INFORMATION {
 } PARALLEL_PNP_INFORMATION, *PPARALLEL_PNP_INFORMATION;
 
 typedef BOOLEAN
 } PARALLEL_PNP_INFORMATION, *PPARALLEL_PNP_INFORMATION;
 
 typedef BOOLEAN
-(NTAPI *PPARALLEL_TRY_ALLOCATE_ROUTINE)(
+(DDKAPI *PPARALLEL_TRY_ALLOCATE_ROUTINE)(
   IN  PVOID  TryAllocateContext);
 
 typedef VOID
   IN  PVOID  TryAllocateContext);
 
 typedef VOID
-(NTAPI *PPARALLEL_FREE_ROUTINE)(
+(DDKAPI *PPARALLEL_FREE_ROUTINE)(
   IN  PVOID  FreeContext);
 
 typedef ULONG
   IN  PVOID  FreeContext);
 
 typedef ULONG
-(NTAPI *PPARALLEL_QUERY_WAITERS_ROUTINE)(
+(DDKAPI *PPARALLEL_QUERY_WAITERS_ROUTINE)(
        IN  PVOID  QueryAllocsContext);
 
 typedef struct _PARALLEL_PORT_INFORMATION {
        IN  PVOID  QueryAllocsContext);
 
 typedef struct _PARALLEL_PORT_INFORMATION {
@@ -165,7 +165,7 @@ typedef struct _PARALLEL_CHIP_MODE {
 } PARALLEL_CHIP_MODE, *PPARALLEL_CHIP_MODE;
 
 typedef VOID
 } PARALLEL_CHIP_MODE, *PPARALLEL_CHIP_MODE;
 
 typedef VOID
-(NTAPI *PPARALLEL_DEFERRED_ROUTINE)(
+(DDKAPI *PPARALLEL_DEFERRED_ROUTINE)(
        IN  PVOID  DeferredContext);
 
 typedef struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE {
        IN  PVOID  DeferredContext);
 
 typedef struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE {
@@ -192,7 +192,7 @@ typedef struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE {
   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 53, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
 typedef USHORT
   CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 53, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
 typedef USHORT
-(NTAPI *PDETERMINE_IEEE_MODES)(
+(DDKAPI *PDETERMINE_IEEE_MODES)(
   IN PVOID  Context);
 
 typedef enum _PARALLEL_SAFETY {
   IN PVOID  Context);
 
 typedef enum _PARALLEL_SAFETY {
@@ -201,7 +201,7 @@ typedef enum _PARALLEL_SAFETY {
 } PARALLEL_SAFETY;
 
 typedef NTSTATUS
 } PARALLEL_SAFETY;
 
 typedef NTSTATUS
-(NTAPI *PNEGOTIATE_IEEE_MODE)(
+(DDKAPI *PNEGOTIATE_IEEE_MODE)(
   IN PVOID  Context,
   IN USHORT  ModeMaskFwd,
   IN USHORT  ModeMaskRev,
   IN PVOID  Context,
   IN USHORT  ModeMaskFwd,
   IN USHORT  ModeMaskRev,
@@ -209,19 +209,19 @@ typedef NTSTATUS
   IN BOOLEAN  IsForward);
 
 typedef NTSTATUS
   IN BOOLEAN  IsForward);
 
 typedef NTSTATUS
-(NTAPI *PTERMINATE_IEEE_MODE)(
+(DDKAPI *PTERMINATE_IEEE_MODE)(
        IN  PVOID  Context);
 
 typedef NTSTATUS
        IN  PVOID  Context);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_IEEE_FWD_TO_REV)(
+(DDKAPI *PPARALLEL_IEEE_FWD_TO_REV)(
   IN  PVOID  Context);
 
 typedef NTSTATUS
   IN  PVOID  Context);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_IEEE_REV_TO_FWD)(
+(DDKAPI *PPARALLEL_IEEE_REV_TO_FWD)(
   IN  PVOID  Context);
 
 typedef NTSTATUS
   IN  PVOID  Context);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_READ)(
+(DDKAPI *PPARALLEL_READ)(
        IN  PVOID  Context,
        OUT PVOID  Buffer,
        IN  ULONG  NumBytesToRead,
        IN  PVOID  Context,
        OUT PVOID  Buffer,
        IN  ULONG  NumBytesToRead,
@@ -229,7 +229,7 @@ typedef NTSTATUS
        IN  UCHAR  Channel);
 
 typedef NTSTATUS
        IN  UCHAR  Channel);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_WRITE)(
+(DDKAPI *PPARALLEL_WRITE)(
        IN  PVOID  Context,
        OUT PVOID  Buffer,
        IN  ULONG  NumBytesToWrite,
        IN  PVOID  Context,
        OUT PVOID  Buffer,
        IN  ULONG  NumBytesToWrite,
@@ -237,12 +237,12 @@ typedef NTSTATUS
        IN  UCHAR   Channel);
 
 typedef NTSTATUS
        IN  UCHAR   Channel);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_TRYSELECT_DEVICE)(
+(DDKAPI *PPARALLEL_TRYSELECT_DEVICE)(
   IN  PVOID  Context,
   IN  PARALLEL_1284_COMMAND  Command);
 
 typedef NTSTATUS
   IN  PVOID  Context,
   IN  PARALLEL_1284_COMMAND  Command);
 
 typedef NTSTATUS
-(NTAPI *PPARALLEL_DESELECT_DEVICE)(
+(DDKAPI *PPARALLEL_DESELECT_DEVICE)(
   IN  PVOID  Context,
   IN  PARALLEL_1284_COMMAND  Command);
 
   IN  PVOID  Context,
   IN  PARALLEL_1284_COMMAND  Command);
 
index 383d1d4..c599f48 100644 (file)
@@ -61,13 +61,13 @@ typedef struct _SCSIWMIGUIDREGINFO {
 } SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO;
 
 typedef UCHAR
 } SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO;
 
 typedef UCHAR
-(NTAPI *PSCSIWMI_QUERY_REGINFO)(
+(DDKAPI *PSCSIWMI_QUERY_REGINFO)(
        IN PVOID  DeviceContext,
        IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
        OUT PWCHAR  *MofResourceName);
 
 typedef BOOLEAN
        IN PVOID  DeviceContext,
        IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
        OUT PWCHAR  *MofResourceName);
 
 typedef BOOLEAN
-(NTAPI *PSCSIWMI_QUERY_DATABLOCK)(
+(DDKAPI *PSCSIWMI_QUERY_DATABLOCK)(
   IN PVOID  Context,
   IN PSCSIWMI_REQUEST_CONTEXT  DispatchContext,
   IN ULONG  GuidIndex,
   IN PVOID  Context,
   IN PSCSIWMI_REQUEST_CONTEXT  DispatchContext,
   IN ULONG  GuidIndex,
@@ -78,7 +78,7 @@ typedef BOOLEAN
   OUT PUCHAR  Buffer);
 
 typedef BOOLEAN
   OUT PUCHAR  Buffer);
 
 typedef BOOLEAN
-(NTAPI *PSCSIWMI_SET_DATABLOCK)(
+(DDKAPI *PSCSIWMI_SET_DATABLOCK)(
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
@@ -87,7 +87,7 @@ typedef BOOLEAN
   IN PUCHAR  Buffer);
 
 typedef BOOLEAN
   IN PUCHAR  Buffer);
 
 typedef BOOLEAN
-(NTAPI *PSCSIWMI_SET_DATAITEM)(
+(DDKAPI *PSCSIWMI_SET_DATAITEM)(
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
@@ -97,7 +97,7 @@ typedef BOOLEAN
   IN PUCHAR  Buffer);
 
 typedef BOOLEAN
   IN PUCHAR  Buffer);
 
 typedef BOOLEAN
-(NTAPI *PSCSIWMI_EXECUTE_METHOD)(
+(DDKAPI *PSCSIWMI_EXECUTE_METHOD)(
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
@@ -113,7 +113,7 @@ typedef enum _SCSIWMI_ENABLE_DISABLE_CONTROL {
 } SCSIWMI_ENABLE_DISABLE_CONTROL;
 
 typedef BOOLEAN
 } SCSIWMI_ENABLE_DISABLE_CONTROL;
 
 typedef BOOLEAN
-(NTAPI *PSCSIWMI_FUNCTION_CONTROL)(
+(DDKAPI *PSCSIWMI_FUNCTION_CONTROL)(
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
   IN PVOID  DeviceContext,
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN ULONG  GuidIndex,
@@ -133,7 +133,7 @@ typedef struct _SCSIWMILIB_CONTEXT {
 
 SCSIPORTAPI
 BOOLEAN
 
 SCSIPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 ScsiPortWmiDispatchFunction(
   IN PSCSI_WMILIB_CONTEXT  WmiLibInfo,
   IN UCHAR  MinorFunction,
 ScsiPortWmiDispatchFunction(
   IN PSCSI_WMILIB_CONTEXT  WmiLibInfo,
   IN UCHAR  MinorFunction,
@@ -176,7 +176,7 @@ ScsiPortWmiDispatchFunction(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWmiPostProcess(
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN UCHAR  SrbStatus,
 ScsiPortWmiPostProcess(
   IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
   IN UCHAR  SrbStatus,
@@ -184,7 +184,7 @@ ScsiPortWmiPostProcess(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWmiFireLogicalUnitEvent(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 ScsiPortWmiFireLogicalUnitEvent(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
index fd07c72..de61c7d 100644 (file)
@@ -100,17 +100,17 @@ typedef struct _SMB_REGISTER_ALARM {
 #define SMB_CLASS_MINOR_VERSION           0x0000
 
 typedef NTSTATUS
 #define SMB_CLASS_MINOR_VERSION           0x0000
 
 typedef NTSTATUS
-(NTAPI *SMB_RESET_DEVICE)(
+(DDKAPI *SMB_RESET_DEVICE)(
   IN struct _SMB_CLASS  *SmbClass,
   IN PVOID  SmbMiniport);
 
 typedef VOID
   IN struct _SMB_CLASS  *SmbClass,
   IN PVOID  SmbMiniport);
 
 typedef VOID
-(NTAPI *SMB_START_IO)(
+(DDKAPI *SMB_START_IO)(
   IN struct _SMB_CLASS  *SmbClass,
   IN PVOID  SmbMiniport);
 
 typedef NTSTATUS
   IN struct _SMB_CLASS  *SmbClass,
   IN PVOID  SmbMiniport);
 
 typedef NTSTATUS
-(NTAPI *SMB_STOP_DEVICE)(
+(DDKAPI *SMB_STOP_DEVICE)(
   IN struct _SMB_CLASS  *SmbClass,
   IN PVOID  SmbMiniport);
 
   IN struct _SMB_CLASS  *SmbClass,
   IN PVOID  SmbMiniport);
 
@@ -130,7 +130,7 @@ typedef struct _SMB_CLASS {
 
 SMBCLASSAPI
 VOID
 
 SMBCLASSAPI
 VOID
-NTAPI
+DDKAPI
 SmbClassAlarm(
   IN PSMB_CLASS  SmbClass,
   IN UCHAR  Address,
 SmbClassAlarm(
   IN PSMB_CLASS  SmbClass,
   IN UCHAR  Address,
@@ -138,19 +138,19 @@ SmbClassAlarm(
 
 SMBCLASSAPI
 VOID
 
 SMBCLASSAPI
 VOID
-NTAPI
+DDKAPI
 SmbClassCompleteRequest(
   IN PSMB_CLASS  SmbClass);
 
 typedef NTSTATUS
 SmbClassCompleteRequest(
   IN PSMB_CLASS  SmbClass);
 
 typedef NTSTATUS
-(NTAPI *PSMB_INITIALIZE_MINIPORT)(
+(DDKAPI *PSMB_INITIALIZE_MINIPORT)(
   IN PSMB_CLASS  SmbClass,
   IN PVOID  MiniportExtension,
   IN PVOID  MiniportContext);
 
 SMBCLASSAPI
 NTSTATUS
   IN PSMB_CLASS  SmbClass,
   IN PVOID  MiniportExtension,
   IN PVOID  MiniportContext);
 
 SMBCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 SmbClassCreateFdo(
   IN PDRIVER_OBJECT  DriverObject,
   IN PDEVICE_OBJECT  PDO,
 SmbClassCreateFdo(
   IN PDRIVER_OBJECT  DriverObject,
   IN PDEVICE_OBJECT  PDO,
@@ -161,7 +161,7 @@ SmbClassCreateFdo(
 
 SMBCLASSAPI
 NTSTATUS
 
 SMBCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 SmbClassInitializeDevice(
   IN ULONG  MajorVersion,
   IN ULONG  MinorVersion,
 SmbClassInitializeDevice(
   IN ULONG  MajorVersion,
   IN ULONG  MinorVersion,
@@ -169,13 +169,13 @@ SmbClassInitializeDevice(
 
 SMBCLASSAPI
 VOID
 
 SMBCLASSAPI
 VOID
-NTAPI
+DDKAPI
 SmbClassLockDevice(
   IN PSMB_CLASS  SmbClass);
 
 SMBCLASSAPI
 VOID
 SmbClassLockDevice(
   IN PSMB_CLASS  SmbClass);
 
 SMBCLASSAPI
 VOID
-NTAPI
+DDKAPI
 SmbClassUnlockDevice(
   IN PSMB_CLASS  SmbClass);
 
 SmbClassUnlockDevice(
   IN PSMB_CLASS  SmbClass);
 
index 0763652..7d7fc51 100644 (file)
@@ -301,13 +301,13 @@ typedef struct _SCSI_SUPPORTED_CONTROL_TYPE_LIST {
 } SCSI_SUPPORTED_CONTROL_TYPE_LIST, *PSCSI_SUPPORTED_CONTROL_TYPE_LIST;
 
 typedef SCSI_ADAPTER_CONTROL_STATUS
 } SCSI_SUPPORTED_CONTROL_TYPE_LIST, *PSCSI_SUPPORTED_CONTROL_TYPE_LIST;
 
 typedef SCSI_ADAPTER_CONTROL_STATUS
-(NTAPI *PHW_ADAPTER_CONTROL)(
+(DDKAPI *PHW_ADAPTER_CONTROL)(
        IN PVOID DeviceExtension,
        IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
        IN PVOID Parameters);
 
 typedef BOOLEAN
        IN PVOID DeviceExtension,
        IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
        IN PVOID Parameters);
 
 typedef BOOLEAN
-(NTAPI *PHW_ADAPTER_STATE)(
+(DDKAPI *PHW_ADAPTER_STATE)(
        IN PVOID DeviceExtension,
        IN PVOID Context,
        IN BOOLEAN SaveState);
        IN PVOID DeviceExtension,
        IN PVOID Context,
        IN BOOLEAN SaveState);
@@ -318,7 +318,7 @@ typedef BOOLEAN
 #define SP_RETURN_BAD_CONFIG              3
 
 typedef ULONG
 #define SP_RETURN_BAD_CONFIG              3
 
 typedef ULONG
-(NTAPI *PHW_FIND_ADAPTER)(
+(DDKAPI *PHW_FIND_ADAPTER)(
        IN PVOID DeviceExtension,
        IN PVOID HwContext,
        IN PVOID BusInformation,
        IN PVOID DeviceExtension,
        IN PVOID HwContext,
        IN PVOID BusInformation,
@@ -327,29 +327,29 @@ typedef ULONG
        OUT PBOOLEAN Again);
 
 typedef BOOLEAN
        OUT PBOOLEAN Again);
 
 typedef BOOLEAN
-(NTAPI *PHW_INITIALIZE)(
+(DDKAPI *PHW_INITIALIZE)(
   IN PVOID DeviceExtension);
 
 typedef BOOLEAN
   IN PVOID DeviceExtension);
 
 typedef BOOLEAN
-(NTAPI *PHW_INTERRUPT)(
+(DDKAPI *PHW_INTERRUPT)(
   IN PVOID DeviceExtension);
 
 typedef BOOLEAN
   IN PVOID DeviceExtension);
 
 typedef BOOLEAN
-(NTAPI *PHW_RESET_BUS)(
+(DDKAPI *PHW_RESET_BUS)(
   IN PVOID DeviceExtension,
   IN ULONG PathId);
 
 typedef VOID
   IN PVOID DeviceExtension,
   IN ULONG PathId);
 
 typedef VOID
-(NTAPI *PHW_DMA_STARTED)(
+(DDKAPI *PHW_DMA_STARTED)(
   IN PVOID DeviceExtension);
 
 typedef BOOLEAN
   IN PVOID DeviceExtension);
 
 typedef BOOLEAN
-(NTAPI *PHW_STARTIO)(
+(DDKAPI *PHW_STARTIO)(
   IN PVOID DeviceExtension,
   IN PSCSI_REQUEST_BLOCK Srb);
 
 typedef VOID
   IN PVOID DeviceExtension,
   IN PSCSI_REQUEST_BLOCK Srb);
 
 typedef VOID
-(NTAPI *PHW_TIMER)(
+(DDKAPI *PHW_TIMER)(
   IN PVOID DeviceExtension);
 
 typedef struct _HW_INITIALIZATION_DATA {
   IN PVOID DeviceExtension);
 
 typedef struct _HW_INITIALIZATION_DATA {
@@ -383,7 +383,7 @@ typedef struct _HW_INITIALIZATION_DATA {
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortCompleteRequest(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 ScsiPortCompleteRequest(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -400,26 +400,26 @@ ScsiPortCompleteRequest(
 
 SCSIPORTAPI
 SCSI_PHYSICAL_ADDRESS
 
 SCSIPORTAPI
 SCSI_PHYSICAL_ADDRESS
-NTAPI
+DDKAPI
 ScsiPortConvertUlongToPhysicalAddress(
   IN ULONG  UlongAddress);
 
 SCSIPORTAPI
 VOID
 ScsiPortConvertUlongToPhysicalAddress(
   IN ULONG  UlongAddress);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortFlushDma(
   IN PVOID  DeviceExtension);
 
 SCSIPORTAPI
 VOID
 ScsiPortFlushDma(
   IN PVOID  DeviceExtension);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortFreeDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PVOID  MappedAddress);
 
 SCSIPORTAPI
 ULONG
 ScsiPortFreeDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PVOID  MappedAddress);
 
 SCSIPORTAPI
 ULONG
-NTAPI
+DDKAPI
 ScsiPortGetBusData(
   IN PVOID  DeviceExtension,
   IN ULONG  BusDataType,
 ScsiPortGetBusData(
   IN PVOID  DeviceExtension,
   IN ULONG  BusDataType,
@@ -430,7 +430,7 @@ ScsiPortGetBusData(
 
 SCSIPORTAPI
 PVOID
 
 SCSIPORTAPI
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
 ScsiPortGetDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
@@ -441,7 +441,7 @@ ScsiPortGetDeviceBase(
 
 SCSIPORTAPI
 PVOID
 
 SCSIPORTAPI
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetLogicalUnit(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 ScsiPortGetLogicalUnit(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -450,7 +450,7 @@ ScsiPortGetLogicalUnit(
 
 SCSIPORTAPI
 SCSI_PHYSICAL_ADDRESS
 
 SCSIPORTAPI
 SCSI_PHYSICAL_ADDRESS
-NTAPI
+DDKAPI
 ScsiPortGetPhysicalAddress(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb  OPTIONAL,
 ScsiPortGetPhysicalAddress(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb  OPTIONAL,
@@ -459,7 +459,7 @@ ScsiPortGetPhysicalAddress(
 
 SCSIPORTAPI
 PSCSI_REQUEST_BLOCK
 
 SCSIPORTAPI
 PSCSI_REQUEST_BLOCK
-NTAPI
+DDKAPI
 ScsiPortGetSrb(
   IN PVOID  DeviceExtension,
   IN UCHAR  PathId,
 ScsiPortGetSrb(
   IN PVOID  DeviceExtension,
   IN UCHAR  PathId,
@@ -469,7 +469,7 @@ ScsiPortGetSrb(
 
 SCSIPORTAPI
 PVOID
 
 SCSIPORTAPI
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetUncachedExtension(
   IN PVOID  HwDeviceExtension,
   IN PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
 ScsiPortGetUncachedExtension(
   IN PVOID  HwDeviceExtension,
   IN PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
@@ -477,14 +477,14 @@ ScsiPortGetUncachedExtension(
 
 SCSIPORTAPI
 PVOID
 
 SCSIPORTAPI
 PVOID
-NTAPI
+DDKAPI
 ScsiPortGetVirtualAddress(
   IN PVOID  HwDeviceExtension,
   IN SCSI_PHYSICAL_ADDRESS  PhysicalAddress);
 
 SCSIPORTAPI
 ULONG
 ScsiPortGetVirtualAddress(
   IN PVOID  HwDeviceExtension,
   IN SCSI_PHYSICAL_ADDRESS  PhysicalAddress);
 
 SCSIPORTAPI
 ULONG
-NTAPI
+DDKAPI
 ScsiPortInitialize(
   IN PVOID  Argument1,
   IN PVOID  Argument2,
 ScsiPortInitialize(
   IN PVOID  Argument1,
   IN PVOID  Argument2,
@@ -493,7 +493,7 @@ ScsiPortInitialize(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortIoMapTransfer(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb,
 ScsiPortIoMapTransfer(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb,
@@ -502,7 +502,7 @@ ScsiPortIoMapTransfer(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortLogError(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb  OPTIONAL,
 ScsiPortLogError(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb  OPTIONAL,
@@ -514,7 +514,7 @@ ScsiPortLogError(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortMoveMemory(
   IN PVOID  WriteBuffer,
   IN PVOID  ReadBuffer,
 ScsiPortMoveMemory(
   IN PVOID  WriteBuffer,
   IN PVOID  ReadBuffer,
@@ -522,7 +522,7 @@ ScsiPortMoveMemory(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-__cdecl
+DDKCDECLAPI
 ScsiPortNotification(
   IN SCSI_NOTIFICATION_TYPE  NotificationType,
   IN PVOID  HwDeviceExtension,
 ScsiPortNotification(
   IN SCSI_NOTIFICATION_TYPE  NotificationType,
   IN PVOID  HwDeviceExtension,
@@ -530,13 +530,13 @@ ScsiPortNotification(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortQuerySystemTime(
   OUT PLARGE_INTEGER  CurrentTime);
 
 SCSIPORTAPI
 VOID
 ScsiPortQuerySystemTime(
   OUT PLARGE_INTEGER  CurrentTime);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUchar(
   IN PUCHAR  Port,
   IN PUCHAR  Buffer,
 ScsiPortReadPortBufferUchar(
   IN PUCHAR  Port,
   IN PUCHAR  Buffer,
@@ -544,7 +544,7 @@ ScsiPortReadPortBufferUchar(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUlong(
   IN PULONG  Port,
   IN PULONG  Buffer,
 ScsiPortReadPortBufferUlong(
   IN PULONG  Port,
   IN PULONG  Buffer,
@@ -552,7 +552,7 @@ ScsiPortReadPortBufferUlong(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadPortBufferUshort(
   IN PUSHORT  Port,
   IN PUSHORT  Buffer,
 ScsiPortReadPortBufferUshort(
   IN PUSHORT  Port,
   IN PUSHORT  Buffer,
@@ -560,25 +560,25 @@ ScsiPortReadPortBufferUshort(
 
 SCSIPORTAPI
 UCHAR
 
 SCSIPORTAPI
 UCHAR
-NTAPI
+DDKAPI
 ScsiPortReadPortUchar(
   IN PUCHAR  Port);
 
 SCSIPORTAPI
 ULONG
 ScsiPortReadPortUchar(
   IN PUCHAR  Port);
 
 SCSIPORTAPI
 ULONG
-NTAPI
+DDKAPI
 ScsiPortReadPortUlong(
   IN PULONG  Port);
 
 SCSIPORTAPI
 USHORT
 ScsiPortReadPortUlong(
   IN PULONG  Port);
 
 SCSIPORTAPI
 USHORT
-NTAPI
+DDKAPI
 ScsiPortReadPortUshort(
   IN PUSHORT  Port);
 
 SCSIPORTAPI
 VOID
 ScsiPortReadPortUshort(
   IN PUSHORT  Port);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUchar(
   IN PUCHAR  Register,
   IN PUCHAR  Buffer,
 ScsiPortReadRegisterBufferUchar(
   IN PUCHAR  Register,
   IN PUCHAR  Buffer,
@@ -586,7 +586,7 @@ ScsiPortReadRegisterBufferUchar(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUlong(
   IN PULONG  Register,
   IN PULONG  Buffer,
 ScsiPortReadRegisterBufferUlong(
   IN PULONG  Register,
   IN PULONG  Buffer,
@@ -594,7 +594,7 @@ ScsiPortReadRegisterBufferUlong(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortReadRegisterBufferUshort(
   IN PUSHORT  Register,
   IN PUSHORT  Buffer,
 ScsiPortReadRegisterBufferUshort(
   IN PUSHORT  Register,
   IN PUSHORT  Buffer,
@@ -602,25 +602,25 @@ ScsiPortReadRegisterBufferUshort(
 
 SCSIPORTAPI
 UCHAR
 
 SCSIPORTAPI
 UCHAR
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUchar(
   IN PUCHAR  Register);
 
 SCSIPORTAPI
 ULONG
 ScsiPortReadRegisterUchar(
   IN PUCHAR  Register);
 
 SCSIPORTAPI
 ULONG
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUlong(
   IN PULONG  Register);
 
 SCSIPORTAPI
 USHORT
 ScsiPortReadRegisterUlong(
   IN PULONG  Register);
 
 SCSIPORTAPI
 USHORT
-NTAPI
+DDKAPI
 ScsiPortReadRegisterUshort(
   IN PUSHORT  Register);
 
 SCSIPORTAPI
 ULONG
 ScsiPortReadRegisterUshort(
   IN PUSHORT  Register);
 
 SCSIPORTAPI
 ULONG
-NTAPI
+DDKAPI
 ScsiPortSetBusDataByOffset(
   IN PVOID  DeviceExtension,
   IN ULONG  BusDataType,
 ScsiPortSetBusDataByOffset(
   IN PVOID  DeviceExtension,
   IN ULONG  BusDataType,
@@ -632,13 +632,13 @@ ScsiPortSetBusDataByOffset(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortStallExecution(
   IN ULONG  Delay);
 
 SCSIPORTAPI
 BOOLEAN
 ScsiPortStallExecution(
   IN ULONG  Delay);
 
 SCSIPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 ScsiPortValidateRange(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
 ScsiPortValidateRange(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
@@ -649,7 +649,7 @@ ScsiPortValidateRange(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUchar(
   IN PUCHAR  Port,
   IN PUCHAR  Buffer,
 ScsiPortWritePortBufferUchar(
   IN PUCHAR  Port,
   IN PUCHAR  Buffer,
@@ -657,7 +657,7 @@ ScsiPortWritePortBufferUchar(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUlong(
   IN PULONG  Port,
   IN PULONG  Buffer,
 ScsiPortWritePortBufferUlong(
   IN PULONG  Port,
   IN PULONG  Buffer,
@@ -665,7 +665,7 @@ ScsiPortWritePortBufferUlong(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortBufferUshort(
   IN PUSHORT  Port,
   IN PUSHORT  Buffer,
 ScsiPortWritePortBufferUshort(
   IN PUSHORT  Port,
   IN PUSHORT  Buffer,
@@ -673,28 +673,28 @@ ScsiPortWritePortBufferUshort(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 SCSIPORTAPI
 VOID
 ScsiPortWritePortUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 SCSIPORTAPI
 VOID
 ScsiPortWritePortUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWritePortUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 SCSIPORTAPI
 VOID
 ScsiPortWritePortUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUchar(
   IN PUCHAR  Register,
   IN PUCHAR  Buffer,
 ScsiPortWriteRegisterBufferUchar(
   IN PUCHAR  Register,
   IN PUCHAR  Buffer,
@@ -702,7 +702,7 @@ ScsiPortWriteRegisterBufferUchar(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUlong(
   IN PULONG  Register,
   IN PULONG  Buffer,
 ScsiPortWriteRegisterBufferUlong(
   IN PULONG  Register,
   IN PULONG  Buffer,
@@ -710,7 +710,7 @@ ScsiPortWriteRegisterBufferUlong(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterBufferUshort(
   IN PUSHORT  Register,
   IN PUSHORT  Buffer,
 ScsiPortWriteRegisterBufferUshort(
   IN PUSHORT  Register,
   IN PUSHORT  Buffer,
@@ -718,28 +718,28 @@ ScsiPortWriteRegisterBufferUshort(
 
 SCSIPORTAPI
 VOID
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUchar(
   IN PUCHAR  Register,
   IN ULONG  Value);
 
 SCSIPORTAPI
 VOID
 ScsiPortWriteRegisterUchar(
   IN PUCHAR  Register,
   IN ULONG  Value);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUlong(
   IN PULONG  Register,
   IN ULONG  Value);
 
 SCSIPORTAPI
 VOID
 ScsiPortWriteRegisterUlong(
   IN PULONG  Register,
   IN ULONG  Value);
 
 SCSIPORTAPI
 VOID
-NTAPI
+DDKAPI
 ScsiPortWriteRegisterUshort(
   IN PUSHORT  Register,
   IN USHORT  Value);
 
 SCSIPORTAPI
 VOID
 ScsiPortWriteRegisterUshort(
   IN PUSHORT  Register,
   IN USHORT  Value);
 
 SCSIPORTAPI
 VOID
-__cdecl
+DDKCDECLAPI
 ScsiDebugPrint(
   IN ULONG DebugPrintLevel,
   IN PCCHAR DebugMessage,
 ScsiDebugPrint(
   IN ULONG DebugPrintLevel,
   IN PCCHAR DebugMessage,
index fd8cf9b..7859967 100644 (file)
@@ -76,7 +76,7 @@ typedef struct _SCSI_WMI_REQUEST_BLOCK {
 
 STORPORTAPI
 ULONG
 
 STORPORTAPI
 ULONG
-NTAPI
+DDKAPI
 StorPortInitialize(
   IN PVOID  Argument1,
   IN PVOID  Argument2,
 StorPortInitialize(
   IN PVOID  Argument1,
   IN PVOID  Argument2,
@@ -85,14 +85,14 @@ StorPortInitialize(
 
 STORPORTAPI
 VOID
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortFreeDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PVOID  MappedAddress);
 
 STORPORTAPI
 ULONG
 StorPortFreeDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PVOID  MappedAddress);
 
 STORPORTAPI
 ULONG
-NTAPI
+DDKAPI
 StorPortGetBusData(
   IN PVOID  DeviceExtension,
   IN ULONG  BusDataType,
 StorPortGetBusData(
   IN PVOID  DeviceExtension,
   IN ULONG  BusDataType,
@@ -103,7 +103,7 @@ StorPortGetBusData(
 
 STORPORTAPI
 ULONG
 
 STORPORTAPI
 ULONG
-NTAPI
+DDKAPI
 StorPortSetBusDataByOffset(
   IN PVOID  DeviceExtension,
   IN ULONG   BusDataType,
 StorPortSetBusDataByOffset(
   IN PVOID  DeviceExtension,
   IN ULONG   BusDataType,
@@ -115,7 +115,7 @@ StorPortSetBusDataByOffset(
 
 STORPORTAPI
 PVOID
 
 STORPORTAPI
 PVOID
-NTAPI
+DDKAPI
 StorPortGetDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
 StorPortGetDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
@@ -126,7 +126,7 @@ StorPortGetDeviceBase(
 
 STORPORTAPI
 PVOID
 
 STORPORTAPI
 PVOID
-NTAPI
+DDKAPI
 StorPortGetLogicalUnit(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 StorPortGetLogicalUnit(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -135,7 +135,7 @@ StorPortGetLogicalUnit(
 
 STORPORTAPI
 PSCSI_REQUEST_BLOCK
 
 STORPORTAPI
 PSCSI_REQUEST_BLOCK
-NTAPI
+DDKAPI
 StorPortGetSrb(
   IN PVOID  DeviceExtension,
   IN UCHAR  PathId,
 StorPortGetSrb(
   IN PVOID  DeviceExtension,
   IN UCHAR  PathId,
@@ -145,7 +145,7 @@ StorPortGetSrb(
 
 STORPORTAPI
 STOR_PHYSICAL_ADDRESS
 
 STORPORTAPI
 STOR_PHYSICAL_ADDRESS
-NTAPI
+DDKAPI
 StorPortGetPhysicalAddress(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb,
 StorPortGetPhysicalAddress(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb,
@@ -154,14 +154,14 @@ StorPortGetPhysicalAddress(
 
 STORPORTAPI
 PVOID
 
 STORPORTAPI
 PVOID
-NTAPI
+DDKAPI
 StorPortGetVirtualAddress(
   IN PVOID  HwDeviceExtension,
   IN STOR_PHYSICAL_ADDRESS  PhysicalAddress);
 
 STORPORTAPI
 PVOID
 StorPortGetVirtualAddress(
   IN PVOID  HwDeviceExtension,
   IN STOR_PHYSICAL_ADDRESS  PhysicalAddress);
 
 STORPORTAPI
 PVOID
-NTAPI
+DDKAPI
 StorPortGetUncachedExtension(
   IN PVOID HwDeviceExtension,
   IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
 StorPortGetUncachedExtension(
   IN PVOID HwDeviceExtension,
   IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
@@ -169,7 +169,7 @@ StorPortGetUncachedExtension(
 
 STORPORTAPI
 VOID
 
 STORPORTAPI
 VOID
-__cdecl
+DDKCDECLAPI
 StorPortNotification(
   IN SCSI_NOTIFICATION_TYPE  NotificationType,
   IN PVOID  HwDeviceExtension,
 StorPortNotification(
   IN SCSI_NOTIFICATION_TYPE  NotificationType,
   IN PVOID  HwDeviceExtension,
@@ -177,7 +177,7 @@ StorPortNotification(
 
 STORPORTAPI
 VOID
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortLogError(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb OPTIONAL,
 StorPortLogError(
   IN PVOID  HwDeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb OPTIONAL,
@@ -189,7 +189,7 @@ StorPortLogError(
 
 STORPORTAPI
 VOID
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortCompleteRequest(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 StorPortCompleteRequest(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -199,7 +199,7 @@ StorPortCompleteRequest(
 
 STORPORTAPI
 VOID
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortMoveMemory(
   IN PVOID  WriteBuffer,
   IN PVOID  ReadBuffer,
 StorPortMoveMemory(
   IN PVOID  WriteBuffer,
   IN PVOID  ReadBuffer,
@@ -207,25 +207,25 @@ StorPortMoveMemory(
 
 STORPORTAPI
 VOID
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortStallExecution(
   IN ULONG  Delay);
 
 STORPORTAPI
 STOR_PHYSICAL_ADDRESS
 StorPortStallExecution(
   IN ULONG  Delay);
 
 STORPORTAPI
 STOR_PHYSICAL_ADDRESS
-NTAPI
+DDKAPI
 StorPortConvertUlong64ToPhysicalAddress(
   IN ULONG64  UlongAddress);
 
 STORPORTAPI
 ULONG64
 StorPortConvertUlong64ToPhysicalAddress(
   IN ULONG64  UlongAddress);
 
 STORPORTAPI
 ULONG64
-NTAPI
+DDKAPI
 StorPortConvertPhysicalAddressToUlong64(
   IN STOR_PHYSICAL_ADDRESS  Address);
 
 STORPORTAPI
 BOOLEAN
 StorPortConvertPhysicalAddressToUlong64(
   IN STOR_PHYSICAL_ADDRESS  Address);
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortValidateRange(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
 StorPortValidateRange(
   IN PVOID  HwDeviceExtension,
   IN INTERFACE_TYPE  BusType,
@@ -236,7 +236,7 @@ StorPortValidateRange(
 
 STORPORTAPI
 VOID
 
 STORPORTAPI
 VOID
-__cdecl
+DDKCDECLAPI
 StorPortDebugPrint(
   IN ULONG  DebugPrintLevel,
   IN PCCHAR  DebugMessage,
 StorPortDebugPrint(
   IN ULONG  DebugPrintLevel,
   IN PCCHAR  DebugMessage,
@@ -244,85 +244,85 @@ StorPortDebugPrint(
 
 STORPORTAPI
 UCHAR
 
 STORPORTAPI
 UCHAR
-NTAPI
+DDKAPI
 StorPortReadPortUchar(
   IN PUCHAR  Port);
 
 STORPORTAPI
 ULONG
 StorPortReadPortUchar(
   IN PUCHAR  Port);
 
 STORPORTAPI
 ULONG
-NTAPI
+DDKAPI
 StorPortReadPortUlong(
   IN PULONG  Port);
 
 STORPORTAPI
 USHORT
 StorPortReadPortUlong(
   IN PULONG  Port);
 
 STORPORTAPI
 USHORT
-NTAPI
+DDKAPI
 StorPortReadPortUshort(
   IN PUSHORT  Port);
 
 STORPORTAPI
 UCHAR
 StorPortReadPortUshort(
   IN PUSHORT  Port);
 
 STORPORTAPI
 UCHAR
-NTAPI
+DDKAPI
 StorPortReadRegisterUchar(
   IN PUCHAR  Register);
 
 STORPORTAPI
 ULONG
 StorPortReadRegisterUchar(
   IN PUCHAR  Register);
 
 STORPORTAPI
 ULONG
-NTAPI
+DDKAPI
 StorPortReadRegisterUlong(
   IN PULONG  Register);
 
 STORPORTAPI
 USHORT
 StorPortReadRegisterUlong(
   IN PULONG  Register);
 
 STORPORTAPI
 USHORT
-NTAPI
+DDKAPI
 StorPortReadRegisterUshort(
   IN PUSHORT  Register);
 
 STORPORTAPI
 VOID
 StorPortReadRegisterUshort(
   IN PUSHORT  Register);
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortWritePortUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 STORPORTAPI
 VOID
 StorPortWritePortUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortWritePortUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 STORPORTAPI
 VOID
 StorPortWritePortUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortWritePortUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 STORPORTAPI
 VOID
 StorPortWritePortUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortWriteRegisterUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 STORPORTAPI
 VOID
 StorPortWriteRegisterUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortWriteRegisterUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 STORPORTAPI
 VOID
 StorPortWriteRegisterUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortWriteRegisterUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 STORPORTAPI
 BOOLEAN
 StorPortWriteRegisterUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortPauseDevice(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 StorPortPauseDevice(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -332,7 +332,7 @@ StorPortPauseDevice(
 
 STORPORTAPI
 BOOLEAN
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortResumeDevice(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 StorPortResumeDevice(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -341,20 +341,20 @@ StorPortResumeDevice(
 
 STORPORTAPI
 BOOLEAN
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortPause(
   IN PVOID  HwDeviceExtension,
   IN ULONG  TimeOut);
 
 STORPORTAPI
 BOOLEAN
 StorPortPause(
   IN PVOID  HwDeviceExtension,
   IN ULONG  TimeOut);
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortResume(
   IN PVOID  HwDeviceExtension);
 
 STORPORTAPI
 BOOLEAN
 StorPortResume(
   IN PVOID  HwDeviceExtension);
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortDeviceBusy(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 StorPortDeviceBusy(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -364,7 +364,7 @@ StorPortDeviceBusy(
 
 STORPORTAPI
 BOOLEAN
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortDeviceReady(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
 StorPortDeviceReady(
   IN PVOID  HwDeviceExtension,
   IN UCHAR  PathId,
@@ -373,32 +373,32 @@ StorPortDeviceReady(
 
 STORPORTAPI
 BOOLEAN
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortBusy(
   IN PVOID  HwDeviceExtension,
   IN ULONG  RequestsToComplete);
 
 STORPORTAPI
 BOOLEAN
 StorPortBusy(
   IN PVOID  HwDeviceExtension,
   IN ULONG  RequestsToComplete);
 
 STORPORTAPI
 BOOLEAN
-NTAPI
+DDKAPI
 StorPortReady(
   IN PVOID  HwDeviceExtension);
 
 STORPORTAPI
 PSTOR_SCATTER_GATHER_LIST
 StorPortReady(
   IN PVOID  HwDeviceExtension);
 
 STORPORTAPI
 PSTOR_SCATTER_GATHER_LIST
-NTAPI
+DDKAPI
 StorPortGetScatterGatherList(
   IN PVOID  DeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb);
 
 typedef BOOLEAN
 StorPortGetScatterGatherList(
   IN PVOID  DeviceExtension,
   IN PSCSI_REQUEST_BLOCK  Srb);
 
 typedef BOOLEAN
-(NTAPI *PSTOR_SYNCHRONIZED_ACCESS)(
+(DDKAPI *PSTOR_SYNCHRONIZED_ACCESS)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context);
 
 STORPORTAPI
 VOID
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context);
 
 STORPORTAPI
 VOID
-NTAPI
+DDKAPI
 StorPortSynchronizeAccess(
   IN PVOID  HwDeviceExtension,
   IN PSTOR_SYNCHRONIZED_ACCESS  SynchronizedAccessRoutine,
 StorPortSynchronizeAccess(
   IN PVOID  HwDeviceExtension,
   IN PSTOR_SYNCHRONIZED_ACCESS  SynchronizedAccessRoutine,
index b6a3011..7c5f90d 100644 (file)
@@ -157,7 +157,7 @@ typedef struct _TDI_REQUEST_KERNEL_SET_INFO {
 #define TDI_EVENT_ERROR_EX                  10
 
 typedef NTSTATUS
 #define TDI_EVENT_ERROR_EX                  10
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_CONNECT)(
+(DDKAPI *PTDI_IND_CONNECT)(
   IN PVOID  TdiEventContext,
   IN LONG  RemoteAddressLength,
   IN PVOID  RemoteAddress,
   IN PVOID  TdiEventContext,
   IN LONG  RemoteAddressLength,
   IN PVOID  RemoteAddress,
@@ -170,7 +170,7 @@ typedef NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultConnectHandler(
   IN PVOID  TdiEventContext,
   IN LONG  RemoteAddressLength,
 TdiDefaultConnectHandler(
   IN PVOID  TdiEventContext,
   IN LONG  RemoteAddressLength,
@@ -183,7 +183,7 @@ TdiDefaultConnectHandler(
   OUT PIRP  *AcceptIrp);
 
 typedef NTSTATUS
   OUT PIRP  *AcceptIrp);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_DISCONNECT)(
+(DDKAPI *PTDI_IND_DISCONNECT)(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN LONG  DisconnectDataLength,
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN LONG  DisconnectDataLength,
@@ -194,7 +194,7 @@ typedef NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultDisconnectHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
 TdiDefaultDisconnectHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
@@ -205,25 +205,25 @@ TdiDefaultDisconnectHandler(
   IN ULONG  DisconnectFlags);
 
 typedef NTSTATUS
   IN ULONG  DisconnectFlags);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_ERROR)(
+(DDKAPI *PTDI_IND_ERROR)(
   IN PVOID  TdiEventContext,
   IN NTSTATUS  Status);
 
 typedef NTSTATUS
   IN PVOID  TdiEventContext,
   IN NTSTATUS  Status);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_ERROR_EX)(
+(DDKAPI *PTDI_IND_ERROR_EX)(
   IN PVOID  TdiEventContext,
   IN NTSTATUS  Status,
   IN PVOID  Buffer);
 
 TDIKRNLAPI
 NTSTATUS
   IN PVOID  TdiEventContext,
   IN NTSTATUS  Status,
   IN PVOID  Buffer);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultErrorHandler(
   IN PVOID  TdiEventContext,
   IN NTSTATUS  Status);
 
 typedef NTSTATUS
 TdiDefaultErrorHandler(
   IN PVOID  TdiEventContext,
   IN NTSTATUS  Status);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_RECEIVE)(
+(DDKAPI *PTDI_IND_RECEIVE)(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
@@ -235,7 +235,7 @@ typedef NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultReceiveHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
 TdiDefaultReceiveHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
@@ -247,7 +247,7 @@ TdiDefaultReceiveHandler(
   OUT PIRP  *IoRequestPacket);
 
 typedef NTSTATUS
   OUT PIRP  *IoRequestPacket);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_RECEIVE_DATAGRAM)(
+(DDKAPI *PTDI_IND_RECEIVE_DATAGRAM)(
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
   IN PVOID  SourceAddress,
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
   IN PVOID  SourceAddress,
@@ -261,7 +261,7 @@ typedef NTSTATUS
   OUT PIRP  *IoRequestPacket);
 
 TDIKRNLAPI
   OUT PIRP  *IoRequestPacket);
 
 TDIKRNLAPI
-NTSTATUS NTAPI
+NTSTATUS DDKAPI
 TdiDefaultRcvDatagramHandler(
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
 TdiDefaultRcvDatagramHandler(
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
@@ -276,7 +276,7 @@ TdiDefaultRcvDatagramHandler(
   OUT PIRP  *IoRequestPacket);
 
 typedef NTSTATUS
   OUT PIRP  *IoRequestPacket);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_RECEIVE_EXPEDITED)(
+(DDKAPI *PTDI_IND_RECEIVE_EXPEDITED)(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
@@ -288,7 +288,7 @@ typedef NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultRcvExpeditedHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
 TdiDefaultRcvExpeditedHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
@@ -300,7 +300,7 @@ TdiDefaultRcvExpeditedHandler(
   OUT PIRP  *IoRequestPacket);
 
 typedef NTSTATUS
   OUT PIRP  *IoRequestPacket);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_CHAINED_RECEIVE)(
+(DDKAPI *PTDI_IND_CHAINED_RECEIVE)(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
@@ -311,7 +311,7 @@ typedef NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultChainedReceiveHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
 TdiDefaultChainedReceiveHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
@@ -322,7 +322,7 @@ TdiDefaultChainedReceiveHandler(
   IN PVOID  TsduDescriptor);
 
 typedef NTSTATUS
   IN PVOID  TsduDescriptor);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_CHAINED_RECEIVE_DATAGRAM)(
+(DDKAPI *PTDI_IND_CHAINED_RECEIVE_DATAGRAM)(
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
   IN PVOID  SourceAddress,
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
   IN PVOID  SourceAddress,
@@ -336,7 +336,7 @@ typedef NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultChainedRcvDatagramHandler(
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
 TdiDefaultChainedRcvDatagramHandler(
   IN PVOID  TdiEventContext,
   IN LONG  SourceAddressLength,
@@ -350,7 +350,7 @@ TdiDefaultChainedRcvDatagramHandler(
   IN PVOID  TsduDescriptor);
 
 typedef NTSTATUS
   IN PVOID  TsduDescriptor);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_CHAINED_RECEIVE_EXPEDITED)(
+(DDKAPI *PTDI_IND_CHAINED_RECEIVE_EXPEDITED)(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
   IN ULONG  ReceiveFlags,
@@ -361,7 +361,7 @@ typedef NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultChainedRcvExpeditedHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
 TdiDefaultChainedRcvExpeditedHandler(
   IN PVOID  TdiEventContext,
   IN CONNECTION_CONTEXT  ConnectionContext,
@@ -372,14 +372,14 @@ TdiDefaultChainedRcvExpeditedHandler(
   IN PVOID  TsduDescriptor);
 
 typedef NTSTATUS
   IN PVOID  TsduDescriptor);
 
 typedef NTSTATUS
-(NTAPI *PTDI_IND_SEND_POSSIBLE)(
+(DDKAPI *PTDI_IND_SEND_POSSIBLE)(
   IN PVOID  TdiEventContext,
   IN PVOID  ConnectionContext,
   IN ULONG  BytesAvailable);
 
 TDIKRNLAPI
 NTSTATUS
   IN PVOID  TdiEventContext,
   IN PVOID  ConnectionContext,
   IN ULONG  BytesAvailable);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDefaultSendPossibleHandler(
   IN PVOID  TdiEventContext,
   IN PVOID  ConnectionContext,
 TdiDefaultSendPossibleHandler(
   IN PVOID  TdiEventContext,
   IN PVOID  ConnectionContext,
@@ -611,7 +611,7 @@ TdiDefaultSendPossibleHandler(
 
 TDIKRNLAPI
 VOID
 
 TDIKRNLAPI
 VOID
-NTAPI
+DDKAPI
 TdiBuildNetbiosAddress(
        IN PUCHAR  NetbiosName,
        IN BOOLEAN  IsGroupName,
 TdiBuildNetbiosAddress(
        IN PUCHAR  NetbiosName,
        IN BOOLEAN  IsGroupName,
@@ -619,7 +619,7 @@ TdiBuildNetbiosAddress(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiBuildNetbiosAddressEa(
   IN PUCHAR  Buffer,
   IN BOOLEAN  IsGroupName,
 TdiBuildNetbiosAddressEa(
   IN PUCHAR  Buffer,
   IN BOOLEAN  IsGroupName,
@@ -869,48 +869,48 @@ typedef struct _TDI_PNP_CONTEXT {
 } TDI_PNP_CONTEXT, *PTDI_PNP_CONTEXT;
 
 typedef VOID
 } TDI_PNP_CONTEXT, *PTDI_PNP_CONTEXT;
 
 typedef VOID
-(NTAPI *TDI_ADD_ADDRESS_HANDLER)(
+(DDKAPI *TDI_ADD_ADDRESS_HANDLER)(
   IN PTA_ADDRESS  Address);
 
 typedef VOID
   IN PTA_ADDRESS  Address);
 
 typedef VOID
-(NTAPI *TDI_ADD_ADDRESS_HANDLER_V2)(
+(DDKAPI *TDI_ADD_ADDRESS_HANDLER_V2)(
   IN PTA_ADDRESS  Address,
   IN PUNICODE_STRING  DeviceName,
   IN PTDI_PNP_CONTEXT  Context);
 
 typedef VOID
   IN PTA_ADDRESS  Address,
   IN PUNICODE_STRING  DeviceName,
   IN PTDI_PNP_CONTEXT  Context);
 
 typedef VOID
-(NTAPI *TDI_BINDING_HANDLER)(
+(DDKAPI *TDI_BINDING_HANDLER)(
   IN TDI_PNP_OPCODE  PnPOpcode,
   IN PUNICODE_STRING  DeviceName,
   IN PWSTR  MultiSZBindList);
 
 typedef VOID
   IN TDI_PNP_OPCODE  PnPOpcode,
   IN PUNICODE_STRING  DeviceName,
   IN PWSTR  MultiSZBindList);
 
 typedef VOID
-(NTAPI *TDI_BIND_HANDLER)(
+(DDKAPI *TDI_BIND_HANDLER)(
   IN PUNICODE_STRING  DeviceName);
 
 typedef VOID
   IN PUNICODE_STRING  DeviceName);
 
 typedef VOID
-(NTAPI *TDI_DEL_ADDRESS_HANDLER)(
+(DDKAPI *TDI_DEL_ADDRESS_HANDLER)(
   IN PTA_ADDRESS  Address);
 
 typedef VOID
   IN PTA_ADDRESS  Address);
 
 typedef VOID
-(NTAPI *TDI_DEL_ADDRESS_HANDLER_V2)(
+(DDKAPI *TDI_DEL_ADDRESS_HANDLER_V2)(
   IN PTA_ADDRESS  Address,
   IN PUNICODE_STRING  DeviceName,
   IN PTDI_PNP_CONTEXT  Context);
 
 typedef NTSTATUS
   IN PTA_ADDRESS  Address,
   IN PUNICODE_STRING  DeviceName,
   IN PTDI_PNP_CONTEXT  Context);
 
 typedef NTSTATUS
-(NTAPI *TDI_PNP_POWER_HANDLER)(
+(DDKAPI *TDI_PNP_POWER_HANDLER)(
   IN PUNICODE_STRING  DeviceName,
   IN PNET_PNP_EVENT  PowerEvent,
   IN PTDI_PNP_CONTEXT  Context1,
   IN PTDI_PNP_CONTEXT  Context2);
 
 typedef VOID
   IN PUNICODE_STRING  DeviceName,
   IN PNET_PNP_EVENT  PowerEvent,
   IN PTDI_PNP_CONTEXT  Context1,
   IN PTDI_PNP_CONTEXT  Context2);
 
 typedef VOID
-(NTAPI *TDI_UNBIND_HANDLER)(
+(DDKAPI *TDI_UNBIND_HANDLER)(
   IN PUNICODE_STRING  DeviceName);
 
 typedef VOID
   IN PUNICODE_STRING  DeviceName);
 
 typedef VOID
-(NTAPI *ProviderPnPPowerComplete)(
+(DDKAPI *ProviderPnPPowerComplete)(
   IN PNET_PNP_EVENT  NetEvent,
   IN NTSTATUS  ProviderStatus);
 
   IN PNET_PNP_EVENT  NetEvent,
   IN NTSTATUS  ProviderStatus);
 
@@ -964,7 +964,7 @@ typedef TDI_CLIENT_INTERFACE_INFO *PTDI_CLIENT_INTERFACE_INFO;
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiCopyBufferToMdl(
   IN PVOID  SourceBuffer,
   IN ULONG  SourceOffset,
 TdiCopyBufferToMdl(
   IN PVOID  SourceBuffer,
   IN ULONG  SourceOffset,
@@ -986,7 +986,7 @@ TdiCopyBufferToMdl(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiCopyMdlChainToMdlChain (
   IN PMDL  SourceMdlChain,
   IN ULONG  SourceOffset,
 TdiCopyMdlChainToMdlChain (
   IN PMDL  SourceMdlChain,
   IN ULONG  SourceOffset,
@@ -996,7 +996,7 @@ TdiCopyMdlChainToMdlChain (
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiCopyMdlToBuffer(
   IN PMDL  SourceMdlChain,
   IN ULONG  SourceOffset,
 TdiCopyMdlToBuffer(
   IN PMDL  SourceMdlChain,
   IN ULONG  SourceOffset,
@@ -1007,55 +1007,55 @@ TdiCopyMdlToBuffer(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDeregisterAddressChangeHandler(
   IN HANDLE  BindingHandle);
 
 TDIKRNLAPI
 NTSTATUS
 TdiDeregisterAddressChangeHandler(
   IN HANDLE  BindingHandle);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDeregisterDeviceObject(
   IN HANDLE  DevRegistrationHandle);
 
 TDIKRNLAPI
 NTSTATUS
 TdiDeregisterDeviceObject(
   IN HANDLE  DevRegistrationHandle);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDeregisterNetAddress(
   IN HANDLE  AddrRegistrationHandle);
 
 TDIKRNLAPI
 NTSTATUS
 TdiDeregisterNetAddress(
   IN HANDLE  AddrRegistrationHandle);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDeregisterPnPHandlers(
   IN HANDLE  BindingHandle);
 
 TDIKRNLAPI
 NTSTATUS
 TdiDeregisterPnPHandlers(
   IN HANDLE  BindingHandle);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiDeregisterProvider(
   IN HANDLE  ProviderHandle);
 
 TDIKRNLAPI
 NTSTATUS
 TdiDeregisterProvider(
   IN HANDLE  ProviderHandle);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiEnumerateAddresses(
   IN HANDLE  BindingHandle);
 
 TDIKRNLAPI
 VOID
 TdiEnumerateAddresses(
   IN HANDLE  BindingHandle);
 
 TDIKRNLAPI
 VOID
-NTAPI
+DDKAPI
 TdiInitialize(
   VOID);
 
 TDIKRNLAPI
 VOID
 TdiInitialize(
   VOID);
 
 TDIKRNLAPI
 VOID
-NTAPI
+DDKAPI
 TdiMapBuffer(
   IN PMDL  MdlChain);
 
 TDIKRNLAPI
 NTSTATUS
 TdiMapBuffer(
   IN PMDL  MdlChain);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiMapUserRequest(
   IN PDEVICE_OBJECT  DeviceObject,
   IN PIRP  Irp,
 TdiMapUserRequest(
   IN PDEVICE_OBJECT  DeviceObject,
   IN PIRP  Irp,
@@ -1063,14 +1063,14 @@ TdiMapUserRequest(
 
 TDIKRNLAPI
 BOOLEAN
 
 TDIKRNLAPI
 BOOLEAN
-NTAPI
+DDKAPI
 TdiMatchPdoWithChainedReceiveContext(
   IN PVOID TsduDescriptor,
   IN PVOID PDO);
 
 TDIKRNLAPI
 VOID
 TdiMatchPdoWithChainedReceiveContext(
   IN PVOID TsduDescriptor,
   IN PVOID PDO);
 
 TDIKRNLAPI
 VOID
-NTAPI
+DDKAPI
 TdiPnPPowerComplete(
   IN HANDLE  BindingHandle,
   IN PNET_PNP_EVENT  PowerEvent,
 TdiPnPPowerComplete(
   IN HANDLE  BindingHandle,
   IN PNET_PNP_EVENT  PowerEvent,
@@ -1078,7 +1078,7 @@ TdiPnPPowerComplete(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiPnPPowerRequest(
   IN PUNICODE_STRING  DeviceName,
   IN PNET_PNP_EVENT  PowerEvent,
 TdiPnPPowerRequest(
   IN PUNICODE_STRING  DeviceName,
   IN PNET_PNP_EVENT  PowerEvent,
@@ -1088,13 +1088,13 @@ TdiPnPPowerRequest(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiProviderReady(
   IN HANDLE  ProviderHandle);
 
 TDIKRNLAPI
 NTSTATUS
 TdiProviderReady(
   IN HANDLE  ProviderHandle);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiRegisterAddressChangeHandler(
   IN TDI_ADD_ADDRESS_HANDLER  AddHandler,
   IN TDI_DEL_ADDRESS_HANDLER  DeleteHandler,
 TdiRegisterAddressChangeHandler(
   IN TDI_ADD_ADDRESS_HANDLER  AddHandler,
   IN TDI_DEL_ADDRESS_HANDLER  DeleteHandler,
@@ -1102,14 +1102,14 @@ TdiRegisterAddressChangeHandler(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiRegisterDeviceObject(
   IN PUNICODE_STRING  DeviceName,
   OUT HANDLE  *DevRegistrationHandle);
 
 TDIKRNLAPI
 NTSTATUS
 TdiRegisterDeviceObject(
   IN PUNICODE_STRING  DeviceName,
   OUT HANDLE  *DevRegistrationHandle);
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiRegisterNetAddress(
   IN PTA_ADDRESS  Address,
   IN PUNICODE_STRING  DeviceName,
 TdiRegisterNetAddress(
   IN PTA_ADDRESS  Address,
   IN PUNICODE_STRING  DeviceName,
@@ -1118,7 +1118,7 @@ TdiRegisterNetAddress(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiRegisterNotificationHandler(
   IN TDI_BIND_HANDLER  BindHandler,
   IN TDI_UNBIND_HANDLER  UnbindHandler,
 TdiRegisterNotificationHandler(
   IN TDI_BIND_HANDLER  BindHandler,
   IN TDI_UNBIND_HANDLER  UnbindHandler,
@@ -1126,7 +1126,7 @@ TdiRegisterNotificationHandler(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiRegisterPnPHandlers(
   IN PTDI_CLIENT_INTERFACE_INFO  ClientInterfaceInfo,
   IN ULONG  InterfaceInfoSize,
 TdiRegisterPnPHandlers(
   IN PTDI_CLIENT_INTERFACE_INFO  ClientInterfaceInfo,
   IN ULONG  InterfaceInfoSize,
@@ -1134,21 +1134,21 @@ TdiRegisterPnPHandlers(
 
 TDIKRNLAPI
 NTSTATUS
 
 TDIKRNLAPI
 NTSTATUS
-NTAPI
+DDKAPI
 TdiRegisterProvider(
   IN PUNICODE_STRING  ProviderName,
   OUT HANDLE  *ProviderHandle);
 
 TDIKRNLAPI
 VOID
 TdiRegisterProvider(
   IN PUNICODE_STRING  ProviderName,
   OUT HANDLE  *ProviderHandle);
 
 TDIKRNLAPI
 VOID
-NTAPI
+DDKAPI
 TdiReturnChainedReceives(
   IN PVOID  *TsduDescriptors,
   IN ULONG   NumberOfTsdus);
 
 TDIKRNLAPI
 VOID
 TdiReturnChainedReceives(
   IN PVOID  *TsduDescriptors,
   IN ULONG   NumberOfTsdus);
 
 TDIKRNLAPI
 VOID
-NTAPI
+DDKAPI
 TdiUnmapBuffer(
   IN PMDL  MdlChain);
 
 TdiUnmapBuffer(
   IN PMDL  MdlChain);
 
similarity index 81%
rename from reactos/include/psdk/tvout.h
rename to reactos/include/ddk/tvout.h
index 8174614..d2e33c2 100644 (file)
  *
  */
 
  *
  */
 
+#ifndef __TVOUT_H
+#define __TVOUT_H
+
+
+#if _MSC_VER > 1000
 #pragma once
 #pragma once
+#endif
+
 
 #ifndef GUID_DEFINED
 #include <guiddef.h>
 
 #ifndef GUID_DEFINED
 #include <guiddef.h>
 #define VP_CP_CMD_CHANGE                  0x00000004
 
 typedef struct _VIDEOPARAMETERS {
 #define VP_CP_CMD_CHANGE                  0x00000004
 
 typedef struct _VIDEOPARAMETERS {
-  GUID Guid;
-  ULONG dwOffset;
-  ULONG dwCommand;
-  ULONG dwFlags;
-  ULONG dwMode;
-  ULONG dwTVStandard;
-  ULONG dwAvailableModes;
-  ULONG dwAvailableTVStandard;
-  ULONG dwFlickerFilter;
-  ULONG dwOverScanX;
-  ULONG dwOverScanY;
-  ULONG dwMaxUnscaledX;
-  ULONG dwMaxUnscaledY;
-  ULONG dwPositionX;
-  ULONG dwPositionY;
-  ULONG dwBrightness;
-  ULONG dwContrast;
-  ULONG dwCPType;
-  ULONG dwCPCommand;
-  ULONG dwCPStandard;
-  ULONG dwCPKey;
-  ULONG bCP_APSTriggerBits;
-  UCHAR bOEMCopyProtection[256];
-} VIDEOPARAMETERS, *PVIDEOPARAMETERS, *LPVIDEOPARAMETERS;
+  GUID  Guid;
+  ULONG  dwOffset;
+  ULONG  dwCommand;
+  ULONG  dwFlags;
+  ULONG  dwMode;
+  ULONG  dwTVStandard;
+  ULONG  dwAvailableModes;
+  ULONG  dwAvailableTVStandard;
+  ULONG  dwFlickerFilter;
+  ULONG  dwOverScanX;
+  ULONG  dwOverScanY;
+  ULONG  dwMaxUnscaledX;
+  ULONG  dwMaxUnscaledY;
+  ULONG  dwPositionX;
+  ULONG  dwPositionY;
+  ULONG  dwBrightness;
+  ULONG  dwContrast;
+  ULONG  dwCPType;
+  ULONG  dwCPCommand;
+  ULONG  dwCPStandard;
+  ULONG  dwCPKey;
+  ULONG  bCP_APSTriggerBits;
+  UCHAR  bOEMCopyProtection[256];
+} VIDEOPARAMETERS, *PVIDEOPARAMETERS, FAR *LPVIDEOPARAMETERS;
+
+
+#endif /* __TVOUT_H */
index 8672519..1d3792a 100644 (file)
@@ -42,12 +42,12 @@ extern "C" {
 
 UPSAPI
 VOID
 
 UPSAPI
 VOID
-NTAPI
+DDKAPI
 UPSCancelWait(VOID);
 
 UPSAPI
 DWORD
 UPSCancelWait(VOID);
 
 UPSAPI
 DWORD
-NTAPI
+DDKAPI
 UPSGetState(VOID);
 
 #define UPS_INITUNKNOWNERROR              0
 UPSGetState(VOID);
 
 #define UPS_INITUNKNOWNERROR              0
@@ -60,23 +60,23 @@ UPSGetState(VOID);
 
 UPSAPI
 DWORD
 
 UPSAPI
 DWORD
-NTAPI
+DDKAPI
 UPSInit(VOID);
 
 UPSAPI
 VOID
 UPSInit(VOID);
 
 UPSAPI
 VOID
-NTAPI
+DDKAPI
 UPSStop(VOID);
 
 UPSAPI
 VOID
 UPSStop(VOID);
 
 UPSAPI
 VOID
-NTAPI
+DDKAPI
 UPSTurnOff(
   IN DWORD  aTurnOffDelay);
 
 UPSAPI
 VOID
 UPSTurnOff(
   IN DWORD  aTurnOffDelay);
 
 UPSAPI
 VOID
-NTAPI
+DDKAPI
 UPSWaitForStateChange(
   IN DWORD  aCurrentState,
   IN DWORD  anInterval);
 UPSWaitForStateChange(
   IN DWORD  aCurrentState,
   IN DWORD  anInterval);
index 6294b5a..047a567 100644 (file)
@@ -76,7 +76,7 @@ typedef enum _HW_DMA_RETURN {
 } HW_DMA_RETURN, *PHW_DMA_RETURN;
 
 typedef HW_DMA_RETURN
 } HW_DMA_RETURN, *PHW_DMA_RETURN;
 
 typedef HW_DMA_RETURN
-(NTAPI *PVIDEO_HW_START_DMA)(
+(DDKAPI *PVIDEO_HW_START_DMA)(
     PVOID  HwDeviceExtension,
     PDMA  pDma);
 
     PVOID  HwDeviceExtension,
     PDMA  pDma);
 
@@ -144,14 +144,14 @@ typedef struct _VP_SCATTER_GATHER_LIST {
 } VP_SCATTER_GATHER_LIST, *PVP_SCATTER_GATHER_LIST;
 
 typedef VOID
 } VP_SCATTER_GATHER_LIST, *PVP_SCATTER_GATHER_LIST;
 
 typedef VOID
-(NTAPI *PEXECUTE_DMA)(
+(DDKAPI *PEXECUTE_DMA)(
        IN PVOID  HwDeviceExtension,
        IN PVP_DMA_ADAPTER  VpDmaAdapter,
        IN PVP_SCATTER_GATHER_LIST  SGList,
        IN PVOID  Context);
 
 typedef PVOID
        IN PVOID  HwDeviceExtension,
        IN PVP_DMA_ADAPTER  VpDmaAdapter,
        IN PVP_SCATTER_GATHER_LIST  SGList,
        IN PVOID  Context);
 
 typedef PVOID
-(NTAPI *PVIDEO_PORT_GET_PROC_ADDRESS)(
+(DDKAPI *PVIDEO_PORT_GET_PROC_ADDRESS)(
   IN PVOID  HwDeviceExtension,
   IN PUCHAR  FunctionName);
 
   IN PVOID  HwDeviceExtension,
   IN PUCHAR  FunctionName);
 
@@ -188,7 +188,7 @@ typedef struct _VIDEO_PORT_CONFIG_INFO {
 } VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
 
 typedef VP_STATUS
 } VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
 
 typedef VP_STATUS
-(NTAPI *PVIDEO_HW_FIND_ADAPTER)(
+(DDKAPI *PVIDEO_HW_FIND_ADAPTER)(
        IN PVOID  HwDeviceExtension,
        IN PVOID  HwContext,
        IN PWSTR  ArgumentString,
        IN PVOID  HwDeviceExtension,
        IN PVOID  HwContext,
        IN PWSTR  ArgumentString,
@@ -196,7 +196,7 @@ typedef VP_STATUS
        OUT PUCHAR  Again);
 
 typedef VP_STATUS
        OUT PUCHAR  Again);
 
 typedef VP_STATUS
-(NTAPI *PVIDEO_HW_POWER_GET)(
+(DDKAPI *PVIDEO_HW_POWER_GET)(
   IN PVOID  HwDeviceExtension,
   IN ULONG  HwId,
   IN OUT  PVIDEO_POWER_MANAGEMENT  VideoPowerControl);
   IN PVOID  HwDeviceExtension,
   IN ULONG  HwId,
   IN OUT  PVIDEO_POWER_MANAGEMENT  VideoPowerControl);
@@ -224,7 +224,7 @@ typedef enum _VIDEO_CHILD_TYPE {
 } VIDEO_CHILD_TYPE, *PVIDEO_CHILD_TYPE;
 
 typedef VP_STATUS
 } VIDEO_CHILD_TYPE, *PVIDEO_CHILD_TYPE;
 
 typedef VP_STATUS
-(NTAPI *PVIDEO_HW_GET_CHILD_DESCRIPTOR)(
+(DDKAPI *PVIDEO_HW_GET_CHILD_DESCRIPTOR)(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_CHILD_ENUM_INFO  ChildEnumInfo,
   OUT  PVIDEO_CHILD_TYPE  VideoChildType,
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_CHILD_ENUM_INFO  ChildEnumInfo,
   OUT  PVIDEO_CHILD_TYPE  VideoChildType,
@@ -233,11 +233,11 @@ typedef VP_STATUS
   OUT  PULONG  pUnused);
 
 typedef BOOLEAN
   OUT  PULONG  pUnused);
 
 typedef BOOLEAN
-(NTAPI *PVIDEO_HW_INITIALIZE)(
+(DDKAPI *PVIDEO_HW_INITIALIZE)(
   IN PVOID  HwDeviceExtension);
 
 typedef BOOLEAN
   IN PVOID  HwDeviceExtension);
 
 typedef BOOLEAN
-(NTAPI *PVIDEO_HW_INTERRUPT)(
+(DDKAPI *PVIDEO_HW_INTERRUPT)(
   IN PVOID  HwDeviceExtension);
 
 /* VIDEO_ACCESS_RANGE.RangePassive */
   IN PVOID  HwDeviceExtension);
 
 /* VIDEO_ACCESS_RANGE.RangePassive */
@@ -257,14 +257,14 @@ typedef struct _VIDEO_ACCESS_RANGE {
 #endif
 
 typedef VOID
 #endif
 
 typedef VOID
-(NTAPI *PVIDEO_HW_LEGACYRESOURCES)(
+(DDKAPI *PVIDEO_HW_LEGACYRESOURCES)(
   IN ULONG  VendorId,
   IN ULONG  DeviceId,
   IN OUT  PVIDEO_ACCESS_RANGE  *LegacyResourceList,
   IN OUT  PULONG  LegacyResourceCount);
 
 typedef VP_STATUS
   IN ULONG  VendorId,
   IN ULONG  DeviceId,
   IN OUT  PVIDEO_ACCESS_RANGE  *LegacyResourceList,
   IN OUT  PULONG  LegacyResourceCount);
 
 typedef VP_STATUS
-(NTAPI *PMINIPORT_QUERY_DEVICE_ROUTINE)(
+(DDKAPI *PMINIPORT_QUERY_DEVICE_ROUTINE)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context,
   IN VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context,
   IN VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
@@ -284,12 +284,12 @@ typedef struct _QUERY_INTERFACE {
 } QUERY_INTERFACE, *PQUERY_INTERFACE;
 
 typedef VP_STATUS
 } QUERY_INTERFACE, *PQUERY_INTERFACE;
 
 typedef VP_STATUS
-(NTAPI *PVIDEO_HW_QUERY_INTERFACE)(
+(DDKAPI *PVIDEO_HW_QUERY_INTERFACE)(
   IN PVOID  HwDeviceExtension,
   IN OUT  PQUERY_INTERFACE  QueryInterface);
 
 typedef VP_STATUS
   IN PVOID  HwDeviceExtension,
   IN OUT  PQUERY_INTERFACE  QueryInterface);
 
 typedef VP_STATUS
-(NTAPI *PMINIPORT_GET_REGISTRY_ROUTINE)(
+(DDKAPI *PMINIPORT_GET_REGISTRY_ROUTINE)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context,
   IN OUT  PWSTR  ValueName,
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context,
   IN OUT  PWSTR  ValueName,
@@ -297,13 +297,13 @@ typedef VP_STATUS
   IN ULONG  ValueLength);
 
 typedef BOOLEAN
   IN ULONG  ValueLength);
 
 typedef BOOLEAN
-(NTAPI *PVIDEO_HW_RESET_HW)(
+(DDKAPI *PVIDEO_HW_RESET_HW)(
   IN PVOID  HwDeviceExtension,
   IN ULONG  Columns,
   IN ULONG  Rows);
 
 typedef VP_STATUS
   IN PVOID  HwDeviceExtension,
   IN ULONG  Columns,
   IN ULONG  Rows);
 
 typedef VP_STATUS
-(NTAPI *PVIDEO_HW_POWER_SET)(
+(DDKAPI *PVIDEO_HW_POWER_SET)(
   IN PVOID  HwDeviceExtension,
   IN ULONG  HwId,
   IN PVIDEO_POWER_MANAGEMENT  VideoPowerControl);
   IN PVOID  HwDeviceExtension,
   IN ULONG  HwId,
   IN PVIDEO_POWER_MANAGEMENT  VideoPowerControl);
@@ -326,32 +326,32 @@ typedef struct _VIDEO_REQUEST_PACKET {
 } VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
 
 typedef BOOLEAN
 } VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
 
 typedef BOOLEAN
-(NTAPI *PVIDEO_HW_START_IO)(
+(DDKAPI *PVIDEO_HW_START_IO)(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_REQUEST_PACKET  RequestPacket);
 
 typedef BOOLEAN
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_REQUEST_PACKET  RequestPacket);
 
 typedef BOOLEAN
-(NTAPI *PMINIPORT_SYNCHRONIZE_ROUTINE)(
+(DDKAPI *PMINIPORT_SYNCHRONIZE_ROUTINE)(
   IN PVOID  Context);
 
 typedef VOID
   IN PVOID  Context);
 
 typedef VOID
-(NTAPI *PVIDEO_HW_TIMER)(
+(DDKAPI *PVIDEO_HW_TIMER)(
   IN PVOID  HwDeviceExtension);
 
 typedef VOID
   IN PVOID  HwDeviceExtension);
 
 typedef VOID
-(NTAPI *PMINIPORT_DPC_ROUTINE)(
+(DDKAPI *PMINIPORT_DPC_ROUTINE)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context);
 
 typedef VP_STATUS
   IN PVOID  HwDeviceExtension,
   IN PVOID  Context);
 
 typedef VP_STATUS
-(NTAPI *PDRIVER_IO_PORT_UCHAR)(
+(DDKAPI *PDRIVER_IO_PORT_UCHAR)(
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN PUCHAR  Data);
 
 typedef VP_STATUS
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN PUCHAR  Data);
 
 typedef VP_STATUS
-(NTAPI *PDRIVER_IO_PORT_UCHAR_STRING)(
+(DDKAPI *PDRIVER_IO_PORT_UCHAR_STRING)(
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
@@ -359,14 +359,14 @@ typedef VP_STATUS
   IN ULONG  DataLength);
 
 typedef VP_STATUS
   IN ULONG  DataLength);
 
 typedef VP_STATUS
-(NTAPI *PDRIVER_IO_PORT_ULONG)(
+(DDKAPI *PDRIVER_IO_PORT_ULONG)(
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN PULONG  Data);
 
 typedef VP_STATUS
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN PULONG  Data);
 
 typedef VP_STATUS
-(NTAPI *PDRIVER_IO_PORT_ULONG_STRING)(
+(DDKAPI *PDRIVER_IO_PORT_ULONG_STRING)(
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
@@ -374,14 +374,14 @@ typedef VP_STATUS
   IN ULONG  DataLength);
 
 typedef VP_STATUS
   IN ULONG  DataLength);
 
 typedef VP_STATUS
-(NTAPI *PDRIVER_IO_PORT_USHORT)(
+(DDKAPI *PDRIVER_IO_PORT_USHORT)(
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN PUSHORT  Data);
 
 typedef VP_STATUS
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN PUSHORT  Data);
 
 typedef VP_STATUS
-(NTAPI *PDRIVER_IO_PORT_USHORT_STRING)(
+(DDKAPI *PDRIVER_IO_PORT_USHORT_STRING)(
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
   IN ULONG_PTR  Context,
   IN ULONG  Port,
   IN UCHAR  AccessMode,
@@ -480,21 +480,21 @@ typedef struct _VIDEO_PORT_AGP_INTERFACE_2 {
 #define VIDEO_PORT_I2C_INTERFACE_VERSION_1  1
 
 typedef VOID
 #define VIDEO_PORT_I2C_INTERFACE_VERSION_1  1
 
 typedef VOID
-(NTAPI *PVIDEO_WRITE_CLOCK_LINE)(
+(DDKAPI *PVIDEO_WRITE_CLOCK_LINE)(
   PVOID HwDeviceExtension,
   UCHAR Data);
 
 typedef VOID
   PVOID HwDeviceExtension,
   UCHAR Data);
 
 typedef VOID
-(NTAPI *PVIDEO_WRITE_DATA_LINE)(
+(DDKAPI *PVIDEO_WRITE_DATA_LINE)(
   PVOID HwDeviceExtension,
   UCHAR Data);
 
 typedef BOOLEAN
   PVOID HwDeviceExtension,
   UCHAR Data);
 
 typedef BOOLEAN
-(NTAPI *PVIDEO_READ_CLOCK_LINE)(
+(DDKAPI *PVIDEO_READ_CLOCK_LINE)(
   PVOID HwDeviceExtension);
 
 typedef BOOLEAN
   PVOID HwDeviceExtension);
 
 typedef BOOLEAN
-(NTAPI *PVIDEO_READ_DATA_LINE)(
+(DDKAPI *PVIDEO_READ_DATA_LINE)(
   PVOID HwDeviceExtension);
 
 typedef struct _I2C_CALLBACKS
   PVOID HwDeviceExtension);
 
 typedef struct _I2C_CALLBACKS
@@ -506,24 +506,24 @@ typedef struct _I2C_CALLBACKS
 } I2C_CALLBACKS, *PI2C_CALLBACKS;
 
 typedef BOOLEAN
 } I2C_CALLBACKS, *PI2C_CALLBACKS;
 
 typedef BOOLEAN
-(NTAPI *PI2C_START)(
+(DDKAPI *PI2C_START)(
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks);
 
 typedef BOOLEAN
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks);
 
 typedef BOOLEAN
-(NTAPI *PI2C_STOP)(
+(DDKAPI *PI2C_STOP)(
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks);
 
 typedef BOOLEAN
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks);
 
 typedef BOOLEAN
-(NTAPI *PI2C_WRITE)(
+(DDKAPI *PI2C_WRITE)(
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks,
   IN PUCHAR  Buffer,
   IN ULONG  Length);
 
 typedef BOOLEAN
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks,
   IN PUCHAR  Buffer,
   IN ULONG  Length);
 
 typedef BOOLEAN
-(NTAPI *PI2C_READ)(
+(DDKAPI *PI2C_READ)(
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks,
   OUT PUCHAR  Buffer,
   IN PVOID  HwDeviceExtension,
   IN PI2C_CALLBACKS  I2CCallbacks,
   OUT PUCHAR  Buffer,
@@ -545,25 +545,25 @@ typedef struct _VIDEO_PORT_I2C_INTERFACE {
 #define VIDEO_PORT_INT10_INTERFACE_VERSION_1 1
 
 typedef VP_STATUS
 #define VIDEO_PORT_INT10_INTERFACE_VERSION_1 1
 
 typedef VP_STATUS
-(NTAPI *PINT10_ALLOCATE_BUFFER)(
+(DDKAPI *PINT10_ALLOCATE_BUFFER)(
   IN PVOID  Context,
   OUT PUSHORT  Seg,
   OUT PUSHORT  Off,
   IN OUT PULONG  Length);
 
 typedef VP_STATUS
   IN PVOID  Context,
   OUT PUSHORT  Seg,
   OUT PUSHORT  Off,
   IN OUT PULONG  Length);
 
 typedef VP_STATUS
-(NTAPI *PINT10_CALL_BIOS)(
+(DDKAPI *PINT10_CALL_BIOS)(
   IN PVOID  Context,
   IN OUT PINT10_BIOS_ARGUMENTS  BiosArguments);
 
 typedef VP_STATUS
   IN PVOID  Context,
   IN OUT PINT10_BIOS_ARGUMENTS  BiosArguments);
 
 typedef VP_STATUS
-(NTAPI *PINT10_FREE_BUFFER)(
+(DDKAPI *PINT10_FREE_BUFFER)(
   IN PVOID  Context,
   IN USHORT  Seg,
   IN USHORT  Off);
 
 typedef VP_STATUS
   IN PVOID  Context,
   IN USHORT  Seg,
   IN USHORT  Off);
 
 typedef VP_STATUS
-(NTAPI *PINT10_READ_MEMORY)(
+(DDKAPI *PINT10_READ_MEMORY)(
   IN PVOID  Context,
   IN USHORT  Seg,
   IN USHORT  Off,
   IN PVOID  Context,
   IN USHORT  Seg,
   IN USHORT  Off,
@@ -571,7 +571,7 @@ typedef VP_STATUS
   IN ULONG  Length);
 
 typedef VP_STATUS
   IN ULONG  Length);
 
 typedef VP_STATUS
-(NTAPI *PINT10_WRITE_MEMORY)(
+(DDKAPI *PINT10_WRITE_MEMORY)(
   IN PVOID  Context,
   IN USHORT  Seg,
   IN USHORT  Off,
   IN PVOID  Context,
   IN USHORT  Seg,
   IN USHORT  Off,
@@ -630,13 +630,13 @@ typedef struct _VPOSVERSIONINFO {
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortAcquireDeviceLock(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VOID
 VideoPortAcquireDeviceLock(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortAcquireSpinLock(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock,
 VideoPortAcquireSpinLock(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock,
@@ -644,14 +644,14 @@ VideoPortAcquireSpinLock(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortAcquireSpinLockAtDpcLevel(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock);
 
 VPAPI
 VP_STATUS
 VideoPortAcquireSpinLockAtDpcLevel(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortAllocateBuffer(
   IN PVOID  HwDeviceExtension,
   IN ULONG  Size,
 VideoPortAllocateBuffer(
   IN PVOID  HwDeviceExtension,
   IN ULONG  Size,
@@ -659,7 +659,7 @@ VideoPortAllocateBuffer(
 
 VPAPI
 PVOID
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortAllocateCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
 VideoPortAllocateCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
@@ -670,7 +670,7 @@ VideoPortAllocateCommonBuffer(
 
 VPAPI
 PVOID
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortAllocateContiguousMemory(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumberOfBytes,
 VideoPortAllocateContiguousMemory(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumberOfBytes,
@@ -686,7 +686,7 @@ typedef enum _VP_POOL_TYPE {
 
 VPAPI
 PVOID
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortAllocatePool(
   IN PVOID  HwDeviceExtension,
   IN VP_POOL_TYPE  PoolType,
 VideoPortAllocatePool(
   IN PVOID  HwDeviceExtension,
   IN VP_POOL_TYPE  PoolType,
@@ -695,7 +695,7 @@ VideoPortAllocatePool(
 
 VPAPI
 PDMA
 
 VPAPI
 PDMA
-NTAPI
+DDKAPI
 VideoPortAssociateEventsWithDmaHandle(
   IN PVOID  HwDeviceExtension,
   IN OUT PVIDEO_REQUEST_PACKET  pVrp,
 VideoPortAssociateEventsWithDmaHandle(
   IN PVOID  HwDeviceExtension,
   IN OUT PVIDEO_REQUEST_PACKET  pVrp,
@@ -708,7 +708,7 @@ VideoPortAssociateEventsWithDmaHandle(
 
 VPAPI
 BOOLEAN
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortCheckForDeviceExistence(
   IN PVOID  HwDeviceExtension,
   IN USHORT  VendorId,
 VideoPortCheckForDeviceExistence(
   IN PVOID  HwDeviceExtension,
   IN USHORT  VendorId,
@@ -720,14 +720,14 @@ VideoPortCheckForDeviceExistence(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortClearEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 ULONG
 VideoPortClearEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortCompareMemory(
   IN PVOID  Source1,
   IN PVOID  Source2,
 VideoPortCompareMemory(
   IN PVOID  Source1,
   IN PVOID  Source2,
@@ -735,7 +735,7 @@ VideoPortCompareMemory(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortCompleteDma(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
 VideoPortCompleteDma(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
@@ -744,7 +744,7 @@ VideoPortCompleteDma(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortCreateEvent(
   IN PVOID  HwDeviceExtension,
   IN ULONG  EventFlag,
 VideoPortCreateEvent(
   IN PVOID  HwDeviceExtension,
   IN ULONG  EventFlag,
@@ -753,7 +753,7 @@ VideoPortCreateEvent(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortCreateSecondaryDisplay(
   IN PVOID  HwDeviceExtension,
   IN OUT PVOID  *SecondaryDeviceExtension,
 VideoPortCreateSecondaryDisplay(
   IN PVOID  HwDeviceExtension,
   IN OUT PVOID  *SecondaryDeviceExtension,
@@ -761,7 +761,7 @@ VideoPortCreateSecondaryDisplay(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortCreateSpinLock(
   IN PVOID  HwDeviceExtension,
   OUT PSPIN_LOCK  *SpinLock);
 VideoPortCreateSpinLock(
   IN PVOID  HwDeviceExtension,
   OUT PSPIN_LOCK  *SpinLock);
@@ -774,7 +774,7 @@ typedef struct _DDC_CONTROL {
 
 VPAPI
 BOOLEAN
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortDDCMonitorHelper(
   IN PVOID  HwDeviceExtension,
   IN PVOID  DDCControl,
 VideoPortDDCMonitorHelper(
   IN PVOID  HwDeviceExtension,
   IN PVOID  DDCControl,
@@ -783,7 +783,7 @@ VideoPortDDCMonitorHelper(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-__cdecl
+DDKCDECLAPI
 VideoPortDebugPrint(
   IN VIDEO_DEBUG_LEVEL  DebugPrintLevel,
   IN PCHAR  DebugMessage,
 VideoPortDebugPrint(
   IN VIDEO_DEBUG_LEVEL  DebugPrintLevel,
   IN PCHAR  DebugMessage,
@@ -791,27 +791,27 @@ VideoPortDebugPrint(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortDeleteEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 VP_STATUS
 VideoPortDeleteEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortDeleteSpinLock(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock);
 
 VPAPI
 VP_STATUS
 VideoPortDeleteSpinLock(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortDisableInterrupt(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 PDMA
 VideoPortDisableInterrupt(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 PDMA
-NTAPI
+DDKAPI
 VideoPortDoDma(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma,
 VideoPortDoDma(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma,
@@ -819,20 +819,20 @@ VideoPortDoDma(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortEnableInterrupt(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VP_STATUS
 VideoPortEnableInterrupt(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortEnumerateChildren(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Reserved);
 
 VPAPI
 VOID
 VideoPortEnumerateChildren(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Reserved);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortFreeCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN ULONG  Length,
 VideoPortFreeCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN ULONG  Length,
@@ -842,21 +842,21 @@ VideoPortFreeCommonBuffer(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortFreeDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PVOID  MappedAddress);
 
 VPAPI
 VOID
 VideoPortFreeDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PVOID  MappedAddress);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortFreePool(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Ptr);
 
 VPAPI
 VP_STATUS
 VideoPortFreePool(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Ptr);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortGetAccessRanges(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumRequestedResources,
 VideoPortGetAccessRanges(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumRequestedResources,
@@ -869,19 +869,19 @@ VideoPortGetAccessRanges(
 
 VPAPI
 PVOID
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortGetAssociatedDeviceExtension(
   IN PVOID  DeviceObject);
 
 VPAPI
 ULONG
 VideoPortGetAssociatedDeviceExtension(
   IN PVOID  DeviceObject);
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortGetAssociatedDeviceID(
   IN PVOID DeviceObject);
 
 VPAPI
 ULONG
 VideoPortGetAssociatedDeviceID(
   IN PVOID DeviceObject);
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortGetBusData(
   IN PVOID  HwDeviceExtension,
   IN BUS_DATA_TYPE  BusDataType,
 VideoPortGetBusData(
   IN PVOID  HwDeviceExtension,
   IN BUS_DATA_TYPE  BusDataType,
@@ -892,14 +892,14 @@ VideoPortGetBusData(
 
 VPAPI
 ULONG
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortGetBytesUsed(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma);
 
 VPAPI
 PVOID
 VideoPortGetBytesUsed(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma);
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortGetCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN ULONG  DesiredLength,
 VideoPortGetCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN ULONG  DesiredLength,
@@ -910,13 +910,13 @@ VideoPortGetCommonBuffer(
 
 VPAPI
 UCHAR
 
 VPAPI
 UCHAR
-NTAPI
+DDKAPI
 VideoPortGetCurrentIrql(
   VOID);
 
 VPAPI
 PVOID
 VideoPortGetCurrentIrql(
   VOID);
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortGetDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PHYSICAL_ADDRESS  IoAddress,
 VideoPortGetDeviceBase(
   IN PVOID  HwDeviceExtension,
   IN PHYSICAL_ADDRESS  IoAddress,
@@ -925,7 +925,7 @@ VideoPortGetDeviceBase(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortGetDeviceData(
   IN PVOID  HwDeviceExtension,
   IN VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
 VideoPortGetDeviceData(
   IN PVOID  HwDeviceExtension,
   IN VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
@@ -934,28 +934,28 @@ VideoPortGetDeviceData(
 
 VPAPI
 PVP_DMA_ADAPTER
 
 VPAPI
 PVP_DMA_ADAPTER
-NTAPI
+DDKAPI
 VideoPortGetDmaAdapter(
   IN PVOID  HwDeviceExtension,
   IN PVP_DEVICE_DESCRIPTION  VpDeviceDescription);
 
 VPAPI
 PVOID
 VideoPortGetDmaAdapter(
   IN PVOID  HwDeviceExtension,
   IN PVP_DEVICE_DESCRIPTION  VpDeviceDescription);
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortGetDmaContext(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma);
 
 VPAPI
 PVOID
 VideoPortGetDmaContext(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma);
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortGetMdl(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma);
 
 VPAPI
 VP_STATUS
 VideoPortGetMdl(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDma);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortGetRegistryParameters(
   IN PVOID  HwDeviceExtension,
   IN PWSTR  ParameterName,
 VideoPortGetRegistryParameters(
   IN PVOID  HwDeviceExtension,
   IN PWSTR  ParameterName,
@@ -965,7 +965,7 @@ VideoPortGetRegistryParameters(
 
 VPAPI
 PVOID
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortGetRomImage(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Unused1,
 VideoPortGetRomImage(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Unused1,
@@ -974,21 +974,21 @@ VideoPortGetRomImage(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortGetVersion(
   IN PVOID  HwDeviceExtension,
   IN OUT PVPOSVERSIONINFO  pVpOsVersionInfo);
 
 VPAPI
 VP_STATUS
 VideoPortGetVersion(
   IN PVOID  HwDeviceExtension,
   IN OUT PVPOSVERSIONINFO  pVpOsVersionInfo);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortGetVgaStatus(
   IN PVOID  HwDeviceExtension,
   OUT PULONG  VgaStatus);
 
 VPAPI
 ULONG
 VideoPortGetVgaStatus(
   IN PVOID  HwDeviceExtension,
   OUT PULONG  VgaStatus);
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortInitialize(
   IN PVOID  Argument1,
   IN PVOID  Argument2,
 VideoPortInitialize(
   IN PVOID  Argument1,
   IN PVOID  Argument2,
@@ -997,7 +997,7 @@ VideoPortInitialize(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortInt10(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_X86_BIOS_ARGUMENTS  BiosArguments);
 VideoPortInt10(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_X86_BIOS_ARGUMENTS  BiosArguments);
@@ -1029,7 +1029,7 @@ typedef enum _VP_LOCK_OPERATION {
 
 VPAPI
 PVOID
 
 VPAPI
 PVOID
-NTAPI
+DDKAPI
 VideoPortLockBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVOID  BaseAddress,
 VideoPortLockBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVOID  BaseAddress,
@@ -1038,7 +1038,7 @@ VideoPortLockBuffer(
 
 VPAPI
 BOOLEAN
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortLockPages(
   IN PVOID  HwDeviceExtension,
   IN OUT PVIDEO_REQUEST_PACKET  pVrp,
 VideoPortLockPages(
   IN PVOID  HwDeviceExtension,
   IN OUT PVIDEO_REQUEST_PACKET  pVrp,
@@ -1048,7 +1048,7 @@ VideoPortLockPages(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortLogError(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_REQUEST_PACKET  Vrp  OPTIONAL,
 VideoPortLogError(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_REQUEST_PACKET  Vrp  OPTIONAL,
@@ -1057,7 +1057,7 @@ VideoPortLogError(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortMapBankedMemory(
   IN PVOID  HwDeviceExtension,
   IN PHYSICAL_ADDRESS  PhysicalAddress,
 VideoPortMapBankedMemory(
   IN PVOID  HwDeviceExtension,
   IN PHYSICAL_ADDRESS  PhysicalAddress,
@@ -1071,7 +1071,7 @@ VideoPortMapBankedMemory(
 
 VPAPI
 PDMA
 
 VPAPI
 PDMA
-NTAPI
+DDKAPI
 VideoPortMapDmaMemory(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_REQUEST_PACKET  pVrp,
 VideoPortMapDmaMemory(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_REQUEST_PACKET  pVrp,
@@ -1084,7 +1084,7 @@ VideoPortMapDmaMemory(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortMapMemory(
   IN PVOID  HwDeviceExtension,
   IN PHYSICAL_ADDRESS  PhysicalAddress,
 VideoPortMapMemory(
   IN PVOID  HwDeviceExtension,
   IN PHYSICAL_ADDRESS  PhysicalAddress,
@@ -1094,7 +1094,7 @@ VideoPortMapMemory(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortMoveMemory(
   IN PVOID  Destination,
   IN PVOID  Source,
 VideoPortMoveMemory(
   IN PVOID  Destination,
   IN PVOID  Source,
@@ -1102,14 +1102,14 @@ VideoPortMoveMemory(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortPutDmaAdapter(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter);
 
 VPAPI
 LONGLONG
 VideoPortPutDmaAdapter(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter);
 
 VPAPI
 LONGLONG
-NTAPI
+DDKAPI
 VideoPortQueryPerformanceCounter(
   IN PVOID  HwDeviceExtension,
   OUT PLONGLONG  PerformanceFrequency  OPTIONAL);
 VideoPortQueryPerformanceCounter(
   IN PVOID  HwDeviceExtension,
   OUT PLONGLONG  PerformanceFrequency  OPTIONAL);
@@ -1124,7 +1124,7 @@ typedef enum _VIDEO_PORT_SERVICES {
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortQueryServices(
   IN PVOID HwDeviceExtension,
   IN VIDEO_PORT_SERVICES ServicesType,
 VideoPortQueryServices(
   IN PVOID HwDeviceExtension,
   IN VIDEO_PORT_SERVICES ServicesType,
@@ -1132,20 +1132,20 @@ VideoPortQueryServices(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortQuerySystemTime(
   OUT PLARGE_INTEGER  CurrentTime);
 
 VPAPI
 BOOLEAN
 VideoPortQuerySystemTime(
   OUT PLARGE_INTEGER  CurrentTime);
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortIsNoVesa(
     VOID
 );
 
 VPAPI
 BOOLEAN
 VideoPortIsNoVesa(
     VOID
 );
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortQueueDpc(
   IN PVOID  HwDeviceExtension,
   IN PMINIPORT_DPC_ROUTINE  CallbackRoutine,
 VideoPortQueueDpc(
   IN PVOID  HwDeviceExtension,
   IN PMINIPORT_DPC_ROUTINE  CallbackRoutine,
@@ -1153,7 +1153,7 @@ VideoPortQueueDpc(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReadPortBufferUchar(
   IN PUCHAR  Port,
   OUT PUCHAR  Buffer,
 VideoPortReadPortBufferUchar(
   IN PUCHAR  Port,
   OUT PUCHAR  Buffer,
@@ -1161,7 +1161,7 @@ VideoPortReadPortBufferUchar(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReadPortBufferUlong(
   IN PULONG  Port,
   OUT PULONG  Buffer,
 VideoPortReadPortBufferUlong(
   IN PULONG  Port,
   OUT PULONG  Buffer,
@@ -1169,7 +1169,7 @@ VideoPortReadPortBufferUlong(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReadPortBufferUshort(
   IN PUSHORT  Port,
   OUT PUSHORT  Buffer,
 VideoPortReadPortBufferUshort(
   IN PUSHORT  Port,
   OUT PUSHORT  Buffer,
@@ -1177,25 +1177,25 @@ VideoPortReadPortBufferUshort(
 
 VPAPI
 UCHAR
 
 VPAPI
 UCHAR
-NTAPI
+DDKAPI
 VideoPortReadPortUchar(
   IN PUCHAR  Port);
 
 VPAPI
 ULONG
 VideoPortReadPortUchar(
   IN PUCHAR  Port);
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortReadPortUlong(
   IN PULONG  Port);
 
 VPAPI
 USHORT
 VideoPortReadPortUlong(
   IN PULONG  Port);
 
 VPAPI
 USHORT
-NTAPI
+DDKAPI
 VideoPortReadPortUshort(
   IN PUSHORT  Port);
 
 VPAPI
 VOID
 VideoPortReadPortUshort(
   IN PUSHORT  Port);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReadRegisterBufferUchar(
   IN PUCHAR  Register,
   OUT PUCHAR  Buffer,
 VideoPortReadRegisterBufferUchar(
   IN PUCHAR  Register,
   OUT PUCHAR  Buffer,
@@ -1203,7 +1203,7 @@ VideoPortReadRegisterBufferUchar(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReadRegisterBufferUlong(
   IN PULONG  Register,
   OUT PULONG  Buffer,
 VideoPortReadRegisterBufferUlong(
   IN PULONG  Register,
   OUT PULONG  Buffer,
@@ -1211,7 +1211,7 @@ VideoPortReadRegisterBufferUlong(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReadRegisterBufferUshort(
   IN PUSHORT  Register,
   OUT PUSHORT  Buffer,
 VideoPortReadRegisterBufferUshort(
   IN PUSHORT  Register,
   OUT PUSHORT  Buffer,
@@ -1219,39 +1219,39 @@ VideoPortReadRegisterBufferUshort(
 
 VPAPI
 UCHAR
 
 VPAPI
 UCHAR
-NTAPI
+DDKAPI
 VideoPortReadRegisterUchar(
   IN PUCHAR  Register);
 
 VPAPI
 ULONG
 VideoPortReadRegisterUchar(
   IN PUCHAR  Register);
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortReadRegisterUlong(
   IN PULONG  Register);
 
 VPAPI
 USHORT
 VideoPortReadRegisterUlong(
   IN PULONG  Register);
 
 VPAPI
 USHORT
-NTAPI
+DDKAPI
 VideoPortReadRegisterUshort(
   IN PUSHORT  Register);
 
 VPAPI
 LONG
 VideoPortReadRegisterUshort(
   IN PUSHORT  Register);
 
 VPAPI
 LONG
-NTAPI
+DDKAPI
 VideoPortReadStateEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 VOID
 VideoPortReadStateEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReleaseBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Buffer);
 
 VPAPI
 VOID
 VideoPortReleaseBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Buffer);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReleaseCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
 VideoPortReleaseCommonBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
@@ -1262,13 +1262,13 @@ VideoPortReleaseCommonBuffer(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReleaseDeviceLock(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VOID
 VideoPortReleaseDeviceLock(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReleaseSpinLock(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock,
 VideoPortReleaseSpinLock(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock,
@@ -1276,14 +1276,14 @@ VideoPortReleaseSpinLock(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortReleaseSpinLockFromDpcLevel(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock);
 
 VPAPI
 BOOLEAN
 VideoPortReleaseSpinLockFromDpcLevel(
   IN PVOID  HwDeviceExtension,
   IN PSPIN_LOCK  SpinLock);
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortScanRom(
   PVOID  HwDeviceExtension,
   PUCHAR  RomBase,
 VideoPortScanRom(
   PVOID  HwDeviceExtension,
   PUCHAR  RomBase,
@@ -1292,7 +1292,7 @@ VideoPortScanRom(
 
 VPAPI
 ULONG
 
 VPAPI
 ULONG
-NTAPI
+DDKAPI
 VideoPortSetBusData(
   IN PVOID  HwDeviceExtension,
   IN BUS_DATA_TYPE  BusDataType,
 VideoPortSetBusData(
   IN PVOID  HwDeviceExtension,
   IN BUS_DATA_TYPE  BusDataType,
@@ -1303,7 +1303,7 @@ VideoPortSetBusData(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortSetBytesUsed(
   IN PVOID  HwDeviceExtension,
   IN OUT PDMA  pDma,
 VideoPortSetBytesUsed(
   IN PVOID  HwDeviceExtension,
   IN OUT PDMA  pDma,
@@ -1311,7 +1311,7 @@ VideoPortSetBytesUsed(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortSetDmaContext(
   IN PVOID  HwDeviceExtension,
   OUT PDMA  pDma,
 VideoPortSetDmaContext(
   IN PVOID  HwDeviceExtension,
   OUT PDMA  pDma,
@@ -1319,14 +1319,14 @@ VideoPortSetDmaContext(
 
 VPAPI
 LONG
 
 VPAPI
 LONG
-NTAPI
+DDKAPI
 VideoPortSetEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 VP_STATUS
 VideoPortSetEvent(
   IN PVOID  HwDeviceExtension,
   IN PEVENT  pEvent);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortSetRegistryParameters(
   IN PVOID  HwDeviceExtension,
   IN PWSTR  ValueName,
 VideoPortSetRegistryParameters(
   IN PVOID  HwDeviceExtension,
   IN PWSTR  ValueName,
@@ -1335,7 +1335,7 @@ VideoPortSetRegistryParameters(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortSetTrappedEmulatorPorts(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumAccessRanges,
 VideoPortSetTrappedEmulatorPorts(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumAccessRanges,
@@ -1343,20 +1343,20 @@ VideoPortSetTrappedEmulatorPorts(
 
 VPAPI
 BOOLEAN
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortSignalDmaComplete(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDmaHandle);
 
 VPAPI
 VOID
 VideoPortSignalDmaComplete(
   IN PVOID  HwDeviceExtension,
   IN PDMA  pDmaHandle);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortStallExecution(
   IN ULONG  Microseconds);
 
 VPAPI
 VP_STATUS
 VideoPortStallExecution(
   IN ULONG  Microseconds);
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortStartDma(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
 VideoPortStartDma(
   IN PVOID  HwDeviceExtension,
   IN PVP_DMA_ADAPTER  VpDmaAdapter,
@@ -1369,13 +1369,13 @@ VideoPortStartDma(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortStartTimer(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VOID
 VideoPortStartTimer(
   IN PVOID  HwDeviceExtension);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortStopTimer(
   IN PVOID  HwDeviceExtension);
 
 VideoPortStopTimer(
   IN PVOID  HwDeviceExtension);
 
@@ -1388,7 +1388,7 @@ typedef enum VIDEO_SYNCHRONIZE_PRIORITY {
 
 VPAPI
 BOOLEAN
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortSynchronizeExecution(
   IN PVOID  HwDeviceExtension,
   IN VIDEO_SYNCHRONIZE_PRIORITY  Priority,
 VideoPortSynchronizeExecution(
   IN PVOID  HwDeviceExtension,
   IN VIDEO_SYNCHRONIZE_PRIORITY  Priority,
@@ -1397,21 +1397,21 @@ VideoPortSynchronizeExecution(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortUnLockBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Mdl);
 
 VPAPI
 BOOLEAN
 VideoPortUnLockBuffer(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Mdl);
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortUnlockPages(
   IN PVOID  hwDeviceExtension,
   IN OUT PDMA  pDma);
 
 VPAPI
 BOOLEAN
 VideoPortUnlockPages(
   IN PVOID  hwDeviceExtension,
   IN OUT PDMA  pDma);
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortUnmapDmaMemory(
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualAddress,
 VideoPortUnmapDmaMemory(
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualAddress,
@@ -1420,7 +1420,7 @@ VideoPortUnmapDmaMemory(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortUnmapMemory(
   IN PVOID  HwDeviceExtension,
   IN OUT PVOID  VirtualAddress,
 VideoPortUnmapMemory(
   IN PVOID  HwDeviceExtension,
   IN OUT PVOID  VirtualAddress,
@@ -1428,7 +1428,7 @@ VideoPortUnmapMemory(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortVerifyAccessRanges(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumAccessRanges,
 VideoPortVerifyAccessRanges(
   IN PVOID  HwDeviceExtension,
   IN ULONG  NumAccessRanges,
@@ -1436,7 +1436,7 @@ VideoPortVerifyAccessRanges(
 
 VPAPI
 VP_STATUS
 
 VPAPI
 VP_STATUS
-NTAPI
+DDKAPI
 VideoPortWaitForSingleObject(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Object,
 VideoPortWaitForSingleObject(
   IN PVOID  HwDeviceExtension,
   IN PVOID  Object,
@@ -1444,7 +1444,7 @@ VideoPortWaitForSingleObject(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWritePortBufferUchar(
   IN PUCHAR  Port,
   IN PUCHAR  Buffer,
 VideoPortWritePortBufferUchar(
   IN PUCHAR  Port,
   IN PUCHAR  Buffer,
@@ -1452,7 +1452,7 @@ VideoPortWritePortBufferUchar(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWritePortBufferUlong(
   IN PULONG  Port,
   IN PULONG  Buffer,
 VideoPortWritePortBufferUlong(
   IN PULONG  Port,
   IN PULONG  Buffer,
@@ -1460,7 +1460,7 @@ VideoPortWritePortBufferUlong(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWritePortBufferUshort(
   IN PUSHORT  Port,
   IN PUSHORT  Buffer,
 VideoPortWritePortBufferUshort(
   IN PUSHORT  Port,
   IN PUSHORT  Buffer,
@@ -1468,28 +1468,28 @@ VideoPortWritePortBufferUshort(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWritePortUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 VPAPI
 VOID
 VideoPortWritePortUchar(
   IN PUCHAR  Port,
   IN UCHAR  Value);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWritePortUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 VPAPI
 VOID
 VideoPortWritePortUlong(
   IN PULONG  Port,
   IN ULONG  Value);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWritePortUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 VPAPI
 VOID
 VideoPortWritePortUshort(
   IN PUSHORT  Port,
   IN USHORT  Value);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWriteRegisterBufferUchar(
   IN PUCHAR  Register,
   IN PUCHAR  Buffer,
 VideoPortWriteRegisterBufferUchar(
   IN PUCHAR  Register,
   IN PUCHAR  Buffer,
@@ -1497,7 +1497,7 @@ VideoPortWriteRegisterBufferUchar(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWriteRegisterBufferUlong(
   IN PULONG  Register,
   IN PULONG  Buffer,
 VideoPortWriteRegisterBufferUlong(
   IN PULONG  Register,
   IN PULONG  Buffer,
@@ -1505,7 +1505,7 @@ VideoPortWriteRegisterBufferUlong(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWriteRegisterBufferUshort(
   IN PUSHORT  Register,
   IN PUSHORT  Buffer,
 VideoPortWriteRegisterBufferUshort(
   IN PUSHORT  Register,
   IN PUSHORT  Buffer,
@@ -1513,35 +1513,35 @@ VideoPortWriteRegisterBufferUshort(
 
 VPAPI
 VOID
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWriteRegisterUchar(
   IN PUCHAR  Register,
   IN UCHAR  Value);
 
 VPAPI
 VOID
 VideoPortWriteRegisterUchar(
   IN PUCHAR  Register,
   IN UCHAR  Value);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWriteRegisterUlong(
   IN PULONG  Register,
   IN ULONG  Value);
 
 VPAPI
 VOID
 VideoPortWriteRegisterUlong(
   IN PULONG  Register,
   IN ULONG  Value);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortWriteRegisterUshort(
   IN PUSHORT  Register,
   IN USHORT  Value);
 
 VPAPI
 VOID
 VideoPortWriteRegisterUshort(
   IN PUSHORT  Register,
   IN USHORT  Value);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortZeroDeviceMemory(
   IN PVOID  Destination,
   IN ULONG  Length);
 
 VPAPI
 VOID
 VideoPortZeroDeviceMemory(
   IN PVOID  Destination,
   IN ULONG  Length);
 
 VPAPI
 VOID
-NTAPI
+DDKAPI
 VideoPortZeroMemory(
   IN PVOID  Destination,
   IN ULONG  Length);
 VideoPortZeroMemory(
   IN PVOID  Destination,
   IN ULONG  Length);
index 0b6d36d..4a647ae 100644 (file)
@@ -41,59 +41,59 @@ typedef enum _VIDEO_PORT_CACHE_TYPE {
 } VIDEO_PORT_CACHE_TYPE;
 
 typedef BOOLEAN
 } VIDEO_PORT_CACHE_TYPE;
 
 typedef BOOLEAN
-(NTAPI *PAGP_COMMIT_PHYSICAL)(
+(DDKAPI *PAGP_COMMIT_PHYSICAL)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  PhysicalReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef PVOID
   IN PVOID  HwDeviceExtension,
   IN PVOID  PhysicalReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef PVOID
-(NTAPI *PAGP_COMMIT_VIRTUAL)(
+(DDKAPI *PAGP_COMMIT_VIRTUAL)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef VOID
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef VOID
-(NTAPI *PAGP_FREE_PHYSICAL)(
+(DDKAPI *PAGP_FREE_PHYSICAL)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  PhysicalReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef VOID
   IN PVOID  HwDeviceExtension,
   IN PVOID  PhysicalReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef VOID
-(NTAPI *PAGP_FREE_VIRTUAL)(
+(DDKAPI *PAGP_FREE_VIRTUAL)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef VOID
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualReserveContext,
   IN ULONG  Pages,
   IN ULONG  Offset);
 
 typedef VOID
-(NTAPI *PAGP_RELEASE_PHYSICAL)(
+(DDKAPI *PAGP_RELEASE_PHYSICAL)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  PhysicalReserveContext);
 
 typedef VOID
   IN PVOID  HwDeviceExtension,
   IN PVOID  PhysicalReserveContext);
 
 typedef VOID
-(NTAPI *PAGP_RELEASE_VIRTUAL)(
+(DDKAPI *PAGP_RELEASE_VIRTUAL)(
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualReserveContext);
 
 typedef PHYSICAL_ADDRESS
   IN PVOID  HwDeviceExtension,
   IN PVOID  VirtualReserveContext);
 
 typedef PHYSICAL_ADDRESS
-(NTAPI *PAGP_RESERVE_PHYSICAL)(
+(DDKAPI *PAGP_RESERVE_PHYSICAL)(
   IN PVOID  HwDeviceExtension,
   IN ULONG  Pages,
   IN VIDEO_PORT_CACHE_TYPE  Caching,
   OUT PVOID  *PhysicalReserveContext);
 
 typedef PVOID
   IN PVOID  HwDeviceExtension,
   IN ULONG  Pages,
   IN VIDEO_PORT_CACHE_TYPE  Caching,
   OUT PVOID  *PhysicalReserveContext);
 
 typedef PVOID
-(NTAPI *PAGP_RESERVE_VIRTUAL)(
+(DDKAPI *PAGP_RESERVE_VIRTUAL)(
   IN PVOID  HwDeviceExtension,
   IN HANDLE  ProcessHandle,
   IN PVOID  PhysicalReserveContext,
   OUT PVOID  *VirtualReserveContext);
 
 typedef BOOLEAN
   IN PVOID  HwDeviceExtension,
   IN HANDLE  ProcessHandle,
   IN PVOID  PhysicalReserveContext,
   OUT PVOID  *VirtualReserveContext);
 
 typedef BOOLEAN
-(NTAPI *PAGP_SET_RATE)(
+(DDKAPI *PAGP_SET_RATE)(
   IN PVOID  HwDeviceExtension,
   IN ULONG  AgpRate);
 
   IN PVOID  HwDeviceExtension,
   IN ULONG  AgpRate);
 
@@ -111,7 +111,7 @@ typedef struct _VIDEO_PORT_AGP_SERVICES {
 
 VPAPI
 BOOLEAN
 
 VPAPI
 BOOLEAN
-NTAPI
+DDKAPI
 VideoPortGetAgpServices(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_PORT_AGP_SERVICES  AgpServices);
 VideoPortGetAgpServices(
   IN PVOID  HwDeviceExtension,
   IN PVIDEO_PORT_AGP_SERVICES  AgpServices);
index 2742d75..7e97ea0 100644 (file)
 #include <excpt.h>
 #include <ntdef.h>
 #include <ntstatus.h>
 #include <excpt.h>
 #include <ntdef.h>
 #include <ntstatus.h>
-#include <ntiologc.h>
 
 #ifndef GUID_DEFINED
 #include <guiddef.h>
 
 #ifndef GUID_DEFINED
 #include <guiddef.h>
-#endif
-
-#ifdef _MAC
-#ifndef _INC_STRING
-#include <string.h>
-#endif /* _INC_STRING */
-#else
-#include <string.h>
-#endif /* _MAC */
-
-#ifndef _KTMTYPES_
-typedef GUID UOW, *PUOW;
-#endif
-
-typedef GUID *PGUID;
+#endif /* GUID_DEFINED */
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 #include <dpfilter.h>
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 #include <dpfilter.h>
@@ -106,12 +91,6 @@ extern "C" {
 
 #if defined(_MSC_VER)
 
 
 #if defined(_MSC_VER)
 
-/* Disable some warnings */
-#pragma warning(disable:4115) /* Named type definition in parentheses */
-#pragma warning(disable:4201) /* Nameless unions and structs */
-#pragma warning(disable:4214) /* Bit fields of other types than int */
-#pragma warning(disable:4820) /* Padding added, due to alignemnet requirement */
-
 /* Indicate if #pragma alloc_text() is supported */
 #if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)
 #define ALLOC_PRAGMA 1
 /* Indicate if #pragma alloc_text() is supported */
 #if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)
 #define ALLOC_PRAGMA 1
@@ -144,51 +123,17 @@ struct _IO_RESOURCE_DESCRIPTOR;
 typedef struct _OBJECT_TYPE *POBJECT_TYPE;
 typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
 typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
 typedef struct _OBJECT_TYPE *POBJECT_TYPE;
 typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
 typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
+typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
+typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; 
 typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
 typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
-typedef struct _EPROCESS *PEPROCESS;
 typedef struct _ETHREAD *PETHREAD;
 typedef struct _ETHREAD *PETHREAD;
+typedef struct _EPROCESS *PEPROCESS;
 typedef struct _IO_TIMER *PIO_TIMER;
 typedef struct _KINTERRUPT *PKINTERRUPT;
 typedef struct _KPROCESS *PKPROCESS;
 typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
 typedef struct _CONTEXT *PCONTEXT;
 
 typedef struct _IO_TIMER *PIO_TIMER;
 typedef struct _KINTERRUPT *PKINTERRUPT;
 typedef struct _KPROCESS *PKPROCESS;
 typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
 typedef struct _CONTEXT *PCONTEXT;
 
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && ( defined(_NTDDK_) || defined(_NTDRIVER_) || defined(_NTOSP_))
-typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
-#elif defined(_WDM_INCLUDED_)
-typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
-#else
-typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; 
-#endif
-
-#ifndef DEFINE_GUIDEX
-#ifdef _MSC_VER
-#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
-#else
-#define DEFINE_GUIDEX(name) EXTERN_C const GUID name
-#endif
-#endif /* DEFINE_GUIDEX */
-
-#ifndef STATICGUIDOF
-#define STATICGUIDOF(guid) STATIC_##guid
-#endif
-
-/* GUID Comparison */
-#ifndef __IID_ALIGNED__
-#define __IID_ALIGNED__
-#ifdef __cplusplus
-inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
-{
-    return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) && 
-             (*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
-}
-#else
-#define IsEqualGUIDAligned(guid1, guid2) \
-           ( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
-             (*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
-#endif /* __cplusplus */
-#endif /* !__IID_ALIGNED__ */
-
 
 /******************************************************************************
  *                           INTERLOCKED Functions                            *
 
 /******************************************************************************
  *                           INTERLOCKED Functions                            *
@@ -200,44 +145,42 @@ inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
 #if defined(__GNUC__)
 
 static __inline__ BOOLEAN
 #if defined(__GNUC__)
 
 static __inline__ BOOLEAN
-InterlockedBitTestAndSet(
-  IN LONG volatile *Base,
-  IN LONG Bit)
+InterlockedBitTestAndSet(IN LONG volatile *Base,
+                         IN LONG Bit)
 {
 #if defined(_M_IX86)
 {
 #if defined(_M_IX86)
-  LONG OldBit;
-  __asm__ __volatile__("lock "
-                       "btsl %2,%1\n\t"
-                       "sbbl %0,%0\n\t"
-                       :"=r" (OldBit),"+m" (*Base)
-                       :"Ir" (Bit)
-                       : "memory");
-  return OldBit;
+       LONG OldBit;
+       __asm__ __volatile__("lock "
+                            "btsl %2,%1\n\t"
+                            "sbbl %0,%0\n\t"
+                            :"=r" (OldBit),"+m" (*Base)
+                            :"Ir" (Bit)
+                            : "memory");
+       return OldBit;
 #else
 #else
-  return (_InterlockedOr(Base, 1 << Bit) >> Bit) & 1;
+       return (_InterlockedOr(Base, 1 << Bit) >> Bit) & 1;
 #endif
 }
 
 static __inline__ BOOLEAN
 #endif
 }
 
 static __inline__ BOOLEAN
-InterlockedBitTestAndReset(
-  IN LONG volatile *Base,
-  IN LONG Bit)
+InterlockedBitTestAndReset(IN LONG volatile *Base,
+                           IN LONG Bit)
 {
 #if defined(_M_IX86)
 {
 #if defined(_M_IX86)
-  LONG OldBit;
-  __asm__ __volatile__("lock "
-                       "btrl %2,%1\n\t"
-                       "sbbl %0,%0\n\t"
-                       :"=r" (OldBit),"+m" (*Base)
-                       :"Ir" (Bit)
-                       : "memory");
-  return OldBit;
+       LONG OldBit;
+       __asm__ __volatile__("lock "
+                            "btrl %2,%1\n\t"
+                            "sbbl %0,%0\n\t"
+                            :"=r" (OldBit),"+m" (*Base)
+                            :"Ir" (Bit)
+                            : "memory");
+       return OldBit;
 #else
 #else
-  return (_InterlockedAnd(Base, ~(1 << Bit)) >> Bit) & 1;
+       return (_InterlockedAnd(Base, ~(1 << Bit)) >> Bit) & 1;
 #endif
 }
 
 #endif
 }
 
-#endif /* defined(__GNUC__) */
+#endif
 
 #define BitScanForward _BitScanForward
 #define BitScanReverse _BitScanReverse
 
 #define BitScanForward _BitScanForward
 #define BitScanReverse _BitScanReverse
@@ -249,10 +192,6 @@ InterlockedBitTestAndReset(
 #define InterlockedBitTestAndReset _interlockedbittestandreset
 
 #ifdef _M_AMD64
 #define InterlockedBitTestAndReset _interlockedbittestandreset
 
 #ifdef _M_AMD64
-#define BitTest64 _bittest64
-#define BitTestAndComplement64 _bittestandcomplement64
-#define BitTestAndSet64 _bittestandset64
-#define BitTestAndReset64 _bittestandreset64
 #define InterlockedBitTestAndSet64 _interlockedbittestandset64
 #define InterlockedBitTestAndReset64 _interlockedbittestandreset64
 #endif
 #define InterlockedBitTestAndSet64 _interlockedbittestandset64
 #define InterlockedBitTestAndReset64 _interlockedbittestandreset64
 #endif
@@ -279,8 +218,8 @@ LONG
 FASTCALL
 InterlockedCompareExchange(
   IN OUT LONG volatile *Destination,
 FASTCALL
 InterlockedCompareExchange(
   IN OUT LONG volatile *Destination,
-  IN LONG Exchange,
-  IN LONG Comparand);
+  IN LONG  Exchange,
+  IN LONG  Comparand);
 
 NTKERNELAPI
 LONG
 
 NTKERNELAPI
 LONG
@@ -296,7 +235,7 @@ InterlockedExchangeAdd(
   IN OUT LONG volatile *Addend,
   IN LONG  Value);
 
   IN OUT LONG volatile *Addend,
   IN LONG  Value);
 
-#else /* !defined(NO_INTERLOCKED_INTRINSICS) */
+#else // !defined(NO_INTERLOCKED_INTRINSICS)
 
 #define InterlockedExchange _InterlockedExchange
 #define InterlockedIncrement _InterlockedIncrement
 
 #define InterlockedExchange _InterlockedExchange
 #define InterlockedIncrement _InterlockedIncrement
@@ -307,9 +246,9 @@ InterlockedExchangeAdd(
 #define InterlockedAnd _InterlockedAnd
 #define InterlockedXor _InterlockedXor
 
 #define InterlockedAnd _InterlockedAnd
 #define InterlockedXor _InterlockedXor
 
-#endif /* !defined(NO_INTERLOCKED_INTRINSICS) */
+#endif // !defined(NO_INTERLOCKED_INTRINSICS)
 
 
-#endif /* defined (_X86_) */
+#endif // defined (_X86_)
 
 #if !defined (_WIN64)
 /*
 
 #if !defined (_WIN64)
 /*
@@ -372,10 +311,10 @@ InterlockedExchangeAdd(
 FORCEINLINE
 LONG64
 InterlockedAdd64(
 FORCEINLINE
 LONG64
 InterlockedAdd64(
-  IN OUT LONG64 volatile *Addend,
-  IN LONG64 Value)
+    IN OUT LONG64 volatile *Addend,
+    IN LONG64 Value)
 {
 {
-  return InterlockedExchangeAdd64(Addend, Value) + Value;
+    return InterlockedExchangeAdd64(Addend, Value) + Value;
 }
 //#endif
 #endif
 }
 //#endif
 #endif
@@ -411,43 +350,43 @@ InterlockedAdd64(
 #define HASH_STRING_ALGORITHM_INVALID     0xffffffff
 
 typedef struct _RTL_BITMAP {
 #define HASH_STRING_ALGORITHM_INVALID     0xffffffff
 
 typedef struct _RTL_BITMAP {
-  ULONG SizeOfBitMap;
-  PULONG Buffer;
+    ULONG SizeOfBitMap;
+    PULONG Buffer;
 } RTL_BITMAP, *PRTL_BITMAP;
 
 typedef struct _RTL_BITMAP_RUN {
 } RTL_BITMAP, *PRTL_BITMAP;
 
 typedef struct _RTL_BITMAP_RUN {
-  ULONG StartingIndex;
-  ULONG NumberOfBits;
+    ULONG StartingIndex;
+    ULONG NumberOfBits;
 } RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
 
 typedef NTSTATUS
 } RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
 
 typedef NTSTATUS
-(NTAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
-  IN PWSTR ValueName,
-  IN ULONG ValueType,
-  IN PVOID ValueData,
-  IN ULONG ValueLength,
-  IN PVOID Context,
-  IN PVOID EntryContext);
+(DDKAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
+    IN PWSTR ValueName,
+    IN ULONG ValueType,
+    IN PVOID ValueData,
+    IN ULONG ValueLength,
+    IN PVOID Context,
+    IN PVOID EntryContext);
 
 typedef struct _RTL_QUERY_REGISTRY_TABLE {
 
 typedef struct _RTL_QUERY_REGISTRY_TABLE {
-  PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
-  ULONG Flags;
-  PCWSTR Name;
-  PVOID EntryContext;
-  ULONG DefaultType;
-  PVOID DefaultData;
-  ULONG DefaultLength;
+    PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
+    ULONG Flags;
+    PCWSTR Name;
+    PVOID EntryContext;
+    ULONG DefaultType;
+    PVOID DefaultData;
+    ULONG DefaultLength;
 } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
 
 typedef struct _TIME_FIELDS {
 } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
 
 typedef struct _TIME_FIELDS {
-  CSHORT Year;
-  CSHORT Month;
-  CSHORT Day;
-  CSHORT Hour;
-  CSHORT Minute;
-  CSHORT Second;
-  CSHORT Milliseconds;
-  CSHORT Weekday;
+    CSHORT Year;
+    CSHORT Month;
+    CSHORT Day;
+    CSHORT Hour;
+    CSHORT Minute;
+    CSHORT Second;
+    CSHORT Milliseconds;
+    CSHORT Weekday;
 } TIME_FIELDS, *PTIME_FIELDS;
 
 /* Slist Header */
 } TIME_FIELDS, *PTIME_FIELDS;
 
 /* Slist Header */
@@ -455,101 +394,60 @@ typedef struct _TIME_FIELDS {
 #define _SLIST_HEADER_
 
 #if defined(_WIN64)
 #define _SLIST_HEADER_
 
 #if defined(_WIN64)
-
+typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY *PSLIST_ENTRY;
 typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
 typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
-  struct _SLIST_ENTRY *Next;
-} SLIST_ENTRY, *PSLIST_ENTRY;
-
-typedef struct _SLIST_ENTRY32 {
-  ULONG Next;
-} SLIST_ENTRY32, *PSLIST_ENTRY32;
-
+       PSLIST_ENTRY Next;
+} SLIST_ENTRY;
 typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
 typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
-  struct {
-    ULONGLONG Alignment;
-    ULONGLONG Region;
-  } DUMMYSTRUCTNAME;
-  struct {
-    ULONGLONG Depth:16;
-    ULONGLONG Sequence:9;
-    ULONGLONG NextEntry:39;
-    ULONGLONG HeaderType:1;
-    ULONGLONG Init:1;
-    ULONGLONG Reserved:59;
-    ULONGLONG Region:3;
-  } Header8;
-  struct {
-    ULONGLONG Depth:16;
-    ULONGLONG Sequence:48;
-    ULONGLONG HeaderType:1;
-    ULONGLONG Init:1;
-    ULONGLONG Reserved:2;
-    ULONGLONG NextEntry:60;
-  } Header16;
-  struct {
-    ULONGLONG Depth:16;
-    ULONGLONG Sequence:48;
-    ULONGLONG HeaderType:1;
-    ULONGLONG Reserved:3;
-    ULONGLONG NextEntry:60;
-  } HeaderX64;
+    struct {
+        ULONGLONG Alignment;
+        ULONGLONG Region;
+    } DUMMYSTRUCTNAME;
+    struct {
+        ULONGLONG Depth:16;
+        ULONGLONG Sequence:9;
+        ULONGLONG NextEntry:39;
+        ULONGLONG HeaderType:1;
+        ULONGLONG Init:1;
+        ULONGLONG Reserved:59;
+        ULONGLONG Region:3;
+    } Header8;
+    struct {
+        ULONGLONG Depth:16;
+        ULONGLONG Sequence:48;
+        ULONGLONG HeaderType:1;
+        ULONGLONG Init:1;
+        ULONGLONG Reserved:2;
+        ULONGLONG NextEntry:60;
+    } Header16;
 } SLIST_HEADER, *PSLIST_HEADER;
 } SLIST_HEADER, *PSLIST_HEADER;
-
-typedef union _SLIST_HEADER32 {
-  ULONGLONG Alignment;
-  struct {
-    SLIST_ENTRY32 Next;
-    USHORT Depth;
-    USHORT Sequence;
-  } DUMMYSTRUCTNAME;
-} SLIST_HEADER32, *PSLIST_HEADER32;
-
 #else
 #else
-
 #define SLIST_ENTRY SINGLE_LIST_ENTRY
 #define _SLIST_ENTRY _SINGLE_LIST_ENTRY
 #define PSLIST_ENTRY PSINGLE_LIST_ENTRY
 #define SLIST_ENTRY SINGLE_LIST_ENTRY
 #define _SLIST_ENTRY _SINGLE_LIST_ENTRY
 #define PSLIST_ENTRY PSINGLE_LIST_ENTRY
-
-typedef SLIST_ENTRY SLIST_ENTRY32, *PSLIST_ENTRY32;
-
 typedef union _SLIST_HEADER {
 typedef union _SLIST_HEADER {
-  ULONGLONG Alignment;
-  struct {
-    SLIST_ENTRY Next;
-    USHORT Depth;
-    USHORT Sequence;
-  } DUMMYSTRUCTNAME;
+    ULONGLONG Alignment;
+    struct {
+        SLIST_ENTRY Next;
+        USHORT Depth;
+        USHORT Sequence;
+    } DUMMYSTRUCTNAME;
 } SLIST_HEADER, *PSLIST_HEADER;
 } SLIST_HEADER, *PSLIST_HEADER;
-
-typedef SLIST_HEADER SLIST_HEADER32, *PSLIST_HEADER32;
-
-#endif /* defined(_WIN64) */
+#endif
 
 #endif /* _SLIST_HEADER_ */
 
 
 #endif /* _SLIST_HEADER_ */
 
-/* MS definition is broken! */
-extern BOOLEAN NTSYSAPI NlsMbCodePageTag;
-extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag;
+
+/* HACK HACK HACK - GCC (or perhaps LD) is messing this up */
+#if defined(_NTSYSTEM_) || defined(__GNUC__)
 #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
 #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
 #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
 #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
-
-#define SHORT_LEAST_SIGNIFICANT_BIT       0
-#define SHORT_MOST_SIGNIFICANT_BIT        1
-
-#define LONG_LEAST_SIGNIFICANT_BIT        0
-#define LONG_3RD_MOST_SIGNIFICANT_BIT     1
-#define LONG_2ND_MOST_SIGNIFICANT_BIT     2
-#define LONG_MOST_SIGNIFICANT_BIT         3
-
-#define RTLVERLIB_DDI(x) Wdmlib##x
-
-typedef BOOLEAN
-(*PFN_RTL_IS_NTDDI_VERSION_AVAILABLE)(
-  IN ULONG Version);
-
-typedef BOOLEAN
-(*PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(
-  IN ULONG Version);
+#else
+#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag)
+#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag)
+#endif /* _NT_SYSTEM */
+extern BOOLEAN NTSYSAPI NLS_MB_CODE_PAGE_TAG;
+extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG;
 
 
 /******************************************************************************
 
 
 /******************************************************************************
@@ -560,139 +458,39 @@ typedef UCHAR KIRQL, *PKIRQL;
 typedef CCHAR KPROCESSOR_MODE;
 typedef LONG KPRIORITY;
 
 typedef CCHAR KPROCESSOR_MODE;
 typedef LONG KPRIORITY;
 
+typedef ULONG EXECUTION_STATE;
+
 typedef enum _MODE {
   KernelMode,
   UserMode,
   MaximumMode
 } MODE;
 
 typedef enum _MODE {
   KernelMode,
   UserMode,
   MaximumMode
 } MODE;
 
-#define CACHE_FULLY_ASSOCIATIVE 0xFF
-#define MAXIMUM_SUSPEND_COUNT   MAXCHAR
-
-#define EVENT_QUERY_STATE (0x0001)
-#define EVENT_MODIFY_STATE (0x0002)
-#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
-
-#define LTP_PC_SMT 0x1
-
-#if (NTDDI_VERSION < NTDDI_WIN7) || defined(_X86_) || !defined(NT_PROCESSOR_GROUPS)
-#define SINGLE_GROUP_LEGACY_API        1
-#endif
-
-#define SEMAPHORE_QUERY_STATE (0x0001)
-#define SEMAPHORE_MODIFY_STATE (0x0002)
-#define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
-
-typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP {
-  RelationProcessorCore,
-  RelationNumaNode,
-  RelationCache,
-  RelationProcessorPackage,
-  RelationGroup,
-  RelationAll = 0xffff
-} LOGICAL_PROCESSOR_RELATIONSHIP;
-
-typedef enum _PROCESSOR_CACHE_TYPE {
-  CacheUnified,
-  CacheInstruction,
-  CacheData,
-  CacheTrace
-} PROCESSOR_CACHE_TYPE;
-
-typedef struct _CACHE_DESCRIPTOR {
-  UCHAR Level;
-  UCHAR Associativity;
-  USHORT LineSize;
-  ULONG Size;
-  PROCESSOR_CACHE_TYPE Type;
-} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
-
-typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
-  ULONG_PTR ProcessorMask;
-  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-  union {
-    struct {
-      UCHAR Flags;
-    } ProcessorCore;
-    struct {
-      ULONG NodeNumber;
-    } NumaNode;
-    CACHE_DESCRIPTOR Cache;
-    ULONGLONG  Reserved[2];
-  } DUMMYUNIONNAME;
-} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
-
-typedef struct _PROCESSOR_RELATIONSHIP {
-  UCHAR Flags;
-  UCHAR Reserved[21];
-  USHORT GroupCount;
-  GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY];
-} PROCESSOR_RELATIONSHIP, *PPROCESSOR_RELATIONSHIP;
-
-typedef struct _NUMA_NODE_RELATIONSHIP {
-  ULONG NodeNumber;
-  UCHAR Reserved[20];
-  GROUP_AFFINITY GroupMask;
-} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP;
-
-typedef struct _CACHE_RELATIONSHIP {
-  UCHAR Level;
-  UCHAR Associativity;
-  USHORT LineSize;
-  ULONG CacheSize;
-  PROCESSOR_CACHE_TYPE Type;
-  UCHAR Reserved[20];
-  GROUP_AFFINITY GroupMask;
-} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP;
-
-typedef struct _PROCESSOR_GROUP_INFO {
-  UCHAR MaximumProcessorCount;
-  UCHAR ActiveProcessorCount;
-  UCHAR Reserved[38];
-  KAFFINITY ActiveProcessorMask;
-} PROCESSOR_GROUP_INFO, *PPROCESSOR_GROUP_INFO;
-
-typedef struct _GROUP_RELATIONSHIP {
-  USHORT MaximumGroupCount;
-  USHORT ActiveGroupCount;
-  UCHAR Reserved[20];
-  PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY];
-} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP;
-
-typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
-  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-  ULONG Size;
-  union {
-    PROCESSOR_RELATIONSHIP Processor;
-    NUMA_NODE_RELATIONSHIP NumaNode;
-    CACHE_RELATIONSHIP Cache;
-    GROUP_RELATIONSHIP Group;
-  } DUMMYUNIONNAME;
-} SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;;
-
 /* Processor features */
 /* Processor features */
-#define PF_FLOATING_POINT_PRECISION_ERRATA  0
-#define PF_FLOATING_POINT_EMULATED          1
-#define PF_COMPARE_EXCHANGE_DOUBLE          2
-#define PF_MMX_INSTRUCTIONS_AVAILABLE       3
-#define PF_PPC_MOVEMEM_64BIT_OK             4
-#define PF_ALPHA_BYTE_INSTRUCTIONS          5
-#define PF_XMMI_INSTRUCTIONS_AVAILABLE      6
-#define PF_3DNOW_INSTRUCTIONS_AVAILABLE     7
-#define PF_RDTSC_INSTRUCTION_AVAILABLE      8
-#define PF_PAE_ENABLED                      9
-#define PF_XMMI64_INSTRUCTIONS_AVAILABLE   10
-#define PF_SSE_DAZ_MODE_AVAILABLE          11
-#define PF_NX_ENABLED                      12
-#define PF_SSE3_INSTRUCTIONS_AVAILABLE     13
-#define PF_COMPARE_EXCHANGE128             14
-#define PF_COMPARE64_EXCHANGE128           15
-#define PF_CHANNELS_ENABLED                16
-#define PF_XSAVE_ENABLED                   17
+#define PF_FLOATING_POINT_PRECISION_ERRATA  0   
+#define PF_FLOATING_POINT_EMULATED          1   
+#define PF_COMPARE_EXCHANGE_DOUBLE          2   
+#define PF_MMX_INSTRUCTIONS_AVAILABLE       3   
+#define PF_PPC_MOVEMEM_64BIT_OK             4   
+#define PF_ALPHA_BYTE_INSTRUCTIONS          5   
+#define PF_XMMI_INSTRUCTIONS_AVAILABLE      6   
+#define PF_3DNOW_INSTRUCTIONS_AVAILABLE     7   
+#define PF_RDTSC_INSTRUCTION_AVAILABLE      8   
+#define PF_PAE_ENABLED                      9   
+#define PF_XMMI64_INSTRUCTIONS_AVAILABLE   10   
+#define PF_SSE_DAZ_MODE_AVAILABLE          11   
+#define PF_NX_ENABLED                      12   
+#define PF_SSE3_INSTRUCTIONS_AVAILABLE     13   
+#define PF_COMPARE_EXCHANGE128             14   
+#define PF_COMPARE64_EXCHANGE128           15   
+#define PF_CHANNELS_ENABLED                16   
+#define PF_XSAVE_ENABLED                   17   
 
 
+#define MAXIMUM_SUPPORTED_EXTENSION  512
 #define MAXIMUM_WAIT_OBJECTS              64
 
 #define MAXIMUM_WAIT_OBJECTS              64
 
-#define ASSERT_APC(Object) NT_ASSERT((Object)->Type == ApcObject)
+#define ASSERT_APC(Object) \
+    ASSERT((Object)->Type == ApcObject)
 
 #define ASSERT_DPC(Object) \
     ASSERT(((Object)->Type == 0) || \
 
 #define ASSERT_DPC(Object) \
     ASSERT(((Object)->Type == 0) || \
@@ -700,25 +498,25 @@ typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
            ((Object)->Type == ThreadedDpcObject))
 
 #define ASSERT_GATE(object) \
            ((Object)->Type == ThreadedDpcObject))
 
 #define ASSERT_GATE(object) \
-    NT_ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == GateObject) || \
-              (((object)->Header.Type & KOBJECT_TYPE_MASK) == EventSynchronizationObject))
+    ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == GateObject) || \
+           (((object)->Header.Type & KOBJECT_TYPE_MASK) == EventSynchronizationObject))
 
 #define ASSERT_DEVICE_QUEUE(Object) \
 
 #define ASSERT_DEVICE_QUEUE(Object) \
-    NT_ASSERT((Object)->Type == DeviceQueueObject)
+    ASSERT((Object)->Type == DeviceQueueObject)
 
 #define ASSERT_TIMER(E) \
 
 #define ASSERT_TIMER(E) \
-    NT_ASSERT(((E)->Header.Type == TimerNotificationObject) || \
-              ((E)->Header.Type == TimerSynchronizationObject))
+    ASSERT(((E)->Header.Type == TimerNotificationObject) || \
+           ((E)->Header.Type == TimerSynchronizationObject))
 
 #define ASSERT_MUTANT(E) \
 
 #define ASSERT_MUTANT(E) \
-    NT_ASSERT((E)->Header.Type == MutantObject)
+    ASSERT((E)->Header.Type == MutantObject)
 
 #define ASSERT_SEMAPHORE(E) \
 
 #define ASSERT_SEMAPHORE(E) \
-    NT_ASSERT((E)->Header.Type == SemaphoreObject)
+    ASSERT((E)->Header.Type == SemaphoreObject)
 
 #define ASSERT_EVENT(E) \
 
 #define ASSERT_EVENT(E) \
-    NT_ASSERT(((E)->Header.Type == NotificationEvent) || \
-              ((E)->Header.Type == SynchronizationEvent))
+    ASSERT(((E)->Header.Type == NotificationEvent) || \
+           ((E)->Header.Type == SynchronizationEvent))
 
 #define DPC_NORMAL 0
 #define DPC_THREADED 1
 
 #define DPC_NORMAL 0
 #define DPC_THREADED 1
@@ -728,9 +526,6 @@ typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
 #define GM_LOCK_WAITER_WOKEN 0x2
 #define GM_LOCK_WAITER_INC   0x4
 
 #define GM_LOCK_WAITER_WOKEN 0x2
 #define GM_LOCK_WAITER_INC   0x4
 
-#define LOCK_QUEUE_WAIT_BIT               0
-#define LOCK_QUEUE_OWNER_BIT              1
-
 #define LOCK_QUEUE_WAIT                   1
 #define LOCK_QUEUE_OWNER                  2
 #define LOCK_QUEUE_TIMER_LOCK_SHIFT       4
 #define LOCK_QUEUE_WAIT                   1
 #define LOCK_QUEUE_OWNER                  2
 #define LOCK_QUEUE_TIMER_LOCK_SHIFT       4
@@ -754,59 +549,43 @@ typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
 #define MAXIMUM_PROCESSORS          MAXIMUM_PROC_PER_GROUP
 
 /* Exception Records */
 #define MAXIMUM_PROCESSORS          MAXIMUM_PROC_PER_GROUP
 
 /* Exception Records */
-#define EXCEPTION_NONCONTINUABLE     1
+#define EXCEPTION_NONCONTINUABLE 1
 #define EXCEPTION_MAXIMUM_PARAMETERS 15
 
 #define EXCEPTION_MAXIMUM_PARAMETERS 15
 
-#define EXCEPTION_DIVIDED_BY_ZERO       0
-#define EXCEPTION_DEBUG                 1
-#define EXCEPTION_NMI                   2
-#define EXCEPTION_INT3                  3
-#define EXCEPTION_BOUND_CHECK           5
-#define EXCEPTION_INVALID_OPCODE        6
-#define EXCEPTION_NPX_NOT_AVAILABLE     7
-#define EXCEPTION_DOUBLE_FAULT          8
-#define EXCEPTION_NPX_OVERRUN           9
-#define EXCEPTION_INVALID_TSS           0x0A
-#define EXCEPTION_SEGMENT_NOT_PRESENT   0x0B
-#define EXCEPTION_STACK_FAULT           0x0C
-#define EXCEPTION_GP_FAULT              0x0D
-#define EXCEPTION_RESERVED_TRAP         0x0F
-#define EXCEPTION_NPX_ERROR             0x010
-#define EXCEPTION_ALIGNMENT_CHECK       0x011
-
 typedef struct _EXCEPTION_RECORD {
 typedef struct _EXCEPTION_RECORD {
-  NTSTATUS ExceptionCode;
-  ULONG ExceptionFlags;
-  struct _EXCEPTION_RECORD *ExceptionRecord;
-  PVOID ExceptionAddress;
-  ULONG NumberParameters;
-  ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
+    NTSTATUS ExceptionCode;
+    ULONG ExceptionFlags;
+    struct _EXCEPTION_RECORD *ExceptionRecord;
+    PVOID ExceptionAddress;
+    ULONG NumberParameters;
+    ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
 } EXCEPTION_RECORD, *PEXCEPTION_RECORD;
 
 typedef struct _EXCEPTION_RECORD32 {
 } EXCEPTION_RECORD, *PEXCEPTION_RECORD;
 
 typedef struct _EXCEPTION_RECORD32 {
-  NTSTATUS ExceptionCode;
-  ULONG ExceptionFlags;
-  ULONG ExceptionRecord;
-  ULONG ExceptionAddress;
-  ULONG NumberParameters;
-  ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
+    NTSTATUS ExceptionCode;
+    ULONG ExceptionFlags;
+    ULONG ExceptionRecord;
+    ULONG ExceptionAddress;
+    ULONG NumberParameters;
+    ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
 } EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
 
 typedef struct _EXCEPTION_RECORD64 {
 } EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
 
 typedef struct _EXCEPTION_RECORD64 {
-  NTSTATUS ExceptionCode;
-  ULONG ExceptionFlags;
-  ULONG64 ExceptionRecord;
-  ULONG64 ExceptionAddress;
-  ULONG NumberParameters;
-  ULONG __unusedAlignment;
-  ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
+    NTSTATUS ExceptionCode;
+    ULONG ExceptionFlags;
+    ULONG64 ExceptionRecord;
+    ULONG64 ExceptionAddress;
+    ULONG NumberParameters;
+    ULONG __unusedAlignment;
+    ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
 } EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
 
 typedef struct _EXCEPTION_POINTERS {
 } EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
 
 typedef struct _EXCEPTION_POINTERS {
-  PEXCEPTION_RECORD ExceptionRecord;
-  PCONTEXT ContextRecord;
+    PEXCEPTION_RECORD ExceptionRecord;
+    PCONTEXT ContextRecord;
 } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
 
 } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
 
+
 typedef enum _KBUGCHECK_CALLBACK_REASON {
   KbCallbackInvalid,
   KbCallbackReserved1,
 typedef enum _KBUGCHECK_CALLBACK_REASON {
   KbCallbackInvalid,
   KbCallbackReserved1,
@@ -818,56 +597,19 @@ typedef enum _KBUGCHECK_CALLBACK_REASON {
 struct _KBUGCHECK_REASON_CALLBACK_RECORD;
 
 typedef VOID
 struct _KBUGCHECK_REASON_CALLBACK_RECORD;
 
 typedef VOID
-(NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(
-  IN KBUGCHECK_CALLBACK_REASON Reason,
-  IN struct _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
-  IN OUT PVOID ReasonSpecificData,
-  IN ULONG ReasonSpecificDataLength);
-typedef KBUGCHECK_REASON_CALLBACK_ROUTINE *PKBUGCHECK_REASON_CALLBACK_ROUTINE;
-
-typedef struct _KBUGCHECK_ADD_PAGES {
-  IN OUT PVOID Context;
-  IN OUT ULONG Flags;
-  IN ULONG BugCheckCode;
-  OUT ULONG_PTR Address;
-  OUT ULONG_PTR Count;
-} KBUGCHECK_ADD_PAGES, *PKBUGCHECK_ADD_PAGES;
-
-typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA {
-  IN PVOID InBuffer;
-  IN ULONG InBufferLength;
-  IN ULONG MaximumAllowed;
-  OUT GUID Guid;
-  OUT PVOID OutBuffer;
-  OUT ULONG OutBufferLength;
-} KBUGCHECK_SECONDARY_DUMP_DATA, *PKBUGCHECK_SECONDARY_DUMP_DATA;
-
-typedef enum _KBUGCHECK_DUMP_IO_TYPE {
-  KbDumpIoInvalid,
-  KbDumpIoHeader,
-  KbDumpIoBody,
-  KbDumpIoSecondaryData,
-  KbDumpIoComplete
-} KBUGCHECK_DUMP_IO_TYPE;
-
-typedef struct _KBUGCHECK_DUMP_IO {
-  IN ULONG64 Offset;
-  IN PVOID Buffer;
-  IN ULONG BufferLength;
-  IN KBUGCHECK_DUMP_IO_TYPE Type;
-} KBUGCHECK_DUMP_IO, *PKBUGCHECK_DUMP_IO;
-
-#define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS         0x00000001UL
-#define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS        0x00000002UL
-#define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST 0x80000000UL
+(DDKAPI *PKBUGCHECK_REASON_CALLBACK_ROUTINE)(
+  IN KBUGCHECK_CALLBACK_REASON  Reason,
+  IN struct _KBUGCHECK_REASON_CALLBACK_RECORD  *Record,
+  IN OUT PVOID  ReasonSpecificData,
+  IN ULONG  ReasonSpecificDataLength);
 
 typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
 
 typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
-  LIST_ENTRY Entry;
-  PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine;
-  PUCHAR Component;
-  ULONG_PTR Checksum;
-  KBUGCHECK_CALLBACK_REASON Reason;
-  UCHAR State;
+  LIST_ENTRY  Entry;
+  PKBUGCHECK_REASON_CALLBACK_ROUTINE  CallbackRoutine;
+  PUCHAR  Component;
+  ULONG_PTR  Checksum;
+  KBUGCHECK_CALLBACK_REASON  Reason;
+  UCHAR  State;
 } KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD;
 
 typedef enum _KBUGCHECK_BUFFER_DUMP_STATE {
 } KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD;
 
 typedef enum _KBUGCHECK_BUFFER_DUMP_STATE {
@@ -879,52 +621,39 @@ typedef enum _KBUGCHECK_BUFFER_DUMP_STATE {
 } KBUGCHECK_BUFFER_DUMP_STATE;
 
 typedef VOID
 } KBUGCHECK_BUFFER_DUMP_STATE;
 
 typedef VOID
-(NTAPI KBUGCHECK_CALLBACK_ROUTINE)(
-  IN PVOID Buffer,
-  IN ULONG Length);
-typedef KBUGCHECK_CALLBACK_ROUTINE *PKBUGCHECK_CALLBACK_ROUTINE;
+(DDKAPI *PKBUGCHECK_CALLBACK_ROUTINE)(
+  IN PVOID  Buffer,
+  IN ULONG  Length);
 
 typedef struct _KBUGCHECK_CALLBACK_RECORD {
 
 typedef struct _KBUGCHECK_CALLBACK_RECORD {
-  LIST_ENTRY Entry;
-  PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine;
-  PVOID Buffer;
-  ULONG Length;
-  PUCHAR Component;
-  ULONG_PTR Checksum;
-  UCHAR State;
+  LIST_ENTRY  Entry;
+  PKBUGCHECK_CALLBACK_ROUTINE  CallbackRoutine;
+  PVOID  Buffer;
+  ULONG  Length;
+  PUCHAR  Component;
+  ULONG_PTR  Checksum;
+  UCHAR  State;
 } KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD;
 
 typedef BOOLEAN
 } KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD;
 
 typedef BOOLEAN
-(NTAPI NMI_CALLBACK)(
-  IN PVOID Context,
-  IN BOOLEAN Handled);
-typedef NMI_CALLBACK *PNMI_CALLBACK;
-
-typedef enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE {
-  KeProcessorAddStartNotify = 0,
-  KeProcessorAddCompleteNotify,
-  KeProcessorAddFailureNotify
-} KE_PROCESSOR_CHANGE_NOTIFY_STATE;
-
-typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT {
-  KE_PROCESSOR_CHANGE_NOTIFY_STATE State;
-  ULONG NtNumber;
-  NTSTATUS Status;
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  PROCESSOR_NUMBER ProcNumber;
-#endif
-} KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT, *PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
-
-typedef VOID
-(NTAPI PROCESSOR_CALLBACK_FUNCTION)(
-  IN PVOID CallbackContext,
-  IN PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext,
-  IN OUT PNTSTATUS OperationStatus);
-typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION;
-
-#define KE_PROCESSOR_CHANGE_ADD_EXISTING         1
+(DDKAPI *PNMI_CALLBACK)(
+    IN PVOID Context,
+    IN BOOLEAN Handled);
 
 
-#define INVALID_PROCESSOR_INDEX     0xffffffff
+typedef enum _TRACE_INFORMATION_CLASS {
+  TraceIdClass,
+  TraceHandleClass,
+  TraceEnableFlagsClass,
+  TraceEnableLevelClass,
+  GlobalLoggerHandleClass,
+  EventLoggerHandleClass,
+  AllLoggerHandlesClass,
+  TraceHandleByNameClass,
+  LoggerEventsLostClass,
+  TraceSessionSettingsClass,
+  LoggerEventsLoggedClass,
+  MaxTraceInformationClass
+} TRACE_INFORMATION_CLASS;
 
 typedef enum _KINTERRUPT_POLARITY {
   InterruptPolarityUnknown,
 
 typedef enum _KINTERRUPT_POLARITY {
   InterruptPolarityUnknown,
@@ -1022,50 +751,55 @@ typedef enum _KINTERRUPT_MODE {
 #define THREAD_WAIT_OBJECTS 3
 
 typedef VOID
 #define THREAD_WAIT_OBJECTS 3
 
 typedef VOID
-(NTAPI KSTART_ROUTINE)(
-  IN PVOID StartContext);
-typedef KSTART_ROUTINE *PKSTART_ROUTINE;
-
-typedef VOID
-(NTAPI *PKINTERRUPT_ROUTINE)(
+(DDKAPI *PKINTERRUPT_ROUTINE)(
   VOID);
 
   VOID);
 
-typedef BOOLEAN
-(NTAPI KSERVICE_ROUTINE)(
-  IN struct _KINTERRUPT *Interrupt,
-  IN PVOID ServiceContext);
-typedef KSERVICE_ROUTINE *PKSERVICE_ROUTINE;
-
-typedef BOOLEAN
-(NTAPI KMESSAGE_SERVICE_ROUTINE)(
-  IN struct _KINTERRUPT *Interrupt,
-  IN PVOID ServiceContext,
-  IN ULONG MessageID);
-typedef KMESSAGE_SERVICE_ROUTINE *PKMESSAGE_SERVICE_ROUTINE;
-
 typedef enum _KD_OPTION {
 typedef enum _KD_OPTION {
-  KD_OPTION_SET_BLOCK_ENABLE,
+    KD_OPTION_SET_BLOCK_ENABLE,
 } KD_OPTION;
 
 } KD_OPTION;
 
+typedef enum _INTERFACE_TYPE {
+  InterfaceTypeUndefined = -1,
+  Internal,
+  Isa,
+  Eisa,
+  MicroChannel,
+  TurboChannel,
+  PCIBus,
+  VMEBus,
+  NuBus,
+  PCMCIABus,
+  CBus,
+  MPIBus,
+  MPSABus,
+  ProcessorInternal,
+  InternalPowerBus,
+  PNPISABus,
+  PNPBus,
+  Vmcs,
+  MaximumInterfaceType
+} INTERFACE_TYPE, *PINTERFACE_TYPE;
+
 typedef VOID
 typedef VOID
-(NTAPI *PKNORMAL_ROUTINE)(
-  IN PVOID NormalContext OPTIONAL,
-  IN PVOID SystemArgument1 OPTIONAL,
-  IN PVOID SystemArgument2 OPTIONAL);
+(DDKAPI *PKNORMAL_ROUTINE)(
+  IN PVOID  NormalContext,
+  IN PVOID  SystemArgument1,
+  IN PVOID  SystemArgument2);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PKRUNDOWN_ROUTINE)(
-  IN struct _KAPC *Apc);
+(DDKAPI *PKRUNDOWN_ROUTINE)(
+  IN struct _KAPC  *Apc);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PKKERNEL_ROUTINE)(
-  IN struct _KAPC *Apc,
-  IN OUT PKNORMAL_ROUTINE *NormalRoutine OPTIONAL,
-  IN OUT PVOID *NormalContext OPTIONAL,
-  IN OUT PVOID *SystemArgument1 OPTIONAL,
-  IN OUT PVOID *SystemArgument2 OPTIONAL);
-
-typedef struct _KAPC {
+(DDKAPI *PKKERNEL_ROUTINE)(
+  IN struct _KAPC  *Apc,
+  IN OUT PKNORMAL_ROUTINE  *NormalRoutine,
+  IN OUT PVOID  *NormalContext,
+  IN OUT PVOID  *SystemArgument1,
+  IN OUT PVOID  *SystemArgument2);
+
+typedef struct _KAPC
+{
   UCHAR Type;
   UCHAR SpareByte0;
   UCHAR Size;
   UCHAR Type;
   UCHAR SpareByte0;
   UCHAR Size;
@@ -1084,62 +818,38 @@ typedef struct _KAPC {
   BOOLEAN Inserted;
 } KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC;
 
   BOOLEAN Inserted;
 } KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC;
 
-#define KAPC_OFFSET_TO_SPARE_BYTE0 FIELD_OFFSET(KAPC, SpareByte0)
-#define KAPC_OFFSET_TO_SPARE_BYTE1 FIELD_OFFSET(KAPC, SpareByte1)
-#define KAPC_OFFSET_TO_SPARE_LONG FIELD_OFFSET(KAPC, SpareLong0)
-#define KAPC_OFFSET_TO_SYSTEMARGUMENT1 FIELD_OFFSET(KAPC, SystemArgument1)
-#define KAPC_OFFSET_TO_SYSTEMARGUMENT2 FIELD_OFFSET(KAPC, SystemArgument2)
-#define KAPC_OFFSET_TO_APCSTATEINDEX FIELD_OFFSET(KAPC, ApcStateIndex)
-#define KAPC_ACTUAL_LENGTH (FIELD_OFFSET(KAPC, Inserted) + sizeof(BOOLEAN))
-
 typedef struct _KDEVICE_QUEUE_ENTRY {
 typedef struct _KDEVICE_QUEUE_ENTRY {
-  LIST_ENTRY DeviceListEntry;
-  ULONG SortKey;
-  BOOLEAN Inserted;
+  LIST_ENTRY  DeviceListEntry;
+  ULONG  SortKey;
+  BOOLEAN  Inserted;
 } KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY,
 *RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY;
 
 typedef PVOID PKIPI_CONTEXT;
 
 } KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY,
 *RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY;
 
 typedef PVOID PKIPI_CONTEXT;
 
-typedef VOID
+typedef
+VOID
 (NTAPI *PKIPI_WORKER)(
 (NTAPI *PKIPI_WORKER)(
-  IN OUT PKIPI_CONTEXT PacketContext,
-  IN PVOID Parameter1 OPTIONAL,
-  IN PVOID Parameter2 OPTIONAL,
-  IN PVOID Parameter3 OPTIONAL);
-
-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;
-
-typedef ULONG_PTR
-(NTAPI KIPI_BROADCAST_WORKER)(
-  IN ULONG_PTR Argument);
-typedef KIPI_BROADCAST_WORKER *PKIPI_BROADCAST_WORKER;
+  IN PKIPI_CONTEXT PacketContext,
+  IN PVOID Parameter1,
+  IN PVOID Parameter2,
+  IN PVOID Parameter3);
+
+typedef
+ULONG_PTR
+(NTAPI *PKIPI_BROADCAST_WORKER)(
+    IN ULONG_PTR Argument);
 
 typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
 
 typedef struct _KSPIN_LOCK_QUEUE {
 
 typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
 
 typedef struct _KSPIN_LOCK_QUEUE {
-  struct _KSPIN_LOCK_QUEUE *volatile Next;
-  PKSPIN_LOCK volatile Lock;
+  struct _KSPIN_LOCK_QUEUE  *volatile Next;
+  PKSPIN_LOCK volatile  Lock;
 } KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
 
 typedef struct _KLOCK_QUEUE_HANDLE {
 } KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
 
 typedef struct _KLOCK_QUEUE_HANDLE {
-  KSPIN_LOCK_QUEUE LockQueue;
-  KIRQL OldIrql;
+  KSPIN_LOCK_QUEUE  LockQueue;
+  KIRQL  OldIrql;
 } KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
 
 #if defined(_AMD64_)
 } KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
 
 #if defined(_AMD64_)
@@ -1190,14 +900,14 @@ typedef enum _KSPIN_LOCK_QUEUE_NUMBER {
   LockQueueMaximumLock = LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS
 } KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER;
 
   LockQueueMaximumLock = LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS
 } KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER;
 
-#endif /* defined(_AMD64_) */
+#endif
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PKDEFERRED_ROUTINE)(
-  IN struct _KDPC *Dpc,
-  IN PVOID DeferredContext OPTIONAL,
-  IN PVOID SystemArgument1 OPTIONAL,
-  IN PVOID SystemArgument2 OPTIONAL);
+(DDKAPI *PKDEFERRED_ROUTINE)(
+  IN struct _KDPC  *Dpc,
+  IN PVOID  DeferredContext,
+  IN PVOID  SystemArgument1,
+  IN PVOID  SystemArgument2);
 
 typedef enum _KDPC_IMPORTANCE {
   LowImportance,
 
 typedef enum _KDPC_IMPORTANCE {
   LowImportance,
@@ -1206,16 +916,17 @@ typedef enum _KDPC_IMPORTANCE {
   MediumHighImportance
 } KDPC_IMPORTANCE;
 
   MediumHighImportance
 } KDPC_IMPORTANCE;
 
-typedef struct _KDPC {
-  UCHAR Type;
-  UCHAR Importance;
-  volatile USHORT Number;
-  LIST_ENTRY DpcListEntry;
-  PKDEFERRED_ROUTINE DeferredRoutine;
-  PVOID DeferredContext;
-  PVOID SystemArgument1;
-  PVOID SystemArgument2;
-  volatile PVOID DpcData;
+typedef struct _KDPC
+{
+    UCHAR Type;
+    UCHAR Importance;
+    volatile USHORT Number;
+    LIST_ENTRY DpcListEntry;
+    PKDEFERRED_ROUTINE DeferredRoutine;
+    PVOID DeferredContext;
+    PVOID SystemArgument1;
+    PVOID SystemArgument2;
+    volatile PVOID  DpcData;
 } KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;
 
 typedef struct _KDPC_WATCHDOG_INFORMATION {
 } KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;
 
 typedef struct _KDPC_WATCHDOG_INFORMATION {
@@ -1235,124 +946,126 @@ typedef struct _KDEVICE_QUEUE {
   union {
     BOOLEAN Busy;
     struct {
   union {
     BOOLEAN Busy;
     struct {
-      LONG64 Reserved:8;
-      LONG64 Hint:56;
+      LONG64 Reserved : 8;
+      LONG64 Hint : 56;
     };
   };
   #else
   BOOLEAN Busy;
   #endif
     };
   };
   #else
   BOOLEAN Busy;
   #endif
+
 } KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
 
 #define TIMER_EXPIRED_INDEX_BITS        6
 #define TIMER_PROCESSOR_INDEX_BITS      5
 } KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
 
 #define TIMER_EXPIRED_INDEX_BITS        6
 #define TIMER_PROCESSOR_INDEX_BITS      5
-
 typedef struct _DISPATCHER_HEADER {
 typedef struct _DISPATCHER_HEADER {
-  _ANONYMOUS_UNION union {
-    _ANONYMOUS_STRUCT struct {
-      UCHAR Type;
-      _ANONYMOUS_UNION union {
-        _ANONYMOUS_UNION union {
-          UCHAR TimerControlFlags;
-          _ANONYMOUS_STRUCT struct {
-            UCHAR Absolute:1;
-            UCHAR Coalescable:1;
-            UCHAR KeepShifting:1;
-            UCHAR EncodedTolerableDelay:5;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-        UCHAR Abandoned;
+    _ANONYMOUS_UNION union {
+        _ANONYMOUS_STRUCT struct {
+            UCHAR Type;
+            _ANONYMOUS_UNION union {
+                _ANONYMOUS_UNION union {
+                    UCHAR TimerControlFlags;
+                    _ANONYMOUS_STRUCT struct {
+                        UCHAR Absolute:1;
+                        UCHAR Coalescable:1;
+                        UCHAR KeepShifting:1;
+                        UCHAR EncodedTolerableDelay:5;
+                    } DUMMYSTRUCTNAME;
+                } DUMMYUNIONNAME;
+                UCHAR Abandoned;
 #if (NTDDI_VERSION < NTDDI_WIN7)
 #if (NTDDI_VERSION < NTDDI_WIN7)
-        UCHAR NpxIrql;
-#endif
-        BOOLEAN Signalling;
-      } DUMMYUNIONNAME;
-      _ANONYMOUS_UNION union {
-        _ANONYMOUS_UNION union {
-          UCHAR ThreadControlFlags;
-          _ANONYMOUS_STRUCT struct {
-            UCHAR CpuThrottled:1;
-            UCHAR CycleProfiling:1;
-            UCHAR CounterProfiling:1;
-            UCHAR Reserved:5;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-        UCHAR Size;
-        UCHAR Hand;
-      } DUMMYUNIONNAME2;
-      _ANONYMOUS_UNION union {
+                UCHAR NpxIrql;
+#endif
+                BOOLEAN Signalling;
+            } DUMMYUNIONNAME;
+            _ANONYMOUS_UNION union {
+                _ANONYMOUS_UNION union {
+                    UCHAR ThreadControlFlags;
+                    _ANONYMOUS_STRUCT struct {
+                        UCHAR CpuThrottled:1;
+                        UCHAR CycleProfiling:1;
+                        UCHAR CounterProfiling:1;
+                        UCHAR Reserved:5;
+                    } DUMMYSTRUCTNAME;
+                } DUMMYUNIONNAME;
+                UCHAR Size;
+                UCHAR Hand;
+            } DUMMYUNIONNAME2;
+            _ANONYMOUS_UNION union {
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 #if (NTDDI_VERSION >= NTDDI_WIN7)
-        _ANONYMOUS_UNION union {
-          UCHAR TimerMiscFlags;
-          _ANONYMOUS_STRUCT struct {
+                _ANONYMOUS_UNION union {
+                    UCHAR TimerMiscFlags;
+                    _ANONYMOUS_STRUCT struct {
 #if !defined(_X86_)
 #if !defined(_X86_)
-            UCHAR Index:TIMER_EXPIRED_INDEX_BITS;
+                        UCHAR Index:TIMER_EXPIRED_INDEX_BITS;
 #else
 #else
-            UCHAR Index:1;
-            UCHAR Processor:TIMER_PROCESSOR_INDEX_BITS;
+                        UCHAR Index:1;
+                        UCHAR Processor:TIMER_PROCESSOR_INDEX_BITS;
 #endif
 #endif
-            UCHAR Inserted:1;
-            volatile UCHAR Expired:1;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
+                        UCHAR Inserted:1;
+                        volatile UCHAR Expired:1;
+                    } DUMMYSTRUCTNAME;
+                } DUMMYUNIONNAME;
 #else
 #else
-        /* Pre Win7 compatibility fix to latest WDK */
-        UCHAR Inserted;
-#endif
-        _ANONYMOUS_UNION union {
-          BOOLEAN DebugActive;
-          _ANONYMOUS_STRUCT struct {
-            BOOLEAN ActiveDR7:1;
-            BOOLEAN Instrumented:1;
-            BOOLEAN Reserved2:4;
-            BOOLEAN UmsScheduled:1;
-            BOOLEAN UmsPrimary:1;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME; /* should probably be DUMMYUNIONNAME2, but this is what WDK says */
-        BOOLEAN DpcActive;
-      } DUMMYUNIONNAME3;
-    } DUMMYSTRUCTNAME;
-    volatile LONG Lock;
-  } DUMMYUNIONNAME;
-  LONG SignalState;
-  LIST_ENTRY WaitListHead;
+                /* Pre Win7 compatibility fix to latest WDK */
+                UCHAR Inserted;
+#endif
+                _ANONYMOUS_UNION union {
+                    BOOLEAN DebugActive;
+                    _ANONYMOUS_STRUCT struct {
+                        BOOLEAN ActiveDR7:1;
+                        BOOLEAN Instrumented:1;
+                        BOOLEAN Reserved2:4;
+                        BOOLEAN UmsScheduled:1;
+                        BOOLEAN UmsPrimary:1;
+                    } DUMMYSTRUCTNAME;
+                } DUMMYUNIONNAME; /* should probably be DUMMYUNIONNAME2, but this is what WDK says */
+                BOOLEAN DpcActive;
+            } DUMMYUNIONNAME3;
+        } DUMMYSTRUCTNAME;
+        volatile LONG Lock;
+    } DUMMYUNIONNAME;
+    LONG SignalState;
+    LIST_ENTRY WaitListHead;
 } DISPATCHER_HEADER, *PDISPATCHER_HEADER;
 
 typedef struct _KEVENT {
 } DISPATCHER_HEADER, *PDISPATCHER_HEADER;
 
 typedef struct _KEVENT {
-  DISPATCHER_HEADER Header;
+  DISPATCHER_HEADER  Header;
 } KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
 
 typedef struct _KSEMAPHORE {
 } KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
 
 typedef struct _KSEMAPHORE {
-  DISPATCHER_HEADER Header;
-  LONG Limit;
+    DISPATCHER_HEADER Header;
+    LONG Limit;
 } KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
 
 } KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
 
-#define KSEMAPHORE_ACTUAL_LENGTH (FIELD_OFFSET(KSEMAPHORE, Limit) + sizeof(LONG))
-
-typedef struct _KGATE {
-  DISPATCHER_HEADER Header;
+typedef struct _KGATE
+{
+    DISPATCHER_HEADER Header;
 } KGATE, *PKGATE, *RESTRICTED_POINTER PRKGATE;
 
 } KGATE, *PKGATE, *RESTRICTED_POINTER PRKGATE;
 
-typedef struct _KGUARDED_MUTEX {
-  volatile LONG Count;
-  PKTHREAD Owner;
-  ULONG Contention;
-  KGATE Gate;
-  __GNU_EXTENSION union {
-    __GNU_EXTENSION struct {
-      SHORT KernelApcDisable;
-      SHORT SpecialApcDisable;
+typedef struct _KGUARDED_MUTEX
+{
+    volatile LONG Count;
+    PKTHREAD Owner;
+    ULONG Contention;
+    KGATE Gate;
+    __GNU_EXTENSION union
+    {
+        __GNU_EXTENSION struct
+        {
+            SHORT KernelApcDisable;
+            SHORT SpecialApcDisable;
+        };
+        ULONG CombinedApcDisable;
     };
     };
-    ULONG CombinedApcDisable;
-  };
 } KGUARDED_MUTEX, *PKGUARDED_MUTEX;
 
 typedef struct _KMUTANT {
 } KGUARDED_MUTEX, *PKGUARDED_MUTEX;
 
 typedef struct _KMUTANT {
-  DISPATCHER_HEADER Header;
-  LIST_ENTRY MutantListEntry;
-  struct _KTHREAD *RESTRICTED_POINTER OwnerThread;
-  BOOLEAN Abandoned;
-  UCHAR ApcDisable;
+  DISPATCHER_HEADER  Header;
+  LIST_ENTRY  MutantListEntry;
+  struct _KTHREAD  *RESTRICTED_POINTER OwnerThread;
+  BOOLEAN  Abandoned;
+  UCHAR  ApcDisable;
 } KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX;
 
 #define TIMER_TABLE_SIZE 512
 } KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX;
 
 #define TIMER_TABLE_SIZE 512
@@ -1369,17 +1082,9 @@ typedef struct _KTIMER {
   ULONG Period;
 } KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;
 
   ULONG Period;
 } KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;
 
-typedef enum _LOCK_OPERATION {
-  IoReadAccess,
-  IoWriteAccess,
-  IoModifyAccess
-} LOCK_OPERATION;
-
-#define KTIMER_ACTUAL_LENGTH (FIELD_OFFSET(KTIMER, Period) + sizeof(LONG))
-
 typedef BOOLEAN
 typedef BOOLEAN
-(NTAPI *PKSYNCHRONIZE_ROUTINE)(
-  IN PVOID SynchronizeContext);
+(DDKAPI *PKSYNCHRONIZE_ROUTINE)(
+  IN PVOID  SynchronizeContext);
 
 typedef enum _POOL_TYPE {
   NonPagedPool,
 
 typedef enum _POOL_TYPE {
   NonPagedPool,
@@ -1399,41 +1104,29 @@ typedef enum _POOL_TYPE {
   NonPagedPoolCacheAlignedMustSSession
 } POOL_TYPE;
 
   NonPagedPoolCacheAlignedMustSSession
 } POOL_TYPE;
 
-typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE {
-  StandardDesign,
-  NEC98x86,
-  EndAlternatives
+typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE
+{
+    StandardDesign,
+    NEC98x86,
+    EndAlternatives
 } ALTERNATIVE_ARCHITECTURE_TYPE;
 
 } ALTERNATIVE_ARCHITECTURE_TYPE;
 
-#ifndef _X86_
-
-#ifndef IsNEC_98
-#define IsNEC_98 (FALSE)
-#endif
-
-#ifndef IsNotNEC_98
-#define IsNotNEC_98 (TRUE)
-#endif
-
-#ifndef SetNEC_98
-#define SetNEC_98
-#endif
-
-#ifndef SetNotNEC_98
-#define SetNotNEC_98
-#endif
-
-#endif
-
-typedef struct _KSYSTEM_TIME {
-  ULONG LowPart;
-  LONG High1Time;
-  LONG High2Time;
+typedef struct _KSYSTEM_TIME
+{
+    ULONG LowPart;
+    LONG High1Time;
+    LONG High2Time;
 } KSYSTEM_TIME, *PKSYSTEM_TIME;
 
 } KSYSTEM_TIME, *PKSYSTEM_TIME;
 
+typedef struct _PNP_BUS_INFORMATION {
+  GUID  BusTypeGuid;
+  INTERFACE_TYPE  LegacyBusType;
+  ULONG  BusNumber;
+} PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION;
+
 typedef struct DECLSPEC_ALIGN(16) _M128A {
 typedef struct DECLSPEC_ALIGN(16) _M128A {
-  ULONGLONG Low;
-  LONGLONG High;
+    ULONGLONG Low;
+    LONGLONG High;
 } M128A, *PM128A;
 
 typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
 } M128A, *PM128A;
 
 typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
@@ -1462,110 +1155,18 @@ typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
 #endif
 } XSAVE_FORMAT, *PXSAVE_FORMAT;
 
 #endif
 } XSAVE_FORMAT, *PXSAVE_FORMAT;
 
-typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER {
-  ULONG64 Mask;
-  ULONG64 Reserved[7];
-} XSAVE_AREA_HEADER, *PXSAVE_AREA_HEADER;
-
-typedef struct DECLSPEC_ALIGN(16) _XSAVE_AREA {
-  XSAVE_FORMAT LegacyState;
-  XSAVE_AREA_HEADER Header;
-} XSAVE_AREA, *PXSAVE_AREA;
-
-typedef struct _XSTATE_CONTEXT {
-  ULONG64 Mask;
-  ULONG Length;
-  ULONG Reserved1;
-  PXSAVE_AREA Area;
-#if defined(_X86_)
-  ULONG Reserved2;
-#endif
-  PVOID Buffer;
-#if defined(_X86_)
-  ULONG Reserved3;
-#endif
-} XSTATE_CONTEXT, *PXSTATE_CONTEXT;
-
-typedef struct _XSTATE_SAVE {
-#if defined(_AMD64_)
-  struct _XSTATE_SAVE* Prev;
-  struct _KTHREAD* Thread;
-  UCHAR Level;
-  XSTATE_CONTEXT XStateContext;
-#elif defined(_IA64_)
-  ULONG Dummy;
-#elif defined(_X86_)
-  union {
-    struct {
-      LONG64 Reserved1;
-      ULONG Reserved2;
-      struct _XSTATE_SAVE* Prev;
-      PXSAVE_AREA Reserved3;
-      struct _KTHREAD* Thread;
-      PVOID Reserved4;
-      UCHAR Level;
-    };
-    XSTATE_CONTEXT XStateContext;
-  };
-#endif
-} XSTATE_SAVE, *PXSTATE_SAVE;
-
-#ifdef _X86_
-
-#define MAXIMUM_SUPPORTED_EXTENSION  512
-
-#if !defined(__midl) && !defined(MIDL_PASS)
-C_ASSERT(sizeof(XSAVE_FORMAT) == MAXIMUM_SUPPORTED_EXTENSION);
-#endif
-
-#endif /* _X86_ */
-
-#define XSAVE_ALIGN                    64
-#define MINIMAL_XSTATE_AREA_LENGTH     sizeof(XSAVE_AREA)
-
-#if !defined(__midl) && !defined(MIDL_PASS)
-C_ASSERT((sizeof(XSAVE_FORMAT) & (XSAVE_ALIGN - 1)) == 0);
-C_ASSERT((FIELD_OFFSET(XSAVE_AREA, Header) & (XSAVE_ALIGN - 1)) == 0);
-C_ASSERT(MINIMAL_XSTATE_AREA_LENGTH == 512 + 64);
-#endif
-
-typedef struct _CONTEXT_CHUNK {
-  LONG Offset;
-  ULONG Length;
-} CONTEXT_CHUNK, *PCONTEXT_CHUNK;
-
-typedef struct _CONTEXT_EX {
-  CONTEXT_CHUNK All;
-  CONTEXT_CHUNK Legacy;
-  CONTEXT_CHUNK XState;
-} CONTEXT_EX, *PCONTEXT_EX;
-
-#define CONTEXT_EX_LENGTH         ALIGN_UP_BY(sizeof(CONTEXT_EX), STACK_ALIGN)
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-extern NTSYSAPI volatile CCHAR KeNumberProcessors;
-#elif (NTDDI_VERSION >= NTDDI_WINXP)
-extern NTSYSAPI CCHAR KeNumberProcessors;
-#else
-extern PCCHAR KeNumberProcessors;
-#endif
 
 
 /******************************************************************************
  *                         Memory manager Types                               *
  ******************************************************************************/
 
 
 
 /******************************************************************************
  *                         Memory manager Types                               *
  ******************************************************************************/
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-typedef ULONG NODE_REQUIREMENT;
-#define MM_ANY_NODE_OK                           0x80000000
-#endif
-
-#define MM_DONT_ZERO_ALLOCATION                  0x00000001
-#define MM_ALLOCATE_FROM_LOCAL_NODE_ONLY         0x00000002
-#define MM_ALLOCATE_FULLY_REQUIRED               0x00000004
-#define MM_ALLOCATE_NO_WAIT                      0x00000008
-#define MM_ALLOCATE_PREFER_CONTIGUOUS            0x00000010
-#define MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS    0x00000020
+#define MM_DONT_ZERO_ALLOCATION                 0x00000001
+#define MM_ALLOCATE_FROM_LOCAL_NODE_ONLY        0x00000002
+#define MM_ALLOCATE_FULLY_REQUIRED              0x00000004
+#define MM_ALLOCATE_NO_WAIT                     0x00000008
+#define MM_ALLOCATE_PREFER_CONTIGUOUS           0x00000010
+#define MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS   0x00000020
 
 #define MDL_MAPPED_TO_SYSTEM_VA     0x0001
 #define MDL_PAGES_LOCKED            0x0002
 
 #define MDL_MAPPED_TO_SYSTEM_VA     0x0001
 #define MDL_PAGES_LOCKED            0x0002
@@ -1648,8 +1249,8 @@ typedef ULONG NODE_REQUIREMENT;
 
 /* Section map options */
 typedef enum _SECTION_INHERIT {
 
 /* Section map options */
 typedef enum _SECTION_INHERIT {
-  ViewShare = 1,
-  ViewUnmap = 2
+    ViewShare = 1,
+    ViewUnmap = 2
 } SECTION_INHERIT;
 
 typedef ULONG PFN_COUNT;
 } SECTION_INHERIT;
 
 typedef ULONG PFN_COUNT;
@@ -1657,14 +1258,14 @@ typedef LONG_PTR SPFN_NUMBER, *PSPFN_NUMBER;
 typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER;
 
 typedef struct _MDL {
 typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER;
 
 typedef struct _MDL {
-  struct _MDL *Next;
-  CSHORT Size;
-  CSHORT MdlFlags;
-  struct _EPROCESS *Process;
-  PVOID MappedSystemVa;
-  PVOID StartVa;
-  ULONG ByteCount;
-  ULONG ByteOffset;
+    struct _MDL *Next;
+    CSHORT Size;
+    CSHORT MdlFlags;
+    struct _EPROCESS *Process;
+    PVOID MappedSystemVa;
+    PVOID StartVa;
+    ULONG ByteCount;
+    ULONG ByteOffset;
 } MDL, *PMDL;
 typedef MDL *PMDLX;
 
 } MDL, *PMDL;
 typedef MDL *PMDLX;
 
@@ -1688,15 +1289,18 @@ typedef enum _MM_PAGE_PRIORITY {
   HighPagePriority = 32
 } MM_PAGE_PRIORITY;
 
   HighPagePriority = 32
 } MM_PAGE_PRIORITY;
 
+typedef enum _LOCK_OPERATION {
+  IoReadAccess,
+  IoWriteAccess,
+  IoModifyAccess
+} LOCK_OPERATION;
+
 typedef enum _MM_SYSTEM_SIZE {
   MmSmallSystem,
   MmMediumSystem,
   MmLargeSystem
 } MM_SYSTEMSIZE;
 
 typedef enum _MM_SYSTEM_SIZE {
   MmSmallSystem,
   MmMediumSystem,
   MmLargeSystem
 } MM_SYSTEMSIZE;
 
-extern NTKERNELAPI BOOLEAN Mm64BitPhysicalAddress;
-extern PVOID MmBadPointer;
-
 
 /******************************************************************************
  *                            Executive Types                                 *
 
 /******************************************************************************
  *                            Executive Types                                 *
@@ -1706,6 +1310,12 @@ extern PVOID MmBadPointer;
 #define EX_RUNDOWN_COUNT_SHIFT            0x1
 #define EX_RUNDOWN_COUNT_INC              (1 << EX_RUNDOWN_COUNT_SHIFT)
 
 #define EX_RUNDOWN_COUNT_SHIFT            0x1
 #define EX_RUNDOWN_COUNT_INC              (1 << EX_RUNDOWN_COUNT_SHIFT)
 
+#ifdef _WIN64
+#define PORT_MAXIMUM_MESSAGE_LENGTH 512
+#else
+#define PORT_MAXIMUM_MESSAGE_LENGTH 256
+#endif
+
 typedef struct _FAST_MUTEX {
   volatile LONG Count;
   PKTHREAD Owner;
 typedef struct _FAST_MUTEX {
   volatile LONG Count;
   PKTHREAD Owner;
@@ -1715,35 +1325,35 @@ typedef struct _FAST_MUTEX {
 } FAST_MUTEX, *PFAST_MUTEX;
 
 typedef enum _SUITE_TYPE {
 } FAST_MUTEX, *PFAST_MUTEX;
 
 typedef enum _SUITE_TYPE {
-  SmallBusiness,
-  Enterprise,
-  BackOffice,
-  CommunicationServer,
-  TerminalServer,
-  SmallBusinessRestricted,
-  EmbeddedNT,
-  DataCenter,
-  SingleUserTS,
-  Personal,
-  Blade,
-  EmbeddedRestricted,
-  SecurityAppliance,
-  StorageServer,
-  ComputeServer,
-  WHServer,
-  MaxSuiteType
+    SmallBusiness,
+    Enterprise,
+    BackOffice,
+    CommunicationServer,
+    TerminalServer,
+    SmallBusinessRestricted,
+    EmbeddedNT,
+    DataCenter,
+    SingleUserTS,
+    Personal,
+    Blade,
+    EmbeddedRestricted,
+    SecurityAppliance,
+    StorageServer,
+    ComputeServer,
+    WHServer,
+    MaxSuiteType
 } SUITE_TYPE;
 
 typedef enum _EX_POOL_PRIORITY {
 } SUITE_TYPE;
 
 typedef enum _EX_POOL_PRIORITY {
-  LowPoolPriority,
-  LowPoolPrioritySpecialPoolOverrun = 8,
-  LowPoolPrioritySpecialPoolUnderrun = 9,
-  NormalPoolPriority = 16,
-  NormalPoolPrioritySpecialPoolOverrun = 24,
-  NormalPoolPrioritySpecialPoolUnderrun = 25,
-  HighPoolPriority = 32,
-  HighPoolPrioritySpecialPoolOverrun = 40,
-  HighPoolPrioritySpecialPoolUnderrun = 41
+    LowPoolPriority,
+    LowPoolPrioritySpecialPoolOverrun = 8,
+    LowPoolPrioritySpecialPoolUnderrun = 9,
+    NormalPoolPriority = 16,
+    NormalPoolPrioritySpecialPoolOverrun = 24,
+    NormalPoolPrioritySpecialPoolUnderrun = 25,
+    HighPoolPriority = 32,
+    HighPoolPrioritySpecialPoolOverrun = 40,
+    HighPoolPrioritySpecialPoolUnderrun = 41
 } EX_POOL_PRIORITY;
 
 #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_))
 } EX_POOL_PRIORITY;
 
 #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_))
@@ -1755,33 +1365,32 @@ typedef enum _EX_POOL_PRIORITY {
 typedef struct _LOOKASIDE_LIST_EX *PLOOKASIDE_LIST_EX;
 
 typedef PVOID
 typedef struct _LOOKASIDE_LIST_EX *PLOOKASIDE_LIST_EX;
 
 typedef PVOID
-(NTAPI *PALLOCATE_FUNCTION)(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag);
+(DDKAPI *PALLOCATE_FUNCTION)(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes,
+    IN ULONG Tag);
 
 typedef PVOID
 
 typedef PVOID
-(NTAPI *PALLOCATE_FUNCTION_EX)(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag,
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
+(DDKAPI *PALLOCATE_FUNCTION_EX)(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes,
+    IN ULONG Tag,
+    IN OUT PLOOKASIDE_LIST_EX Lookaside);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PFREE_FUNCTION)(
-  IN PVOID Buffer);
+(DDKAPI *PFREE_FUNCTION)(
+    IN PVOID Buffer);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PFREE_FUNCTION_EX)(
-  IN PVOID Buffer,
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
+(DDKAPI *PFREE_FUNCTION_EX)(
+    IN PVOID Buffer,
+    IN OUT PLOOKASIDE_LIST_EX Lookaside);
 
 typedef VOID
 
 typedef VOID
-(NTAPI CALLBACK_FUNCTION)(
-  IN PVOID CallbackContext OPTIONAL,
-  IN PVOID Argument1 OPTIONAL,
-  IN PVOID Argument2 OPTIONAL);
-typedef CALLBACK_FUNCTION *PCALLBACK_FUNCTION;
+(DDKAPI *PCALLBACK_FUNCTION)(
+  IN PVOID  CallbackContext,
+  IN PVOID  Argument1,
+  IN PVOID  Argument2);
 
 #define GENERAL_LOOKASIDE_LAYOUT                \
     union {                                     \
 
 #define GENERAL_LOOKASIDE_LAYOUT                \
     union {                                     \
@@ -1824,149 +1433,50 @@ typedef CALLBACK_FUNCTION *PCALLBACK_FUNCTION;
     ULONG Future[2];
 
 typedef struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE {
     ULONG Future[2];
 
 typedef struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE {
-  GENERAL_LOOKASIDE_LAYOUT
+    GENERAL_LOOKASIDE_LAYOUT
 } GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE;
 
 typedef struct _GENERAL_LOOKASIDE_POOL {
 } GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE;
 
 typedef struct _GENERAL_LOOKASIDE_POOL {
-  GENERAL_LOOKASIDE_LAYOUT
+    GENERAL_LOOKASIDE_LAYOUT
 } GENERAL_LOOKASIDE_POOL, *PGENERAL_LOOKASIDE_POOL;
 
 } GENERAL_LOOKASIDE_POOL, *PGENERAL_LOOKASIDE_POOL;
 
-#define LOOKASIDE_CHECK(f)  \
-    C_ASSERT(FIELD_OFFSET(GENERAL_LOOKASIDE,f) == FIELD_OFFSET(GENERAL_LOOKASIDE_POOL,f))
-
-LOOKASIDE_CHECK(TotalFrees);
-LOOKASIDE_CHECK(Tag);
-LOOKASIDE_CHECK(Future);
-
 typedef struct _PAGED_LOOKASIDE_LIST {
 typedef struct _PAGED_LOOKASIDE_LIST {
-  GENERAL_LOOKASIDE L;
+    GENERAL_LOOKASIDE L;
 #if !defined(_AMD64_) && !defined(_IA64_)
 #if !defined(_AMD64_) && !defined(_IA64_)
-  FAST_MUTEX Lock__ObsoleteButDoNotDelete;
+    FAST_MUTEX Lock__ObsoleteButDoNotDelete;
 #endif
 } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
 
 typedef struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST {
 #endif
 } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
 
 typedef struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST {
-  GENERAL_LOOKASIDE L;
+    GENERAL_LOOKASIDE L;
 #if !defined(_AMD64_) && !defined(_IA64_)
 #if !defined(_AMD64_) && !defined(_IA64_)
-  KSPIN_LOCK Lock__ObsoleteButDoNotDelete;
+    KSPIN_LOCK Lock__ObsoleteButDoNotDelete;
 #endif
 } NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
 
 #endif
 } NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
 
-#define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD (SLIST_ENTRY, Next))
-
 typedef struct _LOOKASIDE_LIST_EX {
 typedef struct _LOOKASIDE_LIST_EX {
-  GENERAL_LOOKASIDE_POOL L;
+    GENERAL_LOOKASIDE_POOL L;
 } LOOKASIDE_LIST_EX;
 
 } LOOKASIDE_LIST_EX;
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-#define EX_LOOKASIDE_LIST_EX_FLAGS_RAISE_ON_FAIL 0x00000001UL
-#define EX_LOOKASIDE_LIST_EX_FLAGS_FAIL_NO_RAISE 0x00000002UL
-
-#define EX_MAXIMUM_LOOKASIDE_DEPTH_BASE          256
-#define EX_MAXIMUM_LOOKASIDE_DEPTH_LIMIT         1024
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
 typedef struct _EX_RUNDOWN_REF {
 typedef struct _EX_RUNDOWN_REF {
-  __GNU_EXTENSION union {
-    volatile ULONG_PTR Count;
-    volatile PVOID Ptr;
-  };
+    __GNU_EXTENSION union {
+        volatile ULONG_PTR Count;
+        volatile PVOID Ptr;
+    };
 } EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
 
 } EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
 
-typedef struct _EX_RUNDOWN_REF_CACHE_AWARE *PEX_RUNDOWN_REF_CACHE_AWARE;
-
-typedef enum _WORK_QUEUE_TYPE {
-  CriticalWorkQueue,
-  DelayedWorkQueue,
-  HyperCriticalWorkQueue,
-  MaximumWorkQueue
-} WORK_QUEUE_TYPE;
+typedef struct _EX_RUNDOWN_REF_CACHE_AWARE  *PEX_RUNDOWN_REF_CACHE_AWARE;
 
 typedef VOID
 
 typedef VOID
-(NTAPI WORKER_THREAD_ROUTINE)(
+(DDKAPI *PWORKER_THREAD_ROUTINE)(
   IN PVOID Parameter);
   IN PVOID Parameter);
-typedef WORKER_THREAD_ROUTINE *PWORKER_THREAD_ROUTINE;
 
 typedef struct _WORK_QUEUE_ITEM {
 
 typedef struct _WORK_QUEUE_ITEM {
-  LIST_ENTRY List;
-  PWORKER_THREAD_ROUTINE WorkerRoutine;
-  volatile PVOID Parameter;
+  LIST_ENTRY  List;
+  PWORKER_THREAD_ROUTINE  WorkerRoutine;
+  volatile PVOID  Parameter;
 } WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
 
 } WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
 
-typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
-
-typedef struct _OWNER_ENTRY {
-  ERESOURCE_THREAD OwnerThread;
-  union {
-    struct {
-      ULONG IoPriorityBoosted:1;
-      ULONG OwnerReferenced:1;
-      ULONG OwnerCount:30;
-    };
-    ULONG TableSize;
-  };
-} OWNER_ENTRY, *POWNER_ENTRY;
-
-typedef struct _ERESOURCE {
-  LIST_ENTRY SystemResourcesList;
-  POWNER_ENTRY OwnerTable;
-  SHORT ActiveCount;
-  USHORT Flag;
-  volatile PKSEMAPHORE SharedWaiters;
-  volatile PKEVENT ExclusiveWaiters;
-  OWNER_ENTRY OwnerEntry;
-  ULONG ActiveEntries;
-  ULONG ContentionCount;
-  ULONG NumberOfSharedWaiters;
-  ULONG NumberOfExclusiveWaiters;
-#if defined(_WIN64)
-  PVOID Reserved2;
-#endif
-  __GNU_EXTENSION union {
-    PVOID Address;
-    ULONG_PTR CreatorBackTraceIndex;
-  };
-  KSPIN_LOCK SpinLock;
-} ERESOURCE, *PERESOURCE;
-
-/* ERESOURCE.Flag */
-#define ResourceNeverExclusive            0x0010
-#define ResourceReleaseByOtherThread      0x0020
-#define ResourceOwnedExclusive            0x0080
-
-#define RESOURCE_HASH_TABLE_SIZE          64
-
-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[RESOURCE_HASH_TABLE_SIZE];
-} RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA;
-
-/* Global debug flag */
-#if DEVL
-extern ULONG NtGlobalFlag;
-#define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName))
-#else
-#define IF_NTOS_DEBUG(FlagName) if(FALSE)
-#endif
-
 
 /******************************************************************************
  *                            Security Manager Types                          *
 
 /******************************************************************************
  *                            Security Manager Types                          *
@@ -1998,10 +1508,10 @@ typedef PVOID PSID;
 #define GENERIC_ALL                      0x10000000L
 
 typedef struct _GENERIC_MAPPING {
 #define GENERIC_ALL                      0x10000000L
 
 typedef struct _GENERIC_MAPPING {
-  ACCESS_MASK GenericRead;
-  ACCESS_MASK GenericWrite;
-  ACCESS_MASK GenericExecute;
-  ACCESS_MASK GenericAll;
+    ACCESS_MASK GenericRead;
+    ACCESS_MASK GenericWrite;
+    ACCESS_MASK GenericExecute;
+    ACCESS_MASK GenericAll;
 } GENERIC_MAPPING, *PGENERIC_MAPPING;
 
 #define ACL_REVISION                      2
 } GENERIC_MAPPING, *PGENERIC_MAPPING;
 
 #define ACL_REVISION                      2
@@ -2015,11 +1525,11 @@ typedef struct _GENERIC_MAPPING {
 #define MAX_ACL_REVISION                  ACL_REVISION4
 
 typedef struct _ACL {
 #define MAX_ACL_REVISION                  ACL_REVISION4
 
 typedef struct _ACL {
-  UCHAR AclRevision;
-  UCHAR Sbz1;
-  USHORT AclSize;
-  USHORT AceCount;
-  USHORT Sbz2;
+    UCHAR AclRevision;
+    UCHAR Sbz1;
+    USHORT AclSize;
+    USHORT AceCount;
+    USHORT Sbz2;
 } ACL, *PACL;
 
 /* Current security descriptor revision value */
 } ACL, *PACL;
 
 /* Current security descriptor revision value */
@@ -2039,8 +1549,8 @@ typedef struct _ACL {
 
 #include <pshpack4.h>
 typedef struct _LUID_AND_ATTRIBUTES {
 
 #include <pshpack4.h>
 typedef struct _LUID_AND_ATTRIBUTES {
-  LUID Luid;
-  ULONG Attributes;
+    LUID Luid;
+    ULONG Attributes;
 } LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
 #include <poppack.h>
 
 } LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
 #include <poppack.h>
 
@@ -2051,16 +1561,16 @@ typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
 #define PRIVILEGE_SET_ALL_NECESSARY (1)
 
 typedef struct _PRIVILEGE_SET {
 #define PRIVILEGE_SET_ALL_NECESSARY (1)
 
 typedef struct _PRIVILEGE_SET {
-  ULONG PrivilegeCount;
-  ULONG Control;
-  LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
+    ULONG PrivilegeCount;
+    ULONG Control;
+    LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
 } PRIVILEGE_SET,*PPRIVILEGE_SET;
 
 typedef enum _SECURITY_IMPERSONATION_LEVEL {
 } PRIVILEGE_SET,*PPRIVILEGE_SET;
 
 typedef enum _SECURITY_IMPERSONATION_LEVEL {
-  SecurityAnonymous,
-  SecurityIdentification,
-  SecurityImpersonation,
-  SecurityDelegation
+    SecurityAnonymous,
+    SecurityIdentification,
+    SecurityImpersonation,
+    SecurityDelegation
 } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL;
 
 #define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation
 } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL;
 
 #define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation
@@ -2074,17 +1584,17 @@ typedef enum _SECURITY_IMPERSONATION_LEVEL {
 typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
 
 typedef struct _SECURITY_QUALITY_OF_SERVICE {
 typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
 
 typedef struct _SECURITY_QUALITY_OF_SERVICE {
-  ULONG Length;
-  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
-  SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
-  BOOLEAN EffectiveOnly;
+    ULONG Length;
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+    SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
+    BOOLEAN EffectiveOnly;
 } SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
 
 typedef struct _SE_IMPERSONATION_STATE {
 } SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
 
 typedef struct _SE_IMPERSONATION_STATE {
-  PACCESS_TOKEN Token;
-  BOOLEAN CopyOnOpen;
-  BOOLEAN EffectiveOnly;
-  SECURITY_IMPERSONATION_LEVEL Level;
+    PACCESS_TOKEN Token;
+    BOOLEAN CopyOnOpen;
+    BOOLEAN EffectiveOnly;
+    SECURITY_IMPERSONATION_LEVEL Level;
 } SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE;
 
 #define OWNER_SECURITY_INFORMATION       (0x00000001L)
 } SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE;
 
 #define OWNER_SECURITY_INFORMATION       (0x00000001L)
@@ -2108,9 +1618,9 @@ typedef enum _SECURITY_OPERATION_CODE {
 #define INITIAL_PRIVILEGE_COUNT           3
 
 typedef struct _INITIAL_PRIVILEGE_SET {
 #define INITIAL_PRIVILEGE_COUNT           3
 
 typedef struct _INITIAL_PRIVILEGE_SET {
-  ULONG PrivilegeCount;
-  ULONG Control;
-  LUID_AND_ATTRIBUTES Privilege[INITIAL_PRIVILEGE_COUNT];
+  ULONG  PrivilegeCount;
+  ULONG  Control;
+  LUID_AND_ATTRIBUTES  Privilege[INITIAL_PRIVILEGE_COUNT];
 } INITIAL_PRIVILEGE_SET, * PINITIAL_PRIVILEGE_SET;
 
 #define SE_MIN_WELL_KNOWN_PRIVILEGE         2
 } INITIAL_PRIVILEGE_SET, * PINITIAL_PRIVILEGE_SET;
 
 #define SE_MIN_WELL_KNOWN_PRIVILEGE         2
@@ -2151,38 +1661,35 @@ typedef struct _INITIAL_PRIVILEGE_SET {
 #define SE_MAX_WELL_KNOWN_PRIVILEGE         SE_CREATE_SYMBOLIC_LINK_PRIVILEGE
 
 typedef struct _SECURITY_SUBJECT_CONTEXT {
 #define SE_MAX_WELL_KNOWN_PRIVILEGE         SE_CREATE_SYMBOLIC_LINK_PRIVILEGE
 
 typedef struct _SECURITY_SUBJECT_CONTEXT {
-  PACCESS_TOKEN ClientToken;
-  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
-  PACCESS_TOKEN PrimaryToken;
-  PVOID ProcessAuditId;
+  PACCESS_TOKEN  ClientToken;
+  SECURITY_IMPERSONATION_LEVEL  ImpersonationLevel;
+  PACCESS_TOKEN  PrimaryToken;
+  PVOID  ProcessAuditId;
 } SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
 
 typedef struct _ACCESS_STATE {
 } SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
 
 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;
+  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 {
   union {
-    INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
-    PRIVILEGE_SET PrivilegeSet;
+    INITIAL_PRIVILEGE_SET  InitialPrivilegeSet;
+    PRIVILEGE_SET  PrivilegeSet;
   } Privileges;
   } Privileges;
-  BOOLEAN AuditPrivileges;
-  UNICODE_STRING ObjectName;
-  UNICODE_STRING ObjectTypeName;
+
+  BOOLEAN  AuditPrivileges;
+  UNICODE_STRING  ObjectName;
+  UNICODE_STRING  ObjectTypeName;
 } ACCESS_STATE, *PACCESS_STATE;
 
 } ACCESS_STATE, *PACCESS_STATE;
 
-typedef VOID
-(NTAPI *PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR)(
-  IN PVOID Vcb,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
 
 #ifndef _NTLSA_IFS_
 
 
 #ifndef _NTLSA_IFS_
 
@@ -2253,8 +1760,8 @@ typedef struct _SE_ADT_PARAMETER_ARRAY_ENTRY {
 
 typedef struct _SE_ADT_ACCESS_REASON {
   ACCESS_MASK AccessMask;
 
 typedef struct _SE_ADT_ACCESS_REASON {
   ACCESS_MASK AccessMask;
-  ULONG AccessReasons[32];
-  ULONG ObjectTypeIndex;
+  ULONG  AccessReasons[32];
+  ULONG  ObjectTypeIndex;
   ULONG AccessGranted;
   PSECURITY_DESCRIPTOR SecurityDescriptor;
 } SE_ADT_ACCESS_REASON, *PSE_ADT_ACCESS_REASON;
   ULONG AccessGranted;
   PSECURITY_DESCRIPTOR SecurityDescriptor;
 } SE_ADT_ACCESS_REASON, *PSE_ADT_ACCESS_REASON;
@@ -2273,6 +1780,7 @@ typedef struct _SE_ADT_PARAMETER_ARRAY {
 #endif /* !_NTLSA_AUDIT_ */
 #endif /* !_NTLSA_IFS_ */
 
 #endif /* !_NTLSA_AUDIT_ */
 #endif /* !_NTLSA_IFS_ */
 
+
 /******************************************************************************
  *                            Power Management Support Types                  *
  ******************************************************************************/
 /******************************************************************************
  *                            Power Management Support Types                  *
  ******************************************************************************/
@@ -2280,112 +1788,99 @@ typedef struct _SE_ADT_PARAMETER_ARRAY {
 #ifndef _PO_DDK_
 #define _PO_DDK_
 
 #ifndef _PO_DDK_
 #define _PO_DDK_
 
-#define PO_CB_SYSTEM_POWER_POLICY                0
-#define PO_CB_AC_STATUS                          1
-#define PO_CB_BUTTON_COLLISION                   2
-#define PO_CB_SYSTEM_STATE_LOCK                  3
-#define PO_CB_LID_SWITCH_STATE                   4
-#define PO_CB_PROCESSOR_POWER_POLICY             5
-
 /* Power States/Levels */
 typedef enum _SYSTEM_POWER_STATE {
 /* Power States/Levels */
 typedef enum _SYSTEM_POWER_STATE {
-  PowerSystemUnspecified = 0,
-  PowerSystemWorking,
-  PowerSystemSleeping1,
-  PowerSystemSleeping2,
-  PowerSystemSleeping3,
-  PowerSystemHibernate,
-  PowerSystemShutdown,
-  PowerSystemMaximum
+    PowerSystemUnspecified,
+    PowerSystemWorking,
+    PowerSystemSleeping1,
+    PowerSystemSleeping2,
+    PowerSystemSleeping3,
+    PowerSystemHibernate,
+    PowerSystemShutdown,
+    PowerSystemMaximum
 } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
 
 #define POWER_SYSTEM_MAXIMUM PowerSystemMaximum
 
 typedef enum _POWER_INFORMATION_LEVEL {
 } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
 
 #define POWER_SYSTEM_MAXIMUM PowerSystemMaximum
 
 typedef enum _POWER_INFORMATION_LEVEL {
-  SystemPowerPolicyAc,
-  SystemPowerPolicyDc,
-  VerifySystemPolicyAc,
-  VerifySystemPolicyDc,
-  SystemPowerCapabilities,
-  SystemBatteryState,
-  SystemPowerStateHandler,
-  ProcessorStateHandler,
-  SystemPowerPolicyCurrent,
-  AdministratorPowerPolicy,
-  SystemReserveHiberFile,
-  ProcessorInformation,
-  SystemPowerInformation,
-  ProcessorStateHandler2,
-  LastWakeTime,
-  LastSleepTime,
-  SystemExecutionState,
-  SystemPowerStateNotifyHandler,
-  ProcessorPowerPolicyAc,
-  ProcessorPowerPolicyDc,
-  VerifyProcessorPowerPolicyAc,
-  VerifyProcessorPowerPolicyDc,
-  ProcessorPowerPolicyCurrent,
-  SystemPowerStateLogging,
-  SystemPowerLoggingEntry,
-  SetPowerSettingValue,
-  NotifyUserPowerSetting,
-  PowerInformationLevelUnused0,
-  PowerInformationLevelUnused1,
-  SystemVideoState,
-  TraceApplicationPowerMessage,
-  TraceApplicationPowerMessageEnd,
-  ProcessorPerfStates,
-  ProcessorIdleStates,
-  ProcessorCap,
-  SystemWakeSource,
-  SystemHiberFileInformation,
-  TraceServicePowerMessage,
-  ProcessorLoad,
-  PowerShutdownNotification,
-  MonitorCapabilities,
-  SessionPowerInit,
-  SessionDisplayState,
-  PowerRequestCreate,
-  PowerRequestAction,
-  GetPowerRequestList,
-  ProcessorInformationEx,
-  NotifyUserModeLegacyPowerEvent,
-  GroupPark,
-  ProcessorIdleDomains,
-  WakeTimerList,
-  SystemHiberFileSize,
-  PowerInformationLevelMaximum
+    SystemPowerPolicyAc,
+    SystemPowerPolicyDc,
+    VerifySystemPolicyAc,
+    VerifySystemPolicyDc,
+    SystemPowerCapabilities,
+    SystemBatteryState,
+    SystemPowerStateHandler,
+    ProcessorStateHandler,
+    SystemPowerPolicyCurrent,
+    AdministratorPowerPolicy,
+    SystemReserveHiberFile,
+    ProcessorInformation,
+    SystemPowerInformation,
+    ProcessorStateHandler2,
+    LastWakeTime,
+    LastSleepTime,
+    SystemExecutionState,
+    SystemPowerStateNotifyHandler,
+    ProcessorPowerPolicyAc,
+    ProcessorPowerPolicyDc,
+    VerifyProcessorPowerPolicyAc,
+    VerifyProcessorPowerPolicyDc,
+    ProcessorPowerPolicyCurrent,
+    SystemPowerStateLogging,
+    SystemPowerLoggingEntry,
+    SetPowerSettingValue,
+    NotifyUserPowerSetting,
+    PowerInformationLevelUnused0,
+    PowerInformationLevelUnused1,
+    SystemVideoState,
+    TraceApplicationPowerMessage,
+    TraceApplicationPowerMessageEnd,
+    ProcessorPerfStates,
+    ProcessorIdleStates,
+    ProcessorCap,
+    SystemWakeSource,
+    SystemHiberFileInformation,
+    TraceServicePowerMessage,
+    ProcessorLoad,
+    PowerShutdownNotification,
+    MonitorCapabilities,
+    SessionPowerInit,
+    SessionDisplayState,
+    PowerRequestCreate,
+    PowerRequestAction,
+    GetPowerRequestList,
+    ProcessorInformationEx,
+    NotifyUserModeLegacyPowerEvent,
+    GroupPark,
+    ProcessorIdleDomains,
+    WakeTimerList,
+    SystemHiberFileSize,
+    PowerInformationLevelMaximum
 } POWER_INFORMATION_LEVEL;
 
 typedef enum {
 } POWER_INFORMATION_LEVEL;
 
 typedef enum {
-  PowerActionNone = 0,
-  PowerActionReserved,
-  PowerActionSleep,
-  PowerActionHibernate,
-  PowerActionShutdown,
-  PowerActionShutdownReset,
-  PowerActionShutdownOff,
-  PowerActionWarmEject
+    PowerActionNone,
+    PowerActionReserved,
+    PowerActionSleep,
+    PowerActionHibernate,
+    PowerActionShutdown,
+    PowerActionShutdownReset,
+    PowerActionShutdownOff,
+    PowerActionWarmEject
 } POWER_ACTION, *PPOWER_ACTION;
 
 typedef enum _DEVICE_POWER_STATE {
 } POWER_ACTION, *PPOWER_ACTION;
 
 typedef enum _DEVICE_POWER_STATE {
-  PowerDeviceUnspecified = 0,
-  PowerDeviceD0,
-  PowerDeviceD1,
-  PowerDeviceD2,
-  PowerDeviceD3,
-  PowerDeviceMaximum
+    PowerDeviceUnspecified,
+    PowerDeviceD0,
+    PowerDeviceD1,
+    PowerDeviceD2,
+    PowerDeviceD3,
+    PowerDeviceMaximum
 } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
 
 } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
 
-typedef enum _MONITOR_DISPLAY_STATE {
-  PowerMonitorOff = 0,
-  PowerMonitorOn,
-  PowerMonitorDim
-} MONITOR_DISPLAY_STATE, *PMONITOR_DISPLAY_STATE;
-
 typedef union _POWER_STATE {
 typedef union _POWER_STATE {
-  SYSTEM_POWER_STATE SystemState;
-  DEVICE_POWER_STATE DeviceState;
+  SYSTEM_POWER_STATE  SystemState;
+  DEVICE_POWER_STATE  DeviceState;
 } POWER_STATE, *PPOWER_STATE;
 
 typedef enum _POWER_STATE_TYPE {
 } POWER_STATE, *PPOWER_STATE;
 
 typedef enum _POWER_STATE_TYPE {
@@ -2393,297 +1888,39 @@ typedef enum _POWER_STATE_TYPE {
   DevicePowerState
 } POWER_STATE_TYPE, *PPOWER_STATE_TYPE;
 
   DevicePowerState
 } POWER_STATE_TYPE, *PPOWER_STATE_TYPE;
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-typedef struct _SYSTEM_POWER_STATE_CONTEXT {
-  union {
-    struct {
-      ULONG Reserved1:8;
-      ULONG TargetSystemState:4;
-      ULONG EffectiveSystemState:4;
-      ULONG CurrentSystemState:4;
-      ULONG IgnoreHibernationPath:1;
-      ULONG PseudoTransition:1;
-      ULONG Reserved2:10;
-    } DUMMYSTRUCTNAME;
-    ULONG ContextAsUlong;
-  } DUMMYUNIONNAME;
-} SYSTEM_POWER_STATE_CONTEXT, *PSYSTEM_POWER_STATE_CONTEXT;
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-typedef struct _COUNTED_REASON_CONTEXT {
-  ULONG Version;
-  ULONG Flags;
-  union {
-    struct {
-      UNICODE_STRING ResourceFileName;
-      USHORT ResourceReasonId;
-      ULONG StringCount;
-      PUNICODE_STRING ReasonStrings;
-    } DUMMYSTRUCTNAME;
-    UNICODE_STRING SimpleString;
-  } DUMMYUNIONNAME;
-} COUNTED_REASON_CONTEXT, *PCOUNTED_REASON_CONTEXT;
-#endif
-
-#define IOCTL_QUERY_DEVICE_POWER_STATE  \
-        CTL_CODE(FILE_DEVICE_BATTERY, 0x0, METHOD_BUFFERED, FILE_READ_ACCESS)
-
-#define IOCTL_SET_DEVICE_WAKE           \
-        CTL_CODE(FILE_DEVICE_BATTERY, 0x1, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
-#define IOCTL_CANCEL_DEVICE_WAKE        \
-        CTL_CODE(FILE_DEVICE_BATTERY, 0x2, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
-#define ES_SYSTEM_REQUIRED                       0x00000001
-#define ES_DISPLAY_REQUIRED                      0x00000002
-#define ES_USER_PRESENT                          0x00000004
-#define ES_CONTINUOUS                            0x80000000
-
-typedef ULONG EXECUTION_STATE, *PEXECUTION_STATE;
-
-typedef enum {
-  LT_DONT_CARE,
-  LT_LOWEST_LATENCY
-} LATENCY_TIME;
-
-#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
-#define DIAGNOSTIC_REASON_VERSION                0
-#define DIAGNOSTIC_REASON_SIMPLE_STRING          0x00000001
-#define DIAGNOSTIC_REASON_DETAILED_STRING        0x00000002
-#define DIAGNOSTIC_REASON_NOT_SPECIFIED          0x80000000
-#define DIAGNOSTIC_REASON_INVALID_FLAGS          (~0x80000003)
-#endif
-
-#define POWER_REQUEST_CONTEXT_VERSION            0
-#define POWER_REQUEST_CONTEXT_SIMPLE_STRING      0x00000001
-#define POWER_REQUEST_CONTEXT_DETAILED_STRING    0x00000002
-
-#define PowerRequestMaximum                      3
-
-typedef enum _POWER_REQUEST_TYPE {
-  PowerRequestDisplayRequired,
-  PowerRequestSystemRequired,
-  PowerRequestAwayModeRequired
-} POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE;
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-#define PDCAP_D0_SUPPORTED                       0x00000001
-#define PDCAP_D1_SUPPORTED                       0x00000002
-#define PDCAP_D2_SUPPORTED                       0x00000004
-#define PDCAP_D3_SUPPORTED                       0x00000008
-#define PDCAP_WAKE_FROM_D0_SUPPORTED             0x00000010
-#define PDCAP_WAKE_FROM_D1_SUPPORTED             0x00000020
-#define PDCAP_WAKE_FROM_D2_SUPPORTED             0x00000040
-#define PDCAP_WAKE_FROM_D3_SUPPORTED             0x00000080
-#define PDCAP_WARM_EJECT_SUPPORTED               0x00000100
-
-typedef struct CM_Power_Data_s {
-  ULONG PD_Size;
-  DEVICE_POWER_STATE PD_MostRecentPowerState;
-  ULONG PD_Capabilities;
-  ULONG PD_D1Latency;
-  ULONG PD_D2Latency;
-  ULONG PD_D3Latency;
-  DEVICE_POWER_STATE PD_PowerStateMapping[PowerSystemMaximum];
-  SYSTEM_POWER_STATE PD_DeepestSystemWake;
-} CM_POWER_DATA, *PCM_POWER_DATA;
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-typedef enum _SYSTEM_POWER_CONDITION {
-  PoAc,
-  PoDc,
-  PoHot,
-  PoConditionMaximum
-} SYSTEM_POWER_CONDITION;
-
-typedef struct _SET_POWER_SETTING_VALUE {
-  ULONG Version;
-  GUID Guid;
-  SYSTEM_POWER_CONDITION PowerCondition;
-  ULONG DataLength;
-  UCHAR Data[ANYSIZE_ARRAY];
-} SET_POWER_SETTING_VALUE, *PSET_POWER_SETTING_VALUE;
-
-#define POWER_SETTING_VALUE_VERSION              (0x1)
-
-typedef struct _NOTIFY_USER_POWER_SETTING {
-  GUID Guid;
-} NOTIFY_USER_POWER_SETTING, *PNOTIFY_USER_POWER_SETTING;
-
-typedef struct _APPLICATIONLAUNCH_SETTING_VALUE {
-  LARGE_INTEGER ActivationTime;
-  ULONG Flags;
-  ULONG ButtonInstanceID;
-} APPLICATIONLAUNCH_SETTING_VALUE, *PAPPLICATIONLAUNCH_SETTING_VALUE;
-
-typedef enum _POWER_PLATFORM_ROLE {
-  PlatformRoleUnspecified = 0,
-  PlatformRoleDesktop,
-  PlatformRoleMobile,
-  PlatformRoleWorkstation,
-  PlatformRoleEnterpriseServer,
-  PlatformRoleSOHOServer,
-  PlatformRoleAppliancePC,
-  PlatformRolePerformanceServer,
-  PlatformRoleMaximum
-} POWER_PLATFORM_ROLE;
-
 #if (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_)
 typedef struct {
 #if (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_)
 typedef struct {
-  ULONG Granularity;
-  ULONG Capacity;
+    ULONG Granularity;
+    ULONG Capacity;
 } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;
 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_) */
 
 #endif /* !_PO_DDK_ */
 
 } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;
 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_) */
 
 #endif /* !_PO_DDK_ */
 
-#define CORE_PARKING_POLICY_CHANGE_IDEAL         0
-#define CORE_PARKING_POLICY_CHANGE_SINGLE        1
-#define CORE_PARKING_POLICY_CHANGE_ROCKET        2
-#define CORE_PARKING_POLICY_CHANGE_MAX           CORE_PARKING_POLICY_CHANGE_ROCKET
-
-DEFINE_GUID(GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A );
-DEFINE_GUID(GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C );
-DEFINE_GUID(GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E );
-DEFINE_GUID(NO_SUBGROUP_GUID, 0xFEA3413E, 0x7E05, 0x4911, 0x9A, 0x71, 0x70, 0x03, 0x31, 0xF1, 0xC2, 0x94 );
-DEFINE_GUID(ALL_POWERSCHEMES_GUID, 0x68A1E95E, 0x13EA, 0x41E1, 0x80, 0x11, 0x0C, 0x49, 0x6C, 0xA4, 0x90, 0xB0 );
-DEFINE_GUID(GUID_POWERSCHEME_PERSONALITY, 0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7 );
-DEFINE_GUID(GUID_ACTIVE_POWERSCHEME, 0x31F9F286, 0x5084, 0x42FE, 0xB7, 0x20, 0x2B, 0x02, 0x64, 0x99, 0x37, 0x63 );
-DEFINE_GUID(GUID_VIDEO_SUBGROUP, 0x7516B95F, 0xF776, 0x4464, 0x8C, 0x53, 0x06, 0x16, 0x7F, 0x40, 0xCC, 0x99 );
-DEFINE_GUID(GUID_VIDEO_POWERDOWN_TIMEOUT, 0x3C0BC021, 0xC8A8, 0x4E07, 0xA9, 0x73, 0x6B, 0x14, 0xCB, 0xCB, 0x2B, 0x7E );
-DEFINE_GUID(GUID_VIDEO_ANNOYANCE_TIMEOUT, 0x82DBCF2D, 0xCD67, 0x40C5, 0xBF, 0xDC, 0x9F, 0x1A, 0x5C, 0xCD, 0x46, 0x63 );
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE, 0xEED904DF, 0xB142, 0x4183, 0xB1, 0x0B, 0x5A, 0x11, 0x97, 0xA3, 0x78, 0x64 );
-DEFINE_GUID(GUID_VIDEO_DIM_TIMEOUT, 0x17aaa29b, 0x8b43, 0x4b94, 0xaa, 0xfe, 0x35, 0xf6, 0x4d, 0xaa, 0xf1, 0xee);
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_POWERDOWN, 0x90959D22, 0xD6A1, 0x49B9, 0xAF, 0x93, 0xBC, 0xE8, 0x85, 0xAD, 0x33, 0x5B );
-DEFINE_GUID(GUID_MONITOR_POWER_ON, 0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA );
-DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS, 0xaded5e82L, 0xb909, 0x4619, 0x99, 0x49, 0xf5, 0xd7, 0x1d, 0xac, 0x0b, 0xcb);
-DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS, 0xf1fbfde2, 0xa960, 0x4165, 0x9f, 0x88, 0x50, 0x66, 0x79, 0x11, 0xce, 0x96);
-DEFINE_GUID(GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS, 0x8ffee2c6, 0x2d01, 0x46be, 0xad, 0xb9, 0x39, 0x8a, 0xdd, 0xc5, 0xb4, 0xff);
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS, 0xFBD9AA66, 0x9553, 0x4097, 0xBA, 0x44, 0xED, 0x6E, 0x9D, 0x65, 0xEA, 0xB8);
-DEFINE_GUID(GUID_SESSION_DISPLAY_STATE, 0x73A5E93A, 0x5BB1, 0x4F93, 0x89, 0x5B, 0xDB, 0xD0, 0xDA, 0x85, 0x59, 0x67 );
-DEFINE_GUID(GUID_CONSOLE_DISPLAY_STATE, 0x6fe69556, 0x704a, 0x47a0, 0x8f, 0x24, 0xc2, 0x8d, 0x93, 0x6f, 0xda, 0x47);
-DEFINE_GUID(GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23 );
-DEFINE_GUID(GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 0x5F, 0xBA, 0x8B, 0x14, 0x42 );
-DEFINE_GUID(GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E );
-DEFINE_GUID(GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63 );
-DEFINE_GUID(GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67 );
-DEFINE_GUID(GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 0xBE, 0x24, 0x2C, 0x8F, 0x20 );
-DEFINE_GUID(GUID_SLEEP_IDLE_THRESHOLD, 0x81cd32e0, 0x7833, 0x44f3, 0x87, 0x37, 0x70, 0x81, 0xf3, 0x8d, 0x1f, 0x70 );
-DEFINE_GUID(GUID_STANDBY_TIMEOUT, 0x29F6C1DB, 0x86DA, 0x48C5, 0x9F, 0xDB, 0xF2, 0xB6, 0x7B, 0x1F, 0x44, 0xDA );
-DEFINE_GUID(GUID_UNATTEND_SLEEP_TIMEOUT, 0x7bc4a2f9, 0xd8fc, 0x4469, 0xb0, 0x7b, 0x33, 0xeb, 0x78, 0x5a, 0xac, 0xa0 );
-DEFINE_GUID(GUID_HIBERNATE_TIMEOUT, 0x9D7815A6, 0x7EE4, 0x497E, 0x88, 0x88, 0x51, 0x5A, 0x05, 0xF0, 0x23, 0x64 );
-DEFINE_GUID(GUID_HIBERNATE_FASTS4_POLICY, 0x94AC6D29, 0x73CE, 0x41A6, 0x80, 0x9F, 0x63, 0x63, 0xBA, 0x21, 0xB4, 0x7E );
-DEFINE_GUID(GUID_CRITICAL_POWER_TRANSITION,  0xB7A27025, 0xE569, 0x46c2, 0xA5, 0x04, 0x2B, 0x96, 0xCA, 0xD2, 0x25, 0xA1);
-DEFINE_GUID(GUID_SYSTEM_AWAYMODE, 0x98A7F580, 0x01F7, 0x48AA, 0x9C, 0x0F, 0x44, 0x35, 0x2C, 0x29, 0xE5, 0xC0 );
-DEFINE_GUID(GUID_ALLOW_AWAYMODE, 0x25dfa149, 0x5dd1, 0x4736, 0xb5, 0xab, 0xe8, 0xa3, 0x7b, 0x5b, 0x81, 0x87 );
-DEFINE_GUID(GUID_ALLOW_STANDBY_STATES, 0xabfc2519, 0x3608, 0x4c2a, 0x94, 0xea, 0x17, 0x1b, 0x0e, 0xd5, 0x46, 0xab );
-DEFINE_GUID(GUID_ALLOW_RTC_WAKE, 0xBD3B718A, 0x0680, 0x4D9D, 0x8A, 0xB2, 0xE1, 0xD2, 0xB4, 0xAC, 0x80, 0x6D );
-DEFINE_GUID(GUID_ALLOW_SYSTEM_REQUIRED, 0xA4B195F5, 0x8225, 0x47D8, 0x80, 0x12, 0x9D, 0x41, 0x36, 0x97, 0x86, 0xE2 );
-DEFINE_GUID(GUID_SYSTEM_BUTTON_SUBGROUP, 0x4F971E89, 0xEEBD, 0x4455, 0xA8, 0xDE, 0x9E, 0x59, 0x04, 0x0E, 0x73, 0x47 );
-DEFINE_GUID(GUID_POWERBUTTON_ACTION, 0x7648EFA3, 0xDD9C, 0x4E3E, 0xB5, 0x66, 0x50, 0xF9, 0x29, 0x38, 0x62, 0x80 );
-DEFINE_GUID(GUID_POWERBUTTON_ACTION_FLAGS, 0x857E7FAC, 0x034B, 0x4704, 0xAB, 0xB1, 0xBC, 0xA5, 0x4A, 0xA3, 0x14, 0x78 );
-DEFINE_GUID(GUID_SLEEPBUTTON_ACTION, 0x96996BC0, 0xAD50, 0x47EC, 0x92, 0x3B, 0x6F, 0x41, 0x87, 0x4D, 0xD9, 0xEB );
-DEFINE_GUID(GUID_SLEEPBUTTON_ACTION_FLAGS, 0x2A160AB1, 0xB69D, 0x4743, 0xB7, 0x18, 0xBF, 0x14, 0x41, 0xD5, 0xE4, 0x93 );
-DEFINE_GUID(GUID_USERINTERFACEBUTTON_ACTION, 0xA7066653, 0x8D6C, 0x40A8, 0x91, 0x0E, 0xA1, 0xF5, 0x4B, 0x84, 0xC7, 0xE5 );
-DEFINE_GUID(GUID_LIDCLOSE_ACTION, 0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36 );
-DEFINE_GUID(GUID_LIDCLOSE_ACTION_FLAGS, 0x97E969AC, 0x0D6C, 0x4D08, 0x92, 0x7C, 0xD7, 0xBD, 0x7A, 0xD7, 0x85, 0x7B );
-DEFINE_GUID(GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4 );
-DEFINE_GUID(GUID_BATTERY_SUBGROUP, 0xE73A048D, 0xBF27, 0x4F12, 0x97, 0x31, 0x8B, 0x20, 0x76, 0xE8, 0x89, 0x1F );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_0, 0x637EA02F, 0xBBCB, 0x4015, 0x8E, 0x2C, 0xA1, 0xC7, 0xB9, 0xC0, 0xB5, 0x46 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_0, 0x9A66D8D7, 0x4FF7, 0x4EF9, 0xB5, 0xA2, 0x5A, 0x32, 0x6C, 0xA2, 0xA4, 0x69 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_0, 0x5dbb7c9f, 0x38e9, 0x40d2, 0x97, 0x49, 0x4f, 0x8a, 0x0e, 0x9f, 0x64, 0x0f );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_1, 0xD8742DCB, 0x3E6A, 0x4B3C, 0xB3, 0xFE, 0x37, 0x46, 0x23, 0xCD, 0xCF, 0x06 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_1, 0x8183BA9A, 0xE910, 0x48DA, 0x87, 0x69, 0x14, 0xAE, 0x6D, 0xC1, 0x17, 0x0A );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_1, 0xbcded951, 0x187b, 0x4d05, 0xbc, 0xcc, 0xf7, 0xe5, 0x19, 0x60, 0xc2, 0x58 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_2, 0x421CBA38, 0x1A8E, 0x4881, 0xAC, 0x89, 0xE3, 0x3A, 0x8B, 0x04, 0xEC, 0xE4 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_2, 0x07A07CA2, 0xADAF, 0x40D7, 0xB0, 0x77, 0x53, 0x3A, 0xAD, 0xED, 0x1B, 0xFA );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_2, 0x7fd2f0c4, 0xfeb7, 0x4da3, 0x81, 0x17, 0xe3, 0xfb, 0xed, 0xc4, 0x65, 0x82 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_3, 0x80472613, 0x9780, 0x455E, 0xB3, 0x08, 0x72, 0xD3, 0x00, 0x3C, 0xF2, 0xF8 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_3, 0x58AFD5A6, 0xC2DD, 0x47D2, 0x9F, 0xBF, 0xEF, 0x70, 0xCC, 0x5C, 0x59, 0x65 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_3, 0x73613ccf, 0xdbfa, 0x4279, 0x83, 0x56, 0x49, 0x35, 0xf6, 0xbf, 0x62, 0xf3 );
-DEFINE_GUID(GUID_PROCESSOR_SETTINGS_SUBGROUP, 0x54533251, 0x82BE, 0x4824, 0x96, 0xC1, 0x47, 0xB6, 0x0B, 0x74, 0x0D, 0x00 );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_POLICY, 0x57027304, 0x4AF6, 0x4104, 0x92, 0x60, 0xE3, 0xD9, 0x52, 0x48, 0xFC, 0x36 );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MAXIMUM, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xEC );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MINIMUM, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4C );
-DEFINE_GUID(GUID_PROCESSOR_ALLOW_THROTTLING, 0x3b04d4fd, 0x1cc7, 0x4f23, 0xab, 0x1c, 0xd1, 0x33, 0x78, 0x19, 0xc4, 0xbb );
-DEFINE_GUID(GUID_PROCESSOR_IDLESTATE_POLICY, 0x68f262a7, 0xf621, 0x4069, 0xb9, 0xa5, 0x48, 0x74, 0x16, 0x9b, 0xe2, 0x3c);
-DEFINE_GUID(GUID_PROCESSOR_PERFSTATE_POLICY, 0xBBDC3814, 0x18E9, 0x4463, 0x8A, 0x55, 0xD1, 0x97, 0x32, 0x7C, 0x45, 0xC0);
-DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_THRESHOLD, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5d );
-DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_THRESHOLD, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa6 );
-DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_POLICY, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x18);
-DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_POLICY, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc6);
-DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_TIME, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xaa);
-DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_TIME, 0xd8edeb9b, 0x95cf, 0x4f95, 0xa7, 0x3c, 0xb0, 0x61, 0x97, 0x36, 0x93, 0xc8);
-DEFINE_GUID(GUID_PROCESSOR_PERF_TIME_CHECK, 0x4d2b0152, 0x7d5c, 0x498b, 0x88, 0xe2, 0x34, 0x34, 0x53, 0x92, 0xa2, 0xc5);
-DEFINE_GUID(GUID_PROCESSOR_PERF_BOOST_POLICY, 0x45bcc044, 0xd885, 0x43e2, 0x86, 0x5, 0xee, 0xe, 0xc6, 0xe9, 0x6b, 0x59);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_ALLOW_SCALING, 0x6c2993b0, 0x8f48, 0x481f, 0xbc, 0xc6, 0x0, 0xdd, 0x27, 0x42, 0xaa, 0x6);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_DISABLE, 0x5d76a2ca, 0xe8c0, 0x402f, 0xa1, 0x33, 0x21, 0x58, 0x49, 0x2d, 0x58, 0xad);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_TIME_CHECK, 0xc4581c31, 0x89ab, 0x4597, 0x8e, 0x2b, 0x9c, 0x9c, 0xab, 0x44, 0xe, 0x6b);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD, 0x4b92d758, 0x5a24, 0x4851, 0xa4, 0x70, 0x81, 0x5d, 0x78, 0xae, 0xe1, 0x19);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD, 0x7b224883, 0xb3cc, 0x4d79, 0x81, 0x9f, 0x83, 0x74, 0x15, 0x2c, 0xbe, 0x7c);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD, 0xdf142941, 0x20f3, 0x4edf, 0x9a, 0x4a, 0x9c, 0x83, 0xd3, 0xd7, 0x17, 0xd1 );
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD, 0x68dd2f27, 0xa4ce, 0x4e11, 0x84, 0x87, 0x37, 0x94, 0xe4, 0x13, 0x5d, 0xfa);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY, 0xc7be0679, 0x2817, 0x4d69, 0x9d, 0x02, 0x51, 0x9a, 0x53, 0x7e, 0xd0, 0xc6);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY, 0x71021b41, 0xc749, 0x4d21, 0xbe, 0x74, 0xa0, 0x0f, 0x33, 0x5d, 0x58, 0x2b);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_MAX_CORES, 0xea062031, 0x0e34, 0x4ff1, 0x9b, 0x6d, 0xeb, 0x10, 0x59, 0x33, 0x40, 0x28);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_MIN_CORES, 0x0cc5b647, 0xc1df, 0x4637, 0x89, 0x1a, 0xde, 0xc3, 0x5c, 0x31, 0x85, 0x83);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME, 0x2ddd5a84, 0x5a71, 0x437e, 0x91, 0x2a, 0xdb, 0x0b, 0x8c, 0x78, 0x87, 0x32);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME, 0xdfd10d17, 0xd5eb, 0x45dd, 0x87, 0x7a, 0x9a, 0x34, 0xdd, 0xd1, 0x5c, 0x82);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR, 0x8f7b45e3, 0xc393, 0x480a, 0x87, 0x8c, 0xf6, 0x7a, 0xc3, 0xd0, 0x70, 0x82);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD, 0x5b33697b, 0xe89d, 0x4d38, 0xaa, 0x46, 0x9e, 0x7d, 0xfb, 0x7c, 0xd2, 0xf9);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING, 0xe70867f1, 0xfa2f, 0x4f4e, 0xae, 0xa1, 0x4d, 0x8a, 0x0b, 0xa2, 0x3b, 0x20);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR, 0x1299023c, 0xbc28, 0x4f0a, 0x81, 0xec, 0xd3, 0x29, 0x5a, 0x8d, 0x81, 0x5d);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD, 0x9ac18e92, 0xaa3c, 0x4e27, 0xb3, 0x07, 0x01, 0xae, 0x37, 0x30, 0x71, 0x29);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING, 0x8809c2d8, 0xb155, 0x42d4, 0xbc, 0xda, 0x0d, 0x34, 0x56, 0x51, 0xb1, 0xdb);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD, 0x943c8cb6, 0x6f93, 0x4227, 0xad, 0x87, 0xe9, 0xa3, 0xfe, 0xec, 0x08, 0xd1);
-DEFINE_GUID(GUID_PROCESSOR_PARKING_CORE_OVERRIDE, 0xa55612aa, 0xf624, 0x42c6, 0xa4, 0x43, 0x73, 0x97, 0xd0, 0x64, 0xc0, 0x4f);
-DEFINE_GUID(GUID_PROCESSOR_PARKING_PERF_STATE, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2b);
-DEFINE_GUID(GUID_PROCESSOR_PERF_HISTORY, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x5f);
-DEFINE_GUID(GUID_SYSTEM_COOLING_POLICY, 0x94D3A615, 0xA899, 0x4AC5, 0xAE, 0x2B, 0xE4, 0xD8, 0xF6, 0x34, 0x36, 0x7F);
-DEFINE_GUID(GUID_LOCK_CONSOLE_ON_WAKE, 0x0E796BDB, 0x100D, 0x47D6, 0xA2, 0xD5, 0xF7, 0xD2, 0xDA, 0xA5, 0x1F, 0x51 );
-DEFINE_GUID(GUID_DEVICE_IDLE_POLICY, 0x4faab71a, 0x92e5, 0x4726, 0xb5, 0x31, 0x22, 0x45, 0x59, 0x67, 0x2d, 0x19 );
-DEFINE_GUID(GUID_ACDC_POWER_SOURCE, 0x5D3E9A59, 0xE9D5, 0x4B00, 0xA6, 0xBD, 0xFF, 0x34, 0xFF, 0x51, 0x65, 0x48 );
-DEFINE_GUID(GUID_LIDSWITCH_STATE_CHANGE,  0xBA3E0F4D, 0xB817, 0x4094, 0xA2, 0xD1, 0xD5, 0x63, 0x79, 0xE6, 0xA0, 0xF3 );
-DEFINE_GUID(GUID_BATTERY_PERCENTAGE_REMAINING, 0xA7AD8041, 0xB45A, 0x4CAE, 0x87, 0xA3, 0xEE, 0xCB, 0xB4, 0x68, 0xA9, 0xE1 );
-DEFINE_GUID(GUID_IDLE_BACKGROUND_TASK, 0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1 );
-DEFINE_GUID(GUID_BACKGROUND_TASK_NOTIFICATION, 0xCF23F240, 0x2A54, 0x48D8, 0xB1, 0x14, 0xDE, 0x15, 0x18, 0xFF, 0x05, 0x2E );
-DEFINE_GUID(GUID_APPLAUNCH_BUTTON, 0x1A689231, 0x7399, 0x4E9A, 0x8F, 0x99, 0xB7, 0x1F, 0x99, 0x9D, 0xB3, 0xFA );
-DEFINE_GUID(GUID_PCIEXPRESS_SETTINGS_SUBGROUP, 0x501a4d13, 0x42af,0x4429, 0x9f, 0xd1, 0xa8, 0x21, 0x8c, 0x26, 0x8e, 0x20 );
-DEFINE_GUID(GUID_PCIEXPRESS_ASPM_POLICY, 0xee12f906, 0xd277, 0x404b, 0xb6, 0xda, 0xe5, 0xfa, 0x1a, 0x57, 0x6d, 0xf5 );
-DEFINE_GUID(GUID_ENABLE_SWITCH_FORCED_SHUTDOWN, 0x833a6b62, 0xdfa4, 0x46d1, 0x82, 0xf8, 0xe0, 0x9e, 0x34, 0xd0, 0x29, 0xd6 );
-
-#define PERFSTATE_POLICY_CHANGE_IDEAL            0
-#define PERFSTATE_POLICY_CHANGE_SINGLE           1
-#define PERFSTATE_POLICY_CHANGE_ROCKET           2
-#define PERFSTATE_POLICY_CHANGE_MAX              PERFSTATE_POLICY_CHANGE_ROCKET
-
-#define PROCESSOR_PERF_BOOST_POLICY_DISABLED     0
-#define PROCESSOR_PERF_BOOST_POLICY_MAX          100
-
-#define POWER_DEVICE_IDLE_POLICY_PERFORMANCE     0
-#define POWER_DEVICE_IDLE_POLICY_CONSERVATIVE    1
-
 typedef VOID
 typedef VOID
-(NTAPI REQUEST_POWER_COMPLETE)(
+(DDKAPI *PREQUEST_POWER_COMPLETE)(
   IN struct _DEVICE_OBJECT *DeviceObject,
   IN UCHAR MinorFunction,
   IN POWER_STATE PowerState,
   IN PVOID Context,
   IN struct _IO_STATUS_BLOCK *IoStatus);
   IN struct _DEVICE_OBJECT *DeviceObject,
   IN UCHAR MinorFunction,
   IN POWER_STATE PowerState,
   IN PVOID Context,
   IN struct _IO_STATUS_BLOCK *IoStatus);
-typedef REQUEST_POWER_COMPLETE *PREQUEST_POWER_COMPLETE;
 
 typedef
 NTSTATUS
 
 typedef
 NTSTATUS
-(NTAPI POWER_SETTING_CALLBACK)(
+(DDKAPI POWER_SETTING_CALLBACK)(
   IN LPCGUID SettingGuid,
   IN PVOID Value,
   IN ULONG ValueLength,
   IN OUT PVOID Context OPTIONAL);
   IN LPCGUID SettingGuid,
   IN PVOID Value,
   IN ULONG ValueLength,
   IN OUT PVOID Context OPTIONAL);
+
 typedef POWER_SETTING_CALLBACK *PPOWER_SETTING_CALLBACK;
 
 typedef POWER_SETTING_CALLBACK *PPOWER_SETTING_CALLBACK;
 
+#define PO_CB_SYSTEM_POWER_POLICY       0
+#define PO_CB_AC_STATUS                 1
+#define PO_CB_BUTTON_COLLISION          2
+#define PO_CB_SYSTEM_STATE_LOCK         3
+#define PO_CB_LID_SWITCH_STATE          4
+#define PO_CB_PROCESSOR_POWER_POLICY    5
 
 /******************************************************************************
  *                            Configuration Manager Types                     *
 
 /******************************************************************************
  *                            Configuration Manager Types                     *
@@ -2699,11 +1936,11 @@ typedef int CM_RESOURCE_TYPE;
 #define CmResourceTypeDma               4
 #define CmResourceTypeDeviceSpecific    5
 #define CmResourceTypeBusNumber         6
 #define CmResourceTypeDma               4
 #define CmResourceTypeDeviceSpecific    5
 #define CmResourceTypeBusNumber         6
-#define CmResourceTypeNonArbitrated     128
-#define CmResourceTypeConfigData        128
-#define CmResourceTypeDevicePrivate     129
-#define CmResourceTypePcCardConfig      130
-#define CmResourceTypeMfCardConfig      131
+#define CmResourceTypeNonArbitrated      128
+#define CmResourceTypeConfigData         128
+#define CmResourceTypeDevicePrivate      129
+#define CmResourceTypePcCardConfig       130
+#define CmResourceTypeMfCardConfig       131
 
 /* KEY_VALUE_Xxx.Type */
 #define REG_NONE                           0
 
 /* KEY_VALUE_Xxx.Type */
 #define REG_NONE                           0
@@ -2717,9 +1954,9 @@ typedef int CM_RESOURCE_TYPE;
 #define REG_MULTI_SZ                       7
 #define REG_RESOURCE_LIST                  8
 #define REG_FULL_RESOURCE_DESCRIPTOR       9
 #define REG_MULTI_SZ                       7
 #define REG_RESOURCE_LIST                  8
 #define REG_FULL_RESOURCE_DESCRIPTOR       9
-#define REG_RESOURCE_REQUIREMENTS_LIST     10
-#define REG_QWORD                          11
-#define REG_QWORD_LITTLE_ENDIAN            11
+#define REG_RESOURCE_REQUIREMENTS_LIST    10
+#define REG_QWORD                         11
+#define REG_QWORD_LITTLE_ENDIAN           11
 
 /* Registry Access Rights */
 #define KEY_QUERY_VALUE         (0x0001)
 
 /* Registry Access Rights */
 #define KEY_QUERY_VALUE         (0x0001)
@@ -2775,15 +2012,6 @@ typedef int CM_RESOURCE_TYPE;
                  REG_OPTION_BACKUP_RESTORE      |\
                  REG_OPTION_OPEN_LINK)
 
                  REG_OPTION_BACKUP_RESTORE      |\
                  REG_OPTION_OPEN_LINK)
 
-#define REG_OPEN_LEGAL_OPTION       \
-                (REG_OPTION_RESERVED            |\
-                 REG_OPTION_BACKUP_RESTORE      |\
-                 REG_OPTION_OPEN_LINK)
-
-#define REG_STANDARD_FORMAT            1
-#define REG_LATEST_FORMAT              2
-#define REG_NO_COMPRESSION             4
-
 /* Key creation/open disposition */
 #define REG_CREATED_NEW_KEY         (0x00000001L)
 #define REG_OPENED_EXISTING_KEY     (0x00000002L)
 /* Key creation/open disposition */
 #define REG_CREATED_NEW_KEY         (0x00000001L)
 #define REG_OPENED_EXISTING_KEY     (0x00000002L)
@@ -2799,7 +2027,6 @@ typedef int CM_RESOURCE_TYPE;
 #define REG_HIVE_EXACT_FILE_GROWTH      (0x00000080L)
 #define REG_HIVE_NO_RM                  (0x00000100L)
 #define REG_HIVE_SINGLE_LOG             (0x00000200L)
 #define REG_HIVE_EXACT_FILE_GROWTH      (0x00000080L)
 #define REG_HIVE_NO_RM                  (0x00000100L)
 #define REG_HIVE_SINGLE_LOG             (0x00000200L)
-#define REG_BOOT_HIVE                   (0x00000400L)
 
 /* Unload Flags */
 #define REG_FORCE_UNLOAD            1
 
 /* Unload Flags */
 #define REG_FORCE_UNLOAD            1
@@ -2816,6 +2043,27 @@ typedef int CM_RESOURCE_TYPE;
                  REG_NOTIFY_CHANGE_LAST_SET      |\
                  REG_NOTIFY_CHANGE_SECURITY)
 
                  REG_NOTIFY_CHANGE_LAST_SET      |\
                  REG_NOTIFY_CHANGE_SECURITY)
 
+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;
+
 #include <pshpack4.h>
 typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
   UCHAR Type;
 #include <pshpack4.h>
 typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
   UCHAR Type;
@@ -2915,15 +2163,15 @@ typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
 #define CmResourceTypeDeviceSpecific      5
 #define CmResourceTypeBusNumber           6
 #define CmResourceTypeMemoryLarge         7
 #define CmResourceTypeDeviceSpecific      5
 #define CmResourceTypeBusNumber           6
 #define CmResourceTypeMemoryLarge         7
-#define CmResourceTypeNonArbitrated       128
-#define CmResourceTypeConfigData          128
-#define CmResourceTypeDevicePrivate       129
-#define CmResourceTypePcCardConfig        130
-#define CmResourceTypeMfCardConfig        131
+#define CmResourceTypeNonArbitrated     128
+#define CmResourceTypeConfigData        128
+#define CmResourceTypeDevicePrivate     129
+#define CmResourceTypePcCardConfig      130
+#define CmResourceTypeMfCardConfig      131
 
 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition */
 typedef enum _CM_SHARE_DISPOSITION {
 
 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition */
 typedef enum _CM_SHARE_DISPOSITION {
-  CmResourceShareUndetermined = 0,
+  CmResourceShareUndetermined,
   CmResourceShareDeviceExclusive,
   CmResourceShareDriverExclusive,
   CmResourceShareShared
   CmResourceShareDeviceExclusive,
   CmResourceShareDriverExclusive,
   CmResourceShareShared
@@ -2946,10 +2194,6 @@ typedef enum _CM_SHARE_DISPOSITION {
 #define CM_RESOURCE_INTERRUPT_MESSAGE         0x0002
 #define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004
 
 #define CM_RESOURCE_INTERRUPT_MESSAGE         0x0002
 #define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004
 
-#define CM_RESOURCE_INTERRUPT_LEVEL_LATCHED_BITS 0x0001
-
-#define CM_RESOURCE_INTERRUPT_MESSAGE_TOKEN   ((ULONG)-2)
-
 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeMemory */
 #define CM_RESOURCE_MEMORY_READ_WRITE                    0x0000
 #define CM_RESOURCE_MEMORY_READ_ONLY                     0x0001
 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeMemory */
 #define CM_RESOURCE_MEMORY_READ_WRITE                    0x0000
 #define CM_RESOURCE_MEMORY_READ_ONLY                     0x0001
@@ -2963,15 +2207,6 @@ typedef enum _CM_SHARE_DISPOSITION {
 #define CM_RESOURCE_MEMORY_BAR                           0x0080
 #define CM_RESOURCE_MEMORY_COMPAT_FOR_INACCESSIBLE_RANGE 0x0100
 
 #define CM_RESOURCE_MEMORY_BAR                           0x0080
 #define CM_RESOURCE_MEMORY_COMPAT_FOR_INACCESSIBLE_RANGE 0x0100
 
-#define CM_RESOURCE_MEMORY_LARGE                         0x0E00
-#define CM_RESOURCE_MEMORY_LARGE_40                      0x0200
-#define CM_RESOURCE_MEMORY_LARGE_48                      0x0400
-#define CM_RESOURCE_MEMORY_LARGE_64                      0x0800
-
-#define CM_RESOURCE_MEMORY_LARGE_40_MAXLEN               0x000000FFFFFFFF00
-#define CM_RESOURCE_MEMORY_LARGE_48_MAXLEN               0x0000FFFFFFFF0000
-#define CM_RESOURCE_MEMORY_LARGE_64_MAXLEN               0xFFFFFFFF00000000
-
 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeDma */
 #define CM_RESOURCE_DMA_8                 0x0000
 #define CM_RESOURCE_DMA_16                0x0001
 /* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeDma */
 #define CM_RESOURCE_DMA_8                 0x0000
 #define CM_RESOURCE_DMA_16                0x0001
@@ -2982,92 +2217,33 @@ typedef enum _CM_SHARE_DISPOSITION {
 #define CM_RESOURCE_DMA_TYPE_B            0x0020
 #define CM_RESOURCE_DMA_TYPE_F            0x0040
 
 #define CM_RESOURCE_DMA_TYPE_B            0x0020
 #define CM_RESOURCE_DMA_TYPE_F            0x0040
 
-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;
-
-typedef enum _INTERFACE_TYPE {
-  InterfaceTypeUndefined = -1,
-  Internal,
-  Isa,
-  Eisa,
-  MicroChannel,
-  TurboChannel,
-  PCIBus,
-  VMEBus,
-  NuBus,
-  PCMCIABus,
-  CBus,
-  MPIBus,
-  MPSABus,
-  ProcessorInternal,
-  InternalPowerBus,
-  PNPISABus,
-  PNPBus,
-  Vmcs,
-  MaximumInterfaceType
-} INTERFACE_TYPE, *PINTERFACE_TYPE;
-
-typedef struct _CM_COMPONENT_INFORMATION {
-  DEVICE_FLAGS Flags;
-  ULONG Version;
-  ULONG Key;
-  KAFFINITY AffinityMask;
-} CM_COMPONENT_INFORMATION, *PCM_COMPONENT_INFORMATION;
-
-typedef struct _CM_ROM_BLOCK {
-  ULONG Address;
-  ULONG Size;
-} CM_ROM_BLOCK, *PCM_ROM_BLOCK;
-
 typedef struct _CM_PARTIAL_RESOURCE_LIST {
 typedef struct _CM_PARTIAL_RESOURCE_LIST {
-  USHORT Version;
-  USHORT Revision;
-  ULONG Count;
+  USHORT  Version;
+  USHORT  Revision;
+  ULONG  Count;
   CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
 } CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
 
 typedef struct _CM_FULL_RESOURCE_DESCRIPTOR {
   CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
 } CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
 
 typedef struct _CM_FULL_RESOURCE_DESCRIPTOR {
-  INTERFACE_TYPE InterfaceType;
-  ULONG BusNumber;
-  CM_PARTIAL_RESOURCE_LIST PartialResourceList;
+  INTERFACE_TYPE  InterfaceType;
+  ULONG  BusNumber;
+  CM_PARTIAL_RESOURCE_LIST  PartialResourceList;
 } CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;
 
 typedef struct _CM_RESOURCE_LIST {
 } CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;
 
 typedef struct _CM_RESOURCE_LIST {
-  ULONG Count;
-  CM_FULL_RESOURCE_DESCRIPTOR List[1];
+  ULONG  Count;
+  CM_FULL_RESOURCE_DESCRIPTOR  List[1];
 } CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;
 
 } CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;
 
-typedef struct _PNP_BUS_INFORMATION {
-  GUID BusTypeGuid;
-  INTERFACE_TYPE LegacyBusType;
-  ULONG BusNumber;
-} PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION;
-
 #include <pshpack1.h>
 #include <pshpack1.h>
-
 typedef struct _CM_INT13_DRIVE_PARAMETER {
 typedef struct _CM_INT13_DRIVE_PARAMETER {
-  USHORT DriveSelect;
-  ULONG MaxCylinders;
-  USHORT SectorsPerTrack;
-  USHORT MaxHeads;
-  USHORT NumberDrives;
+  USHORT  DriveSelect;
+  ULONG  MaxCylinders;
+  USHORT  SectorsPerTrack;
+  USHORT  MaxHeads;
+  USHORT  NumberDrives;
 } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER;
 
 } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER;
 
-typedef struct _CM_MCA_POS_DATA {
-  USHORT AdapterId;
-  UCHAR PosData1;
-  UCHAR PosData2;
-  UCHAR PosData3;
-  UCHAR PosData4;
-} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA;
-
 typedef struct _CM_PNP_BIOS_DEVICE_NODE {
   USHORT Size;
   UCHAR Node;
 typedef struct _CM_PNP_BIOS_DEVICE_NODE {
   USHORT Size;
   UCHAR Node;
@@ -3091,99 +2267,66 @@ typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK {
   USHORT RealModeDataBaseAddress;
   ULONG ProtectedModeDataBaseAddress;
 } CM_PNP_BIOS_INSTALLATION_CHECK, *PCM_PNP_BIOS_INSTALLATION_CHECK;
   USHORT RealModeDataBaseAddress;
   ULONG ProtectedModeDataBaseAddress;
 } CM_PNP_BIOS_INSTALLATION_CHECK, *PCM_PNP_BIOS_INSTALLATION_CHECK;
-
 #include <poppack.h>
 
 typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA {
 #include <poppack.h>
 
 typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA {
-  ULONG BytesPerSector;
-  ULONG NumberOfCylinders;
-  ULONG SectorsPerTrack;
-  ULONG NumberOfHeads;
+    ULONG BytesPerSector;
+    ULONG NumberOfCylinders;
+    ULONG SectorsPerTrack;
+    ULONG NumberOfHeads;
 } CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA;
 
 typedef struct _CM_KEYBOARD_DEVICE_DATA {
 } CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA;
 
 typedef struct _CM_KEYBOARD_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  UCHAR Type;
-  UCHAR Subtype;
-  USHORT KeyboardFlags;
+  USHORT  Version;
+  USHORT  Revision;
+  UCHAR  Type;
+  UCHAR  Subtype;
+  USHORT  KeyboardFlags;
 } CM_KEYBOARD_DEVICE_DATA, *PCM_KEYBOARD_DEVICE_DATA;
 
 } CM_KEYBOARD_DEVICE_DATA, *PCM_KEYBOARD_DEVICE_DATA;
 
-typedef struct _CM_SCSI_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  UCHAR HostIdentifier;
-} CM_SCSI_DEVICE_DATA, *PCM_SCSI_DEVICE_DATA;
+typedef struct _CM_MCA_POS_DATA {
+  USHORT  AdapterId;
+  UCHAR  PosData1;
+  UCHAR  PosData2;
+  UCHAR  PosData3;
+  UCHAR  PosData4;
+} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA;
 
 
-typedef struct _CM_VIDEO_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  ULONG VideoClock;
-} CM_VIDEO_DEVICE_DATA, *PCM_VIDEO_DEVICE_DATA;
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+typedef struct CM_Power_Data_s {
+  ULONG  PD_Size;
+  DEVICE_POWER_STATE  PD_MostRecentPowerState;
+  ULONG  PD_Capabilities;
+  ULONG  PD_D1Latency;
+  ULONG  PD_D2Latency;
+  ULONG  PD_D3Latency;
+  DEVICE_POWER_STATE  PD_PowerStateMapping[PowerSystemMaximum];
+  SYSTEM_POWER_STATE  PD_DeepestSystemWake;
+} CM_POWER_DATA, *PCM_POWER_DATA;
 
 
-typedef struct _CM_SONIC_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  USHORT DataConfigurationRegister;
-  UCHAR EthernetAddress[8];
-} CM_SONIC_DEVICE_DATA, *PCM_SONIC_DEVICE_DATA;
+#define PDCAP_D0_SUPPORTED                0x00000001
+#define PDCAP_D1_SUPPORTED                0x00000002
+#define PDCAP_D2_SUPPORTED                0x00000004
+#define PDCAP_D3_SUPPORTED                0x00000008
+#define PDCAP_WAKE_FROM_D0_SUPPORTED      0x00000010
+#define PDCAP_WAKE_FROM_D1_SUPPORTED      0x00000020
+#define PDCAP_WAKE_FROM_D2_SUPPORTED      0x00000040
+#define PDCAP_WAKE_FROM_D3_SUPPORTED      0x00000080
+#define PDCAP_WARM_EJECT_SUPPORTED        0x00000100
 
 
-typedef struct _CM_SERIAL_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  ULONG BaudClock;
-} CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA;
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 
-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;
+typedef struct _CM_SCSI_DEVICE_DATA {
+  USHORT  Version;
+  USHORT  Revision;
+  UCHAR  HostIdentifier;
+} CM_SCSI_DEVICE_DATA, *PCM_SCSI_DEVICE_DATA;
 
 
-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;
+typedef struct _CM_SERIAL_DEVICE_DATA {
+  USHORT  Version;
+  USHORT  Revision;
+  ULONG  BaudClock;
+} CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA;
 
 typedef enum _KEY_INFORMATION_CLASS {
   KeyBasicInformation,
 
 typedef enum _KEY_INFORMATION_CLASS {
   KeyBasicInformation,
@@ -3191,101 +2334,73 @@ typedef enum _KEY_INFORMATION_CLASS {
   KeyFullInformation,
   KeyNameInformation,
   KeyCachedInformation,
   KeyFullInformation,
   KeyNameInformation,
   KeyCachedInformation,
-  KeyFlagsInformation,
-  KeyVirtualizationInformation,
-  KeyHandleTagsInformation,
-  MaxKeyInfoClass
+  KeyFlagsInformation
 } KEY_INFORMATION_CLASS;
 
 typedef struct _KEY_BASIC_INFORMATION {
 } KEY_INFORMATION_CLASS;
 
 typedef struct _KEY_BASIC_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
-  ULONG TitleIndex;
-  ULONG NameLength;
-  WCHAR Name[1];
+  LARGE_INTEGER  LastWriteTime;
+  ULONG  TitleIndex;
+  ULONG  NameLength;
+  WCHAR  Name[1];
 } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
 
 } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
 
-typedef struct _KEY_CONTROL_FLAGS_INFORMATION {
-  ULONG ControlFlags;
-} KEY_CONTROL_FLAGS_INFORMATION, *PKEY_CONTROL_FLAGS_INFORMATION;
-
 typedef struct _KEY_FULL_INFORMATION {
 typedef struct _KEY_FULL_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
-  ULONG TitleIndex;
-  ULONG ClassOffset;
-  ULONG ClassLength;
-  ULONG SubKeys;
-  ULONG MaxNameLen;
-  ULONG MaxClassLen;
-  ULONG Values;
-  ULONG MaxValueNameLen;
-  ULONG MaxValueDataLen;
-  WCHAR Class[1];
+  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;
 
 } KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
 
-typedef struct _KEY_HANDLE_TAGS_INFORMATION {
-  ULONG HandleTags;
-} KEY_HANDLE_TAGS_INFORMATION, *PKEY_HANDLE_TAGS_INFORMATION;
-
 typedef struct _KEY_NODE_INFORMATION {
 typedef struct _KEY_NODE_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
-  ULONG TitleIndex;
-  ULONG ClassOffset;
-  ULONG ClassLength;
-  ULONG NameLength;
-  WCHAR Name[1];
+  LARGE_INTEGER  LastWriteTime;
+  ULONG  TitleIndex;
+  ULONG  ClassOffset;
+  ULONG  ClassLength;
+  ULONG  NameLength;
+  WCHAR  Name[1];
 } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION;
 
 } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION;
 
-typedef enum _KEY_SET_INFORMATION_CLASS {
-  KeyWriteTimeInformation,
-  KeyWow64FlagsInformation,
-  KeyControlFlagsInformation,
-  KeySetVirtualizationInformation,
-  KeySetDebugInformation,
-  KeySetHandleTagsInformation,
-  MaxKeySetInfoClass
-} KEY_SET_INFORMATION_CLASS;
-
-typedef struct _KEY_SET_VIRTUALIZATION_INFORMATION {
-  ULONG VirtualTarget:1;
-  ULONG VirtualStore:1;
-  ULONG VirtualSource:1;
-  ULONG Reserved:29;
-} KEY_SET_VIRTUALIZATION_INFORMATION, *PKEY_SET_VIRTUALIZATION_INFORMATION;
-
 typedef struct _KEY_VALUE_BASIC_INFORMATION {
 typedef struct _KEY_VALUE_BASIC_INFORMATION {
-  ULONG TitleIndex;
-  ULONG Type;
-  ULONG NameLength;
-  WCHAR Name[1];
+  ULONG  TitleIndex;
+  ULONG  Type;
+  ULONG  NameLength;
+  WCHAR  Name[1];
 } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;
 
 typedef struct _KEY_VALUE_FULL_INFORMATION {
 } 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];
+  ULONG  TitleIndex;
+  ULONG  Type;
+  ULONG  DataOffset;
+  ULONG  DataLength;
+  ULONG  NameLength;
+  WCHAR  Name[1];
 } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
 
 typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
 } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
 
 typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
-  ULONG TitleIndex;
-  ULONG Type;
-  ULONG DataLength;
-  UCHAR Data[1];
+  ULONG  TitleIndex;
+  ULONG  Type;
+  ULONG  DataLength;
+  UCHAR  Data[1];
 } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
 
 typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 {
 } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
 
 typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 {
-  ULONG Type;
-  ULONG DataLength;
-  UCHAR Data[1];
+  ULONG  Type;
+  ULONG  DataLength;
+  UCHAR  Data[1];
 } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
 
 typedef struct _KEY_VALUE_ENTRY {
 } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
 
 typedef struct _KEY_VALUE_ENTRY {
-  PUNICODE_STRING ValueName;
-  ULONG DataLength;
-  ULONG DataOffset;
-  ULONG Type;
+  PUNICODE_STRING  ValueName;
+  ULONG  DataLength;
+  ULONG  DataOffset;
+  ULONG  Type;
 } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;
 
 typedef enum _KEY_VALUE_INFORMATION_CLASS {
 } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;
 
 typedef enum _KEY_VALUE_INFORMATION_CLASS {
@@ -3296,14 +2411,20 @@ typedef enum _KEY_VALUE_INFORMATION_CLASS {
   KeyValuePartialInformationAlign64
 } KEY_VALUE_INFORMATION_CLASS;
 
   KeyValuePartialInformationAlign64
 } KEY_VALUE_INFORMATION_CLASS;
 
-typedef struct _KEY_WOW64_FLAGS_INFORMATION {
-  ULONG UserFlags;
-} KEY_WOW64_FLAGS_INFORMATION, *PKEY_WOW64_FLAGS_INFORMATION;
-
 typedef struct _KEY_WRITE_TIME_INFORMATION {
 typedef struct _KEY_WRITE_TIME_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
+  LARGE_INTEGER  LastWriteTime;
 } KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
 
 } KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
 
+typedef enum _KEY_SET_INFORMATION_CLASS {
+  KeyWriteTimeInformation,
+  KeyWow64FlagsInformation,
+  KeyControlFlagsInformation,
+  KeySetVirtualizationInformation,
+  KeySetDebugInformation,
+  KeySetHandleTagsInformation,
+  MaxKeySetInfoClass
+} KEY_SET_INFORMATION_CLASS;
+
 typedef enum _REG_NOTIFY_CLASS {
   RegNtDeleteKey,
   RegNtPreDeleteKey = RegNtDeleteKey,
 typedef enum _REG_NOTIFY_CLASS {
   RegNtDeleteKey,
   RegNtPreDeleteKey = RegNtDeleteKey,
@@ -3367,11 +2488,11 @@ typedef enum _REG_NOTIFY_CLASS {
 } REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS;
 
 typedef NTSTATUS
 } REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS;
 
 typedef NTSTATUS
-(NTAPI EX_CALLBACK_FUNCTION)(
-  IN PVOID CallbackContext,
-  IN PVOID Argument1,
-  IN PVOID Argument2);
-typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION;
+(NTAPI *PEX_CALLBACK_FUNCTION)(
+    IN PVOID CallbackContext,
+    IN PVOID Argument1,
+    IN PVOID Argument2
+);
 
 typedef struct _REG_DELETE_KEY_INFORMATION {
   PVOID Object;
 
 typedef struct _REG_DELETE_KEY_INFORMATION {
   PVOID Object;
@@ -3473,54 +2594,6 @@ typedef struct _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION {
   PVOID Reserved;
 } REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION;
 
   PVOID Reserved;
 } REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION;
 
-typedef struct _REG_RENAME_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING NewName;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_RENAME_KEY_INFORMATION, *PREG_RENAME_KEY_INFORMATION;
-
-typedef struct _REG_CREATE_KEY_INFORMATION {
-  PUNICODE_STRING CompleteName;
-  PVOID RootObject;
-  PVOID ObjectType;
-  ULONG CreateOptions;
-  PUNICODE_STRING Class;
-  PVOID SecurityDescriptor;
-  PVOID SecurityQualityOfService;
-  ACCESS_MASK DesiredAccess;
-  ACCESS_MASK GrantedAccess;
-  PULONG Disposition;
-  PVOID *ResultObject;
-  PVOID CallContext;
-  PVOID RootObjectContext;
-  PVOID Transaction;
-  PVOID Reserved;
-} REG_CREATE_KEY_INFORMATION, REG_OPEN_KEY_INFORMATION,*PREG_CREATE_KEY_INFORMATION, *PREG_OPEN_KEY_INFORMATION;
-
-typedef struct _REG_CREATE_KEY_INFORMATION_V1 {
-  PUNICODE_STRING CompleteName;
-  PVOID RootObject;
-  PVOID ObjectType;
-  ULONG Options;
-  PUNICODE_STRING Class;
-  PVOID SecurityDescriptor;
-  PVOID SecurityQualityOfService;
-  ACCESS_MASK DesiredAccess;
-  ACCESS_MASK GrantedAccess;
-  PULONG Disposition;
-  PVOID *ResultObject;
-  PVOID CallContext;
-  PVOID RootObjectContext;
-  PVOID Transaction;
-  ULONG_PTR Version;
-  PUNICODE_STRING RemainingName;
-  ULONG Wow64Flags;
-  ULONG Attributes;
-  KPROCESSOR_MODE CheckAccessMode;
-} REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION_V1,*PREG_CREATE_KEY_INFORMATION_V1, *PREG_OPEN_KEY_INFORMATION_V1;
-
 typedef struct _REG_PRE_CREATE_KEY_INFORMATION {
   PUNICODE_STRING CompleteName;
 } REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;;
 typedef struct _REG_PRE_CREATE_KEY_INFORMATION {
   PUNICODE_STRING CompleteName;
 } REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;;
@@ -3548,180 +2621,151 @@ typedef struct _REG_KEY_HANDLE_CLOSE_INFORMATION {
   PVOID Reserved;
 } REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION;
 
   PVOID Reserved;
 } REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION;
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-typedef struct _REG_LOAD_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING KeyName;
-  PUNICODE_STRING SourceFile;
-  ULONG Flags;
-  PVOID TrustClassObject;
-  PVOID UserEvent;
-  ACCESS_MASK DesiredAccess;
-  PHANDLE RootHandle;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_LOAD_KEY_INFORMATION, *PREG_LOAD_KEY_INFORMATION;
-
-typedef struct _REG_UNLOAD_KEY_INFORMATION {
-  PVOID Object;
-  PVOID UserEvent;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_UNLOAD_KEY_INFORMATION, *PREG_UNLOAD_KEY_INFORMATION;
+/******************************************************************************
+ *                         I/O Manager Types                                  *
+ ******************************************************************************/
 
 
-typedef struct _REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION {
-  PVOID Object;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION, *PREG_CALLBACK_CONTEXT_CLEANUP_INFORMATION;
+ /* PCI_COMMON_CONFIG.Command */
+#define PCI_ENABLE_IO_SPACE               0x0001
+#define PCI_ENABLE_MEMORY_SPACE           0x0002
+#define PCI_ENABLE_BUS_MASTER             0x0004
+#define PCI_ENABLE_SPECIAL_CYCLES         0x0008
+#define PCI_ENABLE_WRITE_AND_INVALIDATE   0x0010
+#define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020
+#define PCI_ENABLE_PARITY                 0x0040
+#define PCI_ENABLE_WAIT_CYCLE             0x0080
+#define PCI_ENABLE_SERR                   0x0100
+#define PCI_ENABLE_FAST_BACK_TO_BACK      0x0200
+#define PCI_DISABLE_LEVEL_INTERRUPT       0x0400
 
 
-typedef struct _REG_QUERY_KEY_SECURITY_INFORMATION {
-  PVOID Object;
-  PSECURITY_INFORMATION SecurityInformation;
-  PSECURITY_DESCRIPTOR SecurityDescriptor;
-  PULONG Length;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_QUERY_KEY_SECURITY_INFORMATION, *PREG_QUERY_KEY_SECURITY_INFORMATION;
-
-typedef struct _REG_SET_KEY_SECURITY_INFORMATION {
-  PVOID Object;
-  PSECURITY_INFORMATION SecurityInformation;
-  PSECURITY_DESCRIPTOR SecurityDescriptor;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_SET_KEY_SECURITY_INFORMATION, *PREG_SET_KEY_SECURITY_INFORMATION;
-
-typedef struct _REG_RESTORE_KEY_INFORMATION {
-  PVOID Object;
-  HANDLE FileHandle;
-  ULONG Flags;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_RESTORE_KEY_INFORMATION, *PREG_RESTORE_KEY_INFORMATION;
-
-typedef struct _REG_SAVE_KEY_INFORMATION {
-  PVOID Object;
-  HANDLE FileHandle;
-  ULONG Format;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_SAVE_KEY_INFORMATION, *PREG_SAVE_KEY_INFORMATION;
-
-typedef struct _REG_REPLACE_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING OldFileName;
-  PUNICODE_STRING NewFileName;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_REPLACE_KEY_INFORMATION, *PREG_REPLACE_KEY_INFORMATION;
-
-#endif /* NTDDI_VERSION >= NTDDI_VISTA */
+/* PCI_COMMON_CONFIG.Status */
+#define PCI_STATUS_INTERRUPT_PENDING      0x0008
+#define PCI_STATUS_CAPABILITIES_LIST      0x0010
+#define PCI_STATUS_66MHZ_CAPABLE          0x0020
+#define PCI_STATUS_UDF_SUPPORTED          0x0040
+#define PCI_STATUS_FAST_BACK_TO_BACK      0x0080
+#define PCI_STATUS_DATA_PARITY_DETECTED   0x0100
+#define PCI_STATUS_DEVSEL                 0x0600
+#define PCI_STATUS_SIGNALED_TARGET_ABORT  0x0800
+#define PCI_STATUS_RECEIVED_TARGET_ABORT  0x1000
+#define PCI_STATUS_RECEIVED_MASTER_ABORT  0x2000
+#define PCI_STATUS_SIGNALED_SYSTEM_ERROR  0x4000
+#define PCI_STATUS_DETECTED_PARITY_ERROR  0x8000
 
 
-#define SERVICE_KERNEL_DRIVER          0x00000001
-#define SERVICE_FILE_SYSTEM_DRIVER     0x00000002
-#define SERVICE_ADAPTER                0x00000004
-#define SERVICE_RECOGNIZER_DRIVER      0x00000008
+/* PCI_COMMON_CONFIG.HeaderType */
+#define PCI_MULTIFUNCTION                 0x80
+#define PCI_DEVICE_TYPE                   0x00
+#define PCI_BRIDGE_TYPE                   0x01
+#define PCI_CARDBUS_BRIDGE_TYPE           0x02
 
 
-#define SERVICE_DRIVER                 (SERVICE_KERNEL_DRIVER | \
-                                        SERVICE_FILE_SYSTEM_DRIVER | \
-                                        SERVICE_RECOGNIZER_DRIVER)
+#define PCI_CONFIGURATION_TYPE(PciData) \
+  (((PPCI_COMMON_CONFIG) (PciData))->HeaderType & ~PCI_MULTIFUNCTION)
 
 
-#define SERVICE_WIN32_OWN_PROCESS      0x00000010
-#define SERVICE_WIN32_SHARE_PROCESS    0x00000020
-#define SERVICE_WIN32                  (SERVICE_WIN32_OWN_PROCESS | \
-                                        SERVICE_WIN32_SHARE_PROCESS)
+#define PCI_MULTIFUNCTION_DEVICE(PciData) \
+  ((((PPCI_COMMON_CONFIG) (PciData))->HeaderType & PCI_MULTIFUNCTION) != 0)
 
 
-#define SERVICE_INTERACTIVE_PROCESS    0x00000100
+/* PCI device classes */
+#define PCI_CLASS_PRE_20                    0x00
+#define PCI_CLASS_MASS_STORAGE_CTLR         0x01
+#define PCI_CLASS_NETWORK_CTLR              0x02
+#define PCI_CLASS_DISPLAY_CTLR              0x03
+#define PCI_CLASS_MULTIMEDIA_DEV            0x04
+#define PCI_CLASS_MEMORY_CTLR               0x05
+#define PCI_CLASS_BRIDGE_DEV                0x06
+#define PCI_CLASS_SIMPLE_COMMS_CTLR         0x07
+#define PCI_CLASS_BASE_SYSTEM_DEV           0x08
+#define PCI_CLASS_INPUT_DEV                 0x09
+#define PCI_CLASS_DOCKING_STATION           0x0a
+#define PCI_CLASS_PROCESSOR                 0x0b
+#define PCI_CLASS_SERIAL_BUS_CTLR           0x0c
+#define PCI_CLASS_WIRELESS_CTLR             0x0d
+#define PCI_CLASS_INTELLIGENT_IO_CTLR       0x0e
+#define PCI_CLASS_SATELLITE_COMMS_CTLR      0x0f
+#define PCI_CLASS_ENCRYPTION_DECRYPTION     0x10
+#define PCI_CLASS_DATA_ACQ_SIGNAL_PROC      0x11
 
 
-#define SERVICE_TYPE_ALL               (SERVICE_WIN32  | \
-                                        SERVICE_ADAPTER | \
-                                        SERVICE_DRIVER  | \
-                                        SERVICE_INTERACTIVE_PROCESS)
+/* PCI device subclasses for class 0 */
+#define PCI_SUBCLASS_PRE_20_NON_VGA         0x00
+#define PCI_SUBCLASS_PRE_20_VGA             0x01
 
 
-/* Service Start Types */
-#define SERVICE_BOOT_START             0x00000000
-#define SERVICE_SYSTEM_START           0x00000001
-#define SERVICE_AUTO_START             0x00000002
-#define SERVICE_DEMAND_START           0x00000003
-#define SERVICE_DISABLED               0x00000004
+/* PCI device subclasses for class 1 (mass storage controllers)*/
+#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR      0x00
+#define PCI_SUBCLASS_MSC_IDE_CTLR           0x01
+#define PCI_SUBCLASS_MSC_FLOPPY_CTLR        0x02
+#define PCI_SUBCLASS_MSC_IPI_CTLR           0x03
+#define PCI_SUBCLASS_MSC_RAID_CTLR          0x04
+#define PCI_SUBCLASS_MSC_OTHER              0x80
 
 
-#define SERVICE_ERROR_IGNORE           0x00000000
-#define SERVICE_ERROR_NORMAL           0x00000001
-#define SERVICE_ERROR_SEVERE           0x00000002
-#define SERVICE_ERROR_CRITICAL         0x00000003
-
-typedef enum _CM_SERVICE_NODE_TYPE {
-  DriverType = SERVICE_KERNEL_DRIVER,
-  FileSystemType = SERVICE_FILE_SYSTEM_DRIVER,
-  Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS,
-  Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,
-  AdapterType = SERVICE_ADAPTER,
-  RecognizerType = SERVICE_RECOGNIZER_DRIVER
-} SERVICE_NODE_TYPE;
-
-typedef enum _CM_SERVICE_LOAD_TYPE {
-  BootLoad = SERVICE_BOOT_START,
-  SystemLoad = SERVICE_SYSTEM_START,
-  AutoLoad = SERVICE_AUTO_START,
-  DemandLoad = SERVICE_DEMAND_START,
-  DisableLoad = SERVICE_DISABLED
-} SERVICE_LOAD_TYPE;
-
-typedef enum _CM_ERROR_CONTROL_TYPE {
-  IgnoreError = SERVICE_ERROR_IGNORE,
-  NormalError = SERVICE_ERROR_NORMAL,
-  SevereError = SERVICE_ERROR_SEVERE,
-  CriticalError = SERVICE_ERROR_CRITICAL
-} SERVICE_ERROR_TYPE;
-
-#define CM_SERVICE_NETWORK_BOOT_LOAD      0x00000001
-#define CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD 0x00000002
-#define CM_SERVICE_USB_DISK_BOOT_LOAD     0x00000004
-
-#define CM_SERVICE_VALID_PROMOTION_MASK (CM_SERVICE_NETWORK_BOOT_LOAD |       \
-                                         CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD |  \
-                                         CM_SERVICE_USB_DISK_BOOT_LOAD)
+/* PCI device subclasses for class 2 (network controllers)*/
+#define PCI_SUBCLASS_NET_ETHERNET_CTLR      0x00
+#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR    0x01
+#define PCI_SUBCLASS_NET_FDDI_CTLR          0x02
+#define PCI_SUBCLASS_NET_ATM_CTLR           0x03
+#define PCI_SUBCLASS_NET_ISDN_CTLR          0x04
+#define PCI_SUBCLASS_NET_OTHER              0x80
 
 
-/******************************************************************************
- *                         I/O Manager Types                                  *
- ******************************************************************************/
+/* PCI device subclasses for class 3 (display controllers)*/
+#define PCI_SUBCLASS_VID_VGA_CTLR           0x00
+#define PCI_SUBCLASS_VID_XGA_CTLR           0x01
+#define PCI_SUBCLASS_VID_3D_CTLR            0x02
+#define PCI_SUBCLASS_VID_OTHER              0x80
 
 
-#define WDM_MAJORVERSION        0x06
-#define WDM_MINORVERSION        0x00
+/* PCI device subclasses for class 4 (multimedia device)*/
+#define PCI_SUBCLASS_MM_VIDEO_DEV           0x00
+#define PCI_SUBCLASS_MM_AUDIO_DEV           0x01
+#define PCI_SUBCLASS_MM_TELEPHONY_DEV       0x02
+#define PCI_SUBCLASS_MM_OTHER               0x80
 
 
-#if defined(_WIN64)
+/* PCI device subclasses for class 5 (memory controller)*/
+#define PCI_SUBCLASS_MEM_RAM                0x00
+#define PCI_SUBCLASS_MEM_FLASH              0x01
+#define PCI_SUBCLASS_MEM_OTHER              0x80
 
 
-#ifndef USE_DMA_MACROS
-#define USE_DMA_MACROS
-#endif
+/* PCI device subclasses for class 6 (bridge device)*/
+#define PCI_SUBCLASS_BR_HOST                0x00
+#define PCI_SUBCLASS_BR_ISA                 0x01
+#define PCI_SUBCLASS_BR_EISA                0x02
+#define PCI_SUBCLASS_BR_MCA                 0x03
+#define PCI_SUBCLASS_BR_PCI_TO_PCI          0x04
+#define PCI_SUBCLASS_BR_PCMCIA              0x05
+#define PCI_SUBCLASS_BR_NUBUS               0x06
+#define PCI_SUBCLASS_BR_CARDBUS             0x07
+#define PCI_SUBCLASS_BR_RACEWAY             0x08
+#define PCI_SUBCLASS_BR_OTHER               0x80
 
 
-#ifndef NO_LEGACY_DRIVERS
-#define NO_LEGACY_DRIVERS
-#endif
+/* PCI device subclasses for class C (serial bus controller)*/
+#define PCI_SUBCLASS_SB_IEEE1394            0x00
+#define PCI_SUBCLASS_SB_ACCESS              0x01
+#define PCI_SUBCLASS_SB_SSA                 0x02
+#define PCI_SUBCLASS_SB_USB                 0x03
+#define PCI_SUBCLASS_SB_FIBRE_CHANNEL       0x04
+#define PCI_SUBCLASS_SB_SMBUS               0x05
 
 
-#endif /* defined(_WIN64) */
+#define PCI_MAX_DEVICES        32
+#define PCI_MAX_FUNCTION       8
+#define PCI_MAX_BRIDGE_NUMBER  0xFF
+#define PCI_INVALID_VENDORID   0xFFFF
+#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET(PCI_COMMON_CONFIG, DeviceSpecific))
 
 
-#define STATUS_CONTINUE_COMPLETION      STATUS_SUCCESS
+#define PCI_ADDRESS_IO_SPACE                0x00000001
+#define PCI_ADDRESS_MEMORY_TYPE_MASK        0x00000006
+#define PCI_ADDRESS_MEMORY_PREFETCHABLE     0x00000008
+#define PCI_ADDRESS_IO_ADDRESS_MASK         0xfffffffc
+#define PCI_ADDRESS_MEMORY_ADDRESS_MASK     0xfffffff0
+#define PCI_ADDRESS_ROM_ADDRESS_MASK        0xfffff800
 
 
-#define CONNECT_FULLY_SPECIFIED         0x1
-#define CONNECT_LINE_BASED              0x2
-#define CONNECT_MESSAGE_BASED           0x3
-#define CONNECT_FULLY_SPECIFIED_GROUP   0x4
-#define CONNECT_CURRENT_VERSION         0x4
+#define PCI_TYPE_32BIT 0
+#define PCI_TYPE_20BIT 2
+#define PCI_TYPE_64BIT 4
 
 #define POOL_COLD_ALLOCATION                256
 #define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE    8
 #define POOL_RAISE_IF_ALLOCATION_FAILURE    16
 
 
 #define POOL_COLD_ALLOCATION                256
 #define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE    8
 #define POOL_RAISE_IF_ALLOCATION_FAILURE    16
 
+#define PCI_TYPE0_ADDRESSES               6
+#define PCI_TYPE1_ADDRESSES               2
+#define PCI_TYPE2_ADDRESSES               5
+
 #define IO_TYPE_ADAPTER                 1
 #define IO_TYPE_CONTROLLER              2
 #define IO_TYPE_DEVICE                  3
 #define IO_TYPE_ADAPTER                 1
 #define IO_TYPE_CONTROLLER              2
 #define IO_TYPE_DEVICE                  3
@@ -3745,6 +2789,47 @@ typedef enum _CM_ERROR_CONTROL_TYPE {
 #define IO_RESOURCE_DEFAULT               0x02
 #define IO_RESOURCE_ALTERNATIVE           0x08
 
 #define IO_RESOURCE_DEFAULT               0x02
 #define IO_RESOURCE_ALTERNATIVE           0x08
 
+/* DEVICE_OBJECT.Flags */
+#define DO_VERIFY_VOLUME                  0x00000002
+#define DO_BUFFERED_IO                    0x00000004
+#define DO_EXCLUSIVE                      0x00000008
+#define DO_DIRECT_IO                      0x00000010
+#define DO_MAP_IO_BUFFER                  0x00000020
+#define DO_DEVICE_INITIALIZING            0x00000080
+#define DO_SHUTDOWN_REGISTERED            0x00000800
+#define DO_BUS_ENUMERATED_DEVICE          0x00001000
+#define DO_POWER_PAGABLE                  0x00002000
+#define DO_POWER_INRUSH                   0x00004000
+
+/* DEVICE_OBJECT.Characteristics */
+#define FILE_REMOVABLE_MEDIA              0x00000001
+#define FILE_READ_ONLY_DEVICE             0x00000002
+#define FILE_FLOPPY_DISKETTE              0x00000004
+#define FILE_WRITE_ONCE_MEDIA             0x00000008
+#define FILE_REMOTE_DEVICE                0x00000010
+#define FILE_DEVICE_IS_MOUNTED            0x00000020
+#define FILE_VIRTUAL_VOLUME               0x00000040
+#define FILE_AUTOGENERATED_DEVICE_NAME    0x00000080
+#define FILE_DEVICE_SECURE_OPEN           0x00000100
+#define FILE_CHARACTERISTIC_PNP_DEVICE    0x00000800
+#define FILE_CHARACTERISTIC_TS_DEVICE     0x00001000
+#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
+
+/* DEVICE_OBJECT.AlignmentRequirement */
+#define FILE_BYTE_ALIGNMENT             0x00000000
+#define FILE_WORD_ALIGNMENT             0x00000001
+#define FILE_LONG_ALIGNMENT             0x00000003
+#define FILE_QUAD_ALIGNMENT             0x00000007
+#define FILE_OCTA_ALIGNMENT             0x0000000f
+#define FILE_32_BYTE_ALIGNMENT          0x0000001f
+#define FILE_64_BYTE_ALIGNMENT          0x0000003f
+#define FILE_128_BYTE_ALIGNMENT         0x0000007f
+#define FILE_256_BYTE_ALIGNMENT         0x000000ff
+#define FILE_512_BYTE_ALIGNMENT         0x000001ff
+
+/* DEVICE_OBJECT.DeviceType */
+#define DEVICE_TYPE ULONG
+
 #define FILE_DEVICE_BEEP                  0x00000001
 #define FILE_DEVICE_CD_ROM                0x00000002
 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM    0x00000003
 #define FILE_DEVICE_BEEP                  0x00000001
 #define FILE_DEVICE_CD_ROM                0x00000002
 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM    0x00000003
@@ -3813,44 +2898,6 @@ typedef enum _CM_ERROR_CONTROL_TYPE {
 #define FILE_DEVICE_BIOMETRIC             0x00000044
 #define FILE_DEVICE_PMI                   0x00000045
 
 #define FILE_DEVICE_BIOMETRIC             0x00000044
 #define FILE_DEVICE_PMI                   0x00000045
 
-#if defined(NT_PROCESSOR_GROUPS)
-
-typedef USHORT IRQ_DEVICE_POLICY, *PIRQ_DEVICE_POLICY;
-
-typedef enum _IRQ_DEVICE_POLICY_USHORT {
-  IrqPolicyMachineDefault = 0,
-  IrqPolicyAllCloseProcessors = 1,
-  IrqPolicyOneCloseProcessor = 2,
-  IrqPolicyAllProcessorsInMachine = 3,
-  IrqPolicyAllProcessorsInGroup = 3,
-  IrqPolicySpecifiedProcessors = 4,
-  IrqPolicySpreadMessagesAcrossAllProcessors = 5};
-
-#else /* defined(NT_PROCESSOR_GROUPS) */
-
-typedef enum _IRQ_DEVICE_POLICY {
-  IrqPolicyMachineDefault = 0,
-  IrqPolicyAllCloseProcessors,
-  IrqPolicyOneCloseProcessor,
-  IrqPolicyAllProcessorsInMachine,
-  IrqPolicySpecifiedProcessors,
-  IrqPolicySpreadMessagesAcrossAllProcessors
-} IRQ_DEVICE_POLICY, *PIRQ_DEVICE_POLICY;
-
-#endif
-
-typedef enum _IRQ_PRIORITY {
-  IrqPriorityUndefined = 0,
-  IrqPriorityLow,
-  IrqPriorityNormal,
-  IrqPriorityHigh
-} IRQ_PRIORITY, *PIRQ_PRIORITY;
-
-typedef enum _IRQ_GROUP_POLICY {
-  GroupAffinityAllGroupZero = 0,
-  GroupAffinityDontCare
-} IRQ_GROUP_POLICY, *PIRQ_GROUP_POLICY;
-
 #define MAXIMUM_VOLUME_LABEL_LENGTH       (32 * sizeof(WCHAR))
 
 typedef struct _OBJECT_HANDLE_INFORMATION {
 #define MAXIMUM_VOLUME_LABEL_LENGTH       (32 * sizeof(WCHAR))
 
 typedef struct _OBJECT_HANDLE_INFORMATION {
@@ -3859,20 +2906,24 @@ typedef struct _OBJECT_HANDLE_INFORMATION {
 } OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION;
 
 typedef struct _CLIENT_ID {
 } OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION;
 
 typedef struct _CLIENT_ID {
-  HANDLE UniqueProcess;
-  HANDLE UniqueThread;
+  HANDLE  UniqueProcess;
+  HANDLE  UniqueThread;
 } CLIENT_ID, *PCLIENT_ID;
 
 } CLIENT_ID, *PCLIENT_ID;
 
+typedef VOID
+(DDKAPI *PKSTART_ROUTINE)(
+  IN PVOID  StartContext);
+
 typedef struct _VPB {
 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[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)];
+  CSHORT  Type;
+  CSHORT  Size;
+  USHORT  Flags;
+  USHORT  VolumeLabelLength;
+  struct _DEVICE_OBJECT  *DeviceObject;
+  struct _DEVICE_OBJECT  *RealDevice;
+  ULONG  SerialNumber;
+  ULONG  ReferenceCount;
+  WCHAR  VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)];
 } VPB, *PVPB;
 
 typedef enum _IO_ALLOCATION_ACTION {
 } VPB, *PVPB;
 
 typedef enum _IO_ALLOCATION_ACTION {
@@ -3882,370 +2933,190 @@ typedef enum _IO_ALLOCATION_ACTION {
 } IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
 
 typedef IO_ALLOCATION_ACTION
 } IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
 
 typedef IO_ALLOCATION_ACTION
-(NTAPI DRIVER_CONTROL)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN PVOID MapRegisterBase,
-  IN PVOID Context);
-typedef DRIVER_CONTROL *PDRIVER_CONTROL;
+(DDKAPI *PDRIVER_CONTROL)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN PVOID  MapRegisterBase,
+  IN PVOID  Context);
 
 typedef struct _WAIT_CONTEXT_BLOCK {
 
 typedef struct _WAIT_CONTEXT_BLOCK {
-  KDEVICE_QUEUE_ENTRY WaitQueueEntry;
-  PDRIVER_CONTROL DeviceRoutine;
-  PVOID DeviceContext;
-  ULONG NumberOfMapRegisters;
-  PVOID DeviceObject;
-  PVOID CurrentIrp;
-  PKDPC BufferChainingDpc;
+  KDEVICE_QUEUE_ENTRY  WaitQueueEntry;
+  PDRIVER_CONTROL  DeviceRoutine;
+  PVOID  DeviceContext;
+  ULONG  NumberOfMapRegisters;
+  PVOID  DeviceObject;
+  PVOID  CurrentIrp;
+  PKDPC  BufferChainingDpc;
 } WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;
 
 } WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;
 
-/* DEVICE_OBJECT.Flags */
-#define DO_VERIFY_VOLUME                  0x00000002
-#define DO_BUFFERED_IO                    0x00000004
-#define DO_EXCLUSIVE                      0x00000008
-#define DO_DIRECT_IO                      0x00000010
-#define DO_MAP_IO_BUFFER                  0x00000020
-#define DO_DEVICE_INITIALIZING            0x00000080
-#define DO_SHUTDOWN_REGISTERED            0x00000800
-#define DO_BUS_ENUMERATED_DEVICE          0x00001000
-#define DO_POWER_PAGABLE                  0x00002000
-#define DO_POWER_INRUSH                   0x00004000
-
-/* DEVICE_OBJECT.Characteristics */
-#define FILE_REMOVABLE_MEDIA              0x00000001
-#define FILE_READ_ONLY_DEVICE             0x00000002
-#define FILE_FLOPPY_DISKETTE              0x00000004
-#define FILE_WRITE_ONCE_MEDIA             0x00000008
-#define FILE_REMOTE_DEVICE                0x00000010
-#define FILE_DEVICE_IS_MOUNTED            0x00000020
-#define FILE_VIRTUAL_VOLUME               0x00000040
-#define FILE_AUTOGENERATED_DEVICE_NAME    0x00000080
-#define FILE_DEVICE_SECURE_OPEN           0x00000100
-#define FILE_CHARACTERISTIC_PNP_DEVICE    0x00000800
-#define FILE_CHARACTERISTIC_TS_DEVICE     0x00001000
-#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
-
-/* DEVICE_OBJECT.AlignmentRequirement */
-#define FILE_BYTE_ALIGNMENT             0x00000000
-#define FILE_WORD_ALIGNMENT             0x00000001
-#define FILE_LONG_ALIGNMENT             0x00000003
-#define FILE_QUAD_ALIGNMENT             0x00000007
-#define FILE_OCTA_ALIGNMENT             0x0000000f
-#define FILE_32_BYTE_ALIGNMENT          0x0000001f
-#define FILE_64_BYTE_ALIGNMENT          0x0000003f
-#define FILE_128_BYTE_ALIGNMENT         0x0000007f
-#define FILE_256_BYTE_ALIGNMENT         0x000000ff
-#define FILE_512_BYTE_ALIGNMENT         0x000001ff
-
-/* DEVICE_OBJECT.DeviceType */
-#define DEVICE_TYPE ULONG
-
 typedef struct _DEVICE_OBJECT {
 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;
-  volatile PVPB Vpb;
-  PVOID DeviceExtension;
-  DEVICE_TYPE DeviceType;
-  CCHAR StackSize;
+  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;
+  volatile PVPB  Vpb;
+  PVOID  DeviceExtension;
+  DEVICE_TYPE  DeviceType;
+  CCHAR  StackSize;
   union {
   union {
-    LIST_ENTRY ListEntry;
-    WAIT_CONTEXT_BLOCK Wcb;
+    LIST_ENTRY  ListEntry;
+    WAIT_CONTEXT_BLOCK  Wcb;
   } Queue;
   } 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;
+  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, *PDEVICE_OBJECT;
 
 } DEVICE_OBJECT, *PDEVICE_OBJECT;
 
-typedef enum _IO_SESSION_STATE {
-  IoSessionStateCreated = 1,
-  IoSessionStateInitialized,
-  IoSessionStateConnected,
-  IoSessionStateDisconnected,
-  IoSessionStateDisconnectedLoggedOn,
-  IoSessionStateLoggedOn,
-  IoSessionStateLoggedOff,
-  IoSessionStateTerminated,
-  IoSessionStateMax
-} IO_SESSION_STATE, *PIO_SESSION_STATE;
-
-typedef enum _IO_COMPLETION_ROUTINE_RESULT {
-  ContinueCompletion = STATUS_CONTINUE_COMPLETION,
-  StopCompletion = STATUS_MORE_PROCESSING_REQUIRED
-} IO_COMPLETION_ROUTINE_RESULT, *PIO_COMPLETION_ROUTINE_RESULT;
-
-typedef struct _IO_INTERRUPT_MESSAGE_INFO_ENTRY {
-  PHYSICAL_ADDRESS MessageAddress;
-  KAFFINITY TargetProcessorSet;
-  PKINTERRUPT InterruptObject;
-  ULONG MessageData;
-  ULONG Vector;
-  KIRQL Irql;
-  KINTERRUPT_MODE Mode;
-  KINTERRUPT_POLARITY Polarity;
-} IO_INTERRUPT_MESSAGE_INFO_ENTRY, *PIO_INTERRUPT_MESSAGE_INFO_ENTRY;
-
-typedef struct _IO_INTERRUPT_MESSAGE_INFO {
-  KIRQL UnifiedIrql;
-  ULONG MessageCount;
-  IO_INTERRUPT_MESSAGE_INFO_ENTRY MessageInfo[1];
-} IO_INTERRUPT_MESSAGE_INFO, *PIO_INTERRUPT_MESSAGE_INFO;
-
-typedef struct _IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  OUT PKINTERRUPT *InterruptObject;
-  IN PKSERVICE_ROUTINE ServiceRoutine;
-  IN PVOID ServiceContext;
-  IN PKSPIN_LOCK SpinLock OPTIONAL;
-  IN KIRQL SynchronizeIrql;
-  IN BOOLEAN FloatingSave;
-  IN BOOLEAN ShareVector;
-  IN ULONG Vector;
-  IN KIRQL Irql;
-  IN KINTERRUPT_MODE InterruptMode;
-  IN KAFFINITY ProcessorEnableMask;
-  IN USHORT Group;
-} IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS, *PIO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS;
-
-typedef struct _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  OUT PKINTERRUPT *InterruptObject;
-  IN PKSERVICE_ROUTINE ServiceRoutine;
-  IN PVOID ServiceContext;
-  IN PKSPIN_LOCK SpinLock OPTIONAL;
-  IN KIRQL SynchronizeIrql OPTIONAL;
-  IN BOOLEAN FloatingSave;
-} IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS, *PIO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS;
-
-typedef struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  union {
-    OUT PVOID *Generic;
-    OUT PIO_INTERRUPT_MESSAGE_INFO *InterruptMessageTable;
-    OUT PKINTERRUPT *InterruptObject;
-  } ConnectionContext;
-  IN PKMESSAGE_SERVICE_ROUTINE MessageServiceRoutine;
-  IN PVOID ServiceContext;
-  IN PKSPIN_LOCK SpinLock OPTIONAL;
-  IN KIRQL SynchronizeIrql OPTIONAL;
-  IN BOOLEAN FloatingSave;
-  IN PKSERVICE_ROUTINE FallBackServiceRoutine OPTIONAL;
-} IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS, *PIO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS;
-
-typedef struct _IO_CONNECT_INTERRUPT_PARAMETERS {
-  IN OUT ULONG Version;
-  union {
-    IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS FullySpecified;
-    IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS LineBased;
-    IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS MessageBased;
-  };
-} IO_CONNECT_INTERRUPT_PARAMETERS, *PIO_CONNECT_INTERRUPT_PARAMETERS;
+typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK;
 
 
-typedef struct _IO_DISCONNECT_INTERRUPT_PARAMETERS {
-  IN ULONG Version;
-  union {
-    IN PVOID Generic;
-    IN PKINTERRUPT InterruptObject;
-    IN PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable;
-  } ConnectionContext;
-} IO_DISCONNECT_INTERRUPT_PARAMETERS, *PIO_DISCONNECT_INTERRUPT_PARAMETERS;
-
-typedef enum _IO_ACCESS_TYPE {
-  ReadAccess,
-  WriteAccess,
-  ModifyAccess
-} IO_ACCESS_TYPE;
-
-typedef enum _IO_ACCESS_MODE {
-  SequentialAccess,
-  RandomAccess
-} IO_ACCESS_MODE;
-
-typedef enum _IO_CONTAINER_NOTIFICATION_CLASS {
-  IoSessionStateNotification,
-  IoMaxContainerNotificationClass
-} IO_CONTAINER_NOTIFICATION_CLASS;
-
-typedef struct _IO_SESSION_STATE_NOTIFICATION {
-  ULONG Size;
-  ULONG Flags;
-  PVOID IoObject;
-  ULONG EventMask;
-  PVOID Context;
-} IO_SESSION_STATE_NOTIFICATION, *PIO_SESSION_STATE_NOTIFICATION;
-
-typedef enum _IO_CONTAINER_INFORMATION_CLASS {
-  IoSessionStateInformation,
-  IoMaxContainerInformationClass
-} IO_CONTAINER_INFORMATION_CLASS;
-
-typedef struct _IO_SESSION_STATE_INFORMATION {
-  ULONG SessionId;
-  IO_SESSION_STATE SessionState;
-  BOOLEAN LocalSession;
-} IO_SESSION_STATE_INFORMATION, *PIO_SESSION_STATE_INFORMATION;
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-typedef NTSTATUS
-(NTAPI *PIO_CONTAINER_NOTIFICATION_FUNCTION)(
-  VOID);
-
-typedef NTSTATUS
-(NTAPI IO_SESSION_NOTIFICATION_FUNCTION)(
-  IN PVOID SessionObject,
-  IN PVOID IoObject,
-  IN ULONG Event,
-  IN PVOID Context,
-  IN PVOID NotificationPayload,
-  IN ULONG PayloadLength);
-
-typedef IO_SESSION_NOTIFICATION_FUNCTION *PIO_SESSION_NOTIFICATION_FUNCTION;
-
-#endif
-
-typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK;
-
-typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK {
-  BOOLEAN Removed;
-  BOOLEAN Reserved[3];
-  volatile LONG IoCount;
-  KEVENT RemoveEvent;
-} IO_REMOVE_LOCK_COMMON_BLOCK;
+typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK {
+  BOOLEAN  Removed;
+  BOOLEAN  Reserved[3];
+  volatile LONG  IoCount;
+  KEVENT  RemoveEvent;
+} IO_REMOVE_LOCK_COMMON_BLOCK;
 
 typedef struct _IO_REMOVE_LOCK_DBG_BLOCK {
 
 typedef struct _IO_REMOVE_LOCK_DBG_BLOCK {
-  LONG Signature;
-  LONG HighWatermark;
-  LONGLONG MaxLockedTicks;
-  LONG AllocateTag;
-  LIST_ENTRY LockList;
-  KSPIN_LOCK Spin;
-  volatile LONG LowMemoryCount;
-  ULONG Reserved1[4];
-  PVOID Reserved2;
-  PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks;
+  LONG  Signature;
+  LONG  HighWatermark;
+  LONGLONG  MaxLockedTicks;
+  LONG  AllocateTag;
+  LIST_ENTRY  LockList;
+  KSPIN_LOCK  Spin;
+  volatile 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_DBG_BLOCK;
 
 typedef struct _IO_REMOVE_LOCK {
-  IO_REMOVE_LOCK_COMMON_BLOCK Common;
+  IO_REMOVE_LOCK_COMMON_BLOCK  Common;
 #if DBG
 #if DBG
-  IO_REMOVE_LOCK_DBG_BLOCK Dbg;
+  IO_REMOVE_LOCK_DBG_BLOCK  Dbg;
 #endif
 } IO_REMOVE_LOCK, *PIO_REMOVE_LOCK;
 
 typedef struct _IO_WORKITEM *PIO_WORKITEM;
 
 typedef VOID
 #endif
 } IO_REMOVE_LOCK, *PIO_REMOVE_LOCK;
 
 typedef struct _IO_WORKITEM *PIO_WORKITEM;
 
 typedef VOID
-(NTAPI IO_WORKITEM_ROUTINE)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PVOID Context);
+(DDKAPI IO_WORKITEM_ROUTINE)(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PVOID  Context);
 typedef IO_WORKITEM_ROUTINE *PIO_WORKITEM_ROUTINE;
 
 typedef IO_WORKITEM_ROUTINE *PIO_WORKITEM_ROUTINE;
 
-typedef VOID
-(NTAPI IO_WORKITEM_ROUTINE_EX)(
-  IN PVOID IoObject,
-  IN PVOID Context OPTIONAL,
-  IN PIO_WORKITEM IoWorkItem);
-typedef IO_WORKITEM_ROUTINE_EX *PIO_WORKITEM_ROUTINE_EX;
-
 typedef struct _SHARE_ACCESS {
 typedef struct _SHARE_ACCESS {
-  ULONG OpenCount;
-  ULONG Readers;
-  ULONG Writers;
-  ULONG Deleters;
-  ULONG SharedRead;
-  ULONG SharedWrite;
-  ULONG SharedDelete;
+  ULONG  OpenCount;
+  ULONG  Readers;
+  ULONG  Writers;
+  ULONG  Deleters;
+  ULONG  SharedRead;
+  ULONG  SharedWrite;
+  ULONG  SharedDelete;
 } SHARE_ACCESS, *PSHARE_ACCESS;
 
 /* While MS WDK uses inheritance in C++, we cannot do this with gcc, as
    inheritance, even from a struct renders the type non-POD. So we use
    this hack */
 #define PCI_COMMON_HEADER_LAYOUT \
 } SHARE_ACCESS, *PSHARE_ACCESS;
 
 /* While MS WDK uses inheritance in C++, we cannot do this with gcc, as
    inheritance, even from a struct renders the type non-POD. So we use
    this hack */
 #define PCI_COMMON_HEADER_LAYOUT \
-  USHORT VendorID; \
-  USHORT DeviceID; \
-  USHORT Command; \
-  USHORT Status; \
-  UCHAR RevisionID; \
-  UCHAR ProgIf; \
-  UCHAR SubClass; \
-  UCHAR BaseClass; \
-  UCHAR CacheLineSize; \
-  UCHAR LatencyTimer; \
-  UCHAR HeaderType; \
-  UCHAR BIST; \
+  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 { \
   union { \
     struct _PCI_HEADER_TYPE_0 { \
-      ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; \
-      ULONG CIS; \
-      USHORT SubVendorID; \
-      USHORT SubSystemID; \
-      ULONG ROMBaseAddress; \
-      UCHAR CapabilitiesPtr; \
-      UCHAR Reserved1[3]; \
-      ULONG Reserved2; \
-      UCHAR InterruptLine; \
-      UCHAR InterruptPin; \
-      UCHAR MinimumGrant; \
-      UCHAR MaximumLatency; \
+      ULONG   BaseAddresses[PCI_TYPE0_ADDRESSES]; \
+      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 { \
     } type0; \
     struct _PCI_HEADER_TYPE_1 { \
-      ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; \
-      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; \
+      ULONG   BaseAddresses[PCI_TYPE1_ADDRESSES]; \
+      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 { \
     } 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; \
+      ULONG   SocketRegistersBaseAddress; \
+      UCHAR   CapabilitiesPtr; \
+      UCHAR   Reserved; \
+      USHORT  SecondaryStatus; \
+      UCHAR   PrimaryBus; \
+      UCHAR   SecondaryBus; \
+      UCHAR   SubordinateBus; \
+      UCHAR   SecondaryLatency; \
+      struct  { \
+        ULONG   Base; \
+        ULONG   Limit; \
       } Range[PCI_TYPE2_ADDRESSES-1]; \
       } Range[PCI_TYPE2_ADDRESSES-1]; \
-      UCHAR InterruptLine; \
-      UCHAR InterruptPin; \
-      USHORT BridgeControl; \
+      UCHAR   InterruptLine; \
+      UCHAR   InterruptPin; \
+      USHORT  BridgeControl; \
     } type2; \
   } u;
 
     } type2; \
   } u;
 
+typedef struct _PCI_COMMON_HEADER {
+  PCI_COMMON_HEADER_LAYOUT
+} PCI_COMMON_HEADER, *PPCI_COMMON_HEADER;
+
+#ifdef __cplusplus
+typedef struct _PCI_COMMON_CONFIG {
+  PCI_COMMON_HEADER_LAYOUT
+  UCHAR  DeviceSpecific[192];
+} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
+#else
+typedef struct _PCI_COMMON_CONFIG {
+  PCI_COMMON_HEADER DUMMYSTRUCTNAME;
+  UCHAR  DeviceSpecific[192];
+} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
+#endif
+
 typedef enum _CREATE_FILE_TYPE {
   CreateFileTypeNone,
   CreateFileTypeNamedPipe,
 typedef enum _CREATE_FILE_TYPE {
   CreateFileTypeNone,
   CreateFileTypeNamedPipe,
@@ -4260,54 +3131,39 @@ typedef enum _CREATE_FILE_TYPE {
 
 typedef struct _IO_STATUS_BLOCK {
   _ANONYMOUS_UNION union {
 
 typedef struct _IO_STATUS_BLOCK {
   _ANONYMOUS_UNION union {
-    NTSTATUS Status;
-    PVOID Pointer;
+    NTSTATUS  Status;
+    PVOID  Pointer;
   } DUMMYUNIONNAME;
   } DUMMYUNIONNAME;
-  ULONG_PTR Information;
+  ULONG_PTR  Information;
 } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
 
 } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
 
-#if defined(_WIN64)
-typedef struct _IO_STATUS_BLOCK32 {
-  NTSTATUS Status;
-  ULONG Information;
-} IO_STATUS_BLOCK32, *PIO_STATUS_BLOCK32;
-#endif
+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;
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PIO_APC_ROUTINE)(
+(DDKAPI *PIO_APC_ROUTINE)(
   IN PVOID ApcContext,
   IN PIO_STATUS_BLOCK IoStatusBlock,
   IN ULONG Reserved);
 
   IN PVOID ApcContext,
   IN PIO_STATUS_BLOCK IoStatusBlock,
   IN ULONG Reserved);
 
-#define PIO_APC_ROUTINE_DEFINED
-
-typedef enum _IO_SESSION_EVENT {
-  IoSessionEventIgnore = 0,
-  IoSessionEventCreated,
-  IoSessionEventTerminated,
-  IoSessionEventConnected,
-  IoSessionEventDisconnected,
-  IoSessionEventLogon,
-  IoSessionEventLogoff,
-  IoSessionEventMax
-} IO_SESSION_EVENT, *PIO_SESSION_EVENT;
-
-#define IO_SESSION_STATE_ALL_EVENTS        0xffffffff
-#define IO_SESSION_STATE_CREATION_EVENT    0x00000001
-#define IO_SESSION_STATE_TERMINATION_EVENT 0x00000002
-#define IO_SESSION_STATE_CONNECT_EVENT     0x00000004
-#define IO_SESSION_STATE_DISCONNECT_EVENT  0x00000008
-#define IO_SESSION_STATE_LOGON_EVENT       0x00000010
-#define IO_SESSION_STATE_LOGOFF_EVENT      0x00000020
-
-#define IO_SESSION_STATE_VALID_EVENT_MASK  0x0000003f
-
-#define IO_SESSION_MAX_PAYLOAD_SIZE        256L
-
-typedef struct _IO_SESSION_CONNECT_INFO {
-  ULONG SessionId;
-  BOOLEAN LocalSession;
-} IO_SESSION_CONNECT_INFO, *PIO_SESSION_CONNECT_INFO;
+typedef VOID
+(DDKAPI *WMI_NOTIFICATION_CALLBACK)(
+  PVOID  Wnode,
+  PVOID  Context);
+  
+#define WMIREG_ACTION_REGISTER      1
+#define WMIREG_ACTION_DEREGISTER    2
+#define WMIREG_ACTION_REREGISTER    3
+#define WMIREG_ACTION_UPDATE_GUIDS  4
+#define WMIREG_ACTION_BLOCK_IRPS    5
 
 #define EVENT_INCREMENT                   1
 #define IO_NO_INCREMENT                   0
 
 #define EVENT_INCREMENT                   1
 #define IO_NO_INCREMENT                   0
@@ -4327,148 +3183,105 @@ typedef struct _IO_SESSION_CONNECT_INFO {
 #define MM_MAXIMUM_DISK_IO_SIZE          (0x10000)
 
 typedef struct _BOOTDISK_INFORMATION {
 #define MM_MAXIMUM_DISK_IO_SIZE          (0x10000)
 
 typedef struct _BOOTDISK_INFORMATION {
-  LONGLONG BootPartitionOffset;
-  LONGLONG SystemPartitionOffset;
-  ULONG BootDeviceSignature;
-  ULONG SystemDeviceSignature;
+  LONGLONG  BootPartitionOffset;
+  LONGLONG  SystemPartitionOffset;
+  ULONG  BootDeviceSignature;
+  ULONG  SystemDeviceSignature;
 } BOOTDISK_INFORMATION, *PBOOTDISK_INFORMATION;
 
 typedef struct _BOOTDISK_INFORMATION_EX {
 } BOOTDISK_INFORMATION, *PBOOTDISK_INFORMATION;
 
 typedef struct _BOOTDISK_INFORMATION_EX {
-  LONGLONG BootPartitionOffset;
-  LONGLONG SystemPartitionOffset;
-  ULONG BootDeviceSignature;
-  ULONG SystemDeviceSignature;
-  GUID BootDeviceGuid;
-  GUID SystemDeviceGuid;
-  BOOLEAN BootDeviceIsGpt;
-  BOOLEAN SystemDeviceIsGpt;
+  LONGLONG  BootPartitionOffset;
+  LONGLONG  SystemPartitionOffset;
+  ULONG  BootDeviceSignature;
+  ULONG  SystemDeviceSignature;
+  GUID  BootDeviceGuid;
+  GUID  SystemDeviceGuid;
+  BOOLEAN  BootDeviceIsGpt;
+  BOOLEAN  SystemDeviceIsGpt;
 } BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX;
 
 } BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX;
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-typedef struct _LOADER_PARTITION_INFORMATION_EX {
-  ULONG PartitionStyle;
-  ULONG PartitionNumber;
-  union {
-    ULONG Signature;
-    GUID DeviceId;
-  };
-  ULONG Flags;
-} LOADER_PARTITION_INFORMATION_EX, *PLOADER_PARTITION_INFORMATION_EX;
-
-typedef struct _BOOTDISK_INFORMATION_LITE {
-  ULONG NumberEntries;
-  LOADER_PARTITION_INFORMATION_EX Entries[1];
-} BOOTDISK_INFORMATION_LITE, *PBOOTDISK_INFORMATION_LITE;
-
-#else
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-typedef struct _BOOTDISK_INFORMATION_LITE {
-  ULONG BootDeviceSignature;
-  ULONG SystemDeviceSignature;
-  GUID BootDeviceGuid;
-  GUID SystemDeviceGuid;
-  BOOLEAN BootDeviceIsGpt;
-  BOOLEAN SystemDeviceIsGpt;
-} BOOTDISK_INFORMATION_LITE, *PBOOTDISK_INFORMATION_LITE;
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#include <pshpack1.h>
-
 typedef struct _EISA_MEMORY_TYPE {
 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;
+  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;
 
 } EISA_MEMORY_TYPE, *PEISA_MEMORY_TYPE;
 
+#include <pshpack1.h>
 typedef struct _EISA_MEMORY_CONFIGURATION {
 typedef struct _EISA_MEMORY_CONFIGURATION {
-  EISA_MEMORY_TYPE ConfigurationByte;
-  UCHAR DataSize;
-  USHORT AddressLowWord;
-  UCHAR AddressHighByte;
-  USHORT MemorySize;
+  EISA_MEMORY_TYPE  ConfigurationByte;
+  UCHAR  DataSize;
+  USHORT  AddressLowWord;
+  UCHAR  AddressHighByte;
+  USHORT  MemorySize;
 } EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION;
 } EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION;
+#include <poppack.h>
 
 typedef struct _EISA_IRQ_DESCRIPTOR {
 
 typedef struct _EISA_IRQ_DESCRIPTOR {
-  UCHAR Interrupt:4;
-  UCHAR Reserved:1;
-  UCHAR LevelTriggered:1;
-  UCHAR Shared:1;
-  UCHAR MoreEntries:1;
+  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, *PEISA_IRQ_DESCRIPTOR;
 
 typedef struct _EISA_IRQ_CONFIGURATION {
-  EISA_IRQ_DESCRIPTOR ConfigurationByte;
-  UCHAR Reserved;
+  EISA_IRQ_DESCRIPTOR  ConfigurationByte;
+  UCHAR  Reserved;
 } EISA_IRQ_CONFIGURATION, *PEISA_IRQ_CONFIGURATION;
 
 typedef struct _DMA_CONFIGURATION_BYTE0 {
 } EISA_IRQ_CONFIGURATION, *PEISA_IRQ_CONFIGURATION;
 
 typedef struct _DMA_CONFIGURATION_BYTE0 {
-  UCHAR Channel:3;
-  UCHAR Reserved:3;
-  UCHAR Shared:1;
-  UCHAR MoreEntries:1;
+  UCHAR Channel : 3;
+  UCHAR Reserved : 3;
+  UCHAR Shared : 1;
+  UCHAR MoreEntries : 1;
 } DMA_CONFIGURATION_BYTE0;
 
 typedef struct _DMA_CONFIGURATION_BYTE1 {
 } DMA_CONFIGURATION_BYTE0;
 
 typedef struct _DMA_CONFIGURATION_BYTE1 {
-  UCHAR Reserved0:2;
-  UCHAR TransferSize:2;
-  UCHAR Timing:2;
-  UCHAR Reserved1:2;
+  UCHAR  Reserved0 : 2;
+  UCHAR  TransferSize : 2;
+  UCHAR  Timing : 2;
+  UCHAR  Reserved1 : 2;
 } DMA_CONFIGURATION_BYTE1;
 
 typedef struct _EISA_DMA_CONFIGURATION {
 } DMA_CONFIGURATION_BYTE1;
 
 typedef struct _EISA_DMA_CONFIGURATION {
-  DMA_CONFIGURATION_BYTE0 ConfigurationByte0;
-  DMA_CONFIGURATION_BYTE1 ConfigurationByte1;
+  DMA_CONFIGURATION_BYTE0  ConfigurationByte0;
+  DMA_CONFIGURATION_BYTE1  ConfigurationByte1;
 } EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION;
 
 } EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION;
 
+#include <pshpack1.h>
 typedef struct _EISA_PORT_DESCRIPTOR {
 typedef struct _EISA_PORT_DESCRIPTOR {
-  UCHAR NumberPorts:5;
-  UCHAR Reserved:1;
-  UCHAR Shared:1;
-  UCHAR MoreEntries:1;
+  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, *PEISA_PORT_DESCRIPTOR;
 
 typedef struct _EISA_PORT_CONFIGURATION {
-  EISA_PORT_DESCRIPTOR Configuration;
-  USHORT PortAddress;
+  EISA_PORT_DESCRIPTOR  Configuration;
+  USHORT  PortAddress;
 } EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION;
 } EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION;
-
-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;
+#include <poppack.h>
 
 typedef struct _CM_EISA_FUNCTION_INFORMATION {
 
 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];
+  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;
 
 } CM_EISA_FUNCTION_INFORMATION, *PCM_EISA_FUNCTION_INFORMATION;
 
-#include <poppack.h>
-
 /* CM_EISA_FUNCTION_INFORMATION.FunctionFlags */
 
 #define EISA_FUNCTION_ENABLED           0x80
 /* CM_EISA_FUNCTION_INFORMATION.FunctionFlags */
 
 #define EISA_FUNCTION_ENABLED           0x80
@@ -4483,9 +3296,16 @@ typedef struct _CM_EISA_FUNCTION_INFORMATION {
   (EISA_HAS_PORT_RANGE + EISA_HAS_DMA_ENTRY + EISA_HAS_IRQ_ENTRY \
   + EISA_HAS_MEMORY_ENTRY + EISA_HAS_TYPE_ENTRY)
 
   (EISA_HAS_PORT_RANGE + EISA_HAS_DMA_ENTRY + EISA_HAS_IRQ_ENTRY \
   + EISA_HAS_MEMORY_ENTRY + EISA_HAS_TYPE_ENTRY)
 
-#define EISA_MORE_ENTRIES               0x80
-#define EISA_SYSTEM_MEMORY              0x00
-#define EISA_MEMORY_TYPE_RAM            0x01
+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;
 
 /* CM_EISA_SLOT_INFORMATION.ReturnCode */
 
 
 /* CM_EISA_SLOT_INFORMATION.ReturnCode */
 
@@ -4500,76 +3320,34 @@ typedef struct _CM_EISA_FUNCTION_INFORMATION {
 */
 
 typedef VOID
 */
 
 typedef VOID
-(NTAPI *PINTERFACE_REFERENCE)(
-  PVOID Context);
+(DDKAPI *PINTERFACE_REFERENCE)(
+  PVOID  Context);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PINTERFACE_DEREFERENCE)(
+(DDKAPI *PINTERFACE_DEREFERENCE)(
   PVOID Context);
 
 typedef BOOLEAN
   PVOID Context);
 
 typedef BOOLEAN
-(NTAPI TRANSLATE_BUS_ADDRESS)(
-  IN PVOID Context,
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN ULONG Length,
-  IN OUT PULONG AddressSpace,
+(DDKAPI *PTRANSLATE_BUS_ADDRESS)(
+  IN PVOID  Context,
+  IN PHYSICAL_ADDRESS  BusAddress,
+  IN ULONG  Length,
+  IN OUT PULONG  AddressSpace,
   OUT PPHYSICAL_ADDRESS  TranslatedAddress);
   OUT PPHYSICAL_ADDRESS  TranslatedAddress);
-typedef TRANSLATE_BUS_ADDRESS *PTRANSLATE_BUS_ADDRESS;
 
 typedef struct _DMA_ADAPTER*
 
 typedef struct _DMA_ADAPTER*
-(NTAPI GET_DMA_ADAPTER)(
-  IN PVOID Context,
-  IN struct _DEVICE_DESCRIPTION *DeviceDescriptor,
-  OUT PULONG NumberOfMapRegisters);
-typedef GET_DMA_ADAPTER *PGET_DMA_ADAPTER;
+(DDKAPI *PGET_DMA_ADAPTER)(
+  IN PVOID  Context,
+  IN struct _DEVICE_DESCRIPTION  *DeviceDescriptor,
+  OUT PULONG  NumberOfMapRegisters);
 
 typedef ULONG
 
 typedef ULONG
-(NTAPI GET_SET_DEVICE_DATA)(
-  IN PVOID Context,
-  IN ULONG DataType,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-typedef GET_SET_DEVICE_DATA *PGET_SET_DEVICE_DATA;
-
-typedef enum _DEVICE_INSTALL_STATE {
-  InstallStateInstalled,
-  InstallStateNeedsReinstall,
-  InstallStateFailedInstall,
-  InstallStateFinishInstall
-} DEVICE_INSTALL_STATE, *PDEVICE_INSTALL_STATE;
-
-typedef struct _LEGACY_BUS_INFORMATION {
-  GUID BusTypeGuid;
-  INTERFACE_TYPE LegacyBusType;
-  ULONG BusNumber;
-} LEGACY_BUS_INFORMATION, *PLEGACY_BUS_INFORMATION;
-
-typedef enum _DEVICE_REMOVAL_POLICY {
-  RemovalPolicyExpectNoRemoval = 1,
-  RemovalPolicyExpectOrderlyRemoval = 2,
-  RemovalPolicyExpectSurpriseRemoval = 3
-} DEVICE_REMOVAL_POLICY, *PDEVICE_REMOVAL_POLICY;
-
-typedef VOID
-(NTAPI*PREENUMERATE_SELF)(
-  IN PVOID Context);
-
-typedef struct _REENUMERATE_SELF_INTERFACE_STANDARD {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PREENUMERATE_SELF SurpriseRemoveAndReenumerateSelf;
-} REENUMERATE_SELF_INTERFACE_STANDARD, *PREENUMERATE_SELF_INTERFACE_STANDARD;
-
-typedef VOID
-(NTAPI *PIO_DEVICE_EJECT_CALLBACK)(
-  IN NTSTATUS Status,
-  IN OUT PVOID Context OPTIONAL);
-
-#define PCI_DEVICE_PRESENT_INTERFACE_VERSION     1
+(DDKAPI *PGET_SET_DEVICE_DATA)(
+  IN PVOID  Context,
+  IN ULONG  DataType,
+  IN PVOID  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
 
 /* PCI_DEVICE_PRESENCE_PARAMETERS.Flags */
 #define PCI_USE_SUBSYSTEM_IDS   0x00000001
 
 /* PCI_DEVICE_PRESENCE_PARAMETERS.Flags */
 #define PCI_USE_SUBSYSTEM_IDS   0x00000001
@@ -4581,116 +3359,283 @@ typedef VOID
 #define PCI_USE_LOCAL_DEVICE    0x00000040
 
 typedef struct _PCI_DEVICE_PRESENCE_PARAMETERS {
 #define PCI_USE_LOCAL_DEVICE    0x00000040
 
 typedef struct _PCI_DEVICE_PRESENCE_PARAMETERS {
-  ULONG Size;
-  ULONG Flags;
-  USHORT VendorID;
-  USHORT DeviceID;
-  UCHAR RevisionID;
-  USHORT SubVendorID;
-  USHORT SubSystemID;
-  UCHAR BaseClass;
-  UCHAR SubClass;
-  UCHAR ProgIf;
+  ULONG   Size;
+  ULONG   Flags;
+  USHORT  VendorID;
+  USHORT  DeviceID;
+  UCHAR   RevisionID;
+  USHORT  SubVendorID;
+  USHORT  SubSystemID;
+  UCHAR   BaseClass;
+  UCHAR   SubClass;
+  UCHAR   ProgIf;
 } PCI_DEVICE_PRESENCE_PARAMETERS, *PPCI_DEVICE_PRESENCE_PARAMETERS;
 
 typedef BOOLEAN
 } PCI_DEVICE_PRESENCE_PARAMETERS, *PPCI_DEVICE_PRESENCE_PARAMETERS;
 
 typedef BOOLEAN
-(NTAPI PCI_IS_DEVICE_PRESENT)(
-  IN USHORT VendorID,
-  IN USHORT DeviceID,
-  IN UCHAR RevisionID,
-  IN USHORT SubVendorID,
-  IN USHORT SubSystemID,
-  IN ULONG Flags);
-typedef PCI_IS_DEVICE_PRESENT *PPCI_IS_DEVICE_PRESENT;
+(DDKAPI *PPCI_IS_DEVICE_PRESENT)(
+  IN USHORT  VendorID,
+  IN USHORT  DeviceID,
+  IN UCHAR   RevisionID,
+  IN USHORT  SubVendorID,
+  IN USHORT  SubSystemID,
+  IN ULONG   Flags);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI PCI_IS_DEVICE_PRESENT_EX)(
+(DDKAPI *PPCI_IS_DEVICE_PRESENT_EX)(
   IN PVOID Context,
   IN PPCI_DEVICE_PRESENCE_PARAMETERS Parameters);
   IN PVOID Context,
   IN PPCI_DEVICE_PRESENCE_PARAMETERS Parameters);
-typedef PCI_IS_DEVICE_PRESENT_EX *PPCI_IS_DEVICE_PRESENT_EX;
 
 typedef struct _BUS_INTERFACE_STANDARD {
 
 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;
+  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;
 
 typedef struct _PCI_DEVICE_PRESENT_INTERFACE {
 } BUS_INTERFACE_STANDARD, *PBUS_INTERFACE_STANDARD;
 
 typedef struct _PCI_DEVICE_PRESENT_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_IS_DEVICE_PRESENT IsDevicePresent;
-  PPCI_IS_DEVICE_PRESENT_EX IsDevicePresentEx;
+  USHORT  Size;
+  USHORT  Version;
+  PVOID  Context;
+  PINTERFACE_REFERENCE  InterfaceReference;
+  PINTERFACE_DEREFERENCE  InterfaceDereference;
+  PPCI_IS_DEVICE_PRESENT  IsDevicePresent;
+  PPCI_IS_DEVICE_PRESENT_EX  IsDevicePresentEx;
 } PCI_DEVICE_PRESENT_INTERFACE, *PPCI_DEVICE_PRESENT_INTERFACE;
 
 } PCI_DEVICE_PRESENT_INTERFACE, *PPCI_DEVICE_PRESENT_INTERFACE;
 
+typedef
+BOOLEAN
+(*PGPE_SERVICE_ROUTINE2)(
+    PVOID ObjectContext,
+    PVOID ServiceContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_CONNECT_VECTOR2)(
+    PVOID Context,
+    ULONG GpeNumber,
+    KINTERRUPT_MODE Mode,
+    BOOLEAN Shareable,
+    PGPE_SERVICE_ROUTINE2 ServiceRoutine,
+    PVOID ServiceContext,
+    PVOID *ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_DISCONNECT_VECTOR2)(
+    PVOID Context,
+    PVOID ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_ENABLE_EVENT2)(
+    PVOID Context,
+    PVOID ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_DISABLE_EVENT2)(
+    PVOID Context,
+    PVOID ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_CLEAR_STATUS2)(
+    PVOID Context,
+    PVOID ObjectContext
+);
+
+typedef
+VOID
+(*PDEVICE_NOTIFY_CALLBACK2)(
+    PVOID NotificationContext,
+    ULONG NotifyCode
+);
+
+typedef
+NTSTATUS
+(*PREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
+    PVOID Context,
+    PDEVICE_NOTIFY_CALLBACK2 NotificationHandler,
+    PVOID NotificationContext
+);
+
+typedef
+VOID
+(*PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
+    PVOID Context
+);
+
+typedef struct
+{
+    USHORT Size;
+    USHORT Version;
+    PVOID Context;
+    PINTERFACE_REFERENCE InterfaceReference;
+    PINTERFACE_DEREFERENCE InterfaceDereference;
+    PGPE_CONNECT_VECTOR2 GpeConnectVector;
+    PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector;
+    PGPE_ENABLE_EVENT2 GpeEnableEvent;
+    PGPE_DISABLE_EVENT2 GpeDisableEvent;
+    PGPE_CLEAR_STATUS2 GpeClearStatus;
+    PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications;
+    PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications;
+} ACPI_INTERFACE_STANDARD2, *PACPI_INTERFACE_STANDARD2;
+
+typedef
+BOOLEAN
+(*PGPE_SERVICE_ROUTINE)(
+    PDEVICE_OBJECT ObjectContext,
+    PVOID ServiceContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_CONNECT_VECTOR)(
+    PDEVICE_OBJECT Context,
+    ULONG GpeNumber,
+    KINTERRUPT_MODE Mode,
+    BOOLEAN Shareable,
+    PGPE_SERVICE_ROUTINE ServiceRoutine,
+    PVOID ServiceContext,
+    PVOID *ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_DISCONNECT_VECTOR)(
+    PDEVICE_OBJECT Context,
+    PVOID ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_ENABLE_EVENT)(
+    PDEVICE_OBJECT Context,
+    PVOID ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_DISABLE_EVENT)(
+    PDEVICE_OBJECT Context,
+    PVOID ObjectContext
+);
+
+typedef
+NTSTATUS
+(*PGPE_CLEAR_STATUS)(
+    PDEVICE_OBJECT Context,
+    PVOID ObjectContext
+);
+
+typedef
+VOID
+(*PDEVICE_NOTIFY_CALLBACK)(
+    PVOID NotificationContext,
+    ULONG NotifyCode
+);
+
+typedef
+NTSTATUS
+(*PREGISTER_FOR_DEVICE_NOTIFICATIONS)(
+    PDEVICE_OBJECT Context,
+    PDEVICE_NOTIFY_CALLBACK NotificationHandler,
+    PVOID NotificationContext
+);
+
+typedef
+VOID
+(*PUNREGISTER_FOR_DEVICE_NOTIFICATIONS)(
+    PDEVICE_OBJECT Context,
+    PDEVICE_NOTIFY_CALLBACK NotificationHandler
+);
+
+typedef struct
+{
+    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;
+
 typedef struct _DEVICE_CAPABILITIES {
 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 NoDisplayInUI:1;
-  ULONG Reserved:14;
-  ULONG Address;
-  ULONG UINumber;
-  DEVICE_POWER_STATE DeviceState[PowerSystemMaximum];
-  SYSTEM_POWER_STATE SystemWake;
-  DEVICE_POWER_STATE DeviceWake;
-  ULONG D1Latency;
-  ULONG D2Latency;
-  ULONG D3Latency;
+  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  NoDisplayInUI : 1;
+  ULONG  Reserved : 14;
+  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;
 
 typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION {
 } DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES;
 
 typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
-  GUID InterfaceClassGuid;
-  PUNICODE_STRING SymbolicLinkName;
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
+  GUID  InterfaceClassGuid;
+  PUNICODE_STRING  SymbolicLinkName;
 } DEVICE_INTERFACE_CHANGE_NOTIFICATION, *PDEVICE_INTERFACE_CHANGE_NOTIFICATION;
 
 typedef struct _HWPROFILE_CHANGE_NOTIFICATION {
 } DEVICE_INTERFACE_CHANGE_NOTIFICATION, *PDEVICE_INTERFACE_CHANGE_NOTIFICATION;
 
 typedef struct _HWPROFILE_CHANGE_NOTIFICATION {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
 } HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION;
 
 #undef INTERFACE
 
 typedef struct _INTERFACE {
 } HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION;
 
 #undef INTERFACE
 
 typedef struct _INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
+  USHORT  Size;
+  USHORT  Version;
+  PVOID  Context;
+  PINTERFACE_REFERENCE  InterfaceReference;
+  PINTERFACE_DEREFERENCE  InterfaceDereference;
 } INTERFACE, *PINTERFACE;
 
 typedef struct _PLUGPLAY_NOTIFICATION_HEADER {
 } INTERFACE, *PINTERFACE;
 
 typedef struct _PLUGPLAY_NOTIFICATION_HEADER {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
 } PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER;
 
 typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE;
 } PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER;
 
 typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE;
@@ -4705,154 +3650,21 @@ typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE;
 #define PNP_DEVICE_NOT_DISABLEABLE               0x00000020
 
 typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {
 #define PNP_DEVICE_NOT_DISABLEABLE               0x00000020
 
 typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
-  struct _FILE_OBJECT *FileObject;
-  LONG NameBufferOffset;
-  UCHAR CustomDataBuffer[1];
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
+  struct _FILE_OBJECT  *FileObject;
+  LONG  NameBufferOffset;
+  UCHAR  CustomDataBuffer[1];
 } TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION;
 
 typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION {
 } TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION;
 
 typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
-  struct _FILE_OBJECT *FileObject;
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
+  struct _FILE_OBJECT  *FileObject;
 } TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION;
 
 } TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION;
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#include <devpropdef.h>
-#define PLUGPLAY_PROPERTY_PERSISTENT   0x00000001
-#endif
-
-#define PNP_REPLACE_NO_MAP             MAXLONGLONG
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_MAP_MEMORY)(
-  IN PHYSICAL_ADDRESS TargetPhysicalAddress,
-  IN PHYSICAL_ADDRESS SparePhysicalAddress,
-  IN OUT PLARGE_INTEGER NumberOfBytes,
-  OUT PVOID *TargetAddress,
-  OUT PVOID *SpareAddress);
-
-typedef struct _PNP_REPLACE_MEMORY_LIST {
-  ULONG AllocatedCount;
-  ULONG Count;
-  ULONGLONG TotalLength;
-  struct {
-    PHYSICAL_ADDRESS Address;
-    ULONGLONG Length;
-  } Ranges[ANYSIZE_ARRAY];
-} PNP_REPLACE_MEMORY_LIST, *PPNP_REPLACE_MEMORY_LIST;
-
-typedef struct _PNP_REPLACE_PROCESSOR_LIST {
-  PKAFFINITY Affinity;
-  ULONG GroupCount;
-  ULONG AllocatedCount;
-  ULONG Count;
-  ULONG ApicIds[ANYSIZE_ARRAY];
-} PNP_REPLACE_PROCESSOR_LIST, *PPNP_REPLACE_PROCESSOR_LIST;
-
-typedef struct _PNP_REPLACE_PROCESSOR_LIST_V1 {
-  KAFFINITY AffinityMask;
-  ULONG AllocatedCount;
-  ULONG Count;
-  ULONG ApicIds[ANYSIZE_ARRAY];
-} PNP_REPLACE_PROCESSOR_LIST_V1, *PPNP_REPLACE_PROCESSOR_LIST_V1;
-
-#define PNP_REPLACE_PARAMETERS_VERSION           2
-
-typedef struct _PNP_REPLACE_PARAMETERS {
-  ULONG Size;
-  ULONG Version;
-  ULONG64 Target;
-  ULONG64 Spare;
-  PPNP_REPLACE_PROCESSOR_LIST TargetProcessors;
-  PPNP_REPLACE_PROCESSOR_LIST SpareProcessors;
-  PPNP_REPLACE_MEMORY_LIST TargetMemory;
-  PPNP_REPLACE_MEMORY_LIST SpareMemory;
-  PREPLACE_MAP_MEMORY MapMemory;
-} PNP_REPLACE_PARAMETERS, *PPNP_REPLACE_PARAMETERS;
-
-typedef VOID
-(NTAPI *PREPLACE_UNLOAD)(
-  VOID);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_BEGIN)(
-  IN PPNP_REPLACE_PARAMETERS Parameters,
-  OUT PVOID *Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_END)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_MIRROR_PHYSICAL_MEMORY)(
-  IN PVOID Context,
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN LARGE_INTEGER ByteCount);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_SET_PROCESSOR_ID)(
-  IN PVOID Context,
-  IN ULONG ApicId,
-  IN BOOLEAN Target);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_SWAP)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_INITIATE_HARDWARE_MIRROR)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_MIRROR_PLATFORM_MEMORY)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_GET_MEMORY_DESTINATION)(
-  IN PVOID Context,
-  IN PHYSICAL_ADDRESS SourceAddress,
-  OUT PPHYSICAL_ADDRESS DestinationAddress);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE)(
-  IN PVOID Context,
-  IN BOOLEAN Enable);
-
-#define PNP_REPLACE_DRIVER_INTERFACE_VERSION      1
-#define PNP_REPLACE_DRIVER_INTERFACE_MINIMUM_SIZE \
-             FIELD_OFFSET(PNP_REPLACE_DRIVER_INTERFACE, InitiateHardwareMirror)
-
-#define PNP_REPLACE_MEMORY_SUPPORTED             0x0001
-#define PNP_REPLACE_PROCESSOR_SUPPORTED          0x0002
-#define PNP_REPLACE_HARDWARE_MEMORY_MIRRORING    0x0004
-#define PNP_REPLACE_HARDWARE_PAGE_COPY           0x0008
-#define PNP_REPLACE_HARDWARE_QUIESCE             0x0010
-
-typedef struct _PNP_REPLACE_DRIVER_INTERFACE {
-  ULONG Size;
-  ULONG Version;
-  ULONG Flags;
-  PREPLACE_UNLOAD Unload;
-  PREPLACE_BEGIN BeginReplace;
-  PREPLACE_END EndReplace;
-  PREPLACE_MIRROR_PHYSICAL_MEMORY MirrorPhysicalMemory;
-  PREPLACE_SET_PROCESSOR_ID SetProcessorId;
-  PREPLACE_SWAP Swap;
-  PREPLACE_INITIATE_HARDWARE_MIRROR InitiateHardwareMirror;
-  PREPLACE_MIRROR_PLATFORM_MEMORY MirrorPlatformMemory;
-  PREPLACE_GET_MEMORY_DESTINATION GetMemoryDestination;
-  PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE EnableDisableHardwareQuiesce;
-} PNP_REPLACE_DRIVER_INTERFACE, *PPNP_REPLACE_DRIVER_INTERFACE;
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_DRIVER_INIT)(
-  IN OUT PPNP_REPLACE_DRIVER_INTERFACE Interface,
-  IN PVOID Unused);
-
 typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
   DeviceUsageTypeUndefined,
   DeviceUsageTypePaging,
 typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
   DeviceUsageTypeUndefined,
   DeviceUsageTypePaging,
@@ -4861,9 +3673,9 @@ typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
 } DEVICE_USAGE_NOTIFICATION_TYPE;
 
 typedef struct _POWER_SEQUENCE {
 } DEVICE_USAGE_NOTIFICATION_TYPE;
 
 typedef struct _POWER_SEQUENCE {
-  ULONG SequenceD1;
-  ULONG SequenceD2;
-  ULONG SequenceD3;
+  ULONG  SequenceD1;
+  ULONG  SequenceD2;
+  ULONG  SequenceD3;
 } POWER_SEQUENCE, *PPOWER_SEQUENCE;
 
 typedef enum {
 } POWER_SEQUENCE, *PPOWER_SEQUENCE;
 
 typedef enum {
@@ -4899,27 +3711,16 @@ typedef enum _IO_NOTIFICATION_EVENT_CATEGORY {
   EventCategoryTargetDeviceChange
 } IO_NOTIFICATION_EVENT_CATEGORY;
 
   EventCategoryTargetDeviceChange
 } IO_NOTIFICATION_EVENT_CATEGORY;
 
-typedef enum _IO_PRIORITY_HINT {
-  IoPriorityVeryLow = 0,
-  IoPriorityLow,
-  IoPriorityNormal,
-  IoPriorityHigh,
-  IoPriorityCritical,
-  MaxIoPriorityTypes
-} IO_PRIORITY_HINT;
-
 #define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES    0x00000001
 
 typedef NTSTATUS
 #define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES    0x00000001
 
 typedef NTSTATUS
-(NTAPI DRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
+(DDKAPI *PDRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
   IN PVOID NotificationStructure,
   IN PVOID Context);
   IN PVOID NotificationStructure,
   IN PVOID Context);
-typedef DRIVER_NOTIFICATION_CALLBACK_ROUTINE *PDRIVER_NOTIFICATION_CALLBACK_ROUTINE;
 
 typedef VOID
 
 typedef VOID
-(NTAPI DEVICE_CHANGE_COMPLETE_CALLBACK)(
+(DDKAPI *PDEVICE_CHANGE_COMPLETE_CALLBACK)(
   IN PVOID Context);
   IN PVOID Context);
-typedef DEVICE_CHANGE_COMPLETE_CALLBACK *PDEVICE_CHANGE_COMPLETE_CALLBACK;
 
 typedef enum _FILE_INFORMATION_CLASS {
   FileDirectoryInformation = 1,
 
 typedef enum _FILE_INFORMATION_CLASS {
   FileDirectoryInformation = 1,
@@ -4981,59 +3782,35 @@ typedef enum _FILE_INFORMATION_CLASS {
 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
 
 typedef struct _FILE_POSITION_INFORMATION {
 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
 
 typedef struct _FILE_POSITION_INFORMATION {
-  LARGE_INTEGER CurrentByteOffset;
+  LARGE_INTEGER  CurrentByteOffset;
 } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
 
 } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
 
+#include <pshpack8.h>
 typedef struct _FILE_BASIC_INFORMATION {
 typedef struct _FILE_BASIC_INFORMATION {
-  LARGE_INTEGER CreationTime;
-  LARGE_INTEGER LastAccessTime;
-  LARGE_INTEGER LastWriteTime;
-  LARGE_INTEGER ChangeTime;
-  ULONG FileAttributes;
+  LARGE_INTEGER  CreationTime;
+  LARGE_INTEGER  LastAccessTime;
+  LARGE_INTEGER  LastWriteTime;
+  LARGE_INTEGER  ChangeTime;
+  ULONG  FileAttributes;
 } FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;
 } FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;
-
-typedef struct _FILE_IO_PRIORITY_HINT_INFORMATION {
-  IO_PRIORITY_HINT PriorityHint;
-} FILE_IO_PRIORITY_HINT_INFORMATION, *PFILE_IO_PRIORITY_HINT_INFORMATION;
-
-typedef struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION {
-  ULONG Flags;
-} FILE_IO_COMPLETION_NOTIFICATION_INFORMATION, *PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION;
-
-typedef struct _FILE_IOSTATUSBLOCK_RANGE_INFORMATION {
-  PUCHAR IoStatusBlockRange;
-  ULONG Length;
-} FILE_IOSTATUSBLOCK_RANGE_INFORMATION, *PFILE_IOSTATUSBLOCK_RANGE_INFORMATION;
-
-typedef struct _FILE_IS_REMOTE_DEVICE_INFORMATION {
-  BOOLEAN IsRemote;
-} FILE_IS_REMOTE_DEVICE_INFORMATION, *PFILE_IS_REMOTE_DEVICE_INFORMATION;
-
-typedef struct _FILE_NUMA_NODE_INFORMATION {
-  USHORT NodeNumber;
-} FILE_NUMA_NODE_INFORMATION, *PFILE_NUMA_NODE_INFORMATION;
-
-typedef struct _FILE_PROCESS_IDS_USING_FILE_INFORMATION {
-  ULONG NumberOfProcessIdsInList;
-  ULONG_PTR ProcessIdList[1];
-} FILE_PROCESS_IDS_USING_FILE_INFORMATION, *PFILE_PROCESS_IDS_USING_FILE_INFORMATION;
+#include <poppack.h>
 
 typedef struct _FILE_STANDARD_INFORMATION {
 
 typedef struct _FILE_STANDARD_INFORMATION {
-  LARGE_INTEGER AllocationSize;
-  LARGE_INTEGER EndOfFile;
-  ULONG NumberOfLinks;
-  BOOLEAN DeletePending;
-  BOOLEAN Directory;
+  LARGE_INTEGER  AllocationSize;
+  LARGE_INTEGER  EndOfFile;
+  ULONG  NumberOfLinks;
+  BOOLEAN  DeletePending;
+  BOOLEAN  Directory;
 } FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION;
 
 typedef struct _FILE_NETWORK_OPEN_INFORMATION {
 } FILE_STANDARD_INFORMATION, *PFILE_STANDARD_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;
+  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 enum _FSINFOCLASS {
 } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION;
 
 typedef enum _FSINFOCLASS {
@@ -5051,329 +3828,321 @@ typedef enum _FSINFOCLASS {
 } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
 
 typedef struct _FILE_FS_DEVICE_INFORMATION {
 } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
 
 typedef struct _FILE_FS_DEVICE_INFORMATION {
-  DEVICE_TYPE DeviceType;
-  ULONG Characteristics;
+  DEVICE_TYPE  DeviceType;
+  ULONG  Characteristics;
 } FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
 
 typedef struct _FILE_FULL_EA_INFORMATION {
 } FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
 
 typedef struct _FILE_FULL_EA_INFORMATION {
-  ULONG NextEntryOffset;
-  UCHAR Flags;
-  UCHAR EaNameLength;
-  USHORT EaValueLength;
-  CHAR EaName[1];
+  ULONG  NextEntryOffset;
+  UCHAR  Flags;
+  UCHAR  EaNameLength;
+  USHORT  EaValueLength;
+  CHAR  EaName[1];
 } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
 
 } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
 
-typedef struct _FILE_SFIO_RESERVE_INFORMATION {
-  ULONG RequestsPerPeriod;
-  ULONG Period;
-  BOOLEAN RetryFailures;
-  BOOLEAN Discardable;
-  ULONG RequestSize;
-  ULONG NumOutstandingRequests;
-} FILE_SFIO_RESERVE_INFORMATION, *PFILE_SFIO_RESERVE_INFORMATION;
-
-typedef struct _FILE_SFIO_VOLUME_INFORMATION {
-  ULONG MaximumRequestsPerPeriod;
-  ULONG MinimumPeriod;
-  ULONG MinimumTransferSize;
-} FILE_SFIO_VOLUME_INFORMATION, *PFILE_SFIO_VOLUME_INFORMATION;
-
-#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS     0x1
-#define FILE_SKIP_SET_EVENT_ON_HANDLE            0x2
-#define FILE_SKIP_SET_USER_EVENT_ON_FAST_IO      0x4
-
 #define FM_LOCK_BIT             (0x1)
 #define FM_LOCK_BIT_V           (0x0)
 #define FM_LOCK_WAITER_WOKEN    (0x2)
 #define FM_LOCK_WAITER_INC      (0x4)
 
 #define FM_LOCK_BIT             (0x1)
 #define FM_LOCK_BIT_V           (0x0)
 #define FM_LOCK_WAITER_WOKEN    (0x2)
 #define FM_LOCK_WAITER_INC      (0x4)
 
+typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
+
+typedef struct _OWNER_ENTRY {
+    ERESOURCE_THREAD OwnerThread;
+    _ANONYMOUS_UNION union {
+        LONG OwnerCount;
+        ULONG TableSize;
+    } DUMMYUNIONNAME;
+} OWNER_ENTRY, *POWNER_ENTRY;
+
+typedef struct _ERESOURCE
+{
+    LIST_ENTRY SystemResourcesList;
+    POWNER_ENTRY OwnerTable;
+    SHORT ActiveCount;
+    USHORT Flag;
+    volatile PKSEMAPHORE SharedWaiters;
+    volatile PKEVENT ExclusiveWaiters;
+    OWNER_ENTRY OwnerEntry;
+    ULONG ActiveEntries;
+    ULONG ContentionCount;
+    ULONG NumberOfSharedWaiters;
+    ULONG NumberOfExclusiveWaiters;
+    __GNU_EXTENSION union
+    {
+        PVOID Address;
+        ULONG_PTR CreatorBackTraceIndex;
+    };
+    KSPIN_LOCK SpinLock;
+} ERESOURCE, *PERESOURCE;
+
+/* ERESOURCE.Flag */
+#define ResourceNeverExclusive            0x0010
+#define ResourceReleaseByOtherThread      0x0020
+#define ResourceOwnedExclusive            0x0080
+
+#define RESOURCE_HASH_TABLE_SIZE          64
+
 typedef BOOLEAN
 typedef BOOLEAN
-(NTAPI FAST_IO_CHECK_IF_POSSIBLE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  IN BOOLEAN CheckForReadOperation,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_CHECK_IF_POSSIBLE *PFAST_IO_CHECK_IF_POSSIBLE;
+(DDKAPI *PFAST_IO_CHECK_IF_POSSIBLE)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN ULONG  Length,
+  IN BOOLEAN  Wait,
+  IN ULONG  LockKey,
+  IN BOOLEAN  CheckForReadOperation,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_READ)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  OUT PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_READ *PFAST_IO_READ;
+(DDKAPI *PFAST_IO_READ)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN ULONG  Length,
+  IN BOOLEAN  Wait,
+  IN ULONG  LockKey,
+  OUT PVOID  Buffer,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  IN PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_WRITE *PFAST_IO_WRITE;
+(DDKAPI *PFAST_IO_WRITE)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN ULONG  Length,
+  IN BOOLEAN  Wait,
+  IN ULONG  LockKey,
+  IN PVOID  Buffer,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_BASIC_INFO)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  OUT PFILE_BASIC_INFORMATION Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_BASIC_INFO *PFAST_IO_QUERY_BASIC_INFO;
+(DDKAPI *PFAST_IO_QUERY_BASIC_INFO)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN BOOLEAN  Wait,
+  OUT PFILE_BASIC_INFORMATION  Buffer,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_STANDARD_INFO)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  OUT PFILE_STANDARD_INFORMATION Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_STANDARD_INFO *PFAST_IO_QUERY_STANDARD_INFO;
+(DDKAPI *PFAST_IO_QUERY_STANDARD_INFO)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN BOOLEAN  Wait,
+  OUT PFILE_STANDARD_INFORMATION  Buffer,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_LOCK)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PLARGE_INTEGER Length,
-  PEPROCESS ProcessId,
-  ULONG Key,
-  BOOLEAN FailImmediately,
-  BOOLEAN ExclusiveLock,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_LOCK *PFAST_IO_LOCK;
+(DDKAPI *PFAST_IO_LOCK)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN PLARGE_INTEGER  Length,
+  PEPROCESS  ProcessId,
+  ULONG  Key,
+  BOOLEAN  FailImmediately,
+  BOOLEAN  ExclusiveLock,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_UNLOCK_SINGLE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PLARGE_INTEGER Length,
-  PEPROCESS ProcessId,
-  ULONG Key,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_UNLOCK_SINGLE *PFAST_IO_UNLOCK_SINGLE;
+(DDKAPI *PFAST_IO_UNLOCK_SINGLE)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN PLARGE_INTEGER  Length,
+  PEPROCESS  ProcessId,
+  ULONG  Key,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_UNLOCK_ALL)(
-  IN struct _FILE_OBJECT *FileObject,
-  PEPROCESS ProcessId,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_UNLOCK_ALL *PFAST_IO_UNLOCK_ALL;
+(DDKAPI *PFAST_IO_UNLOCK_ALL)(
+  IN struct _FILE_OBJECT  *FileObject,
+  PEPROCESS  ProcessId,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_UNLOCK_ALL_BY_KEY)(
-  IN struct _FILE_OBJECT *FileObject,
-  PVOID ProcessId,
-  ULONG Key,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_UNLOCK_ALL_BY_KEY *PFAST_IO_UNLOCK_ALL_BY_KEY;
+(DDKAPI *PFAST_IO_UNLOCK_ALL_BY_KEY)(
+  IN struct _FILE_OBJECT  *FileObject,
+  PVOID  ProcessId,
+  ULONG  Key,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_DEVICE_CONTROL)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength,
-  IN ULONG IoControlCode,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_DEVICE_CONTROL *PFAST_IO_DEVICE_CONTROL;
+(DDKAPI *PFAST_IO_DEVICE_CONTROL)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN BOOLEAN  Wait,
+  IN PVOID  InputBuffer  OPTIONAL,
+  IN ULONG  InputBufferLength,
+  OUT PVOID  OutputBuffer  OPTIONAL,
+  IN ULONG  OutputBufferLength,
+  IN ULONG  IoControlCode,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef VOID
 
 typedef VOID
-(NTAPI FAST_IO_ACQUIRE_FILE)(
-  IN struct _FILE_OBJECT *FileObject);
-typedef FAST_IO_ACQUIRE_FILE *PFAST_IO_ACQUIRE_FILE;
+(DDKAPI *PFAST_IO_ACQUIRE_FILE)(
+  IN struct _FILE_OBJECT  *FileObject);
 
 typedef VOID
 
 typedef VOID
-(NTAPI FAST_IO_RELEASE_FILE)(
-  IN struct _FILE_OBJECT *FileObject);
-typedef FAST_IO_RELEASE_FILE *PFAST_IO_RELEASE_FILE;
+(DDKAPI *PFAST_IO_RELEASE_FILE)(
+  IN struct _FILE_OBJECT  *FileObject);
 
 typedef VOID
 
 typedef VOID
-(NTAPI FAST_IO_DETACH_DEVICE)(
-  IN struct _DEVICE_OBJECT *SourceDevice,
-  IN struct _DEVICE_OBJECT *TargetDevice);
-typedef FAST_IO_DETACH_DEVICE *PFAST_IO_DETACH_DEVICE;
+(DDKAPI *PFAST_IO_DETACH_DEVICE)(
+  IN struct _DEVICE_OBJECT  *SourceDevice,
+  IN struct _DEVICE_OBJECT  *TargetDevice);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_NETWORK_OPEN_INFO)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer,
-  OUT struct _IO_STATUS_BLOCK *IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_NETWORK_OPEN_INFO *PFAST_IO_QUERY_NETWORK_OPEN_INFO;
+(DDKAPI *PFAST_IO_QUERY_NETWORK_OPEN_INFO)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN BOOLEAN  Wait,
+  OUT struct _FILE_NETWORK_OPEN_INFORMATION  *Buffer,
+  OUT struct _IO_STATUS_BLOCK  *IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI FAST_IO_ACQUIRE_FOR_MOD_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER EndingOffset,
-  OUT struct _ERESOURCE **ResourceToRelease,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_ACQUIRE_FOR_MOD_WRITE *PFAST_IO_ACQUIRE_FOR_MOD_WRITE;
+(DDKAPI *PFAST_IO_ACQUIRE_FOR_MOD_WRITE)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  EndingOffset,
+  OUT struct _ERESOURCE  **ResourceToRelease,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_MDL_READ)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_READ *PFAST_IO_MDL_READ;
+(DDKAPI *PFAST_IO_MDL_READ)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN ULONG  Length,
+  IN ULONG  LockKey,
+  OUT PMDL  *MdlChain,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_MDL_READ_COMPLETE)(
+(DDKAPI *PFAST_IO_MDL_READ_COMPLETE)(
   IN struct _FILE_OBJECT *FileObject,
   IN PMDL MdlChain,
   IN struct _DEVICE_OBJECT *DeviceObject);
   IN struct _FILE_OBJECT *FileObject,
   IN PMDL MdlChain,
   IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_READ_COMPLETE *PFAST_IO_MDL_READ_COMPLETE;
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_PREPARE_MDL_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_PREPARE_MDL_WRITE *PFAST_IO_PREPARE_MDL_WRITE;
+(DDKAPI *PFAST_IO_PREPARE_MDL_WRITE)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN ULONG  Length,
+  IN ULONG  LockKey,
+  OUT PMDL  *MdlChain,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_MDL_WRITE_COMPLETE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PMDL MdlChain,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_WRITE_COMPLETE *PFAST_IO_MDL_WRITE_COMPLETE;
+(DDKAPI *PFAST_IO_MDL_WRITE_COMPLETE)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN PMDL  MdlChain,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_READ_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PVOID Buffer,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
-  IN ULONG CompressedDataInfoLength,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_READ_COMPRESSED *PFAST_IO_READ_COMPRESSED;
+(DDKAPI *PFAST_IO_READ_COMPRESSED)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN ULONG  Length,
+  IN ULONG  LockKey,
+  OUT PVOID  Buffer,
+  OUT PMDL  *MdlChain,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  OUT struct _COMPRESSED_DATA_INFO  *CompressedDataInfo,
+  IN ULONG  CompressedDataInfoLength,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_WRITE_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  IN PVOID Buffer,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
-  IN ULONG CompressedDataInfoLength,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_WRITE_COMPRESSED *PFAST_IO_WRITE_COMPRESSED;
+(DDKAPI *PFAST_IO_WRITE_COMPRESSED)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN ULONG  Length,
+  IN ULONG  LockKey,
+  IN PVOID  Buffer,
+  OUT PMDL  *MdlChain,
+  OUT PIO_STATUS_BLOCK  IoStatus,
+  IN struct _COMPRESSED_DATA_INFO  *CompressedDataInfo,
+  IN ULONG  CompressedDataInfoLength,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PMDL MdlChain,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_READ_COMPLETE_COMPRESSED *PFAST_IO_MDL_READ_COMPLETE_COMPRESSED;
+(DDKAPI *PFAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PMDL  MdlChain,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PMDL MdlChain,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED *PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED;
+(DDKAPI *PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN PLARGE_INTEGER  FileOffset,
+  IN PMDL  MdlChain,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_OPEN)(
-  IN struct _IRP *Irp,
-  OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_OPEN *PFAST_IO_QUERY_OPEN;
+(DDKAPI *PFAST_IO_QUERY_OPEN)(
+  IN struct _IRP  *Irp,
+  OUT PFILE_NETWORK_OPEN_INFORMATION  NetworkInformation,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI FAST_IO_RELEASE_FOR_MOD_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN struct _ERESOURCE *ResourceToRelease,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_RELEASE_FOR_MOD_WRITE *PFAST_IO_RELEASE_FOR_MOD_WRITE;
+(DDKAPI *PFAST_IO_RELEASE_FOR_MOD_WRITE)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN struct _ERESOURCE  *ResourceToRelease,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI FAST_IO_ACQUIRE_FOR_CCFLUSH)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_ACQUIRE_FOR_CCFLUSH *PFAST_IO_ACQUIRE_FOR_CCFLUSH;
+(DDKAPI *PFAST_IO_ACQUIRE_FOR_CCFLUSH)(
+  IN struct _FILE_OBJECT  *FileObject,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI FAST_IO_RELEASE_FOR_CCFLUSH)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_RELEASE_FOR_CCFLUSH *PFAST_IO_RELEASE_FOR_CCFLUSH;
+(DDKAPI *PFAST_IO_RELEASE_FOR_CCFLUSH) (
+  IN struct _FILE_OBJECT  *FileObject,
+  IN struct _DEVICE_OBJECT  *DeviceObject);
 
 typedef struct _FAST_IO_DISPATCH {
 
 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;
+  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;
 
 typedef struct _SECTION_OBJECT_POINTERS {
 } FAST_IO_DISPATCH, *PFAST_IO_DISPATCH;
 
 typedef struct _SECTION_OBJECT_POINTERS {
-  PVOID DataSectionObject;
-  PVOID SharedCacheMap;
-  PVOID ImageSectionObject;
+  PVOID  DataSectionObject;
+  PVOID  SharedCacheMap;
+  PVOID  ImageSectionObject;
 } SECTION_OBJECT_POINTERS, *PSECTION_OBJECT_POINTERS;
 
 typedef struct _IO_COMPLETION_CONTEXT {
 } SECTION_OBJECT_POINTERS, *PSECTION_OBJECT_POINTERS;
 
 typedef struct _IO_COMPLETION_CONTEXT {
-  PVOID Port;
-  PVOID Key;
+  PVOID  Port;
+  PVOID  Key;
 } IO_COMPLETION_CONTEXT, *PIO_COMPLETION_CONTEXT;
 
 /* FILE_OBJECT.Flags */
 } IO_COMPLETION_CONTEXT, *PIO_COMPLETION_CONTEXT;
 
 /* FILE_OBJECT.Flags */
@@ -5406,7 +4175,6 @@ typedef struct _IO_COMPLETION_CONTEXT {
 #define FO_SKIP_COMPLETION_PORT      0x02000000
 #define FO_SKIP_SET_EVENT            0x04000000
 #define FO_SKIP_SET_FAST_IO          0x08000000
 #define FO_SKIP_COMPLETION_PORT      0x02000000
 #define FO_SKIP_SET_EVENT            0x04000000
 #define FO_SKIP_SET_FAST_IO          0x08000000
-#define FO_FLAGS_VALID_ONLY_DURING_CREATE FO_DISALLOW_EXCLUSIVE
 
 /* VPB.Flags */
 #define VPB_MOUNTED                       0x0001
 
 /* VPB.Flags */
 #define VPB_MOUNTED                       0x0001
@@ -5421,18 +4189,12 @@ typedef struct _IO_COMPLETION_CONTEXT {
 #define SL_FORCE_ACCESS_CHECK             0x01
 #define SL_OPEN_PAGING_FILE               0x02
 #define SL_OPEN_TARGET_DIRECTORY          0x04
 #define SL_FORCE_ACCESS_CHECK             0x01
 #define SL_OPEN_PAGING_FILE               0x02
 #define SL_OPEN_TARGET_DIRECTORY          0x04
-#define SL_STOP_ON_SYMLINK                0x08
 #define SL_CASE_SENSITIVE                 0x80
 
 #define SL_KEY_SPECIFIED                  0x01
 #define SL_OVERRIDE_VERIFY_VOLUME         0x02
 #define SL_WRITE_THROUGH                  0x04
 #define SL_FT_SEQUENTIAL_WRITE            0x08
 #define SL_CASE_SENSITIVE                 0x80
 
 #define SL_KEY_SPECIFIED                  0x01
 #define SL_OVERRIDE_VERIFY_VOLUME         0x02
 #define SL_WRITE_THROUGH                  0x04
 #define SL_FT_SEQUENTIAL_WRITE            0x08
-#define SL_FORCE_DIRECT_WRITE             0x10
-#define SL_REALTIME_STREAM                0x20
-
-#define SL_READ_ACCESS_GRANTED            0x01
-#define SL_WRITE_ACCESS_GRANTED           0x04
 
 #define SL_FAIL_IMMEDIATELY               0x01
 #define SL_EXCLUSIVE_LOCK                 0x02
 
 #define SL_FAIL_IMMEDIATELY               0x01
 #define SL_EXCLUSIVE_LOCK                 0x02
@@ -5450,8 +4212,6 @@ typedef struct _IO_COMPLETION_CONTEXT {
 
 #define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)
 
 
 #define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)
 
-#define METHOD_FROM_CTL_CODE(ctrlCode)          ((ULONG)(ctrlCode & 3))
-
 #define IRP_NOCACHE                     0x00000001
 #define IRP_PAGING_IO                   0x00000002
 #define IRP_MOUNT_COMPLETION            0x00000002
 #define IRP_NOCACHE                     0x00000001
 #define IRP_PAGING_IO                   0x00000002
 #define IRP_MOUNT_COMPLETION            0x00000002
@@ -5537,9 +4297,6 @@ typedef struct _IO_COMPLETION_CONTEXT {
 #define IRP_MN_QUERY_BUS_INFORMATION        0x15
 #define IRP_MN_DEVICE_USAGE_NOTIFICATION    0x16
 #define IRP_MN_SURPRISE_REMOVAL             0x17
 #define IRP_MN_QUERY_BUS_INFORMATION        0x15
 #define IRP_MN_DEVICE_USAGE_NOTIFICATION    0x16
 #define IRP_MN_SURPRISE_REMOVAL             0x17
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-#define IRP_MN_DEVICE_ENUMERATED            0x19
-#endif
 
 #define IRP_MN_WAIT_WAKE                  0x00
 #define IRP_MN_POWER_SEQUENCE             0x01
 
 #define IRP_MN_WAIT_WAKE                  0x00
 #define IRP_MN_POWER_SEQUENCE             0x01
@@ -5559,62 +4316,63 @@ typedef struct _IO_COMPLETION_CONTEXT {
 
 #define IRP_MN_REGINFO_EX                 0x0b
 
 
 #define IRP_MN_REGINFO_EX                 0x0b
 
-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;
-  volatile ULONG Waiters;
-  volatile ULONG Busy;
-  PVOID LastLock;
-  KEVENT Lock;
-  KEVENT Event;
-  volatile PIO_COMPLETION_CONTEXT CompletionContext;
-  KSPIN_LOCK IrpListLock;
-  LIST_ENTRY IrpList;
-  volatile PVOID FileObjectExtension;
+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;
+    volatile ULONG Waiters;
+    volatile ULONG Busy;
+    PVOID LastLock;
+    KEVENT Lock;
+    KEVENT Event;
+    volatile PIO_COMPLETION_CONTEXT CompletionContext;
+    KSPIN_LOCK IrpListLock;
+    LIST_ENTRY IrpList;
+    volatile PVOID FileObjectExtension;
 } FILE_OBJECT, *PFILE_OBJECT;
 
 typedef struct _IO_ERROR_LOG_PACKET {
 } FILE_OBJECT, *PFILE_OBJECT;
 
 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];
+  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;
 
 typedef struct _IO_ERROR_LOG_MESSAGE {
 } IO_ERROR_LOG_PACKET, *PIO_ERROR_LOG_PACKET;
 
 typedef struct _IO_ERROR_LOG_MESSAGE {
-  USHORT Type;
-  USHORT Size;
-  USHORT DriverNameLength;
-  LARGE_INTEGER TimeStamp;
-  ULONG DriverNameOffset;
-  IO_ERROR_LOG_PACKET EntryData;
+  USHORT  Type;
+  USHORT  Size;
+  USHORT  DriverNameLength;
+  LARGE_INTEGER  TimeStamp;
+  ULONG  DriverNameOffset;
+  IO_ERROR_LOG_PACKET  EntryData;
 } IO_ERROR_LOG_MESSAGE, *PIO_ERROR_LOG_MESSAGE;
 
 #define ERROR_LOG_LIMIT_SIZE               240
 } IO_ERROR_LOG_MESSAGE, *PIO_ERROR_LOG_MESSAGE;
 
 #define ERROR_LOG_LIMIT_SIZE               240
@@ -5630,12 +4388,6 @@ typedef struct _IO_ERROR_LOG_MESSAGE {
 #define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH -                 \
                                 IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
 
 #define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH -                 \
                                 IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
 
-#ifdef _WIN64
-#define PORT_MAXIMUM_MESSAGE_LENGTH    512
-#else
-#define PORT_MAXIMUM_MESSAGE_LENGTH    256
-#endif
-
 typedef enum _DMA_WIDTH {
   Width8Bits,
   Width16Bits,
 typedef enum _DMA_WIDTH {
   Width8Bits,
   Width16Bits,
@@ -5659,22 +4411,22 @@ typedef enum _DMA_SPEED {
 #define DEVICE_DESCRIPTION_VERSION2       0x0002
 
 typedef struct _DEVICE_DESCRIPTION {
 #define DEVICE_DESCRIPTION_VERSION2       0x0002
 
 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;
+  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;
 
 typedef enum _DEVICE_RELATION_TYPE {
 } DEVICE_DESCRIPTION, *PDEVICE_DESCRIPTION;
 
 typedef enum _DEVICE_RELATION_TYPE {
@@ -5688,20 +4440,21 @@ typedef enum _DEVICE_RELATION_TYPE {
 } DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE;
 
 typedef struct _DEVICE_RELATIONS {
 } DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE;
 
 typedef struct _DEVICE_RELATIONS {
-  ULONG Count;
+  ULONG  Count;
   PDEVICE_OBJECT Objects[1];
 } DEVICE_RELATIONS, *PDEVICE_RELATIONS;
 
   PDEVICE_OBJECT Objects[1];
 } DEVICE_RELATIONS, *PDEVICE_RELATIONS;
 
-typedef struct _DEVOBJ_EXTENSION {
-  CSHORT Type;
-  USHORT Size;
-  PDEVICE_OBJECT DeviceObject;
+typedef struct _DEVOBJ_EXTENSION
+{
+    CSHORT Type;
+    USHORT Size;
+    PDEVICE_OBJECT DeviceObject;
 } DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION;
 
 typedef struct _SCATTER_GATHER_ELEMENT {
 } DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION;
 
 typedef struct _SCATTER_GATHER_ELEMENT {
-  PHYSICAL_ADDRESS Address;
-  ULONG Length;
-  ULONG_PTR Reserved;
+  PHYSICAL_ADDRESS  Address;
+  ULONG  Length;
+  ULONG_PTR  Reserved;
 } SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;
 
 #if defined(_MSC_EXTENSIONS)
 } SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;
 
 #if defined(_MSC_EXTENSIONS)
@@ -5711,9 +4464,9 @@ typedef struct _SCATTER_GATHER_ELEMENT {
 #endif
 #pragma warning(disable:4200)
 typedef struct _SCATTER_GATHER_LIST {
 #endif
 #pragma warning(disable:4200)
 typedef struct _SCATTER_GATHER_LIST {
-  ULONG NumberOfElements;
-  ULONG_PTR Reserved;
-  SCATTER_GATHER_ELEMENT Elements[1];
+  ULONG  NumberOfElements;
+  ULONG_PTR  Reserved;
+  SCATTER_GATHER_ELEMENT  Elements[1];
 } SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
 
 #if _MSC_VER >= 1200
 } SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
 
 #if _MSC_VER >= 1200
@@ -5730,16 +4483,16 @@ typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
 #endif
 
 typedef NTSTATUS
 #endif
 
 typedef NTSTATUS
-(NTAPI DRIVER_ADD_DEVICE)(
-  IN struct _DRIVER_OBJECT *DriverObject,
-  IN struct _DEVICE_OBJECT *PhysicalDeviceObject);
+(DDKAPI DRIVER_ADD_DEVICE)(
+  IN struct _DRIVER_OBJECT  *DriverObject,
+  IN struct _DEVICE_OBJECT  *PhysicalDeviceObject);
 typedef DRIVER_ADD_DEVICE *PDRIVER_ADD_DEVICE;
 
 typedef struct _DRIVER_EXTENSION {
 typedef DRIVER_ADD_DEVICE *PDRIVER_ADD_DEVICE;
 
 typedef struct _DRIVER_EXTENSION {
-  struct _DRIVER_OBJECT *DriverObject;
-  PDRIVER_ADD_DEVICE AddDevice;
-  ULONG Count;
-  UNICODE_STRING ServiceKeyName;
+  struct _DRIVER_OBJECT  *DriverObject;
+  PDRIVER_ADD_DEVICE  AddDevice;
+  ULONG  Count;
+  UNICODE_STRING  ServiceKeyName;
 } DRIVER_EXTENSION, *PDRIVER_EXTENSION;
 
 #define DRVO_UNLOAD_INVOKED               0x00000001
 } DRIVER_EXTENSION, *PDRIVER_EXTENSION;
 
 #define DRVO_UNLOAD_INVOKED               0x00000001
@@ -5747,319 +4500,320 @@ typedef struct _DRIVER_EXTENSION {
 #define DRVO_BUILTIN_DRIVER               0x00000004
 
 typedef NTSTATUS
 #define DRVO_BUILTIN_DRIVER               0x00000004
 
 typedef NTSTATUS
-(NTAPI DRIVER_INITIALIZE)(
-  IN struct _DRIVER_OBJECT *DriverObject,
-  IN PUNICODE_STRING RegistryPath);
+(DDKAPI DRIVER_INITIALIZE)(
+  IN struct _DRIVER_OBJECT  *DriverObject,
+  IN PUNICODE_STRING  RegistryPath);
 typedef DRIVER_INITIALIZE *PDRIVER_INITIALIZE;
 
 typedef VOID
 typedef DRIVER_INITIALIZE *PDRIVER_INITIALIZE;
 
 typedef VOID
-(NTAPI DRIVER_STARTIO)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp);
+(DDKAPI DRIVER_STARTIO)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp);
 typedef DRIVER_STARTIO *PDRIVER_STARTIO;
 
 typedef VOID
 typedef DRIVER_STARTIO *PDRIVER_STARTIO;
 
 typedef VOID
-(NTAPI DRIVER_UNLOAD)(
-  IN struct _DRIVER_OBJECT *DriverObject);
+(DDKAPI DRIVER_UNLOAD)(
+  IN struct _DRIVER_OBJECT  *DriverObject);
 typedef DRIVER_UNLOAD *PDRIVER_UNLOAD;
 
 typedef NTSTATUS
 typedef DRIVER_UNLOAD *PDRIVER_UNLOAD;
 
 typedef NTSTATUS
-(NTAPI DRIVER_DISPATCH)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp);
+(DDKAPI DRIVER_DISPATCH)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp);
 typedef DRIVER_DISPATCH *PDRIVER_DISPATCH;
 
 typedef struct _DRIVER_OBJECT {
 typedef DRIVER_DISPATCH *PDRIVER_DISPATCH;
 
 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;
+  CSHORT  Type;
+  CSHORT  Size;
+  PDEVICE_OBJECT  DeviceObject;
+  ULONG  Flags;
+  PVOID  DriverStart;
+  ULONG  DriverSize;
+  PVOID  DriverSection;
+  PDRIVER_EXTENSION  DriverExtension;
+  UNICODE_STRING  DriverName;
+  PUNICODE_STRING  HardwareDatabase;
   struct _FAST_IO_DISPATCH *FastIoDispatch;
   struct _FAST_IO_DISPATCH *FastIoDispatch;
-  PDRIVER_INITIALIZE DriverInit;
-  PDRIVER_STARTIO DriverStartIo;
-  PDRIVER_UNLOAD DriverUnload;
-  PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
-} DRIVER_OBJECT, *PDRIVER_OBJECT;
+  PDRIVER_INITIALIZE  DriverInit;
+  PDRIVER_STARTIO  DriverStartIo;
+  PDRIVER_UNLOAD  DriverUnload;
+  PDRIVER_DISPATCH  MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
+} DRIVER_OBJECT;
+typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT;
 
 typedef struct _DMA_ADAPTER {
 
 typedef struct _DMA_ADAPTER {
-  USHORT Version;
-  USHORT Size;
-  struct _DMA_OPERATIONS* DmaOperations;
+  USHORT  Version;
+  USHORT  Size;
+  struct _DMA_OPERATIONS*  DmaOperations;
 } DMA_ADAPTER, *PDMA_ADAPTER;
 
 typedef VOID
 } DMA_ADAPTER, *PDMA_ADAPTER;
 
 typedef VOID
-(NTAPI *PPUT_DMA_ADAPTER)(
-  IN PDMA_ADAPTER DmaAdapter);
+(DDKAPI *PPUT_DMA_ADAPTER)(
+  IN PDMA_ADAPTER  DmaAdapter);
 
 typedef PVOID
 
 typedef PVOID
-(NTAPI *PALLOCATE_COMMON_BUFFER)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  OUT PPHYSICAL_ADDRESS LogicalAddress,
-  IN BOOLEAN CacheEnabled);
+(DDKAPI *PALLOCATE_COMMON_BUFFER)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN ULONG  Length,
+  OUT PPHYSICAL_ADDRESS  LogicalAddress,
+  IN BOOLEAN  CacheEnabled);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PFREE_COMMON_BUFFER)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  IN PHYSICAL_ADDRESS LogicalAddress,
-  IN PVOID VirtualAddress,
-  IN BOOLEAN CacheEnabled);
+(DDKAPI *PFREE_COMMON_BUFFER)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN ULONG  Length,
+  IN PHYSICAL_ADDRESS  LogicalAddress,
+  IN PVOID  VirtualAddress,
+  IN BOOLEAN  CacheEnabled);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PALLOCATE_ADAPTER_CHANNEL)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG NumberOfMapRegisters,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context);
+(DDKAPI *PALLOCATE_ADAPTER_CHANNEL)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN ULONG  NumberOfMapRegisters,
+  IN PDRIVER_CONTROL  ExecutionRoutine,
+  IN PVOID  Context);
 
 typedef BOOLEAN
 
 typedef BOOLEAN
-(NTAPI *PFLUSH_ADAPTER_BUFFERS)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN BOOLEAN WriteToDevice);
+(DDKAPI *PFLUSH_ADAPTER_BUFFERS)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PMDL  Mdl,
+  IN PVOID  MapRegisterBase,
+  IN PVOID  CurrentVa,
+  IN ULONG  Length,
+  IN BOOLEAN  WriteToDevice);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PFREE_ADAPTER_CHANNEL)(
-  IN PDMA_ADAPTER DmaAdapter);
+(DDKAPI *PFREE_ADAPTER_CHANNEL)(
+  IN PDMA_ADAPTER  DmaAdapter);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PFREE_MAP_REGISTERS)(
-  IN PDMA_ADAPTER DmaAdapter,
-  PVOID MapRegisterBase,
-  ULONG NumberOfMapRegisters);
+(DDKAPI *PFREE_MAP_REGISTERS)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  PVOID  MapRegisterBase,
+  ULONG  NumberOfMapRegisters);
 
 typedef PHYSICAL_ADDRESS
 
 typedef PHYSICAL_ADDRESS
-(NTAPI *PMAP_TRANSFER)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN OUT PULONG Length,
-  IN BOOLEAN WriteToDevice);
+(DDKAPI *PMAP_TRANSFER)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PMDL  Mdl,
+  IN PVOID  MapRegisterBase,
+  IN PVOID  CurrentVa,
+  IN OUT PULONG  Length,
+  IN BOOLEAN  WriteToDevice);
 
 typedef ULONG
 
 typedef ULONG
-(NTAPI *PGET_DMA_ALIGNMENT)(
-  IN PDMA_ADAPTER DmaAdapter);
+(DDKAPI *PGET_DMA_ALIGNMENT)(
+  IN PDMA_ADAPTER  DmaAdapter);
 
 typedef ULONG
 
 typedef ULONG
-(NTAPI *PREAD_DMA_COUNTER)(
-  IN PDMA_ADAPTER DmaAdapter);
+(DDKAPI *PREAD_DMA_COUNTER)(
+  IN PDMA_ADAPTER  DmaAdapter);
 
 typedef VOID
 
 typedef VOID
-(NTAPI DRIVER_LIST_CONTROL)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN struct _SCATTER_GATHER_LIST *ScatterGather,
-  IN PVOID Context);
-typedef DRIVER_LIST_CONTROL *PDRIVER_LIST_CONTROL;
+(DDKAPI *PDRIVER_LIST_CONTROL)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN struct _SCATTER_GATHER_LIST  *ScatterGather,
+  IN PVOID  Context);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PGET_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PMDL Mdl,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN PDRIVER_LIST_CONTROL ExecutionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN WriteToDevice);
+(DDKAPI *PGET_SCATTER_GATHER_LIST)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PMDL  Mdl,
+  IN PVOID  CurrentVa,
+  IN ULONG  Length,
+  IN PDRIVER_LIST_CONTROL  ExecutionRoutine,
+  IN PVOID  Context,
+  IN BOOLEAN  WriteToDevice);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PPUT_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PSCATTER_GATHER_LIST ScatterGather,
-  IN BOOLEAN WriteToDevice);
+(DDKAPI *PPUT_SCATTER_GATHER_LIST)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PSCATTER_GATHER_LIST  ScatterGather,
+  IN BOOLEAN  WriteToDevice);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PCALCULATE_SCATTER_GATHER_LIST_SIZE)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl OPTIONAL,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  OUT PULONG ScatterGatherListSize,
-  OUT PULONG pNumberOfMapRegisters OPTIONAL);
+(DDKAPI *PCALCULATE_SCATTER_GATHER_LIST_SIZE)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PMDL  Mdl  OPTIONAL,
+  IN PVOID  CurrentVa,
+  IN ULONG  Length,
+  OUT PULONG  ScatterGatherListSize,
+  OUT PULONG  pNumberOfMapRegisters  OPTIONAL);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PBUILD_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PMDL Mdl,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN PDRIVER_LIST_CONTROL ExecutionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN WriteToDevice,
-  IN PVOID ScatterGatherBuffer,
-  IN ULONG ScatterGatherLength);
+(DDKAPI *PBUILD_SCATTER_GATHER_LIST)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PMDL  Mdl,
+  IN PVOID  CurrentVa,
+  IN ULONG  Length,
+  IN PDRIVER_LIST_CONTROL  ExecutionRoutine,
+  IN PVOID  Context,
+  IN BOOLEAN  WriteToDevice,
+  IN PVOID  ScatterGatherBuffer,
+  IN ULONG  ScatterGatherLength);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PBUILD_MDL_FROM_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PSCATTER_GATHER_LIST ScatterGather,
-  IN PMDL OriginalMdl,
-  OUT PMDL *TargetMdl);
+(DDKAPI *PBUILD_MDL_FROM_SCATTER_GATHER_LIST)(
+  IN PDMA_ADAPTER  DmaAdapter,
+  IN PSCATTER_GATHER_LIST  ScatterGather,
+  IN PMDL  OriginalMdl,
+  OUT PMDL  *TargetMdl);
 
 typedef struct _DMA_OPERATIONS {
 
 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;
-  PCALCULATE_SCATTER_GATHER_LIST_SIZE CalculateScatterGatherList;
-  PBUILD_SCATTER_GATHER_LIST BuildScatterGatherList;
-  PBUILD_MDL_FROM_SCATTER_GATHER_LIST BuildMdlFromScatterGatherList;
+  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;
+  PCALCULATE_SCATTER_GATHER_LIST_SIZE  CalculateScatterGatherList;
+  PBUILD_SCATTER_GATHER_LIST  BuildScatterGatherList;
+  PBUILD_MDL_FROM_SCATTER_GATHER_LIST  BuildMdlFromScatterGatherList;
 } DMA_OPERATIONS, *PDMA_OPERATIONS;
 
 typedef struct _IO_RESOURCE_DESCRIPTOR {
 } DMA_OPERATIONS, *PDMA_OPERATIONS;
 
 typedef struct _IO_RESOURCE_DESCRIPTOR {
-  UCHAR Option;
-  UCHAR Type;
-  UCHAR ShareDisposition;
-  UCHAR Spare1;
-  USHORT Flags;
-  USHORT Spare2;
+  UCHAR  Option;
+  UCHAR  Type;
+  UCHAR  ShareDisposition;
+  UCHAR  Spare1;
+  USHORT  Flags;
+  USHORT  Spare2;
   union {
     struct {
   union {
     struct {
-      ULONG Length;
-      ULONG Alignment;
-      PHYSICAL_ADDRESS MinimumAddress;
-      PHYSICAL_ADDRESS MaximumAddress;
+      ULONG  Length;
+      ULONG  Alignment;
+      PHYSICAL_ADDRESS  MinimumAddress;
+      PHYSICAL_ADDRESS  MaximumAddress;
     } Port;
     struct {
     } Port;
     struct {
-      ULONG Length;
-      ULONG Alignment;
-      PHYSICAL_ADDRESS MinimumAddress;
-      PHYSICAL_ADDRESS MaximumAddress;
+      ULONG  Length;
+      ULONG  Alignment;
+      PHYSICAL_ADDRESS  MinimumAddress;
+      PHYSICAL_ADDRESS  MaximumAddress;
     } Memory;
     struct {
     } Memory;
     struct {
-      ULONG MinimumVector;
-      ULONG MaximumVector;
+      ULONG  MinimumVector;
+      ULONG  MaximumVector;
     } Interrupt;
     struct {
     } Interrupt;
     struct {
-      ULONG MinimumChannel;
-      ULONG MaximumChannel;
+      ULONG  MinimumChannel;
+      ULONG  MaximumChannel;
     } Dma;
     struct {
     } Dma;
     struct {
-      ULONG Length;
-      ULONG Alignment;
-      PHYSICAL_ADDRESS MinimumAddress;
-      PHYSICAL_ADDRESS MaximumAddress;
+      ULONG  Length;
+      ULONG  Alignment;
+      PHYSICAL_ADDRESS  MinimumAddress;
+      PHYSICAL_ADDRESS  MaximumAddress;
     } Generic;
     struct {
     } Generic;
     struct {
-      ULONG Data[3];
+      ULONG  Data[3];
     } DevicePrivate;
     struct {
     } DevicePrivate;
     struct {
-      ULONG Length;
-      ULONG MinBusNumber;
-      ULONG MaxBusNumber;
-      ULONG Reserved;
+      ULONG  Length;
+      ULONG  MinBusNumber;
+      ULONG  MaxBusNumber;
+      ULONG  Reserved;
     } BusNumber;
     struct {
     } BusNumber;
     struct {
-      ULONG Priority;
-      ULONG Reserved1;
-      ULONG Reserved2;
+      ULONG  Priority;
+      ULONG  Reserved1;
+      ULONG  Reserved2;
     } ConfigData;
   } u;
 } IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;
 
 typedef struct _IO_RESOURCE_LIST {
     } ConfigData;
   } u;
 } IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;
 
 typedef struct _IO_RESOURCE_LIST {
-  USHORT Version;
-  USHORT Revision;
-  ULONG Count;
-  IO_RESOURCE_DESCRIPTOR Descriptors[1];
+  USHORT  Version;
+  USHORT  Revision;
+  ULONG  Count;
+  IO_RESOURCE_DESCRIPTOR  Descriptors[1];
 } IO_RESOURCE_LIST, *PIO_RESOURCE_LIST;
 
 typedef struct _IO_RESOURCE_REQUIREMENTS_LIST {
 } IO_RESOURCE_LIST, *PIO_RESOURCE_LIST;
 
 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];
+  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;
 
 typedef VOID
 } IO_RESOURCE_REQUIREMENTS_LIST, *PIO_RESOURCE_REQUIREMENTS_LIST;
 
 typedef VOID
-(NTAPI DRIVER_CANCEL)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp);
+(DDKAPI DRIVER_CANCEL)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp);
 typedef DRIVER_CANCEL *PDRIVER_CANCEL;
 
 typedef struct _IRP {
 typedef DRIVER_CANCEL *PDRIVER_CANCEL;
 
 typedef struct _IRP {
-  CSHORT Type;
-  USHORT Size;
-  struct _MDL *MdlAddress;
-  ULONG Flags;
+  CSHORT  Type;
+  USHORT  Size;
+  struct _MDL  *MdlAddress;
+  ULONG  Flags;
   union {
   union {
-    struct _IRP *MasterIrp;
-    volatile LONG IrpCount;
-    PVOID SystemBuffer;
+    struct _IRP  *MasterIrp;
+    volatile LONG  IrpCount;
+    PVOID  SystemBuffer;
   } AssociatedIrp;
   } 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;
+  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 {
   union {
     struct {
-      _ANONYMOUS_UNION union {
-        PIO_APC_ROUTINE UserApcRoutine;
+      _ANONYMOUS_UNION union {      
+        PIO_APC_ROUTINE  UserApcRoutine;
         PVOID IssuingProcess;
       } DUMMYUNIONNAME;
         PVOID IssuingProcess;
       } DUMMYUNIONNAME;
-      PVOID UserApcContext;
+      PVOID  UserApcContext;
     } AsynchronousParameters;
     } AsynchronousParameters;
-    LARGE_INTEGER AllocationSize;
+    LARGE_INTEGER  AllocationSize;
   } Overlay;
   } Overlay;
-  volatile PDRIVER_CANCEL CancelRoutine;
-  PVOID UserBuffer;
+  volatile PDRIVER_CANCEL  CancelRoutine;
+  PVOID  UserBuffer;
   union {
     struct {
       _ANONYMOUS_UNION union {
   union {
     struct {
       _ANONYMOUS_UNION union {
-        KDEVICE_QUEUE_ENTRY DeviceQueueEntry;
+        KDEVICE_QUEUE_ENTRY  DeviceQueueEntry;
         _ANONYMOUS_STRUCT struct {
         _ANONYMOUS_STRUCT struct {
-          PVOID DriverContext[4];
+          PVOID  DriverContext[4];
         } DUMMYSTRUCTNAME;
       } DUMMYUNIONNAME;
         } DUMMYSTRUCTNAME;
       } DUMMYUNIONNAME;
-      PETHREAD Thread;
-      PCHAR AuxiliaryBuffer;
+      PETHREAD  Thread;
+      PCHAR  AuxiliaryBuffer;
       _ANONYMOUS_STRUCT struct {
       _ANONYMOUS_STRUCT struct {
-        LIST_ENTRY ListEntry;
+        LIST_ENTRY  ListEntry;
         _ANONYMOUS_UNION union {
         _ANONYMOUS_UNION union {
-          struct _IO_STACK_LOCATION *CurrentStackLocation;
-          ULONG PacketType;
+          struct _IO_STACK_LOCATION  *CurrentStackLocation;
+          ULONG  PacketType;
         } DUMMYUNIONNAME;
       } DUMMYSTRUCTNAME;
         } DUMMYUNIONNAME;
       } DUMMYSTRUCTNAME;
-      struct _FILE_OBJECT *OriginalFileObject;
+      struct _FILE_OBJECT  *OriginalFileObject;
     } Overlay;
     } Overlay;
-    KAPC Apc;
-    PVOID CompletionKey;
+    KAPC  Apc;
+    PVOID  CompletionKey;
   } Tail;
   } Tail;
-} IRP, *PIRP;
+} IRP;
+typedef struct _IRP *PIRP;
 
 typedef enum _IO_PAGING_PRIORITY {
   IoPagingPriorityInvalid,
 
 typedef enum _IO_PAGING_PRIORITY {
   IoPagingPriorityInvalid,
@@ -6070,96 +4824,93 @@ typedef enum _IO_PAGING_PRIORITY {
 } IO_PAGING_PRIORITY;
 
 typedef NTSTATUS
 } IO_PAGING_PRIORITY;
 
 typedef NTSTATUS
-(NTAPI IO_COMPLETION_ROUTINE)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN PVOID Context);
+(DDKAPI IO_COMPLETION_ROUTINE)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN PVOID  Context);
 typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
 
 typedef VOID
 typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
 
 typedef VOID
-(NTAPI IO_DPC_ROUTINE)(
-  IN struct _KDPC *Dpc,
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN PVOID Context);
-typedef IO_DPC_ROUTINE *PIO_DPC_ROUTINE;
+(DDKAPI *PIO_DPC_ROUTINE)(
+  IN struct _KDPC  *Dpc,
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN PVOID  Context);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PMM_DLL_INITIALIZE)(
-  IN PUNICODE_STRING RegistryPath);
+(DDKAPI *PMM_DLL_INITIALIZE)(
+  IN PUNICODE_STRING  RegistryPath);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PMM_DLL_UNLOAD)(
+(DDKAPI *PMM_DLL_UNLOAD)(
   VOID);
 
   VOID);
 
+typedef BOOLEAN
+(DDKAPI KSERVICE_ROUTINE)(
+  IN struct _KINTERRUPT  *Interrupt,
+  IN PVOID  ServiceContext);
+typedef KSERVICE_ROUTINE *PKSERVICE_ROUTINE;
+
 typedef VOID
 typedef VOID
-(NTAPI IO_TIMER_ROUTINE)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN PVOID Context);
-typedef IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
+(DDKAPI *PIO_TIMER_ROUTINE)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN PVOID  Context);
 
 typedef struct _IO_SECURITY_CONTEXT {
 
 typedef struct _IO_SECURITY_CONTEXT {
-  PSECURITY_QUALITY_OF_SERVICE SecurityQos;
-  PACCESS_STATE AccessState;
-  ACCESS_MASK DesiredAccess;
-  ULONG FullCreateOptions;
+  PSECURITY_QUALITY_OF_SERVICE  SecurityQos;
+  PACCESS_STATE  AccessState;
+  ACCESS_MASK  DesiredAccess;
+  ULONG  FullCreateOptions;
 } IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT;
 
 struct _IO_CSQ;
 
 typedef struct _IO_CSQ_IRP_CONTEXT {
 } IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT;
 
 struct _IO_CSQ;
 
 typedef struct _IO_CSQ_IRP_CONTEXT {
-  ULONG Type;
-  struct _IRP *Irp;
-  struct _IO_CSQ *Csq;
+  ULONG  Type;
+  struct _IRP  *Irp;
+  struct _IO_CSQ  *Csq;
 } IO_CSQ_IRP_CONTEXT, *PIO_CSQ_IRP_CONTEXT;
 
 typedef VOID
 } IO_CSQ_IRP_CONTEXT, *PIO_CSQ_IRP_CONTEXT;
 
 typedef VOID
-(NTAPI *PIO_CSQ_INSERT_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp);
-
-typedef NTSTATUS
-(NTAPI IO_CSQ_INSERT_IRP_EX)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp,
-  IN PVOID InsertContext);
-typedef IO_CSQ_INSERT_IRP_EX *PIO_CSQ_INSERT_IRP_EX;
+(DDKAPI *PIO_CSQ_INSERT_IRP)(
+  IN struct _IO_CSQ  *Csq,
+  IN PIRP  Irp);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PIO_CSQ_REMOVE_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp);
+(DDKAPI *PIO_CSQ_REMOVE_IRP)(
+  IN struct _IO_CSQ  *Csq,
+  IN PIRP  Irp);
 
 typedef PIRP
 
 typedef PIRP
-(NTAPI *PIO_CSQ_PEEK_NEXT_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp,
-  IN PVOID PeekContext);
+(DDKAPI *PIO_CSQ_PEEK_NEXT_IRP)(
+  IN struct _IO_CSQ  *Csq,
+  IN PIRP  Irp,
+  IN PVOID  PeekContext);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PIO_CSQ_ACQUIRE_LOCK)(
-  IN struct _IO_CSQ *Csq,
-  OUT PKIRQL Irql);
+(DDKAPI *PIO_CSQ_ACQUIRE_LOCK)(
+  IN  struct _IO_CSQ  *Csq,
+  OUT PKIRQL  Irql);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PIO_CSQ_RELEASE_LOCK)(
-  IN struct _IO_CSQ *Csq,
-  IN KIRQL Irql);
+(DDKAPI *PIO_CSQ_RELEASE_LOCK)(
+  IN struct _IO_CSQ  *Csq,
+  IN KIRQL  Irql);
 
 typedef VOID
 
 typedef VOID
-(NTAPI *PIO_CSQ_COMPLETE_CANCELED_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp);
+(DDKAPI *PIO_CSQ_COMPLETE_CANCELED_IRP)(
+  IN  struct _IO_CSQ  *Csq,
+  IN  PIRP  Irp);
 
 typedef struct _IO_CSQ {
 
 typedef struct _IO_CSQ {
-  ULONG Type;
-  PIO_CSQ_INSERT_IRP CsqInsertIrp;
-  PIO_CSQ_REMOVE_IRP CsqRemoveIrp;
-  PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp;
-  PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock;
-  PIO_CSQ_RELEASE_LOCK CsqReleaseLock;
-  PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp;
-  PVOID ReservePointer;
+  ULONG  Type;
+  PIO_CSQ_INSERT_IRP  CsqInsertIrp;
+  PIO_CSQ_REMOVE_IRP  CsqRemoveIrp;
+  PIO_CSQ_PEEK_NEXT_IRP  CsqPeekNextIrp;
+  PIO_CSQ_ACQUIRE_LOCK  CsqAcquireLock;
+  PIO_CSQ_RELEASE_LOCK  CsqReleaseLock;
+  PIO_CSQ_COMPLETE_CANCELED_IRP  CsqCompleteCanceledIrp;
+  PVOID  ReservePointer;
 } IO_CSQ, *PIO_CSQ;
 
 typedef enum _BUS_QUERY_ID_TYPE {
 } IO_CSQ, *PIO_CSQ;
 
 typedef enum _BUS_QUERY_ID_TYPE {
@@ -6175,321 +4926,198 @@ typedef enum _DEVICE_TEXT_TYPE {
   DeviceTextLocationInformation
 } DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
 
   DeviceTextLocationInformation
 } DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
 
-typedef BOOLEAN
-(NTAPI *PGPE_SERVICE_ROUTINE)(
-  PVOID,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CONNECT_VECTOR)(
-  PDEVICE_OBJECT,
-  ULONG,
-  KINTERRUPT_MODE,
-  BOOLEAN,
-  PGPE_SERVICE_ROUTINE,
-  PVOID,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISCONNECT_VECTOR)(
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_ENABLE_EVENT)(
-  PDEVICE_OBJECT,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISABLE_EVENT)(
-  PDEVICE_OBJECT,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CLEAR_STATUS)(
-  PDEVICE_OBJECT,
-  PVOID);
-
-typedef VOID
-(NTAPI *PDEVICE_NOTIFY_CALLBACK)(
-  PVOID,
-  ULONG);
-
-typedef NTSTATUS
-(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS)(
-  PDEVICE_OBJECT,
-  PDEVICE_NOTIFY_CALLBACK,
-  PVOID);
-
-typedef VOID
-(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS)(
-  PDEVICE_OBJECT,
-  PDEVICE_NOTIFY_CALLBACK);
-
-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;
-
-typedef BOOLEAN
-(NTAPI *PGPE_SERVICE_ROUTINE2)(
-  PVOID ObjectContext,
-  PVOID ServiceContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CONNECT_VECTOR2)(
-  PVOID Context,
-  ULONG GpeNumber,
-  KINTERRUPT_MODE Mode,
-  BOOLEAN Shareable,
-  PGPE_SERVICE_ROUTINE ServiceRoutine,
-  PVOID ServiceContext,
-  PVOID *ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISCONNECT_VECTOR2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_ENABLE_EVENT2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISABLE_EVENT2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CLEAR_STATUS2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef VOID
-(NTAPI *PDEVICE_NOTIFY_CALLBACK2)(
-  PVOID NotificationContext,
-  ULONG NotifyCode);
-
-typedef NTSTATUS
-(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
-  PVOID Context,
-  PDEVICE_NOTIFY_CALLBACK2 NotificationHandler,
-  PVOID NotificationContext);
-
-typedef VOID
-(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
-  PVOID Context);
-
-typedef struct _ACPI_INTERFACE_STANDARD2 {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PGPE_CONNECT_VECTOR2 GpeConnectVector;
-  PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector;
-  PGPE_ENABLE_EVENT2 GpeEnableEvent;
-  PGPE_DISABLE_EVENT2 GpeDisableEvent;
-  PGPE_CLEAR_STATUS2 GpeClearStatus;
-  PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications;
-  PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications;
-} ACPI_INTERFACE_STANDARD2, *PACPI_INTERFACE_STANDARD2;
+typedef enum _WORK_QUEUE_TYPE {
+  CriticalWorkQueue,
+  DelayedWorkQueue,
+  HyperCriticalWorkQueue,
+  MaximumWorkQueue
+} WORK_QUEUE_TYPE;
 
 #if !defined(_AMD64_) && !defined(_IA64_)
 #include <pshpack4.h>
 #endif
 typedef struct _IO_STACK_LOCATION {
 
 #if !defined(_AMD64_) && !defined(_IA64_)
 #include <pshpack4.h>
 #endif
 typedef struct _IO_STACK_LOCATION {
-  UCHAR MajorFunction;
-  UCHAR MinorFunction;
-  UCHAR Flags;
-  UCHAR Control;
+  UCHAR  MajorFunction;
+  UCHAR  MinorFunction;
+  UCHAR  Flags;
+  UCHAR  Control;
   union {
     struct {
   union {
     struct {
-      PIO_SECURITY_CONTEXT SecurityContext;
-      ULONG Options;
-      USHORT POINTER_ALIGNMENT FileAttributes;
-      USHORT ShareAccess;
-      ULONG POINTER_ALIGNMENT EaLength;
+      PIO_SECURITY_CONTEXT  SecurityContext;
+      ULONG  Options;
+      USHORT POINTER_ALIGNMENT  FileAttributes;
+      USHORT  ShareAccess;
+      ULONG POINTER_ALIGNMENT  EaLength;
     } Create;
     struct {
     } Create;
     struct {
-      ULONG Length;
-      ULONG POINTER_ALIGNMENT Key;
-      LARGE_INTEGER ByteOffset;
+      ULONG  Length;
+      ULONG POINTER_ALIGNMENT  Key;
+      LARGE_INTEGER  ByteOffset;
     } Read;
     struct {
     } Read;
     struct {
-      ULONG Length;
-      ULONG POINTER_ALIGNMENT Key;
-      LARGE_INTEGER ByteOffset;
+      ULONG  Length;
+      ULONG POINTER_ALIGNMENT  Key;
+      LARGE_INTEGER  ByteOffset;
     } Write;
     struct {
     } Write;
     struct {
-      ULONG Length;
-      PUNICODE_STRING FileName;
-      FILE_INFORMATION_CLASS FileInformationClass;
-      ULONG FileIndex;
+      ULONG  Length;
+      PUNICODE_STRING  FileName;
+      FILE_INFORMATION_CLASS  FileInformationClass;
+      ULONG  FileIndex;
     } QueryDirectory;
     struct {
     } QueryDirectory;
     struct {
-      ULONG Length;
-      ULONG CompletionFilter;
+      ULONG  Length;
+      ULONG  CompletionFilter;
     } NotifyDirectory;
     struct {
     } NotifyDirectory;
     struct {
-      ULONG Length;
-      FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
+      ULONG  Length;
+      FILE_INFORMATION_CLASS POINTER_ALIGNMENT  FileInformationClass;
     } QueryFile;
     struct {
     } QueryFile;
     struct {
-      ULONG Length;
-      FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
-      PFILE_OBJECT FileObject;
+      ULONG  Length;
+      FILE_INFORMATION_CLASS POINTER_ALIGNMENT  FileInformationClass;
+      PFILE_OBJECT  FileObject;
       _ANONYMOUS_UNION union {
         _ANONYMOUS_STRUCT struct {
       _ANONYMOUS_UNION union {
         _ANONYMOUS_STRUCT struct {
-          BOOLEAN ReplaceIfExists;
-          BOOLEAN AdvanceOnly;
+          BOOLEAN  ReplaceIfExists;
+          BOOLEAN  AdvanceOnly;
         } DUMMYSTRUCTNAME;
         } DUMMYSTRUCTNAME;
-        ULONG ClusterCount;
-        HANDLE DeleteHandle;
+        ULONG  ClusterCount;
+        HANDLE  DeleteHandle;
       } DUMMYUNIONNAME;
     } SetFile;
     struct {
       } DUMMYUNIONNAME;
     } SetFile;
     struct {
-      ULONG Length;
-      PVOID EaList;
-      ULONG EaListLength;
-      ULONG EaIndex;
+      ULONG  Length;
+      PVOID  EaList;
+      ULONG  EaListLength;
+      ULONG  EaIndex;
     } QueryEa;
     struct {
     } QueryEa;
     struct {
-      ULONG Length;
+      ULONG  Length;
     } SetEa;
     struct {
     } SetEa;
     struct {
-      ULONG Length;
-      FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass;
+      ULONG  Length;
+      FS_INFORMATION_CLASS POINTER_ALIGNMENT  FsInformationClass;
     } QueryVolume;
     struct {
     } QueryVolume;
     struct {
-      ULONG Length;
-      FS_INFORMATION_CLASS FsInformationClass;
+      ULONG  Length;
+      FS_INFORMATION_CLASS  FsInformationClass;
     } SetVolume;
     struct {
     } SetVolume;
     struct {
-      ULONG OutputBufferLength;
-      ULONG InputBufferLength;
-      ULONG FsControlCode;
-      PVOID Type3InputBuffer;
+      ULONG  OutputBufferLength;
+      ULONG  InputBufferLength;
+      ULONG  FsControlCode;
+      PVOID  Type3InputBuffer;
     } FileSystemControl;
     struct {
     } FileSystemControl;
     struct {
-      PLARGE_INTEGER Length;
-      ULONG Key;
-      LARGE_INTEGER ByteOffset;
+      PLARGE_INTEGER  Length;
+      ULONG  Key;
+      LARGE_INTEGER  ByteOffset;
     } LockControl;
     struct {
     } LockControl;
     struct {
-      ULONG OutputBufferLength;
-      ULONG POINTER_ALIGNMENT InputBufferLength;
-      ULONG POINTER_ALIGNMENT IoControlCode;
-      PVOID Type3InputBuffer;
+      ULONG  OutputBufferLength;
+      ULONG POINTER_ALIGNMENT  InputBufferLength;
+      ULONG POINTER_ALIGNMENT  IoControlCode;
+      PVOID  Type3InputBuffer;
     } DeviceIoControl;
     struct {
     } DeviceIoControl;
     struct {
-      SECURITY_INFORMATION SecurityInformation;
-      ULONG POINTER_ALIGNMENT Length;
+      SECURITY_INFORMATION  SecurityInformation;
+      ULONG POINTER_ALIGNMENT  Length;
     } QuerySecurity;
     struct {
     } QuerySecurity;
     struct {
-      SECURITY_INFORMATION SecurityInformation;
-      PSECURITY_DESCRIPTOR SecurityDescriptor;
+      SECURITY_INFORMATION  SecurityInformation;
+      PSECURITY_DESCRIPTOR  SecurityDescriptor;
     } SetSecurity;
     struct {
     } SetSecurity;
     struct {
-      PVPB Vpb;
-      PDEVICE_OBJECT DeviceObject;
+      PVPB  Vpb;
+      PDEVICE_OBJECT  DeviceObject;
     } MountVolume;
     struct {
     } MountVolume;
     struct {
-      PVPB Vpb;
-      PDEVICE_OBJECT DeviceObject;
+      PVPB  Vpb;
+      PDEVICE_OBJECT  DeviceObject;
     } VerifyVolume;
     struct {
     } VerifyVolume;
     struct {
-      struct _SCSI_REQUEST_BLOCK *Srb;
+      struct _SCSI_REQUEST_BLOCK  *Srb;
     } Scsi;
     struct {
     } Scsi;
     struct {
-      ULONG Length;
-      PSID StartSid;
-      struct _FILE_GET_QUOTA_INFORMATION *SidList;
-      ULONG SidListLength;
+      ULONG  Length;
+      PSID  StartSid;
+      struct _FILE_GET_QUOTA_INFORMATION  *SidList;
+      ULONG  SidListLength;
     } QueryQuota;
     struct {
     } QueryQuota;
     struct {
-      ULONG Length;
+      ULONG  Length;
     } SetQuota;
     struct {
     } SetQuota;
     struct {
-      DEVICE_RELATION_TYPE Type;
+      DEVICE_RELATION_TYPE  Type;
     } QueryDeviceRelations;
     struct {
     } QueryDeviceRelations;
     struct {
-      CONST GUID *InterfaceType;
-      USHORT Size;
-      USHORT Version;
-      PINTERFACE Interface;
-      PVOID InterfaceSpecificData;
+      CONST GUID  *InterfaceType;
+      USHORT  Size;
+      USHORT  Version;
+      PINTERFACE  Interface;
+      PVOID  InterfaceSpecificData;
     } QueryInterface;
     struct {
     } QueryInterface;
     struct {
-      PDEVICE_CAPABILITIES Capabilities;
+      PDEVICE_CAPABILITIES  Capabilities;
     } DeviceCapabilities;
     struct {
     } DeviceCapabilities;
     struct {
-      PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList;
+      PIO_RESOURCE_REQUIREMENTS_LIST  IoResourceRequirementList;
     } FilterResourceRequirements;
     struct {
     } FilterResourceRequirements;
     struct {
-      ULONG WhichSpace;
-      PVOID Buffer;
-      ULONG Offset;
-      ULONG POINTER_ALIGNMENT Length;
+      ULONG  WhichSpace;
+      PVOID  Buffer;
+      ULONG  Offset;
+      ULONG POINTER_ALIGNMENT  Length;
     } ReadWriteConfig;
     struct {
     } ReadWriteConfig;
     struct {
-      BOOLEAN Lock;
+      BOOLEAN  Lock;
     } SetLock;
     struct {
     } SetLock;
     struct {
-      BUS_QUERY_ID_TYPE IdType;
+      BUS_QUERY_ID_TYPE  IdType;
     } QueryId;
     struct {
     } QueryId;
     struct {
-      DEVICE_TEXT_TYPE DeviceTextType;
-      LCID POINTER_ALIGNMENT LocaleId;
+      DEVICE_TEXT_TYPE  DeviceTextType;
+      LCID POINTER_ALIGNMENT  LocaleId;
     } QueryDeviceText;
     struct {
     } QueryDeviceText;
     struct {
-      BOOLEAN InPath;
-      BOOLEAN Reserved[3];
-      DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type;
+      BOOLEAN  InPath;
+      BOOLEAN  Reserved[3];
+      DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT  Type;
     } UsageNotification;
     struct {
     } UsageNotification;
     struct {
-      SYSTEM_POWER_STATE PowerState;
+      SYSTEM_POWER_STATE  PowerState;
     } WaitWake;
     struct {
     } WaitWake;
     struct {
-      PPOWER_SEQUENCE PowerSequence;
+      PPOWER_SEQUENCE  PowerSequence;
     } PowerSequence;
     struct {
     } PowerSequence;
     struct {
-      ULONG SystemContext;
-      POWER_STATE_TYPE POINTER_ALIGNMENT Type;
-      POWER_STATE POINTER_ALIGNMENT State;
-      POWER_ACTION POINTER_ALIGNMENT ShutdownType;
+      ULONG  SystemContext;
+      POWER_STATE_TYPE POINTER_ALIGNMENT  Type;
+      POWER_STATE POINTER_ALIGNMENT  State;
+      POWER_ACTION POINTER_ALIGNMENT  ShutdownType;
     } Power;
     struct {
     } Power;
     struct {
-      PCM_RESOURCE_LIST AllocatedResources;
-      PCM_RESOURCE_LIST AllocatedResourcesTranslated;
+      PCM_RESOURCE_LIST  AllocatedResources;
+      PCM_RESOURCE_LIST  AllocatedResourcesTranslated;
     } StartDevice;
     struct {
     } StartDevice;
     struct {
-      ULONG_PTR ProviderId;
-      PVOID DataPath;
-      ULONG BufferSize;
-      PVOID Buffer;
+      ULONG_PTR  ProviderId;
+      PVOID  DataPath;
+      ULONG  BufferSize;
+      PVOID  Buffer;
     } WMI;
     struct {
     } WMI;
     struct {
-      PVOID Argument1;
-      PVOID Argument2;
-      PVOID Argument3;
-      PVOID Argument4;
+      PVOID  Argument1;
+      PVOID  Argument2;
+      PVOID  Argument3;
+      PVOID  Argument4;
     } Others;
   } Parameters;
     } Others;
   } Parameters;
-  PDEVICE_OBJECT DeviceObject;
-  PFILE_OBJECT FileObject;
-  PIO_COMPLETION_ROUTINE CompletionRoutine;
-  PVOID Context;
+  PDEVICE_OBJECT  DeviceObject;
+  PFILE_OBJECT  FileObject;
+  PIO_COMPLETION_ROUTINE  CompletionRoutine;
+  PVOID  Context;
 } IO_STACK_LOCATION, *PIO_STACK_LOCATION;
 #if !defined(_AMD64_) && !defined(_IA64_)
 #include <poppack.h>
 } IO_STACK_LOCATION, *PIO_STACK_LOCATION;
 #if !defined(_AMD64_) && !defined(_IA64_)
 #include <poppack.h>
@@ -6503,13 +5131,16 @@ typedef struct _IO_STACK_LOCATION {
 #define SL_INVOKE_ON_SUCCESS              0x40
 #define SL_INVOKE_ON_ERROR                0x80
 
 #define SL_INVOKE_ON_SUCCESS              0x40
 #define SL_INVOKE_ON_ERROR                0x80
 
+/* IO_STACK_LOCATION.Parameters.ReadWriteControl.WhichSpace */
+
+#define PCI_WHICHSPACE_CONFIG             0x0
+#define PCI_WHICHSPACE_ROM                0x52696350 /* 'PciR' */
+
 #define METHOD_BUFFERED                   0
 #define METHOD_IN_DIRECT                  1
 #define METHOD_OUT_DIRECT                 2
 #define METHOD_NEITHER                    3
 
 #define METHOD_BUFFERED                   0
 #define METHOD_IN_DIRECT                  1
 #define METHOD_OUT_DIRECT                 2
 #define METHOD_NEITHER                    3
 
-#define METHOD_DIRECT_TO_HARDWARE       METHOD_IN_DIRECT
-#define METHOD_DIRECT_FROM_HARDWARE     METHOD_OUT_DIRECT
 
 #define FILE_SUPERSEDED                   0x00000000
 #define FILE_OPENED                       0x00000001
 
 #define FILE_SUPERSEDED                   0x00000000
 #define FILE_OPENED                       0x00000001
@@ -6556,7 +5187,6 @@ typedef struct _IO_STACK_LOCATION {
 #define FILE_ATTRIBUTE_OFFLINE            0x00001000
 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
 #define FILE_ATTRIBUTE_ENCRYPTED          0x00004000
 #define FILE_ATTRIBUTE_OFFLINE            0x00001000
 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
 #define FILE_ATTRIBUTE_ENCRYPTED          0x00004000
-#define FILE_ATTRIBUTE_VIRTUAL            0x00010000
 
 #define FILE_ATTRIBUTE_VALID_FLAGS        0x00007fb7
 #define FILE_ATTRIBUTE_VALID_SET_FLAGS    0x000031a7
 
 #define FILE_ATTRIBUTE_VALID_FLAGS        0x00007fb7
 #define FILE_ATTRIBUTE_VALID_SET_FLAGS    0x000031a7
@@ -6590,10 +5220,6 @@ typedef struct _IO_STACK_LOCATION {
 #define FILE_OPEN_BY_FILE_ID              0x00002000
 #define FILE_OPEN_FOR_BACKUP_INTENT       0x00004000
 #define FILE_NO_COMPRESSION               0x00008000
 #define FILE_OPEN_BY_FILE_ID              0x00002000
 #define FILE_OPEN_FOR_BACKUP_INTENT       0x00004000
 #define FILE_NO_COMPRESSION               0x00008000
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-#define FILE_OPEN_REQUIRING_OPLOCK        0x00010000
-#define FILE_DISALLOW_EXCLUSIVE           0x00020000
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 #define FILE_RESERVE_OPFILTER             0x00100000
 #define FILE_OPEN_REPARSE_POINT           0x00200000
 #define FILE_OPEN_NO_RECALL               0x00400000
 #define FILE_RESERVE_OPFILTER             0x00100000
 #define FILE_OPEN_REPARSE_POINT           0x00200000
 #define FILE_OPEN_NO_RECALL               0x00400000
@@ -6632,8748 +5258,5806 @@ typedef struct _IO_STACK_LOCATION {
 
 /* end winnt.h */
 
 
 /* end winnt.h */
 
-#define WMIREG_ACTION_REGISTER      1
-#define WMIREG_ACTION_DEREGISTER    2
-#define WMIREG_ACTION_REREGISTER    3
-#define WMIREG_ACTION_UPDATE_GUIDS  4
-#define WMIREG_ACTION_BLOCK_IRPS    5
+/******************************************************************************
+ *                            Object Manager Types                            *
+ ******************************************************************************/
 
 
-#define WMIREGISTER                 0
-#define WMIUPDATE                   1
+typedef struct _OBJECT_NAME_INFORMATION {
+  UNICODE_STRING  Name;
+} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
 
 
-typedef VOID
-(NTAPI FWMI_NOTIFICATION_CALLBACK)(
-  PVOID Wnode,
-  PVOID Context);
-typedef FWMI_NOTIFICATION_CALLBACK *WMI_NOTIFICATION_CALLBACK;
+/* Exported object types */
+extern POBJECT_TYPE NTSYSAPI ExEventObjectType;
+extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType;
+extern POBJECT_TYPE NTSYSAPI IoFileObjectType;
+extern POBJECT_TYPE NTSYSAPI PsThreadType;
+extern POBJECT_TYPE NTSYSAPI SeTokenObjectType;
+extern POBJECT_TYPE NTSYSAPI PsProcessType;
 
 
-#ifndef _PCI_X_
-#define _PCI_X_
 
 
-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;
+/******************************************************************************
+ *                           Process Manager Types                            *
+ ******************************************************************************/
 
 
-#define PCI_TYPE0_ADDRESSES               6
-#define PCI_TYPE1_ADDRESSES               2
-#define PCI_TYPE2_ADDRESSES               5
+#define QUOTA_LIMITS_HARDWS_MIN_ENABLE  0x00000001
+#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
+#define QUOTA_LIMITS_HARDWS_MAX_ENABLE  0x00000004
+#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008
+#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
 
 
-typedef struct _PCI_COMMON_HEADER {
-  PCI_COMMON_HEADER_LAYOUT
-} PCI_COMMON_HEADER, *PPCI_COMMON_HEADER;
+/* Process Qoutas */
+typedef struct _QUOTA_LIMITS {
+    SIZE_T PagedPoolLimit;
+    SIZE_T NonPagedPoolLimit;
+    SIZE_T MinimumWorkingSetSize;
+    SIZE_T MaximumWorkingSetSize;
+    SIZE_T PagefileLimit;
+    LARGE_INTEGER TimeLimit;
+} QUOTA_LIMITS, *PQUOTA_LIMITS;
 
 
-#ifdef __cplusplus
-typedef struct _PCI_COMMON_CONFIG {
-  PCI_COMMON_HEADER_LAYOUT
-  UCHAR DeviceSpecific[192];
-} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
-#else
-typedef struct _PCI_COMMON_CONFIG {
-  PCI_COMMON_HEADER DUMMYSTRUCTNAME;
-  UCHAR DeviceSpecific[192];
-} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
-#endif
+/* Thread Access Rights */
+#define THREAD_TERMINATE                 0x0001
+#define THREAD_SUSPEND_RESUME            0x0002
+#define THREAD_ALERT                     0x0004
+#define THREAD_GET_CONTEXT               0x0008
+#define THREAD_SET_CONTEXT               0x0010
+#define THREAD_SET_INFORMATION           0x0020
+#define THREAD_SET_LIMITED_INFORMATION   0x0400
+#define THREAD_QUERY_LIMITED_INFORMATION 0x0800
 
 
-#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET(PCI_COMMON_CONFIG, DeviceSpecific))
+#define PROCESS_DUP_HANDLE                 (0x0040)
 
 
-#define PCI_EXTENDED_CONFIG_LENGTH               0x1000
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+#define PROCESS_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
+#else
+#define PROCESS_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF)
+#endif
 
 
-#define PCI_MAX_DEVICES        32
-#define PCI_MAX_FUNCTION       8
-#define PCI_MAX_BRIDGE_NUMBER  0xFF
-#define PCI_INVALID_VENDORID   0xFFFF
-
-/* PCI_COMMON_CONFIG.HeaderType */
-#define PCI_MULTIFUNCTION                 0x80
-#define PCI_DEVICE_TYPE                   0x00
-#define PCI_BRIDGE_TYPE                   0x01
-#define PCI_CARDBUS_BRIDGE_TYPE           0x02
-
-#define PCI_CONFIGURATION_TYPE(PciData) \
-  (((PPCI_COMMON_CONFIG) (PciData))->HeaderType & ~PCI_MULTIFUNCTION)
-
-#define PCI_MULTIFUNCTION_DEVICE(PciData) \
-  ((((PPCI_COMMON_CONFIG) (PciData))->HeaderType & PCI_MULTIFUNCTION) != 0)
-
-/* PCI_COMMON_CONFIG.Command */
-#define PCI_ENABLE_IO_SPACE               0x0001
-#define PCI_ENABLE_MEMORY_SPACE           0x0002
-#define PCI_ENABLE_BUS_MASTER             0x0004
-#define PCI_ENABLE_SPECIAL_CYCLES         0x0008
-#define PCI_ENABLE_WRITE_AND_INVALIDATE   0x0010
-#define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020
-#define PCI_ENABLE_PARITY                 0x0040
-#define PCI_ENABLE_WAIT_CYCLE             0x0080
-#define PCI_ENABLE_SERR                   0x0100
-#define PCI_ENABLE_FAST_BACK_TO_BACK      0x0200
-#define PCI_DISABLE_LEVEL_INTERRUPT       0x0400
-
-/* PCI_COMMON_CONFIG.Status */
-#define PCI_STATUS_INTERRUPT_PENDING      0x0008
-#define PCI_STATUS_CAPABILITIES_LIST      0x0010
-#define PCI_STATUS_66MHZ_CAPABLE          0x0020
-#define PCI_STATUS_UDF_SUPPORTED          0x0040
-#define PCI_STATUS_FAST_BACK_TO_BACK      0x0080
-#define PCI_STATUS_DATA_PARITY_DETECTED   0x0100
-#define PCI_STATUS_DEVSEL                 0x0600
-#define PCI_STATUS_SIGNALED_TARGET_ABORT  0x0800
-#define PCI_STATUS_RECEIVED_TARGET_ABORT  0x1000
-#define PCI_STATUS_RECEIVED_MASTER_ABORT  0x2000
-#define PCI_STATUS_SIGNALED_SYSTEM_ERROR  0x4000
-#define PCI_STATUS_DETECTED_PARITY_ERROR  0x8000
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+#define THREAD_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
+#else
+#define THREAD_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF)
+#endif
 
 
-/* IO_STACK_LOCATION.Parameters.ReadWriteControl.WhichSpace */
+#define ES_SYSTEM_REQUIRED                0x00000001
+#define ES_DISPLAY_REQUIRED               0x00000002
+#define ES_USER_PRESENT                   0x00000004
+#define ES_CONTINUOUS                     0x80000000
 
 
-#define PCI_WHICHSPACE_CONFIG             0x0
-#define PCI_WHICHSPACE_ROM                0x52696350 /* 'PciR' */
+#define LOW_PRIORITY                      0
+#define LOW_REALTIME_PRIORITY             16
+#define HIGH_PRIORITY                     31
+#define MAXIMUM_PRIORITY                  32
 
 
-#define PCI_CAPABILITY_ID_POWER_MANAGEMENT  0x01
-#define PCI_CAPABILITY_ID_AGP               0x02
-#define PCI_CAPABILITY_ID_VPD               0x03
-#define PCI_CAPABILITY_ID_SLOT_ID           0x04
-#define PCI_CAPABILITY_ID_MSI               0x05
-#define PCI_CAPABILITY_ID_CPCI_HOTSWAP      0x06
-#define PCI_CAPABILITY_ID_PCIX              0x07
-#define PCI_CAPABILITY_ID_HYPERTRANSPORT    0x08
-#define PCI_CAPABILITY_ID_VENDOR_SPECIFIC   0x09
-#define PCI_CAPABILITY_ID_DEBUG_PORT        0x0A
-#define PCI_CAPABILITY_ID_CPCI_RES_CTRL     0x0B
-#define PCI_CAPABILITY_ID_SHPC              0x0C
-#define PCI_CAPABILITY_ID_P2P_SSID          0x0D
-#define PCI_CAPABILITY_ID_AGP_TARGET        0x0E
-#define PCI_CAPABILITY_ID_SECURE            0x0F
-#define PCI_CAPABILITY_ID_PCI_EXPRESS       0x10
-#define PCI_CAPABILITY_ID_MSIX              0x11
-
-typedef struct _PCI_CAPABILITIES_HEADER {
-  UCHAR CapabilityID;
-  UCHAR Next;
-} PCI_CAPABILITIES_HEADER, *PPCI_CAPABILITIES_HEADER;
-
-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;
-
-typedef struct _PCI_PMCSR_BSE {
-  UCHAR Rsvd1:6;
-  UCHAR D3HotSupportsStopClock:1;
-  UCHAR BusPowerClockControlEnabled:1;
-} PCI_PMCSR_BSE, *PPCI_PMCSR_BSE;
-
-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;
 
 
-typedef struct {
-  PCI_CAPABILITIES_HEADER Header;
-  union {
-    struct {
-      USHORT DataParityErrorRecoveryEnable:1;
-      USHORT EnableRelaxedOrdering:1;
-      USHORT MaxMemoryReadByteCount:2;
-      USHORT MaxOutstandingSplitTransactions:3;
-      USHORT Reserved:9;
-    } bits;
-    USHORT AsUSHORT;
-  } Command;
-  union {
-    struct {
-      ULONG FunctionNumber:3;
-      ULONG DeviceNumber:5;
-      ULONG BusNumber:8;
-      ULONG Device64Bit:1;
-      ULONG Capable133MHz:1;
-      ULONG SplitCompletionDiscarded:1;
-      ULONG UnexpectedSplitCompletion:1;
-      ULONG DeviceComplexity:1;
-      ULONG DesignedMaxMemoryReadByteCount:2;
-      ULONG DesignedMaxOutstandingSplitTransactions:3;
-      ULONG DesignedMaxCumulativeReadSize:3;
-      ULONG ReceivedSplitCompletionErrorMessage:1;
-      ULONG CapablePCIX266:1;
-      ULONG CapablePCIX533:1;
-      } bits;
-    ULONG AsULONG;
-  } Status;
-} PCI_X_CAPABILITY, *PPCI_X_CAPABILITY;
-
-#define PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID                     0x0001
-#define PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID                              0x0002
-#define PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID                         0x0003
-#define PCI_EXPRESS_POWER_BUDGETING_CAP_ID                              0x0004
-#define PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID                          0x0005
-#define PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID                     0x0006
-#define PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID      0x0007
-#define PCI_EXPRESS_MFVC_CAP_ID                                         0x0008
-#define PCI_EXPRESS_VC_AND_MFVC_CAP_ID                                  0x0009
-#define PCI_EXPRESS_RCRB_HEADER_CAP_ID                                  0x000A
-#define PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID                0x0010
-
-typedef struct _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER {
-  USHORT CapabilityID;
-  USHORT Version:4;
-  USHORT Next:12;
-} PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, *PPCI_EXPRESS_ENHANCED_CAPABILITY_HEADER;
-
-typedef struct _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  ULONG LowSerialNumber;
-  ULONG HighSerialNumber;
-} PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY, *PPCI_EXPRESS_SERIAL_NUMBER_CAPABILITY;
-
-typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS {
-  struct {
-    ULONG Undefined:1;
-    ULONG Reserved1:3;
-    ULONG DataLinkProtocolError:1;
-    ULONG SurpriseDownError:1;
-    ULONG Reserved2:6;
-    ULONG PoisonedTLP:1;
-    ULONG FlowControlProtocolError:1;
-    ULONG CompletionTimeout:1;
-    ULONG CompleterAbort:1;
-    ULONG UnexpectedCompletion:1;
-    ULONG ReceiverOverflow:1;
-    ULONG MalformedTLP:1;
-    ULONG ECRCError:1;
-    ULONG UnsupportedRequestError:1;
-    ULONG Reserved3:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK {
-  struct {
-    ULONG Undefined:1;
-    ULONG Reserved1:3;
-    ULONG DataLinkProtocolError:1;
-    ULONG SurpriseDownError:1;
-    ULONG Reserved2:6;
-    ULONG PoisonedTLP:1;
-    ULONG FlowControlProtocolError:1;
-    ULONG CompletionTimeout:1;
-    ULONG CompleterAbort:1;
-    ULONG UnexpectedCompletion:1;
-    ULONG ReceiverOverflow:1;
-    ULONG MalformedTLP:1;
-    ULONG ECRCError:1;
-    ULONG UnsupportedRequestError:1;
-    ULONG Reserved3:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_MASK;
-
-typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY {
-  struct {
-    ULONG Undefined:1;
-    ULONG Reserved1:3;
-    ULONG DataLinkProtocolError:1;
-    ULONG SurpriseDownError:1;
-    ULONG Reserved2:6;
-    ULONG PoisonedTLP:1;
-    ULONG FlowControlProtocolError:1;
-    ULONG CompletionTimeout:1;
-    ULONG CompleterAbort:1;
-    ULONG UnexpectedCompletion:1;
-    ULONG ReceiverOverflow:1;
-    ULONG MalformedTLP:1;
-    ULONG ECRCError:1;
-    ULONG UnsupportedRequestError:1;
-    ULONG Reserved3:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY;
-
-typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS {
-  struct {
-    ULONG ReceiverError:1;
-    ULONG Reserved1:5;
-    ULONG BadTLP:1;
-    ULONG BadDLLP:1;
-    ULONG ReplayNumRollover:1;
-    ULONG Reserved2:3;
-    ULONG ReplayTimerTimeout:1;
-    ULONG AdvisoryNonFatalError:1;
-    ULONG Reserved3:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_CORRECTABLE_ERROR_STATUS, *PPCI_CORRECTABLE_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_MASK {
-  struct {
-    ULONG ReceiverError:1;
-    ULONG Reserved1:5;
-    ULONG BadTLP:1;
-    ULONG BadDLLP:1;
-    ULONG ReplayNumRollover:1;
-    ULONG Reserved2:3;
-    ULONG ReplayTimerTimeout:1;
-    ULONG AdvisoryNonFatalError:1;
-    ULONG Reserved3:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_CORRECTABLE_ERROR_MASK, *PPCI_CORRECTABLE_ERROR_MASK;
-
-typedef union _PCI_EXPRESS_AER_CAPABILITIES {
-  struct {
-    ULONG FirstErrorPointer:5;
-    ULONG ECRCGenerationCapable:1;
-    ULONG ECRCGenerationEnable:1;
-    ULONG ECRCCheckCapable:1;
-    ULONG ECRCCheckEnable:1;
-    ULONG Reserved:23;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_AER_CAPABILITIES, *PPCI_EXPRESS_AER_CAPABILITIES;
-
-typedef union _PCI_EXPRESS_ROOT_ERROR_COMMAND {
-  struct {
-    ULONG CorrectableErrorReportingEnable:1;
-    ULONG NonFatalErrorReportingEnable:1;
-    ULONG FatalErrorReportingEnable:1;
-    ULONG Reserved:29;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ROOT_ERROR_COMMAND, *PPCI_EXPRESS_ROOT_ERROR_COMMAND;
-
-typedef union _PCI_EXPRESS_ROOT_ERROR_STATUS {
-  struct {
-    ULONG CorrectableErrorReceived:1;
-    ULONG MultipleCorrectableErrorsReceived:1;
-    ULONG UncorrectableErrorReceived:1;
-    ULONG MultipleUncorrectableErrorsReceived:1;
-    ULONG FirstUncorrectableFatal:1;
-    ULONG NonFatalErrorMessagesReceived:1;
-    ULONG FatalErrorMessagesReceived:1;
-    ULONG Reserved:20;
-    ULONG AdvancedErrorInterruptMessageNumber:5;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ROOT_ERROR_STATUS, *PPCI_EXPRESS_ROOT_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_ERROR_SOURCE_ID {
-  struct {
-    USHORT CorrectableSourceIdFun:3;
-    USHORT CorrectableSourceIdDev:5;
-    USHORT CorrectableSourceIdBus:8;
-    USHORT UncorrectableSourceIdFun:3;
-    USHORT UncorrectableSourceIdDev:5;
-    USHORT UncorrectableSourceIdBus:8;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ERROR_SOURCE_ID, *PPCI_EXPRESS_ERROR_SOURCE_ID;
-
-typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS {
-  struct {
-    ULONG TargetAbortOnSplitCompletion:1;
-    ULONG MasterAbortOnSplitCompletion:1;
-    ULONG ReceivedTargetAbort:1;
-    ULONG ReceivedMasterAbort:1;
-    ULONG RsvdZ:1;
-    ULONG UnexpectedSplitCompletionError:1;
-    ULONG UncorrectableSplitCompletion:1;
-    ULONG UncorrectableDataError:1;
-    ULONG UncorrectableAttributeError:1;
-    ULONG UncorrectableAddressError:1;
-    ULONG DelayedTransactionDiscardTimerExpired:1;
-    ULONG PERRAsserted:1;
-    ULONG SERRAsserted:1;
-    ULONG InternalBridgeError:1;
-    ULONG Reserved:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK {
-  struct {
-    ULONG TargetAbortOnSplitCompletion:1;
-    ULONG MasterAbortOnSplitCompletion:1;
-    ULONG ReceivedTargetAbort:1;
-    ULONG ReceivedMasterAbort:1;
-    ULONG RsvdZ:1;
-    ULONG UnexpectedSplitCompletionError:1;
-    ULONG UncorrectableSplitCompletion:1;
-    ULONG UncorrectableDataError:1;
-    ULONG UncorrectableAttributeError:1;
-    ULONG UncorrectableAddressError:1;
-    ULONG DelayedTransactionDiscardTimerExpired:1;
-    ULONG PERRAsserted:1;
-    ULONG SERRAsserted:1;
-    ULONG InternalBridgeError:1;
-    ULONG Reserved:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK;
-
-typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY {
-  struct {
-    ULONG TargetAbortOnSplitCompletion:1;
-    ULONG MasterAbortOnSplitCompletion:1;
-    ULONG ReceivedTargetAbort:1;
-    ULONG ReceivedMasterAbort:1;
-    ULONG RsvdZ:1;
-    ULONG UnexpectedSplitCompletionError:1;
-    ULONG UncorrectableSplitCompletion:1;
-    ULONG UncorrectableDataError:1;
-    ULONG UncorrectableAttributeError:1;
-    ULONG UncorrectableAddressError:1;
-    ULONG DelayedTransactionDiscardTimerExpired:1;
-    ULONG PERRAsserted:1;
-    ULONG SERRAsserted:1;
-    ULONG InternalBridgeError:1;
-    ULONG Reserved:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY;
-
-typedef union _PCI_EXPRESS_SEC_AER_CAPABILITIES {
-  struct {
-    ULONG SecondaryUncorrectableFirstErrorPtr:5;
-    ULONG Reserved:27;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_AER_CAPABILITIES, *PPCI_EXPRESS_SEC_AER_CAPABILITIES;
-
-#define ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING  0x00000001
-#define ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING     0x00000002
-#define ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING        0x00000004
-
-#define ROOT_CMD_ERROR_REPORTING_ENABLE_MASK \
-    (ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING | \
-     ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING | \
-     ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING)
-
-typedef struct _PCI_EXPRESS_AER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity;
-  PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus;
-  PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask;
-  PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl;
-  ULONG HeaderLog[4];
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity;
-  PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl;
-  ULONG SecHeaderLog[4];
-} PCI_EXPRESS_AER_CAPABILITY, *PPCI_EXPRESS_AER_CAPABILITY;
-
-typedef struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity;
-  PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus;
-  PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask;
-  PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl;
-  ULONG HeaderLog[4];
-  PCI_EXPRESS_ROOT_ERROR_COMMAND RootErrorCommand;
-  PCI_EXPRESS_ROOT_ERROR_STATUS RootErrorStatus;
-  PCI_EXPRESS_ERROR_SOURCE_ID ErrorSourceId;
-} PCI_EXPRESS_ROOTPORT_AER_CAPABILITY, *PPCI_EXPRESS_ROOTPORT_AER_CAPABILITY;
-
-typedef struct _PCI_EXPRESS_BRIDGE_AER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity;
-  PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus;
-  PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask;
-  PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl;
-  ULONG HeaderLog[4];
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity;
-  PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl;
-  ULONG SecHeaderLog[4];
-} PCI_EXPRESS_BRIDGE_AER_CAPABILITY, *PPCI_EXPRESS_BRIDGE_AER_CAPABILITY;
-
-typedef union _PCI_EXPRESS_SRIOV_CAPS {
-  struct {
-    ULONG VFMigrationCapable:1;
-    ULONG Reserved1:20;
-    ULONG VFMigrationInterruptNumber:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SRIOV_CAPS, *PPCI_EXPRESS_SRIOV_CAPS;
-
-typedef union _PCI_EXPRESS_SRIOV_CONTROL {
-  struct {
-    USHORT VFEnable:1;
-    USHORT VFMigrationEnable:1;
-    USHORT VFMigrationInterruptEnable:1;
-    USHORT VFMemorySpaceEnable:1;
-    USHORT ARICapableHierarchy:1;
-    USHORT Reserved1:11;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SRIOV_CONTROL, *PPCI_EXPRESS_SRIOV_CONTROL;
-
-typedef union _PCI_EXPRESS_SRIOV_STATUS {
-  struct {
-    USHORT VFMigrationStatus:1;
-    USHORT Reserved1:15;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SRIOV_STATUS, *PPCI_EXPRESS_SRIOV_STATUS;
-
-typedef union _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY {
-  struct {
-    ULONG VFMigrationStateBIR:3;
-    ULONG VFMigrationStateOffset:29;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY, *PPCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY;
-
-typedef struct _PCI_EXPRESS_SRIOV_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_SRIOV_CAPS SRIOVCapabilities;
-  PCI_EXPRESS_SRIOV_CONTROL SRIOVControl;
-  PCI_EXPRESS_SRIOV_STATUS SRIOVStatus;
-  USHORT InitialVFs;
-  USHORT TotalVFs;
-  USHORT NumVFs;
-  UCHAR FunctionDependencyLink;
-  UCHAR RsvdP1;
-  USHORT FirstVFOffset;
-  USHORT VFStride;
-  USHORT RsvdP2;
-  USHORT VFDeviceId;
-  ULONG SupportedPageSizes;
-  ULONG SystemPageSize;
-  ULONG BaseAddresses[PCI_TYPE0_ADDRESSES];
-  PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY VFMigrationStateArrayOffset;
-} PCI_EXPRESS_SRIOV_CAPABILITY, *PPCI_EXPRESS_SRIOV_CAPABILITY;
+#ifdef _X86_
+/** Kernel definitions for x86 **/
 
 
-/* PCI device classes */
-#define PCI_CLASS_PRE_20                    0x00
-#define PCI_CLASS_MASS_STORAGE_CTLR         0x01
-#define PCI_CLASS_NETWORK_CTLR              0x02
-#define PCI_CLASS_DISPLAY_CTLR              0x03
-#define PCI_CLASS_MULTIMEDIA_DEV            0x04
-#define PCI_CLASS_MEMORY_CTLR               0x05
-#define PCI_CLASS_BRIDGE_DEV                0x06
-#define PCI_CLASS_SIMPLE_COMMS_CTLR         0x07
-#define PCI_CLASS_BASE_SYSTEM_DEV           0x08
-#define PCI_CLASS_INPUT_DEV                 0x09
-#define PCI_CLASS_DOCKING_STATION           0x0a
-#define PCI_CLASS_PROCESSOR                 0x0b
-#define PCI_CLASS_SERIAL_BUS_CTLR           0x0c
-#define PCI_CLASS_WIRELESS_CTLR             0x0d
-#define PCI_CLASS_INTELLIGENT_IO_CTLR       0x0e
-#define PCI_CLASS_SATELLITE_COMMS_CTLR      0x0f
-#define PCI_CLASS_ENCRYPTION_DECRYPTION     0x10
-#define PCI_CLASS_DATA_ACQ_SIGNAL_PROC      0x11
-#define PCI_CLASS_NOT_DEFINED               0xff
+/* Interrupt request levels */
+#define PASSIVE_LEVEL           0
+#define LOW_LEVEL               0
+#define APC_LEVEL               1
+#define DISPATCH_LEVEL          2
+#define CMCI_LEVEL              5
+#define PROFILE_LEVEL           27
+#define CLOCK1_LEVEL            28
+#define CLOCK2_LEVEL            28
+#define IPI_LEVEL               29
+#define POWER_LEVEL             30
+#define HIGH_LEVEL              31
+#define CLOCK_LEVEL             (CLOCK2_LEVEL)
 
 
-/* PCI device subclasses for class 0 */
-#define PCI_SUBCLASS_PRE_20_NON_VGA         0x00
-#define PCI_SUBCLASS_PRE_20_VGA             0x01
+#define KIP0PCRADDRESS          0xffdff000  
+#define KI_USER_SHARED_DATA     0xffdf0000
+#define SharedUserData          ((KUSER_SHARED_DATA * CONST) KI_USER_SHARED_DATA)
 
 
-/* PCI device subclasses for class 1 (mass storage controllers)*/
-#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR      0x00
-#define PCI_SUBCLASS_MSC_IDE_CTLR           0x01
-#define PCI_SUBCLASS_MSC_FLOPPY_CTLR        0x02
-#define PCI_SUBCLASS_MSC_IPI_CTLR           0x03
-#define PCI_SUBCLASS_MSC_RAID_CTLR          0x04
-#define PCI_SUBCLASS_MSC_OTHER              0x80
+#define PAGE_SIZE               0x1000
+#define PAGE_SHIFT              12L
+#define KeGetDcacheFillSize()   1L
 
 
-/* PCI device subclasses for class 2 (network controllers)*/
-#define PCI_SUBCLASS_NET_ETHERNET_CTLR      0x00
-#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR    0x01
-#define PCI_SUBCLASS_NET_FDDI_CTLR          0x02
-#define PCI_SUBCLASS_NET_ATM_CTLR           0x03
-#define PCI_SUBCLASS_NET_ISDN_CTLR          0x04
-#define PCI_SUBCLASS_NET_OTHER              0x80
+#define EFLAG_SIGN              0x8000
+#define EFLAG_ZERO              0x4000
+#define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
 
 
-/* PCI device subclasses for class 3 (display controllers)*/
-#define PCI_SUBCLASS_VID_VGA_CTLR           0x00
-#define PCI_SUBCLASS_VID_XGA_CTLR           0x01
-#define PCI_SUBCLASS_VID_3D_CTLR            0x02
-#define PCI_SUBCLASS_VID_OTHER              0x80
+#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
+#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
+#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
 
 
-/* PCI device subclasses for class 4 (multimedia device)*/
-#define PCI_SUBCLASS_MM_VIDEO_DEV           0x00
-#define PCI_SUBCLASS_MM_AUDIO_DEV           0x01
-#define PCI_SUBCLASS_MM_TELEPHONY_DEV       0x02
-#define PCI_SUBCLASS_MM_OTHER               0x80
 
 
-/* PCI device subclasses for class 5 (memory controller)*/
-#define PCI_SUBCLASS_MEM_RAM                0x00
-#define PCI_SUBCLASS_MEM_FLASH              0x01
-#define PCI_SUBCLASS_MEM_OTHER              0x80
+typedef struct _KFLOATING_SAVE {
+  ULONG  ControlWord;
+  ULONG  StatusWord;
+  ULONG  ErrorOffset;
+  ULONG  ErrorSelector;
+  ULONG  DataOffset;
+  ULONG  DataSelector;
+  ULONG  Cr0NpxState;
+  ULONG  Spare1;
+} KFLOATING_SAVE, *PKFLOATING_SAVE;
 
 
-/* PCI device subclasses for class 6 (bridge device)*/
-#define PCI_SUBCLASS_BR_HOST                0x00
-#define PCI_SUBCLASS_BR_ISA                 0x01
-#define PCI_SUBCLASS_BR_EISA                0x02
-#define PCI_SUBCLASS_BR_MCA                 0x03
-#define PCI_SUBCLASS_BR_PCI_TO_PCI          0x04
-#define PCI_SUBCLASS_BR_PCMCIA              0x05
-#define PCI_SUBCLASS_BR_NUBUS               0x06
-#define PCI_SUBCLASS_BR_CARDBUS             0x07
-#define PCI_SUBCLASS_BR_RACEWAY             0x08
-#define PCI_SUBCLASS_BR_OTHER               0x80
+extern NTKERNELAPI volatile KSYSTEM_TIME KeTickCount;
 
 
-#define PCI_SUBCLASS_COM_SERIAL             0x00
-#define PCI_SUBCLASS_COM_PARALLEL           0x01
-#define PCI_SUBCLASS_COM_MULTIPORT          0x02
-#define PCI_SUBCLASS_COM_MODEM              0x03
-#define PCI_SUBCLASS_COM_OTHER              0x80
-
-#define PCI_SUBCLASS_SYS_INTERRUPT_CTLR     0x00
-#define PCI_SUBCLASS_SYS_DMA_CTLR           0x01
-#define PCI_SUBCLASS_SYS_SYSTEM_TIMER       0x02
-#define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK    0x03
-#define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR   0x04
-#define PCI_SUBCLASS_SYS_SDIO_CTRL          0x05
-#define PCI_SUBCLASS_SYS_OTHER              0x80
-
-#define PCI_SUBCLASS_INP_KEYBOARD           0x00
-#define PCI_SUBCLASS_INP_DIGITIZER          0x01
-#define PCI_SUBCLASS_INP_MOUSE              0x02
-#define PCI_SUBCLASS_INP_SCANNER            0x03
-#define PCI_SUBCLASS_INP_GAMEPORT           0x04
-#define PCI_SUBCLASS_INP_OTHER              0x80
-
-#define PCI_SUBCLASS_DOC_GENERIC            0x00
-#define PCI_SUBCLASS_DOC_OTHER              0x80
-
-#define PCI_SUBCLASS_PROC_386               0x00
-#define PCI_SUBCLASS_PROC_486               0x01
-#define PCI_SUBCLASS_PROC_PENTIUM           0x02
-#define PCI_SUBCLASS_PROC_ALPHA             0x10
-#define PCI_SUBCLASS_PROC_POWERPC           0x20
-#define PCI_SUBCLASS_PROC_COPROCESSOR       0x40
+#define YieldProcessor _mm_pause
 
 
-/* PCI device subclasses for class C (serial bus controller)*/
-#define PCI_SUBCLASS_SB_IEEE1394            0x00
-#define PCI_SUBCLASS_SB_ACCESS              0x01
-#define PCI_SUBCLASS_SB_SSA                 0x02
-#define PCI_SUBCLASS_SB_USB                 0x03
-#define PCI_SUBCLASS_SB_FIBRE_CHANNEL       0x04
-#define PCI_SUBCLASS_SB_SMBUS               0x05
+FORCEINLINE
+VOID
+KeMemoryBarrier(
+  VOID)
+{
+  volatile LONG Barrier;
+#if defined(__GNUC__)
+  __asm__ __volatile__ ("xchg %%eax, %0" : : "m" (Barrier) : "%eax");
+#elif defined(_MSC_VER)
+  __asm xchg [Barrier], eax
+#endif
+}
 
 
-#define PCI_SUBCLASS_WIRELESS_IRDA          0x00
-#define PCI_SUBCLASS_WIRELESS_CON_IR        0x01
-#define PCI_SUBCLASS_WIRELESS_RF            0x10
-#define PCI_SUBCLASS_WIRELESS_OTHER         0x80
+NTHALAPI
+VOID
+FASTCALL
+KfLowerIrql(
+  IN KIRQL  NewIrql);
+#define KeLowerIrql(a) KfLowerIrql(a)
 
 
-#define PCI_SUBCLASS_INTIO_I2O              0x00
+NTHALAPI
+KIRQL
+FASTCALL
+KfRaiseIrql(
+  IN KIRQL  NewIrql);
+#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
 
 
-#define PCI_SUBCLASS_SAT_TV                 0x01
-#define PCI_SUBCLASS_SAT_AUDIO              0x02
-#define PCI_SUBCLASS_SAT_VOICE              0x03
-#define PCI_SUBCLASS_SAT_DATA               0x04
+NTHALAPI
+KIRQL
+DDKAPI
+KeRaiseIrqlToDpcLevel(
+  VOID);
 
 
-#define PCI_SUBCLASS_CRYPTO_NET_COMP        0x00
-#define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT   0x10
-#define PCI_SUBCLASS_CRYPTO_OTHER           0x80
+NTHALAPI
+KIRQL
+DDKAPI
+KeRaiseIrqlToSynchLevel(
+    VOID);
 
 
-#define PCI_SUBCLASS_DASP_DPIO              0x00
-#define PCI_SUBCLASS_DASP_OTHER             0x80
+NTHALAPI
+KIRQL
+FASTCALL
+KfAcquireSpinLock(
+  IN PKSPIN_LOCK SpinLock);
+#define KeAcquireSpinLock(a,b)  *(b) = KfAcquireSpinLock(a)
 
 
-#define PCI_ADDRESS_IO_SPACE                0x00000001
-#define PCI_ADDRESS_MEMORY_TYPE_MASK        0x00000006
-#define PCI_ADDRESS_MEMORY_PREFETCHABLE     0x00000008
-#define PCI_ADDRESS_IO_ADDRESS_MASK         0xfffffffc
-#define PCI_ADDRESS_MEMORY_ADDRESS_MASK     0xfffffff0
-#define PCI_ADDRESS_ROM_ADDRESS_MASK        0xfffff800
+NTHALAPI
+VOID
+FASTCALL
+KfReleaseSpinLock(
+  IN PKSPIN_LOCK SpinLock,
+  IN KIRQL NewIrql);
+#define KeReleaseSpinLock(a,b)  KfReleaseSpinLock(a,b)
 
 
-#define PCI_TYPE_32BIT                      0
-#define PCI_TYPE_20BIT                      2
-#define PCI_TYPE_64BIT                      4
+NTKERNELAPI
+VOID
+FASTCALL
+KefAcquireSpinLockAtDpcLevel(
+  IN PKSPIN_LOCK  SpinLock);
+#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
 
 
-#define PCI_ROMADDRESS_ENABLED              0x00000001
+NTKERNELAPI
+VOID
+FASTCALL
+KefReleaseSpinLockFromDpcLevel(
+  IN PKSPIN_LOCK  SpinLock);
+#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
 
 
-#endif /* _PCI_X_ */
+NTSYSAPI
+PKTHREAD
+NTAPI
+KeGetCurrentThread(
+  VOID);
 
 
-#define PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION       1
+NTKERNELAPI
+NTSTATUS
+NTAPI
+KeSaveFloatingPointState(
+  OUT PKFLOATING_SAVE  FloatSave);
 
 
-typedef NTSTATUS
-(NTAPI PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE)(
-  IN OUT PVOID Context);
-typedef PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE *PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE;
+NTKERNELAPI
+NTSTATUS
+NTAPI
+KeRestoreFloatingPointState(
+  IN PKFLOATING_SAVE  FloatSave);
 
 
-typedef NTSTATUS
-(NTAPI PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE)(
-  IN OUT PVOID Context);
-typedef PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE *PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE;
+/* VOID
+ * KeFlushIoBuffers(
+ *   IN PMDL Mdl,
+ *   IN BOOLEAN ReadOperation,
+ *   IN BOOLEAN DmaOperation)
+ */
+#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
 
 
-typedef struct _PCI_EXPRESS_LINK_QUIESCENT_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE PciExpressEnterLinkQuiescentMode;
-  PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE PciExpressExitLinkQuiescentMode;
-} PCI_EXPRESS_LINK_QUIESCENT_INTERFACE, *PPCI_EXPRESS_LINK_QUIESCENT_INTERFACE;
+/* x86 and x64 performs a 0x2C interrupt */
+#define DbgRaiseAssertionFailure __int2c
 
 
-#define PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION            1
+FORCEINLINE
+VOID
+_KeQueryTickCount(
+  OUT PLARGE_INTEGER CurrentCount)
+{
+    for (;;)
+    {
+        CurrentCount->HighPart = KeTickCount.High1Time;
+        CurrentCount->LowPart = KeTickCount.LowPart;
+        if (CurrentCount->HighPart == KeTickCount.High2Time) break;
+        YieldProcessor();
+    }
+}
+#define KeQueryTickCount(CurrentCount) _KeQueryTickCount(CurrentCount)
 
 
-typedef ULONG
-(NTAPI *PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE)(
-  IN PVOID Context,
-  OUT PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
+#endif /* _X86_ */
 
 
-typedef ULONG
-(NTAPI *PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE)(
-  IN PVOID Context,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
 
 
-typedef struct _PCI_EXPRESS_ROOT_PORT_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE ReadConfigSpace;
-  PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE WriteConfigSpace;
-} PCI_EXPRESS_ROOT_PORT_INTERFACE, *PPCI_EXPRESS_ROOT_PORT_INTERFACE;
 
 
-#define PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION            1
+/******************************************************************************
+ *                         Runtime Library Functions                          *
+ ******************************************************************************/
 
 
-typedef NTSTATUS
-(NTAPI PCI_MSIX_SET_ENTRY)(
-  IN PVOID Context,
-  IN ULONG TableEntry,
-  IN ULONG MessageNumber);
-typedef PCI_MSIX_SET_ENTRY *PPCI_MSIX_SET_ENTRY;
+FORCEINLINE
+VOID
+InitializeListHead(
+  OUT PLIST_ENTRY ListHead)
+{
+  ListHead->Flink = ListHead->Blink = ListHead;
+}
 
 
-typedef NTSTATUS
-(NTAPI PCI_MSIX_MASKUNMASK_ENTRY)(
-  IN PVOID Context,
-  IN ULONG TableEntry);
-typedef PCI_MSIX_MASKUNMASK_ENTRY *PPCI_MSIX_MASKUNMASK_ENTRY;
-
-typedef NTSTATUS
-(NTAPI PCI_MSIX_GET_ENTRY)(
-  IN PVOID Context,
-  IN ULONG TableEntry,
-  OUT PULONG MessageNumber,
-  OUT PBOOLEAN Masked);
-typedef PCI_MSIX_GET_ENTRY *PPCI_MSIX_GET_ENTRY;
-
-typedef NTSTATUS
-(NTAPI PCI_MSIX_GET_TABLE_SIZE)(
-  IN PVOID Context,
-  OUT PULONG TableSize);
-typedef PCI_MSIX_GET_TABLE_SIZE *PPCI_MSIX_GET_TABLE_SIZE;
+FORCEINLINE
+VOID
+InsertHeadList(
+  IN OUT PLIST_ENTRY  ListHead,
+  IN OUT PLIST_ENTRY  Entry)
+{
+  PLIST_ENTRY OldFlink;
+  OldFlink = ListHead->Flink;
+  Entry->Flink = OldFlink;
+  Entry->Blink = ListHead;
+  OldFlink->Blink = Entry;
+  ListHead->Flink = Entry;
+}
 
 
-typedef struct _PCI_MSIX_TABLE_CONFIG_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_MSIX_SET_ENTRY SetTableEntry;
-  PPCI_MSIX_MASKUNMASK_ENTRY MaskTableEntry;
-  PPCI_MSIX_MASKUNMASK_ENTRY UnmaskTableEntry;
-  PPCI_MSIX_GET_ENTRY GetTableEntry;
-  PPCI_MSIX_GET_TABLE_SIZE GetTableSize;
-} PCI_MSIX_TABLE_CONFIG_INTERFACE, *PPCI_MSIX_TABLE_CONFIG_INTERFACE;
-
-#define PCI_MSIX_TABLE_CONFIG_MINIMUM_SIZE \
-        RTL_SIZEOF_THROUGH_FIELD(PCI_MSIX_TABLE_CONFIG_INTERFACE, UnmaskTableEntry)
+FORCEINLINE
+VOID
+InsertTailList(
+  IN OUT PLIST_ENTRY  ListHead,
+  IN OUT PLIST_ENTRY  Entry)
+{
+  PLIST_ENTRY OldBlink;
+  OldBlink = ListHead->Blink;
+  Entry->Flink = ListHead;
+  Entry->Blink = OldBlink;
+  OldBlink->Flink = Entry;
+  ListHead->Blink = Entry;
+}
 
 
-/******************************************************************************
- *                            Object Manager Types                            *
- ******************************************************************************/
+BOOLEAN
+FORCEINLINE
+IsListEmpty(
+  IN CONST LIST_ENTRY * ListHead)
+{
+  return (BOOLEAN)(ListHead->Flink == ListHead);
+}
 
 
-#define MAXIMUM_FILENAME_LENGTH           256
-#define OBJ_NAME_PATH_SEPARATOR     ((WCHAR)L'\\')
+FORCEINLINE
+PSINGLE_LIST_ENTRY
+PopEntryList(
+  IN OUT PSINGLE_LIST_ENTRY ListHead)
+{
+  PSINGLE_LIST_ENTRY FirstEntry;
+  FirstEntry = ListHead->Next;
+  if (FirstEntry != NULL) {
+    ListHead->Next = FirstEntry->Next;
+  }
+  return FirstEntry;
+}
 
 
-#define OBJECT_TYPE_CREATE 0x0001
-#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
+FORCEINLINE
+VOID
+PushEntryList(
+  IN OUT PSINGLE_LIST_ENTRY ListHead,
+  IN OUT PSINGLE_LIST_ENTRY Entry)
+{
+  Entry->Next = ListHead->Next;
+  ListHead->Next = Entry;
+}
 
 
-#define DIRECTORY_QUERY 0x0001
-#define DIRECTORY_TRAVERSE 0x0002
-#define DIRECTORY_CREATE_OBJECT 0x0004
-#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
-#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
+FORCEINLINE
+BOOLEAN
+RemoveEntryList(
+  IN PLIST_ENTRY  Entry)
+{
+  PLIST_ENTRY OldFlink;
+  PLIST_ENTRY OldBlink;
 
 
-#define SYMBOLIC_LINK_QUERY               0x0001
-#define SYMBOLIC_LINK_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED | 0x1)
+  OldFlink = Entry->Flink;
+  OldBlink = Entry->Blink;
+  OldFlink->Blink = OldBlink;
+  OldBlink->Flink = OldFlink;
+  return (BOOLEAN)(OldFlink == OldBlink);
+}
 
 
-#define DUPLICATE_CLOSE_SOURCE            0x00000001
-#define DUPLICATE_SAME_ACCESS             0x00000002
-#define DUPLICATE_SAME_ATTRIBUTES         0x00000004
+FORCEINLINE
+PLIST_ENTRY
+RemoveHeadList(
+  IN OUT PLIST_ENTRY  ListHead)
+{
+  PLIST_ENTRY Flink;
+  PLIST_ENTRY Entry;
 
 
-#define OB_FLT_REGISTRATION_VERSION_0100         0x0100
-#define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100
+  Entry = ListHead->Flink;
+  Flink = Entry->Flink;
+  ListHead->Flink = Flink;
+  Flink->Blink = ListHead;
+  return Entry;
+}
 
 
-typedef ULONG OB_OPERATION;
+FORCEINLINE
+PLIST_ENTRY
+RemoveTailList(
+  IN OUT PLIST_ENTRY  ListHead)
+{
+  PLIST_ENTRY Blink;
+  PLIST_ENTRY Entry;
 
 
-#define OB_OPERATION_HANDLE_CREATE               0x00000001
-#define OB_OPERATION_HANDLE_DUPLICATE            0x00000002
+  Entry = ListHead->Blink;
+  Blink = Entry->Blink;
+  ListHead->Blink = Blink;
+  Blink->Flink = ListHead;
+  return Entry;
+}
 
 
-typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION {
-  IN OUT ACCESS_MASK DesiredAccess;
-  IN ACCESS_MASK OriginalDesiredAccess;
-} OB_PRE_CREATE_HANDLE_INFORMATION, *POB_PRE_CREATE_HANDLE_INFORMATION;
+NTSYSAPI
+VOID
+NTAPI
+RtlAssert(
+    IN PVOID FailedAssertion,
+    IN PVOID FileName,
+    IN ULONG LineNumber,
+    IN PSTR Message);
 
 
-typedef struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION {
-  IN OUT ACCESS_MASK DesiredAccess;
-  IN ACCESS_MASK OriginalDesiredAccess;
-  IN PVOID SourceProcess;
-  IN PVOID TargetProcess;
-} OB_PRE_DUPLICATE_HANDLE_INFORMATION, *POB_PRE_DUPLICATE_HANDLE_INFORMATION;
+/* VOID
+ * RtlCopyMemory(
+ *     IN VOID UNALIGNED *Destination,
+ *     IN CONST VOID UNALIGNED *Source,
+ *     IN SIZE_T Length)
+ */
+#define RtlCopyMemory(Destination, Source, Length) \
+    memcpy(Destination, Source, Length)
 
 
-typedef union _OB_PRE_OPERATION_PARAMETERS {
-  IN OUT OB_PRE_CREATE_HANDLE_INFORMATION CreateHandleInformation;
-  IN OUT OB_PRE_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation;
-} OB_PRE_OPERATION_PARAMETERS, *POB_PRE_OPERATION_PARAMETERS;
+#define RtlCopyBytes RtlCopyMemory
 
 
-typedef struct _OB_PRE_OPERATION_INFORMATION {
-  IN OB_OPERATION Operation;
-  union {
-    IN ULONG Flags;
-    struct {
-      IN ULONG KernelHandle:1;
-      IN ULONG Reserved:31;
-    };
-  };
-  IN PVOID Object;
-  IN POBJECT_TYPE ObjectType;
-  OUT PVOID CallContext;
-  IN POB_PRE_OPERATION_PARAMETERS Parameters;
-} OB_PRE_OPERATION_INFORMATION, *POB_PRE_OPERATION_INFORMATION;
-
-typedef struct _OB_POST_CREATE_HANDLE_INFORMATION {
-  IN ACCESS_MASK GrantedAccess;
-} OB_POST_CREATE_HANDLE_INFORMATION, *POB_POST_CREATE_HANDLE_INFORMATION;
-
-typedef struct _OB_POST_DUPLICATE_HANDLE_INFORMATION {
-  IN ACCESS_MASK GrantedAccess;
-} OB_POST_DUPLICATE_HANDLE_INFORMATION, *POB_POST_DUPLICATE_HANDLE_INFORMATION;
-
-typedef union _OB_POST_OPERATION_PARAMETERS {
-  IN OB_POST_CREATE_HANDLE_INFORMATION CreateHandleInformation;
-  IN OB_POST_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation;
-} OB_POST_OPERATION_PARAMETERS, *POB_POST_OPERATION_PARAMETERS;
-
-typedef struct _OB_POST_OPERATION_INFORMATION {
-  IN OB_OPERATION Operation;
-    union {
-      IN ULONG Flags;
-      struct {
-        IN ULONG KernelHandle:1;
-        IN ULONG Reserved:31;
-      };
-    };
-  IN PVOID Object;
-  IN POBJECT_TYPE ObjectType;
-  IN PVOID CallContext;
-  IN NTSTATUS ReturnStatus;
-  IN POB_POST_OPERATION_PARAMETERS Parameters;
-} OB_POST_OPERATION_INFORMATION,*POB_POST_OPERATION_INFORMATION;
-
-typedef enum _OB_PREOP_CALLBACK_STATUS {
-  OB_PREOP_SUCCESS
-} OB_PREOP_CALLBACK_STATUS, *POB_PREOP_CALLBACK_STATUS;
-
-typedef OB_PREOP_CALLBACK_STATUS
-(NTAPI *POB_PRE_OPERATION_CALLBACK)(
-  IN PVOID RegistrationContext,
-  IN OUT POB_PRE_OPERATION_INFORMATION OperationInformation);
+#if defined(_M_AMD64)
+NTSYSAPI
+VOID
+NTAPI
+RtlCopyMemoryNonTemporal(
+    VOID UNALIGNED *Destination,
+    CONST VOID UNALIGNED *Source,
+    SIZE_T Length);
+#else
+#define RtlCopyMemoryNonTemporal RtlCopyMemory
+#endif
 
 
-typedef VOID
-(NTAPI *POB_POST_OPERATION_CALLBACK)(
-  IN PVOID RegistrationContext,
-  IN POB_POST_OPERATION_INFORMATION OperationInformation);
-
-typedef struct _OB_OPERATION_REGISTRATION {
-  IN POBJECT_TYPE *ObjectType;
-  IN OB_OPERATION Operations;
-  IN POB_PRE_OPERATION_CALLBACK PreOperation;
-  IN POB_POST_OPERATION_CALLBACK PostOperation;
-} OB_OPERATION_REGISTRATION, *POB_OPERATION_REGISTRATION;
-
-typedef struct _OB_CALLBACK_REGISTRATION {
-  IN USHORT Version;
-  IN USHORT OperationRegistrationCount;
-  IN UNICODE_STRING Altitude;
-  IN PVOID RegistrationContext;
-  IN OB_OPERATION_REGISTRATION *OperationRegistration;
-} OB_CALLBACK_REGISTRATION, *POB_CALLBACK_REGISTRATION;
+/* BOOLEAN
+ * RtlEqualLuid(
+ *     IN PLUID Luid1,
+ *     IN PLUID Luid2)
+ */
+#define RtlEqualLuid(Luid1, Luid2) \
+    (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
 
 
-typedef struct _OBJECT_NAME_INFORMATION {
-  UNICODE_STRING Name;
-} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
+/* ULONG
+ * RtlEqualMemory(
+ *     IN VOID UNALIGNED *Destination,
+ *     IN CONST VOID UNALIGNED *Source,
+ *     IN SIZE_T Length)
+ */
+#define RtlEqualMemory(Destination, Source, Length) \
+    (!memcmp(Destination, Source, Length))
 
 
-/* Exported object types */
-extern POBJECT_TYPE NTSYSAPI CmKeyObjectType;
-extern POBJECT_TYPE NTSYSAPI ExEventObjectType;
-extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType;
-extern POBJECT_TYPE NTSYSAPI IoFileObjectType;
-extern POBJECT_TYPE NTSYSAPI PsThreadType;
-extern POBJECT_TYPE NTSYSAPI SeTokenObjectType;
-extern POBJECT_TYPE NTSYSAPI PsProcessType;
+/* VOID
+ * RtlFillMemory(
+ *     IN VOID UNALIGNED *Destination,
+ *     IN SIZE_T Length,
+ *     IN UCHAR Fill)
+ */
+#define RtlFillMemory(Destination, Length, Fill) \
+    memset(Destination, Fill, Length)
 
 
+#define RtlFillBytes RtlFillMemory
 
 
-/******************************************************************************
- *                           Process Manager Types                            *
- ******************************************************************************/
+NTSYSAPI
+VOID
+NTAPI
+RtlFreeUnicodeString(
+    IN OUT PUNICODE_STRING UnicodeString);
 
 
-#define QUOTA_LIMITS_HARDWS_MIN_ENABLE  0x00000001
-#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
-#define QUOTA_LIMITS_HARDWS_MAX_ENABLE  0x00000004
-#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008
-#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlGUIDFromString(
+    IN PUNICODE_STRING GuidString,
+    OUT GUID *Guid);
 
 
-/* Thread Access Rights */
-#define THREAD_TERMINATE                 0x0001
-#define THREAD_SUSPEND_RESUME            0x0002
-#define THREAD_ALERT                     0x0004
-#define THREAD_GET_CONTEXT               0x0008
-#define THREAD_SET_CONTEXT               0x0010
-#define THREAD_SET_INFORMATION           0x0020
-#define THREAD_SET_LIMITED_INFORMATION   0x0400
-#define THREAD_QUERY_LIMITED_INFORMATION 0x0800
+NTSYSAPI
+VOID
+NTAPI
+RtlInitUnicodeString(
+    IN OUT PUNICODE_STRING DestinationString,
+    IN PCWSTR SourceString OPTIONAL);
 
 
-#define PROCESS_DUP_HANDLE                 (0x0040)
+/* VOID
+ * RtlMoveMemory(
+ *    IN VOID UNALIGNED *Destination,
+ *    IN CONST VOID UNALIGNED *Source,
+ *    IN SIZE_T Length)
+ */
+#define RtlMoveMemory(Destination, Source, Length) \
+    memmove(Destination, Source, Length)
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#define PROCESS_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
-#else
-#define PROCESS_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF)
-#endif
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlStringFromGUID(
+    IN REFGUID Guid,
+    OUT PUNICODE_STRING GuidString);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#define THREAD_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
-#else
-#define THREAD_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF)
-#endif
+/* VOID
+ * RtlZeroMemory(
+ *     IN VOID UNALIGNED *Destination,
+ *     IN SIZE_T Length)
+ */
+#define RtlZeroMemory(Destination, Length) \
+    memset(Destination, 0, Length)
 
 
-#define LOW_PRIORITY                      0
-#define LOW_REALTIME_PRIORITY             16
-#define HIGH_PRIORITY                     31
-#define MAXIMUM_PRIORITY                  32
+#define RtlZeroBytes RtlZeroMemory
 
 
 
 
-/******************************************************************************
- *                          WMI Library Support Types                         *
- ******************************************************************************/
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlAreBitsClear(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG StartingIndex,
+    IN ULONG Length);
 
 
-#ifdef RUN_WPP
-#include <evntrace.h>
-#include <stdarg.h>
-#endif
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlAreBitsSet(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG StartingIndex,
+    IN ULONG Length);
 
 
-#ifndef _TRACEHANDLE_DEFINED
-#define _TRACEHANDLE_DEFINED
-typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
-#endif
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlAnsiStringToUnicodeString(
+    IN OUT PUNICODE_STRING DestinationString,
+    IN PANSI_STRING SourceString,
+    IN BOOLEAN AllocateDestinationString);
 
 
-#ifndef TRACE_INFORMATION_CLASS_DEFINE
+NTSYSAPI
+ULONG
+NTAPI
+RtlxAnsiStringToUnicodeSize(
+    IN PCANSI_STRING AnsiString);
 
 
-typedef struct _ETW_TRACE_SESSION_SETTINGS {
-  ULONG Version;
-  ULONG BufferSize;
-  ULONG MinimumBuffers;
-  ULONG MaximumBuffers;
-  ULONG LoggerMode;
-  ULONG FlushTimer;
-  ULONG FlushThreshold;
-  ULONG ClockType;
-} ETW_TRACE_SESSION_SETTINGS, *PETW_TRACE_SESSION_SETTINGS;
-
-typedef enum _TRACE_INFORMATION_CLASS {
-  TraceIdClass,
-  TraceHandleClass,
-  TraceEnableFlagsClass,
-  TraceEnableLevelClass,
-  GlobalLoggerHandleClass,
-  EventLoggerHandleClass,
-  AllLoggerHandlesClass,
-  TraceHandleByNameClass,
-  LoggerEventsLostClass,
-  TraceSessionSettingsClass,
-  LoggerEventsLoggedClass,
-  MaxTraceInformationClass
-} TRACE_INFORMATION_CLASS;
+#define RtlAnsiStringToUnicodeSize(String) (               \
+  NLS_MB_CODE_PAGE_TAG ?                                   \
+  RtlxAnsiStringToUnicodeSize(String) :                    \
+  ((String)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR)   \
+)
 
 
-#endif /* TRACE_INFORMATION_CLASS_DEFINE */
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlAppendUnicodeStringToString(
+    IN OUT PUNICODE_STRING Destination,
+    IN PCUNICODE_STRING Source);
 
 
-#ifndef _ETW_KM_
-#define _ETW_KM_
-#endif
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlAppendUnicodeToString(
+    IN OUT PUNICODE_STRING Destination,
+    IN PCWSTR Source);
 
 
-#include <evntprov.h>
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlCheckRegistryKey(
+    IN ULONG RelativeTo,
+    IN PWSTR Path);
 
 
-typedef VOID
-(NTAPI *PETWENABLECALLBACK)(
-  IN LPCGUID SourceId,
-  IN ULONG ControlCode,
-  IN UCHAR Level,
-  IN ULONGLONG MatchAnyKeyword,
-  IN ULONGLONG MatchAllKeyword,
-  IN PEVENT_FILTER_DESCRIPTOR FilterData OPTIONAL,
-  IN OUT PVOID CallbackContext OPTIONAL);
+NTSYSAPI
+VOID
+NTAPI
+RtlClearAllBits(
+    IN PRTL_BITMAP BitMapHeader);
 
 
-#define EVENT_WRITE_FLAG_NO_FAULTING             0x00000001
+NTSYSAPI
+VOID
+NTAPI
+RtlClearBits(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG StartingIndex,
+    IN ULONG NumberToClear);
 
 
+NTSYSAPI
+SIZE_T
+NTAPI
+RtlCompareMemory(
+    IN CONST VOID *Source1,
+    IN CONST VOID *Source2,
+    IN SIZE_T Length);
 
 
-#if defined(_M_IX86)
-/** Kernel definitions for x86 **/
+NTSYSAPI
+LONG
+NTAPI
+RtlCompareUnicodeString(
+    IN PCUNICODE_STRING String1,
+    IN PCUNICODE_STRING String2,
+    IN BOOLEAN CaseInSensitive);
 
 
-/* Interrupt request levels */
-#define PASSIVE_LEVEL           0
-#define LOW_LEVEL               0
-#define APC_LEVEL               1
-#define DISPATCH_LEVEL          2
-#define CMCI_LEVEL              5
-#define PROFILE_LEVEL           27
-#define CLOCK1_LEVEL            28
-#define CLOCK2_LEVEL            28
-#define IPI_LEVEL               29
-#define POWER_LEVEL             30
-#define HIGH_LEVEL              31
-#define CLOCK_LEVEL             CLOCK2_LEVEL
+NTSYSAPI
+LONG
+NTAPI
+RtlCompareUnicodeStrings(
+    IN PCWCH String1,
+    IN SIZE_T String1Length,
+    IN PCWCH String2,
+    IN SIZE_T String2Length,
+    IN BOOLEAN CaseInSensitive);
 
 
-#define KIP0PCRADDRESS          0xffdff000
-#define KI_USER_SHARED_DATA     0xffdf0000
-#define SharedUserData          ((KUSER_SHARED_DATA * CONST)KI_USER_SHARED_DATA)
+NTSYSAPI
+VOID
+NTAPI
+RtlCopyUnicodeString(
+  IN OUT PUNICODE_STRING  DestinationString,
+  IN PCUNICODE_STRING  SourceString);
 
 
-#define PAGE_SIZE               0x1000
-#define PAGE_SHIFT              12L
-#define KeGetDcacheFillSize()   1L
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlCreateRegistryKey(
+    IN ULONG RelativeTo,
+    IN PWSTR Path);
 
 
-#define EFLAG_SIGN              0x8000
-#define EFLAG_ZERO              0x4000
-#define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlCreateSecurityDescriptor(
+    IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
+    IN ULONG Revision);
 
 
-#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlDeleteRegistryValue(
+    IN ULONG RelativeTo,
+    IN PCWSTR Path,
+    IN PCWSTR ValueName);
 
 
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlEqualUnicodeString(
+    IN CONST UNICODE_STRING *String1,
+    IN CONST UNICODE_STRING *String2,
+    IN BOOLEAN CaseInSensitive);
 
 
-typedef struct _KFLOATING_SAVE {
-  ULONG ControlWord;
-  ULONG StatusWord;
-  ULONG ErrorOffset;
-  ULONG ErrorSelector;
-  ULONG DataOffset;
-  ULONG DataSelector;
-  ULONG Cr0NpxState;
-  ULONG Spare1;
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
+#if !defined(_AMD64_) && !defined(_IA64_)
+NTSYSAPI
+LARGE_INTEGER
+NTAPI
+RtlExtendedIntegerMultiply(
+    IN LARGE_INTEGER Multiplicand,
+    IN LONG Multiplier);
 
 
-extern NTKERNELAPI volatile KSYSTEM_TIME KeTickCount;
+NTSYSAPI
+LARGE_INTEGER
+NTAPI
+RtlExtendedLargeIntegerDivide(
+  IN LARGE_INTEGER Dividend,
+  IN ULONG Divisor,
+  IN OUT PULONG Remainder);
+#endif
 
 
-#define YieldProcessor _mm_pause
+#if defined(_X86_) || defined(_IA64_)
+NTSYSAPI
+LARGE_INTEGER
+NTAPI
+RtlExtendedMagicDivide(
+    IN LARGE_INTEGER Dividend,
+    IN LARGE_INTEGER MagicDivisor,
+    IN CCHAR  ShiftCount);
+#endif
 
 
-FORCEINLINE
+NTSYSAPI
 VOID
 VOID
-KeMemoryBarrier(VOID)
-{
-  volatile LONG Barrier;
-#if defined(__GNUC__)
-  __asm__ __volatile__ ("xchg %%eax, %0" : : "m" (Barrier) : "%eax");
-#elif defined(_MSC_VER)
-  __asm xchg [Barrier], eax
-#endif
-}
+NTAPI
+RtlFreeAnsiString(
+    IN PANSI_STRING AnsiString);
 
 
-NTHALAPI
-KIRQL
+NTSYSAPI
+ULONG
 NTAPI
 NTAPI
-KeGetCurrentIrql(VOID);
+RtlFindClearBits(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG NumberToFind,
+    IN ULONG HintIndex);
 
 
-NTHALAPI
-VOID
-FASTCALL
-KfLowerIrql(
-  IN KIRQL NewIrql);
-#define KeLowerIrql(a) KfLowerIrql(a)
+NTSYSAPI
+ULONG
+NTAPI
+RtlFindClearBitsAndSet(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG NumberToFind,
+    IN ULONG HintIndex);
 
 
-NTHALAPI
-KIRQL
-FASTCALL
-KfRaiseIrql(
-  IN KIRQL NewIrql);
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
+NTSYSAPI
+ULONG
+NTAPI
+RtlFindFirstRunClear(
+    IN PRTL_BITMAP BitMapHeader,
+    OUT PULONG StartingIndex);
 
 
-NTHALAPI
-KIRQL
+NTSYSAPI
+ULONG
 NTAPI
 NTAPI
-KeRaiseIrqlToDpcLevel(VOID);
+RtlFindClearRuns(
+    IN PRTL_BITMAP BitMapHeader,
+    OUT PRTL_BITMAP_RUN RunArray,
+    IN ULONG SizeOfRunArray,
+    IN BOOLEAN LocateLongestRuns);
 
 
-NTHALAPI
-KIRQL
+NTSYSAPI
+ULONG
 NTAPI
 NTAPI
-KeRaiseIrqlToSynchLevel(VOID);
+RtlFindLastBackwardRunClear(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG FromIndex,
+    OUT PULONG StartingRunIndex);
 
 
-NTHALAPI
-KIRQL
-FASTCALL
-KfAcquireSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock);
-#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
+NTSYSAPI
+CCHAR
+NTAPI
+RtlFindLeastSignificantBit(
+    IN ULONGLONG Set);
 
 
-NTHALAPI
-VOID
-FASTCALL
-KfReleaseSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock,
-  IN KIRQL NewIrql);
-#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b)
+NTSYSAPI
+ULONG
+NTAPI
+RtlFindLongestRunClear(
+    IN PRTL_BITMAP BitMapHeader,
+    OUT PULONG StartingIndex);
 
 
-NTKERNELAPI
-VOID
-FASTCALL
-KefAcquireSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
+NTSYSAPI
+CCHAR
+NTAPI
+RtlFindMostSignificantBit(
+    IN ULONGLONG Set);
 
 
-NTKERNELAPI
-VOID
-FASTCALL
-KefReleaseSpinLockFromDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
+NTSYSAPI
+ULONG
+NTAPI
+RtlFindNextForwardRunClear(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG FromIndex,
+    OUT PULONG StartingRunIndex);
 
 NTSYSAPI
 
 NTSYSAPI
-PKTHREAD
+ULONG
 NTAPI
 NTAPI
-KeGetCurrentThread(VOID);
+RtlFindSetBits(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG NumberToFind,
+    IN ULONG HintIndex);
 
 
-NTKERNELAPI
-NTSTATUS
+NTSYSAPI
+ULONG
 NTAPI
 NTAPI
-KeSaveFloatingPointState(
-  OUT PKFLOATING_SAVE FloatSave);
+RtlFindSetBitsAndClear(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG NumberToFind,
+    IN ULONG HintIndex);
 
 
-NTKERNELAPI
+NTSYSAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-KeRestoreFloatingPointState(
-  IN PKFLOATING_SAVE FloatSave);
+RtlHashUnicodeString(
+    IN CONST UNICODE_STRING *String,
+    IN BOOLEAN CaseInSensitive,
+    IN ULONG HashAlgorithm,
+    OUT PULONG HashValue);
 
 
-/* VOID
- * KeFlushIoBuffers(
- *   IN PMDL Mdl,
- *   IN BOOLEAN ReadOperation,
- *   IN BOOLEAN DmaOperation)
- */
-#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
+NTSYSAPI
+VOID
+NTAPI
+RtlInitAnsiString(
+    IN OUT PANSI_STRING DestinationString,
+    IN PCSZ SourceString);
 
 
-/* x86 and x64 performs a 0x2C interrupt */
-#define DbgRaiseAssertionFailure __int2c
+NTSYSAPI
+VOID
+NTAPI
+RtlInitializeBitMap(
+    IN PRTL_BITMAP BitMapHeader,
+    IN PULONG BitMapBuffer,
+    IN ULONG SizeOfBitMap);
 
 
-FORCEINLINE
+NTSYSAPI
 VOID
 VOID
-_KeQueryTickCount(
-  OUT PLARGE_INTEGER CurrentCount)
-{
-  for (;;) {
-    CurrentCount->HighPart = KeTickCount.High1Time;
-    CurrentCount->LowPart = KeTickCount.LowPart;
-    if (CurrentCount->HighPart == KeTickCount.High2Time) break;
-    YieldProcessor();
-  }
-}
-#define KeQueryTickCount(CurrentCount) _KeQueryTickCount(CurrentCount)
+NTAPI
+RtlInitString(
+    IN OUT PSTRING DestinationString,
+    IN PCSZ SourceString);
 
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlIntegerToUnicodeString(
+    IN ULONG Value,
+    IN ULONG Base OPTIONAL,
+    IN OUT PUNICODE_STRING String);
 
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlInt64ToUnicodeString(
+    IN ULONGLONG Value,
+    IN ULONG Base OPTIONAL,
+    IN OUT PUNICODE_STRING String);
 
 
+#ifdef _WIN64
+#define RtlIntPtrToUnicodeString(Value, Base, String) \
+    RtlInt64ToUnicodeString(Value, Base, String)
+#else
+#define RtlIntPtrToUnicodeString(Value, Base, String) \
+    RtlIntegerToUnicodeString(Value, Base, String)
+#endif
 
 
+/* BOOLEAN
+ * RtlIsZeroLuid(
+ *     IN PLUID L1);
+ */
+#define RtlIsZeroLuid(_L1) \
+    ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))
 
 
-#elif defined(_M_AMD64)
-/** Kernel definitions for AMD64 **/
-
-/* Interrupt request levels */
-#define PASSIVE_LEVEL           0
-#define LOW_LEVEL               0
-#define APC_LEVEL               1
-#define DISPATCH_LEVEL          2
-#define CMCI_LEVEL              5
-#define CLOCK_LEVEL             13
-#define IPI_LEVEL               14
-#define DRS_LEVEL               14
-#define POWER_LEVEL             14
-#define PROFILE_LEVEL           15
-#define HIGH_LEVEL              15
-
-#define KI_USER_SHARED_DATA     0xFFFFF78000000000ULL
-#define SharedUserData          ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
-#define SharedInterruptTime     (KI_USER_SHARED_DATA + 0x8)
-#define SharedSystemTime        (KI_USER_SHARED_DATA + 0x14)
-#define SharedTickCount         (KI_USER_SHARED_DATA + 0x320)
-
-#define PAGE_SIZE               0x1000
-#define PAGE_SHIFT              12L
-
-#define EFLAG_SIGN              0x8000
-#define EFLAG_ZERO              0x4000
-#define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
-
-#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-
-
-typedef struct _KFLOATING_SAVE {
-  ULONG Dummy;
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
-
-typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
+NTSYSAPI
+ULONG
+NTAPI
+RtlLengthSecurityDescriptor(
+    IN PSECURITY_DESCRIPTOR SecurityDescriptor);
 
 
-#define KeQueryInterruptTime() \
-    (*(volatile ULONG64*)SharedInterruptTime)
+NTSYSAPI
+ULONG
+NTAPI
+RtlNumberOfClearBits(
+    IN PRTL_BITMAP BitMapHeader);
 
 
-#define KeQuerySystemTime(CurrentCount) \
-    *(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedSystemTime
+NTSYSAPI
+ULONG
+NTAPI
+RtlNumberOfSetBits(
+    IN PRTL_BITMAP BitMapHeader);
 
 
-#define KeQueryTickCount(CurrentCount) \
-    *(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedTickCount
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlQueryRegistryValues(
+    IN ULONG RelativeTo,
+    IN PCWSTR Path,
+    IN PRTL_QUERY_REGISTRY_TABLE QueryTable,
+    IN PVOID Context,
+    IN PVOID Environment OPTIONAL);
 
 
-#define KeGetDcacheFillSize() 1L
+#define LONG_SIZE (sizeof(LONG))
+#define LONG_MASK (LONG_SIZE - 1)
 
 
-#define YieldProcessor _mm_pause
+/* VOID
+ * RtlRetrieveUlong(
+ *       PULONG DestinationAddress,
+ *       PULONG SourceAddress);
+ */
+#if defined(_AMD64_)
+#define RtlRetrieveUlong(DestAddress,SrcAddress) \
+    *(ULONG UNALIGNED *)(DestAddress) = *(PULONG)(SrcAddress)
+#else
+#define RtlRetrieveUlong(DestAddress,SrcAddress) \
+    if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
+    { \
+        ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
+        ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
+        ((PUCHAR)(DestAddress))[2]=((PUCHAR)(SrcAddress))[2]; \
+        ((PUCHAR)(DestAddress))[3]=((PUCHAR)(SrcAddress))[3]; \
+    } \
+    else \
+    { \
+        *((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
+    }
+#endif
 
 
-FORCEINLINE
-KIRQL
-KeGetCurrentIrql(VOID)
-{
-  return (KIRQL)__readcr8();
-}
+/* VOID
+ * RtlRetrieveUshort(
+ *       PUSHORT DestinationAddress,
+ *       PUSHORT SourceAddress);
+ */
+#if defined(_AMD64_)
+#define RtlRetrieveUshort(DestAddress,SrcAddress) \
+    *(USHORT UNALIGNED *)(DestAddress) = *(USHORT)(SrcAddress)
+#else
+#define RtlRetrieveUshort(DestAddress,SrcAddress) \
+    if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
+    { \
+        ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
+        ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
+    } \
+    else \
+    { \
+        *((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
+    }
+#endif
 
 
-FORCEINLINE
+NTSYSAPI
 VOID
 VOID
-KeLowerIrql(IN KIRQL NewIrql)
-{
-  //ASSERT(KeGetCurrentIrql() >= NewIrql);
-  __writecr8(NewIrql);
-}
-
-FORCEINLINE
-KIRQL
-KfRaiseIrql(IN KIRQL NewIrql)
-{
-  KIRQL OldIrql;
-
-  OldIrql = __readcr8();
-  //ASSERT(OldIrql <= NewIrql);
-  __writecr8(NewIrql);
-  return OldIrql;
-}
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
+NTAPI
+RtlSetAllBits(
+    IN PRTL_BITMAP BitMapHeader);
 
 
-FORCEINLINE
-KIRQL
-KeRaiseIrqlToDpcLevel(VOID)
-{
-  return KfRaiseIrql(DISPATCH_LEVEL);
-}
+NTSYSAPI
+VOID
+NTAPI
+RtlSetBits(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG StartingIndex,
+    IN ULONG NumberToSet);
 
 
-FORCEINLINE
-KIRQL
-KeRaiseIrqlToSynchLevel(VOID)
-{
-  return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
-}
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlSetDaclSecurityDescriptor(
+    IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
+    IN BOOLEAN DaclPresent,
+    IN PACL Dacl OPTIONAL,
+    IN BOOLEAN DaclDefaulted OPTIONAL);
 
 
-FORCEINLINE
-PKTHREAD
-KeGetCurrentThread(VOID)
-{
-  return (struct _KTHREAD *)__readgsqword(0x188);
-}
+/* VOID
+ * RtlStoreUlong(
+ *     IN PULONG Address,
+ *     IN ULONG Value);
+ */
+#if defined(_AMD64_)
+#define RtlStoreUlong(Address,Value) \
+    *(ULONG UNALIGNED *)(Address) = (Value)
+#else
+#define RtlStoreUlong(Address,Value)                      \
+    if ((ULONG_PTR)(Address) & LONG_MASK) { \
+        ((PUCHAR) (Address))[LONG_LEAST_SIGNIFICANT_BIT]    = (UCHAR)(FIRSTBYTE(Value)); \
+        ((PUCHAR) (Address))[LONG_3RD_MOST_SIGNIFICANT_BIT] = (UCHAR)(SECONDBYTE(Value)); \
+        ((PUCHAR) (Address))[LONG_2ND_MOST_SIGNIFICANT_BIT] = (UCHAR)(THIRDBYTE(Value)); \
+        ((PUCHAR) (Address))[LONG_MOST_SIGNIFICANT_BIT]     = (UCHAR)(FOURTHBYTE(Value)); \
+    } \
+    else { \
+        *((PULONG)(Address)) = (ULONG) (Value); \
+    }
+#endif
 
 /* VOID
 
 /* VOID
- * KeFlushIoBuffers(
- *   IN PMDL Mdl,
- *   IN BOOLEAN ReadOperation,
- *   IN BOOLEAN DmaOperation)
+ * RtlStoreUlonglong(
+ *     IN OUT PULONGLONG Address,
+ *     ULONGLONG Value);
  */
  */
-#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
+#if defined(_AMD64_)
+#define RtlStoreUlonglong(Address,Value) \
+    *(ULONGLONG UNALIGNED *)(Address) = (Value)
+#else
+#define RtlStoreUlonglong(Address,Value) \
+    if ((ULONG_PTR)(Address) & LONGLONG_MASK) { \
+        RtlStoreUlong((ULONG_PTR)(Address), \
+                      (ULONGLONG)(Value) & 0xFFFFFFFF); \
+        RtlStoreUlong((ULONG_PTR)(Address)+sizeof(ULONG), \
+                      (ULONGLONG)(Value) >> 32); \
+    } else { \
+        *((PULONGLONG)(Address)) = (ULONGLONG)(Value); \
+    }
+#endif
 
 
-/* x86 and x64 performs a 0x2C interrupt */
-#define DbgRaiseAssertionFailure __int2c
+/* VOID
+ * RtlStoreUlongPtr(
+ *     IN OUT PULONG_PTR Address,
+ *     IN ULONG_PTR Value);
+ */
+#ifdef _WIN64
+#define RtlStoreUlongPtr(Address,Value)                         \
+    RtlStoreUlonglong(Address,Value)
+#else
+#define RtlStoreUlongPtr(Address,Value)                         \
+    RtlStoreUlong(Address,Value)
+#endif
 
 
-#elif defined(_M_IA64)
-/** Kernel definitions for IA64 **/
+/* VOID
+ * RtlStoreUshort(
+ *     IN PUSHORT Address,
+ *     IN USHORT Value);
+ */
+#if defined(_AMD64_)
+#define RtlStoreUshort(Address,Value) \
+    *(USHORT UNALIGNED *)(Address) = (Value)
+#else
+#define RtlStoreUshort(Address,Value) \
+    if ((ULONG_PTR)(Address) & SHORT_MASK) { \
+        ((PUCHAR) (Address))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
+        ((PUCHAR) (Address))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(Value)); \
+    } \
+    else { \
+        *((PUSHORT) (Address)) = (USHORT)Value; \
+    }
+#endif
 
 
-/* Interrupt request levels */
-#define PASSIVE_LEVEL           0
-#define LOW_LEVEL               0
-#define APC_LEVEL               1
-#define DISPATCH_LEVEL          2
-#define CMC_LEVEL               3
-#define DEVICE_LEVEL_BASE       4
-#define PC_LEVEL                12
-#define IPI_LEVEL               14
-#define DRS_LEVEL               14
-#define CLOCK_LEVEL             13
-#define POWER_LEVEL             15
-#define PROFILE_LEVEL           15
-#define HIGH_LEVEL              15
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlTimeFieldsToTime(
+    IN PTIME_FIELDS TimeFields,
+    IN PLARGE_INTEGER Time);
 
 
-#define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000))
-extern volatile LARGE_INTEGER KeTickCount;
+NTSYSAPI
+VOID
+NTAPI
+RtlTimeToTimeFields(
+    IN PLARGE_INTEGER Time,
+    IN PTIME_FIELDS TimeFields);
 
 
-#define PAUSE_PROCESSOR __yield();
+NTSYSAPI
+ULONG
+FASTCALL
+RtlUlongByteSwap(
+    IN ULONG Source);
 
 
-FORCEINLINE
-VOID
-KeFlushWriteBuffer(VOID)
-{
-  __mf ();
-  return;
-}
+NTSYSAPI
+ULONGLONG
+FASTCALL
+RtlUlonglongByteSwap(
+    IN ULONGLONG Source);
 
 NTSYSAPI
 
 NTSYSAPI
-PKTHREAD
+NTSTATUS
 NTAPI
 NTAPI
-KeGetCurrentThread(VOID);
-
+RtlUnicodeStringToAnsiString(
+    IN OUT PANSI_STRING DestinationString,
+    IN PCUNICODE_STRING SourceString,
+    IN BOOLEAN AllocateDestinationString);
 
 
-#elif defined(_M_PPC)
+NTSYSAPI
+ULONG
+NTAPI
+RtlxUnicodeStringToAnsiSize(
+    IN PCUNICODE_STRING UnicodeString);
 
 
-/* Interrupt request levels */
-#define PASSIVE_LEVEL                      0
-#define LOW_LEVEL                          0
-#define APC_LEVEL                          1
-#define DISPATCH_LEVEL                     2
-#define PROFILE_LEVEL                     27
-#define CLOCK1_LEVEL                      28
-#define CLOCK2_LEVEL                      28
-#define IPI_LEVEL                         29
-#define POWER_LEVEL                       30
-#define HIGH_LEVEL                        31
+#define RtlUnicodeStringToAnsiSize(String) (                  \
+    NLS_MB_CODE_PAGE_TAG ?                                    \
+    RtlxUnicodeStringToAnsiSize(String) :                     \
+    ((String)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
+)
 
 
-//
-// Used to contain PFNs and PFN counts
-//
-typedef ULONG PFN_COUNT;
-typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
-typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlUnicodeStringToInteger(
+    IN PCUNICODE_STRING String,
+    IN ULONG Base OPTIONAL,
+    OUT PULONG Value);
 
 
+NTSYSAPI
+WCHAR
+NTAPI
+RtlUpcaseUnicodeChar(
+    IN WCHAR SourceCharacter);
 
 
-typedef struct _KFLOATING_SAVE {
-  ULONG Dummy;
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
-
-typedef struct _KPCR_TIB {
-  PVOID ExceptionList;         /* 00 */
-  PVOID StackBase;             /* 04 */
-  PVOID StackLimit;            /* 08 */
-  PVOID SubSystemTib;          /* 0C */
-  _ANONYMOUS_UNION union {
-    PVOID FiberData;           /* 10 */
-    ULONG Version;             /* 10 */
-  } DUMMYUNIONNAME;
-  PVOID ArbitraryUserPointer;  /* 14 */
-  struct _KPCR_TIB *Self;       /* 18 */
-} KPCR_TIB, *PKPCR_TIB;         /* 1C */
-
-#define PCR_MINOR_VERSION 1
-#define PCR_MAJOR_VERSION 1
-
-typedef struct _KPCR {
-  KPCR_TIB Tib;                /* 00 */
-  struct _KPCR *Self;          /* 1C */
-  struct _KPRCB *Prcb;         /* 20 */
-  KIRQL Irql;                  /* 24 */
-  ULONG IRR;                   /* 28 */
-  ULONG IrrActive;             /* 2C */
-  ULONG IDR;                   /* 30 */
-  PVOID KdVersionBlock;        /* 34 */
-  PUSHORT IDT;                 /* 38 */
-  PUSHORT GDT;                 /* 3C */
-  struct _KTSS *TSS;           /* 40 */
-  USHORT MajorVersion;         /* 44 */
-  USHORT MinorVersion;         /* 46 */
-  KAFFINITY SetMember;         /* 48 */
-  ULONG StallScaleFactor;      /* 4C */
-  UCHAR SpareUnused;           /* 50 */
-  UCHAR Number;                /* 51 */
-} KPCR, *PKPCR;                /* 54 */
-
-#define KeGetPcr()                      PCR
-
-#define YieldProcessor() __asm__ __volatile__("nop");
-
-FORCEINLINE
-ULONG
-NTAPI
-KeGetCurrentProcessorNumber(VOID)
-{
-  ULONG Number;
-  __asm__ __volatile__ (
-    "lwz %0, %c1(12)\n"
-    : "=r" (Number)
-    : "i" (FIELD_OFFSET(KPCR, Number))
-  );
-  return Number;
-}
-
-NTHALAPI
-VOID
-FASTCALL
-KfLowerIrql(
-  IN KIRQL NewIrql);
-#define KeLowerIrql(a) KfLowerIrql(a)
-
-NTHALAPI
-KIRQL
+NTSYSAPI
+USHORT
 FASTCALL
 FASTCALL
-KfRaiseIrql(
-  IN KIRQL NewIrql);
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
+RtlUshortByteSwap(
+    IN USHORT Source);
 
 
-NTHALAPI
-KIRQL
+NTSYSAPI
+BOOLEAN
 NTAPI
 NTAPI
-KeRaiseIrqlToDpcLevel(VOID);
+RtlValidRelativeSecurityDescriptor(
+    IN PSECURITY_DESCRIPTOR SecurityDescriptorInput,
+    IN ULONG SecurityDescriptorLength,
+    IN SECURITY_INFORMATION RequiredInformation);
 
 
-NTHALAPI
-KIRQL
+NTSYSAPI
+BOOLEAN
 NTAPI
 NTAPI
-KeRaiseIrqlToSynchLevel(VOID);
+RtlValidSecurityDescriptor(
+    IN PSECURITY_DESCRIPTOR SecurityDescriptor);
 
 
+NTSYSAPI
+NTSTATUS
+NTAPI
+RtlWriteRegistryValue(
+    IN ULONG RelativeTo,
+    IN PCWSTR Path,
+    IN PCWSTR ValueName,
+    IN ULONG ValueType,
+    IN PVOID ValueData,
+    IN ULONG ValueLength);
 
 
+#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-#elif defined(_M_MIPS)
-#error MIPS Headers are totally incorrect
+#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
+NTSYSAPI
+VOID
+FASTCALL
+RtlPrefetchMemoryNonTemporal(
+    IN PVOID Source,
+    IN SIZE_T Length);
+#endif
 
 
-//
-// Used to contain PFNs and PFN counts
-//
-typedef ULONG PFN_COUNT;
-typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
-typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+NTSYSAPI
+VOID
+NTAPI
+RtlClearBit(
+    PRTL_BITMAP BitMapHeader,
+    ULONG BitNumber);
 
 
-#define PASSIVE_LEVEL                      0
-#define APC_LEVEL                          1
-#define DISPATCH_LEVEL                     2
-#define PROFILE_LEVEL                     27
-#define IPI_LEVEL                         29
-#define HIGH_LEVEL                        31
+NTSYSAPI
+WCHAR
+NTAPI
+RtlDowncaseUnicodeChar(
+    IN WCHAR SourceCharacter);
 
 
-typedef struct _KPCR {
-  struct _KPRCB *Prcb;         /* 20 */
-  KIRQL Irql;                  /* 24 */
-  ULONG IRR;                   /* 28 */
-  ULONG IDR;                   /* 30 */
-} KPCR, *PKPCR;
+NTSYSAPI
+VOID
+NTAPI
+RtlSetBit(
+    PRTL_BITMAP BitMapHeader,
+    ULONG BitNumber);
 
 
-#define KeGetPcr()                      PCR
+NTSYSAPI
+BOOLEAN
+NTAPI
+RtlTestBit(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG BitNumber);
 
 
-typedef struct _KFLOATING_SAVE {
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
+#endif // (NTDDI_VERSION >= NTDDI_WINXP)
 
 
-static __inline
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+NTSYSAPI
 ULONG
 NTAPI
 ULONG
 NTAPI
-KeGetCurrentProcessorNumber(VOID)
-{
-  return 0;
-}
-
-#define YieldProcessor() __asm__ __volatile__("nop");
-
-#define KeLowerIrql(a) KfLowerIrql(a)
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
+RtlNumberOfSetBitsUlongPtr(
+    IN ULONG_PTR Target);
 
 
-NTKERNELAPI
-VOID
+NTSYSAPI
+ULONGLONG
 NTAPI
 NTAPI
-KfLowerIrql(
-  IN KIRQL NewIrql);
+RtlIoDecodeMemIoResource (
+    IN struct _IO_RESOURCE_DESCRIPTOR *Descriptor,
+    OUT PULONGLONG Alignment OPTIONAL,
+    OUT PULONGLONG MinimumAddress OPTIONAL,
+    OUT PULONGLONG MaximumAddress OPTIONAL);
 
 
-NTKERNELAPI
-KIRQL
+NTSYSAPI
+NTSTATUS
 NTAPI
 NTAPI
-KfRaiseIrql(
-  IN KIRQL NewIrql);
+RtlIoEncodeMemIoResource(
+    IN struct _IO_RESOURCE_DESCRIPTOR *Descriptor,
+    IN UCHAR Type,
+    IN ULONGLONG Length,
+    IN ULONGLONG Alignment,
+    IN ULONGLONG MinimumAddress,
+    IN ULONGLONG MaximumAddress);
 
 
-NTKERNELAPI
-KIRQL
+NTSYSAPI
+ULONGLONG
 NTAPI
 NTAPI
-KeRaiseIrqlToDpcLevel(VOID);
+RtlCmDecodeMemIoResource(
+    IN struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *Descriptor,
+    OUT PULONGLONG Start OPTIONAL);
 
 
-NTKERNELAPI
-KIRQL
+NTSYSAPI
+NTSTATUS
 NTAPI
 NTAPI
-KeRaiseIrqlToSynchLevel(VOID);
-
+RtlFindClosestEncodableLength(
+    IN ULONGLONG SourceLength,
+    OUT PULONGLONG TargetLength);
 
 
-#elif defined(_M_ARM)
-#include <armddk.h>
-#else
-#error Unknown Architecture
 #endif
 
 #endif
 
-/******************************************************************************
- *                         Runtime Library Functions                          *
- ******************************************************************************/
-
-
-#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
-
-#define RTL_STATIC_LIST_HEAD(x) LIST_ENTRY x = { &x, &x }
-
-FORCEINLINE
-VOID
-InitializeListHead(
-  OUT PLIST_ENTRY ListHead)
+#if !defined(MIDL_PASS)
+/* inline funftions */
+//DECLSPEC_DEPRECATED_DDK_WINXP
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlConvertLongToLargeInteger(LONG SignedInteger)
 {
 {
-  ListHead->Flink = ListHead->Blink = ListHead;
+    LARGE_INTEGER ret;
+    ret.QuadPart = SignedInteger;
+    return ret;
 }
 
 }
 
-BOOLEAN
-FORCEINLINE
-IsListEmpty(
-  IN CONST LIST_ENTRY * ListHead)
+//DECLSPEC_DEPRECATED_DDK_WINXP
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlConvertUlongToLargeInteger(
+  ULONG UnsignedInteger)
 {
 {
-  return (BOOLEAN)(ListHead->Flink == ListHead);
+    LARGE_INTEGER ret;
+    ret.QuadPart = UnsignedInteger;
+    return ret;
 }
 
 }
 
-FORCEINLINE
-BOOLEAN
-RemoveEntryList(
-  IN PLIST_ENTRY Entry)
+//DECLSPEC_DEPRECATED_DDK
+static __inline
+ULONG
+NTAPI_INLINE
+RtlEnlargedUnsignedDivide(
+    IN ULARGE_INTEGER Dividend,
+    IN ULONG Divisor,
+    IN OUT PULONG Remainder)
 {
 {
-  PLIST_ENTRY OldFlink;
-  PLIST_ENTRY OldBlink;
-
-  OldFlink = Entry->Flink;
-  OldBlink = Entry->Blink;
-  OldFlink->Blink = OldBlink;
-  OldBlink->Flink = OldFlink;
-  return (BOOLEAN)(OldFlink == OldBlink);
+    if (Remainder)
+        *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
+    return (ULONG)(Dividend.QuadPart / Divisor);
 }
 
 }
 
-FORCEINLINE
-PLIST_ENTRY
-RemoveHeadList(
-  IN OUT PLIST_ENTRY ListHead)
+//DECLSPEC_DEPRECATED_DDK
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlEnlargedUnsignedMultiply(
+    IN ULONG Multiplicand,
+    IN ULONG Multiplier)
 {
 {
-  PLIST_ENTRY Flink;
-  PLIST_ENTRY Entry;
-
-  Entry = ListHead->Flink;
-  Flink = Entry->Flink;
-  ListHead->Flink = Flink;
-  Flink->Blink = ListHead;
-  return Entry;
+    LARGE_INTEGER ret;
+    ret.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier;
+    return ret;
 }
 
 }
 
-FORCEINLINE
-PLIST_ENTRY
-RemoveTailList(
-  IN OUT PLIST_ENTRY ListHead)
+//DECLSPEC_DEPRECATED_DDK
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlEnlargedIntegerMultiply(
+    IN LONG Multiplicand,
+    IN LONG Multiplier)
 {
 {
-  PLIST_ENTRY Blink;
-  PLIST_ENTRY Entry;
-
-  Entry = ListHead->Blink;
-  Blink = Entry->Blink;
-  ListHead->Blink = Blink;
-  Blink->Flink = ListHead;
-  return Entry;
+    LARGE_INTEGER ret;
+    ret.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier;
+    return ret;
 }
 
 FORCEINLINE
 VOID
 }
 
 FORCEINLINE
 VOID
-InsertTailList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY Entry)
+RtlInitEmptyAnsiString(OUT PANSI_STRING AnsiString,
+                       IN PCHAR Buffer,
+                       IN USHORT BufferSize)
 {
 {
-  PLIST_ENTRY OldBlink;
-  OldBlink = ListHead->Blink;
-  Entry->Flink = ListHead;
-  Entry->Blink = OldBlink;
-  OldBlink->Flink = Entry;
-  ListHead->Blink = Entry;
+    AnsiString->Length = 0;
+    AnsiString->MaximumLength = BufferSize;
+    AnsiString->Buffer = Buffer;
 }
 
 FORCEINLINE
 VOID
 }
 
 FORCEINLINE
 VOID
-InsertHeadList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY Entry)
+RtlInitEmptyUnicodeString(
+    OUT PUNICODE_STRING UnicodeString,
+    IN PWSTR Buffer,
+    IN USHORT BufferSize)
 {
 {
-  PLIST_ENTRY OldFlink;
-  OldFlink = ListHead->Flink;
-  Entry->Flink = OldFlink;
-  Entry->Blink = ListHead;
-  OldFlink->Blink = Entry;
-  ListHead->Flink = Entry;
+    UnicodeString->Length = 0;
+    UnicodeString->MaximumLength = BufferSize;
+    UnicodeString->Buffer = Buffer;
 }
 
 }
 
-FORCEINLINE
-VOID
-AppendTailList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY ListToAppend)
+#if defined(_AMD64_) || defined(_IA64_)
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlExtendedIntegerMultiply(
+    LARGE_INTEGER Multiplicand,
+    LONG Multiplier)
 {
 {
-  PLIST_ENTRY ListEnd = ListHead->Blink;
-
-  ListHead->Blink->Flink = ListToAppend;
-  ListHead->Blink = ListToAppend->Blink;
-  ListToAppend->Blink->Flink = ListHead;
-  ListToAppend->Blink = ListEnd;
+    LARGE_INTEGER ret;
+    ret.QuadPart = Multiplicand.QuadPart * Multiplier;
+    return ret;
 }
 
 }
 
-FORCEINLINE
-PSINGLE_LIST_ENTRY
-PopEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead)
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlExtendedLargeIntegerDivide(
+    LARGE_INTEGER Dividend,
+    ULONG Divisor,
+    PULONG Remainder)
 {
 {
-  PSINGLE_LIST_ENTRY FirstEntry;
-  FirstEntry = ListHead->Next;
-  if (FirstEntry != NULL) {
-    ListHead->Next = FirstEntry->Next;
-  }
-  return FirstEntry;
+    LARGE_INTEGER ret;
+    ret.QuadPart = (ULONG64)Dividend.QuadPart / Divisor;
+    if (Remainder)
+        *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
+    return ret;
 }
 }
+#endif
 
 
-FORCEINLINE
-VOID
-PushEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead,
-  IN OUT PSINGLE_LIST_ENTRY Entry)
+#if defined(_AMD64_)
+
+#define MultiplyHigh __mulh
+#define UnsignedMultiplyHigh __umulh
+
+//DECLSPEC_DEPRECATED_DDK
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlExtendedMagicDivide(
+    IN LARGE_INTEGER Dividend,
+    IN LARGE_INTEGER MagicDivisor,
+    IN CCHAR ShiftCount)
 {
 {
-  Entry->Next = ListHead->Next;
-  ListHead->Next = Entry;
+    LARGE_INTEGER ret;
+    ULONG64 ret64;
+    BOOLEAN Pos;
+    Pos = (Dividend.QuadPart >= 0);
+    ret64 = UnsignedMultiplyHigh(Pos ? Dividend.QuadPart : -Dividend.QuadPart,
+                                 MagicDivisor.QuadPart);
+    ret64 >>= ShiftCount;
+    ret.QuadPart = Pos ? ret64 : -ret64;
+    return ret;
 }
 }
+#endif
 
 
-#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
-
-NTSYSAPI
-VOID
-NTAPI
-RtlAssert(
-  IN PVOID FailedAssertion,
-  IN PVOID FileName,
-  IN ULONG LineNumber,
-  IN PSTR Message);
+//DECLSPEC_DEPRECATED_DDK
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlLargeIntegerAdd(
+    IN LARGE_INTEGER Addend1,
+    IN LARGE_INTEGER Addend2)
+{
+    LARGE_INTEGER ret;
+    ret.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
+    return ret;
+}
 
 /* VOID
 
 /* VOID
- * RtlCopyMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN CONST VOID UNALIGNED *Source,
- *     IN SIZE_T Length)
- */
-#define RtlCopyMemory(Destination, Source, Length) \
-    memcpy(Destination, Source, Length)
+ * RtlLargeIntegerAnd(
+ *     IN OUT LARGE_INTEGER Result,
+ *     IN LARGE_INTEGER Source,
+ *     IN LARGE_INTEGER Mask);
+ */
+#define RtlLargeIntegerAnd(Result, Source, Mask) \
+    Result.QuadPart = Source.QuadPart & Mask.QuadPart
 
 
-#define RtlCopyBytes RtlCopyMemory
+//DECLSPEC_DEPRECATED_DDK
+static __inline
+LARGE_INTEGER
+NTAPI_INLINE
+RtlLargeIntegerArithmeticShift(
+    IN LARGE_INTEGER LargeInteger,
+    IN CCHAR ShiftCount)
+{
+    LARGE_INTEGER ret;
+    ret.QuadPart = LargeInteger.QuadPart >> ShiftCount;
+    return ret;
+}
+
+/* BOOLEAN
+ * RtlLargeIntegerEqualTo(
+ *     IN LARGE_INTEGER  Operand1,
+ *     IN LARGE_INTEGER  Operand2);
+ */
+#define RtlLargeIntegerEqualTo(X,Y) \
+    (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
 
 
+FORCEINLINE
+PVOID
+RtlSecureZeroMemory(
+    OUT PVOID Pointer,
+    IN SIZE_T Size)
+{
+    volatile char* vptr = (volatile char*)Pointer;
 #if defined(_M_AMD64)
 #if defined(_M_AMD64)
-NTSYSAPI
-VOID
-NTAPI
-RtlCopyMemoryNonTemporal(
-  VOID UNALIGNED *Destination,
-  CONST VOID UNALIGNED *Source,
-  SIZE_T Length);
+    __stosb((PUCHAR)vptr, 0, Size);
 #else
 #else
-#define RtlCopyMemoryNonTemporal RtlCopyMemory
+    char * endptr = (char *)vptr + Size;
+    while (vptr < endptr)
+    {
+        *vptr = 0; vptr++;
+    }
 #endif
 #endif
+     return Pointer;
+}
 
 
-/* BOOLEAN
- * RtlEqualLuid(
- *     IN PLUID Luid1,
- *     IN PLUID Luid2)
- */
-#define RtlEqualLuid(Luid1, Luid2) \
-    (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
-
-/* ULONG
- * RtlEqualMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN CONST VOID UNALIGNED *Source,
- *     IN SIZE_T Length)
- */
-#define RtlEqualMemory(Destination, Source, Length) \
-    (!memcmp(Destination, Source, Length))
+#if defined(_M_AMD64)
+FORCEINLINE
+ULONG
+RtlCheckBit(
+    IN PRTL_BITMAP BitMapHeader,
+    IN ULONG BitPosition)
+{
+    return BitTest((LONG CONST*)BitMapHeader->Buffer, BitPosition);
+}
+#else
+#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
+#endif // defined(_M_AMD64)
 
 
-/* VOID
- * RtlFillMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN SIZE_T Length,
- *     IN UCHAR Fill)
- */
-#define RtlFillMemory(Destination, Length, Fill) \
-    memset(Destination, Fill, Length)
+#endif // !defined(MIDL_PASS)
 
 
-#define RtlFillBytes RtlFillMemory
+/* Byte Swap Functions */
+#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037 || defined(__GNUC__))) || \
+    ((defined(_M_AMD64) || defined(_M_IA64)) \
+        && (_MSC_FULL_VER > 13009175 || defined(__GNUC__)))
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlFreeUnicodeString(
-  IN OUT PUNICODE_STRING UnicodeString);
+#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
+#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
+#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlGUIDFromString(
-  IN PUNICODE_STRING GuidString,
-  OUT GUID *Guid);
+#endif
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlInitUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PCWSTR SourceString OPTIONAL);
+#if DBG
 
 
-/* VOID
- * RtlMoveMemory(
- *    IN VOID UNALIGNED *Destination,
- *    IN CONST VOID UNALIGNED *Source,
- *    IN SIZE_T Length)
- */
-#define RtlMoveMemory(Destination, Source, Length) \
-    memmove(Destination, Source, Length)
+#define ASSERT(exp) \
+  (VOID)((!(exp)) ? \
+    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlStringFromGUID(
-  IN REFGUID Guid,
-  OUT PUNICODE_STRING GuidString);
+#define ASSERTMSG(msg, exp) \
+  (VOID)((!(exp)) ? \
+    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, msg ), FALSE : TRUE)
 
 
-/* VOID
- * RtlZeroMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN SIZE_T Length)
- */
-#define RtlZeroMemory(Destination, Length) \
-    memset(Destination, 0, Length)
+#define RTL_SOFT_ASSERT(exp) \
+  (VOID)((!(exp)) ? \
+    DbgPrint("%s(%d): Soft assertion failed\n   Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
 
 
-#define RtlZeroBytes RtlZeroMemory
+#define RTL_SOFT_ASSERTMSG(msg, exp) \
+  (VOID)((!(exp)) ? \
+    DbgPrint("%s(%d): Soft assertion failed\n   Expression: %s\n   Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#define RTL_VERIFY(exp) ASSERT(exp)
+#define RTL_VERIFYMSG(msg, exp) ASSERTMSG(msg, exp)
 
 
+#define RTL_SOFT_VERIFY(exp) RTL_SOFT_ASSERT(exp)
+#define RTL_SOFT_VERIFYMSG(msg, exp) RTL_SOFT_ASSERTMSG(msg, exp)
 
 
+#if defined(_MSC_VER)
 
 
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlAreBitsClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG Length);
+#define NT_ASSERT(exp) \
+   ((!(exp)) ? \
+      (__annotation(L"Debug", L"AssertFail", L#exp), \
+       DbgRaiseAssertionFailure(), FALSE) : TRUE)
 
 
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlAreBitsSet(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG Length);
+#define NT_ASSERTMSG(msg, exp) \
+   ((!(exp)) ? \
+      (__annotation(L"Debug", L"AssertFail", L##msg), \
+      DbgRaiseAssertionFailure(), FALSE) : TRUE)
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlAnsiStringToUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PANSI_STRING SourceString,
-  IN BOOLEAN AllocateDestinationString);
+#define NT_ASSERTMSGW(msg, exp) \
+    ((!(exp)) ? \
+        (__annotation(L"Debug", L"AssertFail", msg), \
+         DbgRaiseAssertionFailure(), FALSE) : TRUE)
 
 
-NTSYSAPI
-ULONG
-NTAPI
-RtlxAnsiStringToUnicodeSize(
-  IN PCANSI_STRING AnsiString);
+#else
 
 
-#define RtlAnsiStringToUnicodeSize(String) (               \
-  NLS_MB_CODE_PAGE_TAG ?                                   \
-  RtlxAnsiStringToUnicodeSize(String) :                    \
-  ((String)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR)   \
-)
+/* GCC doesn't support __annotation (nor PDB) */
+#define NT_ASSERT(exp) \
+   (VOID)((!(exp)) ? (DbgRaiseAssertionFailure(), FALSE) : TRUE)
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlAppendUnicodeStringToString(
-  IN OUT PUNICODE_STRING Destination,
-  IN PCUNICODE_STRING Source);
+#define NT_ASSERTMSG NT_ASSERT
+#define NT_ASSERTMSGW NT_ASSERT
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlAppendUnicodeToString(
-  IN OUT PUNICODE_STRING Destination,
-  IN PCWSTR Source);
+#endif
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCheckRegistryKey(
-  IN ULONG RelativeTo,
-  IN PWSTR Path);
+#else /* !DBG */
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlClearAllBits(
-  IN PRTL_BITMAP BitMapHeader);
+#define ASSERT(exp) ((VOID) 0)
+#define ASSERTMSG(msg, exp) ((VOID) 0)
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlClearBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG NumberToClear);
+#define RTL_SOFT_ASSERT(exp) ((VOID) 0)
+#define RTL_SOFT_ASSERTMSG(msg, exp) ((VOID) 0)
 
 
-NTSYSAPI
-SIZE_T
-NTAPI
-RtlCompareMemory(
-  IN CONST VOID *Source1,
-  IN CONST VOID *Source2,
-  IN SIZE_T Length);
+#define RTL_VERIFY(exp) ((exp) ? TRUE : FALSE)
+#define RTL_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
 
 
-NTSYSAPI
-LONG
-NTAPI
-RtlCompareUnicodeString(
-  IN PCUNICODE_STRING String1,
-  IN PCUNICODE_STRING String2,
-  IN BOOLEAN CaseInSensitive);
+#define RTL_SOFT_VERIFY(exp) ((exp) ? TRUE : FALSE)
+#define RTL_SOFT_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
 
 
-NTSYSAPI
-LONG
-NTAPI
-RtlCompareUnicodeStrings(
-  IN PCWCH String1,
-  IN SIZE_T String1Length,
-  IN PCWCH String2,
-  IN SIZE_T String2Length,
-  IN BOOLEAN CaseInSensitive);
+#define NT_ASSERT(exp)     ((VOID)0)
+#define NT_ASSERTMSG(exp)  ((VOID)0)
+#define NT_ASSERTMSGW(exp) ((VOID)0)
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlCopyUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PCUNICODE_STRING SourceString OPTIONAL);
+#endif /* DBG */
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCreateRegistryKey(
-  IN ULONG RelativeTo,
-  IN PWSTR Path);
+#if !defined(_WINBASE_)
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCreateSecurityDescriptor(
-  IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN ULONG Revision);
+#if defined(_WIN64) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_NTOSP_))
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlDeleteRegistryValue(
-  IN ULONG RelativeTo,
-  IN PCWSTR Path,
-  IN PCWSTR ValueName);
+NTKERNELAPI
+VOID
+InitializeSListHead(
+  OUT PSLIST_HEADER SListHead);
 
 
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlEqualUnicodeString(
-  IN CONST UNICODE_STRING *String1,
-  IN CONST UNICODE_STRING *String2,
-  IN BOOLEAN CaseInSensitive);
+#else
 
 
-#if !defined(_AMD64_) && !defined(_IA64_)
-NTSYSAPI
-LARGE_INTEGER
-NTAPI
-RtlExtendedIntegerMultiply(
-  IN LARGE_INTEGER Multiplicand,
-  IN LONG Multiplier);
+VOID
+FORCEINLINE
+InitializeSListHead(
+  OUT PSLIST_HEADER SListHead)
+{
+#if defined(_IA64_)
+    ULONG64 FeatureBits;
+#endif
 
 
-NTSYSAPI
-LARGE_INTEGER
-NTAPI
-RtlExtendedLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN ULONG Divisor,
-  OUT PULONG Remainder OPTIONAL);
+#if defined(_WIN64)
+    if (((ULONG_PTR)SListHead & 0xf) != 0)
+    {
+        RtlRaiseStatus(STATUS_DATATYPE_MISALIGNMENT);
+    }
 #endif
 
 #endif
 
-#if defined(_X86_) || defined(_IA64_)
-NTSYSAPI
-LARGE_INTEGER
-NTAPI
-RtlExtendedMagicDivide(
-    IN LARGE_INTEGER Dividend,
-    IN LARGE_INTEGER MagicDivisor,
-    IN CCHAR  ShiftCount);
+    RtlZeroMemory(SListHead, sizeof(SLIST_HEADER));
+
+#if defined(_IA64_)
+    FeatureBits = __getReg(CV_IA64_CPUID4);
+    if ((FeatureBits & KF_16BYTE_INSTR) != 0)
+    {
+        SListHead->Header16.HeaderType = 1;
+        SListHead->Header16.Init = 1;
+    }
 #endif
 #endif
+}
 
 
-NTSYSAPI
-VOID
-NTAPI
-RtlFreeAnsiString(
-  IN PANSI_STRING AnsiString);
+#endif
 
 
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindClearBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
+#if defined(_WIN64)
 
 
-NTSYSAPI
-ULONG
+#define InterlockedPopEntrySList(Head) \
+    ExpInterlockedPopEntrySList(Head)
+
+#define InterlockedPushEntrySList(Head, Entry) \
+    ExpInterlockedPushEntrySList(Head, Entry)
+
+#define InterlockedFlushSList(Head) \
+    ExpInterlockedFlushSList(Head)
+
+#define QueryDepthSList(Head) \
+    ExQueryDepthSList(Head)
+
+#else /* !defined(_WIN64) */
+
+NTKERNELAPI
+PSLIST_ENTRY
+FASTCALL
+InterlockedPopEntrySList(
+    IN PSLIST_HEADER ListHead);
+
+NTKERNELAPI
+PSLIST_ENTRY
+FASTCALL
+InterlockedPushEntrySList(
+    IN PSLIST_HEADER ListHead,
+    IN PSLIST_ENTRY ListEntry);
+
+#define InterlockedFlushSList(ListHead) \
+    ExInterlockedFlushSList(ListHead)
+
+#define QueryDepthSList(Head) \
+    ExQueryDepthSList(Head)
+
+#endif /* !defined(_WIN64) */
+
+#endif /* !defined(_WINBASE_) */
+
+/******************************************************************************
+ *                              Kernel Functions                              *
+ ******************************************************************************/
+
+NTHALAPI
+KIRQL
 NTAPI
 NTAPI
-RtlFindClearBitsAndSet(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
+KeGetCurrentIrql(
+    VOID);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlFindFirstRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  OUT PULONG StartingIndex);
+KeInitializeEvent(
+  OUT PRKEVENT  Event,
+  IN EVENT_TYPE  Type,
+  IN BOOLEAN  State);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlFindClearRuns(
-  IN PRTL_BITMAP BitMapHeader,
-  OUT PRTL_BITMAP_RUN RunArray,
-  IN ULONG SizeOfRunArray,
-  IN BOOLEAN LocateLongestRuns);
+KeClearEvent(
+  IN OUT PRKEVENT Event);
 
 
-NTSYSAPI
-ULONG
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlFindLastBackwardRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG FromIndex,
-  OUT PULONG StartingRunIndex);
+ProbeForRead(
+  IN CONST VOID *Address, /* CONST is added */
+  IN SIZE_T Length,
+  IN ULONG Alignment);
 
 
-NTSYSAPI
-CCHAR
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlFindLeastSignificantBit(
-  IN ULONGLONG Set);
+ProbeForWrite(
+  IN PVOID Address,
+  IN SIZE_T Length,
+  IN ULONG Alignment);
 
 
-NTSYSAPI
-ULONG
+#if defined(SINGLE_GROUP_LEGACY_API)
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlFindLongestRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  OUT PULONG StartingIndex);
+KeRevertToUserAffinityThread(VOID);
 
 
-NTSYSAPI
-CCHAR
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlFindMostSignificantBit(
-  IN ULONGLONG Set);
+KeSetSystemAffinityThread(
+    IN KAFFINITY Affinity);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlFindNextForwardRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG FromIndex,
-  OUT PULONG StartingRunIndex);
+KeSetTargetProcessorDpc(
+  IN OUT PRKDPC Dpc,
+  IN CCHAR Number);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+KAFFINITY
 NTAPI
 NTAPI
-RtlFindSetBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
+KeQueryActiveProcessors(
+  VOID);
+#endif
 
 
-NTSYSAPI
-ULONG
+#if !defined(_M_AMD64)
+NTKERNELAPI
+ULONGLONG
 NTAPI
 NTAPI
-RtlFindSetBitsAndClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
+KeQueryInterruptTime(
+  VOID);
 
 
-NTSYSAPI
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlInitAnsiString(
-  IN OUT PANSI_STRING DestinationString,
-  IN PCSZ SourceString);
+KeQuerySystemTime(
+  OUT PLARGE_INTEGER  CurrentTime);
+#endif /* !_M_AMD64 */
 
 
-NTSYSAPI
+#if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlInitializeBitMap(
-  IN PRTL_BITMAP BitMapHeader,
-  IN PULONG BitMapBuffer,
-  IN ULONG SizeOfBitMap);
+KeInitializeSpinLock(
+    IN PKSPIN_LOCK SpinLock);
+#else
+FORCEINLINE
+VOID
+KeInitializeSpinLock(IN PKSPIN_LOCK SpinLock)
+{
+    /* Clear the lock */
+    *SpinLock = 0;
+}
+#endif
 
 
-NTSYSAPI
+NTKERNELAPI
+DECLSPEC_NORETURN
 VOID
 NTAPI
 VOID
 NTAPI
-RtlInitString(
-  IN OUT PSTRING DestinationString,
-  IN PCSZ SourceString);
+KeBugCheckEx(
+  IN ULONG  BugCheckCode,
+  IN ULONG_PTR  BugCheckParameter1,
+  IN ULONG_PTR  BugCheckParameter2,
+  IN ULONG_PTR  BugCheckParameter3,
+  IN ULONG_PTR  BugCheckParameter4);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlIntegerToUnicodeString(
-  IN ULONG Value,
-  IN ULONG Base OPTIONAL,
-  IN OUT PUNICODE_STRING String);
+KeCancelTimer(
+  IN OUT PKTIMER);
 
 
-NTSYSAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-RtlInt64ToUnicodeString(
-  IN ULONGLONG Value,
-  IN ULONG Base OPTIONAL,
-  IN OUT PUNICODE_STRING String);
-
-#ifdef _WIN64
-#define RtlIntPtrToUnicodeString(Value, Base, String) \
-    RtlInt64ToUnicodeString(Value, Base, String)
-#else
-#define RtlIntPtrToUnicodeString(Value, Base, String) \
-    RtlIntegerToUnicodeString(Value, Base, String)
-#endif
-
-/* BOOLEAN
- * RtlIsZeroLuid(
- *     IN PLUID L1);
- */
-#define RtlIsZeroLuid(_L1) \
-    ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))
+KeDelayExecutionThread(
+  IN KPROCESSOR_MODE WaitMode,
+  IN BOOLEAN Alertable,
+  IN PLARGE_INTEGER Interval);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlLengthSecurityDescriptor(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
+KeDeregisterBugCheckCallback(
+  IN OUT PKBUGCHECK_CALLBACK_RECORD CallbackRecord);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlNumberOfClearBits(
-  IN PRTL_BITMAP BitMapHeader);
+KeEnterCriticalRegion(VOID);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlNumberOfSetBits(
-  IN PRTL_BITMAP BitMapHeader);
+KeInitializeDeviceQueue(
+  OUT PKDEVICE_QUEUE  DeviceQueue);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlQueryRegistryValues(
-  IN ULONG RelativeTo,
-  IN PCWSTR Path,
-  IN OUT PRTL_QUERY_REGISTRY_TABLE QueryTable,
-  IN PVOID Context OPTIONAL,
-  IN PVOID Environment OPTIONAL);
+KeInitializeDpc(
+  OUT PRKDPC  Dpc,
+  IN PKDEFERRED_ROUTINE  DeferredRoutine,
+  IN PVOID  DeferredContext OPTIONAL);
 
 
-#define SHORT_SIZE  (sizeof(USHORT))
-#define SHORT_MASK  (SHORT_SIZE - 1)
-#define LONG_SIZE (sizeof(LONG))
-#define LONGLONG_SIZE   (sizeof(LONGLONG))
-#define LONG_MASK (LONG_SIZE - 1)
-#define LONGLONG_MASK   (LONGLONG_SIZE - 1)
-#define LOWBYTE_MASK 0x00FF
+NTKERNELAPI
+VOID
+NTAPI
+KeInitializeMutex(
+  OUT PRKMUTEX  Mutex,
+  IN ULONG  Level);
 
 
-#define FIRSTBYTE(VALUE)  ((VALUE) & LOWBYTE_MASK)
-#define SECONDBYTE(VALUE) (((VALUE) >> 8) & LOWBYTE_MASK)
-#define THIRDBYTE(VALUE)  (((VALUE) >> 16) & LOWBYTE_MASK)
-#define FOURTHBYTE(VALUE) (((VALUE) >> 24) & LOWBYTE_MASK)
+NTKERNELAPI
+VOID
+NTAPI
+KeInitializeSemaphore(
+  OUT PRKSEMAPHORE  Semaphore,
+  IN LONG  Count,
+  IN LONG  Limit);
 
 
-NTSYSAPI
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlSetAllBits(
-  IN PRTL_BITMAP BitMapHeader);
+KeInitializeTimer(
+  OUT PKTIMER  Timer);
 
 
-NTSYSAPI
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlSetBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG NumberToSet);
+KeInitializeTimerEx(
+  OUT PKTIMER  Timer,
+  IN TIMER_TYPE  Type);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlSetDaclSecurityDescriptor(
-  IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN BOOLEAN DaclPresent,
-  IN PACL Dacl OPTIONAL,
-  IN BOOLEAN DaclDefaulted OPTIONAL);
+KeInsertByKeyDeviceQueue(
+  IN OUT PKDEVICE_QUEUE  DeviceQueue,
+  IN OUT PKDEVICE_QUEUE_ENTRY  DeviceQueueEntry,
+  IN ULONG  SortKey);
 
 
-#if defined(_AMD64_)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+KeInsertDeviceQueue(
+  IN OUT PKDEVICE_QUEUE  DeviceQueue,
+  IN OUT PKDEVICE_QUEUE_ENTRY  DeviceQueueEntry);
 
 
-/* VOID
- * RtlStoreUlong(
- *     IN PULONG Address,
- *     IN ULONG Value);
- */
-#define RtlStoreUlong(Address,Value) \
-    *(ULONG UNALIGNED *)(Address) = (Value)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+KeInsertQueueDpc(
+  IN OUT PRKDPC  Dpc,
+  IN PVOID  SystemArgument1 OPTIONAL,
+  IN PVOID  SystemArgument2 OPTIONAL);
 
 
-/* VOID
- * RtlStoreUlonglong(
- *     IN OUT PULONGLONG Address,
- *     ULONGLONG Value);
- */
-#define RtlStoreUlonglong(Address,Value) \
-    *(ULONGLONG UNALIGNED *)(Address) = (Value)
-
-/* VOID
- * RtlStoreUshort(
- *     IN PUSHORT Address,
- *     IN USHORT Value);
- */
-#define RtlStoreUshort(Address,Value) \
-    *(USHORT UNALIGNED *)(Address) = (Value)
-
-/* VOID
- * RtlRetrieveUshort(
- *     PUSHORT DestinationAddress,
- *    PUSHORT SourceAddress);
- */
-#define RtlRetrieveUshort(DestAddress,SrcAddress) \
-    *(USHORT UNALIGNED *)(DestAddress) = *(USHORT)(SrcAddress)
-
-/* VOID
- * RtlRetrieveUlong(
- *    PULONG DestinationAddress,
- *    PULONG SourceAddress);
- */
-#define RtlRetrieveUlong(DestAddress,SrcAddress) \
-    *(ULONG UNALIGNED *)(DestAddress) = *(PULONG)(SrcAddress)
-
-#else
-
-#define RtlStoreUlong(Address,Value)                      \
-    if ((ULONG_PTR)(Address) & LONG_MASK) { \
-        ((PUCHAR) (Address))[LONG_LEAST_SIGNIFICANT_BIT]    = (UCHAR)(FIRSTBYTE(Value)); \
-        ((PUCHAR) (Address))[LONG_3RD_MOST_SIGNIFICANT_BIT] = (UCHAR)(SECONDBYTE(Value)); \
-        ((PUCHAR) (Address))[LONG_2ND_MOST_SIGNIFICANT_BIT] = (UCHAR)(THIRDBYTE(Value)); \
-        ((PUCHAR) (Address))[LONG_MOST_SIGNIFICANT_BIT]     = (UCHAR)(FOURTHBYTE(Value)); \
-    } \
-    else { \
-        *((PULONG)(Address)) = (ULONG) (Value); \
-    }
-
-#define RtlStoreUlonglong(Address,Value) \
-    if ((ULONG_PTR)(Address) & LONGLONG_MASK) { \
-        RtlStoreUlong((ULONG_PTR)(Address), \
-                      (ULONGLONG)(Value) & 0xFFFFFFFF); \
-        RtlStoreUlong((ULONG_PTR)(Address)+sizeof(ULONG), \
-                      (ULONGLONG)(Value) >> 32); \
-    } else { \
-        *((PULONGLONG)(Address)) = (ULONGLONG)(Value); \
-    }
-
-#define RtlStoreUshort(Address,Value) \
-    if ((ULONG_PTR)(Address) & SHORT_MASK) { \
-        ((PUCHAR) (Address))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
-        ((PUCHAR) (Address))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(Value)); \
-    } \
-    else { \
-        *((PUSHORT) (Address)) = (USHORT)Value; \
-    }
-
-#define RtlRetrieveUshort(DestAddress,SrcAddress) \
-    if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
-    { \
-        ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
-        ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
-    } \
-    else \
-    { \
-        *((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
-    }
-
-#define RtlRetrieveUlong(DestAddress,SrcAddress) \
-    if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
-    { \
-        ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
-        ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
-        ((PUCHAR)(DestAddress))[2]=((PUCHAR)(SrcAddress))[2]; \
-        ((PUCHAR)(DestAddress))[3]=((PUCHAR)(SrcAddress))[3]; \
-    } \
-    else \
-    { \
-        *((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
-    }
-
-#endif /* defined(_AMD64_) */
-
-#ifdef _WIN64
-/* VOID
- * RtlStoreUlongPtr(
- *     IN OUT PULONG_PTR Address,
- *     IN ULONG_PTR Value);
- */
-#define RtlStoreUlongPtr(Address,Value) RtlStoreUlonglong(Address,Value)
-#else
-#define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value)
-#endif /* _WIN64 */
-
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlTimeFieldsToTime(
-  IN PTIME_FIELDS TimeFields,
-  IN PLARGE_INTEGER Time);
-
-NTSYSAPI
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-RtlTimeToTimeFields(
-  IN PLARGE_INTEGER Time,
-  IN PTIME_FIELDS TimeFields);
-
-NTSYSAPI
-ULONG
-FASTCALL
-RtlUlongByteSwap(
-  IN ULONG Source);
+KeLeaveCriticalRegion(VOID);
 
 
-NTSYSAPI
-ULONGLONG
-FASTCALL
-RtlUlonglongByteSwap(
-  IN ULONGLONG Source);
+NTHALAPI
+LARGE_INTEGER
+NTAPI
+KeQueryPerformanceCounter(
+  OUT PLARGE_INTEGER  PerformanceFrequency  OPTIONAL);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+KPRIORITY
 NTAPI
 NTAPI
-RtlUnicodeStringToAnsiString(
-  IN OUT PANSI_STRING DestinationString,
-  IN PCUNICODE_STRING SourceString,
-  IN BOOLEAN AllocateDestinationString);
+KeQueryPriorityThread(
+  IN PRKTHREAD  Thread);
 
 
-NTSYSAPI
+NTKERNELAPI
 ULONG
 NTAPI
 ULONG
 NTAPI
-RtlxUnicodeStringToAnsiSize(
-  IN PCUNICODE_STRING UnicodeString);
-
-#define RtlUnicodeStringToAnsiSize(String) (                  \
-    NLS_MB_CODE_PAGE_TAG ?                                    \
-    RtlxUnicodeStringToAnsiSize(String) :                     \
-    ((String)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
-)
+KeQueryTimeIncrement(
+  VOID);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+LONG
 NTAPI
 NTAPI
-RtlUnicodeStringToInteger(
-  IN PCUNICODE_STRING String,
-  IN ULONG Base OPTIONAL,
-  OUT PULONG Value);
+KeReadStateEvent(
+  IN PRKEVENT  Event);
 
 
-NTSYSAPI
-WCHAR
+NTKERNELAPI
+LONG
 NTAPI
 NTAPI
-RtlUpcaseUnicodeChar(
-  IN WCHAR SourceCharacter);
+KeReadStateMutex(
+  IN PRKMUTEX  Mutex);
 
 
-NTSYSAPI
-USHORT
-FASTCALL
-RtlUshortByteSwap(
-  IN USHORT Source);
 
 
-NTSYSAPI
-BOOLEAN
+NTKERNELAPI
+LONG
 NTAPI
 NTAPI
-RtlValidRelativeSecurityDescriptor(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptorInput,
-  IN ULONG SecurityDescriptorLength,
-  IN SECURITY_INFORMATION RequiredInformation);
+KeReadStateSemaphore(
+  IN PRKSEMAPHORE  Semaphore);
 
 
-NTSYSAPI
+NTKERNELAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-RtlValidSecurityDescriptor(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
+KeReadStateTimer(
+  IN PKTIMER  Timer);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlWriteRegistryValue(
-  IN ULONG RelativeTo,
-  IN PCWSTR Path,
-  IN PCWSTR ValueName,
-  IN ULONG ValueType,
-  IN PVOID ValueData,
-  IN ULONG ValueLength);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-
-#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
-NTSYSAPI
-VOID
-FASTCALL
-RtlPrefetchMemoryNonTemporal(
-  IN PVOID Source,
-  IN SIZE_T Length);
-#endif
-
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
+KeRegisterBugCheckCallback(
+  OUT PKBUGCHECK_CALLBACK_RECORD  CallbackRecord,
+  IN PKBUGCHECK_CALLBACK_ROUTINE  CallbackRoutine,
+  IN PVOID  Buffer,
+  IN ULONG  Length,
+  IN PUCHAR  Component);
 
 
+NTKERNELAPI
+LONG
+NTAPI
+KeReleaseMutex(
+  IN OUT PRKMUTEX  Mutex,
+  IN BOOLEAN  Wait);
 
 
-NTSYSAPI
-VOID
+NTKERNELAPI
+LONG
 NTAPI
 NTAPI
-RtlClearBit(
-  PRTL_BITMAP BitMapHeader,
-  ULONG BitNumber);
+KeReleaseSemaphore(
+  IN OUT PRKSEMAPHORE  Semaphore,
+  IN KPRIORITY  Increment,
+  IN LONG  Adjustment,
+  IN BOOLEAN  Wait);
 
 
-NTSYSAPI
-WCHAR
+NTKERNELAPI
+PKDEVICE_QUEUE_ENTRY
 NTAPI
 NTAPI
-RtlDowncaseUnicodeChar(
-  IN WCHAR SourceCharacter);
+KeRemoveByKeyDeviceQueue(
+  IN OUT PKDEVICE_QUEUE  DeviceQueue,
+  IN ULONG  SortKey);
 
 
-NTSYSAPI
-VOID
+NTKERNELAPI
+PKDEVICE_QUEUE_ENTRY
 NTAPI
 NTAPI
-RtlSetBit(
-  PRTL_BITMAP BitMapHeader,
-  ULONG BitNumber);
+KeRemoveDeviceQueue(
+  IN OUT PKDEVICE_QUEUE  DeviceQueue);
 
 
-NTSYSAPI
+NTKERNELAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-RtlTestBit(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG BitNumber);
+KeRemoveEntryDeviceQueue(
+  IN OUT PKDEVICE_QUEUE  DeviceQueue,
+  IN OUT PKDEVICE_QUEUE_ENTRY  DeviceQueueEntry);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlHashUnicodeString(
-  IN CONST UNICODE_STRING *String,
-  IN BOOLEAN CaseInSensitive,
-  IN ULONG HashAlgorithm,
-  OUT PULONG HashValue);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-
+KeRemoveQueueDpc(
+  IN OUT PRKDPC  Dpc);
 
 
-NTSYSAPI
-ULONG
+NTKERNELAPI
+LONG
 NTAPI
 NTAPI
-RtlNumberOfSetBitsUlongPtr(
-  IN ULONG_PTR Target);
+KeResetEvent(
+  IN OUT PRKEVENT  Event);
 
 
-NTSYSAPI
-ULONGLONG
+NTKERNELAPI
+LONG
 NTAPI
 NTAPI
-RtlIoDecodeMemIoResource(
-  IN struct _IO_RESOURCE_DESCRIPTOR *Descriptor,
-  OUT PULONGLONG Alignment OPTIONAL,
-  OUT PULONGLONG MinimumAddress OPTIONAL,
-  OUT PULONGLONG MaximumAddress OPTIONAL);
+KeSetEvent(
+  IN OUT PRKEVENT  Event,
+  IN KPRIORITY  Increment,
+  IN BOOLEAN  Wait);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-RtlIoEncodeMemIoResource(
-  IN struct _IO_RESOURCE_DESCRIPTOR *Descriptor,
-  IN UCHAR Type,
-  IN ULONGLONG Length,
-  IN ULONGLONG Alignment,
-  IN ULONGLONG MinimumAddress,
-  IN ULONGLONG MaximumAddress);
+KeSetImportanceDpc(
+  IN OUT PRKDPC  Dpc,
+  IN KDPC_IMPORTANCE  Importance);
 
 
-NTSYSAPI
-ULONGLONG
+NTKERNELAPI
+KPRIORITY
 NTAPI
 NTAPI
-RtlCmDecodeMemIoResource(
-  IN struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *Descriptor,
-  OUT PULONGLONG Start OPTIONAL);
+KeSetPriorityThread(
+  IN OUT PKTHREAD  Thread,
+  IN KPRIORITY  Priority);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlFindClosestEncodableLength(
-  IN ULONGLONG SourceLength,
-  OUT PULONGLONG TargetLength);
+KeSetTimer(
+  IN OUT PKTIMER  Timer,
+  IN LARGE_INTEGER  DueTime,
+  IN PKDPC  Dpc  OPTIONAL);
 
 
-NTSYSAPI
-NTSTATUS
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-RtlCmEncodeMemIoResource(
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
-  IN UCHAR Type,
-  IN ULONGLONG Length,
-  IN ULONGLONG Start);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-
+KeSetTimerEx(
+  IN OUT PKTIMER  Timer,
+  IN LARGE_INTEGER  DueTime,
+  IN LONG  Period  OPTIONAL,
+  IN PKDPC  Dpc  OPTIONAL);
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlUnicodeToUTF8N(
-  OUT PCHAR UTF8StringDestination,
-  IN ULONG UTF8StringMaxByteCount,
-  OUT PULONG UTF8StringActualByteCount,
-  IN PCWCH UnicodeStringSource,
-  IN ULONG UnicodeStringByteCount);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlUTF8ToUnicodeN(
-  OUT PWSTR UnicodeStringDestination,
-  IN ULONG UnicodeStringMaxByteCount,
-  OUT PULONG UnicodeStringActualByteCount,
-  IN PCCH UTF8StringSource,
-  IN ULONG UTF8StringByteCount);
-
-NTSYSAPI
-ULONG64
-NTAPI
-RtlGetEnabledExtendedFeatures(
-  IN ULONG64 FeatureMask);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-
-#if !defined(MIDL_PASS)
-/* inline funftions */
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlConvertLongToLargeInteger(
-  IN LONG SignedInteger)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = SignedInteger;
-  return ret;
-}
-
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlConvertUlongToLargeInteger(
-  IN ULONG UnsignedInteger)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = UnsignedInteger;
-  return ret;
-}
-
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerShiftLeft(
-  IN LARGE_INTEGER LargeInteger,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER Result;
-
-  Result.QuadPart = LargeInteger.QuadPart << ShiftCount;
-  return Result;
-}
-
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerShiftRight(
-  IN LARGE_INTEGER LargeInteger,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER Result;
-
-  Result.QuadPart = (ULONG64)LargeInteger.QuadPart >> ShiftCount;
-  return Result;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-ULONG
-NTAPI_INLINE
-RtlEnlargedUnsignedDivide(
-  IN ULARGE_INTEGER Dividend,
-  IN ULONG Divisor,
-  IN OUT PULONG Remainder)
-{
-  if (Remainder)
-    *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
-  return (ULONG)(Dividend.QuadPart / Divisor);
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerNegate(
-  IN LARGE_INTEGER Subtrahend)
-{
-  LARGE_INTEGER Difference;
-
-  Difference.QuadPart = -Subtrahend.QuadPart;
-  return Difference;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerSubtract(
-  IN LARGE_INTEGER Minuend,
-  IN LARGE_INTEGER Subtrahend)
-{
-  LARGE_INTEGER Difference;
-
-  Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
-  return Difference;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlEnlargedUnsignedMultiply(
-  IN ULONG Multiplicand,
-  IN ULONG Multiplier)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier;
-  return ret;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlEnlargedIntegerMultiply(
-  IN LONG Multiplicand,
-  IN LONG Multiplier)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier;
-  return ret;
-}
-
-FORCEINLINE
-VOID
-RtlInitEmptyAnsiString(
-  OUT PANSI_STRING AnsiString,
-  IN PCHAR Buffer,
-  IN USHORT BufferSize)
-{
-  AnsiString->Length = 0;
-  AnsiString->MaximumLength = BufferSize;
-  AnsiString->Buffer = Buffer;
-}
-
-FORCEINLINE
-VOID
-RtlInitEmptyUnicodeString(
-  OUT PUNICODE_STRING UnicodeString,
-  IN PWSTR Buffer,
-  IN USHORT BufferSize)
-{
-  UnicodeString->Length = 0;
-  UnicodeString->MaximumLength = BufferSize;
-  UnicodeString->Buffer = Buffer;
-}
-
-#if defined(_AMD64_) || defined(_IA64_)
-
-
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlExtendedIntegerMultiply(
-  IN LARGE_INTEGER Multiplicand,
-  IN LONG Multiplier)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = Multiplicand.QuadPart * Multiplier;
-  return ret;
-}
-
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlExtendedLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN ULONG Divisor,
-  OUT PULONG Remainder OPTIONAL)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = (ULONG64)Dividend.QuadPart / Divisor;
-  if (Remainder)
-    *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
-  return ret;
-}
-
-
-
-#endif /* defined(_AMD64_) || defined(_IA64_) */
-
-
-#if defined(_AMD64_)
-
-#define MultiplyHigh __mulh
-#define UnsignedMultiplyHigh __umulh
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlExtendedMagicDivide(
-  IN LARGE_INTEGER Dividend,
-  IN LARGE_INTEGER MagicDivisor,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER ret;
-  ULONG64 ret64;
-  BOOLEAN Pos;
-  Pos = (Dividend.QuadPart >= 0);
-  ret64 = UnsignedMultiplyHigh(Pos ? Dividend.QuadPart : -Dividend.QuadPart,
-                               MagicDivisor.QuadPart);
-  ret64 >>= ShiftCount;
-  ret.QuadPart = Pos ? ret64 : -ret64;
-  return ret;
-}
-#endif
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerAdd(
-  IN LARGE_INTEGER Addend1,
-  IN LARGE_INTEGER Addend2)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
-  return ret;
-}
-
-/* VOID
- * RtlLargeIntegerAnd(
- *     IN OUT LARGE_INTEGER Result,
- *     IN LARGE_INTEGER Source,
- *     IN LARGE_INTEGER Mask);
- */
-#define RtlLargeIntegerAnd(Result, Source, Mask) \
-    Result.QuadPart = Source.QuadPart & Mask.QuadPart
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerArithmeticShift(
-  IN LARGE_INTEGER LargeInteger,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = LargeInteger.QuadPart >> ShiftCount;
-  return ret;
-}
-
-/* BOOLEAN
- * RtlLargeIntegerEqualTo(
- *     IN LARGE_INTEGER  Operand1,
- *     IN LARGE_INTEGER  Operand2);
- */
-#define RtlLargeIntegerEqualTo(X,Y) \
-    (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
-
-FORCEINLINE
-PVOID
-RtlSecureZeroMemory(
-  OUT PVOID Pointer,
-  IN SIZE_T Size)
-{
-  volatile char* vptr = (volatile char*)Pointer;
-#if defined(_M_AMD64)
-  __stosb((PUCHAR)vptr, 0, Size);
-#else
-  char * endptr = (char *)vptr + Size;
-  while (vptr < endptr) {
-    *vptr = 0; vptr++;
-  }
-#endif
-   return Pointer;
-}
-
-#if defined(_M_AMD64)
-FORCEINLINE
-BOOLEAN
-RtlCheckBit(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG BitPosition)
-{
-  return BitTest64((LONG64 CONST*)BitMapHeader->Buffer, (LONG64)BitPosition);
-}
-#else
-#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
-#endif /* defined(_M_AMD64) */
-
-#define RtlLargeIntegerGreaterThan(X,Y) (                              \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
-    ((X).HighPart > (Y).HighPart)                                      \
-)
-
-#define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) (                      \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
-    ((X).HighPart > (Y).HighPart)                                       \
-)
-
-#define RtlLargeIntegerNotEqualTo(X,Y) (                          \
-    (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \
-)
-
-#define RtlLargeIntegerLessThan(X,Y) (                                 \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
-    ((X).HighPart < (Y).HighPart)                                      \
-)
-
-#define RtlLargeIntegerLessThanOrEqualTo(X,Y) (                         \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
-    ((X).HighPart < (Y).HighPart)                                       \
-)
-
-#define RtlLargeIntegerGreaterThanZero(X) (       \
-    (((X).HighPart == 0) && ((X).LowPart > 0)) || \
-    ((X).HighPart > 0 )                           \
-)
-
-#define RtlLargeIntegerGreaterOrEqualToZero(X) ( (X).HighPart >= 0 )
-
-#define RtlLargeIntegerEqualToZero(X) ( !((X).LowPart | (X).HighPart) )
-
-#define RtlLargeIntegerNotEqualToZero(X) ( ((X).LowPart | (X).HighPart) )
-
-#define RtlLargeIntegerLessThanZero(X) ( ((X).HighPart < 0) )
-
-#define RtlLargeIntegerLessOrEqualToZero(X) ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )
-
-#endif /* !defined(MIDL_PASS) */
-
-/* Byte Swap Functions */
-#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037 || defined(__GNUC__))) || \
-    ((defined(_M_AMD64) || defined(_M_IA64)) \
-        && (_MSC_FULL_VER > 13009175 || defined(__GNUC__)))
-
-#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
-#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
-#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
-
-#endif
-
-#if DBG
-
-#define ASSERT(exp) \
-  (VOID)((!(exp)) ? \
-    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
-
-#define ASSERTMSG(msg, exp) \
-  (VOID)((!(exp)) ? \
-    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, msg ), FALSE : TRUE)
-
-#define RTL_SOFT_ASSERT(exp) \
-  (VOID)((!(exp)) ? \
-    DbgPrint("%s(%d): Soft assertion failed\n   Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
-
-#define RTL_SOFT_ASSERTMSG(msg, exp) \
-  (VOID)((!(exp)) ? \
-    DbgPrint("%s(%d): Soft assertion failed\n   Expression: %s\n   Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
-
-#define RTL_VERIFY(exp) ASSERT(exp)
-#define RTL_VERIFYMSG(msg, exp) ASSERTMSG(msg, exp)
-
-#define RTL_SOFT_VERIFY(exp) RTL_SOFT_ASSERT(exp)
-#define RTL_SOFT_VERIFYMSG(msg, exp) RTL_SOFT_ASSERTMSG(msg, exp)
-
-#if defined(_MSC_VER)
-
-#define NT_ASSERT(exp) \
-   ((!(exp)) ? \
-      (__annotation(L"Debug", L"AssertFail", L#exp), \
-       DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_ASSERTMSG(msg, exp) \
-   ((!(exp)) ? \
-      (__annotation(L"Debug", L"AssertFail", L##msg), \
-      DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_ASSERTMSGW(msg, exp) \
-    ((!(exp)) ? \
-        (__annotation(L"Debug", L"AssertFail", msg), \
-         DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_VERIFY     NT_ASSERT
-#define NT_VERIFYMSG  NT_ASSERTMSG
-#define NT_VERIFYMSGW NT_ASSERTMSGW
-
-#else
-
-/* GCC doesn't support __annotation (nor PDB) */
-#define NT_ASSERT(exp) \
-   (VOID)((!(exp)) ? (DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_ASSERTMSG NT_ASSERT
-#define NT_ASSERTMSGW NT_ASSERT
-
-#endif
-
-#else /* !DBG */
-
-#define ASSERT(exp) ((VOID) 0)
-#define ASSERTMSG(msg, exp) ((VOID) 0)
-
-#define RTL_SOFT_ASSERT(exp) ((VOID) 0)
-#define RTL_SOFT_ASSERTMSG(msg, exp) ((VOID) 0)
-
-#define RTL_VERIFY(exp) ((exp) ? TRUE : FALSE)
-#define RTL_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
-
-#define RTL_SOFT_VERIFY(exp) ((exp) ? TRUE : FALSE)
-#define RTL_SOFT_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
-
-#define NT_ASSERT(exp)          ((VOID)0)
-#define NT_ASSERTMSG(msg, exp)  ((VOID)0)
-#define NT_ASSERTMSGW(msg, exp) ((VOID)0)
-
-#define NT_VERIFY(_exp)           ((_exp) ? TRUE : FALSE)
-#define NT_VERIFYMSG(_msg, _exp ) ((_exp) ? TRUE : FALSE)
-#define NT_VERIFYMSGW(_msg, _exp) ((_exp) ? TRUE : FALSE)
-
-#endif /* DBG */
-
-#define InitializeListHead32(ListHead) (\
-    (ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead)))
-
-#if !defined(_WINBASE_)
-
-#if defined(_WIN64) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_NTOSP_))
-
-NTKERNELAPI
-VOID
-InitializeSListHead(
-  OUT PSLIST_HEADER SListHead);
-
-#else
-
-VOID
-FORCEINLINE
-InitializeSListHead(
-  OUT PSLIST_HEADER SListHead)
-{
-#if defined(_IA64_)
-  ULONG64 FeatureBits;
-#endif
-
-#if defined(_WIN64)
-  if (((ULONG_PTR)SListHead & 0xf) != 0) {
-    RtlRaiseStatus(STATUS_DATATYPE_MISALIGNMENT);
-  }
-#endif
-  RtlZeroMemory(SListHead, sizeof(SLIST_HEADER));
-#if defined(_IA64_)
-  FeatureBits = __getReg(CV_IA64_CPUID4);
-  if ((FeatureBits & KF_16BYTE_INSTR) != 0) {
-    SListHead->Header16.HeaderType = 1;
-    SListHead->Header16.Init = 1;
-  }
-#endif
-}
-
-#endif
-
-#if defined(_WIN64)
-
-#define InterlockedPopEntrySList(Head) \
-    ExpInterlockedPopEntrySList(Head)
-
-#define InterlockedPushEntrySList(Head, Entry) \
-    ExpInterlockedPushEntrySList(Head, Entry)
-
-#define InterlockedFlushSList(Head) \
-    ExpInterlockedFlushSList(Head)
-
-#define QueryDepthSList(Head) \
-    ExQueryDepthSList(Head)
-
-#else /* !defined(_WIN64) */
-
-NTKERNELAPI
-PSLIST_ENTRY
-FASTCALL
-InterlockedPopEntrySList(
-  IN PSLIST_HEADER ListHead);
-
-NTKERNELAPI
-PSLIST_ENTRY
-FASTCALL
-InterlockedPushEntrySList(
-  IN PSLIST_HEADER ListHead,
-  IN PSLIST_ENTRY ListEntry);
-
-#define InterlockedFlushSList(ListHead) \
-    ExInterlockedFlushSList(ListHead)
-
-#define QueryDepthSList(Head) \
-    ExQueryDepthSList(Head)
-
-#endif /* !defined(_WIN64) */
-
-#endif /* !defined(_WINBASE_) */
-
-#define RTL_CONTEXT_EX_OFFSET(ContextEx, Chunk) ((ContextEx)->Chunk.Offset)
-#define RTL_CONTEXT_EX_LENGTH(ContextEx, Chunk) ((ContextEx)->Chunk.Length)
-#define RTL_CONTEXT_EX_CHUNK(Base, Layout, Chunk)       \
-    ((PVOID)((PCHAR)(Base) + RTL_CONTEXT_EX_OFFSET(Layout, Chunk)))
-#define RTL_CONTEXT_OFFSET(Context, Chunk)              \
-    RTL_CONTEXT_EX_OFFSET((PCONTEXT_EX)(Context + 1), Chunk)
-#define RTL_CONTEXT_LENGTH(Context, Chunk)              \
-    RTL_CONTEXT_EX_LENGTH((PCONTEXT_EX)(Context + 1), Chunk)
-#define RTL_CONTEXT_CHUNK(Context, Chunk)               \
-    RTL_CONTEXT_EX_CHUNK((PCONTEXT_EX)(Context + 1),    \
-                         (PCONTEXT_EX)(Context + 1),    \
-                         Chunk)
-
-BOOLEAN
-RTLVERLIB_DDI(RtlIsNtDdiVersionAvailable)(
-  IN ULONG Version);
-
-BOOLEAN
-RTLVERLIB_DDI(RtlIsServicePackVersionInstalled)(
-  IN ULONG Version);
-
-#ifndef RtlIsNtDdiVersionAvailable
-#define RtlIsNtDdiVersionAvailable WdmlibRtlIsNtDdiVersionAvailable
-#endif
-
-#ifndef RtlIsServicePackVersionInstalled
-#define RtlIsServicePackVersionInstalled WdmlibRtlIsServicePackVersionInstalled
-#endif
-
-#define RtlInterlockedSetBits(Flags, Flag) \
-    InterlockedOr((PLONG)(Flags), Flag)
-
-#define RtlInterlockedAndBits(Flags, Flag) \
-    InterlockedAnd((PLONG)(Flags), Flag)
-
-#define RtlInterlockedClearBits(Flags, Flag) \
-    RtlInterlockedAndBits(Flags, ~(Flag))
-
-#define RtlInterlockedXorBits(Flags, Flag) \
-    InterlockedXor(Flags, Flag)
-
-#define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \
-    (VOID) RtlInterlockedSetBits(Flags, Flag)
-
-#define RtlInterlockedAndBitsDiscardReturn(Flags, Flag) \
-    (VOID) RtlInterlockedAndBits(Flags, Flag)
-
-#define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \
-    RtlInterlockedAndBitsDiscardReturn(Flags, ~(Flag))
-
-
-/******************************************************************************
- *                              Kernel Functions                              *
- ******************************************************************************/
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeEvent(
-  OUT PRKEVENT Event,
-  IN EVENT_TYPE Type,
-  IN BOOLEAN State);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeClearEvent(
-  IN OUT PRKEVENT Event);
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-
-#if defined(_NTDDK_) || defined(_NTIFS_)
-NTKERNELAPI
-VOID
-NTAPI
-ProbeForRead(
-  IN CONST VOID *Address, /* CONST is added */
-  IN SIZE_T Length,
-  IN ULONG Alignment);
-#endif /* defined(_NTDDK_) || defined(_NTIFS_) */
-
-NTKERNELAPI
-VOID
-NTAPI
-ProbeForWrite(
-  IN PVOID Address,
-  IN SIZE_T Length,
-  IN ULONG Alignment);
-
-
-#if defined(SINGLE_GROUP_LEGACY_API)
-
-NTKERNELAPI
-VOID
-NTAPI
-KeRevertToUserAffinityThread(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetSystemAffinityThread(
-  IN KAFFINITY Affinity);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetTargetProcessorDpc(
-  IN OUT PRKDPC Dpc,
-  IN CCHAR Number);
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryActiveProcessors(VOID);
-
-
-#endif /* defined(SINGLE_GROUP_LEGACY_API) */
-
-#if !defined(_M_AMD64)
-NTKERNELAPI
-ULONGLONG
-NTAPI
-KeQueryInterruptTime(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeQuerySystemTime(
-  OUT PLARGE_INTEGER CurrentTime);
-#endif /* !_M_AMD64 */
-
-#if !defined(_X86_)
-NTKERNELAPI
-KIRQL
-NTAPI
-KeAcquireSpinLockRaiseToDpc(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-#define KeAcquireSpinLock(SpinLock, OldIrql) \
-    *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
-
-NTKERNELAPI
-VOID
-NTAPI
-KeAcquireSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeReleaseSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock,
-  IN KIRQL NewIrql);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeReleaseSpinLockFromDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-#endif /* !_X86_ */
-
-#if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeSpinLock(
-  IN PKSPIN_LOCK SpinLock);
-#else
-FORCEINLINE
-VOID
-KeInitializeSpinLock(IN PKSPIN_LOCK SpinLock)
-{
-  /* Clear the lock */
-  *SpinLock = 0;
-}
-#endif
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-KeBugCheckEx(
-  IN ULONG BugCheckCode,
-  IN ULONG_PTR BugCheckParameter1,
-  IN ULONG_PTR BugCheckParameter2,
-  IN ULONG_PTR BugCheckParameter3,
-  IN ULONG_PTR BugCheckParameter4);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeCancelTimer(
-  IN OUT PKTIMER);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeDelayExecutionThread(
-  IN KPROCESSOR_MODE WaitMode,
-  IN BOOLEAN Alertable,
-  IN PLARGE_INTEGER Interval);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeDeregisterBugCheckCallback(
-  IN OUT PKBUGCHECK_CALLBACK_RECORD CallbackRecord);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeEnterCriticalRegion(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeDeviceQueue(
-  OUT PKDEVICE_QUEUE DeviceQueue);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeDpc(
-  OUT PRKDPC Dpc,
-  IN PKDEFERRED_ROUTINE DeferredRoutine,
-  IN PVOID DeferredContext OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeMutex(
-  OUT PRKMUTEX Mutex,
-  IN ULONG Level);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeSemaphore(
-  OUT PRKSEMAPHORE Semaphore,
-  IN LONG Count,
-  IN LONG Limit);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeTimer(
-  OUT PKTIMER Timer);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeTimerEx(
-  OUT PKTIMER Timer,
-  IN TIMER_TYPE Type);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInsertByKeyDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN OUT PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
-  IN ULONG SortKey);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInsertDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN OUT PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInsertQueueDpc(
-  IN OUT PRKDPC Dpc,
-  IN PVOID SystemArgument1 OPTIONAL,
-  IN PVOID SystemArgument2 OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeLeaveCriticalRegion(VOID);
-
-NTHALAPI
-LARGE_INTEGER
-NTAPI
-KeQueryPerformanceCounter(
-  OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL);
-
-NTKERNELAPI
-KPRIORITY
-NTAPI
-KeQueryPriorityThread(
-  IN PRKTHREAD Thread);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryTimeIncrement(VOID);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReadStateEvent(
-  IN PRKEVENT Event);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReadStateMutex(
-  IN PRKMUTEX Mutex);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReadStateSemaphore(
-  IN PRKSEMAPHORE Semaphore);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeReadStateTimer(
-  IN PKTIMER Timer);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRegisterBugCheckCallback(
-  OUT PKBUGCHECK_CALLBACK_RECORD CallbackRecord,
-  IN PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine,
-  IN PVOID Buffer,
-  IN ULONG Length,
-  IN PUCHAR Component);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReleaseMutex(
-  IN OUT PRKMUTEX Mutex,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReleaseSemaphore(
-  IN OUT PRKSEMAPHORE Semaphore,
-  IN KPRIORITY Increment,
-  IN LONG Adjustment,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-PKDEVICE_QUEUE_ENTRY
-NTAPI
-KeRemoveByKeyDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN ULONG SortKey);
-
-NTKERNELAPI
-PKDEVICE_QUEUE_ENTRY
-NTAPI
-KeRemoveDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRemoveEntryDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN OUT PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRemoveQueueDpc(
-  IN OUT PRKDPC Dpc);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeResetEvent(
-  IN OUT PRKEVENT Event);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeSetEvent(
-  IN OUT PRKEVENT Event,
-  IN KPRIORITY Increment,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetImportanceDpc(
-  IN OUT PRKDPC Dpc,
-  IN KDPC_IMPORTANCE Importance);
-
-NTKERNELAPI
-KPRIORITY
-NTAPI
-KeSetPriorityThread(
-  IN OUT PKTHREAD Thread,
-  IN KPRIORITY Priority);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSetTimer(
-  IN OUT PKTIMER Timer,
-  IN LARGE_INTEGER DueTime,
-  IN PKDPC Dpc OPTIONAL);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSetTimerEx(
-  IN OUT PKTIMER Timer,
-  IN LARGE_INTEGER DueTime,
-  IN LONG Period OPTIONAL,
-  IN PKDPC Dpc OPTIONAL);
-
-NTHALAPI
-VOID
-NTAPI
-KeStallExecutionProcessor(
-  IN ULONG MicroSeconds);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSynchronizeExecution(
-  IN OUT PKINTERRUPT Interrupt,
-  IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
-  IN PVOID SynchronizeContext OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeWaitForMultipleObjects(
-  IN ULONG Count,
-  IN PVOID Object[],
-  IN WAIT_TYPE WaitType,
-  IN KWAIT_REASON WaitReason,
-  IN KPROCESSOR_MODE WaitMode,
-  IN BOOLEAN Alertable,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  OUT PKWAIT_BLOCK WaitBlockArray OPTIONAL);
-
-#define KeWaitForMutexObject KeWaitForSingleObject
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeWaitForSingleObject(
-  IN PVOID Object,
-  IN KWAIT_REASON WaitReason,
-  IN KPROCESSOR_MODE WaitMode,
-  IN BOOLEAN Alertable,
-  IN PLARGE_INTEGER Timeout OPTIONAL);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-_DECL_HAL_KE_IMPORT
-VOID
-FASTCALL
-KeAcquireInStackQueuedSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock,
-  OUT PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireInStackQueuedSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock,
-  OUT PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-KIRQL
-NTAPI
-KeAcquireInterruptSpinLock(
-  IN OUT PKINTERRUPT Interrupt);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeAreApcsDisabled(VOID);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeGetRecommendedSharedDataAlignment(VOID);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryRuntimeThread(
-  IN PKTHREAD Thread,
-  OUT PULONG UserTime);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseInStackQueuedSpinLockFromDpcLevel(
-  IN PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeReleaseInterruptSpinLock(
-  IN OUT PKINTERRUPT Interrupt,
-  IN KIRQL OldIrql);
-
-NTKERNELAPI
-PKDEVICE_QUEUE_ENTRY
-NTAPI
-KeRemoveByKeyDeviceQueueIfBusy(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN ULONG SortKey);
-
-_DECL_HAL_KE_IMPORT
-VOID
-FASTCALL
-KeReleaseInStackQueuedSpinLock(
-  IN PKLOCK_QUEUE_HANDLE LockHandle);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeDeregisterBugCheckReasonCallback(
-  IN OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRegisterBugCheckReasonCallback(
-  OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
-  IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
-  IN KBUGCHECK_CALLBACK_REASON Reason,
-  IN PUCHAR Component);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP1) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
-NTKERNELAPI
-VOID
-NTAPI
-KeFlushQueuedDpcs(VOID);
-#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-
-NTKERNELAPI
-PVOID
-NTAPI
-KeRegisterNmiCallback(
-  IN PNMI_CALLBACK CallbackRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeDeregisterNmiCallback(
-  IN PVOID Handle);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeThreadedDpc(
-  OUT PRKDPC Dpc,
-  IN PKDEFERRED_ROUTINE DeferredRoutine,
-  IN PVOID DeferredContext OPTIONAL);
-
-NTKERNELAPI
-ULONG_PTR
-NTAPI
-KeIpiGenericCall(
-  IN PKIPI_BROADCAST_WORKER BroadcastFunction,
-  IN ULONG_PTR Context);
-
-NTKERNELAPI
-KIRQL
-FASTCALL
-KeAcquireSpinLockForDpc(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseSpinLockForDpc(
-  IN OUT PKSPIN_LOCK SpinLock,
-  IN KIRQL OldIrql);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-KeTestSpinLock(
-  IN PKSPIN_LOCK SpinLock);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-KeTryToAcquireSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeAreAllApcsDisabled(VOID);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireGuardedMutex(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireGuardedMutexUnsafe(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeEnterGuardedRegion(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeLeaveGuardedRegion(VOID);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeInitializeGuardedMutex(
-  OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseGuardedMutexUnsafe(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseGuardedMutex(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-KeTryToAcquireGuardedMutex(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireInStackQueuedSpinLockForDpc(
-  IN OUT PKSPIN_LOCK SpinLock,
-  OUT PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseInStackQueuedSpinLockForDpc(
-  IN PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryDpcWatchdogInformation(
-  OUT PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
-
-#if defined(SINGLE_GROUP_LEGACY_API)
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeSetSystemAffinityThreadEx(
-  IN KAFFINITY Affinity);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeRevertToUserAffinityThreadEx(
-  IN KAFFINITY Affinity);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryActiveProcessorCount(
-  OUT PKAFFINITY ActiveProcessors OPTIONAL);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCount(VOID);
-#endif /* SINGLE_GROUP_LEGACY_API */
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WS08)
-
-PVOID
-KeRegisterProcessorChangeCallback(
-  IN PPROCESSOR_CALLBACK_FUNCTION CallbackFunction,
-  IN PVOID CallbackContext OPTIONAL,
-  IN ULONG Flags);
-
-VOID
-KeDeregisterProcessorChangeCallback(
-  IN PVOID CallbackHandle);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS08) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-
-ULONG64
-NTAPI
-KeQueryTotalCycleTimeProcess(
-  IN OUT PKPROCESS Process,
-  OUT PULONG64 CycleTimeStamp);
-
-ULONG64
-NTAPI
-KeQueryTotalCycleTimeThread(
-  IN OUT PKTHREAD Thread,
-  OUT PULONG64 CycleTimeStamp);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSetTargetProcessorDpcEx(
-  IN OUT PKDPC Dpc,
-  IN PPROCESSOR_NUMBER ProcNumber);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetSystemGroupAffinityThread(
-  IN PGROUP_AFFINITY Affinity,
-  OUT PGROUP_AFFINITY PreviousAffinity OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeRevertToUserGroupAffinityThread(
-  IN PGROUP_AFFINITY PreviousAffinity);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSetCoalescableTimer(
-  IN OUT PKTIMER Timer,
-  IN LARGE_INTEGER DueTime,
-  IN ULONG Period,
-  IN ULONG TolerableDelay,
-  IN PKDPC Dpc OPTIONAL);
-
-NTKERNELAPI
-ULONGLONG
-NTAPI
-KeQueryUnbiasedInterruptTime(VOID);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryActiveProcessorCountEx(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCountEx(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryActiveGroupCount(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryMaximumGroupCount(VOID);
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryGroupAffinity(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeGetCurrentProcessorNumberEx(
-  OUT PPROCESSOR_NUMBER ProcNumber OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeQueryNodeActiveAffinity(
-  IN USHORT NodeNumber,
-  OUT PGROUP_AFFINITY Affinity OPTIONAL,
-  OUT PUSHORT Count OPTIONAL);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryNodeMaximumProcessorCount(
-  IN USHORT NodeNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryHighestNodeNumber(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeGetCurrentNodeNumber(VOID);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryLogicalProcessorRelationship(
-  IN PPROCESSOR_NUMBER ProcessorNumber OPTIONAL,
-  IN LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
-  OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information OPTIONAL,
-  IN OUT PULONG Length);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSaveExtendedProcessorState(
-  IN ULONG64 Mask,
-  OUT PXSTATE_SAVE XStateSave);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeRestoreExtendedProcessorState(
-  IN PXSTATE_SAVE XStateSave);
-
-NTSTATUS
-NTAPI
-KeGetProcessorNumberFromIndex(
-  IN ULONG ProcIndex,
-  OUT PPROCESSOR_NUMBER ProcNumber);
-
-ULONG
-NTAPI
-KeGetProcessorIndexFromNumber(
-  IN PPROCESSOR_NUMBER ProcNumber);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#if !defined(_IA64_)
-NTHALAPI
-VOID
-NTAPI
-KeFlushWriteBuffer(VOID);
-#endif
-
-/* VOID
- * KeInitializeCallbackRecord(
- *   IN PKBUGCHECK_CALLBACK_RECORD  CallbackRecord)
- */
-#define KeInitializeCallbackRecord(CallbackRecord) \
-  CallbackRecord->State = BufferEmpty;
-
-#if DBG
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#define PAGED_ASSERT( exp ) NT_ASSERT( exp )
-#else
-#define PAGED_ASSERT( exp ) ASSERT( exp )
-#endif
-
-#define PAGED_CODE() { \
-  if (KeGetCurrentIrql() > APC_LEVEL) { \
-    KdPrint( ("NTDDK: Pageable code called at IRQL > APC_LEVEL (%d)\n", KeGetCurrentIrql() )); \
-    PAGED_ASSERT(FALSE); \
-  } \
-}
-
-#else
-
-#define PAGED_CODE()
-
-#endif /* DBG */
-
-#define PAGED_CODE_LOCKED() NOP_FUNCTION;
-
-/******************************************************************************
- *                       Memory manager Functions                             *
- ******************************************************************************/
-/* Alignment Macros */
-#define ALIGN_DOWN_BY(size, align) \
-    ((ULONG_PTR)(size) & ~((ULONG_PTR)(align) - 1))
-
-#define ALIGN_UP_BY(size, align) \
-    (ALIGN_DOWN_BY(((ULONG_PTR)(size) + align - 1), align))
-
-#define ALIGN_DOWN_POINTER_BY(ptr, align) \
-    ((PVOID)ALIGN_DOWN_BY(ptr, align))
-
-#define ALIGN_UP_POINTER_BY(ptr, align) \
-    ((PVOID)ALIGN_UP_BY(ptr, align))
-
-#define ALIGN_DOWN(size, type) \
-    ALIGN_DOWN_BY(size, sizeof(type))
-
-#define ALIGN_UP(size, type) \
-    ALIGN_UP_BY(size, sizeof(type))
-
-#define ALIGN_DOWN_POINTER(ptr, type) \
-    ALIGN_DOWN_POINTER_BY(ptr, sizeof(type))
-
-#define ALIGN_UP_POINTER(ptr, type) \
-    ALIGN_UP_POINTER_BY(ptr, sizeof(type))
-
-#ifndef FIELD_OFFSET
-#define FIELD_OFFSET(type, field) ((ULONG)&(((type *)0)->field))
-#endif
-
-#ifndef FIELD_SIZE
-#define FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
-#endif
-
-#define POOL_TAGGING                             1
-
-#if DBG
-#define IF_DEBUG if (TRUE)
-#else
-#define IF_DEBUG if (FALSE)
-#endif /* DBG */
-
-/* ULONG
- * BYTE_OFFSET(
- *   IN PVOID Va)
- */
-#define BYTE_OFFSET(Va) \
-  ((ULONG) ((ULONG_PTR) (Va) & (PAGE_SIZE - 1)))
-
-/* ULONG
- * BYTES_TO_PAGES(
- *   IN ULONG Size)
- */
-#define BYTES_TO_PAGES(Size) \
-  (((Size) + PAGE_SIZE - 1) >> PAGE_SHIFT)
-
-/* PVOID
- * PAGE_ALIGN(
- *   IN PVOID Va)
- */
-#define PAGE_ALIGN(Va) \
-  ((PVOID) ((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1)))
-
-/* ULONG_PTR
- * ROUND_TO_PAGES(
- *   IN ULONG_PTR Size)
- */
-#define ROUND_TO_PAGES(Size) \
-  (((ULONG_PTR) (Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
-
-/* ULONG
- * ADDRESS_AND_SIZE_TO_SPAN_PAGES(
- *   IN PVOID Va,
- *   IN ULONG Size)
- */
-#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size) \
-  ((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
-    + (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
-
-#define COMPUTE_PAGES_SPANNED(Va, Size) \
-    ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size)
-
-/*
- * ULONG
- * MmGetMdlByteCount(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlByteCount(_Mdl) \
-  ((_Mdl)->ByteCount)
-
-/*
- * ULONG
- * MmGetMdlByteOffset(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlByteOffset(_Mdl) \
-  ((_Mdl)->ByteOffset)
-
-#define MmGetMdlBaseVa(Mdl) ((Mdl)->StartVa)
-
-/*
- * PPFN_NUMBER
- * MmGetMdlPfnArray(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlPfnArray(_Mdl) \
-  ((PPFN_NUMBER) ((_Mdl) + 1))
-
-/*
- * PVOID
- * MmGetMdlVirtualAddress(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlVirtualAddress(_Mdl) \
-  ((PVOID) ((PCHAR) ((_Mdl)->StartVa) + (_Mdl)->ByteOffset))
-
-#define MmGetProcedureAddress(Address) (Address)
-
-/* PVOID MmGetSystemAddressForMdl(
- *     IN PMDL Mdl);
- */
-#define MmGetSystemAddressForMdl(Mdl) \
-  (((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \
-    MDL_SOURCE_IS_NONPAGED_POOL)) ? \
-      ((Mdl)->MappedSystemVa) : \
-      (MmMapLockedPages((Mdl), KernelMode)))
-
-/* PVOID
- * MmGetSystemAddressForMdlSafe(
- *     IN PMDL Mdl,
- *     IN MM_PAGE_PRIORITY Priority)
- */
-#define MmGetSystemAddressForMdlSafe(_Mdl, _Priority) \
-  (((_Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA \
-    | MDL_SOURCE_IS_NONPAGED_POOL)) ? \
-    (_Mdl)->MappedSystemVa : \
-    (PVOID) MmMapLockedPagesSpecifyCache((_Mdl), \
-      KernelMode, MmCached, NULL, FALSE, (_Priority)))
-
-/*
- * VOID
- * MmInitializeMdl(
- *   IN PMDL  MemoryDescriptorList,
- *   IN PVOID  BaseVa,
- *   IN SIZE_T  Length)
- */
-#define MmInitializeMdl(_MemoryDescriptorList, \
-                        _BaseVa, \
-                        _Length) \
-{ \
-  (_MemoryDescriptorList)->Next = (PMDL) NULL; \
-  (_MemoryDescriptorList)->Size = (CSHORT) (sizeof(MDL) + \
-    (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES(_BaseVa, _Length))); \
-  (_MemoryDescriptorList)->MdlFlags = 0; \
-  (_MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN(_BaseVa); \
-  (_MemoryDescriptorList)->ByteOffset = BYTE_OFFSET(_BaseVa); \
-  (_MemoryDescriptorList)->ByteCount = (ULONG) _Length; \
-}
-
-/*
- * VOID
- * MmPrepareMdlForReuse(
- *   IN PMDL  Mdl)
- */
-#define MmPrepareMdlForReuse(_Mdl) \
-{ \
-  if (((_Mdl)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \
-    ASSERT(((_Mdl)->MdlFlags & MDL_PARTIAL) != 0); \
-    MmUnmapLockedPages((_Mdl)->MappedSystemVa, (_Mdl)); \
-  } else if (((_Mdl)->MdlFlags & MDL_PARTIAL) == 0) { \
-    ASSERT(((_Mdl)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \
-  } \
-}
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemory(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemorySpecifyCache(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-PMDL
-NTAPI
-MmAllocatePagesForMdl(
-  IN PHYSICAL_ADDRESS LowAddress,
-  IN PHYSICAL_ADDRESS HighAddress,
-  IN PHYSICAL_ADDRESS SkipBytes,
-  IN SIZE_T TotalBytes);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmBuildMdlForNonPagedPool(
-  IN OUT PMDLX MemoryDescriptorList);
-
-//DECLSPEC_DEPRECATED_DDK
-NTKERNELAPI
-PMDL
-NTAPI
-MmCreateMdl(
-  IN PMDL MemoryDescriptorList OPTIONAL,
-  IN PVOID Base,
-  IN SIZE_T Length);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemory(
-  IN PVOID BaseAddress);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemorySpecifyCache(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreePagesFromMdl(
-  IN PMDLX MemoryDescriptorList);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmGetSystemRoutineAddress(
-  IN PUNICODE_STRING SystemRoutineName);
-
-NTKERNELAPI
-LOGICAL
-NTAPI
-MmIsDriverVerifying(
-  IN struct _DRIVER_OBJECT *DriverObject);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmLockPagableDataSection(
-  IN PVOID AddressWithinSection);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapIoSpace(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheEnable);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPages(
-  IN PMDL MemoryDescriptorList,
-  IN KPROCESSOR_MODE AccessMode);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPagesSpecifyCache(
-  IN PMDLX MemoryDescriptorList,
-  IN KPROCESSOR_MODE AccessMode,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN PVOID BaseAddress OPTIONAL,
-  IN ULONG BugCheckOnFailure,
-  IN MM_PAGE_PRIORITY Priority);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmPageEntireDriver(
-  IN PVOID AddressWithinSection);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmProbeAndLockPages(
-  IN OUT PMDL MemoryDescriptorList,
-  IN KPROCESSOR_MODE AccessMode,
-  IN LOCK_OPERATION Operation);
-
-NTKERNELAPI
-MM_SYSTEMSIZE
-NTAPI
-MmQuerySystemSize(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmResetDriverPaging(
-  IN PVOID AddressWithinSection);
-
-NTKERNELAPI
-SIZE_T
-NTAPI
-MmSizeOfMdl(
-  IN PVOID Base,
-  IN SIZE_T Length);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnlockPagableImageSection(
-  IN PVOID ImageSectionHandle);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnlockPages(
-  IN OUT PMDL MemoryDescriptorList);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapIoSpace(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmProbeAndLockProcessPages(
-  IN OUT PMDL MemoryDescriptorList,
-  IN PEPROCESS Process,
-  IN KPROCESSOR_MODE AccessMode,
-  IN LOCK_OPERATION Operation);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapLockedPages(
-  IN PVOID BaseAddress,
-  IN PMDL MemoryDescriptorList);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemorySpecifyCacheNode(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN NODE_REQUIREMENT PreferredNode);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAdvanceMdl(
-  IN OUT PMDL Mdl,
-  IN ULONG NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateMappingAddress(
-  IN SIZE_T NumberOfBytes,
-  IN ULONG PoolTag);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeMappingAddress(
-  IN PVOID BaseAddress,
-  IN ULONG PoolTag);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmIsVerifierEnabled(
-  OUT PULONG VerifierFlags);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPagesWithReservedMapping(
-  IN PVOID MappingAddress,
-  IN ULONG PoolTag,
-  IN PMDL MemoryDescriptorList,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmProtectMdlSystemAddress(
-  IN PMDL MemoryDescriptorList,
-  IN ULONG NewProtect);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapReservedMapping(
-  IN PVOID BaseAddress,
-  IN ULONG PoolTag,
-  IN PMDL MemoryDescriptorList);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAddVerifierThunks(
-  IN PVOID ThunkBuffer,
-  IN ULONG ThunkBufferSize);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-NTKERNELAPI
-LOGICAL
-NTAPI
-MmIsIoSpaceActive(
-  IN PHYSICAL_ADDRESS StartAddress,
-  IN SIZE_T NumberOfBytes);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-NTKERNELAPI
-PMDL
-NTAPI
-MmAllocatePagesForMdlEx(
-  IN PHYSICAL_ADDRESS LowAddress,
-  IN PHYSICAL_ADDRESS HighAddress,
-  IN PHYSICAL_ADDRESS SkipBytes,
-  IN SIZE_T TotalBytes,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN ULONG Flags);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-LOGICAL
-NTAPI
-MmIsDriverVerifyingByAddress(
-  IN PVOID AddressWithinSection);
-#endif
-
-/******************************************************************************
- *                            Security Manager Functions                      *
- ******************************************************************************/
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-SeAccessCheck(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
-  IN BOOLEAN SubjectContextLocked,
-  IN ACCESS_MASK DesiredAccess,
-  IN ACCESS_MASK PreviouslyGrantedAccess,
-  OUT PPRIVILEGE_SET *Privileges OPTIONAL,
-  IN PGENERIC_MAPPING GenericMapping,
-  IN KPROCESSOR_MODE AccessMode,
-  OUT PACCESS_MASK GrantedAccess,
-  OUT PNTSTATUS AccessStatus);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-SeAssignSecurity(
-  IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
-  IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
-  OUT PSECURITY_DESCRIPTOR *NewDescriptor,
-  IN BOOLEAN IsDirectoryObject,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
-  IN PGENERIC_MAPPING GenericMapping,
-  IN POOL_TYPE PoolType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-SeAssignSecurityEx(
-  IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
-  IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
-  OUT PSECURITY_DESCRIPTOR *NewDescriptor,
-  IN GUID *ObjectType OPTIONAL,
-  IN BOOLEAN IsDirectoryObject,
-  IN ULONG AutoInheritFlags,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
-  IN PGENERIC_MAPPING GenericMapping,
-  IN POOL_TYPE PoolType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-SeDeassignSecurity(
-  IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-SeValidSecurityDescriptor(
-  IN ULONG Length,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-NTKERNELAPI
-ULONG
-NTAPI
-SeObjectCreateSaclAccessBits(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeReleaseSubjectContext(
-  IN OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeUnlockSubjectContext(
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeCaptureSubjectContext(
-  OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeLockSubjectContext(
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-
-NTSTATUS
-NTAPI
-SeSetAuditParameter(
-  IN OUT PSE_ADT_PARAMETER_ARRAY AuditParameters,
-  IN SE_ADT_PARAMETER_TYPE Type,
-  IN ULONG Index,
-  IN PVOID Data);
-
-NTSTATUS
-NTAPI
-SeReportSecurityEvent(
-  IN ULONG Flags,
-  IN PUNICODE_STRING SourceName,
-  IN PSID UserSid OPTIONAL,
-  IN PSE_ADT_PARAMETER_ARRAY AuditParameters);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-ULONG
-NTAPI
-SeComputeAutoInheritByObjectType(
-  IN PVOID ObjectType,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL,
-  IN PSECURITY_DESCRIPTOR ParentSecurityDescriptor OPTIONAL);
-
-#ifdef SE_NTFS_WORLD_CACHE
-VOID
-NTAPI
-SeGetWorldRights(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN PGENERIC_MAPPING GenericMapping,
-  OUT PACCESS_MASK GrantedAccess);
-#endif /* SE_NTFS_WORLD_CACHE */
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-/******************************************************************************
- *                         Configuration Manager Functions                    *
- ******************************************************************************/
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmRegisterCallback(
-  IN PEX_CALLBACK_FUNCTION Function,
-  IN PVOID Context OPTIONAL,
-  OUT PLARGE_INTEGER Cookie);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmUnRegisterCallback(
-  IN LARGE_INTEGER Cookie);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmRegisterCallbackEx(
-  PEX_CALLBACK_FUNCTION Function,
-  PCUNICODE_STRING Altitude,
-  PVOID Driver,
-  PVOID Context,
-  PLARGE_INTEGER Cookie,
-  PVOID Reserved);
-
-NTKERNELAPI
-VOID
-NTAPI
-CmGetCallbackVersion(
-  OUT PULONG Major OPTIONAL,
-  OUT PULONG Minor OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmSetCallbackObjectContext(
-  IN OUT PVOID Object,
-  IN PLARGE_INTEGER Cookie,
-  IN PVOID NewContext,
-  OUT PVOID *OldContext OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmCallbackGetKeyObjectID(
-  IN PLARGE_INTEGER Cookie,
-  IN PVOID Object,
-  OUT PULONG_PTR ObjectID OPTIONAL,
-  OUT PCUNICODE_STRING *ObjectName OPTIONAL);
-
-NTKERNELAPI
-PVOID
-NTAPI
-CmGetBoundTransaction(
-  IN PLARGE_INTEGER Cookie,
-  IN PVOID Object);
-
-#endif // NTDDI_VERSION >= NTDDI_VISTA
-
-
-/******************************************************************************
- *                         I/O Manager Functions                              *
- ******************************************************************************/
-
-
-/*
- * NTSTATUS
- * IoAcquireRemoveLock(
- *   IN PIO_REMOVE_LOCK  RemoveLock,
- *   IN OPTIONAL PVOID  Tag)
- */
-#if DBG
-#define IoAcquireRemoveLock(RemoveLock, Tag) \
-  IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK))
-#else
-#define IoAcquireRemoveLock(RemoveLock, Tag) \
-  IoAcquireRemoveLockEx(RemoveLock, Tag, "", 1, sizeof (IO_REMOVE_LOCK))
-#endif
-
-/*
- * VOID
- * IoAdjustPagingPathCount(
- *   IN PLONG  Count,
- *   IN BOOLEAN  Increment)
- */
-#define IoAdjustPagingPathCount(_Count, \
-                                _Increment) \
-{ \
-  if (_Increment) \
-    { \
-      InterlockedIncrement(_Count); \
-    } \
-  else \
-    { \
-      InterlockedDecrement(_Count); \
-    } \
-}
-
-#if !defined(_M_AMD64)
-NTHALAPI
-VOID
-NTAPI
-READ_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-READ_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-READ_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-UCHAR
-NTAPI
-READ_PORT_UCHAR(
-  IN PUCHAR Port);
-
-NTHALAPI
-ULONG
-NTAPI
-READ_PORT_ULONG(
-  IN PULONG Port);
-
-NTHALAPI
-USHORT
-NTAPI
-READ_PORT_USHORT(
-  IN PUSHORT Port);
-
-NTKERNELAPI
-VOID
-NTAPI
-READ_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-READ_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-READ_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-UCHAR
-NTAPI
-READ_REGISTER_UCHAR(
-  IN PUCHAR Register);
-
-NTKERNELAPI
-ULONG
-NTAPI
-READ_REGISTER_ULONG(
-  IN PULONG Register);
-
-NTKERNELAPI
-USHORT
-NTAPI
-READ_REGISTER_USHORT(
-  IN PUSHORT Register);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_UCHAR(
-  IN PUCHAR Port,
-  IN UCHAR Value);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_ULONG(
-  IN PULONG Port,
-  IN ULONG Value);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_USHORT(
-  IN PUSHORT Port,
-  IN USHORT Value);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_UCHAR(
-  IN PUCHAR Register,
-  IN UCHAR Value);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_ULONG(
-  IN PULONG Register,
-  IN ULONG Value);
-
-NTKERNELAPI
+NTHALAPI
 VOID
 NTAPI
 VOID
 NTAPI
-WRITE_REGISTER_USHORT(
-  IN PUSHORT Register,
-  IN USHORT Value);
-
-#else
-
-FORCEINLINE
-VOID
-READ_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  __inbytestring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  __indwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  __inwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-UCHAR
-READ_PORT_UCHAR(
-  IN PUCHAR Port)
-{
-  return __inbyte((USHORT)(ULONG_PTR)Port);
-}
-
-FORCEINLINE
-ULONG
-READ_PORT_ULONG(
-  IN PULONG Port)
-{
-  return __indword((USHORT)(ULONG_PTR)Port);
-}
-
-FORCEINLINE
-USHORT
-READ_PORT_USHORT(
-  IN PUSHORT Port)
-{
-  return __inword((USHORT)(ULONG_PTR)Port);
-}
-
-FORCEINLINE
-VOID
-READ_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  __movsb(Register, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  __movsd(Register, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  __movsw(Register, Buffer, Count);
-}
-
-FORCEINLINE
-UCHAR
-READ_REGISTER_UCHAR(
-  IN volatile UCHAR *Register)
-{
-  return *Register;
-}
-
-FORCEINLINE
-ULONG
-READ_REGISTER_ULONG(
-  IN volatile ULONG *Register)
-{
-  return *Register;
-}
-
-FORCEINLINE
-USHORT
-READ_REGISTER_USHORT(
-  IN volatile USHORT *Register)
-{
-  return *Register;
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  __outbytestring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  __outdwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  __outwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_UCHAR(
-  IN PUCHAR Port,
-  IN UCHAR Value)
-{
-  __outbyte((USHORT)(ULONG_PTR)Port, Value);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_ULONG(
-  IN PULONG Port,
-  IN ULONG Value)
-{
-  __outdword((USHORT)(ULONG_PTR)Port, Value);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_USHORT(
-  IN PUSHORT Port,
-  IN USHORT Value)
-{
-  __outword((USHORT)(ULONG_PTR)Port, Value);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  LONG Synch;
-  __movsb(Register, Buffer, Count);
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  LONG Synch;
-  __movsd(Register, Buffer, Count);
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  LONG Synch;
-  __movsw(Register, Buffer, Count);
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_UCHAR(
-  IN volatile UCHAR *Register,
-  IN UCHAR Value)
-{
-  LONG Synch;
-  *Register = Value;
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_ULONG(
-  IN volatile ULONG *Register,
-  IN ULONG Value)
-{
-  LONG Synch;
-  *Register = Value;
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_USHORT(
-  IN volatile USHORT *Register,
-  IN USHORT Value)
-{
-  LONG Sync;
-  *Register = Value;
-  InterlockedOr(&Sync, 1);
-}
-#endif
-
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && \
-   (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
-
-#define DMA_MACROS_DEFINED
-
-FORCEINLINE
-NTSTATUS
-IoAllocateAdapterChannel(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG NumberOfMapRegisters,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context)
-{
-  PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel;
-  AllocateAdapterChannel =
-      *(DmaAdapter)->DmaOperations->AllocateAdapterChannel;
-  ASSERT(AllocateAdapterChannel);
-  return AllocateAdapterChannel(DmaAdapter,
-                                DeviceObject,
-                                NumberOfMapRegisters,
-                                ExecutionRoutine,
-                                Context );
-}
+KeStallExecutionProcessor(
+  IN ULONG  MicroSeconds);
 
 
-FORCEINLINE
+NTKERNELAPI
 BOOLEAN
 NTAPI
 BOOLEAN
 NTAPI
-IoFlushAdapterBuffers(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN BOOLEAN WriteToDevice)
-{
-  PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers;
-  FlushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers;
-  ASSERT(FlushAdapterBuffers);
-  return FlushAdapterBuffers(DmaAdapter,
-                             Mdl,
-                             MapRegisterBase,
-                             CurrentVa,
-                             Length,
-                             WriteToDevice);
-}
+KeSynchronizeExecution(
+  IN OUT PKINTERRUPT    Interrupt,
+  IN PKSYNCHRONIZE_ROUTINE  SynchronizeRoutine,
+  IN PVOID  SynchronizeContext OPTIONAL);
 
 
-FORCEINLINE
-VOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-IoFreeAdapterChannel(
-  IN PDMA_ADAPTER DmaAdapter)
-{
-  PFREE_ADAPTER_CHANNEL FreeAdapterChannel;
-  FreeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel;
-  ASSERT(FreeAdapterChannel);
-  FreeAdapterChannel(DmaAdapter);
-}
+KeWaitForMultipleObjects(
+  IN ULONG  Count,
+  IN PVOID  Object[],
+  IN WAIT_TYPE  WaitType,
+  IN KWAIT_REASON  WaitReason,
+  IN KPROCESSOR_MODE  WaitMode,
+  IN BOOLEAN  Alertable,
+  IN PLARGE_INTEGER  Timeout  OPTIONAL,
+  OUT PKWAIT_BLOCK  WaitBlockArray  OPTIONAL);
 
 
-FORCEINLINE
-VOID
-NTAPI
-IoFreeMapRegisters(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PVOID MapRegisterBase,
-  IN ULONG NumberOfMapRegisters)
-{
-  PFREE_MAP_REGISTERS FreeMapRegisters;
-  FreeMapRegisters = *(DmaAdapter)->DmaOperations->FreeMapRegisters;
-  ASSERT(FreeMapRegisters);
-  FreeMapRegisters(DmaAdapter, MapRegisterBase, NumberOfMapRegisters);
-}
+#define KeWaitForMutexObject KeWaitForSingleObject
 
 
-FORCEINLINE
-PHYSICAL_ADDRESS
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-IoMapTransfer(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN OUT PULONG Length,
-  IN BOOLEAN WriteToDevice)
-{
-  PMAP_TRANSFER MapTransfer;
-
-  MapTransfer = *(DmaAdapter)->DmaOperations->MapTransfer;
-  ASSERT(MapTransfer);
-  return MapTransfer(DmaAdapter,
-                     Mdl,
-                     MapRegisterBase,
-                     CurrentVa,
-                     Length,
-                     WriteToDevice);
-}
-#endif
+KeWaitForSingleObject(
+  IN PVOID  Object,
+  IN KWAIT_REASON  WaitReason,
+  IN KPROCESSOR_MODE  WaitMode,
+  IN BOOLEAN  Alertable,
+  IN PLARGE_INTEGER  Timeout  OPTIONAL);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+
+_DECL_HAL_KE_IMPORT
+VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLock(
+  IN OUT PKSPIN_LOCK SpinLock,
+  OUT PKLOCK_QUEUE_HANDLE LockHandle);
 
 NTKERNELAPI
 VOID
 
 NTKERNELAPI
 VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLockAtDpcLevel(
+  IN OUT PKSPIN_LOCK  SpinLock,
+  OUT PKLOCK_QUEUE_HANDLE  LockHandle);
+
+NTKERNELAPI
+KIRQL
 NTAPI
 NTAPI
-IoAcquireCancelSpinLock(
-  OUT PKIRQL Irql);
+KeAcquireInterruptSpinLock(
+  IN OUT PKINTERRUPT  Interrupt);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-IoAcquireRemoveLockEx(
-  IN PIO_REMOVE_LOCK RemoveLock,
-  IN PVOID Tag OPTIONAL,
-  IN PCSTR File,
-  IN ULONG Line,
-  IN ULONG RemlockSize);
+KeAreApcsDisabled(VOID);
+
 NTKERNELAPI
 NTKERNELAPI
-NTSTATUS
+ULONG
 NTAPI
 NTAPI
-IoAllocateDriverObjectExtension(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PVOID ClientIdentificationAddress,
-  IN ULONG DriverObjectExtensionSize,
-  OUT PVOID *DriverObjectExtension);
+KeGetRecommendedSharedDataAlignment(VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+ULONG
 NTAPI
 NTAPI
-IoAllocateErrorLogEntry(
-  IN PVOID IoObject,
-  IN UCHAR EntrySize);
+KeQueryRuntimeThread(
+  IN PKTHREAD Thread,
+  OUT PULONG UserTime);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PIRP
+VOID
+FASTCALL
+KeReleaseInStackQueuedSpinLockFromDpcLevel(
+  IN PKLOCK_QUEUE_HANDLE  LockHandle);
+
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-IoAllocateIrp(
-  IN CCHAR StackSize,
-  IN BOOLEAN ChargeQuota);
+KeReleaseInterruptSpinLock(
+  IN OUT PKINTERRUPT  Interrupt,
+  IN KIRQL  OldIrql);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PMDL
+PKDEVICE_QUEUE_ENTRY
 NTAPI
 NTAPI
-IoAllocateMdl(
-  IN PVOID VirtualAddress OPTIONAL,
-  IN ULONG Length,
-  IN BOOLEAN SecondaryBuffer,
-  IN BOOLEAN ChargeQuota,
-  IN OUT PIRP Irp OPTIONAL);
+KeRemoveByKeyDeviceQueueIfBusy(
+  IN OUT PKDEVICE_QUEUE DeviceQueue,
+  IN ULONG SortKey);
+
+_DECL_HAL_KE_IMPORT
+VOID
+FASTCALL
+KeReleaseInStackQueuedSpinLock(
+  IN PKLOCK_QUEUE_HANDLE LockHandle);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+
+#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
 
 NTKERNELAPI
 
 NTKERNELAPI
-PIO_WORKITEM
+BOOLEAN
 NTAPI
 NTAPI
-IoAllocateWorkItem(
-  IN PDEVICE_OBJECT DeviceObject);
+KeDeregisterBugCheckReasonCallback(
+  IN OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-IoAttachDevice(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PUNICODE_STRING TargetDevice,
-  OUT PDEVICE_OBJECT *AttachedDevice);
+KeRegisterBugCheckReasonCallback(
+  OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
+  IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
+  IN KBUGCHECK_CALLBACK_REASON Reason,
+  IN PUCHAR Component);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP1) */
+
+#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
 
 NTKERNELAPI
 
 NTKERNELAPI
-PDEVICE_OBJECT
+VOID
 NTAPI
 NTAPI
-IoAttachDeviceToDeviceStack(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PDEVICE_OBJECT TargetDevice);
+KeFlushQueuedDpcs(
+  VOID);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
+
+#if (NTDDI_VERSION >= NTDDI_WS03)
 
 NTKERNELAPI
 
 NTKERNELAPI
-PIRP
+PVOID
 NTAPI
 NTAPI
-IoBuildAsynchronousFsdRequest(
-  IN ULONG MajorFunction,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN OUT PVOID Buffer OPTIONAL,
-  IN ULONG Length OPTIONAL,
-  IN PLARGE_INTEGER StartingOffset OPTIONAL,
-  IN PIO_STATUS_BLOCK IoStatusBlock OPTIONAL);
+KeRegisterNmiCallback(
+  IN PNMI_CALLBACK CallbackRoutine,
+  IN PVOID Context OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PIRP
+NTSTATUS
 NTAPI
 NTAPI
-IoBuildDeviceIoControlRequest(
-  IN ULONG IoControlCode,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength,
-  IN BOOLEAN InternalDeviceIoControl,
-  IN PKEVENT Event,
-  OUT PIO_STATUS_BLOCK IoStatusBlock);
+KeDeregisterNmiCallback(
+  IN PVOID Handle);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoBuildPartialMdl(
-  IN PMDL SourceMdl,
-  IN OUT PMDL TargetMdl,
-  IN PVOID VirtualAddress,
-  IN ULONG Length);
+KeInitializeThreadedDpc(
+  OUT PRKDPC Dpc,
+  IN PKDEFERRED_ROUTINE DeferredRoutine,
+  IN PVOID DeferredContext OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PIRP
+ULONG_PTR
 NTAPI
 NTAPI
-IoBuildSynchronousFsdRequest(
-  IN ULONG MajorFunction,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN OUT PVOID Buffer OPTIONAL,
-  IN ULONG Length OPTIONAL,
-  IN PLARGE_INTEGER StartingOffset OPTIONAL,
-  IN PKEVENT Event,
-  OUT PIO_STATUS_BLOCK IoStatusBlock);
+KeIpiGenericCall(
+  IN PKIPI_BROADCAST_WORKER BroadcastFunction,
+  IN ULONG_PTR Context);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+KIRQL
 FASTCALL
 FASTCALL
-IofCallDriver(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN OUT PIRP Irp);
-#define IoCallDriver IofCallDriver
+KeAcquireSpinLockForDpc(
+  IN OUT PKSPIN_LOCK SpinLock);
 
 NTKERNELAPI
 VOID
 FASTCALL
 
 NTKERNELAPI
 VOID
 FASTCALL
-IofCompleteRequest(
-  IN PIRP Irp,
-  IN CCHAR PriorityBoost);
-#define IoCompleteRequest IofCompleteRequest
+KeReleaseSpinLockForDpc(
+  IN OUT PKSPIN_LOCK SpinLock,
+  IN KIRQL OldIrql);
 
 NTKERNELAPI
 BOOLEAN
 
 NTKERNELAPI
 BOOLEAN
-NTAPI
-IoCancelIrp(
-  IN PIRP Irp);
+FASTCALL
+KeTestSpinLock(
+  IN PKSPIN_LOCK SpinLock);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
+
+#if (NTDDI_VERSION >= NTDDI_WS03SP1)
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
+FASTCALL
+KeTryToAcquireSpinLockAtDpcLevel(
+  IN OUT PKSPIN_LOCK SpinLock);
+
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-IoCheckShareAccess(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess,
-  IN BOOLEAN Update);
+KeAreAllApcsDisabled(
+  VOID);
 
 NTKERNELAPI
 VOID
 FASTCALL
 
 NTKERNELAPI
 VOID
 FASTCALL
-IofCompleteRequest(
-  IN PIRP Irp,
-  IN CCHAR PriorityBoost);
+KeAcquireGuardedMutex(
+    IN OUT PKGUARDED_MUTEX GuardedMutex
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
-NTAPI
-IoConnectInterrupt(
-  OUT PKINTERRUPT *InterruptObject,
-  IN PKSERVICE_ROUTINE ServiceRoutine,
-  IN PVOID ServiceContext OPTIONAL,
-  IN PKSPIN_LOCK SpinLock OPTIONAL,
-  IN ULONG Vector,
-  IN KIRQL Irql,
-  IN KIRQL SynchronizeIrql,
-  IN KINTERRUPT_MODE InterruptMode,
-  IN BOOLEAN ShareVector,
-  IN KAFFINITY ProcessorEnableMask,
-  IN BOOLEAN FloatingSave);
+VOID
+FASTCALL
+KeAcquireGuardedMutexUnsafe(
+    IN OUT PKGUARDED_MUTEX GuardedMutex
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoCreateDevice(
-  IN PDRIVER_OBJECT DriverObject,
-  IN ULONG DeviceExtensionSize,
-  IN PUNICODE_STRING DeviceName OPTIONAL,
-  IN DEVICE_TYPE DeviceType,
-  IN ULONG DeviceCharacteristics,
-  IN BOOLEAN Exclusive,
-  OUT PDEVICE_OBJECT *DeviceObject);
+KeEnterGuardedRegion(
+    VOID
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoCreateFile(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG Disposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength,
-  IN CREATE_FILE_TYPE CreateFileType,
-  IN PVOID InternalParameters OPTIONAL,
-  IN ULONG Options);
+KeLeaveGuardedRegion(
+    VOID
+);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PKEVENT
-NTAPI
-IoCreateNotificationEvent(
-  IN PUNICODE_STRING EventName,
-  OUT PHANDLE EventHandle);
+VOID
+FASTCALL
+KeInitializeGuardedMutex(
+    OUT PKGUARDED_MUTEX GuardedMutex
+);
+
+NTKERNELAPI
+VOID
+FASTCALL
+KeReleaseGuardedMutexUnsafe(
+    IN OUT PKGUARDED_MUTEX GuardedMutex
+);
+
+NTKERNELAPI
+VOID
+FASTCALL
+KeReleaseGuardedMutex(
+    IN OUT PKGUARDED_MUTEX GuardedMutex
+);
+
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+KeTryToAcquireGuardedMutex(
+    IN OUT PKGUARDED_MUTEX GuardedMutex
+);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+NTKERNELAPI
+VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLockForDpc(
+  IN OUT PKSPIN_LOCK SpinLock,
+  OUT PKLOCK_QUEUE_HANDLE LockHandle);
+
+NTKERNELAPI
+VOID
+FASTCALL
+KeReleaseInStackQueuedSpinLockForDpc(
+  IN PKLOCK_QUEUE_HANDLE LockHandle);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoCreateSymbolicLink(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN PUNICODE_STRING DeviceName);
+KeQueryDpcWatchdogInformation(
+  OUT PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
+
+#if defined(SINGLE_GROUP_LEGACY_API)
+NTKERNELAPI
+KAFFINITY
+NTAPI
+KeSetSystemAffinityThreadEx(
+  IN KAFFINITY Affinity);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PKEVENT
+ULONG
 NTAPI
 NTAPI
-IoCreateSynchronizationEvent(
-  IN PUNICODE_STRING EventName,
-  OUT PHANDLE EventHandle);
+KeQueryActiveProcessorCount(
+  OUT PKAFFINITY ActiveProcessors OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+ULONG
 NTAPI
 NTAPI
-IoCreateUnprotectedSymbolicLink(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN PUNICODE_STRING DeviceName);
+KeQueryMaximumProcessorCount(
+  VOID);
+#endif
+
+#endif /*  (NTDDI_VERSION >= NTDDI_VISTA) */
+
+#if (NTDDI_VERSION >= NTDDI_WS08)
+
+PVOID
+KeRegisterProcessorChangeCallback(
+  IN PPROCESSOR_CALLBACK_FUNCTION CallbackFunction,
+  IN PVOID CallbackContext OPTIONAL,
+  IN ULONG Flags);
 
 
-NTKERNELAPI
 VOID
 VOID
+KeDeregisterProcessorChangeCallback(
+  IN PVOID CallbackHandle);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WS08) */
+
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+
+ULONG64
 NTAPI
 NTAPI
-IoDeleteDevice(
-  IN PDEVICE_OBJECT DeviceObject);
+KeQueryTotalCycleTimeProcess(
+  IN OUT PKPROCESS Process,
+  OUT PULONG64 CycleTimeStamp);
+
+ULONG64
+NTAPI
+KeQueryTotalCycleTimeThread(
+  IN OUT PKTHREAD Thread,
+  OUT PULONG64 CycleTimeStamp);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoDeleteSymbolicLink(
-  IN PUNICODE_STRING SymbolicLinkName);
+KeSetTargetProcessorDpcEx(
+  IN OUT PKDPC Dpc,
+  IN PPROCESSOR_NUMBER ProcNumber);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoDetachDevice(
-  IN OUT PDEVICE_OBJECT TargetDevice);
+KeSetSystemGroupAffinityThread(
+  IN PGROUP_AFFINITY Affinity,
+  OUT PGROUP_AFFINITY PreviousAffinity OPTIONAL);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoDisconnectInterrupt(
-  IN PKINTERRUPT InterruptObject);
+KeRevertToUserGroupAffinityThread(
+  IN PGROUP_AFFINITY PreviousAffinity);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+BOOLEAN
 NTAPI
 NTAPI
-IoFreeIrp(
-  IN PIRP Irp);
+KeSetCoalescableTimer(
+  IN OUT PKTIMER Timer,
+  IN LARGE_INTEGER DueTime,
+  IN ULONG Period,
+  IN ULONG TolerableDelay,
+  IN PKDPC Dpc OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+ULONGLONG
 NTAPI
 NTAPI
-IoFreeMdl(
-  IN PMDL Mdl);
+KeQueryUnbiasedInterruptTime(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+ULONG
 NTAPI
 NTAPI
-IoFreeWorkItem(
-  IN PIO_WORKITEM IoWorkItem);
+KeQueryActiveProcessorCountEx(
+  IN USHORT GroupNumber);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PDEVICE_OBJECT
+ULONG
 NTAPI
 NTAPI
-IoGetAttachedDevice(
-  IN PDEVICE_OBJECT DeviceObject);
+KeQueryMaximumProcessorCountEx(
+  IN USHORT GroupNumber);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PDEVICE_OBJECT
+USHORT
 NTAPI
 NTAPI
-IoGetAttachedDeviceReference(
-  IN PDEVICE_OBJECT DeviceObject);
+KeQueryActiveGroupCount(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+USHORT
 NTAPI
 NTAPI
-IoGetBootDiskInformation(
-  IN OUT PBOOTDISK_INFORMATION BootDiskInformation,
-  IN ULONG Size);
+KeQueryMaximumGroupCount(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+KAFFINITY
 NTAPI
 NTAPI
-IoGetDeviceInterfaceAlias(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN CONST GUID *AliasInterfaceClassGuid,
-  OUT PUNICODE_STRING AliasSymbolicLinkName);
+KeQueryGroupAffinity 
+  IN USHORT GroupNumber);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PEPROCESS
+ULONG
 NTAPI
 NTAPI
-IoGetCurrentProcess(VOID);
+KeGetCurrentProcessorNumberEx(
+  OUT PPROCESSOR_NUMBER ProcNumber OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoGetDeviceInterfaces(
-  IN CONST GUID *InterfaceClassGuid,
-  IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
-  IN ULONG Flags,
-  OUT PWSTR *SymbolicLinkList);
+KeQueryNodeActiveAffinity(
+  IN USHORT NodeNumber,
+  OUT PGROUP_AFFINITY Affinity OPTIONAL,
+  OUT PUSHORT Count OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+USHORT
 NTAPI
 NTAPI
-IoGetDeviceObjectPointer(
-  IN PUNICODE_STRING ObjectName,
-  IN ACCESS_MASK DesiredAccess,
-  OUT PFILE_OBJECT *FileObject,
-  OUT PDEVICE_OBJECT *DeviceObject);
+KeQueryNodeMaximumProcessorCount(
+  IN USHORT NodeNumber);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+USHORT
 NTAPI
 NTAPI
-IoGetDeviceProperty(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
-  IN ULONG BufferLength,
-  OUT PVOID PropertyBuffer,
-  OUT PULONG ResultLength);
+KeQueryHighestNodeNumber(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PDMA_ADAPTER
+USHORT
 NTAPI
 NTAPI
-IoGetDmaAdapter(
-  IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
-  IN PDEVICE_DESCRIPTION DeviceDescription,
-  IN OUT PULONG NumberOfMapRegisters);
+KeGetCurrentNodeNumber(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-IoGetDriverObjectExtension(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PVOID ClientIdentificationAddress);
+KeQueryLogicalProcessorRelationship(
+  IN PPROCESSOR_NUMBER ProcessorNumber OPTIONAL,
+  IN LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
+  OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information OPTIONAL,
+  IN OUT PULONG Length);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-IoGetInitialStack(VOID);
+KeSaveExtendedProcessorState(
+  IN ULONG64 Mask,
+  OUT PXSTATE_SAVE XStateSave);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PDEVICE_OBJECT
+VOID
 NTAPI
 NTAPI
-IoGetRelatedDeviceObject(
-  IN PFILE_OBJECT FileObject);
+KeRestoreExtendedProcessorState(
+  IN PXSTATE_SAVE XStateSave);
 
 
-NTKERNELAPI
+#endif /*  (NTDDI_VERSION >= NTDDI_WIN7) */
+
+#if !defined(_IA64_)
+NTHALAPI
 VOID
 NTAPI
 VOID
 NTAPI
-IoQueueWorkItem(
-  IN PIO_WORKITEM IoWorkItem,
-  IN PIO_WORKITEM_ROUTINE WorkerRoutine,
-  IN WORK_QUEUE_TYPE QueueType,
-  IN PVOID Context OPTIONAL);
+KeFlushWriteBuffer(VOID);
+#endif
+
+/* VOID
+ * KeInitializeCallbackRecord(
+ *   IN PKBUGCHECK_CALLBACK_RECORD  CallbackRecord)
+ */
+#define KeInitializeCallbackRecord(CallbackRecord) \
+  CallbackRecord->State = BufferEmpty;
+
+#if DBG
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+#define PAGED_ASSERT( exp ) NT_ASSERT( exp )
+#else
+#define PAGED_ASSERT( exp ) ASSERT( exp )
+#endif
+
+#define PAGED_CODE() { \
+  if (KeGetCurrentIrql() > APC_LEVEL) { \
+    KdPrint( ("NTDDK: Pageable code called at IRQL > APC_LEVEL (%d)\n", KeGetCurrentIrql() )); \
+    PAGED_ASSERT(FALSE); \
+  } \
+}
+
+#else
+
+#define PAGED_CODE()
+
+#endif
+
+#define PAGED_CODE_LOCKED() NOP_FUNCTION;
+
+/******************************************************************************
+ *                       Memory manager Functions                             *
+ ******************************************************************************/
+
+/*
+ * Alignment Macros
+ */
+#define ALIGN_DOWN_BY(size, align) \
+    ((ULONG_PTR)(size) & ~((ULONG_PTR)(align) - 1))
+
+#define ALIGN_UP_BY(size, align) \
+    (ALIGN_DOWN_BY(((ULONG_PTR)(size) + align - 1), align))
+
+#define ALIGN_DOWN_POINTER_BY(ptr, align) \
+    ((PVOID)ALIGN_DOWN_BY(ptr, align))
+
+#define ALIGN_UP_POINTER_BY(ptr, align) \
+    ((PVOID)ALIGN_UP_BY(ptr, align))
+
+#define ALIGN_DOWN(size, type) \
+    ALIGN_DOWN_BY(size, sizeof(type))
+
+#define ALIGN_UP(size, type) \
+    ALIGN_UP_BY(size, sizeof(type))
+
+#define ALIGN_DOWN_POINTER(ptr, type) \
+    ALIGN_DOWN_POINTER_BY(ptr, sizeof(type))
+
+#define ALIGN_UP_POINTER(ptr, type) \
+    ALIGN_UP_POINTER_BY(ptr, sizeof(type))
+
+/* ULONG
+ * BYTE_OFFSET(
+ *   IN PVOID Va)
+ */
+#define BYTE_OFFSET(Va) \
+  ((ULONG) ((ULONG_PTR) (Va) & (PAGE_SIZE - 1)))
+
+/* ULONG
+ * BYTES_TO_PAGES(
+ *   IN ULONG Size)
+ */
+#define BYTES_TO_PAGES(Size) \
+  (((Size) >> PAGE_SHIFT) + (((Size) & (PAGE_SIZE - 1)) != 0))
+
+/* PVOID
+ * PAGE_ALIGN(
+ *   IN PVOID Va)
+ */
+#define PAGE_ALIGN(Va) \
+  ((PVOID) ((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1)))
+
+/* ULONG_PTR
+ * ROUND_TO_PAGES(
+ *   IN ULONG_PTR Size)
+ */
+#define ROUND_TO_PAGES(Size) \
+  (((ULONG_PTR) (Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
+
+/* ULONG
+ * ADDRESS_AND_SIZE_TO_SPAN_PAGES(
+ *   IN PVOID Va,
+ *   IN ULONG Size)
+ */
+#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size) \
+  ((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
+    + (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
+
+/*
+ * ULONG
+ * MmGetMdlByteCount(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlByteCount(_Mdl) \
+  ((_Mdl)->ByteCount)
+
+/*
+ * ULONG
+ * MmGetMdlByteOffset(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlByteOffset(_Mdl) \
+  ((_Mdl)->ByteOffset)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-IoInitializeIrp(
-  IN OUT PIRP Irp,
-  IN USHORT PacketSize,
-  IN CCHAR StackSize);
+/*
+ * PPFN_NUMBER
+ * MmGetMdlPfnArray(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlPfnArray(_Mdl) \
+  ((PPFN_NUMBER) ((_Mdl) + 1))
 
 
-NTKERNELAPI
-VOID
-NTAPI
-IoInitializeRemoveLockEx(
-  IN PIO_REMOVE_LOCK Lock,
-  IN ULONG AllocateTag,
-  IN ULONG MaxLockedMinutes,
-  IN ULONG HighWatermark,
-  IN ULONG RemlockSize);
+/*
+ * PVOID
+ * MmGetMdlVirtualAddress(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlVirtualAddress(_Mdl) \
+  ((PVOID) ((PCHAR) ((_Mdl)->StartVa) + (_Mdl)->ByteOffset))
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoInitializeTimer(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIO_TIMER_ROUTINE TimerRoutine,
-  IN PVOID Context OPTIONAL);
+#define MmGetProcedureAddress(Address) (Address)
 
 
-NTKERNELAPI
-VOID
-NTAPI
-IoInvalidateDeviceRelations(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN DEVICE_RELATION_TYPE Type);
+/* PVOID MmGetSystemAddressForMdl(
+ *     IN PMDL Mdl);
+ */
+#define MmGetSystemAddressForMdl(Mdl) \
+  (((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \
+    MDL_SOURCE_IS_NONPAGED_POOL)) ? \
+      ((Mdl)->MappedSystemVa) : \
+      (MmMapLockedPages((Mdl), KernelMode)))
 
 
-NTKERNELAPI
-VOID
-NTAPI
-IoInvalidateDeviceState(
-  IN PDEVICE_OBJECT PhysicalDeviceObject);
+/* PVOID
+ * MmGetSystemAddressForMdlSafe(
+ *     IN PMDL Mdl,
+ *     IN MM_PAGE_PRIORITY Priority)
+ */
+#define MmGetSystemAddressForMdlSafe(_Mdl, _Priority) \
+  (((_Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA \
+    | MDL_SOURCE_IS_NONPAGED_POOL)) ? \
+    (_Mdl)->MappedSystemVa : \
+    (PVOID) MmMapLockedPagesSpecifyCache((_Mdl), \
+      KernelMode, MmCached, NULL, FALSE, (_Priority)))
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoIsWdmVersionAvailable(
-  IN UCHAR MajorVersion,
-  IN UCHAR MinorVersion);
+/*
+ * VOID
+ * MmInitializeMdl(
+ *   IN PMDL  MemoryDescriptorList,
+ *   IN PVOID  BaseVa,
+ *   IN SIZE_T  Length)
+ */
+#define MmInitializeMdl(_MemoryDescriptorList, \
+                        _BaseVa, \
+                        _Length) \
+{ \
+  (_MemoryDescriptorList)->Next = (PMDL) NULL; \
+  (_MemoryDescriptorList)->Size = (CSHORT) (sizeof(MDL) + \
+    (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES(_BaseVa, _Length))); \
+  (_MemoryDescriptorList)->MdlFlags = 0; \
+  (_MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN(_BaseVa); \
+  (_MemoryDescriptorList)->ByteOffset = BYTE_OFFSET(_BaseVa); \
+  (_MemoryDescriptorList)->ByteCount = (ULONG) _Length; \
+}
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoOpenDeviceInterfaceRegistryKey(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN ACCESS_MASK DesiredAccess,
-  OUT PHANDLE DeviceInterfaceKey);
+/*
+ * VOID
+ * MmPrepareMdlForReuse(
+ *   IN PMDL  Mdl)
+ */
+#define MmPrepareMdlForReuse(_Mdl) \
+{ \
+  if (((_Mdl)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \
+    ASSERT(((_Mdl)->MdlFlags & MDL_PARTIAL) != 0); \
+    MmUnmapLockedPages((_Mdl)->MappedSystemVa, (_Mdl)); \
+  } else if (((_Mdl)->MdlFlags & MDL_PARTIAL) == 0) { \
+    ASSERT(((_Mdl)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \
+  } \
+}
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoOpenDeviceRegistryKey(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG DevInstKeyType,
-  IN ACCESS_MASK DesiredAccess,
-  OUT PHANDLE DevInstRegKey);
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-IoRegisterDeviceInterface(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN CONST GUID *InterfaceClassGuid,
-  IN PUNICODE_STRING ReferenceString OPTIONAL,
-  OUT PUNICODE_STRING SymbolicLinkName);
+MmAllocateContiguousMemory(
+  IN SIZE_T  NumberOfBytes,
+  IN PHYSICAL_ADDRESS  HighestAcceptableAddress);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-IoRegisterPlugPlayNotification(
-  IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory,
-  IN ULONG EventCategoryFlags,
-  IN PVOID EventCategoryData OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine,
-  IN OUT PVOID Context OPTIONAL,
-  OUT PVOID *NotificationEntry);
+MmAllocateContiguousMemorySpecifyCache(
+  IN SIZE_T  NumberOfBytes,
+  IN PHYSICAL_ADDRESS  LowestAcceptableAddress,
+  IN PHYSICAL_ADDRESS  HighestAcceptableAddress,
+  IN PHYSICAL_ADDRESS  BoundaryAddressMultiple  OPTIONAL,
+  IN MEMORY_CACHING_TYPE  CacheType);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PMDL
 NTAPI
 NTAPI
-IoRegisterShutdownNotification(
-  IN PDEVICE_OBJECT DeviceObject);
+MmAllocatePagesForMdl(
+  IN PHYSICAL_ADDRESS  LowAddress,
+  IN PHYSICAL_ADDRESS  HighAddress,
+  IN PHYSICAL_ADDRESS  SkipBytes,
+  IN SIZE_T  TotalBytes);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoReleaseCancelSpinLock(
-  IN KIRQL Irql);
+MmBuildMdlForNonPagedPool(
+  IN OUT PMDLX  MemoryDescriptorList);
 
 
+//DECLSPEC_DEPRECATED_DDK
 NTKERNELAPI
 NTKERNELAPI
-VOID
+PMDL
 NTAPI
 NTAPI
-IoReleaseRemoveLockAndWaitEx(
-  IN PIO_REMOVE_LOCK RemoveLock,
-  IN PVOID Tag OPTIONAL,
-  IN ULONG RemlockSize);
+MmCreateMdl(
+  IN PMDL  MemoryDescriptorList  OPTIONAL,
+  IN PVOID  Base,
+  IN SIZE_T  Length);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoReleaseRemoveLockEx(
-  IN PIO_REMOVE_LOCK RemoveLock,
-  IN PVOID Tag OPTIONAL,
-  IN ULONG RemlockSize);
+MmFreeContiguousMemory(
+  IN PVOID  BaseAddress);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoRemoveShareAccess(
-  IN PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess);
+MmFreeContiguousMemorySpecifyCache(
+  IN PVOID  BaseAddress,
+  IN SIZE_T  NumberOfBytes,
+  IN MEMORY_CACHING_TYPE  CacheType);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoReportTargetDeviceChange(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN PVOID NotificationStructure);
+MmFreePagesFromMdl(
+  IN PMDLX MemoryDescriptorList);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-IoReportTargetDeviceChangeAsynchronous(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN PVOID NotificationStructure,
-  IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback OPTIONAL,
-  IN PVOID Context OPTIONAL);
+MmGetSystemRoutineAddress(
+  IN PUNICODE_STRING  SystemRoutineName);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+LOGICAL
 NTAPI
 NTAPI
-IoRequestDeviceEject(
-  IN PDEVICE_OBJECT PhysicalDeviceObject);
+MmIsDriverVerifying(
+  IN struct _DRIVER_OBJECT *DriverObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PVOID
 NTAPI
 NTAPI
-IoReuseIrp(
-  IN OUT PIRP Irp,
-  IN NTSTATUS Status);
+MmLockPagableDataSection(
+  IN PVOID  AddressWithinSection);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-IoSetDeviceInterfaceState(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN BOOLEAN Enable);
+MmMapIoSpace(
+  IN PHYSICAL_ADDRESS  PhysicalAddress,
+  IN SIZE_T  NumberOfBytes,
+  IN MEMORY_CACHING_TYPE  CacheEnable);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PVOID
 NTAPI
 NTAPI
-IoSetShareAccess(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  OUT PSHARE_ACCESS ShareAccess);
+MmMapLockedPages(
+  IN PMDL  MemoryDescriptorList,
+  IN KPROCESSOR_MODE  AccessMode);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PVOID
 NTAPI
 NTAPI
-IoStartNextPacket(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN Cancelable);
+MmMapLockedPagesSpecifyCache(
+  IN PMDLX MemoryDescriptorList,
+  IN KPROCESSOR_MODE AccessMode,
+  IN MEMORY_CACHING_TYPE CacheType,
+  IN PVOID BaseAddress OPTIONAL,
+  IN ULONG BugCheckOnFailure,
+  IN MM_PAGE_PRIORITY Priority);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PVOID
 NTAPI
 NTAPI
-IoStartNextPacketByKey(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN Cancelable,
-  IN ULONG Key);
+MmPageEntireDriver(
+  IN PVOID  AddressWithinSection);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoStartPacket(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIRP Irp,
-  IN PULONG Key OPTIONAL,
-  IN PDRIVER_CANCEL CancelFunction OPTIONAL);
+MmProbeAndLockPages(
+  IN OUT PMDL  MemoryDescriptorList,
+  IN KPROCESSOR_MODE  AccessMode,
+  IN LOCK_OPERATION  Operation);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+MM_SYSTEMSIZE
 NTAPI
 NTAPI
-IoStartTimer(
-  IN PDEVICE_OBJECT DeviceObject);
+MmQuerySystemSize(
+  VOID);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoStopTimer(
-  IN PDEVICE_OBJECT DeviceObject);
+MmResetDriverPaging(
+  IN PVOID  AddressWithinSection);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+SIZE_T
 NTAPI
 NTAPI
-IoUnregisterPlugPlayNotification(
-  IN PVOID NotificationEntry);
+MmSizeOfMdl(
+  IN PVOID  Base,
+  IN SIZE_T  Length);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoUnregisterShutdownNotification(
-  IN PDEVICE_OBJECT DeviceObject);
+MmUnlockPagableImageSection(
+  IN PVOID  ImageSectionHandle);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoUpdateShareAccess(
-  IN PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIAllocateInstanceIds(
-  IN GUID *Guid,
-  IN ULONG InstanceCount,
-  OUT ULONG *FirstInstanceId);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIQuerySingleInstanceMultiple(
-  IN PVOID *DataBlockObjectList,
-  IN PUNICODE_STRING InstanceNames,
-  IN ULONG ObjectCount,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIRegistrationControl(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG Action);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMISuggestInstanceName(
-  IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
-  IN PUNICODE_STRING SymbolicLinkName OPTIONAL,
-  IN BOOLEAN CombineNames,
-  OUT PUNICODE_STRING SuggestedInstanceName);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIWriteEvent(
-  IN OUT PVOID WnodeEventItem);
+MmUnlockPages(
+  IN OUT PMDL  MemoryDescriptorList);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoWriteErrorLogEntry(
-  IN PVOID ElEntry);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoGetTopLevelIrp(VOID);
+MmUnmapIoSpace(
+  IN PVOID  BaseAddress,
+  IN SIZE_T  NumberOfBytes);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoRegisterLastChanceShutdownNotification(
-  IN PDEVICE_OBJECT DeviceObject);
+MmProbeAndLockProcessPages(
+  IN OUT PMDL  MemoryDescriptorList,
+  IN PEPROCESS  Process,
+  IN KPROCESSOR_MODE  AccessMode,
+  IN LOCK_OPERATION  Operation);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-IoSetTopLevelIrp(
-  IN PIRP Irp OPTIONAL);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+MmUnmapLockedPages(
+  IN PVOID  BaseAddress,
+  IN PMDL  MemoryDescriptorList);
 
 
+#endif
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoCsqInitialize(
-  IN PIO_CSQ Csq,
-  IN PIO_CSQ_INSERT_IRP CsqInsertIrp,
-  IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
-  IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
-  IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
-  IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
-  IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoCsqInsertIrp(
-  IN PIO_CSQ Csq,
-  IN PIRP Irp,
-  IN PIO_CSQ_IRP_CONTEXT Context OPTIONAL);
+MmAdvanceMdl(
+  IN OUT PMDL  Mdl,
+  IN ULONG  NumberOfBytes);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PIRP
+PVOID
 NTAPI
 NTAPI
-IoCsqRemoveIrp(
-  IN PIO_CSQ Csq,
-  IN PIO_CSQ_IRP_CONTEXT Context);
+MmAllocateMappingAddress(
+  IN SIZE_T  NumberOfBytes,
+  IN ULONG  PoolTag);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PIRP
+VOID
 NTAPI
 NTAPI
-IoCsqRemoveNextIrp(
-  IN PIO_CSQ Csq,
-  IN PVOID PeekContext OPTIONAL);
+MmFreeMappingAddress(
+  IN PVOID  BaseAddress,
+  IN ULONG  PoolTag);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+NTSTATUS
 NTAPI
 NTAPI
-IoForwardIrpSynchronously(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIRP Irp);
-
-#define IoForwardAndCatchIrp IoForwardIrpSynchronously
+MmIsVerifierEnabled(
+  OUT PULONG  VerifierFlags);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PVOID
 NTAPI
 NTAPI
-IoFreeErrorLogEntry(
-  PVOID ElEntry);
+MmMapLockedPagesWithReservedMapping(
+  IN PVOID  MappingAddress,
+  IN ULONG  PoolTag,
+  IN PMDL  MemoryDescriptorList,
+  IN MEMORY_CACHING_TYPE  CacheType);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoSetCompletionRoutineEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIRP Irp,
-  IN PIO_COMPLETION_ROUTINE CompletionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN InvokeOnSuccess,
-  IN BOOLEAN InvokeOnError,
-  IN BOOLEAN InvokeOnCancel);
+MmProtectMdlSystemAddress(
+  IN PMDL  MemoryDescriptorList,
+  IN ULONG  NewProtect);
 
 
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-IoSetStartIoAttributes(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN DeferredStartIo,
-  IN BOOLEAN NonCancelable);
+MmUnmapReservedMapping(
+  IN PVOID  BaseAddress,
+  IN ULONG  PoolTag,
+  IN PMDL  MemoryDescriptorList);
+
+#endif
 
 
+#if (NTDDI_VERSION >= NTDDI_WS03SP1)
 NTKERNELAPI
 NTKERNELAPI
-NTSTATUS
+PMDL
 NTAPI
 NTAPI
-IoWMIDeviceObjectToInstanceName(
-  IN PVOID DataBlockObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  OUT PUNICODE_STRING InstanceName);
+MmAllocatePagesForMdlEx(
+  IN PHYSICAL_ADDRESS LowAddress,
+  IN PHYSICAL_ADDRESS HighAddress,
+  IN PHYSICAL_ADDRESS SkipBytes,
+  IN SIZE_T TotalBytes,
+  IN MEMORY_CACHING_TYPE CacheType,
+  IN ULONG Flags);
+#endif
+
+/******************************************************************************
+ *                            Security Manager Functions                      *
+ ******************************************************************************/
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-IoWMIExecuteMethod(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN ULONG MethodId,
-  IN ULONG InBufferSize,
-  IN OUT PULONG OutBufferSize,
-  IN OUT  PUCHAR InOutBuffer);
+SeAccessCheck(
+  IN PSECURITY_DESCRIPTOR  SecurityDescriptor,
+  IN PSECURITY_SUBJECT_CONTEXT  SubjectSecurityContext,
+  IN BOOLEAN  SubjectContextLocked,
+  IN ACCESS_MASK  DesiredAccess,
+  IN ACCESS_MASK  PreviouslyGrantedAccess,
+  OUT PPRIVILEGE_SET  *Privileges  OPTIONAL,
+  IN PGENERIC_MAPPING  GenericMapping,
+  IN KPROCESSOR_MODE  AccessMode,
+  OUT PACCESS_MASK  GrantedAccess,
+  OUT PNTSTATUS  AccessStatus);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoWMIHandleToInstanceName(
-  IN PVOID DataBlockObject,
-  IN HANDLE FileHandle,
-  OUT PUNICODE_STRING InstanceName);
+SeAssignSecurity(
+  IN PSECURITY_DESCRIPTOR  ParentDescriptor  OPTIONAL,
+  IN PSECURITY_DESCRIPTOR  ExplicitDescriptor  OPTIONAL,
+  OUT PSECURITY_DESCRIPTOR  *NewDescriptor,
+  IN BOOLEAN  IsDirectoryObject,
+  IN PSECURITY_SUBJECT_CONTEXT  SubjectContext,
+  IN PGENERIC_MAPPING  GenericMapping,
+  IN POOL_TYPE  PoolType);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoWMIOpenBlock(
-  IN GUID *DataBlockGuid,
-  IN ULONG DesiredAccess,
-  OUT PVOID *DataBlockObject);
+SeAssignSecurityEx(
+  IN PSECURITY_DESCRIPTOR  ParentDescriptor  OPTIONAL,
+  IN PSECURITY_DESCRIPTOR  ExplicitDescriptor  OPTIONAL,
+  OUT PSECURITY_DESCRIPTOR  *NewDescriptor,
+  IN GUID  *ObjectType  OPTIONAL,
+  IN BOOLEAN  IsDirectoryObject,
+  IN ULONG  AutoInheritFlags,
+  IN PSECURITY_SUBJECT_CONTEXT  SubjectContext,
+  IN PGENERIC_MAPPING  GenericMapping,
+  IN POOL_TYPE  PoolType);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoWMIQueryAllData(
-  IN PVOID DataBlockObject,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
+SeDeassignSecurity(
+  IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-IoWMIQueryAllDataMultiple(
-  IN PVOID *DataBlockObjectList,
-  IN ULONG ObjectCount,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
+SeValidSecurityDescriptor(
+  IN ULONG Length,
+  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+ULONG
 NTAPI
 NTAPI
-IoWMIQuerySingleInstance(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
+SeObjectCreateSaclAccessBits(
+  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoWMISetNotificationCallback(
-  IN OUT PVOID Object,
-  IN WMI_NOTIFICATION_CALLBACK Callback,
-  IN PVOID Context OPTIONAL);
+SeReleaseSubjectContext(
+  IN OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoWMISetSingleInstance(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN ULONG Version,
-  IN ULONG ValueBufferSize,
-  IN PVOID ValueBuffer);
+SeUnlockSubjectContext(
+  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoWMISetSingleItem(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN ULONG DataItemId,
-  IN ULONG Version,
-  IN ULONG ValueBufferSize,
-  IN PVOID ValueBuffer);
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+SeCaptureSubjectContext(
+  OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
 
 
-#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
 NTKERNELAPI
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoValidateDeviceIoControlAccess(
-  IN PIRP Irp,
-  IN ULONG RequiredAccess);
-#endif
+SeLockSubjectContext(
+  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
+#if (NTDDI_VERSION >= NTDDI_WS03SP1)
 
 
-NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-IoCsqInitializeEx(
-  IN PIO_CSQ Csq,
-  IN PIO_CSQ_INSERT_IRP_EX CsqInsertIrp,
-  IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
-  IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
-  IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
-  IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
-  IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
+SeSetAuditParameter(
+  IN OUT PSE_ADT_PARAMETER_ARRAY AuditParameters,
+  IN SE_ADT_PARAMETER_TYPE Type,
+  IN ULONG Index,
+  IN PVOID Data);
 
 
-NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-IoCsqInsertIrpEx(
-  IN PIO_CSQ Csq,
-  IN PIRP Irp,
-  IN PIO_CSQ_IRP_CONTEXT Context OPTIONAL,
-  IN PVOID InsertContext OPTIONAL);
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
+SeReportSecurityEvent(
+  IN ULONG Flags,
+  IN PUNICODE_STRING SourceName,
+  IN PSID UserSid OPTIONAL,
+  IN PSE_ADT_PARAMETER_ARRAY AuditParameters);
 
 
+#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 
 NTKERNELAPI
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 
 NTKERNELAPI
-NTSTATUS
+ULONG
+NTAPI
+SeComputeAutoInheritByObjectType(
+  IN PVOID ObjectType,
+  IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL,
+  IN PSECURITY_DESCRIPTOR ParentSecurityDescriptor OPTIONAL);
+
+#ifdef SE_NTFS_WORLD_CACHE
+VOID
 NTAPI
 NTAPI
-IoGetBootDiskInformationLite(
-  OUT PBOOTDISK_INFORMATION_LITE *BootDiskInformation);
+SeGetWorldRights(
+  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+  IN PGENERIC_MAPPING GenericMapping,
+  OUT PACCESS_MASK GrantedAccess);
+#endif /* SE_NTFS_WORLD_CACHE */
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+
+/******************************************************************************
+ *                         Configuration Manager Functions                    *
+ ******************************************************************************/
 
 
+#if (NTDDI_VERSION >= NTDDI_WINXP)
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoCheckShareAccessEx(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess,
-  IN BOOLEAN Update,
-  IN PBOOLEAN WritePermission);
+CmRegisterCallback(
+  IN PEX_CALLBACK_FUNCTION  Function,
+  IN PVOID  Context  OPTIONAL,
+  OUT PLARGE_INTEGER  Cookie);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-IoConnectInterruptEx(
-  IN OUT PIO_CONNECT_INTERRUPT_PARAMETERS Parameters);
+CmUnRegisterCallback(
+  IN LARGE_INTEGER  Cookie);
+#endif
 
 
-NTKERNELAPI
+
+/******************************************************************************
+ *                         I/O Manager Functions                              *
+ ******************************************************************************/
+
+#if !defined(_M_AMD64)
+NTHALAPI
 VOID
 NTAPI
 VOID
 NTAPI
-IoDisconnectInterruptEx(
-  IN PIO_DISCONNECT_INTERRUPT_PARAMETERS Parameters);
+READ_PORT_BUFFER_UCHAR(
+  IN PUCHAR Port,
+  IN PUCHAR Buffer,
+  IN ULONG Count);
 
 
-LOGICAL
+NTHALAPI
+VOID
 NTAPI
 NTAPI
-IoWithinStackLimits(
-  IN ULONG_PTR RegionStart,
-  IN SIZE_T RegionSize);
+READ_PORT_BUFFER_ULONG(
+  IN PULONG Port,
+  IN PULONG Buffer,
+  IN ULONG Count);
 
 
-NTKERNELAPI
+NTHALAPI
 VOID
 NTAPI
 VOID
 NTAPI
-IoSetShareAccessEx(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  OUT PSHARE_ACCESS ShareAccess,
-  IN PBOOLEAN WritePermission);
+READ_PORT_BUFFER_USHORT(
+  IN PUSHORT Port,
+  IN PUSHORT Buffer,
+  IN ULONG Count);
+
+NTHALAPI
+UCHAR
+NTAPI
+READ_PORT_UCHAR(
+  IN PUCHAR Port);
 
 
+NTHALAPI
 ULONG
 NTAPI
 ULONG
 NTAPI
-IoSizeofWorkItem(VOID);
+READ_PORT_ULONG(
+  IN PULONG Port);
+
+NTHALAPI
+USHORT
+NTAPI
+READ_PORT_USHORT(
+  IN PUSHORT Port);
 
 
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-IoInitializeWorkItem(
-  IN PVOID IoObject,
-  IN PIO_WORKITEM IoWorkItem);
+READ_REGISTER_BUFFER_UCHAR(
+  IN PUCHAR Register,
+  IN PUCHAR Buffer,
+  IN ULONG Count);
 
 
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-IoUninitializeWorkItem(
-  IN PIO_WORKITEM IoWorkItem);
+READ_REGISTER_BUFFER_ULONG(
+  IN PULONG Register,
+  IN PULONG Buffer,
+  IN ULONG Count);
 
 
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-IoQueueWorkItemEx(
-  IN PIO_WORKITEM IoWorkItem,
-  IN PIO_WORKITEM_ROUTINE_EX WorkerRoutine,
-  IN WORK_QUEUE_TYPE QueueType,
-  IN PVOID Context OPTIONAL);
+READ_REGISTER_BUFFER_USHORT(
+  IN PUSHORT Register,
+  IN PUSHORT Buffer,
+  IN ULONG Count);
 
 
-IO_PRIORITY_HINT
+NTKERNELAPI
+UCHAR
 NTAPI
 NTAPI
-IoGetIoPriorityHint(
-  IN PIRP Irp);
+READ_REGISTER_UCHAR(
+  IN PUCHAR Register);
 
 
-NTSTATUS
+NTKERNELAPI
+ULONG
 NTAPI
 NTAPI
-IoSetIoPriorityHint(
-  IN PIRP Irp,
-  IN IO_PRIORITY_HINT PriorityHint);
+READ_REGISTER_ULONG(
+  IN PULONG Register);
 
 
-NTSTATUS
+NTKERNELAPI
+USHORT
 NTAPI
 NTAPI
-IoAllocateSfioStreamIdentifier(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG Length,
-  IN PVOID Signature,
-  OUT PVOID *StreamIdentifier);
+READ_REGISTER_USHORT(
+  IN PUSHORT Register);
+
+NTHALAPI
+VOID
+NTAPI
+WRITE_PORT_BUFFER_UCHAR(
+  IN PUCHAR Port,
+  IN PUCHAR Buffer,
+  IN ULONG Count);
+
+NTHALAPI
+VOID
+NTAPI
+WRITE_PORT_BUFFER_ULONG(
+  IN PULONG Port,
+  IN PULONG Buffer,
+  IN ULONG Count);
+
+NTHALAPI
+VOID
+NTAPI
+WRITE_PORT_BUFFER_USHORT(
+  IN PUSHORT Port,
+  IN PUSHORT Buffer,
+  IN ULONG Count);
 
 
-PVOID
+NTHALAPI
+VOID
 NTAPI
 NTAPI
-IoGetSfioStreamIdentifier(
-  IN PFILE_OBJECT FileObject,
-  IN PVOID Signature);
+WRITE_PORT_UCHAR(
+  IN PUCHAR Port,
+  IN UCHAR Value);
 
 
-NTSTATUS
+NTHALAPI
+VOID
 NTAPI
 NTAPI
-IoFreeSfioStreamIdentifier(
-  IN PFILE_OBJECT FileObject,
-  IN PVOID Signature);
+WRITE_PORT_ULONG(
+  IN PULONG Port,
+  IN ULONG Value);
 
 
-NTKERNELAPI
-NTSTATUS
+NTHALAPI
+VOID
 NTAPI
 NTAPI
-IoRequestDeviceEjectEx(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN PIO_DEVICE_EJECT_CALLBACK Callback OPTIONAL,
-  IN PVOID Context OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject OPTIONAL);
+WRITE_PORT_USHORT(
+  IN PUSHORT Port,
+  IN USHORT Value);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoSetDevicePropertyData(
-  IN PDEVICE_OBJECT     Pdo,
-  IN CONST DEVPROPKEY   *PropertyKey,
-  IN LCID               Lcid,
-  IN ULONG              Flags,
-  IN DEVPROPTYPE        Type,
-  IN ULONG              Size,
-  IN PVOID          Data OPTIONAL);
+WRITE_REGISTER_BUFFER_UCHAR(
+  IN PUCHAR Register,
+  IN PUCHAR Buffer,
+  IN ULONG Count);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoGetDevicePropertyData(
-  PDEVICE_OBJECT Pdo,
-  CONST DEVPROPKEY *PropertyKey,
-  LCID Lcid,
-  ULONG Flags,
-  ULONG Size,
-  PVOID Data,
-  PULONG RequiredSize,
-  PDEVPROPTYPE Type);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#define IoCallDriverStackSafeDefault(a, b) IoCallDriver(a, b)
+WRITE_REGISTER_BUFFER_ULONG(
+  IN PULONG  Register,
+  IN PULONG  Buffer,
+  IN ULONG  Count);
 
 
-#if (NTDDI_VERSION >= NTDDI_WS08)
 NTKERNELAPI
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoReplacePartitionUnit(
-  IN PDEVICE_OBJECT TargetPdo,
-  IN PDEVICE_OBJECT SparePdo,
-  IN ULONG Flags);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
+WRITE_REGISTER_BUFFER_USHORT(
+  IN PUSHORT Register,
+  IN PUSHORT Buffer,
+  IN ULONG Count);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetAffinityInterrupt(
-  IN PKINTERRUPT InterruptObject,
-  OUT PGROUP_AFFINITY GroupAffinity);
-
-NTSTATUS
-NTAPI
-IoGetContainerInformation(
-  IN IO_CONTAINER_INFORMATION_CLASS InformationClass,
-  IN PVOID ContainerObject OPTIONAL,
-  IN OUT PVOID Buffer OPTIONAL,
-  IN ULONG BufferLength);
-
-NTSTATUS
-NTAPI
-IoRegisterContainerNotification(
-  IN IO_CONTAINER_NOTIFICATION_CLASS NotificationClass,
-  IN PIO_CONTAINER_NOTIFICATION_FUNCTION CallbackFunction,
-  IN PVOID NotificationInformation OPTIONAL,
-  IN ULONG NotificationInformationLength,
-  OUT PVOID CallbackRegistration);
-
 VOID
 NTAPI
 VOID
 NTAPI
-IoUnregisterContainerNotification(
-  IN PVOID CallbackRegistration);
+WRITE_REGISTER_UCHAR(
+  IN PUCHAR Register,
+  IN UCHAR Value);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoUnregisterPlugPlayNotificationEx(
-  IN PVOID NotificationEntry);
+WRITE_REGISTER_ULONG(
+  IN PULONG Register,
+  IN ULONG Value);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-IoGetDeviceNumaNode(
-  IN PDEVICE_OBJECT Pdo,
-  OUT PUSHORT NodeNumber);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+WRITE_REGISTER_USHORT(
+  IN PUSHORT  Register,
+  IN USHORT  Value);
 
 
-#if defined(_WIN64)
-NTKERNELAPI
-ULONG
-NTAPI
-IoWMIDeviceObjectToProviderId(
-  IN PDEVICE_OBJECT DeviceObject);
 #else
 #else
-#define IoWMIDeviceObjectToProviderId(DeviceObject) ((ULONG)(DeviceObject))
-#endif
 
 
-/*
- * USHORT
- * IoSizeOfIrp(
- *   IN CCHAR  StackSize)
- */
-#define IoSizeOfIrp(_StackSize) \
-  ((USHORT) (sizeof(IRP) + ((_StackSize) * (sizeof(IO_STACK_LOCATION)))))
+FORCEINLINE
+VOID
+READ_PORT_BUFFER_UCHAR(
+  IN PUCHAR Port,
+  IN PUCHAR Buffer,
+  IN ULONG Count)
+{
+    __inbytestring((USHORT)(ULONG_PTR)Port, Buffer, Count);
+}
 
 FORCEINLINE
 VOID
 
 FORCEINLINE
 VOID
-IoSkipCurrentIrpStackLocation(
-  IN OUT PIRP Irp)
+READ_PORT_BUFFER_ULONG(
+  IN PULONG  Port,
+  IN PULONG  Buffer,
+  IN ULONG  Count)
 {
 {
-  ASSERT(Irp->CurrentLocation <= Irp->StackCount);
-  Irp->CurrentLocation++;
-  Irp->Tail.Overlay.CurrentStackLocation++;
+    __indwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
 }
 
 FORCEINLINE
 VOID
 }
 
 FORCEINLINE
 VOID
-IoSetNextIrpStackLocation(
-  IN OUT PIRP Irp)
+READ_PORT_BUFFER_USHORT(
+  IN PUSHORT Port,
+  IN PUSHORT Buffer,
+  IN ULONG Count)
 {
 {
-  ASSERT(Irp->CurrentLocation > 0);
-  Irp->CurrentLocation--;
-  Irp->Tail.Overlay.CurrentStackLocation--;
+    __inwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
 }
 
 FORCEINLINE
 }
 
 FORCEINLINE
-PIO_STACK_LOCATION
-IoGetNextIrpStackLocation(
-  IN PIRP Irp)
+UCHAR
+READ_PORT_UCHAR(
+  IN PUCHAR Port)
 {
 {
-  ASSERT(Irp->CurrentLocation > 0);
-  return ((Irp)->Tail.Overlay.CurrentStackLocation - 1 );
+    return __inbyte((USHORT)(ULONG_PTR)Port);
 }
 
 FORCEINLINE
 }
 
 FORCEINLINE
-VOID
-IoSetCompletionRoutine(
-  IN PIRP Irp,
-  IN PIO_COMPLETION_ROUTINE CompletionRoutine OPTIONAL,
-  IN PVOID Context OPTIONAL,
-  IN BOOLEAN InvokeOnSuccess,
-  IN BOOLEAN InvokeOnError,
-  IN BOOLEAN InvokeOnCancel)
+ULONG
+READ_PORT_ULONG(
+  IN PULONG Port)
 {
 {
-  PIO_STACK_LOCATION irpSp;
-  ASSERT( (InvokeOnSuccess || InvokeOnError || InvokeOnCancel) ? (CompletionRoutine != NULL) : TRUE );
-  irpSp = IoGetNextIrpStackLocation(Irp);
-  irpSp->CompletionRoutine = CompletionRoutine;
-  irpSp->Context = Context;
-  irpSp->Control = 0;
+    return __indword((USHORT)(ULONG_PTR)Port);
+}
 
 
-  if (InvokeOnSuccess) {
-    irpSp->Control = SL_INVOKE_ON_SUCCESS;
-  }
+FORCEINLINE
+USHORT
+READ_PORT_USHORT(
+  IN PUSHORT Port)
+{
+    return __inword((USHORT)(ULONG_PTR)Port);
+}
 
 
-  if (InvokeOnError) {
-    irpSp->Control |= SL_INVOKE_ON_ERROR;
-  }
+FORCEINLINE
+VOID
+READ_REGISTER_BUFFER_UCHAR(
+  IN PUCHAR Register,
+  IN PUCHAR Buffer,
+  IN ULONG Count)
+{
+    __movsb(Register, Buffer, Count);
+}
 
 
-  if (InvokeOnCancel) {
-    irpSp->Control |= SL_INVOKE_ON_CANCEL;
-  }
+FORCEINLINE
+VOID
+READ_REGISTER_BUFFER_ULONG(
+  IN PULONG  Register,
+  IN PULONG  Buffer,
+  IN ULONG  Count)
+{
+    __movsd(Register, Buffer, Count);
 }
 
 }
 
-/*
- * PDRIVER_CANCEL
- * IoSetCancelRoutine(
- *   IN PIRP  Irp,
- *   IN PDRIVER_CANCEL  CancelRoutine)
- */
-#define IoSetCancelRoutine(_Irp, \
-                           _CancelRoutine) \
-  ((PDRIVER_CANCEL) (ULONG_PTR) InterlockedExchangePointer( \
-    (PVOID *) &(_Irp)->CancelRoutine, (PVOID) (ULONG_PTR) (_CancelRoutine)))
+FORCEINLINE
+VOID
+READ_REGISTER_BUFFER_USHORT(
+  IN PUSHORT  Register,
+  IN PUSHORT  Buffer,
+  IN ULONG  Count)
+{
+    __movsw(Register, Buffer, Count);
+}
 
 
-/*
- * VOID
- * IoRequestDpc(
- *   IN PDEVICE_OBJECT  DeviceObject,
- *   IN PIRP  Irp,
- *   IN PVOID  Context);
- */
-#define IoRequestDpc(DeviceObject, Irp, Context)( \
-  KeInsertQueueDpc(&(DeviceObject)->Dpc, (Irp), (Context)))
+FORCEINLINE
+UCHAR
+READ_REGISTER_UCHAR(
+  IN volatile UCHAR *Register)
+{
+    return *Register;
+}
 
 
-/*
- * VOID
- * IoReleaseRemoveLock(
- *   IN PIO_REMOVE_LOCK  RemoveLock,
- *   IN PVOID  Tag)
- */
-#define IoReleaseRemoveLock(_RemoveLock, \
-                            _Tag) \
-  IoReleaseRemoveLockEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
+FORCEINLINE
+ULONG
+READ_REGISTER_ULONG(
+  IN volatile ULONG *Register)
+{
+    return *Register;
+}
 
 
-/*
- * VOID
- * IoReleaseRemoveLockAndWait(
- *   IN PIO_REMOVE_LOCK  RemoveLock,
- *   IN PVOID  Tag)
- */
-#define IoReleaseRemoveLockAndWait(_RemoveLock, \
-                                   _Tag) \
-  IoReleaseRemoveLockAndWaitEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
+FORCEINLINE
+USHORT
+READ_REGISTER_USHORT(
+  IN volatile USHORT *Register)
+{
+    return *Register;
+}
 
 
-#if defined(_WIN64)
-NTKERNELAPI
-BOOLEAN
-IoIs32bitProcess(
-  IN PIRP Irp OPTIONAL);
-#endif
+FORCEINLINE
+VOID
+WRITE_PORT_BUFFER_UCHAR(
+  IN PUCHAR Port,
+  IN PUCHAR Buffer,
+  IN ULONG Count)
+{
+    __outbytestring((USHORT)(ULONG_PTR)Port, Buffer, Count);
+}
 
 
-#define PLUGPLAY_REGKEY_DEVICE                            1
-#define PLUGPLAY_REGKEY_DRIVER                            2
-#define PLUGPLAY_REGKEY_CURRENT_HWPROFILE                 4
+FORCEINLINE
+VOID
+WRITE_PORT_BUFFER_ULONG(
+  IN PULONG Port,
+  IN PULONG Buffer,
+  IN ULONG Count)
+{
+    __outdwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
+}
 
 FORCEINLINE
 
 FORCEINLINE
-PIO_STACK_LOCATION
-IoGetCurrentIrpStackLocation(
-  IN PIRP Irp)
+VOID
+WRITE_PORT_BUFFER_USHORT(
+  IN PUSHORT Port,
+  IN PUSHORT Buffer,
+  IN ULONG Count)
+{
+    __outwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
+}
+
+FORCEINLINE
+VOID
+WRITE_PORT_UCHAR(
+  IN PUCHAR Port,
+  IN UCHAR Value)
 {
 {
-  ASSERT(Irp->CurrentLocation <= Irp->StackCount + 1);
-  return Irp->Tail.Overlay.CurrentStackLocation;
+    __outbyte((USHORT)(ULONG_PTR)Port, Value);
 }
 
 FORCEINLINE
 VOID
 }
 
 FORCEINLINE
 VOID
-IoMarkIrpPending(
-  IN OUT PIRP Irp)
+WRITE_PORT_ULONG(
+  IN PULONG Port,
+  IN ULONG Value)
 {
 {
-  IoGetCurrentIrpStackLocation( (Irp) )->Control |= SL_PENDING_RETURNED;
+    __outdword((USHORT)(ULONG_PTR)Port, Value);
 }
 
 }
 
-/*
- * BOOLEAN
- * IoIsErrorUserInduced(
- *   IN NTSTATUS  Status);
- */
-#define IoIsErrorUserInduced(Status) \
-   ((BOOLEAN)(((Status) == STATUS_DEVICE_NOT_READY) || \
-   ((Status) == STATUS_IO_TIMEOUT) || \
-   ((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \
-   ((Status) == STATUS_NO_MEDIA_IN_DEVICE) || \
-   ((Status) == STATUS_VERIFY_REQUIRED) || \
-   ((Status) == STATUS_UNRECOGNIZED_MEDIA) || \
-   ((Status) == STATUS_WRONG_VOLUME)))
-
-/* VOID
- * IoInitializeRemoveLock(
- *   IN PIO_REMOVE_LOCK  Lock,
- *   IN ULONG  AllocateTag,
- *   IN ULONG  MaxLockedMinutes,
- *   IN ULONG  HighWatermark)
- */
-#define IoInitializeRemoveLock( \
-  Lock, AllocateTag, MaxLockedMinutes, HighWatermark) \
-  IoInitializeRemoveLockEx(Lock, AllocateTag, MaxLockedMinutes, \
-    HighWatermark, sizeof(IO_REMOVE_LOCK))
-
-VOID
 FORCEINLINE
 FORCEINLINE
-IoInitializeDpcRequest(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIO_DPC_ROUTINE DpcRoutine)
+VOID
+WRITE_PORT_USHORT(
+  IN PUSHORT Port,
+  IN USHORT Value)
 {
 {
-  KeInitializeDpc( &DeviceObject->Dpc,
-                   (PKDEFERRED_ROUTINE) DpcRoutine,
-                   DeviceObject );
+    __outword((USHORT)(ULONG_PTR)Port, Value);
 }
 
 }
 
-#define DEVICE_INTERFACE_INCLUDE_NONACTIVE 0x00000001
-
-/*
- * ULONG
- * IoGetFunctionCodeFromCtlCode(
- *   IN ULONG  ControlCode)
- */
-#define IoGetFunctionCodeFromCtlCode(_ControlCode) \
-  (((_ControlCode) >> 2) & 0x00000FFF)
-
 FORCEINLINE
 VOID
 FORCEINLINE
 VOID
-IoCopyCurrentIrpStackLocationToNext(
-  IN OUT PIRP Irp)
+WRITE_REGISTER_BUFFER_UCHAR(
+  IN PUCHAR Register,
+  IN PUCHAR Buffer,
+  IN ULONG Count)
 {
 {
-  PIO_STACK_LOCATION irpSp;
-  PIO_STACK_LOCATION nextIrpSp;
-  irpSp = IoGetCurrentIrpStackLocation(Irp);
-  nextIrpSp = IoGetNextIrpStackLocation(Irp);
-  RtlCopyMemory( nextIrpSp, irpSp, FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine));
-  nextIrpSp->Control = 0;
+    LONG Synch;
+    __movsb(Register, Buffer, Count);
+    InterlockedOr(&Synch, 1);
 }
 
 }
 
-NTKERNELAPI
+FORCEINLINE
 VOID
 VOID
-NTAPI
-IoGetStackLimits(
-  OUT PULONG_PTR LowLimit,
-  OUT PULONG_PTR HighLimit);
+WRITE_REGISTER_BUFFER_ULONG(
+  IN PULONG Register,
+  IN PULONG Buffer,
+  IN ULONG Count)
+{
+    LONG Synch;
+    __movsd(Register, Buffer, Count);
+    InterlockedOr(&Synch, 1);
+}
 
 FORCEINLINE
 
 FORCEINLINE
-ULONG_PTR
-IoGetRemainingStackSize(VOID)
+VOID
+WRITE_REGISTER_BUFFER_USHORT(
+  IN PUSHORT Register,
+  IN PUSHORT Buffer,
+  IN ULONG Count)
 {
 {
-  ULONG_PTR End, Begin;
-  ULONG_PTR Result;
+    LONG Synch;
+    __movsw(Register, Buffer, Count);
+    InterlockedOr(&Synch, 1);
+}
 
 
-  IoGetStackLimits(&Begin, &End);
-  Result = (ULONG_PTR)(&End) - Begin;
-  return Result;
+FORCEINLINE
+VOID
+WRITE_REGISTER_UCHAR(
+  IN volatile UCHAR *Register,
+  IN UCHAR Value)
+{
+    LONG Synch;
+    *Register = Value;
+    InterlockedOr(&Synch, 1);
 }
 
 }
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
+FORCEINLINE
 VOID
 VOID
+WRITE_REGISTER_ULONG(
+  IN volatile ULONG *Register,
+  IN ULONG Value)
+{
+    LONG Synch;
+    *Register = Value;
+    InterlockedOr(&Synch, 1);
+}
+
 FORCEINLINE
 FORCEINLINE
-IoInitializeThreadedDpcRequest(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIO_DPC_ROUTINE DpcRoutine)
+VOID
+WRITE_REGISTER_USHORT(
+  IN volatile USHORT *Register,
+  IN USHORT Value)
 {
 {
-  KeInitializeThreadedDpc(&DeviceObject->Dpc,
-                          (PKDEFERRED_ROUTINE) DpcRoutine,
-                          DeviceObject );
+    LONG Sync;
+    *Register = Value;
+    InterlockedOr(&Sync, 1);
 }
 #endif
 
 }
 #endif
 
-/******************************************************************************
- *                     Power Management Support Functions                     *
- ******************************************************************************/
-
-#define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
+#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && \
+   (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#define DMA_MACROS_DEFINED
 
 
-NTKERNELAPI
+FORCEINLINE
 NTSTATUS
 NTSTATUS
-NTAPI
-PoCallDriver(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN OUT struct _IRP *Irp);
-
-NTKERNELAPI
-PULONG
-NTAPI
-PoRegisterDeviceForIdleDetection(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN ULONG ConservationIdleTime,
-  IN ULONG PerformanceIdleTime,
-  IN DEVICE_POWER_STATE State);
-
-NTKERNELAPI
-PVOID
-NTAPI
-PoRegisterSystemState(
-  IN OUT PVOID StateHandle OPTIONAL,
-  IN EXECUTION_STATE Flags);
+IoAllocateAdapterChannel(
+    IN PDMA_ADAPTER DmaAdapter,
+    IN PDEVICE_OBJECT DeviceObject,
+    IN ULONG NumberOfMapRegisters,
+    IN PDRIVER_CONTROL ExecutionRoutine,
+    IN PVOID Context)
+{
+    PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel;
+    AllocateAdapterChannel =
+        *(DmaAdapter)->DmaOperations->AllocateAdapterChannel;
+    ASSERT(AllocateAdapterChannel);
+    return AllocateAdapterChannel(DmaAdapter,
+                                  DeviceObject,
+                                  NumberOfMapRegisters,
+                                  ExecutionRoutine,
+                                  Context );
+}
 
 
-NTKERNELAPI
-NTSTATUS
+FORCEINLINE
+BOOLEAN
 NTAPI
 NTAPI
-PoRequestPowerIrp(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN UCHAR MinorFunction,
-  IN POWER_STATE PowerState,
-  IN PREQUEST_POWER_COMPLETE CompletionFunction OPTIONAL,
-  IN PVOID Context OPTIONAL,
-  OUT struct _IRP **Irp OPTIONAL);
+IoFlushAdapterBuffers(
+    IN PDMA_ADAPTER DmaAdapter,
+    IN PMDL Mdl,
+    IN PVOID MapRegisterBase,
+    IN PVOID CurrentVa,
+    IN ULONG Length,
+    IN BOOLEAN WriteToDevice)
+{
+    PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers;
+    FlushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers;
+    ASSERT(FlushAdapterBuffers);
+    return FlushAdapterBuffers(DmaAdapter,
+                               Mdl,
+                               MapRegisterBase,
+                               CurrentVa,
+                               Length,
+                               WriteToDevice);
+}
 
 
-NTKERNELAPI
-POWER_STATE
+FORCEINLINE
+VOID
 NTAPI
 NTAPI
-PoSetPowerState(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN POWER_STATE_TYPE Type,
-  IN POWER_STATE State);
+IoFreeAdapterChannel(
+    IN PDMA_ADAPTER DmaAdapter)
+{
+    PFREE_ADAPTER_CHANNEL FreeAdapterChannel;
+    FreeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel;
+    ASSERT(FreeAdapterChannel);
+    FreeAdapterChannel(DmaAdapter);
+}
 
 
-NTKERNELAPI
+FORCEINLINE
 VOID
 NTAPI
 VOID
 NTAPI
-PoSetSystemState(
-  IN EXECUTION_STATE Flags);
+IoFreeMapRegisters(
+    IN PDMA_ADAPTER DmaAdapter,
+    IN PVOID MapRegisterBase,
+    IN ULONG NumberOfMapRegisters)
+{
+    PFREE_MAP_REGISTERS FreeMapRegisters;
+    FreeMapRegisters = *(DmaAdapter)->DmaOperations->FreeMapRegisters;
+    ASSERT(FreeMapRegisters);
+    FreeMapRegisters(DmaAdapter, MapRegisterBase, NumberOfMapRegisters);
+}
 
 
-NTKERNELAPI
-VOID
+FORCEINLINE
+PHYSICAL_ADDRESS
 NTAPI
 NTAPI
-PoStartNextPowerIrp(
-  IN OUT struct _IRP *Irp);
+IoMapTransfer(
+    IN PDMA_ADAPTER DmaAdapter,
+    IN PMDL Mdl,
+    IN PVOID MapRegisterBase,
+    IN PVOID CurrentVa,
+    IN OUT PULONG Length,
+    IN BOOLEAN WriteToDevice)
+{
+    PMAP_TRANSFER MapTransfer;
+
+    MapTransfer = *(DmaAdapter)->DmaOperations->MapTransfer;
+    ASSERT(MapTransfer);
+    return MapTransfer(DmaAdapter,
+                       Mdl,
+                       MapRegisterBase,
+                       CurrentVa,
+                       Length,
+                       WriteToDevice);
+}
+#endif
 
 
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTKERNELAPI
 VOID
 NTAPI
 NTKERNELAPI
 VOID
 NTAPI
-PoUnregisterSystemState(
-  IN OUT PVOID StateHandle);
+IoAcquireCancelSpinLock(
+  OUT PKIRQL  Irql);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-PoRequestShutdownEvent(
-  OUT PVOID *Event);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+IoAcquireRemoveLockEx(
+  IN PIO_REMOVE_LOCK  RemoveLock,
+  IN PVOID  Tag  OPTIONAL,
+  IN PCSTR  File,
+  IN ULONG  Line,
+  IN ULONG  RemlockSize);
+#endif
 
 
-NTKERNELAPI
-VOID
-NTAPI
-PoSetSystemWake(
-  IN OUT struct _IRP *Irp);
+/*
+ * NTSTATUS
+ * IoAcquireRemoveLock(
+ *   IN PIO_REMOVE_LOCK  RemoveLock,
+ *   IN OPTIONAL PVOID  Tag)
+ */
+#if DBG
+#define IoAcquireRemoveLock(RemoveLock, Tag) \
+  IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK))
+#else
+#define IoAcquireRemoveLock(RemoveLock, Tag) \
+  IoAcquireRemoveLockEx(RemoveLock, Tag, "", 1, sizeof (IO_REMOVE_LOCK))
+#endif
 
 
-NTKERNELAPI
-BOOLEAN
-NTAPI
-PoGetSystemWake(
-  IN struct _IRP *Irp);
+/*
+ * VOID
+ * IoAdjustPagingPathCount(
+ *   IN PLONG  Count,
+ *   IN BOOLEAN  Increment)
+ */
+#define IoAdjustPagingPathCount(_Count, \
+                                _Increment) \
+{ \
+  if (_Increment) \
+    { \
+      InterlockedIncrement(_Count); \
+    } \
+  else \
+    { \
+      InterlockedDecrement(_Count); \
+    } \
+}
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoRegisterPowerSettingCallback(
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
-  IN LPCGUID SettingGuid,
-  IN PPOWER_SETTING_CALLBACK Callback,
-  IN PVOID Context OPTIONAL,
-  OUT PVOID *Handle OPTIONAL);
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTKERNELAPI
 NTSTATUS
 
 NTKERNELAPI
 NTSTATUS
-NTAPI
-PoUnregisterPowerSettingCallback(
-  IN OUT PVOID Handle);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-NTKERNELAPI
-VOID
-NTAPI
-PoSetDeviceBusyEx(
-  IN OUT PULONG IdlePointer);
-#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
+NTAPI
+IoAllocateDriverObjectExtension(
+  IN PDRIVER_OBJECT  DriverObject,
+  IN PVOID  ClientIdentificationAddress,
+  IN ULONG  DriverObjectExtensionSize,
+  OUT PVOID  *DriverObjectExtension);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PVOID
 NTAPI
 NTAPI
-PoStartDeviceBusy(
-  IN OUT PULONG IdlePointer);
+IoAllocateErrorLogEntry(
+  IN PVOID  IoObject,
+  IN UCHAR  EntrySize);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PIRP
 NTAPI
 NTAPI
-PoEndDeviceBusy(
-  IN OUT PULONG IdlePointer);
+IoAllocateIrp(
+  IN CCHAR  StackSize,
+  IN BOOLEAN  ChargeQuota);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+PMDL
 NTAPI
 NTAPI
-PoQueryWatchdogTime(
-  IN PDEVICE_OBJECT Pdo,
-  OUT PULONG SecondsRemaining);
+IoAllocateMdl(
+  IN PVOID  VirtualAddress OPTIONAL,
+  IN ULONG  Length,
+  IN BOOLEAN  SecondaryBuffer,
+  IN BOOLEAN  ChargeQuota,
+  IN OUT PIRP  Irp  OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PIO_WORKITEM
 NTAPI
 NTAPI
-PoDeletePowerRequest(
-  IN OUT PVOID PowerRequest);
+IoAllocateWorkItem(
+  IN PDEVICE_OBJECT  DeviceObject);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-PoSetPowerRequest(
-  IN OUT PVOID PowerRequest,
-  IN POWER_REQUEST_TYPE Type);
+IoAttachDevice(
+  IN PDEVICE_OBJECT  SourceDevice,
+  IN PUNICODE_STRING  TargetDevice,
+  OUT PDEVICE_OBJECT  *AttachedDevice);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PDEVICE_OBJECT
 NTAPI
 NTAPI
-PoClearPowerRequest(
-  IN OUT PVOID PowerRequest,
-  IN POWER_REQUEST_TYPE Type);
+IoAttachDeviceToDeviceStack(
+  IN PDEVICE_OBJECT  SourceDevice,
+  IN PDEVICE_OBJECT  TargetDevice);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PIRP
 NTAPI
 NTAPI
-PoCreatePowerRequest(
-  OUT PVOID *PowerRequest,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PCOUNTED_REASON_CONTEXT Context);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-/******************************************************************************
- *                          Executive Functions                               *
- ******************************************************************************/
-
-#define ExInterlockedIncrementLong(Addend,Lock) Exfi386InterlockedIncrementLong(Addend)
-#define ExInterlockedDecrementLong(Addend,Lock) Exfi386InterlockedDecrementLong(Addend)
-#define ExInterlockedExchangeUlong(Target, Value, Lock) Exfi386InterlockedExchangeUlong(Target, Value)
+IoBuildAsynchronousFsdRequest(
+  IN ULONG  MajorFunction,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN OUT PVOID  Buffer  OPTIONAL,
+  IN ULONG  Length  OPTIONAL,
+  IN PLARGE_INTEGER  StartingOffset  OPTIONAL,
+  IN PIO_STATUS_BLOCK  IoStatusBlock  OPTIONAL);
 
 
-#define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql))
-#define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql))
-#define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock)
-#define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock)
+NTKERNELAPI
+PIRP
+NTAPI
+IoBuildDeviceIoControlRequest(
+  IN ULONG  IoControlCode,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PVOID  InputBuffer  OPTIONAL,
+  IN ULONG  InputBufferLength,
+  OUT PVOID  OutputBuffer  OPTIONAL,
+  IN ULONG  OutputBufferLength,
+  IN BOOLEAN  InternalDeviceIoControl,
+  IN PKEVENT  Event,
+  OUT PIO_STATUS_BLOCK  IoStatusBlock);
 
 
-#define ExInitializeSListHead InitializeSListHead
+NTKERNELAPI
+VOID
+NTAPI
+IoBuildPartialMdl(
+  IN PMDL  SourceMdl,
+  IN OUT PMDL  TargetMdl,
+  IN PVOID  VirtualAddress,
+  IN ULONG  Length);
 
 
-#if defined(_NTHAL_) && defined(_X86_)
+NTKERNELAPI
+PIRP
+NTAPI
+IoBuildSynchronousFsdRequest(
+  IN ULONG  MajorFunction,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN OUT PVOID  Buffer  OPTIONAL,
+  IN ULONG  Length  OPTIONAL,
+  IN PLARGE_INTEGER  StartingOffset  OPTIONAL,
+  IN PKEVENT  Event,
+  OUT PIO_STATUS_BLOCK  IoStatusBlock);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 FASTCALL
 FASTCALL
-ExiAcquireFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
+IofCallDriver(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN OUT PIRP  Irp);
+#define IoCallDriver IofCallDriver
 
 NTKERNELAPI
 VOID
 FASTCALL
 
 NTKERNELAPI
 VOID
 FASTCALL
-ExiReleaseFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
+IofCompleteRequest(
+  IN PIRP Irp,
+  IN CCHAR PriorityBoost);
+#define IoCompleteRequest IofCompleteRequest
 
 NTKERNELAPI
 BOOLEAN
 
 NTKERNELAPI
 BOOLEAN
-FASTCALL
-ExiTryToAcquireFastMutex(
-    IN OUT PFAST_MUTEX FastMutex);
-
-#define ExAcquireFastMutex ExiAcquireFastMutex
-#define ExReleaseFastMutex ExiReleaseFastMutex
-#define ExTryToAcquireFastMutex ExiTryToAcquireFastMutex
-
-#else
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTAPI
+IoCancelIrp(
+  IN PIRP  Irp);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
-FASTCALL
-ExAcquireFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
+NTSTATUS
+NTAPI
+IoCheckShareAccess(
+  IN ACCESS_MASK  DesiredAccess,
+  IN ULONG  DesiredShareAccess,
+  IN OUT PFILE_OBJECT  FileObject,
+  IN OUT PSHARE_ACCESS  ShareAccess,
+  IN BOOLEAN  Update);
 
 NTKERNELAPI
 VOID
 FASTCALL
 
 NTKERNELAPI
 VOID
 FASTCALL
-ExReleaseFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
+IofCompleteRequest(
+  IN PIRP  Irp,
+  IN CCHAR  PriorityBoost);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExTryToAcquireFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#endif /* defined(_NTHAL_) && defined(_X86_) */
-
-#if defined(_X86_)
-#define ExInterlockedAddUlong ExfInterlockedAddUlong
-#define ExInterlockedInsertHeadList ExfInterlockedInsertHeadList
-#define ExInterlockedInsertTailList ExfInterlockedInsertTailList
-#define ExInterlockedRemoveHeadList ExfInterlockedRemoveHeadList
-#define ExInterlockedPopEntryList ExfInterlockedPopEntryList
-#define ExInterlockedPushEntryList ExfInterlockedPushEntryList
-#endif /* defined(_X86_) */
-
-#if defined(_WIN64)
+NTSTATUS
+NTAPI
+IoConnectInterrupt(
+  OUT PKINTERRUPT  *InterruptObject,
+  IN PKSERVICE_ROUTINE  ServiceRoutine,
+  IN PVOID  ServiceContext OPTIONAL,
+  IN PKSPIN_LOCK  SpinLock  OPTIONAL,
+  IN ULONG  Vector,
+  IN KIRQL  Irql,
+  IN KIRQL  SynchronizeIrql,
+  IN KINTERRUPT_MODE    InterruptMode,
+  IN BOOLEAN  ShareVector,
+  IN KAFFINITY  ProcessorEnableMask,
+  IN BOOLEAN  FloatingSave);
 
 
-#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || \
-    defined(_NTHAL_) || defined(_NTOSP_)
 NTKERNELAPI
 NTKERNELAPI
-USHORT
-ExQueryDepthSList(IN PSLIST_HEADER ListHead);
-#else
-FORCEINLINE
-USHORT
-ExQueryDepthSList(IN PSLIST_HEADER ListHead)
-{
-  return (USHORT)(ListHead->Alignment & 0xffff);
-}
-#endif
+NTSTATUS
+NTAPI
+IoCreateDevice(
+  IN PDRIVER_OBJECT  DriverObject,
+  IN ULONG  DeviceExtensionSize,
+  IN PUNICODE_STRING  DeviceName  OPTIONAL,
+  IN DEVICE_TYPE  DeviceType,
+  IN ULONG  DeviceCharacteristics,
+  IN BOOLEAN  Exclusive,
+  OUT PDEVICE_OBJECT  *DeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedFlushSList(
-  PSLIST_HEADER ListHead);
+NTSTATUS
+NTAPI
+IoCreateFile(
+  OUT PHANDLE FileHandle,
+  IN ACCESS_MASK DesiredAccess,
+  IN POBJECT_ATTRIBUTES ObjectAttributes,
+  OUT PIO_STATUS_BLOCK IoStatusBlock,
+  IN PLARGE_INTEGER AllocationSize OPTIONAL,
+  IN ULONG FileAttributes,
+  IN ULONG ShareAccess,
+  IN ULONG Disposition,
+  IN ULONG CreateOptions,
+  IN PVOID EaBuffer OPTIONAL,
+  IN ULONG EaLength,
+  IN CREATE_FILE_TYPE CreateFileType,
+  IN PVOID InternalParameters OPTIONAL,
+  IN ULONG Options);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedPopEntrySList(
-  PSLIST_HEADER ListHead);
+PKEVENT
+NTAPI
+IoCreateNotificationEvent(
+  IN PUNICODE_STRING  EventName,
+  OUT PHANDLE  EventHandle);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedPushEntrySList(
-  PSLIST_HEADER ListHead,
-  PSLIST_ENTRY ListEntry);
-
-#define ExInterlockedFlushSList(Head) \
-    ExpInterlockedFlushSList(Head)
-#define ExInterlockedPopEntrySList(Head, Lock) \
-    ExpInterlockedPopEntrySList(Head)
-#define ExInterlockedPushEntrySList(Head, Entry, Lock) \
-    ExpInterlockedPushEntrySList(Head, Entry)
-
-#else /* !defined(_WIN64) */
-
-#define ExQueryDepthSList(listhead) (listhead)->Depth
+NTSTATUS
+NTAPI
+IoCreateSymbolicLink(
+  IN PUNICODE_STRING  SymbolicLinkName,
+  IN PUNICODE_STRING  DeviceName);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSINGLE_LIST_ENTRY
-FASTCALL
-ExInterlockedFlushSList(
-  IN OUT PSLIST_HEADER ListHead);
-
-#endif /* !defined(_WIN64) */
-
-#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+PKEVENT
+NTAPI
+IoCreateSynchronizationEvent(
+  IN PUNICODE_STRING  EventName,
+  OUT PHANDLE  EventHandle);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSINGLE_LIST_ENTRY 
-FASTCALL
-ExInterlockedPopEntrySList(
-  IN PSLIST_HEADER ListHead,
-  IN PKSPIN_LOCK Lock);
+NTSTATUS
+NTAPI
+IoCreateUnprotectedSymbolicLink(
+  IN PUNICODE_STRING  SymbolicLinkName,
+  IN PUNICODE_STRING  DeviceName);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSINGLE_LIST_ENTRY 
-FASTCALL
-ExInterlockedPushEntrySList(
-  IN PSLIST_HEADER ListHead,
-  IN PSINGLE_LIST_ENTRY ListEntry,
-  IN PKSPIN_LOCK Lock);
+VOID
+NTAPI
+IoDeleteDevice(
+  IN PDEVICE_OBJECT  DeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-ExAllocateFromPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside);
+IoDeleteSymbolicLink(
+  IN PUNICODE_STRING  SymbolicLinkName);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExFreeToPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
-  IN PVOID Entry);
-
-#else /* !_WIN2K_COMPAT_SLIST_USAGE */
-
-#if !defined(_WIN64)
-#define ExInterlockedPopEntrySList(_ListHead, _Lock) \
-    InterlockedPopEntrySList(_ListHead)
-#define ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) \
-    InterlockedPushEntrySList(_ListHead, _ListEntry)
-#endif
-
-static __inline
-PVOID
-ExAllocateFromPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside)
-{
-  PVOID Entry;
-
-  Lookaside->L.TotalAllocates++;
-  Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
-  if (Entry == NULL) {
-    Lookaside->L.AllocateMisses++;
-    Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
-                                    Lookaside->L.Size,
-                                    Lookaside->L.Tag);
-  }
-  return Entry;
-}
+IoDetachDevice(
+  IN OUT PDEVICE_OBJECT  TargetDevice);
 
 
-static __inline
+NTKERNELAPI
 VOID
 VOID
-ExFreeToPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
-  IN PVOID Entry)
-{
-  Lookaside->L.TotalFrees++;
-  if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
-    Lookaside->L.FreeMisses++;
-    (Lookaside->L.Free)(Entry);
-  } else {
-    InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
-  }
-}
-
-#endif /* _WIN2K_COMPAT_SLIST_USAGE */
-
-
-/* ERESOURCE_THREAD
- * ExGetCurrentResourceThread(
- *     VOID);
- */
-#define ExGetCurrentResourceThread() ((ULONG_PTR)PsGetCurrentThread())
-
-#define ExReleaseResource(R) (ExReleaseResourceLite(R))
-
-/* VOID
- * ExInitializeWorkItem(
- *     IN PWORK_QUEUE_ITEM Item,
- *     IN PWORKER_THREAD_ROUTINE Routine,
- *     IN PVOID Context)
- */
-#define ExInitializeWorkItem(Item, Routine, Context) \
-{ \
-  (Item)->WorkerRoutine = Routine; \
-  (Item)->Parameter = Context; \
-  (Item)->List.Flink = NULL; \
-}
+NTAPI
+IoDisconnectInterrupt(
+  IN PKINTERRUPT  InterruptObject);
 
 
-FORCEINLINE
+NTKERNELAPI
 VOID
 VOID
-ExInitializeFastMutex(
-  OUT PFAST_MUTEX FastMutex)
-{
-  FastMutex->Count = FM_LOCK_BIT;
-  FastMutex->Owner = NULL;
-  FastMutex->Contention = 0;
-  KeInitializeEvent(&FastMutex->Event, SynchronizationEvent, FALSE);
-  return;
-}
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+NTAPI
+IoFreeIrp(
+  IN PIRP Irp);
 
 NTKERNELAPI
 VOID
 
 NTKERNELAPI
 VOID
-FASTCALL
-ExAcquireFastMutexUnsafe(
-  IN OUT PFAST_MUTEX FastMutex);
+NTAPI
+IoFreeMdl(
+  IN PMDL Mdl);
 
 NTKERNELAPI
 VOID
 
 NTKERNELAPI
 VOID
-FASTCALL
-ExReleaseFastMutexUnsafe(
-  IN OUT PFAST_MUTEX FastMutex);
+NTAPI
+IoFreeWorkItem(
+  IN PIO_WORKITEM IoWorkItem);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+PDEVICE_OBJECT
 NTAPI
 NTAPI
-ExAcquireResourceExclusiveLite(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
+IoGetAttachedDevice(
+  IN PDEVICE_OBJECT DeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+PDEVICE_OBJECT
 NTAPI
 NTAPI
-ExAcquireResourceSharedLite(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
+IoGetAttachedDeviceReference(
+  IN PDEVICE_OBJECT  DeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+NTSTATUS
 NTAPI
 NTAPI
-ExAcquireSharedStarveExclusive(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
+IoGetBootDiskInformation(
+  IN OUT PBOOTDISK_INFORMATION  BootDiskInformation,
+  IN ULONG  Size);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+NTSTATUS
 NTAPI
 NTAPI
-ExAcquireSharedWaitForExclusive(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
+IoGetDeviceInterfaceAlias(
+  IN PUNICODE_STRING  SymbolicLinkName,
+  IN CONST GUID  *AliasInterfaceClassGuid,
+  OUT PUNICODE_STRING  AliasSymbolicLinkName);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+PEPROCESS
 NTAPI
 NTAPI
-ExAllocatePool(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes);
+IoGetCurrentProcess(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-ExAllocatePoolWithQuota(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes);
+IoGetDeviceInterfaces(
+  IN CONST GUID  *InterfaceClassGuid,
+  IN PDEVICE_OBJECT  PhysicalDeviceObject  OPTIONAL,
+  IN ULONG  Flags,
+  OUT PWSTR  *SymbolicLinkList);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-ExAllocatePoolWithQuotaTag(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag);
+IoGetDeviceObjectPointer(
+  IN PUNICODE_STRING  ObjectName,
+  IN ACCESS_MASK  DesiredAccess,
+  OUT PFILE_OBJECT  *FileObject,
+  OUT PDEVICE_OBJECT  *DeviceObject);
 
 
-#ifndef POOL_TAGGING
-#define ExAllocatePoolWithQuotaTag(a,b,c) ExAllocatePoolWithQuota(a,b)
-#endif
+NTKERNELAPI
+NTSTATUS
+NTAPI
+IoGetDeviceProperty(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN DEVICE_REGISTRY_PROPERTY  DeviceProperty,
+  IN ULONG  BufferLength,
+  OUT PVOID  PropertyBuffer,
+  OUT PULONG  ResultLength);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+PDMA_ADAPTER
 NTAPI
 NTAPI
-ExAllocatePoolWithTag(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag);
+IoGetDmaAdapter(
+  IN PDEVICE_OBJECT  PhysicalDeviceObject OPTIONAL,
+  IN PDEVICE_DESCRIPTION  DeviceDescription,
+  IN OUT PULONG  NumberOfMapRegisters);
 
 
-#ifndef POOL_TAGGING
-#define ExAllocatePoolWithTag(a,b,c) ExAllocatePool(a,b)
-#endif
+NTKERNELAPI
+PVOID
+NTAPI
+IoGetDriverObjectExtension(
+  IN PDRIVER_OBJECT  DriverObject,
+  IN PVOID  ClientIdentificationAddress);
 
 NTKERNELAPI
 PVOID
 NTAPI
 
 NTKERNELAPI
 PVOID
 NTAPI
-ExAllocatePoolWithTagPriority(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag,
-  IN EX_POOL_PRIORITY Priority);
+IoGetInitialStack(
+  VOID);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+PDEVICE_OBJECT
 NTAPI
 NTAPI
-ExConvertExclusiveToSharedLite(
-  IN OUT PERESOURCE Resource);
+IoGetRelatedDeviceObject(
+  IN PFILE_OBJECT  FileObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-ExCreateCallback(
-  OUT PCALLBACK_OBJECT *CallbackObject,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN BOOLEAN Create,
-  IN BOOLEAN AllowMultipleCallbacks);
+IoQueueWorkItem(
+  IN PIO_WORKITEM  IoWorkItem,
+  IN PIO_WORKITEM_ROUTINE  WorkerRoutine,
+  IN WORK_QUEUE_TYPE  QueueType,
+  IN PVOID  Context OPTIONAL);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExDeleteNPagedLookasideList(
-  IN OUT PNPAGED_LOOKASIDE_LIST Lookaside);
+IoInitializeIrp(
+  IN OUT PIRP  Irp,
+  IN USHORT  PacketSize,
+  IN CCHAR  StackSize);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExDeletePagedLookasideList(
-  IN PPAGED_LOOKASIDE_LIST Lookaside);
+IoInitializeRemoveLockEx(
+  IN  PIO_REMOVE_LOCK Lock,
+  IN  ULONG   AllocateTag,
+  IN  ULONG   MaxLockedMinutes,
+  IN  ULONG   HighWatermark,
+  IN  ULONG   RemlockSize);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-ExDeleteResourceLite(
-  IN OUT PERESOURCE Resource);
+IoInitializeTimer(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PIO_TIMER_ROUTINE  TimerRoutine,
+  IN PVOID  Context OPTIONAL);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExFreePool(
-  IN PVOID P);
+IoInvalidateDeviceRelations(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN DEVICE_RELATION_TYPE  Type);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExFreePoolWithTag(
-  IN PVOID P,
-  IN ULONG Tag);
+IoInvalidateDeviceState(
+  IN PDEVICE_OBJECT  PhysicalDeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-ULONG
+BOOLEAN
 NTAPI
 NTAPI
-ExGetExclusiveWaiterCount(
-  IN PERESOURCE Resource);
+IoIsWdmVersionAvailable(
+  IN UCHAR  MajorVersion,
+  IN UCHAR  MinorVersion);
 
 NTKERNELAPI
 
 NTKERNELAPI
-KPROCESSOR_MODE
+NTSTATUS
 NTAPI
 NTAPI
-ExGetPreviousMode(VOID);
+IoOpenDeviceInterfaceRegistryKey(
+  IN PUNICODE_STRING  SymbolicLinkName,
+  IN ACCESS_MASK  DesiredAccess,
+  OUT PHANDLE  DeviceInterfaceKey);
 
 NTKERNELAPI
 
 NTKERNELAPI
-ULONG
+NTSTATUS
 NTAPI
 NTAPI
-ExGetSharedWaiterCount(
-  IN PERESOURCE Resource);
+IoOpenDeviceRegistryKey(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN ULONG  DevInstKeyType,
+  IN ACCESS_MASK  DesiredAccess,
+  OUT PHANDLE  DevInstRegKey);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-ExInitializeNPagedLookasideList(
-  IN PNPAGED_LOOKASIDE_LIST Lookaside,
-  IN PALLOCATE_FUNCTION Allocate OPTIONAL,
-  IN PFREE_FUNCTION Free OPTIONAL,
-  IN ULONG Flags,
-  IN SIZE_T Size,
-  IN ULONG Tag,
-  IN USHORT Depth);
+IoRegisterDeviceInterface(
+  IN PDEVICE_OBJECT  PhysicalDeviceObject,
+  IN CONST GUID  *InterfaceClassGuid,
+  IN PUNICODE_STRING  ReferenceString  OPTIONAL,
+  OUT PUNICODE_STRING  SymbolicLinkName);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-ExInitializePagedLookasideList(
-  IN PPAGED_LOOKASIDE_LIST Lookaside,
-  IN PALLOCATE_FUNCTION Allocate OPTIONAL,
-  IN PFREE_FUNCTION Free OPTIONAL,
-  IN ULONG Flags,
-  IN SIZE_T Size,
-  IN ULONG Tag,
-  IN USHORT Depth);
+IoRegisterPlugPlayNotification(
+  IN IO_NOTIFICATION_EVENT_CATEGORY  EventCategory,
+  IN ULONG  EventCategoryFlags,
+  IN PVOID  EventCategoryData  OPTIONAL,
+  IN PDRIVER_OBJECT  DriverObject,
+  IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE  CallbackRoutine,
+  IN OUT PVOID  Context OPTIONAL,
+  OUT PVOID  *NotificationEntry);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-ExInitializeResourceLite(
-  OUT PERESOURCE Resource);
+IoRegisterShutdownNotification(
+  IN PDEVICE_OBJECT  DeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-LARGE_INTEGER
+VOID
 NTAPI
 NTAPI
-ExInterlockedAddLargeInteger(
-  IN PLARGE_INTEGER Addend,
-  IN LARGE_INTEGER Increment,
-  IN PKSPIN_LOCK Lock);
-
-#if defined(_WIN64)
-#define ExInterlockedAddLargeStatistic(Addend, Increment) \
-    (VOID)InterlockedAdd64(&(Addend)->QuadPart, Increment)
-#else
-#define ExInterlockedAddLargeStatistic(Addend, Increment) \
-    _InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment)
-#endif
-
-NTKERNELAPI
-ULONG
-FASTCALL
-ExInterlockedAddUlong(
-  IN PULONG Addend,
-  IN ULONG Increment,
-  IN OUT PKSPIN_LOCK Lock);
-
-#if defined(_AMD64_) || defined(_IA64_)
-
-#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \
-    InterlockedCompareExchange64(Destination, *(Exchange), *(Comperand))
-
-#elif defined(_X86_)
-
-NTKERNELAPI
-LONGLONG
-FASTCALL
-ExfInterlockedCompareExchange64(
-  IN OUT LONGLONG volatile *Destination,
-  IN PLONGLONG Exchange,
-  IN PLONGLONG Comperand);
-
-#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \
-    ExfInterlockedCompareExchange64(Destination, Exchange, Comperand)
-
-#else
+IoReleaseCancelSpinLock(
+  IN KIRQL  Irql);
 
 NTKERNELAPI
 
 NTKERNELAPI
-LONGLONG
-FASTCALL
-ExInterlockedCompareExchange64(
-  IN OUT LONGLONG volatile *Destination,
-  IN PLONGLONG Exchange,
-  IN PLONGLONG Comparand,
-  IN PKSPIN_LOCK Lock);
-
-#endif /* defined(_AMD64_) || defined(_IA64_) */
+VOID
+NTAPI
+IoReleaseRemoveLockAndWaitEx(
+  IN PIO_REMOVE_LOCK  RemoveLock,
+  IN PVOID  Tag OPTIONAL,
+  IN ULONG  RemlockSize);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PLIST_ENTRY
-FASTCALL
-ExInterlockedInsertHeadList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY ListEntry,
-  IN OUT PKSPIN_LOCK Lock);
+VOID
+NTAPI
+IoReleaseRemoveLockEx(
+  IN PIO_REMOVE_LOCK  RemoveLock,
+  IN PVOID  Tag OPTIONAL,
+  IN ULONG  RemlockSize);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PLIST_ENTRY
-FASTCALL
-ExInterlockedInsertTailList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY ListEntry,
-  IN OUT PKSPIN_LOCK Lock);
+VOID
+NTAPI
+IoRemoveShareAccess(
+  IN PFILE_OBJECT  FileObject,
+  IN OUT PSHARE_ACCESS  ShareAccess);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSINGLE_LIST_ENTRY
-FASTCALL
-ExInterlockedPopEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead,
-  IN OUT PKSPIN_LOCK Lock);
+NTSTATUS
+NTAPI
+IoReportTargetDeviceChange(
+  IN PDEVICE_OBJECT  PhysicalDeviceObject,
+  IN PVOID  NotificationStructure);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PSINGLE_LIST_ENTRY
-FASTCALL
-ExInterlockedPushEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead,
-  IN OUT PSINGLE_LIST_ENTRY ListEntry,
-  IN OUT PKSPIN_LOCK Lock);
+NTSTATUS
+NTAPI
+IoReportTargetDeviceChangeAsynchronous(
+  IN PDEVICE_OBJECT  PhysicalDeviceObject,
+  IN PVOID  NotificationStructure,
+  IN PDEVICE_CHANGE_COMPLETE_CALLBACK  Callback  OPTIONAL,
+  IN PVOID  Context  OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PLIST_ENTRY
-FASTCALL
-ExInterlockedRemoveHeadList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PKSPIN_LOCK Lock);
+VOID
+NTAPI
+IoRequestDeviceEject(
+  IN PDEVICE_OBJECT  PhysicalDeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+VOID
 NTAPI
 NTAPI
-ExIsProcessorFeaturePresent(
-  IN ULONG ProcessorFeature);
+IoReuseIrp(
+  IN OUT PIRP  Irp,
+  IN NTSTATUS  Status);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
+NTSTATUS
 NTAPI
 NTAPI
-ExIsResourceAcquiredExclusiveLite(
-  IN PERESOURCE Resource);
+IoSetDeviceInterfaceState(
+  IN PUNICODE_STRING  SymbolicLinkName,
+  IN BOOLEAN  Enable);
 
 NTKERNELAPI
 
 NTKERNELAPI
-ULONG
+VOID
 NTAPI
 NTAPI
-ExIsResourceAcquiredSharedLite(
-  IN PERESOURCE Resource);
-
-#define ExIsResourceAcquiredLite ExIsResourceAcquiredSharedLite
+IoSetShareAccess(
+  IN ACCESS_MASK  DesiredAccess,
+  IN ULONG  DesiredShareAccess,
+  IN OUT PFILE_OBJECT  FileObject,
+  OUT PSHARE_ACCESS  ShareAccess);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExLocalTimeToSystemTime(
-  IN PLARGE_INTEGER LocalTime,
-  OUT PLARGE_INTEGER SystemTime);
+IoStartNextPacket(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN BOOLEAN  Cancelable);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExNotifyCallback(
-  IN PCALLBACK_OBJECT CallbackObject,
-  IN PVOID Argument1 OPTIONAL,
-  IN PVOID Argument2 OPTIONAL);
+IoStartNextPacketByKey(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN BOOLEAN  Cancelable,
+  IN ULONG  Key);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExQueueWorkItem(
-  IN OUT PWORK_QUEUE_ITEM WorkItem,
-  IN WORK_QUEUE_TYPE QueueType);
+IoStartPacket(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PIRP  Irp,
+  IN PULONG  Key  OPTIONAL,
+  IN PDRIVER_CANCEL  CancelFunction  OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-DECLSPEC_NORETURN
 VOID
 NTAPI
 VOID
 NTAPI
-ExRaiseStatus(
-  IN NTSTATUS Status);
+IoStartTimer(
+  IN PDEVICE_OBJECT  DeviceObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+VOID
 NTAPI
 NTAPI
-ExRegisterCallback(
-  IN PCALLBACK_OBJECT CallbackObject,
-  IN PCALLBACK_FUNCTION CallbackFunction,
-  IN PVOID CallbackContext OPTIONAL);
+IoStopTimer(
+  IN PDEVICE_OBJECT  DeviceObject);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-ExReinitializeResourceLite(
-  IN OUT PERESOURCE Resource);
+IoUnregisterPlugPlayNotification(
+  IN PVOID  NotificationEntry);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExReleaseResourceForThreadLite(
-  IN OUT PERESOURCE Resource,
-  IN ERESOURCE_THREAD ResourceThreadId);
+IoUnregisterShutdownNotification(
+  IN PDEVICE_OBJECT  DeviceObject);
 
 NTKERNELAPI
 VOID
 
 NTKERNELAPI
 VOID
-FASTCALL
-ExReleaseResourceLite(
-  IN OUT PERESOURCE Resource);
+NTAPI
+IoUpdateShareAccess(
+  IN PFILE_OBJECT  FileObject,
+  IN OUT PSHARE_ACCESS  ShareAccess);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-ExSetResourceOwnerPointer(
-  IN OUT PERESOURCE Resource,
-  IN PVOID OwnerPointer);
+IoWMIAllocateInstanceIds(
+  IN GUID  *Guid,
+  IN ULONG  InstanceCount,
+  OUT ULONG  *FirstInstanceId);
 
 NTKERNELAPI
 
 NTKERNELAPI
-ULONG
+NTSTATUS
 NTAPI
 NTAPI
-ExSetTimerResolution(
-  IN ULONG DesiredTime,
-  IN BOOLEAN SetResolution);
+IoWMIQuerySingleInstanceMultiple(
+  IN PVOID  *DataBlockObjectList,
+  IN PUNICODE_STRING  InstanceNames,
+  IN ULONG  ObjectCount,
+  IN OUT ULONG  *InOutBufferSize,
+  OUT PVOID  OutBuffer);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-ExSystemTimeToLocalTime(
-  IN PLARGE_INTEGER SystemTime,
-  OUT PLARGE_INTEGER LocalTime);
+IoWMIRegistrationControl(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN ULONG  Action);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+IoWMISuggestInstanceName(
+  IN PDEVICE_OBJECT  PhysicalDeviceObject OPTIONAL,
+  IN PUNICODE_STRING  SymbolicLinkName OPTIONAL,
+  IN BOOLEAN  CombineNames,
+  OUT PUNICODE_STRING  SuggestedInstanceName);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+IoWMIWriteEvent(
+  IN PVOID  WnodeEventItem);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ExUnregisterCallback(
-  IN OUT PVOID CbRegistration);
+IoWriteErrorLogEntry(
+  IN PVOID  ElEntry);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+#endif
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 NTKERNELAPI
 
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtection(
-  IN OUT PEX_RUNDOWN_REF RunRef);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExInitializeRundownProtection(
-  OUT PEX_RUNDOWN_REF RunRef);
+NTSTATUS
+NTAPI
+IoCsqInitialize(
+  IN PIO_CSQ Csq,
+  IN PIO_CSQ_INSERT_IRP CsqInsertIrp,
+  IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
+  IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
+  IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
+  IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
+  IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
 
 NTKERNELAPI
 VOID
 
 NTKERNELAPI
 VOID
-FASTCALL
-ExReInitializeRundownProtection(
-  IN OUT PEX_RUNDOWN_REF RunRef);
+NTAPI
+IoCsqInsertIrp(
+  IN PIO_CSQ Csq,
+  IN PIRP Irp,
+  IN PIO_CSQ_IRP_CONTEXT Context OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseRundownProtection(
-  IN OUT PEX_RUNDOWN_REF RunRef);
+PIRP
+NTAPI
+IoCsqRemoveIrp(
+  IN PIO_CSQ Csq,
+  IN PIO_CSQ_IRP_CONTEXT Context);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
-FASTCALL
-ExRundownCompleted(
-  OUT PEX_RUNDOWN_REF RunRef);
+PIRP
+NTAPI
+IoCsqRemoveNextIrp(
+  IN PIO_CSQ  Csq,
+  IN PVOID  PeekContext);
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
 
 NTKERNELAPI
 BOOLEAN
 NTAPI
-ExVerifySuite(
-  IN SUITE_TYPE SuiteType);
+IoForwardIrpSynchronously(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PIRP  Irp);
+
+#define IoForwardAndCatchIrp IoForwardIrpSynchronously
 
 NTKERNELAPI
 VOID
 
 NTKERNELAPI
 VOID
-FASTCALL
-ExWaitForRundownProtectionRelease(
-  IN OUT PEX_RUNDOWN_REF RunRef);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
+NTAPI
+IoFreeErrorLogEntry(
+  PVOID  ElEntry);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtectionEx(
-  IN OUT PEX_RUNDOWN_REF RunRef,
-  IN ULONG Count);
+NTSTATUS
+NTAPI
+IoSetCompletionRoutineEx(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PIRP  Irp,
+  IN PIO_COMPLETION_ROUTINE  CompletionRoutine,
+  IN PVOID  Context,
+  IN BOOLEAN  InvokeOnSuccess,
+  IN BOOLEAN  InvokeOnError,
+  IN BOOLEAN  InvokeOnCancel);
 
 
-NTKERNELAPI
 VOID
 VOID
-FASTCALL
-ExReleaseRundownProtectionEx(
-  IN OUT PEX_RUNDOWN_REF RunRef,
-  IN ULONG Count);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
+NTAPI
+IoSetStartIoAttributes(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN BOOLEAN  DeferredStartIo,
+  IN BOOLEAN  NonCancelable);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PEX_RUNDOWN_REF_CACHE_AWARE
+NTSTATUS
 NTAPI
 NTAPI
-ExAllocateCacheAwareRundownProtection(
-  IN POOL_TYPE PoolType,
-  IN ULONG PoolTag);
+IoWMIDeviceObjectToInstanceName(
+  IN PVOID  DataBlockObject,
+  IN PDEVICE_OBJECT  DeviceObject,
+  OUT PUNICODE_STRING  InstanceName);
 
 NTKERNELAPI
 
 NTKERNELAPI
-SIZE_T
+NTSTATUS
 NTAPI
 NTAPI
-ExSizeOfRundownProtectionCacheAware(VOID);
+IoWMIExecuteMethod(
+  IN PVOID  DataBlockObject,
+  IN PUNICODE_STRING  InstanceName,
+  IN ULONG  MethodId,
+  IN ULONG  InBufferSize,
+  IN OUT PULONG  OutBufferSize,
+  IN OUT  PUCHAR  InOutBuffer);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-ExEnterCriticalRegionAndAcquireResourceShared(
-  IN OUT PERESOURCE Resource);
+IoWMIHandleToInstanceName(
+  IN PVOID  DataBlockObject,
+  IN HANDLE  FileHandle,
+  OUT PUNICODE_STRING  InstanceName);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-ExEnterCriticalRegionAndAcquireResourceExclusive(
-  IN OUT PERESOURCE Resource);
+IoWMIOpenBlock(
+  IN GUID  *DataBlockGuid,
+  IN ULONG  DesiredAccess,
+  OUT PVOID  *DataBlockObject);
 
 NTKERNELAPI
 
 NTKERNELAPI
-PVOID
+NTSTATUS
 NTAPI
 NTAPI
-ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(
-  IN OUT PERESOURCE Resource);
+IoWMIQueryAllData(
+  IN PVOID  DataBlockObject,
+  IN OUT ULONG  *InOutBufferSize,
+  OUT PVOID  OutBuffer);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseResourceAndLeaveCriticalRegion(
-  IN OUT PERESOURCE Resource);
+NTSTATUS
+NTAPI
+IoWMIQueryAllDataMultiple(
+  IN PVOID  *DataBlockObjectList,
+  IN ULONG  ObjectCount,
+  IN OUT ULONG  *InOutBufferSize,
+  OUT PVOID  OutBuffer);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-ExInitializeRundownProtectionCacheAware(
-  OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware,
-  IN SIZE_T RunRefSize);
+IoWMIQuerySingleInstance(
+  IN PVOID  DataBlockObject,
+  IN PUNICODE_STRING  InstanceName,
+  IN OUT ULONG  *InOutBufferSize,
+  OUT PVOID OutBuffer);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+NTSTATUS
 NTAPI
 NTAPI
-ExFreeCacheAwareRundownProtection(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
+IoWMISetNotificationCallback(
+  IN OUT PVOID  Object,
+  IN WMI_NOTIFICATION_CALLBACK  Callback,
+  IN PVOID  Context OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtectionCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
+NTSTATUS
+NTAPI
+IoWMISetSingleInstance(
+  IN PVOID  DataBlockObject,
+  IN PUNICODE_STRING  InstanceName,
+  IN ULONG  Version,
+  IN ULONG  ValueBufferSize,
+  IN PVOID  ValueBuffer);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseRundownProtectionCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
+NTSTATUS
+NTAPI
+IoWMISetSingleItem(
+  IN PVOID  DataBlockObject,
+  IN PUNICODE_STRING  InstanceName,
+  IN ULONG  DataItemId,
+  IN ULONG  Version,
+  IN ULONG  ValueBufferSize,
+  IN PVOID  ValueBuffer);
 
 
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtectionCacheAwareEx(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware,
-  IN ULONG Count);
+#endif
 
 
+#if defined(_WIN64)
 NTKERNELAPI
 NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseRundownProtectionCacheAwareEx(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRef,
-  IN ULONG Count);
+ULONG
+NTAPI
+IoWMIDeviceObjectToProviderId(
+  IN PDEVICE_OBJECT DeviceObject);
+#else
+#define IoWMIDeviceObjectToProviderId(DeviceObject) ((ULONG)(DeviceObject))
+#endif
 
 
-NTKERNELAPI
+/*
+ * USHORT
+ * IoSizeOfIrp(
+ *   IN CCHAR  StackSize)
+ */
+#define IoSizeOfIrp(_StackSize) \
+  ((USHORT) (sizeof(IRP) + ((_StackSize) * (sizeof(IO_STACK_LOCATION)))))
+
+FORCEINLINE
 VOID
 VOID
-FASTCALL
-ExWaitForRundownProtectionReleaseCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRef);
+IoSkipCurrentIrpStackLocation (
+  IN OUT PIRP Irp)
+{
+  ASSERT(Irp->CurrentLocation <= Irp->StackCount);
+  Irp->CurrentLocation++;
+  Irp->Tail.Overlay.CurrentStackLocation++;
+}
 
 
-NTKERNELAPI
+FORCEINLINE
 VOID
 VOID
-FASTCALL
-ExReInitializeRundownProtectionCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
+IoSetNextIrpStackLocation (
+  IN OUT PIRP Irp)
+{
+  ASSERT(Irp->CurrentLocation > 0);
+  Irp->CurrentLocation--;
+  Irp->Tail.Overlay.CurrentStackLocation--;
+}
 
 
-NTKERNELAPI
+FORCEINLINE
+PIO_STACK_LOCATION
+IoGetNextIrpStackLocation(
+  IN PIRP Irp)
+{
+  ASSERT(Irp->CurrentLocation > 0);
+  return ((Irp)->Tail.Overlay.CurrentStackLocation - 1 );
+}
+
+FORCEINLINE
 VOID
 VOID
-FASTCALL
-ExRundownCompletedCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
+IoSetCompletionRoutine(
+  IN PIRP Irp,
+  IN PIO_COMPLETION_ROUTINE CompletionRoutine OPTIONAL,
+  IN PVOID Context OPTIONAL,
+  IN BOOLEAN InvokeOnSuccess,
+  IN BOOLEAN InvokeOnError,
+  IN BOOLEAN InvokeOnCancel)
+{
+  PIO_STACK_LOCATION irpSp;
+  ASSERT( (InvokeOnSuccess || InvokeOnError || InvokeOnCancel) ? (CompletionRoutine != NULL) : TRUE );
+  irpSp = IoGetNextIrpStackLocation(Irp);
+  irpSp->CompletionRoutine = CompletionRoutine;
+  irpSp->Context = Context;
+  irpSp->Control = 0;
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
+  if (InvokeOnSuccess) {
+    irpSp->Control = SL_INVOKE_ON_SUCCESS;
+  }
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+  if (InvokeOnError) {
+    irpSp->Control |= SL_INVOKE_ON_ERROR;
+  }
 
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExInitializeLookasideListEx(
-  OUT PLOOKASIDE_LIST_EX Lookaside,
-  IN PALLOCATE_FUNCTION_EX Allocate OPTIONAL,
-  IN PFREE_FUNCTION_EX Free OPTIONAL,
-  IN POOL_TYPE PoolType,
-  IN ULONG Flags,
-  IN SIZE_T Size,
-  IN ULONG Tag,
-  IN USHORT Depth);
+  if (InvokeOnCancel) {
+    irpSp->Control |= SL_INVOKE_ON_CANCEL;
+  }
+}
+
+/*
+ * PDRIVER_CANCEL
+ * IoSetCancelRoutine(
+ *   IN PIRP  Irp,
+ *   IN PDRIVER_CANCEL  CancelRoutine)
+ */
+#define IoSetCancelRoutine(_Irp, \
+                           _CancelRoutine) \
+  ((PDRIVER_CANCEL) (ULONG_PTR) InterlockedExchangePointer( \
+    (PVOID *) &(_Irp)->CancelRoutine, (PVOID) (ULONG_PTR) (_CancelRoutine)))
+
+/*
+ * VOID
+ * IoRequestDpc(
+ *   IN PDEVICE_OBJECT  DeviceObject,
+ *   IN PIRP  Irp,
+ *   IN PVOID  Context);
+ */
+#define IoRequestDpc(DeviceObject, Irp, Context)( \
+  KeInsertQueueDpc(&(DeviceObject)->Dpc, (Irp), (Context)))
+
+/*
+ * VOID
+ * IoReleaseRemoveLock(
+ *   IN PIO_REMOVE_LOCK  RemoveLock,
+ *   IN PVOID  Tag)
+ */
+#define IoReleaseRemoveLock(_RemoveLock, \
+                            _Tag) \
+  IoReleaseRemoveLockEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
+
+/*
+ * VOID
+ * IoReleaseRemoveLockAndWait(
+ *   IN PIO_REMOVE_LOCK  RemoveLock,
+ *   IN PVOID  Tag)
+ */
+#define IoReleaseRemoveLockAndWait(_RemoveLock, \
+                                   _Tag) \
+  IoReleaseRemoveLockAndWaitEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
+
+#if defined(_WIN64)
 
 NTKERNELAPI
 
 NTKERNELAPI
+BOOLEAN
+IoIs32bitProcess(
+  IN PIRP  Irp  OPTIONAL);
+
+#endif
+
+#define PLUGPLAY_REGKEY_DEVICE                            1
+#define PLUGPLAY_REGKEY_DRIVER                            2
+#define PLUGPLAY_REGKEY_CURRENT_HWPROFILE                 4
+
+FORCEINLINE
+PIO_STACK_LOCATION
+IoGetCurrentIrpStackLocation(
+  IN PIRP Irp)
+{
+  ASSERT(Irp->CurrentLocation <= Irp->StackCount + 1);
+  return Irp->Tail.Overlay.CurrentStackLocation;
+}
+
+FORCEINLINE
 VOID
 VOID
-NTAPI
-ExDeleteLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
+IoMarkIrpPending(
+  IN OUT PIRP Irp)
+{
+  IoGetCurrentIrpStackLocation( (Irp) )->Control |= SL_PENDING_RETURNED;
+}
+
+/*
+ * BOOLEAN
+ * IoIsErrorUserInduced(
+ *   IN NTSTATUS  Status);
+ */
+#define IoIsErrorUserInduced(Status) \
+   ((BOOLEAN)(((Status) == STATUS_DEVICE_NOT_READY) || \
+   ((Status) == STATUS_IO_TIMEOUT) || \
+   ((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \
+   ((Status) == STATUS_NO_MEDIA_IN_DEVICE) || \
+   ((Status) == STATUS_VERIFY_REQUIRED) || \
+   ((Status) == STATUS_UNRECOGNIZED_MEDIA) || \
+   ((Status) == STATUS_WRONG_VOLUME)))
 
 
-NTKERNELAPI
-VOID
-NTAPI
-ExFlushLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
+/* VOID
+ * IoInitializeRemoveLock(
+ *   IN PIO_REMOVE_LOCK  Lock,
+ *   IN ULONG  AllocateTag,
+ *   IN ULONG  MaxLockedMinutes,
+ *   IN ULONG  HighWatermark)
+ */
+#define IoInitializeRemoveLock( \
+  Lock, AllocateTag, MaxLockedMinutes, HighWatermark) \
+  IoInitializeRemoveLockEx(Lock, AllocateTag, MaxLockedMinutes, \
+    HighWatermark, sizeof(IO_REMOVE_LOCK))
 
 
+VOID
 FORCEINLINE
 FORCEINLINE
-PVOID
-ExAllocateFromLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside)
+IoInitializeDpcRequest(
+  IN PDEVICE_OBJECT DeviceObject,
+  IN PIO_DPC_ROUTINE DpcRoutine)
 {
 {
-  PVOID Entry;
-
-  Lookaside->L.TotalAllocates += 1;
-  Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
-  if (Entry == NULL) {
-    Lookaside->L.AllocateMisses += 1;
-    Entry = (Lookaside->L.AllocateEx)(Lookaside->L.Type,
-                                      Lookaside->L.Size,
-                                      Lookaside->L.Tag,
-                                      Lookaside);
-  }
-  return Entry;
+  KeInitializeDpc( &DeviceObject->Dpc,
+                   (PKDEFERRED_ROUTINE) DpcRoutine,
+                   DeviceObject );
 }
 
 }
 
+#define DEVICE_INTERFACE_INCLUDE_NONACTIVE 0x00000001
+
+/*
+ * ULONG
+ * IoGetFunctionCodeFromCtlCode(
+ *   IN ULONG  ControlCode)
+ */
+#define IoGetFunctionCodeFromCtlCode(_ControlCode) \
+  (((_ControlCode) >> 2) & 0x00000FFF)
+
 FORCEINLINE
 VOID
 FORCEINLINE
 VOID
-ExFreeToLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside,
-  IN PVOID Entry)
+IoCopyCurrentIrpStackLocationToNext(
+  IN PIRP Irp)
 {
 {
-  Lookaside->L.TotalFrees += 1;
-  if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
-    Lookaside->L.FreeMisses += 1;
-    (Lookaside->L.FreeEx)(Entry, Lookaside);
-  } else {
-    InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
-  }
-  return;
+  PIO_STACK_LOCATION irpSp;
+  PIO_STACK_LOCATION nextIrpSp;
+  irpSp = IoGetCurrentIrpStackLocation(Irp);
+  nextIrpSp = IoGetNextIrpStackLocation(Irp);
+  RtlCopyMemory( nextIrpSp, irpSp, FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine));
+  nextIrpSp->Control = 0;
 }
 
 }
 
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
 NTKERNELAPI
 VOID
 NTAPI
 NTKERNELAPI
 VOID
 NTAPI
-ExSetResourceOwnerPointerEx(
-  IN OUT PERESOURCE Resource,
-  IN PVOID OwnerPointer,
-  IN ULONG Flags);
-
-#define FLAG_OWNER_POINTER_IS_THREAD 0x1
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+IoGetStackLimits(
+  OUT PULONG_PTR  LowLimit,
+  OUT PULONG_PTR  HighLimit);
 
 
-static __inline PVOID
-ExAllocateFromNPagedLookasideList(
-  IN OUT PNPAGED_LOOKASIDE_LIST Lookaside)
+FORCEINLINE
+ULONG_PTR
+IoGetRemainingStackSize(
+  VOID)
 {
 {
-  PVOID Entry;
-
-  Lookaside->L.TotalAllocates++;
-#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
-  Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead,
-                                     &Lookaside->Lock__ObsoleteButDoNotDelete);
-#else
-  Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
-#endif
-  if (Entry == NULL) {
-    Lookaside->L.AllocateMisses++;
-    Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
-                                    Lookaside->L.Size,
-                                    Lookaside->L.Tag);
-  }
-  return Entry;
-}
+  ULONG_PTR End, Begin;
+  ULONG_PTR Result;
 
 
-static __inline VOID
-ExFreeToNPagedLookasideList(
-  IN OUT PNPAGED_LOOKASIDE_LIST Lookaside,
-  IN PVOID Entry)
-{
-  Lookaside->L.TotalFrees++;
-  if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
-    Lookaside->L.FreeMisses++;
-    (Lookaside->L.Free)(Entry);
-  } else {
-#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
-      ExInterlockedPushEntrySList(&Lookaside->L.ListHead,
-                                  (PSLIST_ENTRY)Entry,
-                                  &Lookaside->Lock__ObsoleteButDoNotDelete);
-#else
-      InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
-#endif
-   }
+  IoGetStackLimits(&Begin, &End);
+  Result = (ULONG_PTR)(&End) - Begin;
+  return Result;
 }
 
 }
 
-
 /******************************************************************************
 /******************************************************************************
- *                          Object Manager Functions                          *
+ *                     Power Management Support Functions                     *
  ******************************************************************************/
 
  ******************************************************************************/
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
 
 
-NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfDereferenceObject(
-  IN PVOID Object);
-#define ObDereferenceObject ObfDereferenceObject
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-ObGetObjectSecurity(
-  IN PVOID Object,
-  OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
-  OUT PBOOLEAN MemoryAllocated);
+PoCallDriver(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN OUT struct _IRP  *Irp);
 
 NTKERNELAPI
 
 NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfReferenceObject(
-  IN PVOID Object);
-#define ObReferenceObject ObfReferenceObject
+PULONG
+NTAPI
+PoRegisterDeviceForIdleDetection(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN ULONG  ConservationIdleTime,
+  IN ULONG  PerformanceIdleTime,
+  IN DEVICE_POWER_STATE  State);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-ObReferenceObjectByHandle(
-  IN HANDLE Handle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode,
-  OUT PVOID *Object,
-  OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
+PoRegisterSystemState(
+  IN OUT PVOID StateHandle OPTIONAL,
+  IN EXECUTION_STATE Flags);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-ObReferenceObjectByPointer(
-  IN PVOID Object,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode);
+PoRequestPowerIrp(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN UCHAR  MinorFunction,
+  IN POWER_STATE  PowerState,
+  IN PREQUEST_POWER_COMPLETE  CompletionFunction OPTIONAL,
+  IN PVOID  Context OPTIONAL,
+  OUT struct _IRP  **Irp OPTIONAL);
 
 NTKERNELAPI
 
 NTKERNELAPI
-VOID
+POWER_STATE
 NTAPI
 NTAPI
-ObReleaseObjectSecurity(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN BOOLEAN MemoryAllocated);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+PoSetPowerState(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN POWER_STATE_TYPE  Type,
+  IN POWER_STATE  State);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
 NTKERNELAPI
 VOID
 NTAPI
 NTKERNELAPI
 VOID
 NTAPI
-ObDereferenceObjectDeferDelete(
-  IN PVOID Object);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObRegisterCallbacks(
-  IN POB_CALLBACK_REGISTRATION CallbackRegistration,
-  OUT PVOID *RegistrationHandle);
+PoSetSystemState(
+  IN EXECUTION_STATE  Flags);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ObUnRegisterCallbacks(
-  IN PVOID RegistrationHandle);
-
-NTKERNELAPI
-USHORT
-NTAPI
-ObGetFilterVersion(VOID);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObReferenceObjectByHandleWithTag(
-  IN HANDLE Handle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode,
-  IN ULONG Tag,
-  OUT PVOID *Object,
-  OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
-
-NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfReferenceObjectWithTag(
-  IN PVOID Object,
-  IN ULONG Tag);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObReferenceObjectByPointerWithTag(
-  IN PVOID Object,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode,
-  IN ULONG Tag);
-
-NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfDereferenceObjectWithTag(
-  IN PVOID Object,
-  IN ULONG Tag);
+PoStartNextPowerIrp(
+  IN OUT struct _IRP *Irp);
 
 NTKERNELAPI
 VOID
 NTAPI
 
 NTKERNELAPI
 VOID
 NTAPI
-ObDereferenceObjectDeferDeleteWithTag(
-  IN PVOID Object,
-  IN ULONG Tag);
-
-#define ObDereferenceObject ObfDereferenceObject
-#define ObReferenceObject ObfReferenceObject
-#define ObDereferenceObjectWithTag ObfDereferenceObjectWithTag
-#define ObReferenceObjectWithTag ObfReferenceObjectWithTag
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-
-/******************************************************************************
- *                          Process Manager Functions                         *
- ******************************************************************************/
+PoUnregisterSystemState(
+  IN OUT PVOID StateHandle);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-PsWrapApcWow64Thread(
-  IN OUT PVOID *ApcContext,
-  IN OUT PVOID *ApcRoutine);
-
-/*
- * PEPROCESS
- * PsGetCurrentProcess(VOID)
- */
-#define PsGetCurrentProcess IoGetCurrentProcess
-
-#if !defined(_PSGETCURRENTTHREAD_)
-#define _PSGETCURRENTTHREAD_
-FORCEINLINE
-PETHREAD
-NTAPI
-PsGetCurrentThread(VOID)
-{
-  return (PETHREAD)KeGetCurrentThread();
-}
-#endif /* !_PSGETCURRENTTHREAD_ */
+PoRequestShutdownEvent(
+  OUT PVOID *Event);
 
 
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#if (NTDDI_VERSION >= NTDDI_VISTA)
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+VOID
 NTAPI
 NTAPI
-PsCreateSystemThread(
-  OUT PHANDLE ThreadHandle,
-  IN ULONG DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN HANDLE ProcessHandle OPTIONAL,
-  OUT PCLIENT_ID ClientId OPTIONAL,
-  IN PKSTART_ROUTINE StartRoutine,
-  IN PVOID StartContext OPTIONAL);
+PoSetSystemWake(
+  IN OUT struct _IRP *Irp);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+BOOLEAN
 NTAPI
 NTAPI
-PsTerminateSystemThread(
-  IN NTSTATUS ExitStatus);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-/******************************************************************************
- *                          WMI Library Support Functions                     *
- ******************************************************************************/
-
-#ifdef RUN_WPP
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-NTSTATUS
-__cdecl
-WmiTraceMessage(
-  IN TRACEHANDLE LoggerHandle,
-  IN ULONG MessageFlags,
-  IN LPGUID MessageGuid,
-  IN USHORT MessageNumber,
-  IN ...);
-#endif
-#endif /* RUN_WPP */
-
- #if (NTDDI_VERSION >= NTDDI_WINXP)
+PoGetSystemWake(
+  IN struct _IRP *Irp);
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
 
 NTKERNELAPI
 NTSTATUS
 NTAPI
-WmiQueryTraceInformation(
-  IN TRACE_INFORMATION_CLASS TraceInformationClass,
-  OUT PVOID TraceInformation,
-  IN ULONG TraceInformationLength,
-  OUT PULONG RequiredLength OPTIONAL,
-  IN PVOID Buffer OPTIONAL);
-
-#if 0
-/* FIXME: Get va_list from where? */
-NTKERNELAPI
-NTSTATUS
-__cdecl
-WmiTraceMessageVa(
-  IN TRACEHANDLE LoggerHandle,
-  IN ULONG MessageFlags,
-  IN LPGUID MessageGuid,
-  IN USHORT MessageNumber,
-  IN va_list MessageArgList);
-#endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#ifndef TRACE_INFORMATION_CLASS_DEFINE
+PoRegisterPowerSettingCallback(
+  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+  IN LPCGUID SettingGuid,
+  IN PPOWER_SETTING_CALLBACK Callback,
+  IN PVOID Context OPTIONAL,
+  OUT PVOID *Handle OPTIONAL);
 
 
-#if (NTDDI_VERSION >= NTDDI_WINXP)
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
-WmiQueryTraceInformation(
-  IN TRACE_INFORMATION_CLASS TraceInformationClass,
-  OUT PVOID TraceInformation,
-  IN ULONG TraceInformationLength,
-  OUT PULONG RequiredLength OPTIONAL,
-  IN PVOID Buffer OPTIONAL);
-#endif
-
-#define TRACE_INFORMATION_CLASS_DEFINE
+PoUnregisterPowerSettingCallback(
+  IN OUT PVOID Handle);
 
 
-#endif /* TRACE_INFOPRMATION_CLASS_DEFINE */
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+#if (NTDDI_VERSION >= NTDDI_VISTASP1)
 
 
-NTSTATUS
 NTKERNELAPI
 NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-EtwRegister(
-  IN LPCGUID ProviderId,
-  IN PETWENABLECALLBACK EnableCallback OPTIONAL,
-  IN PVOID CallbackContext OPTIONAL,
-  OUT PREGHANDLE RegHandle);
+PoSetDeviceBusyEx(
+  IN OUT PULONG IdlePointer);
 
 
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwUnregister(
-  IN REGHANDLE RegHandle);
+#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
 
 
-BOOLEAN
+#if (NTDDI_VERSION >= NTDDI_WIN7)
 NTKERNELAPI
 NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-EtwEventEnabled(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor);
+PoStartDeviceBusy(
+  IN OUT PULONG IdlePointer);
 
 
-BOOLEAN
 NTKERNELAPI
 NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-EtwProviderEnabled(
-  IN REGHANDLE RegHandle,
-  IN UCHAR Level,
-  IN ULONGLONG Keyword);
+PoEndDeviceBusy(
+  IN OUT PULONG IdlePointer);
 
 
-NTSTATUS
 NTKERNELAPI
 NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-EtwActivityIdControl(
-  IN ULONG ControlCode,
-  IN OUT LPGUID ActivityId);
+PoQueryWatchdogTime(
+  IN PDEVICE_OBJECT Pdo,
+  OUT PULONG SecondsRemaining);
 
 
-NTSTATUS
 NTKERNELAPI
 NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-EtwWrite(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR  UserData OPTIONAL);
+PoDeletePowerRequest(
+  IN OUT PVOID PowerRequest);
 
 
-NTSTATUS
 NTKERNELAPI
 NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-EtwWriteTransfer(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN LPCGUID RelatedActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
+PoSetPowerRequest(
+  IN OUT PVOID PowerRequest,
+  IN POWER_REQUEST_TYPE Type);
 
 
-NTSTATUS
 NTKERNELAPI
 NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-EtwWriteString(
-  IN REGHANDLE RegHandle,
-  IN UCHAR Level,
-  IN ULONGLONG Keyword,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN PCWSTR String);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+PoClearPowerRequest(
+  IN OUT PVOID PowerRequest,
+  IN POWER_REQUEST_TYPE Type);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-NTSTATUS
 NTKERNELAPI
 NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-EtwWriteEx(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN ULONG64 Filter,
-  IN ULONG Flags,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN LPCGUID RelatedActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
-#endif
-
+PoCreatePowerRequest(
+  OUT PVOID *PowerRequest,
+  IN PDEVICE_OBJECT DeviceObject,
+  IN PCOUNTED_REASON_CONTEXT Context);
 
 
+#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
 /******************************************************************************
 
 /******************************************************************************
- *                          Kernel Debugger Functions                         *
+ *                          Executive Functions                               *
  ******************************************************************************/
 
  ******************************************************************************/
 
-#ifndef _DBGNT_
+#define ExInterlockedIncrementLong(Addend,Lock) Exfi386InterlockedIncrementLong(Addend)
+#define ExInterlockedDecrementLong(Addend,Lock) Exfi386InterlockedDecrementLong(Addend)
+#define ExInterlockedExchangeUlong(Target, Value, Lock) Exfi386InterlockedExchangeUlong(Target, Value)
 
 
-ULONG
-__cdecl
-DbgPrint(
-  IN PCSTR Format,
-  IN ...);
+#define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql))
+#define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql))
+#define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock)
+#define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock)
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTSYSAPI
-ULONG
-__cdecl
-DbgPrintReturnControlC(
-  IN PCCH Format,
-  IN ...);
+#define ExInitializeSListHead InitializeSListHead
+
+#if defined(_X86_)
+#if defined(_NTHAL_)
+#define ExAcquireFastMutex ExiAcquireFastMutex
+#define ExReleaseFastMutex ExiReleaseFastMutex
+#define ExTryToAcquireFastMutex ExiTryToAcquireFastMutex
+#endif
+#define ExInterlockedAddUlong ExfInterlockedAddUlong
+#define ExInterlockedInsertHeadList ExfInterlockedInsertHeadList
+#define ExInterlockedInsertTailList ExfInterlockedInsertTailList
+#define ExInterlockedRemoveHeadList ExfInterlockedRemoveHeadList
+#define ExInterlockedPopEntryList ExfInterlockedPopEntryList
+#define ExInterlockedPushEntryList ExfInterlockedPushEntryList
 #endif
 
 #endif
 
-#if (NTDDI_VERSION >= NTDDI_WINXP)
+#if defined(_WIN64)
 
 
-NTSYSAPI
-ULONG
-__cdecl
-DbgPrintEx(
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN PCSTR Format,
-  IN ...);
+#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || \
+    defined(_NTHAL_) || defined(_NTOSP_)
+NTKERNELAPI
+USHORT
+ExQueryDepthSList(IN PSLIST_HEADER ListHead);
+#else
+FORCEINLINE
+USHORT
+ExQueryDepthSList(IN PSLIST_HEADER ListHead)
+{
+    return (USHORT)(ListHead->Alignment & 0xffff);
+}
+#endif
 
 
-#ifdef _VA_LIST_DEFINED
+NTKERNELAPI
+PSLIST_ENTRY
+ExpInterlockedFlushSList(
+    PSLIST_HEADER ListHead);
 
 
-NTSYSAPI
-ULONG
-NTAPI
-vDbgPrintEx(
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN PCCH Format,
-  IN va_list ap);
+NTKERNELAPI
+PSLIST_ENTRY
+ExpInterlockedPopEntrySList(
+    PSLIST_HEADER ListHead);
 
 
-NTSYSAPI
-ULONG
-NTAPI
-vDbgPrintExWithPrefix(
-  IN PCCH Prefix,
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN PCCH Format,
-  IN va_list ap);
+NTKERNELAPI
+PSLIST_ENTRY
+ExpInterlockedPushEntrySList(
+    PSLIST_HEADER ListHead,
+    PSLIST_ENTRY ListEntry);
 
 
-#endif /* _VA_LIST_DEFINED */
+#define ExInterlockedFlushSList(Head) \
+    ExpInterlockedFlushSList(Head)
+#define ExInterlockedPopEntrySList(Head, Lock) \
+    ExpInterlockedPopEntrySList(Head)
+#define ExInterlockedPushEntrySList(Head, Entry, Lock) \
+    ExpInterlockedPushEntrySList(Head, Entry)
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-DbgQueryDebugFilterState(
-  IN ULONG ComponentId,
-  IN ULONG Level);
+#else // !defined(_WIN64)
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-DbgSetDebugFilterState(
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN BOOLEAN State);
+#define ExQueryDepthSList(listhead) (listhead)->Depth
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
+NTKERNELAPI
+PSINGLE_LIST_ENTRY
+FASTCALL
+ExInterlockedFlushSList(
+    IN PSLIST_HEADER ListHead);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+NTKERNELAPI
+PSINGLE_LIST_ENTRY 
+FASTCALL
+ExInterlockedPopEntrySList(
+    IN PSLIST_HEADER ListHead,
+    IN PKSPIN_LOCK Lock);
 
 
-typedef VOID
-(*PDEBUG_PRINT_CALLBACK)(
-  IN PSTRING Output,
-  IN ULONG ComponentId,
-  IN ULONG Level);
+NTKERNELAPI
+PSINGLE_LIST_ENTRY 
+FASTCALL
+ExInterlockedPushEntrySList(
+    IN PSLIST_HEADER ListHead,
+    IN PSINGLE_LIST_ENTRY ListEntry,
+    IN PKSPIN_LOCK Lock);
+#else
+#define ExInterlockedPopEntrySList(_ListHead, _Lock) \
+    InterlockedPopEntrySList(_ListHead)
+#define ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) \
+    InterlockedPushEntrySList(_ListHead, _ListEntry)
+#endif // _WIN2K_COMPAT_SLIST_USAGE
 
 
-NTSYSAPI
-NTSTATUS
-NTAPI
-DbgSetDebugPrintCallback(
-  IN PDEBUG_PRINT_CALLBACK DebugPrintCallback,
-  IN BOOLEAN Enable);
+#endif // !defined(_WIN64)
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
+/* ERESOURCE_THREAD
+ * ExGetCurrentResourceThread(
+ *     VOID);
+ */
+#define ExGetCurrentResourceThread() ((ERESOURCE_THREAD)PsGetCurrentThread())
 
 
-#endif /* _DBGNT_ */
+#define ExReleaseResource(R) (ExReleaseResourceLite(R))
 
 
-#if DBG
+/* VOID
+ * ExInitializeWorkItem(
+ *     IN PWORK_QUEUE_ITEM Item,
+ *     IN PWORKER_THREAD_ROUTINE Routine,
+ *     IN PVOID Context)
+ */
+#define ExInitializeWorkItem(Item, Routine, Context) \
+{ \
+  (Item)->WorkerRoutine = Routine; \
+  (Item)->Parameter = Context; \
+  (Item)->List.Flink = NULL; \
+}
 
 
-#define KdPrint(_x_) DbgPrint _x_
-#define KdPrintEx(_x_) DbgPrintEx _x_
-#define vKdPrintEx(_x_) vDbgPrintEx _x_
-#define vKdPrintExWithPrefix(_x_) vDbgPrintExWithPrefix _x_
-#define KdBreakPoint() DbgBreakPoint()
-#define KdBreakPointWithStatus(s) DbgBreakPointWithStatus(s)
+FORCEINLINE
+VOID
+ExInitializeFastMutex(
+  OUT PFAST_MUTEX FastMutex)
+{
+  FastMutex->Count = FM_LOCK_BIT;
+  FastMutex->Owner = NULL;
+  FastMutex->Contention = 0;
+  KeInitializeEvent(&FastMutex->Event, SynchronizationEvent, FALSE);
+  return;
+}
 
 
-#else /* !DBG */
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 
-#define KdPrint(_x_)
-#define KdPrintEx(_x_)
-#define vKdPrintEx(_x_)
-#define vKdPrintExWithPrefix(_x_)
-#define KdBreakPoint()
-#define KdBreakPointWithStatus(s)
+NTKERNELAPI
+VOID
+FASTCALL
+ExAcquireFastMutex(
+    IN OUT PFAST_MUTEX FastMutex);
 
 
-#endif /* !DBG */
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseFastMutex(
+    IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExTryToAcquireFastMutex(
+    IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExAcquireFastMutexUnsafe(
+    IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseFastMutexUnsafe(
+    IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+BOOLEAN
+NTAPI
+ExAcquireResourceExclusiveLite(
+    IN PERESOURCE Resource,
+    IN BOOLEAN Wait);
+
+NTKERNELAPI
+BOOLEAN
+NTAPI
+ExAcquireResourceSharedLite(
+    IN PERESOURCE Resource,
+    IN BOOLEAN Wait);
 
 
-#if defined(__GNUC__)
+NTKERNELAPI
+BOOLEAN
+NTAPI
+ExAcquireSharedStarveExclusive(
+    IN PERESOURCE Resource,
+    IN BOOLEAN Wait);
 
 
-extern NTKERNELAPI BOOLEAN KdDebuggerNotPresent;
-extern NTKERNELAPI BOOLEAN KdDebuggerEnabled;
-#define KD_DEBUGGER_ENABLED KdDebuggerEnabled
-#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
+NTKERNELAPI
+BOOLEAN
+NTAPI
+ExAcquireSharedWaitForExclusive(
+    IN PERESOURCE Resource,
+    IN BOOLEAN Wait);
 
 
-#elif defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_)
+NTKERNELAPI
+PVOID
+NTAPI
+ExAllocatePool(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes);
 
 
-extern NTKERNELAPI PBOOLEAN KdDebuggerNotPresent;
-extern NTKERNELAPI PBOOLEAN KdDebuggerEnabled;
-#define KD_DEBUGGER_ENABLED *KdDebuggerEnabled
-#define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent
+#ifdef POOL_TAGGING
+#define ExAllocatePool(p,n) ExAllocatePoolWithTag(p,n,' kdD')
+#endif /* POOL_TAGGING */
 
 
-#else
+NTKERNELAPI
+PVOID
+NTAPI
+ExAllocatePoolWithQuota(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes);
 
 
-extern BOOLEAN KdDebuggerNotPresent;
-extern BOOLEAN KdDebuggerEnabled;
-#define KD_DEBUGGER_ENABLED KdDebuggerEnabled
-#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
+#ifdef POOL_TAGGING
+#define ExAllocatePoolWithQuota(p,n) ExAllocatePoolWithQuotaTag(p,n,' kdD')
+#endif /* POOL_TAGGING */
 
 
-#endif
+NTKERNELAPI
+PVOID
+NTAPI
+ExAllocatePoolWithQuotaTag(
+  IN POOL_TYPE  PoolType,
+  IN SIZE_T  NumberOfBytes,
+  IN ULONG  Tag);
 
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#ifndef POOL_TAGGING
+#define ExAllocatePoolWithQuotaTag(a,b,c) ExAllocatePoolWithQuota(a,b)
+#endif /* POOL_TAGGING */
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-KdDisableDebugger(VOID);
+ExAllocatePoolWithTag(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes,
+    IN ULONG Tag);
 
 NTKERNELAPI
 
 NTKERNELAPI
-NTSTATUS
+PVOID
 NTAPI
 NTAPI
-KdEnableDebugger(VOID);
+ExAllocatePoolWithTagPriority(
+    IN POOL_TYPE PoolType,
+    IN SIZE_T NumberOfBytes,
+    IN ULONG Tag,
+    IN EX_POOL_PRIORITY Priority);
 
 
-#if (_MSC_FULL_VER >= 150030729) && !defined(IMPORT_NATIVE_DBG_BREAK)
-#define DbgBreakPoint __debugbreak
-#else
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-DbgBreakPoint(VOID);
-#endif
+ExConvertExclusiveToSharedLite(
+    IN PERESOURCE Resource);
 
 
-NTSYSAPI
-VOID
+NTKERNELAPI
+NTSTATUS
 NTAPI
 NTAPI
-DbgBreakPointWithStatus(
-  IN ULONG Status);
+ExCreateCallback(
+    OUT PCALLBACK_OBJECT *CallbackObject,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN BOOLEAN Create,
+    IN BOOLEAN AllowMultipleCallbacks);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+NTKERNELAPI
+VOID
+NTAPI
+ExDeleteNPagedLookasideList(
+    IN PNPAGED_LOOKASIDE_LIST Lookaside);
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
 NTKERNELAPI
 NTKERNELAPI
-BOOLEAN
+VOID
 NTAPI
 NTAPI
-KdRefreshDebuggerNotPresent(VOID);
-#endif
+ExDeletePagedLookasideList(
+    IN PPAGED_LOOKASIDE_LIST Lookaside);
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
 NTKERNELAPI
 NTSTATUS
 NTAPI
 NTKERNELAPI
 NTSTATUS
 NTAPI
-KdChangeOption(
-  IN KD_OPTION Option,
-  IN ULONG InBufferBytes OPTIONAL,
-  IN PVOID InBuffer,
-  IN ULONG OutBufferBytes OPTIONAL,
-  OUT PVOID OutBuffer,
-  OUT PULONG OutBufferNeeded OPTIONAL);
-#endif
-/* Hardware Abstraction Layer Functions */
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
+ExDeleteResourceLite(
+    IN PERESOURCE Resource);
 
 
-FORCEINLINE
-PVOID
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-HalAllocateCommonBuffer(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  OUT PPHYSICAL_ADDRESS LogicalAddress,
-  IN BOOLEAN CacheEnabled)
-{
-  PALLOCATE_COMMON_BUFFER allocateCommonBuffer;
-  PVOID commonBuffer;
+ExFreePool(
+    IN PVOID P);
 
 
-  allocateCommonBuffer = *(DmaAdapter)->DmaOperations->AllocateCommonBuffer;
-  ASSERT( allocateCommonBuffer != NULL );
-  commonBuffer = allocateCommonBuffer( DmaAdapter, Length, LogicalAddress, CacheEnabled );
-  return commonBuffer;
-}
+#ifdef POOL_TAGGING
+#define ExFreePool(P) ExFreePoolWithTag(P, 0)
+#endif
 
 
-FORCEINLINE
+NTKERNELAPI
 VOID
 NTAPI
 VOID
 NTAPI
-HalFreeCommonBuffer(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  IN PHYSICAL_ADDRESS LogicalAddress,
-  IN PVOID VirtualAddress,
-  IN BOOLEAN CacheEnabled)
-{
-  PFREE_COMMON_BUFFER freeCommonBuffer;
-
-  freeCommonBuffer = *(DmaAdapter)->DmaOperations->FreeCommonBuffer;
-  ASSERT( freeCommonBuffer != NULL );
-  freeCommonBuffer( DmaAdapter, Length, LogicalAddress, VirtualAddress, CacheEnabled );
-}
+ExFreePoolWithTag(
+    IN PVOID P,
+    IN ULONG Tag);
 
 
-FORCEINLINE
+NTKERNELAPI
 ULONG
 NTAPI
 ULONG
 NTAPI
-HalReadDmaCounter(
-  IN PDMA_ADAPTER DmaAdapter)
-{
-  PREAD_DMA_COUNTER readDmaCounter;
-  ULONG counter;
+ExGetExclusiveWaiterCount(
+    IN PERESOURCE Resource);
 
 
-  readDmaCounter = *(DmaAdapter)->DmaOperations->ReadDmaCounter;
-  ASSERT( readDmaCounter != NULL );
-  counter = readDmaCounter( DmaAdapter );
-  return counter;
-}
+NTKERNELAPI
+KPROCESSOR_MODE
+NTAPI
+ExGetPreviousMode(
+    VOID);
 
 
-FORCEINLINE
+NTKERNELAPI
 ULONG
 ULONG
-HalGetDmaAlignment(
-  IN PDMA_ADAPTER DmaAdapter)
-{
-  PGET_DMA_ALIGNMENT getDmaAlignment;
-  ULONG alignment;
-
-  getDmaAlignment = *(DmaAdapter)->DmaOperations->GetDmaAlignment;
-  ASSERT( getDmaAlignment != NULL );
-  alignment = getDmaAlignment( DmaAdapter );
-  return alignment;
-}
-
-#endif /* USE_DMA_MACROS ... */
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#ifndef _NTTMAPI_
-#define _NTTMAPI_
-
-#include <ktmtypes.h>
+NTAPI
+ExGetSharedWaiterCount(
+    IN PERESOURCE Resource);
 
 
-#define TRANSACTIONMANAGER_QUERY_INFORMATION     (0x0001)
-#define TRANSACTIONMANAGER_SET_INFORMATION       (0x0002)
-#define TRANSACTIONMANAGER_RECOVER               (0x0004)
-#define TRANSACTIONMANAGER_RENAME                (0x0008)
-#define TRANSACTIONMANAGER_CREATE_RM             (0x0010)
-#define TRANSACTIONMANAGER_BIND_TRANSACTION      (0x0020)
-
-#define TRANSACTIONMANAGER_GENERIC_READ            (STANDARD_RIGHTS_READ            |\
-                                                    TRANSACTIONMANAGER_QUERY_INFORMATION)
-
-#define TRANSACTIONMANAGER_GENERIC_WRITE           (STANDARD_RIGHTS_WRITE           |\
-                                                    TRANSACTIONMANAGER_SET_INFORMATION     |\
-                                                    TRANSACTIONMANAGER_RECOVER             |\
-                                                    TRANSACTIONMANAGER_RENAME              |\
-                                                    TRANSACTIONMANAGER_CREATE_RM)
-
-#define TRANSACTIONMANAGER_GENERIC_EXECUTE         (STANDARD_RIGHTS_EXECUTE)
-
-#define TRANSACTIONMANAGER_ALL_ACCESS              (STANDARD_RIGHTS_REQUIRED        |\
-                                                    TRANSACTIONMANAGER_GENERIC_READ        |\
-                                                    TRANSACTIONMANAGER_GENERIC_WRITE       |\
-                                                    TRANSACTIONMANAGER_GENERIC_EXECUTE     |\
-                                                    TRANSACTIONMANAGER_BIND_TRANSACTION)
-
-#define TRANSACTION_QUERY_INFORMATION     (0x0001)
-#define TRANSACTION_SET_INFORMATION       (0x0002)
-#define TRANSACTION_ENLIST                (0x0004)
-#define TRANSACTION_COMMIT                (0x0008)
-#define TRANSACTION_ROLLBACK              (0x0010)
-#define TRANSACTION_PROPAGATE             (0x0020)
-#define TRANSACTION_RIGHT_RESERVED1       (0x0040)
-
-#define TRANSACTION_GENERIC_READ            (STANDARD_RIGHTS_READ            |\
-                                             TRANSACTION_QUERY_INFORMATION   |\
-                                             SYNCHRONIZE)
-
-#define TRANSACTION_GENERIC_WRITE           (STANDARD_RIGHTS_WRITE           |\
-                                             TRANSACTION_SET_INFORMATION     |\
-                                             TRANSACTION_COMMIT              |\
-                                             TRANSACTION_ENLIST              |\
-                                             TRANSACTION_ROLLBACK            |\
-                                             TRANSACTION_PROPAGATE           |\
-                                             SYNCHRONIZE)
-
-#define TRANSACTION_GENERIC_EXECUTE         (STANDARD_RIGHTS_EXECUTE         |\
-                                             TRANSACTION_COMMIT              |\
-                                             TRANSACTION_ROLLBACK            |\
-                                             SYNCHRONIZE)
-
-#define TRANSACTION_ALL_ACCESS              (STANDARD_RIGHTS_REQUIRED        |\
-                                             TRANSACTION_GENERIC_READ        |\
-                                             TRANSACTION_GENERIC_WRITE       |\
-                                             TRANSACTION_GENERIC_EXECUTE)
-
-#define TRANSACTION_RESOURCE_MANAGER_RIGHTS (TRANSACTION_GENERIC_READ        |\
-                                             STANDARD_RIGHTS_WRITE           |\
-                                             TRANSACTION_SET_INFORMATION     |\
-                                             TRANSACTION_ENLIST              |\
-                                             TRANSACTION_ROLLBACK            |\
-                                             TRANSACTION_PROPAGATE           |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_QUERY_INFORMATION        (0x0001)
-#define RESOURCEMANAGER_SET_INFORMATION          (0x0002)
-#define RESOURCEMANAGER_RECOVER                  (0x0004)
-#define RESOURCEMANAGER_ENLIST                   (0x0008)
-#define RESOURCEMANAGER_GET_NOTIFICATION         (0x0010)
-#define RESOURCEMANAGER_REGISTER_PROTOCOL        (0x0020)
-#define RESOURCEMANAGER_COMPLETE_PROPAGATION     (0x0040)
-
-#define RESOURCEMANAGER_GENERIC_READ        (STANDARD_RIGHTS_READ                 |\
-                                             RESOURCEMANAGER_QUERY_INFORMATION    |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_GENERIC_WRITE       (STANDARD_RIGHTS_WRITE                |\
-                                             RESOURCEMANAGER_SET_INFORMATION      |\
-                                             RESOURCEMANAGER_RECOVER              |\
-                                             RESOURCEMANAGER_ENLIST               |\
-                                             RESOURCEMANAGER_GET_NOTIFICATION     |\
-                                             RESOURCEMANAGER_REGISTER_PROTOCOL    |\
-                                             RESOURCEMANAGER_COMPLETE_PROPAGATION |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_GENERIC_EXECUTE     (STANDARD_RIGHTS_EXECUTE              |\
-                                             RESOURCEMANAGER_RECOVER              |\
-                                             RESOURCEMANAGER_ENLIST               |\
-                                             RESOURCEMANAGER_GET_NOTIFICATION     |\
-                                             RESOURCEMANAGER_COMPLETE_PROPAGATION |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED             |\
-                                             RESOURCEMANAGER_GENERIC_READ         |\
-                                             RESOURCEMANAGER_GENERIC_WRITE        |\
-                                             RESOURCEMANAGER_GENERIC_EXECUTE)
-
-#define ENLISTMENT_QUERY_INFORMATION             (0x0001)
-#define ENLISTMENT_SET_INFORMATION               (0x0002)
-#define ENLISTMENT_RECOVER                       (0x0004)
-#define ENLISTMENT_SUBORDINATE_RIGHTS            (0x0008)
-#define ENLISTMENT_SUPERIOR_RIGHTS               (0x0010)
-
-#define ENLISTMENT_GENERIC_READ        (STANDARD_RIGHTS_READ           |\
-                                        ENLISTMENT_QUERY_INFORMATION)
-
-#define ENLISTMENT_GENERIC_WRITE       (STANDARD_RIGHTS_WRITE          |\
-                                        ENLISTMENT_SET_INFORMATION     |\
-                                        ENLISTMENT_RECOVER             |\
-                                        ENLISTMENT_SUBORDINATE_RIGHTS  |\
-                                        ENLISTMENT_SUPERIOR_RIGHTS)
-
-#define ENLISTMENT_GENERIC_EXECUTE     (STANDARD_RIGHTS_EXECUTE        |\
-                                        ENLISTMENT_RECOVER             |\
-                                        ENLISTMENT_SUBORDINATE_RIGHTS  |\
-                                        ENLISTMENT_SUPERIOR_RIGHTS)
-
-#define ENLISTMENT_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED       |\
-                                        ENLISTMENT_GENERIC_READ        |\
-                                        ENLISTMENT_GENERIC_WRITE       |\
-                                        ENLISTMENT_GENERIC_EXECUTE)
-
-typedef enum _TRANSACTION_OUTCOME {
-  TransactionOutcomeUndetermined = 1,
-  TransactionOutcomeCommitted,
-  TransactionOutcomeAborted,
-} TRANSACTION_OUTCOME;
-
-
-typedef enum _TRANSACTION_STATE {
-  TransactionStateNormal = 1,
-  TransactionStateIndoubt,
-  TransactionStateCommittedNotify,
-} TRANSACTION_STATE;
-
-
-typedef struct _TRANSACTION_BASIC_INFORMATION {
-  GUID TransactionId;
-  ULONG State;
-  ULONG Outcome;
-} TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
-  GUID TmIdentity;
-  LARGE_INTEGER VirtualClock;
-} TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION {
-  GUID LogIdentity;
-} TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
-  ULONG LogPathLength;
-  WCHAR LogPath[1];
-} TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
-  ULONGLONG LastRecoveredLsn;
-} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION;
-
-typedef struct _TRANSACTION_PROPERTIES_INFORMATION {
-  ULONG IsolationLevel;
-  ULONG IsolationFlags;
-  LARGE_INTEGER Timeout;
-  ULONG Outcome;
-  ULONG DescriptionLength;
-  WCHAR Description[1];
-} TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION;
-
-typedef struct _TRANSACTION_BIND_INFORMATION {
-  HANDLE TmHandle;
-} TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION;
-
-typedef struct _TRANSACTION_ENLISTMENT_PAIR {
-  GUID EnlistmentId;
-  GUID ResourceManagerId;
-} TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR;
-
-typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION {
-  ULONG NumberOfEnlistments;
-  TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1];
-} TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION;
-
-typedef struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
-  TRANSACTION_ENLISTMENT_PAIR SuperiorEnlistmentPair;
-} TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION, *PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
-
-typedef struct _RESOURCEMANAGER_BASIC_INFORMATION {
-  GUID ResourceManagerId;
-  ULONG DescriptionLength;
-  WCHAR Description[1];
-} RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION;
-
-typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
-  HANDLE IoCompletionPortHandle;
-  ULONG_PTR CompletionKey;
-} RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION;
+NTKERNELAPI
+VOID
+NTAPI
+ExInitializeNPagedLookasideList(
+    IN PNPAGED_LOOKASIDE_LIST Lookaside,
+    IN PALLOCATE_FUNCTION Allocate OPTIONAL,
+    IN PFREE_FUNCTION Free OPTIONAL,
+    IN ULONG Flags,
+    IN SIZE_T Size,
+    IN ULONG Tag,
+    IN USHORT Depth);
 
 
-typedef enum _KTMOBJECT_TYPE {
-  KTMOBJECT_TRANSACTION,
-  KTMOBJECT_TRANSACTION_MANAGER,
-  KTMOBJECT_RESOURCE_MANAGER,
-  KTMOBJECT_ENLISTMENT,
-  KTMOBJECT_INVALID
-} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE;
+NTKERNELAPI
+VOID
+NTAPI
+ExInitializePagedLookasideList(
+    IN PPAGED_LOOKASIDE_LIST Lookaside,
+    IN PALLOCATE_FUNCTION Allocate OPTIONAL,
+    IN PFREE_FUNCTION Free OPTIONAL,
+    IN ULONG Flags,
+    IN SIZE_T Size,
+    IN ULONG Tag,
+    IN USHORT Depth);
 
 
-typedef struct _KTMOBJECT_CURSOR {
-  GUID LastQuery;
-  ULONG ObjectIdCount;
-  GUID ObjectIds[1];
-} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
+NTKERNELAPI
+NTSTATUS
+NTAPI
+ExInitializeResourceLite(
+    IN PERESOURCE Resource);
 
 
-typedef enum _TRANSACTION_INFORMATION_CLASS {
-  TransactionBasicInformation,
-  TransactionPropertiesInformation,
-  TransactionEnlistmentInformation,
-  TransactionSuperiorEnlistmentInformation
-} TRANSACTION_INFORMATION_CLASS;
+NTKERNELAPI
+LARGE_INTEGER
+NTAPI
+ExInterlockedAddLargeInteger(
+    IN PLARGE_INTEGER Addend,
+    IN LARGE_INTEGER Increment,
+    IN PKSPIN_LOCK Lock);
 
 
-typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
-  TransactionManagerBasicInformation,
-  TransactionManagerLogInformation,
-  TransactionManagerLogPathInformation,
-  TransactionManagerRecoveryInformation = 4
-} TRANSACTIONMANAGER_INFORMATION_CLASS;
+#if defined(_WIN64)
+#define ExInterlockedAddLargeStatistic(Addend, Increment) \
+    (VOID)InterlockedAdd64(&(Addend)->QuadPart, Increment)
+#else
+#define ExInterlockedAddLargeStatistic(Addend, Increment) \
+    _InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment)
+#endif
 
 
-typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
-  ResourceManagerBasicInformation,
-  ResourceManagerCompletionInformation,
-} RESOURCEMANAGER_INFORMATION_CLASS;
+NTKERNELAPI
+ULONG
+FASTCALL
+ExInterlockedAddUlong(
+    IN PULONG Addend,
+    IN ULONG Increment,
+    PKSPIN_LOCK Lock);
 
 
-typedef struct _ENLISTMENT_BASIC_INFORMATION {
-  GUID EnlistmentId;
-  GUID TransactionId;
-  GUID ResourceManagerId;
-} ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION;
+#if defined(_AMD64_) || defined(_IA64_)
+#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \
+    InterlockedCompareExchange64(Destination, *(Exchange), *(Comperand))
+#elif defined(_X86_)
+NTKERNELAPI
+LONGLONG
+FASTCALL
+ExfInterlockedCompareExchange64(
+    IN OUT LONGLONG volatile *Destination,
+    IN PLONGLONG Exchange,
+    IN PLONGLONG Comperand);
+#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \
+    ExfInterlockedCompareExchange64(Destination, Exchange, Comperand)
+#else
+NTKERNELAPI
+LONGLONG
+FASTCALL
+ExInterlockedCompareExchange64(
+    IN OUT LONGLONG volatile *Destination,
+    IN PLONGLONG Exchange,
+    IN PLONGLONG Comparand,
+    IN PKSPIN_LOCK Lock);
+#endif
 
 
-typedef struct _ENLISTMENT_CRM_INFORMATION {
-  GUID CrmTransactionManagerId;
-  GUID CrmResourceManagerId;
-  GUID CrmEnlistmentId;
-} ENLISTMENT_CRM_INFORMATION, *PENLISTMENT_CRM_INFORMATION;
+NTKERNELAPI
+PLIST_ENTRY
+FASTCALL
+ExInterlockedInsertHeadList(
+    IN PLIST_ENTRY ListHead,
+    IN PLIST_ENTRY ListEntry,
+    IN PKSPIN_LOCK Lock);
 
 
-typedef enum _ENLISTMENT_INFORMATION_CLASS {
-  EnlistmentBasicInformation,
-  EnlistmentRecoveryInformation,
-  EnlistmentCrmInformation
-} ENLISTMENT_INFORMATION_CLASS;
+NTKERNELAPI
+PLIST_ENTRY
+FASTCALL
+ExInterlockedInsertTailList(
+    IN PLIST_ENTRY ListHead,
+    IN PLIST_ENTRY ListEntry,
+    IN PKSPIN_LOCK Lock);
 
 
-typedef struct _TRANSACTION_LIST_ENTRY {
-#if defined(__cplusplus)
-  ::UOW UOW;
-#else
-  UOW UOW;
-#endif
-} TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY;
+NTKERNELAPI
+PSINGLE_LIST_ENTRY
+FASTCALL
+ExInterlockedPopEntryList(
+    IN PSINGLE_LIST_ENTRY ListHead,
+    IN PKSPIN_LOCK Lock);
 
 
-typedef struct _TRANSACTION_LIST_INFORMATION {
-  ULONG NumberOfTransactions;
-  TRANSACTION_LIST_ENTRY TransactionInformation[1];
-} TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION;
+NTKERNELAPI
+PSINGLE_LIST_ENTRY
+FASTCALL
+ExInterlockedPushEntryList(
+    IN PSINGLE_LIST_ENTRY ListHead,
+    IN PSINGLE_LIST_ENTRY ListEntry,
+    IN PKSPIN_LOCK Lock);
 
 
-typedef NTSTATUS
-(NTAPI *PFN_NT_CREATE_TRANSACTION)(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN LPGUID Uow OPTIONAL,
-  IN HANDLE TmHandle OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG IsolationLevel OPTIONAL,
-  IN ULONG IsolationFlags OPTIONAL,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
+NTKERNELAPI
+PLIST_ENTRY
+FASTCALL
+ExInterlockedRemoveHeadList(
+    IN PLIST_ENTRY ListHead,
+    IN PKSPIN_LOCK Lock);
 
 
-typedef NTSTATUS
-(NTAPI *PFN_NT_OPEN_TRANSACTION)(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN LPGUID Uow OPTIONAL,
-  IN HANDLE TmHandle OPTIONAL);
+NTKERNELAPI
+BOOLEAN
+NTAPI
+ExIsProcessorFeaturePresent(
+    IN ULONG ProcessorFeature);
 
 
-typedef NTSTATUS
-(NTAPI *PFN_NT_QUERY_INFORMATION_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  OUT PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
+NTKERNELAPI
+BOOLEAN
+NTAPI
+ExIsResourceAcquiredExclusiveLite(
+    IN PERESOURCE Resource);
 
 
-typedef NTSTATUS
-(NTAPI *PFN_NT_SET_INFORMATION_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  IN PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength);
+NTKERNELAPI
+ULONG
+NTAPI
+ExIsResourceAcquiredSharedLite(
+    IN PERESOURCE Resource);
 
 
-typedef NTSTATUS
-(NTAPI *PFN_NT_COMMIT_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
+#define ExIsResourceAcquiredLite ExIsResourceAcquiredSharedLite
 
 
-typedef NTSTATUS
-(NTAPI *PFN_NT_ROLLBACK_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
+NTKERNELAPI
+VOID
+NTAPI
+ExLocalTimeToSystemTime(
+    IN PLARGE_INTEGER LocalTime,
+    OUT PLARGE_INTEGER SystemTime);
 
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+NTKERNELAPI
+VOID
+NTAPI
+ExNotifyCallback(
+    IN PCALLBACK_OBJECT CallbackObject,
+    IN PVOID Argument1,
+    IN PVOID Argument2);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-NtCreateTransactionManager(
-  OUT PHANDLE TmHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PUNICODE_STRING LogFileName OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG CommitStrength OPTIONAL);
+ExQueueWorkItem(
+    IN PWORK_QUEUE_ITEM WorkItem,
+    IN WORK_QUEUE_TYPE QueueType);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+DECLSPEC_NORETURN
+VOID
 NTAPI
 NTAPI
-NtOpenTransactionManager(
-  OUT PHANDLE TmHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PUNICODE_STRING LogFileName OPTIONAL,
-  IN LPGUID TmIdentity OPTIONAL,
-  IN ULONG OpenOptions OPTIONAL);
+ExRaiseStatus(
+    IN NTSTATUS Status);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+PVOID
 NTAPI
 NTAPI
-NtRenameTransactionManager(
-  IN PUNICODE_STRING LogFileName,
-  IN LPGUID ExistingTransactionManagerGuid);
+ExRegisterCallback(
+    IN PCALLBACK_OBJECT CallbackObject,
+    IN PCALLBACK_FUNCTION CallbackFunction,
+    IN PVOID CallbackContext);
 
 
-NTSYSCALLAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtRollforwardTransactionManager(
-  IN HANDLE TransactionManagerHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+ExReinitializeResourceLite(
+    IN PERESOURCE Resource);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-NtRecoverTransactionManager(
-  IN HANDLE TransactionManagerHandle);
+ExReleaseResourceForThreadLite(
+    IN PERESOURCE Resource,
+    IN ERESOURCE_THREAD ResourceThreadId);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseResourceLite(
+    IN PERESOURCE Resource);
+
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-NtQueryInformationTransactionManager(
-  IN HANDLE TransactionManagerHandle,
-  IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
-  OUT PVOID TransactionManagerInformation,
-  IN ULONG TransactionManagerInformationLength,
-  OUT PULONG ReturnLength);
+ExSetResourceOwnerPointer(
+    IN PERESOURCE Resource,
+    IN PVOID OwnerPointer);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+ULONG
 NTAPI
 NTAPI
-NtSetInformationTransactionManager(
-  IN HANDLE TmHandle OPTIONAL,
-  IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
-  IN PVOID TransactionManagerInformation,
-  IN ULONG TransactionManagerInformationLength);
+ExSetTimerResolution(
+    IN ULONG DesiredTime,
+    IN BOOLEAN SetResolution);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-NtEnumerateTransactionObject(
-  IN HANDLE RootObjectHandle OPTIONAL,
-  IN KTMOBJECT_TYPE QueryType,
-  IN OUT PKTMOBJECT_CURSOR ObjectCursor,
-  IN ULONG ObjectCursorLength,
-  OUT PULONG ReturnLength);
+ExSystemTimeToLocalTime(
+    IN PLARGE_INTEGER SystemTime,
+    OUT PLARGE_INTEGER LocalTime);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-NtCreateTransaction(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN LPGUID Uow OPTIONAL,
-  IN HANDLE TmHandle OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG IsolationLevel OPTIONAL,
-  IN ULONG IsolationFlags OPTIONAL,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
+ExUnregisterCallback(
+    IN PVOID CbRegistration);
 
 
-NTSYSCALLAPI
-NTSTATUS
+
+#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExAcquireRundownProtection(
+    IN OUT PEX_RUNDOWN_REF RunRef);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExInitializeRundownProtection(
+    OUT PEX_RUNDOWN_REF RunRef);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExReInitializeRundownProtection(
+    OUT PEX_RUNDOWN_REF RunRef);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseRundownProtection(
+    IN OUT PEX_RUNDOWN_REF RunRef);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExRundownCompleted(
+    OUT PEX_RUNDOWN_REF RunRef);
+
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-NtOpenTransaction(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN LPGUID Uow,
-  IN HANDLE TmHandle OPTIONAL);
+ExVerifySuite(
+    IN SUITE_TYPE SuiteType);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+VOID
+FASTCALL
+ExWaitForRundownProtectionRelease(
+    IN OUT PEX_RUNDOWN_REF RunRef);
+
+#endif // (NTDDI_VERSION >= NTDDI_WINXP)
+
+#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExAcquireRundownProtectionEx(
+    IN OUT PEX_RUNDOWN_REF RunRef,
+    IN ULONG Count);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseRundownProtectionEx(
+    IN OUT PEX_RUNDOWN_REF RunRef,
+    IN ULONG Count);
+#endif // (NTDDI_VERSION >= NTDDI_WINXPSP2)
+
+#if (NTDDI_VERSION >= NTDDI_WS03SP1)
+NTKERNELAPI
+PEX_RUNDOWN_REF_CACHE_AWARE
 NTAPI
 NTAPI
-NtQueryInformationTransaction(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  OUT PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
+ExAllocateCacheAwareRundownProtection(
+    IN POOL_TYPE PoolType,
+    IN ULONG PoolTag);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+SIZE_T
 NTAPI
 NTAPI
-NtSetInformationTransaction(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  IN PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength);
+ExSizeOfRundownProtectionCacheAware(VOID);
+#endif // (NTDDI_VERSION >= NTDDI_WS03SP1)
 
 
-NTSYSCALLAPI
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtCommitTransaction(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
+ExInitializeLookasideListEx(
+    OUT PLOOKASIDE_LIST_EX Lookaside,
+    IN PALLOCATE_FUNCTION_EX Allocate OPTIONAL,
+    IN PFREE_FUNCTION_EX Free OPTIONAL,
+    IN POOL_TYPE PoolType,
+    IN ULONG Flags,
+    IN SIZE_T Size,
+    IN ULONG Tag,
+    IN USHORT Depth);
+#endif
 
 
-NTSYSCALLAPI
+#if !defined(MIDL_PASS)
+
+static __inline PVOID
+ExAllocateFromNPagedLookasideList(
+    IN PNPAGED_LOOKASIDE_LIST Lookaside)
+{
+    PVOID Entry;
+
+    Lookaside->L.TotalAllocates++;
+    Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+    if (Entry == NULL) {
+        Lookaside->L.AllocateMisses++;
+        Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
+                                        Lookaside->L.Size,
+                                        Lookaside->L.Tag);
+    }
+    return Entry;
+}
+
+static __inline PVOID
+ExAllocateFromPagedLookasideList(
+    IN PPAGED_LOOKASIDE_LIST Lookaside)
+{
+    PVOID Entry;
+
+    Lookaside->L.TotalAllocates++;
+    Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+    if (Entry == NULL) {
+        Lookaside->L.AllocateMisses++;
+        Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
+                                        Lookaside->L.Size,
+                                        Lookaside->L.Tag);
+    }
+    return Entry;
+}
+
+static __inline VOID
+ExFreeToNPagedLookasideList(
+    IN PNPAGED_LOOKASIDE_LIST Lookaside,
+    IN PVOID  Entry)
+{
+    Lookaside->L.TotalFrees++;
+    if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
+        Lookaside->L.FreeMisses++;
+        (Lookaside->L.Free)(Entry);
+    } else {
+        InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+    }
+}
+
+static __inline VOID
+ExFreeToPagedLookasideList(
+    IN PPAGED_LOOKASIDE_LIST Lookaside,
+    IN PVOID  Entry)
+{
+    Lookaside->L.TotalFrees++;
+    if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
+        Lookaside->L.FreeMisses++;
+        (Lookaside->L.Free)(Entry);
+    } else {
+        InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+    }
+}
+
+#endif // !defined(MIDL_PASS)
+
+/******************************************************************************
+ *                          Object Manager Functions                          *
+ ******************************************************************************/
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+LONG_PTR
+FASTCALL
+ObfDereferenceObject(
+  IN PVOID Object);
+#define ObDereferenceObject ObfDereferenceObject
+
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtRollbackTransaction(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
+ObGetObjectSecurity(
+  IN PVOID Object,
+  OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
+  OUT PBOOLEAN MemoryAllocated);
 
 
-NTSYSCALLAPI
+NTKERNELAPI
+LONG_PTR
+FASTCALL
+ObfReferenceObject(
+  IN PVOID Object);
+#define ObReferenceObject ObfReferenceObject
+
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtCreateEnlistment(
-  OUT PHANDLE EnlistmentHandle,
+ObReferenceObjectByHandle(
+  IN HANDLE Handle,
   IN ACCESS_MASK DesiredAccess,
   IN ACCESS_MASK DesiredAccess,
-  IN HANDLE ResourceManagerHandle,
-  IN HANDLE TransactionHandle,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN NOTIFICATION_MASK NotificationMask,
-  IN PVOID EnlistmentKey OPTIONAL);
+  IN POBJECT_TYPE ObjectType OPTIONAL,
+  IN KPROCESSOR_MODE AccessMode,
+  OUT PVOID *Object,
+  OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
 
 
-NTSYSCALLAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtOpenEnlistment(
-  OUT PHANDLE EnlistmentHandle,
+ObReferenceObjectByPointer(
+  IN PVOID  Object,
   IN ACCESS_MASK DesiredAccess,
   IN ACCESS_MASK DesiredAccess,
-  IN HANDLE ResourceManagerHandle,
-  IN LPGUID EnlistmentGuid,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
+  IN POBJECT_TYPE ObjectType OPTIONAL,
+  IN KPROCESSOR_MODE AccessMode);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTKERNELAPI
+VOID
 NTAPI
 NTAPI
-NtQueryInformationEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
-  OUT PVOID EnlistmentInformation,
-  IN ULONG EnlistmentInformationLength,
-  OUT PULONG ReturnLength);
+ObReleaseObjectSecurity(
+  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
+  IN BOOLEAN MemoryAllocated);
 
 
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtSetInformationEnlistment(
-  IN HANDLE EnlistmentHandle OPTIONAL,
-  IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
-  IN PVOID EnlistmentInformation,
-  IN ULONG EnlistmentInformationLength);
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRecoverEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PVOID EnlistmentKey OPTIONAL);
+/******************************************************************************
+ *                          Process Manager Functions                         *
+ ******************************************************************************/
 
 
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtPrePrepareEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+/*
+ * PEPROCESS
+ * PsGetCurrentProcess(VOID)
+ */
+#define PsGetCurrentProcess IoGetCurrentProcess
 
 
-NTSYSCALLAPI
-NTSTATUS
+#if !defined(_PSGETCURRENTTHREAD_)
+
+#define _PSGETCURRENTTHREAD_
+
+FORCEINLINE
+PETHREAD
 NTAPI
 NTAPI
-NtPrepareEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+PsGetCurrentThread (
+  VOID)
+{
+  return (PETHREAD)KeGetCurrentThread();
+}
 
 
-NTSYSCALLAPI
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtCommitEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+PsCreateSystemThread(
+  OUT PHANDLE  ThreadHandle,
+  IN ULONG  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes  OPTIONAL,
+  IN HANDLE  ProcessHandle  OPTIONAL,
+  OUT PCLIENT_ID  ClientId  OPTIONAL,
+  IN PKSTART_ROUTINE  StartRoutine,
+  IN PVOID  StartContext OPTIONAL);
 
 
-NTSYSCALLAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtRollbackEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+PsTerminateSystemThread(
+  IN NTSTATUS  ExitStatus);
 
 
-NTSYSCALLAPI
+#endif
+
+/******************************************************************************
+ *                          WMI Library Support Functions                     *
+ ******************************************************************************/
+
+#ifdef RUN_WPP
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+NTKERNELAPI
 NTSTATUS
 NTSTATUS
-NTAPI
-NtPrePrepareComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+DDKCDECLAPI
+WmiTraceMessage(
+  IN TRACEHANDLE  LoggerHandle,
+  IN ULONG  MessageFlags,
+  IN LPGUID  MessageGuid,
+  IN USHORT  MessageNumber,
+  IN ...);
+#endif
 
 
-NTSYSCALLAPI
+#endif
+
+ #if (NTDDI_VERSION >= NTDDI_WINXP)
+
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtPrepareComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+WmiQueryTraceInformation(
+  IN TRACE_INFORMATION_CLASS  TraceInformationClass,
+  OUT PVOID  TraceInformation,
+  IN ULONG  TraceInformationLength,
+  OUT PULONG  RequiredLength OPTIONAL,
+  IN PVOID  Buffer OPTIONAL);
 
 
-NTSYSCALLAPI
+#if 0
+/* FIXME: Get va_list from where? */
+NTKERNELAPI
 NTSTATUS
 NTSTATUS
+DDKCDECLAPI
+WmiTraceMessageVa(
+  IN TRACEHANDLE  LoggerHandle,
+  IN ULONG  MessageFlags,
+  IN LPGUID  MessageGuid,
+  IN USHORT  MessageNumber,
+  IN va_list  MessageArgList);
+#endif
+
+#endif
+
+/******************************************************************************
+ *                          Kernel Debugger Functions                         *
+ ******************************************************************************/
+
+#ifndef _DBGNT_
+ULONG
+DDKCDECLAPI
+DbgPrint(
+  IN PCSTR  Format,
+  IN ...);
+#endif
+
+#if DBG
+
+#define KdPrint(_x_) DbgPrint _x_
+#define KdPrintEx(_x_) DbgPrintEx _x_
+#define vKdPrintExWithPrefix(_x_) vDbgPrintExWithPrefix _x_
+#define KdBreakPoint() DbgBreakPoint()
+#define KdBreakPointWithStatus(s) DbgBreakPointWithStatus(s)
+
+#else /* !DBG */
+
+#define KdPrint(_x_)
+#define KdPrintEx(_x_)
+#define vKdPrintExWithPrefix(_x_)
+#define KdBreakPoint()
+#define KdBreakPointWithStatus(s)
+
+#endif /* !DBG */
+
+#if defined(__GNUC__)
+
+extern NTKERNELAPI BOOLEAN KdDebuggerNotPresent;
+extern NTKERNELAPI BOOLEAN KdDebuggerEnabled;
+#define KD_DEBUGGER_ENABLED     KdDebuggerEnabled
+#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
+
+#elif defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_)
+
+extern NTKERNELAPI PBOOLEAN KdDebuggerNotPresent;
+extern NTKERNELAPI PBOOLEAN KdDebuggerEnabled;
+#define KD_DEBUGGER_ENABLED     *KdDebuggerEnabled
+#define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent
+
+#else
+
+extern BOOLEAN KdDebuggerNotPresent;
+extern BOOLEAN KdDebuggerEnabled;
+#define KD_DEBUGGER_ENABLED     KdDebuggerEnabled
+#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
+
+#endif
+
+#ifdef _VA_LIST_DEFINED
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+
+NTSYSAPI
+ULONG
 NTAPI
 NTAPI
-NtCommitComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+vDbgPrintEx(
+  IN ULONG ComponentId,
+  IN ULONG Level,
+  IN PCCH Format,
+  IN va_list ap);
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTSYSAPI
+ULONG
 NTAPI
 NTAPI
-NtReadOnlyEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+vDbgPrintExWithPrefix(
+  IN PCCH Prefix,
+  IN ULONG ComponentId,
+  IN ULONG Level,
+  IN PCCH Format,
+  IN va_list ap);
 
 
-NTSYSCALLAPI
+#endif
+#endif // _VA_LIST_DEFINED
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtRollbackComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+KdDisableDebugger(
+  VOID);
 
 
-NTSYSCALLAPI
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtSinglePhaseReject(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
+KdEnableDebugger(
+  VOID);
 
 
-NTSYSCALLAPI
-NTSTATUS
+#if (_MSC_FULL_VER >= 150030729) && !defined(IMPORT_NATIVE_DBG_BREAK)
+#define DbgBreakPoint __debugbreak
+#else
+VOID
 NTAPI
 NTAPI
-NtCreateResourceManager(
-  OUT PHANDLE ResourceManagerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE TmHandle,
-  IN LPGUID RmGuid,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
+DbgBreakPoint(
+  VOID);
+#endif
 
 
-NTSYSCALLAPI
-NTSTATUS
+NTSYSAPI
+VOID
 NTAPI
 NTAPI
-NtOpenResourceManager(
-  OUT PHANDLE ResourceManagerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE TmHandle,
-  IN LPGUID ResourceManagerGuid OPTIONAL,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
+DbgBreakPointWithStatus(
+  IN ULONG  Status);
 
 
-NTSYSCALLAPI
+NTSYSAPI
+ULONG
+DDKCDECLAPI
+DbgPrintReturnControlC(
+  IN PCCH  Format,
+  IN ...);
+
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+
+NTSYSAPI
+ULONG
+DDKCDECLAPI
+DbgPrintEx(
+  IN ULONG  ComponentId,
+  IN ULONG  Level,
+  IN PCSTR  Format,
+  IN ...);
+
+NTSYSAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtRecoverResourceManager(
-  IN HANDLE ResourceManagerHandle);
+DbgQueryDebugFilterState(
+  IN ULONG  ComponentId,
+  IN ULONG  Level);
 
 
-NTSYSCALLAPI
+NTSYSAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtGetNotificationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  OUT PTRANSACTION_NOTIFICATION TransactionNotification,
-  IN ULONG NotificationLength,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  OUT PULONG ReturnLength OPTIONAL,
-  IN ULONG Asynchronous,
-  IN ULONG_PTR AsynchronousContext OPTIONAL);
+DbgSetDebugFilterState(
+  IN ULONG  ComponentId,
+  IN ULONG  Level,
+  IN BOOLEAN  State);
 
 
-NTSYSCALLAPI
-NTSTATUS
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WS03)
+
+NTKERNELAPI
+BOOLEAN
 NTAPI
 NTAPI
-NtQueryInformationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
-  OUT PVOID ResourceManagerInformation,
-  IN ULONG ResourceManagerInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
+KdRefreshDebuggerNotPresent(
+    VOID
+);
 
 
-NTSYSCALLAPI
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WS03SP1)
+NTKERNELAPI
 NTSTATUS
 NTAPI
 NTSTATUS
 NTAPI
-NtSetInformationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
-  IN PVOID ResourceManagerInformation,
-  IN ULONG ResourceManagerInformationLength);
+KdChangeOption(
+  IN KD_OPTION Option,
+  IN ULONG InBufferBytes OPTIONAL,
+  IN PVOID InBuffer,
+  IN ULONG OutBufferBytes OPTIONAL,
+  OUT PVOID OutBuffer,
+  OUT PULONG OutBufferNeeded OPTIONAL);
+#endif
 
 
-NTSYSCALLAPI
-NTSTATUS
+#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
+FORCEINLINE
+PVOID
 NTAPI
 NTAPI
-NtRegisterProtocolAddressInformation(
-  IN HANDLE ResourceManager,
-  IN PCRM_PROTOCOL_ID ProtocolId,
-  IN ULONG ProtocolInformationSize,
-  IN PVOID ProtocolInformation,
-  IN ULONG CreateOptions OPTIONAL);
+HalAllocateCommonBuffer(
+  IN PDMA_ADAPTER DmaAdapter,
+  IN ULONG  Length,
+  OUT PPHYSICAL_ADDRESS  LogicalAddress,
+  IN BOOLEAN  CacheEnabled)
+{
+  PALLOCATE_COMMON_BUFFER allocateCommonBuffer;
+  PVOID commonBuffer;
 
 
-NTSYSCALLAPI
-NTSTATUS
+  allocateCommonBuffer = *(DmaAdapter)->DmaOperations->AllocateCommonBuffer;
+  ASSERT( allocateCommonBuffer != NULL );
+  commonBuffer = allocateCommonBuffer( DmaAdapter, Length, LogicalAddress, CacheEnabled );
+  return commonBuffer;
+}
+
+FORCEINLINE
+VOID
 NTAPI
 NTAPI
-NtPropagationComplete(
-  IN HANDLE ResourceManagerHandle,
-  IN ULONG RequestCookie,
-  IN ULONG BufferLength,
-  IN PVOID Buffer);
+HalFreeCommonBuffer(
+  IN PDMA_ADAPTER DmaAdapter,
+  IN ULONG  Length,
+  IN PHYSICAL_ADDRESS  LogicalAddress,
+  IN PVOID  VirtualAddress,
+  IN BOOLEAN  CacheEnabled)
+{
+  PFREE_COMMON_BUFFER freeCommonBuffer;
 
 
-NTSYSCALLAPI
-NTSTATUS
+  freeCommonBuffer = *(DmaAdapter)->DmaOperations->FreeCommonBuffer;
+  ASSERT( freeCommonBuffer != NULL );
+  freeCommonBuffer( DmaAdapter, Length, LogicalAddress, VirtualAddress, CacheEnabled );
+}
+
+FORCEINLINE
+ULONG
 NTAPI
 NTAPI
-NtPropagationFailed(
-  IN HANDLE ResourceManagerHandle,
-  IN ULONG RequestCookie,
-  IN NTSTATUS PropStatus);
+HalReadDmaCounter(
+  IN PDMA_ADAPTER DmaAdapter)
+{
+  PREAD_DMA_COUNTER readDmaCounter;
+  ULONG counter;
+
+  readDmaCounter = *(DmaAdapter)->DmaOperations->ReadDmaCounter;
+  ASSERT( readDmaCounter != NULL );
+  counter = readDmaCounter( DmaAdapter );
+  return counter;
+}
+
+#endif
+
+
+#ifndef _NTTMAPI_
+#define _NTTMAPI_
+
+#include <ktmtypes.h>
+
+typedef enum _KTMOBJECT_TYPE {
+  KTMOBJECT_TRANSACTION,
+  KTMOBJECT_TRANSACTION_MANAGER,
+  KTMOBJECT_RESOURCE_MANAGER,
+  KTMOBJECT_ENLISTMENT,
+  KTMOBJECT_INVALID
+} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE;
+
+typedef struct _KTMOBJECT_CURSOR {
+  GUID LastQuery;
+  ULONG ObjectIdCount;
+  GUID ObjectIds[1];
+} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
+
+typedef enum _TRANSACTION_INFORMATION_CLASS {
+  TransactionBasicInformation,
+  TransactionPropertiesInformation,
+  TransactionEnlistmentInformation,
+  TransactionSuperiorEnlistmentInformation
+} TRANSACTION_INFORMATION_CLASS;
+
+typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
+  TransactionManagerBasicInformation,
+  TransactionManagerLogInformation,
+  TransactionManagerLogPathInformation,
+  TransactionManagerRecoveryInformation = 4
+} TRANSACTIONMANAGER_INFORMATION_CLASS;
+
+typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
+  ResourceManagerBasicInformation,
+  ResourceManagerCompletionInformation,
+} RESOURCEMANAGER_INFORMATION_CLASS;
 
 
-#endif /* NTDDI_VERSION >= NTDDI_VISTA */
+typedef enum _ENLISTMENT_INFORMATION_CLASS {
+  EnlistmentBasicInformation,
+  EnlistmentRecoveryInformation,
+  EnlistmentCrmInformation
+} ENLISTMENT_INFORMATION_CLASS;
 
 #endif /* !_NTTMAPI_ */
 /******************************************************************************
  *                            ZwXxx Functions                                 *
  ******************************************************************************/
 
 
 #endif /* !_NTTMAPI_ */
 /******************************************************************************
  *                            ZwXxx Functions                                 *
  ******************************************************************************/
 
-
 /* Constants */
 #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
 #define ZwCurrentProcess() NtCurrentProcess()
 #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
 #define ZwCurrentThread() NtCurrentThread()
 
 /* Constants */
 #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
 #define ZwCurrentProcess() NtCurrentProcess()
 #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
 #define ZwCurrentThread() NtCurrentThread()
 
-
-
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
-
-
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwClose(
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwClose(
-  IN HANDLE Handle);
+  IN HANDLE  Handle);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwCreateDirectoryObject(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwCreateDirectoryObject(
-  OUT PHANDLE DirectoryHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
+  OUT PHANDLE  DirectoryHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwCreateFile(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwCreateFile(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG CreateDisposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength);
+  OUT PHANDLE  FileHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes,
+  OUT PIO_STATUS_BLOCK  IoStatusBlock,
+  IN PLARGE_INTEGER  AllocationSize  OPTIONAL,
+  IN ULONG  FileAttributes,
+  IN ULONG  ShareAccess,
+  IN ULONG  CreateDisposition,
+  IN ULONG  CreateOptions,
+  IN PVOID  EaBuffer  OPTIONAL,
+  IN ULONG  EaLength);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwCreateKey(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwCreateKey(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN ULONG TitleIndex,
-  IN PUNICODE_STRING Class OPTIONAL,
-  IN ULONG CreateOptions,
-  OUT PULONG Disposition OPTIONAL);
+  OUT PHANDLE  KeyHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes,
+  IN ULONG  TitleIndex,
+  IN PUNICODE_STRING  Class  OPTIONAL,
+  IN ULONG  CreateOptions,
+  OUT PULONG  Disposition  OPTIONAL);
 
 NTSYSAPI
 NTSTATUS
 
 NTSYSAPI
 NTSTATUS
@@ -15397,7 +11081,7 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwDeleteValueKey(
 NTSTATUS
 NTAPI
 ZwDeleteValueKey(
-  IN HANDLE KeyHandle,
+  IN HANDLE  KeyHandle,
   IN PUNICODE_STRING ValueName);
 
 NTSYSAPI
   IN PUNICODE_STRING ValueName);
 
 NTSYSAPI
@@ -15426,7 +11110,7 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwFlushKey(
 NTSTATUS
 NTAPI
 ZwFlushKey(
-  IN HANDLE KeyHandle);
+  IN HANDLE  KeyHandle);
 
 NTSYSAPI
 NTSTATUS
 
 NTSYSAPI
 NTSTATUS
@@ -15438,22 +11122,22 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwMakeTemporaryObject(
 NTSTATUS
 NTAPI
 ZwMakeTemporaryObject(
-  IN HANDLE Handle);
+  IN HANDLE  Handle);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwMapViewOfSection(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwMapViewOfSection(
-  IN HANDLE SectionHandle,
-  IN HANDLE ProcessHandle,
-  IN OUT PVOID *BaseAddress,
-  IN ULONG_PTR ZeroBits,
-  IN SIZE_T CommitSize,
-  IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
-  IN OUT PSIZE_T ViewSize,
-  IN SECTION_INHERIT InheritDisposition,
-  IN ULONG AllocationType,
-  IN ULONG Protect);
+  IN HANDLE  SectionHandle,
+  IN HANDLE  ProcessHandle,
+  IN OUT PVOID  *BaseAddress,
+  IN ULONG_PTR  ZeroBits,
+  IN SIZE_T  CommitSize,
+  IN OUT PLARGE_INTEGER  SectionOffset  OPTIONAL,
+  IN OUT PSIZE_T  ViewSize,
+  IN SECTION_INHERIT  InheritDisposition,
+  IN ULONG  AllocationType,
+  IN ULONG  Protect);
 
 NTSYSAPI
 NTSTATUS
 
 NTSYSAPI
 NTSTATUS
@@ -15470,35 +11154,35 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwOpenKey(
 NTSTATUS
 NTAPI
 ZwOpenKey(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
+  OUT PHANDLE  KeyHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwOpenSection(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwOpenSection(
-  OUT PHANDLE SectionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
+  OUT PHANDLE  SectionHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwOpenSymbolicLinkObject(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwOpenSymbolicLinkObject(
-  OUT PHANDLE LinkHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
+  OUT PHANDLE  LinkHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQueryInformationFile(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQueryInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID FileInformation,
-  IN ULONG Length,
-  IN FILE_INFORMATION_CLASS FileInformationClass);
+  IN HANDLE  FileHandle,
+  OUT PIO_STATUS_BLOCK  IoStatusBlock,
+  OUT PVOID  FileInformation,
+  IN ULONG  Length,
+  IN FILE_INFORMATION_CLASS  FileInformationClass);
 
 NTSYSAPI
 NTSTATUS
 
 NTSYSAPI
 NTSTATUS
@@ -15514,9 +11198,9 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQuerySymbolicLinkObject(
 NTSTATUS
 NTAPI
 ZwQuerySymbolicLinkObject(
-  IN HANDLE LinkHandle,
-  IN OUT PUNICODE_STRING LinkTarget,
-  OUT PULONG ReturnedLength OPTIONAL);
+  IN HANDLE  LinkHandle,
+  IN OUT PUNICODE_STRING  LinkTarget,
+  OUT PULONG  ReturnedLength  OPTIONAL);
 
 NTSYSAPI
 NTSTATUS
 
 NTSYSAPI
 NTSTATUS
@@ -15533,36 +11217,36 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwReadFile(
 NTSTATUS
 NTAPI
 ZwReadFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID Buffer,
-  IN ULONG Length,
-  IN PLARGE_INTEGER ByteOffset OPTIONAL,
-  IN PULONG Key OPTIONAL);
+  IN HANDLE  FileHandle,
+  IN HANDLE  Event  OPTIONAL,
+  IN PIO_APC_ROUTINE  ApcRoutine  OPTIONAL,
+  IN PVOID  ApcContext  OPTIONAL,
+  OUT PIO_STATUS_BLOCK  IoStatusBlock,
+  OUT PVOID  Buffer,
+  IN ULONG  Length,
+  IN PLARGE_INTEGER  ByteOffset  OPTIONAL,
+  IN PULONG  Key  OPTIONAL);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwSetInformationFile(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwSetInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PVOID FileInformation,
-  IN ULONG Length,
-  IN FILE_INFORMATION_CLASS FileInformationClass);
+  IN HANDLE  FileHandle,
+  OUT PIO_STATUS_BLOCK  IoStatusBlock,
+  IN PVOID  FileInformation,
+  IN ULONG  Length,
+  IN FILE_INFORMATION_CLASS  FileInformationClass);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwSetValueKey(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwSetValueKey(
-  IN HANDLE KeyHandle,
-  IN PUNICODE_STRING ValueName,
-  IN ULONG TitleIndex OPTIONAL,
-  IN ULONG Type,
-  IN PVOID Data OPTIONAL,
-  IN ULONG DataSize);
+  IN HANDLE  KeyHandle,
+  IN PUNICODE_STRING  ValueName,
+  IN ULONG  TitleIndex  OPTIONAL,
+  IN ULONG  Type,
+  IN PVOID  Data OPTIONAL,
+  IN ULONG  DataSize);
 
 NTSYSAPI
 NTSTATUS
 
 NTSYSAPI
 NTSTATUS
@@ -15574,22 +11258,22 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwUnmapViewOfSection(
 NTSTATUS
 NTAPI
 ZwUnmapViewOfSection(
-  IN HANDLE ProcessHandle,
-  IN PVOID BaseAddress OPTIONAL);
+  IN HANDLE  ProcessHandle,
+  IN PVOID  BaseAddress OPTIONAL);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwWriteFile(
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwWriteFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PVOID Buffer,
-  IN ULONG Length,
-  IN PLARGE_INTEGER ByteOffset OPTIONAL,
-  IN PULONG Key OPTIONAL);
+  IN HANDLE  FileHandle,
+  IN HANDLE  Event  OPTIONAL,
+  IN PIO_APC_ROUTINE  ApcRoutine  OPTIONAL,
+  IN PVOID  ApcContext  OPTIONAL,
+  OUT PIO_STATUS_BLOCK  IoStatusBlock,
+  IN PVOID  Buffer,
+  IN ULONG  Length,
+  IN PLARGE_INTEGER  ByteOffset  OPTIONAL,
+  IN PULONG  Key  OPTIONAL);
 
 NTSYSAPI
 NTSTATUS
 
 NTSYSAPI
 NTSTATUS
@@ -15598,11 +11282,10 @@ ZwQueryFullAttributesFile(
   IN POBJECT_ATTRIBUTES ObjectAttributes,
   OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation);
 
   IN POBJECT_ATTRIBUTES ObjectAttributes,
   OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation);
 
+#endif
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
+#if (NTDDI_VERSION >= NTDDI_WIN2003)
 
 
-#if (NTDDI_VERSION >= NTDDI_WS03)
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
@@ -15610,6 +11293,7 @@ ZwOpenEvent(
   OUT PHANDLE EventHandle,
   IN ACCESS_MASK DesiredAccess,
   IN POBJECT_ATTRIBUTES ObjectAttributes);
   OUT PHANDLE EventHandle,
   IN ACCESS_MASK DesiredAccess,
   IN POBJECT_ATTRIBUTES ObjectAttributes);
+
 #endif
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 #endif
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
@@ -15936,13 +11620,10 @@ ZwSinglePhaseReject(
   IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
 
 
   IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
+#endif
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
-
-
 NTSYSAPI
 NTSTATUS
 NTAPI
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -16006,8 +11687,78 @@ ZwSetInformationKey(
   IN PVOID KeySetInformation,
   IN ULONG KeySetInformationLength);
 
   IN PVOID KeySetInformation,
   IN ULONG KeySetInformationLength);
 
+#endif
+
+/******************************************************************************
+ *                          Unsorted                                          *
+ ******************************************************************************/
+
+/* GUID Comparison */
+#ifndef __IID_ALIGNED__
+#define __IID_ALIGNED__
+#ifdef __cplusplus
+inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
+{
+    return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) && 
+             (*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
+}
+#else
+#define IsEqualGUIDAligned(guid1, guid2) \
+           ( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
+             (*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
+#endif /* __cplusplus */
+#endif /* !__IID_ALIGNED__ */
+
+typedef enum {
+    LT_DONT_CARE,
+    LT_LOWEST_LATENCY
+} LATENCY_TIME;
+
+#define MAXIMUM_SUSPEND_COUNT             MAXCHAR
+
+#define MAXIMUM_FILENAME_LENGTH           256
+
+#define OBJ_NAME_PATH_SEPARATOR     ((WCHAR)L'\\')
+
+#define OBJECT_TYPE_CREATE (0x0001)
+#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
+
+#define DIRECTORY_QUERY (0x0001)
+#define DIRECTORY_TRAVERSE (0x0002)
+#define DIRECTORY_CREATE_OBJECT (0x0004)
+#define DIRECTORY_CREATE_SUBDIRECTORY (0x0008)
+#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
+
+#define EVENT_QUERY_STATE (0x0001)
+#define EVENT_MODIFY_STATE (0x0002)
+#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
+
+#define SEMAPHORE_QUERY_STATE (0x0001)
+#define SEMAPHORE_MODIFY_STATE (0x0002)
+#define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
+
+#define SYMBOLIC_LINK_QUERY               0x0001
+#define SYMBOLIC_LINK_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED | 0x1)
+
+#define DUPLICATE_CLOSE_SOURCE            0x00000001
+#define DUPLICATE_SAME_ACCESS             0x00000002
+#define DUPLICATE_SAME_ATTRIBUTES         0x00000004
+
+/* Global debug flag */
+extern ULONG NtGlobalFlag;
+
+/* Service Start Types */
+#define SERVICE_BOOT_START             0x00000000
+#define SERVICE_SYSTEM_START           0x00000001
+#define SERVICE_AUTO_START             0x00000002
+#define SERVICE_DEMAND_START           0x00000003
+#define SERVICE_DISABLED               0x00000004
+
+#ifndef _TRACEHANDLE_DEFINED
+#define _TRACEHANDLE_DEFINED
+typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
+#endif
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
 
 #ifdef __cplusplus
 
 
 #ifdef __cplusplus
index a0a5bdc..22bb087 100644 (file)
@@ -30,14 +30,6 @@ typedef NTSTATUS
   OUT PUNICODE_STRING *RegistryPath OPTIONAL,
   IN OUT PUNICODE_STRING MofResourceName,
   OUT PDEVICE_OBJECT *Pdo OPTIONAL);
   OUT PUNICODE_STRING *RegistryPath OPTIONAL,
   IN OUT PUNICODE_STRING MofResourceName,
   OUT PDEVICE_OBJECT *Pdo OPTIONAL);
-  
-typedef NTSTATUS
-(NTAPI *PWMI_FUNCTION_CONTROL) (
-  IN OUT PDEVICE_OBJECT DeviceObject,
-  IN OUT PIRP Irp,
-  IN ULONG GuidIndex,
-  IN WMIENABLEDISABLECONTROL Function,
-  IN BOOLEAN Enable);
 
 typedef NTSTATUS
 (NTAPI *PWMI_QUERY_DATABLOCK) (
 
 typedef NTSTATUS
 (NTAPI *PWMI_QUERY_DATABLOCK) (
@@ -51,34 +43,42 @@ typedef NTSTATUS
   OUT PUCHAR Buffer OPTIONAL);
 
 typedef NTSTATUS
   OUT PUCHAR Buffer OPTIONAL);
 
 typedef NTSTATUS
-(NTAPI *PWMI_EXECUTE_METHOD) (
+(NTAPI *PWMI_SET_DATABLOCK) (
   IN OUT PDEVICE_OBJECT DeviceObject,
   IN OUT PIRP Irp,
   IN ULONG GuidIndex,
   IN ULONG InstanceIndex,
   IN OUT PDEVICE_OBJECT DeviceObject,
   IN OUT PIRP Irp,
   IN ULONG GuidIndex,
   IN ULONG InstanceIndex,
-  IN ULONG MethodId,
-  IN ULONG InBufferSize,
-  IN ULONG OutBufferSize,
-  IN OUT PUCHAR Buffer);
+  IN ULONG BufferSize,
+  IN PUCHAR Buffer);
 
 typedef NTSTATUS
 
 typedef NTSTATUS
-(NTAPI *PWMI_SET_DATABLOCK) (
+(NTAPI *PWMI_SET_DATAITEM) (
   IN OUT PDEVICE_OBJECT DeviceObject,
   IN OUT PIRP Irp,
   IN ULONG GuidIndex,
   IN ULONG InstanceIndex,
   IN OUT PDEVICE_OBJECT DeviceObject,
   IN OUT PIRP Irp,
   IN ULONG GuidIndex,
   IN ULONG InstanceIndex,
+  IN ULONG DataItemId,
   IN ULONG BufferSize,
   IN PUCHAR Buffer);
 
 typedef NTSTATUS
   IN ULONG BufferSize,
   IN PUCHAR Buffer);
 
 typedef NTSTATUS
-(NTAPI *PWMI_SET_DATAITEM) (
+(NTAPI *PWMI_EXECUTE_METHOD) (
   IN OUT PDEVICE_OBJECT DeviceObject,
   IN OUT PIRP Irp,
   IN ULONG GuidIndex,
   IN ULONG InstanceIndex,
   IN OUT PDEVICE_OBJECT DeviceObject,
   IN OUT PIRP Irp,
   IN ULONG GuidIndex,
   IN ULONG InstanceIndex,
-  IN ULONG DataItemId,
-  IN ULONG BufferSize,
-  IN PUCHAR Buffer);
+  IN ULONG MethodId,
+  IN ULONG InBufferSize,
+  IN ULONG OutBufferSize,
+  IN OUT PUCHAR Buffer);
+
+typedef NTSTATUS
+(NTAPI *PWMI_FUNCTION_CONTROL) (
+  IN OUT PDEVICE_OBJECT DeviceObject,
+  IN OUT PIRP Irp,
+  IN ULONG GuidIndex,
+  IN WMIENABLEDISABLECONTROL Function,
+  IN BOOLEAN Enable);
 
 typedef struct _WMILIB_CONTEXT {
   ULONG GuidCount;
 
 typedef struct _WMILIB_CONTEXT {
   ULONG GuidCount;
diff --git a/reactos/include/ddk/xmldsodid.h b/reactos/include/ddk/xmldsodid.h
new file mode 100644 (file)
index 0000000..d80d146
--- /dev/null
@@ -0,0 +1,10 @@
+
+#ifndef __XMLDSODID_H__
+#define __XMLDSODID_H__
+#define DISPID_XOBJ_MIN                         0x00010000
+#define DISPID_XOBJ_MAX                         0x0001FFFF
+#define DISPID_XOBJ_BASE                        DISPID_XOBJ_MIN
+#define  DISPID_XMLDSO                          DISPID_XOBJ_BASE
+#define  DISPID_XMLDSO_DOCUMENT                 DISPID_XMLDSO  +  1
+#define  DISPID_XMLDSO_JAVADSOCOMPATIBLE        DISPID_XMLDSO_DOCUMENT  +  1
+#endif
\ No newline at end of file
index 6798537..d4ae1c5 100644 (file)
@@ -546,6 +546,17 @@ typedef enum _KAPC_ENVIRONMENT
     InsertApcEnvironment
 } KAPC_ENVIRONMENT;
 
     InsertApcEnvironment
 } KAPC_ENVIRONMENT;
 
+//
+// CPU Cache Types      
+//      
+typedef enum _PROCESSOR_CACHE_TYPE      
+{
+    CacheUnified,       
+    CacheInstruction,   
+    CacheData,          
+    CacheTrace,         
+} PROCESSOR_CACHE_TYPE;
+
 //
 // PRCB DPC Data
 //
 //
 // PRCB DPC Data
 //
@@ -566,6 +577,18 @@ typedef struct _PP_LOOKASIDE_LIST
     struct _GENERAL_LOOKASIDE *L;
 } PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
 
     struct _GENERAL_LOOKASIDE *L;
 } PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
 
+//
+// CPU Cache Descriptor         
+//      
+typedef struct _CACHE_DESCRIPTOR        
+{
+    UCHAR Level;        
+    UCHAR Associativity;        
+    USHORT LineSize;    
+    ULONG Size;         
+    PROCESSOR_CACHE_TYPE Type;          
+} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
+
 //
 // Architectural Types
 //
 //
 // Architectural Types
 //
index ec4b2d3..38791b3 100644 (file)
@@ -1,3 +1,4 @@
+
 #define PASTE2(x,y)       x##y
 #define PASTE(x,y)         PASTE2(x,y)
 
 #define PASTE2(x,y)       x##y
 #define PASTE(x,y)         PASTE2(x,y)
 
   #define GDI_HANDLE_BUFFER_SIZE 34
 #endif
 
   #define GDI_HANDLE_BUFFER_SIZE 34
 #endif
 
-#if defined(_NTDDK_INCLUDED_) || defined(_NTIFS_)
-#define PPEB PPEB_RENAMED
-#endif
-
 typedef struct STRUCT(_PEB)
 {
     BOOLEAN InheritedAddressSpace;
 typedef struct STRUCT(_PEB)
 {
     BOOLEAN InheritedAddressSpace;
@@ -155,7 +152,6 @@ typedef struct STRUCT(_PEB)
 #endif
 } STRUCT(PEB), *STRUCT(PPEB);
 
 #endif
 } STRUCT(PEB), *STRUCT(PPEB);
 
-#undef PPEB
 
 #if defined(_WIN64) && !defined(EXPLICIT_32BIT)
 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08);
 
 #if defined(_WIN64) && !defined(EXPLICIT_32BIT)
 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08);
index 43b4468..d423b7a 100644 (file)
@@ -703,7 +703,7 @@ typedef struct _PROCESS_BASIC_INFORMATION
     KPRIORITY BasePriority;
     ULONG_PTR UniqueProcessId;
     ULONG_PTR InheritedFromUniqueProcessId;
     KPRIORITY BasePriority;
     ULONG_PTR UniqueProcessId;
     ULONG_PTR InheritedFromUniqueProcessId;
-} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
+} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
 
 typedef struct _PROCESS_ACCESS_TOKEN
 {
 
 typedef struct _PROCESS_ACCESS_TOKEN
 {
index 18aa474..210dd2f 100644 (file)
@@ -1690,18 +1690,6 @@ RtlDuplicateUnicodeString(
     OUT PUNICODE_STRING DestinationString
 );
 
     OUT PUNICODE_STRING DestinationString
 );
 
-//
-// Memory Functions
-//
-NTSYSAPI
-VOID
-NTAPI
-RtlFillMemoryUlong(
-    IN PVOID Destination,
-    IN ULONG Length,
-    IN ULONG Fill
-);
-
 #endif
 
 NTSYSAPI
 #endif
 
 NTSYSAPI
@@ -1924,6 +1912,18 @@ RtlLookupAtomInAtomTable(
     OUT PRTL_ATOM Atom
 );
 
     OUT PRTL_ATOM Atom
 );
 
+//
+// Memory Functions
+//
+NTSYSAPI
+VOID
+NTAPI
+RtlFillMemoryUlong(
+    IN PVOID Destination,
+    IN ULONG Length,
+    IN ULONG Fill
+);
+
 //
 // Process Management Functions
 //
 //
 // Process Management Functions
 //
diff --git a/reactos/include/psdk/atsmedia.h b/reactos/include/psdk/atsmedia.h
deleted file mode 100644 (file)
index 6f22e57..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-#define BDANETWORKTYPE_ATSC DEFINE_GUIDNAMED(BDANETWORKTYPE_ATSC)
-
-#define STATIC_BDANETWORKTYPE_ATSC 0x71985F51, 0x1CA1, 0x11D3, 0x9C, 0xC8, 0x0, 0xC0, 0x4F, 0x79, 0x71, 0xE0
-
-DEFINE_GUIDSTRUCT("71985F51-1CA1-11D3-9CC8-00C04F7971E0", BDANETWORKTYPE_ATSC);
index 24fc089..4572125 100644 (file)
@@ -180,11 +180,11 @@ typedef struct _BATTERY_WAIT_STATUS {
 
 
 typedef NTSTATUS
 
 
 typedef NTSTATUS
-(NTAPI *BCLASS_DISABLE_STATUS_NOTIFY)(
+(DDKAPI*BCLASS_DISABLE_STATUS_NOTIFY)(
   IN PVOID  Context);
 
 typedef NTSTATUS
   IN PVOID  Context);
 
 typedef NTSTATUS
-(NTAPI *BCLASS_QUERY_INFORMATION)(
+(DDKAPI*BCLASS_QUERY_INFORMATION)(
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   IN BATTERY_QUERY_INFORMATION_LEVEL  Level,
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   IN BATTERY_QUERY_INFORMATION_LEVEL  Level,
@@ -194,25 +194,25 @@ typedef NTSTATUS
   OUT PULONG  ReturnedLength);
 
 typedef NTSTATUS
   OUT PULONG  ReturnedLength);
 
 typedef NTSTATUS
-(NTAPI *BCLASS_QUERY_STATUS)(
+(DDKAPI*BCLASS_QUERY_STATUS)(
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   OUT PBATTERY_STATUS  BatteryStatus);
 
 typedef NTSTATUS
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   OUT PBATTERY_STATUS  BatteryStatus);
 
 typedef NTSTATUS
-(NTAPI *BCLASS_QUERY_TAG)(
+(DDKAPI*BCLASS_QUERY_TAG)(
   IN PVOID  Context,
   OUT PULONG  BatteryTag);
 
 typedef NTSTATUS
   IN PVOID  Context,
   OUT PULONG  BatteryTag);
 
 typedef NTSTATUS
-(NTAPI *BCLASS_SET_INFORMATION)(
+(DDKAPI*BCLASS_SET_INFORMATION)(
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   IN BATTERY_SET_INFORMATION_LEVEL  Level,
   IN PVOID  Buffer  OPTIONAL);
 
 typedef NTSTATUS
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   IN BATTERY_SET_INFORMATION_LEVEL  Level,
   IN PVOID  Buffer  OPTIONAL);
 
 typedef NTSTATUS
-(NTAPI *BCLASS_SET_STATUS_NOTIFY)(
+(DDKAPI*BCLASS_SET_STATUS_NOTIFY)(
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   IN PBATTERY_NOTIFY  BatteryNotify);
   IN PVOID  Context,
   IN ULONG  BatteryTag,
   IN PBATTERY_NOTIFY  BatteryNotify);
@@ -239,21 +239,21 @@ typedef struct _BATTERY_MINIPORT_INFO {
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassInitializeDevice(
   IN PBATTERY_MINIPORT_INFO  MiniportInfo,
   IN PVOID  *ClassData);
 
 BCLASSAPI
 NTSTATUS
 BatteryClassInitializeDevice(
   IN PBATTERY_MINIPORT_INFO  MiniportInfo,
   IN PVOID  *ClassData);
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassIoctl(
   IN PVOID  ClassData,
   IN PIRP  Irp);
 
 BCLASSAPI
 NTSTATUS
 BatteryClassIoctl(
   IN PVOID  ClassData,
   IN PIRP  Irp);
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassQueryWmiDataBlock(
   IN PVOID  ClassData,
   IN PDEVICE_OBJECT  DeviceObject,
 BatteryClassQueryWmiDataBlock(
   IN PVOID  ClassData,
   IN PDEVICE_OBJECT  DeviceObject,
@@ -265,13 +265,13 @@ BatteryClassQueryWmiDataBlock(
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassStatusNotify(
   IN PVOID  ClassData);
 
 BCLASSAPI
 NTSTATUS
 BatteryClassStatusNotify(
   IN PVOID  ClassData);
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassSystemControl(
   IN  PVOID  ClassData,
   IN  PVOID  WmiLibContext, /* PWMILIB_CONTEXT */
 BatteryClassSystemControl(
   IN  PVOID  ClassData,
   IN  PVOID  WmiLibContext, /* PWMILIB_CONTEXT */
@@ -281,7 +281,7 @@ BatteryClassSystemControl(
 
 BCLASSAPI
 NTSTATUS
 
 BCLASSAPI
 NTSTATUS
-NTAPI
+DDKAPI
 BatteryClassUnload(
   IN PVOID  ClassData);
 
 BatteryClassUnload(
   IN PVOID  ClassData);
 
diff --git a/reactos/include/psdk/cfgmgr32.h b/reactos/include/psdk/cfgmgr32.h
deleted file mode 100644 (file)
index 4623a65..0000000
+++ /dev/null
@@ -1,3206 +0,0 @@
-/*
- * cfgmgr32.h
- *
- * PnP configuration manager
- *
- * This file is part of the w32api package.
- *
- * Contributors:
- *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#pragma once
-
-#define _CFGMGR32_H_
-
-#include <cfg.h>
-
-#ifndef GUID_DEFINED
-#include <guiddef.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(_CFGMGR32_)
-#define CMAPI
-#else
-#define CMAPI DECLSPEC_IMPORT
-#endif
-
-typedef CONST VOID *PCVOID;
-
-#define MAX_CONFIG_VALUE         9999
-#define MAX_INSTANCE_VALUE       9999
-
-#define MAX_DEVICE_ID_LEN        200
-#define MAX_DEVNODE_ID_LEN       MAX_DEVICE_ID_LEN
-
-#define MAX_CLASS_NAME_LEN       32
-#define MAX_GUID_STRING_LEN      39
-#define MAX_PROFILE_LEN          80
-
-#define MAX_MEM_REGISTERS        9
-#define MAX_IO_PORTS             20
-#define MAX_IRQS                 7
-#define MAX_DMA_CHANNELS         7
-
-#define DWORD_MAX                0xffffffffUL
-#define DWORDLONG_MAX            0xffffffffffffffffui64
-
-#define CONFIGMG_VERSION         0x0400
-
-#ifdef NT_INCLUDED
-
-typedef unsigned __int64 DWORDLONG;
-typedef DWORDLONG *PDWORDLONG;
-
-#endif /* NT_INCLUDED */
-
-typedef DWORD RETURN_TYPE;
-typedef RETURN_TYPE CONFIGRET;
-
-typedef DWORD DEVNODE, DEVINST;
-typedef DEVNODE *PDEVNODE, *PDEVINST;
-
-typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
-typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
-
-#ifdef UNICODE
-typedef DEVNODEID_W DEVNODEID;
-typedef DEVINSTID_W DEVINSTID;
-#else
-typedef DEVNODEID_A DEVNODEID;
-typedef DEVINSTID_A DEVINSTID;
-#endif
-
-typedef DWORD_PTR LOG_CONF;
-typedef LOG_CONF *PLOG_CONF;
-
-typedef DWORD_PTR RES_DES;
-typedef RES_DES *PRES_DES;
-
-typedef ULONG RESOURCEID;
-typedef RESOURCEID *PRESOURCEID;
-
-typedef ULONG PRIORITY;
-typedef PRIORITY *PPRIORITY;
-
-typedef DWORD_PTR RANGE_LIST;
-typedef RANGE_LIST *PRANGE_LIST;
-
-typedef DWORD_PTR RANGE_ELEMENT;
-typedef RANGE_ELEMENT *PRANGE_ELEMENT;
-
-typedef HANDLE HMACHINE;
-typedef HMACHINE *PHMACHINE;
-
-typedef ULONG_PTR CONFLICT_LIST;
-typedef CONFLICT_LIST *PCONFLICT_LIST;
-
-typedef struct _CONFLICT_DETAILS_A {
-  ULONG CD_ulSize;
-  ULONG CD_ulMask;
-  DEVINST CD_dnDevInst;
-  RES_DES CD_rdResDes;
-  ULONG CD_ulFlags;
-  CHAR CD_szDescription[MAX_PATH];
-} CONFLICT_DETAILS_A, *PCONFLICT_DETAILS_A;
-
-typedef struct _CONFLICT_DETAILS_W {
-  ULONG CD_ulSize;
-  ULONG CD_ulMask;
-  DEVINST CD_dnDevInst;
-  RES_DES CD_rdResDes;
-  ULONG CD_ulFlags;
-  WCHAR CD_szDescription[MAX_PATH];
-} CONFLICT_DETAILS_W, *PCONFLICT_DETAILS_W;
-
-#ifdef UNICODE
-typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
-typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
-#else
-typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
-typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
-#endif
-
-/* CONFLICT_DETAILS.CD.ulMask constants */
-#define CM_CDMASK_DEVINST                 0x00000001
-#define CM_CDMASK_RESDES                  0x00000002
-#define CM_CDMASK_FLAGS                   0x00000004
-#define CM_CDMASK_DESCRIPTION             0x00000008
-#define CM_CDMASK_VALID                   0x0000000F
-
-/* CONFLICT_DETAILS.CD.ulFlags constants */
-#define CM_CDFLAGS_DRIVER                 0x00000001
-#define CM_CDFLAGS_ROOT_OWNED             0x00000002
-#define CM_CDFLAGS_RESERVED               0x00000004
-
-typedef ULONG REGDISPOSITION;
-
-#include <pshpack1.h>
-
-/* MEM_DES.MD_Flags constants */
-#define mMD_MemoryType              0x1
-#define fMD_MemoryType              mMD_MemoryType
-#define fMD_ROM                     0x0
-#define fMD_RAM                     0x1
-
-#define mMD_32_24                   0x2
-#define fMD_32_24                   mMD_32_24
-#define fMD_24                      0x0
-#define fMD_32                      0x2
-
-#define mMD_Prefetchable            0x4
-#define fMD_Prefetchable            mMD_Prefetchable
-#define fMD_Pref                    mMD_Prefetchable
-#define fMD_PrefetchDisallowed      0x0
-#define fMD_PrefetchAllowed         0x4
-
-#define mMD_Readable                0x8
-#define fMD_Readable                mMD_Readable
-#define fMD_ReadAllowed             0x0
-#define fMD_ReadDisallowed          0x8
-
-#define mMD_CombinedWrite           0x10
-#define fMD_CombinedWrite           mMD_CombinedWrite
-#define fMD_CombinedWriteDisallowed 0x0
-#define fMD_CombinedWriteAllowed    0x10
-
-#define mMD_Cacheable               0x20
-#define fMD_NonCacheable            0x0
-#define fMD_Cacheable               0x20
-#define fMD_WINDOW_DECODE           0x40
-#define fMD_MEMORY_BAR              0x80
-
-typedef struct Mem_Range_s {
-  DWORDLONG MR_Align;
-  ULONG MR_nBytes;
-  DWORDLONG MR_Min;
-  DWORDLONG MR_Max;
-  DWORD MR_Flags;
-  DWORD MR_Reserved;
-} MEM_RANGE, *PMEM_RANGE;
-
-typedef struct Mem_Des_s {
-  DWORD MD_Count;
-  DWORD MD_Type;
-  DWORDLONG MD_Alloc_Base;
-  DWORDLONG MD_Alloc_End;
-  DWORD MD_Flags;
-  DWORD MD_Reserved;
-} MEM_DES, *PMEM_DES;
-
-typedef struct Mem_Resource_s {
-  MEM_DES MEM_Header;
-  MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
-} MEM_RESOURCE, *PMEM_RESOURCE;
-
-#define MType_Range sizeof(MEM_RANGE)
-
-typedef struct Mem_Large_Range_s {
-  DWORDLONG MLR_Align;
-  ULONGLONG MLR_nBytes;
-  DWORDLONG MLR_Min;
-  DWORDLONG MLR_Max;
-  DWORD MLR_Flags;
-  DWORD MLR_Reserved;
-} MEM_LARGE_RANGE, *PMEM_LARGE_RANGE;
-
-typedef struct Mem_Large_Des_s {
-  DWORD MLD_Count;
-  DWORD MLD_Type;
-  DWORDLONG MLD_Alloc_Base;
-  DWORDLONG MLD_Alloc_End;
-  DWORD MLD_Flags;
-  DWORD MLD_Reserved;
-} MEM_LARGE_DES, *PMEM_LARGE_DES;
-
-typedef struct Mem_Large_Resource_s {
-  MEM_LARGE_DES MEM_LARGE_Header;
-  MEM_LARGE_RANGE MEM_LARGE_Data[ANYSIZE_ARRAY];
-} MEM_LARGE_RESOURCE, *PMEM_LARGE_RESOURCE;
-
-#define MLType_Range     sizeof(struct Mem_Large_Range_s)
-
-/* IO_DES.Type constants and masks */
-#define fIOD_PortType                     0x1
-#define fIOD_Memory                       0x0
-#define fIOD_IO                           0x1
-#define fIOD_DECODE                       0x00fc
-#define fIOD_10_BIT_DECODE                0x0004
-#define fIOD_12_BIT_DECODE                0x0008
-#define fIOD_16_BIT_DECODE                0x0010
-#define fIOD_POSITIVE_DECODE              0x0020
-#define fIOD_PASSIVE_DECODE               0x0040
-#define fIOD_WINDOW_DECODE                0x0080
-#define fIOD_PORT_BAR                     0x0100
-
-/* IO_RANGE.IOR_Alias constants */
-#define IO_ALIAS_10_BIT_DECODE            0x00000004
-#define IO_ALIAS_12_BIT_DECODE            0x00000010
-#define IO_ALIAS_16_BIT_DECODE            0x00000000
-#define IO_ALIAS_POSITIVE_DECODE          0x000000FF
-
-typedef struct IO_Range_s {
-  DWORDLONG IOR_Align;
-  DWORD IOR_nPorts;
-  DWORDLONG IOR_Min;
-  DWORDLONG IOR_Max;
-  DWORD IOR_RangeFlags;
-  DWORDLONG IOR_Alias;
-} IO_RANGE, *PIO_RANGE;
-
-typedef struct IO_Des_s {
-  DWORD IOD_Count;
-  DWORD IOD_Type;
-  DWORDLONG IOD_Alloc_Base;
-  DWORDLONG IOD_Alloc_End;
-  DWORD IOD_DesFlags;
-} IO_DES, *PIO_DES;
-
-typedef struct IO_Resource_s {
-  IO_DES IO_Header;
-  IO_RANGE IO_Data[ANYSIZE_ARRAY];
-} IO_RESOURCE, *PIO_RESOURCE;
-
-#define IOA_Local                         0xff
-
-#define IOType_Range sizeof(IO_RANGE)
-
-/* DMA_DES.DD_Flags constants and masks */
-#define mDD_Width                         0x3
-#define fDD_BYTE                          0x0
-#define fDD_WORD                          0x1
-#define fDD_DWORD                         0x2
-#define fDD_BYTE_AND_WORD                 0x3
-
-#define mDD_BusMaster                     0x4
-#define fDD_NoBusMaster                   0x0
-#define fDD_BusMaster                     0x4
-
-#define mDD_Type                          0x18
-#define fDD_TypeStandard                  0x00
-#define fDD_TypeA                         0x08
-#define fDD_TypeB                         0x10
-#define fDD_TypeF                         0x18
-
-typedef struct DMA_Des_s {
-  DWORD  DD_Count;
-  DWORD  DD_Type;
-  DWORD  DD_Flags;
-  ULONG  DD_Alloc_Chan;
-} DMA_DES, *PDMA_DES;
-
-typedef struct DMA_Range_s {
-  ULONG  DR_Min;
-  ULONG  DR_Max;
-  ULONG  DR_Flags;
-} DMA_RANGE, *PDMA_RANGE;
-
-#define DType_Range sizeof(DMA_RANGE)
-
-typedef struct DMA_Resource_s {
-  DMA_DES  DMA_Header;
-  DMA_RANGE  DMA_Data[ANYSIZE_ARRAY];
-} DMA_RESOURCE, *PDMA_RESOURCE;
-
-/* IRQ_DES.IRQD_flags constants */
-#define mIRQD_Share                       0x1
-#define fIRQD_Exclusive                   0x0
-#define fIRQD_Share                       0x1
-
-#define fIRQD_Share_Bit                   0
-#define fIRQD_Level_Bit                   1
-
-#define mIRQD_Edge_Level                  0x2
-#define fIRQD_Level                       0x0
-#define fIRQD_Edge                        0x2
-
-typedef struct IRQ_Range_s {
-  ULONG IRQR_Min;
-  ULONG IRQR_Max;
-#if defined(NT_PROCESSOR_GROUPS)
-  USHORT IRQR_Flags;
-  USHORT IRQR_Rsvdz;
-#else
-  ULONG IRQR_Flags;
-#endif
-} IRQ_RANGE, *PIRQ_RANGE;
-
-typedef struct IRQ_Des_32_s {
-  DWORD IRQD_Count;
-  DWORD IRQD_Type;
-#if defined(NT_PROCESSOR_GROUPS)
-  USHORT IRQD_Flags;
-  USHORT IRQD_Group;
-#else
-  DWORD IRQD_Flags;
-#endif
-  ULONG IRQD_Alloc_Num;
-  ULONG32 IRQD_Affinity;
-} IRQ_DES_32, *PIRQ_DES_32;
-
-typedef struct IRQ_Des_64_s {
-  DWORD IRQD_Count;
-  DWORD IRQD_Type;
-#if defined(NT_PROCESSOR_GROUPS)
-  USHORT IRQD_Flags;
-  USHORT IRQD_Group;
-#else
-  DWORD IRQD_Flags;
-#endif
-  ULONG IRQD_Alloc_Num;
-  ULONG64 IRQD_Affinity;
-} IRQ_DES_64, *PIRQ_DES_64;
-
-#ifdef _WIN64
-typedef IRQ_DES_64 IRQ_DES;
-typedef PIRQ_DES_64 PIRQ_DES;
-#else
-typedef IRQ_DES_32 IRQ_DES;
-typedef PIRQ_DES_32 PIRQ_DES;
-#endif
-
-typedef struct IRQ_Resource_32_s {
-  IRQ_DES_32 IRQ_Header;
-  IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
-} IRQ_RESOURCE_32, *PIRQ_RESOURCE_32;
-
-typedef struct IRQ_Resource_64_s {
-  IRQ_DES_64 IRQ_Header;
-  IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
-} IRQ_RESOURCE_64, *PIRQ_RESOURCE_64;
-
-#ifdef _WIN64
-typedef IRQ_RESOURCE_64 IRQ_RESOURCE;
-typedef PIRQ_RESOURCE_64 PIRQ_RESOURCE;
-#else
-typedef IRQ_RESOURCE_32 IRQ_RESOURCE;
-typedef PIRQ_RESOURCE_32 PIRQ_RESOURCE;
-#endif
-
-#define IRQType_Range sizeof(IRQ_RANGE)
-
-#if (WINVER >= _WIN32_WINNT_WINXP)
-#define CM_RESDES_WIDTH_DEFAULT  0x00000000
-#define CM_RESDES_WIDTH_32       0x00000001
-#define CM_RESDES_WIDTH_64       0x00000002
-#define CM_RESDES_WIDTH_BITS     0x00000003
-#endif
-
-typedef struct DevPrivate_Range_s {
-  DWORD PR_Data1;
-  DWORD PR_Data2;
-  DWORD PR_Data3;
-} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
-
-typedef struct DevPrivate_Des_s {
-  DWORD PD_Count;
-  DWORD PD_Type;
-  DWORD PD_Data1;
-  DWORD PD_Data2;
-  DWORD PD_Data3;
-  DWORD PD_Flags;
-} DEVPRIVATE_DES, *PDEVPRIVATE_DES;
-
-#define PType_Range sizeof(DEVPRIVATE_RANGE)
-
-typedef struct DevPrivate_Resource_s {
-  DEVPRIVATE_DES PRV_Header;
-  DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
-} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
-
-typedef struct CS_Des_s {
-  DWORD CSD_SignatureLength;
-  DWORD CSD_LegacyDataOffset;
-  DWORD CSD_LegacyDataSize;
-  DWORD CSD_Flags;
-  GUID CSD_ClassGuid;
-  BYTE CSD_Signature[ANYSIZE_ARRAY];
-} CS_DES, *PCS_DES;
-
-typedef struct CS_Resource_s {
-  CS_DES CS_Header;
-} CS_RESOURCE, *PCS_RESOURCE;
-
-#define mPCD_IO_8_16                      0x1
-#define fPCD_IO_8                         0x0
-#define fPCD_IO_16                        0x1
-#define mPCD_MEM_8_16                     0x2
-#define fPCD_MEM_8                        0x0
-#define fPCD_MEM_16                       0x2
-#define mPCD_MEM_A_C                      0xC
-#define fPCD_MEM1_A                       0x4
-#define fPCD_MEM2_A                       0x8
-#define fPCD_IO_ZW_8                      0x10
-#define fPCD_IO_SRC_16                    0x20
-#define fPCD_IO_WS_16                     0x40
-#define mPCD_MEM_WS                       0x300
-#define fPCD_MEM_WS_ONE                   0x100
-#define fPCD_MEM_WS_TWO                   0x200
-#define fPCD_MEM_WS_THREE                 0x300
-
-#if (WINVER >= _WIN32_WINNT_WINXP)
-
-#define fPCD_MEM_A                        0x4
-
-#define fPCD_ATTRIBUTES_PER_WINDOW        0x8000
-
-#define fPCD_IO1_16                       0x00010000
-#define fPCD_IO1_ZW_8                     0x00020000
-#define fPCD_IO1_SRC_16                   0x00040000
-#define fPCD_IO1_WS_16                    0x00080000
-
-#define fPCD_IO2_16                       0x00100000
-#define fPCD_IO2_ZW_8                     0x00200000
-#define fPCD_IO2_SRC_16                   0x00400000
-#define fPCD_IO2_WS_16                    0x00800000
-
-#define mPCD_MEM1_WS                      0x03000000
-#define fPCD_MEM1_WS_ONE                  0x01000000
-#define fPCD_MEM1_WS_TWO                  0x02000000
-#define fPCD_MEM1_WS_THREE                0x03000000
-#define fPCD_MEM1_16                      0x04000000
-
-#define mPCD_MEM2_WS                      0x30000000
-#define fPCD_MEM2_WS_ONE                  0x10000000
-#define fPCD_MEM2_WS_TWO                  0x20000000
-#define fPCD_MEM2_WS_THREE                0x30000000
-#define fPCD_MEM2_16                      0x40000000
-
-#define PCD_MAX_MEMORY                    2
-#define PCD_MAX_IO                        2
-
-#endif /* (WINVER >= _WIN32_WINNT_WINXP) */
-
-typedef struct PcCard_Des_s {
-  DWORD PCD_Count;
-  DWORD PCD_Type;
-  DWORD PCD_Flags;
-  BYTE PCD_ConfigIndex;
-  BYTE PCD_Reserved[3];
-  DWORD PCD_MemoryCardBase1;
-  DWORD PCD_MemoryCardBase2;
-#if (WINVER >= _WIN32_WINNT_WINXP)
-  DWORD PCD_MemoryCardBase[PCD_MAX_MEMORY];
-  WORD PCD_MemoryFlags[PCD_MAX_MEMORY];
-  BYTE PCD_IoFlags[PCD_MAX_IO];
-#endif
-} PCCARD_DES, *PPCCARD_DES;
-
-typedef struct PcCard_Resource_s {
-  PCCARD_DES PcCard_Header;
-} PCCARD_RESOURCE, *PPCCARD_RESOURCE;
-
-/* MFCARD_DES.PMF_Flags constants */
-#define fPMF_AUDIO_ENABLE                 0x8
-#define mPMF_AUDIO_ENABLE                 fPMF_AUDIO_ENABLE
-
-typedef struct MfCard_Des_s {
-  DWORD PMF_Count;
-  DWORD PMF_Type;
-  DWORD PMF_Flags;
-  BYTE PMF_ConfigOptions;
-  BYTE PMF_IoResourceIndex;
-  BYTE PMF_Reserved[2];
-  DWORD PMF_ConfigRegisterBase;
-} MFCARD_DES, *PMFCARD_DES;
-
-typedef struct MfCard_Resource_s {
-  MFCARD_DES MfCard_Header;
-} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
-
-typedef struct BusNumber_Des_s {
-  DWORD BUSD_Count;
-  DWORD BUSD_Type;
-  DWORD BUSD_Flags;
-  ULONG BUSD_Alloc_Base;
-  ULONG BUSD_Alloc_End;
-} BUSNUMBER_DES, *PBUSNUMBER_DES;
-
-typedef struct BusNumber_Range_s {
-  ULONG BUSR_Min;
-  ULONG BUSR_Max;
-  ULONG BUSR_nBusNumbers;
-  ULONG BUSR_Flags;
-} BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
-
-#define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
-
-typedef struct BusNumber_Resource_s {
-  BUSNUMBER_DES BusNumber_Header;
-  BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
-} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
-
-#define CM_HWPI_NOT_DOCKABLE           0x00000000
-#define CM_HWPI_UNDOCKED               0x00000001
-#define CM_HWPI_DOCKED                 0x00000002
-
-typedef struct HWProfileInfo_sA {
-  ULONG HWPI_ulHWProfile;
-  CHAR HWPI_szFriendlyName[MAX_PROFILE_LEN];
-  DWORD HWPI_dwFlags;
-} HWPROFILEINFO_A, *PHWPROFILEINFO_A;
-
-typedef struct HWProfileInfo_sW {
-  ULONG HWPI_ulHWProfile;
-  WCHAR HWPI_szFriendlyName[MAX_PROFILE_LEN];
-  DWORD HWPI_dwFlags;
-} HWPROFILEINFO_W, *PHWPROFILEINFO_W;
-
-#ifdef UNICODE
-typedef HWPROFILEINFO_W HWPROFILEINFO;
-typedef PHWPROFILEINFO_W PHWPROFILEINFO;
-#else
-typedef HWPROFILEINFO_A HWPROFILEINFO;
-typedef PHWPROFILEINFO_A PHWPROFILEINFO;
-#endif
-
-#include <poppack.h>
-
-#define ResType_All                       0x00000000
-#define ResType_None                      0x00000000
-#define ResType_Mem                       0x00000001
-#define ResType_IO                        0x00000002
-#define ResType_DMA                       0x00000003
-#define ResType_IRQ                       0x00000004
-#define ResType_DoNotUse                  0x00000005
-#define ResType_BusNumber                 0x00000006
-#define ResType_MemLarge                  0x00000007
-#define ResType_MAX                       0x00000007
-#define ResType_Ignored_Bit               0x00008000
-#define ResType_ClassSpecific             0x0000FFFF
-#define ResType_Reserved                  0x00008000
-#define ResType_DevicePrivate             0x00008001
-#define ResType_PcCardConfig              0x00008002
-#define ResType_MfCardConfig              0x00008003
-
-#define CM_ADD_RANGE_ADDIFCONFLICT        0x00000000
-#define CM_ADD_RANGE_DONOTADDIFCONFLICT   0x00000001
-#define CM_ADD_RANGE_BITS                 0x00000001
-
-#define BASIC_LOG_CONF                    0x00000000
-#define FILTERED_LOG_CONF                 0x00000001
-#define ALLOC_LOG_CONF                    0x00000002
-#define BOOT_LOG_CONF                     0x00000003
-#define FORCED_LOG_CONF                   0x00000004
-#define OVERRIDE_LOG_CONF                 0x00000005
-#define NUM_LOG_CONF                      0x00000006
-#define LOG_CONF_BITS                     0x00000007
-
-#define PRIORITY_EQUAL_FIRST              0x00000008
-#define PRIORITY_EQUAL_LAST               0x00000000
-#define PRIORITY_BIT                      0x00000008
-
-#define RegDisposition_OpenAlways         0x00000000
-#define RegDisposition_OpenExisting       0x00000001
-#define RegDisposition_Bits               0x00000001
-
-/* CM_Add_ID.ulFlags constants */
-#define CM_ADD_ID_HARDWARE                0x00000000
-#define CM_ADD_ID_COMPATIBLE              0x00000001
-#define CM_ADD_ID_BITS                    0x00000001
-
-/* Flags for CM_Create_DevNode[_Ex].ulFlags constants */
-#define CM_CREATE_DEVNODE_NORMAL          0x00000000
-#define CM_CREATE_DEVNODE_NO_WAIT_INSTALL 0x00000001
-#define CM_CREATE_DEVNODE_PHANTOM         0x00000002
-#define CM_CREATE_DEVNODE_GENERATE_ID     0x00000004
-#define CM_CREATE_DEVNODE_DO_NOT_INSTALL  0x00000008
-#define CM_CREATE_DEVNODE_BITS            0x0000000F
-
-#define CM_CREATE_DEVINST_NORMAL          CM_CREATE_DEVNODE_NORMAL
-#define CM_CREATE_DEVINST_NO_WAIT_INSTALL CM_CREATE_DEVNODE_NO_WAIT_INSTALL
-#define CM_CREATE_DEVINST_PHANTOM         CM_CREATE_DEVNODE_PHANTOM
-#define CM_CREATE_DEVINST_GENERATE_ID     CM_CREATE_DEVNODE_GENERATE_ID
-#define CM_CREATE_DEVINST_DO_NOT_INSTALL  CM_CREATE_DEVNODE_DO_NOT_INSTALL
-#define CM_CREATE_DEVINST_BITS            CM_CREATE_DEVNODE_BITS
-
-/* Flags for CM_Delete_Class_Key.ulFlags constants */
-#define CM_DELETE_CLASS_ONLY              0x00000000
-#define CM_DELETE_CLASS_SUBKEYS           0x00000001
-#if (WINVER >= _WIN32_WINNT_VISTA)
-#define CM_DELETE_CLASS_INTERFACE         0x00000002
-#endif
-#define CM_DELETE_CLASS_BITS              0x00000003
-
-/* CM_Run_Detection[_Ex].ulFlags constants */
-#define CM_DETECT_NEW_PROFILE       0x00000001
-#define CM_DETECT_CRASHED           0x00000002
-#define CM_DETECT_HWPROF_FIRST_BOOT 0x00000004
-#define CM_DETECT_RUN               0x80000000
-#define CM_DETECT_BITS              0x80000007
-
-#define CM_DISABLE_POLITE              0x00000000
-#define CM_DISABLE_ABSOLUTE            0x00000001
-#define CM_DISABLE_HARDWARE            0x00000002
-#define CM_DISABLE_UI_NOT_OK           0x00000004
-#define CM_DISABLE_BITS                0x00000007
-
-#define CM_GETIDLIST_FILTER_NONE               0x00000000
-#define CM_GETIDLIST_FILTER_ENUMERATOR         0x00000001
-#define CM_GETIDLIST_FILTER_SERVICE            0x00000002
-#define CM_GETIDLIST_FILTER_EJECTRELATIONS     0x00000004
-#define CM_GETIDLIST_FILTER_REMOVALRELATIONS   0x00000008
-#define CM_GETIDLIST_FILTER_POWERRELATIONS     0x00000010
-#define CM_GETIDLIST_FILTER_BUSRELATIONS       0x00000020
-#define CM_GETIDLIST_DONOTGENERATE             0x10000040
-#if (WINVER <= _WIN32_WINNT_VISTA)
-#define CM_GETIDLIST_FILTER_BITS               0x1000007F
-#endif
-#if (WINVER >= _WIN32_WINNT_WIN7)
-#define CM_GETIDLIST_FILTER_TRANSPORTRELATIONS 0x00000080
-#define CM_GETIDLIST_FILTER_PRESENT            0x00000100
-#define CM_GETIDLIST_FILTER_CLASS              0x00000200
-#define CM_GETIDLIST_FILTER_BITS               0x100003FF
-#endif
-
-#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT      0x00000000
-#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES  0x00000001
-#define CM_GET_DEVICE_INTERFACE_LIST_BITS         0x00000001
-
-#define CM_DRP_DEVICEDESC                  0x00000001
-#define CM_DRP_HARDWAREID                  0x00000002
-#define CM_DRP_COMPATIBLEIDS               0x00000003
-#define CM_DRP_UNUSED0                     0x00000004
-#define CM_DRP_SERVICE                     0x00000005
-#define CM_DRP_UNUSED1                     0x00000006
-#define CM_DRP_UNUSED2                     0x00000007
-#define CM_DRP_CLASS                       0x00000008
-#define CM_DRP_CLASSGUID                   0x00000009
-#define CM_DRP_DRIVER                      0x0000000A
-#define CM_DRP_CONFIGFLAGS                 0x0000000B
-#define CM_DRP_MFG                         0x0000000C
-#define CM_DRP_FRIENDLYNAME                0x0000000D
-#define CM_DRP_LOCATION_INFORMATION        0x0000000E
-#define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME 0x0000000F
-#define CM_DRP_CAPABILITIES                0x00000010
-#define CM_DRP_UI_NUMBER                   0x00000011
-#define CM_DRP_UPPERFILTERS                0x00000012
-#if (WINVER >= _WIN32_WINNT_VISTA)
-#define CM_CRP_UPPERFILTERS                CM_DRP_UPPERFILTERS
-#endif
-#define CM_DRP_LOWERFILTERS                0x00000013
-#if (WINVER >= _WIN32_WINNT_VISTA)
-#define CM_CRP_LOWERFILTERS                CM_DRP_LOWERFILTERS
-#endif
-#define CM_DRP_BUSTYPEGUID                 0x00000014
-#define CM_DRP_LEGACYBUSTYPE               0x00000015
-#define CM_DRP_BUSNUMBER                   0x00000016
-#define CM_DRP_ENUMERATOR_NAME             0x00000017
-#define CM_DRP_SECURITY                    0x00000018
-#define CM_CRP_SECURITY                    CM_DRP_SECURITY
-#define CM_DRP_SECURITY_SDS                0x00000019
-#define CM_CRP_SECURITY_SDS                CM_DRP_SECURITY_SDS
-#define CM_DRP_DEVTYPE                     0x0000001A
-#define CM_CRP_DEVTYPE                     CM_DRP_DEVTYPE
-#define CM_DRP_EXCLUSIVE                   0x0000001B
-#define CM_CRP_EXCLUSIVE                   CM_DRP_EXCLUSIVE
-#define CM_DRP_CHARACTERISTICS             0x0000001C
-#define CM_CRP_CHARACTERISTICS             CM_DRP_CHARACTERISTICS
-#define CM_DRP_ADDRESS                     0x0000001D
-#define CM_DRP_UI_NUMBER_DESC_FORMAT       0x0000001E
-#if (WINVER >= _WIN32_WINNT_WINXP)
-#define CM_DRP_DEVICE_POWER_DATA           0x0000001F
-#define CM_DRP_REMOVAL_POLICY              0x00000020
-#define CM_DRP_REMOVAL_POLICY_HW_DEFAULT   0x00000021
-#define CM_DRP_REMOVAL_POLICY_OVERRIDE     0x00000022
-#define CM_DRP_INSTALL_STATE               0x00000023
-#endif
-#if (WINVER >= _WIN32_WINNT_WS03)
-#define CM_DRP_LOCATION_PATHS              0x00000024
-#endif
-#if (WINVER >= _WIN32_WINNT_WIN7)
-#define CM_DRP_BASE_CONTAINERID            0x00000025
-#endif
-#define CM_DRP_MIN                         0x00000001
-#define CM_CRP_MIN                         CM_DRP_MIN
-#define CM_DRP_MAX                         0x00000025
-#define CM_CRP_MAX                         CM_DRP_MAX
-
-#define CM_DEVCAP_LOCKSUPPORTED            0x00000001
-#define CM_DEVCAP_EJECTSUPPORTED           0x00000002
-#define CM_DEVCAP_REMOVABLE                0x00000004
-#define CM_DEVCAP_DOCKDEVICE               0x00000008
-#define CM_DEVCAP_UNIQUEID                 0x00000010
-#define CM_DEVCAP_SILENTINSTALL            0x00000020
-#define CM_DEVCAP_RAWDEVICEOK              0x00000040
-#define CM_DEVCAP_SURPRISEREMOVALOK        0x00000080
-#define CM_DEVCAP_HARDWAREDISABLED         0x00000100
-#define CM_DEVCAP_NONDYNAMIC               0x00000200
-
-#if (WINVER >= _WIN32_WINNT_WINXP)
-
-#define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL           1
-#define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL      2
-#define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL     3
-
-#define CM_INSTALL_STATE_INSTALLED                    0
-#define CM_INSTALL_STATE_NEEDS_REINSTALL              1
-#define CM_INSTALL_STATE_FAILED_INSTALL               2
-#define CM_INSTALL_STATE_FINISH_INSTALL               3
-
-#endif /* (WINVER >= _WIN32_WINNT_WINXP) */
-
-/* CM_Locate_DevNode.ulFlags constants */
-#define CM_LOCATE_DEVNODE_NORMAL         0x00000000
-#define CM_LOCATE_DEVNODE_PHANTOM        0x00000001
-#define CM_LOCATE_DEVNODE_CANCELREMOVE   0x00000002
-#define CM_LOCATE_DEVNODE_NOVALIDATION   0x00000004
-#define CM_LOCATE_DEVNODE_BITS           0x00000007
-
-#define CM_LOCATE_DEVINST_NORMAL         CM_LOCATE_DEVNODE_NORMAL
-#define CM_LOCATE_DEVINST_PHANTOM        CM_LOCATE_DEVNODE_PHANTOM
-#define CM_LOCATE_DEVINST_CANCELREMOVE   CM_LOCATE_DEVNODE_CANCELREMOVE
-#define CM_LOCATE_DEVINST_NOVALIDATION   CM_LOCATE_DEVNODE_NOVALIDATION
-#define CM_LOCATE_DEVINST_BITS           CM_LOCATE_DEVNODE_BITS
-
-#define CM_OPEN_CLASS_KEY_INSTALLER        0x00000000
-#define CM_OPEN_CLASS_KEY_INTERFACE        0x00000001
-#define CM_OPEN_CLASS_KEY_BITS             0x00000001
-
-/* CM_Query_And_Remove_SubTree.ulFlags constants */
-#define CM_REMOVE_UI_OK                    0x00000000
-#define CM_REMOVE_UI_NOT_OK                0x00000001
-#define CM_REMOVE_NO_RESTART               0x00000002
-#define CM_REMOVE_BITS                     0x00000003
-
-#define CM_QUERY_REMOVE_UI_OK (CM_REMOVE_UI_OK)
-#define CM_QUERY_REMOVE_UI_NOT_OK (CM_REMOVE_UI_NOT_OK)
-#define CM_QUERY_REMOVE_BITS (CM_QUERY_REMOVE_UI_OK|CM_QUERY_REMOVE_UI_NOT_OK)
-
-/* CM_Reenumerate_DevNode.ulFlags constants */
-#define CM_REENUMERATE_NORMAL              0x00000000
-#define CM_REENUMERATE_SYNCHRONOUS         0x00000001
-#if (WINVER >= _WIN32_WINNT_WINXP)
-#define CM_REENUMERATE_RETRY_INSTALLATION  0x00000002
-#define CM_REENUMERATE_ASYNCHRONOUS        0x00000004
-#endif
-#define CM_REENUMERATE_BITS                0x00000007
-
-#define CM_REGISTER_DEVICE_DRIVER_STATIC         0x00000000
-#define CM_REGISTER_DEVICE_DRIVER_DISABLEABLE    0x00000001
-#define CM_REGISTER_DEVICE_DRIVER_REMOVABLE      0x00000002
-#define CM_REGISTER_DEVICE_DRIVER_BITS           0x00000003
-
-#define CM_REGISTRY_HARDWARE               0x00000000
-#define CM_REGISTRY_SOFTWARE               0x00000001
-#define CM_REGISTRY_USER                   0x00000100
-#define CM_REGISTRY_CONFIG                 0x00000200
-#define CM_REGISTRY_BITS                   0x00000301
-
-#define CM_SET_DEVNODE_PROBLEM_NORMAL      0x00000000
-#define CM_SET_DEVNODE_PROBLEM_OVERRIDE    0x00000001
-#define CM_SET_DEVNODE_PROBLEM_BITS        0x00000001
-
-#define CM_SET_DEVINST_PROBLEM_NORMAL CM_SET_DEVNODE_PROBLEM_NORMAL
-#define CM_SET_DEVINST_PROBLEM_OVERRIDE CM_SET_DEVNODE_PROBLEM_OVERRIDE
-#define CM_SET_DEVINST_PROBLEM_BITS CM_SET_DEVNODE_PROBLEM_BITS
-
-/* CM_Set_HW_Prof_Flags[_Ex].ulFlags constants */
-#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK     0x00000001
-#define CM_SET_HW_PROF_FLAGS_BITS          0x00000001
-
-/* CM_Setup_DevInst[_Ex].ulFlags constants */
-#define CM_SETUP_DEVNODE_READY             0x00000000
-#define CM_SETUP_DEVINST_READY             CM_SETUP_DEVNODE_READY
-#define CM_SETUP_DOWNLOAD                  0x00000001
-#define CM_SETUP_WRITE_LOG_CONFS           0x00000002
-#define CM_SETUP_PROP_CHANGE               0x00000003
-#if (WINVER >= _WIN32_WINNT_WINXP)
-#define CM_SETUP_DEVNODE_RESET             0x00000004
-#define CM_SETUP_DEVINST_RESET             CM_SETUP_DEVNODE_RESET
-#endif
-#define CM_SETUP_BITS                      0x00000007
-
-#define CM_QUERY_ARBITRATOR_RAW            0x00000000
-#define CM_QUERY_ARBITRATOR_TRANSLATED     0x00000001
-#define CM_QUERY_ARBITRATOR_BITS           0x00000001
-
-#if (WINVER >= _WIN32_WINNT_WINXP)
-#define CM_CUSTOMDEVPROP_MERGE_MULTISZ     0x00000001
-#define CM_CUSTOMDEVPROP_BITS              0x00000001
-#endif
-
-#define CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE 0x1
-#define CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME         0x2
-
-#define CR_SUCCESS                        0x00000000
-#define CR_DEFAULT                        0x00000001
-#define CR_OUT_OF_MEMORY                  0x00000002
-#define CR_INVALID_POINTER                0x00000003
-#define CR_INVALID_FLAG                   0x00000004
-#define CR_INVALID_DEVNODE                0x00000005
-#define CR_INVALID_DEVINST                CR_INVALID_DEVNODE
-#define CR_INVALID_RES_DES                0x00000006
-#define CR_INVALID_LOG_CONF               0x00000007
-#define CR_INVALID_ARBITRATOR             0x00000008
-#define CR_INVALID_NODELIST               0x00000009
-#define CR_DEVNODE_HAS_REQS               0x0000000A
-#define CR_DEVINST_HAS_REQS               CR_DEVNODE_HAS_REQS
-#define CR_INVALID_RESOURCEID             0x0000000B
-#define CR_DLVXD_NOT_FOUND                0x0000000C
-#define CR_NO_SUCH_DEVNODE                0x0000000D
-#define CR_NO_SUCH_DEVINST                CR_NO_SUCH_DEVNODE
-#define CR_NO_MORE_LOG_CONF               0x0000000E
-#define CR_NO_MORE_RES_DES                0x0000000F
-#define CR_ALREADY_SUCH_DEVNODE           0x00000010
-#define CR_ALREADY_SUCH_DEVINST           CR_ALREADY_SUCH_DEVNODE
-#define CR_INVALID_RANGE_LIST             0x00000011
-#define CR_INVALID_RANGE                  0x00000012
-#define CR_FAILURE                        0x00000013
-#define CR_NO_SUCH_LOGICAL_DEV            0x00000014
-#define CR_CREATE_BLOCKED                 0x00000015
-#define CR_NOT_SYSTEM_VM                  0x00000016
-#define CR_REMOVE_VETOED                  0x00000017
-#define CR_APM_VETOED                     0x00000018
-#define CR_INVALID_LOAD_TYPE              0x00000019
-#define CR_BUFFER_SMALL                   0x0000001A
-#define CR_NO_ARBITRATOR                  0x0000001B
-#define CR_NO_REGISTRY_HANDLE             0x0000001C
-#define CR_REGISTRY_ERROR                 0x0000001D
-#define CR_INVALID_DEVICE_ID              0x0000001E
-#define CR_INVALID_DATA                   0x0000001F
-#define CR_INVALID_API                    0x00000020
-#define CR_DEVLOADER_NOT_READY            0x00000021
-#define CR_NEED_RESTART                   0x00000022
-#define CR_NO_MORE_HW_PROFILES            0x00000023
-#define CR_DEVICE_NOT_THERE               0x00000024
-#define CR_NO_SUCH_VALUE                  0x00000025
-#define CR_WRONG_TYPE                     0x00000026
-#define CR_INVALID_PRIORITY               0x00000027
-#define CR_NOT_DISABLEABLE                0x00000028
-#define CR_FREE_RESOURCES                 0x00000029
-#define CR_QUERY_VETOED                   0x0000002A
-#define CR_CANT_SHARE_IRQ                 0x0000002B
-#define CR_NO_DEPENDENT                   0x0000002C
-#define CR_SAME_RESOURCES                 0x0000002D
-#define CR_NO_SUCH_REGISTRY_KEY           0x0000002E
-#define CR_INVALID_MACHINENAME            0x0000002F
-#define CR_REMOTE_COMM_FAILURE            0x00000030
-#define CR_MACHINE_UNAVAILABLE            0x00000031
-#define CR_NO_CM_SERVICES                 0x00000032
-#define CR_ACCESS_DENIED                  0x00000033
-#define CR_CALL_NOT_IMPLEMENTED           0x00000034
-#define CR_INVALID_PROPERTY               0x00000035
-#define CR_DEVICE_INTERFACE_ACTIVE        0x00000036
-#define CR_NO_SUCH_DEVICE_INTERFACE       0x00000037
-#define CR_INVALID_REFERENCE_STRING       0x00000038
-#define CR_INVALID_CONFLICT_LIST          0x00000039
-#define CR_INVALID_INDEX                  0x0000003A
-#define CR_INVALID_STRUCTURE_SIZE         0x0000003B
-#define NUM_CR_RESULTS                    0x0000003C
-
-#define CM_GLOBAL_STATE_CAN_DO_UI            0x00000001
-#define CM_GLOBAL_STATE_ON_BIG_STACK         0x00000002
-#define CM_GLOBAL_STATE_SERVICES_AVAILABLE   0x00000004
-#define CM_GLOBAL_STATE_SHUTTING_DOWN        0x00000008
-#define CM_GLOBAL_STATE_DETECTION_PENDING    0x00000010
-#if (WINVER >= _WIN32_WINNT_WIN7)
-#define CM_GLOBAL_STATE_REBOOT_REQUIRED      0x00000020
-#endif
-
-/* FIXME : These definitions don't exist in the official header
-
-#define CMP_MAGIC  0x01234567
-
-CMAPI
-CONFIGRET
-WINAPI
-CMP_Init_Detection(IN DWORD dwMagic);
-
-CMAPI
-CONFIGRET
-WINAPI
-CMP_RegisterNotification(
-  IN HANDLE hRecipient,
-  IN LPVOID lpvNotificationFilter,
-  IN DWORD dwFlags,
-  OUT PULONG pluhDevNotify);
-
-CMAPI
-CONFIGRET
-WINAPI
-CMP_Report_LogOn(
-  IN DWORD dwMagic,
-  IN DWORD dwProcessId);
-
-CMAPI
-CONFIGRET
-WINAPI
-CMP_UnregisterNotification(IN ULONG luhDevNotify);
-
-*/
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_Empty_Log_Conf(
-  OUT PLOG_CONF plcLogConf,
-  IN DEVINST dnDevInst,
-  IN PRIORITY Priority,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_Empty_Log_Conf_Ex(
-  OUT PLOG_CONF plcLogConf,
-  IN DEVINST dnDevInst,
-  IN PRIORITY Priority,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_IDA(
-  IN DEVINST dnDevInst,
-  IN PSTR pszID,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_ID_ExA(
-  IN DEVINST dnDevInst,
-  IN PSTR pszID,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_ID_ExW(
-  IN DEVINST dnDevInst,
-  IN PWSTR pszID,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_IDW(
-  IN DEVINST dnDevInst,
-  IN PWSTR pszID,
-  IN ULONG ulFlags);
-
-#ifdef UNICODE
-#define CM_Add_ID CM_Add_IDW
-#define CM_Add_ID_Ex CM_Add_ID_ExW
-#else
-#define CM_Add_ID CM_Add_IDA
-#define CM_Add_ID_Ex CM_Add_ID_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_Range(
-  IN DWORDLONG ullStartValue,
-  IN DWORDLONG ullEndValue,
-  IN RANGE_LIST rlh,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_Res_Des(
-  OUT PRES_DES prdResDes OPTIONAL,
-  IN LOG_CONF lcLogConf,
-  IN RESOURCEID ResourceID,
-  IN PCVOID ResourceData,
-  IN ULONG ResourceLen,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Add_Res_Des_Ex(
-  OUT PRES_DES prdResDes OPTIONAL,
-  IN LOG_CONF lcLogConf,
-  IN RESOURCEID ResourceID,
-  IN PCVOID ResourceData,
-  IN ULONG ResourceLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Connect_MachineA(
-  IN PCSTR UNCServerName OPTIONAL,
-  OUT PHMACHINE phMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Connect_MachineW(
-  IN PCWSTR UNCServerName OPTIONAL,
-  OUT PHMACHINE phMachine);
-
-#ifdef UNICODE
-#define CM_Connect_Machine CM_Connect_MachineW
-#else
-#define CM_Connect_Machine CM_Connect_MachineA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Create_DevNodeA(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_A pDeviceID,
-  IN DEVINST dnParent,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Create_DevNodeW(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_W pDeviceID,
-  IN DEVINST dnParent,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Create_DevNode_ExA(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_A pDeviceID,
-  IN DEVINST dnParent,
-  IN ULONG ulFlags,
-  IN HANDLE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Create_DevNode_ExW(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_W pDeviceID,
-  IN DEVINST dnParent,
-  IN ULONG ulFlags,
-  IN HANDLE hMachine);
-
-#define CM_Create_DevInstW CM_Create_DevNodeW
-#define CM_Create_DevInstA CM_Create_DevNodeA
-#define CM_Create_DevInst_ExW CM_Create_DevNode_ExW
-#define CM_Create_DevInst_ExA CM_Create_DevNode_ExA
-#ifdef UNICODE
-#define CM_Create_DevNode CM_Create_DevNodeW
-#define CM_Create_DevInst CM_Create_DevNodeW
-#define CM_Create_DevNode_Ex CM_Create_DevNode_ExW
-#define CM_Create_DevInst_Ex CM_Create_DevInst_ExW
-#else
-#define CM_Create_DevNode CM_Create_DevNodeA
-#define CM_Create_DevInst CM_Create_DevNodeA
-#define CM_Create_DevNode_Ex CM_Create_DevNode_ExA
-#define CM_Create_DevInst_Ex CM_Create_DevNode_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Create_Range_List(
-  OUT PRANGE_LIST prlh,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_Class_Key(
-  IN LPGUID ClassGuid,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_Class_Key_Ex(
-  IN LPGUID ClassGuid,
-  IN ULONG ulFlags,
-  IN HANDLE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_DevNode_Key(
-  IN DEVNODE dnDevNode,
-  IN ULONG ulHardwareProfile,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_DevNode_Key_Ex(
-  IN DEVNODE dnDevNode,
-  IN ULONG ulHardwareProfile,
-  IN ULONG ulFlags,
-  IN HANDLE hMachine);
-
-#define CM_Delete_DevInst_Key CM_Delete_DevNode_Key
-#define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_Range(
-  IN DWORDLONG ullStartValue,
-  IN DWORDLONG ullEndValue,
-  IN RANGE_LIST rlh,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Detect_Resource_Conflict(
-  IN DEVINST dnDevInst,
-  IN RESOURCEID ResourceID,
-  IN PCVOID ResourceData,
-  IN ULONG ResourceLen,
-  OUT PBOOL pbConflictDetected,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Detect_Resource_Conflict_Ex(
-  IN DEVINST dnDevInst,
-  IN RESOURCEID ResourceID,
-  IN PCVOID ResourceData,
-  IN ULONG ResourceLen,
-  OUT PBOOL pbConflictDetected,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Disable_DevNode(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Disable_DevNode_Ex(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#define CM_Disable_DevInst CM_Disable_DevNode
-#define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Disconnect_Machine(
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Dup_Range_List(
-  IN RANGE_LIST rlhOld,
-  IN RANGE_LIST rlhNew,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enable_DevNode(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enable_DevNode_Ex(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#define CM_Enable_DevInst CM_Enable_DevNode
-#define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enumerate_Classes(
-  IN ULONG ulClassIndex,
-  OUT LPGUID ClassGuid,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enumerate_Classes_Ex(
-  IN ULONG ulClassIndex,
-  OUT LPGUID ClassGuid,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enumerate_EnumeratorsA(
-  IN ULONG ulEnumIndex,
-  OUT PCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enumerate_Enumerators_ExA(
-  IN ULONG ulEnumIndex,
-  OUT PCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enumerate_Enumerators_ExW(
-  IN ULONG ulEnumIndex,
-  OUT PWCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Enumerate_EnumeratorsW(
-  IN ULONG ulEnumIndex,
-  OUT PWCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-#ifdef UNICODE
-#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
-#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
-#else
-#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
-#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Find_Range(
-  OUT PDWORDLONG pullStart,
-  IN DWORDLONG ullStart,
-  IN ULONG ulLength,
-  IN DWORDLONG ullAlignment,
-  IN DWORDLONG ullEnd,
-  IN RANGE_LIST rlh,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_First_Range(
-  IN RANGE_LIST rlh,
-  OUT PDWORDLONG pullStart,
-  OUT PDWORDLONG pullEnd,
-  OUT PRANGE_ELEMENT preElement,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Log_Conf(
-  IN LOG_CONF lcLogConfToBeFreed,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Log_Conf_Ex(
-  IN LOG_CONF lcLogConfToBeFreed,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Log_Conf_Handle(
-  IN LOG_CONF lcLogConf);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Range_List(
-  IN RANGE_LIST rlh,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Res_Des(
-  OUT PRES_DES prdResDes,
-  IN RES_DES rdResDes,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Res_Des_Ex(
-  OUT PRES_DES prdResDes,
-  IN RES_DES rdResDes,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Res_Des_Handle(
-  IN RES_DES rdResDes);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Free_Resource_Conflict_Handle(
-  IN CONFLICT_LIST clConflictList);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Child(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Child_Ex(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_NameA(
-  IN LPGUID ClassGuid,
-  OUT PCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_NameW(
-  IN LPGUID ClassGuid,
-  OUT PWCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Name_ExA(
-  IN LPGUID ClassGuid,
-  OUT PCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Name_ExW(
-  IN LPGUID ClassGuid,
-  OUT PWCHAR Buffer,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#ifdef UNICODE
-#define CM_Get_Class_Name CM_Get_Class_NameW
-#define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
-#else
-#define CM_Get_Class_Name CM_Get_Class_NameA
-#define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Key_NameA(
-  IN LPGUID ClassGuid,
-  OUT LPSTR pszKeyName,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Key_NameW(
-  IN LPGUID ClassGuid,
-  OUT LPWSTR pszKeyName,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Key_Name_ExA(
-  IN LPGUID ClassGuid,
-  OUT LPSTR pszKeyName,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Key_Name_ExW(
-  IN LPGUID ClassGuid,
-  OUT LPWSTR pszKeyName,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#ifdef UNICODE
-#define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
-#define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
-#else
-#define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
-#define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Depth(
-  OUT PULONG pulDepth,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Depth_Ex(
-  OUT PULONG pulDepth,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_IDA(
-  IN DEVINST dnDevInst,
-  OUT PCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_ExA(
-  IN DEVINST dnDevInst,
-  OUT PCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_ExW(
-  IN DEVINST dnDevInst,
-  OUT PWCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_IDW(
-  IN DEVINST dnDevInst,
-  OUT PWCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags);
-
-#ifdef UNICODE
-#define CM_Get_Device_ID CM_Get_Device_IDW
-#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
-#else
-#define CM_Get_Device_ID CM_Get_Device_IDA
-#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_ListA(
-  IN PCSTR pszFilter OPTIONAL,
-  OUT PCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_List_ExA(
-  IN PCSTR pszFilter OPTIONAL,
-  OUT PCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_List_ExW(
-  IN PCWSTR pszFilter OPTIONAL,
-  OUT PWCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_ListW(
-  IN PCWSTR pszFilter OPTIONAL,
-  OUT PWCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags);
-
-#ifdef UNICODE
-#define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
-#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
-#else
-#define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
-#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_List_SizeA(
-  OUT PULONG pulLen,
-  IN PCSTR pszFilter OPTIONAL,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_List_Size_ExA(
-  OUT PULONG pulLen,
-  IN PCSTR pszFilter OPTIONAL,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_List_Size_ExW(
-  OUT PULONG pulLen,
-  IN PCWSTR pszFilter OPTIONAL,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_List_SizeW(
-  OUT PULONG pulLen,
-  IN PCWSTR pszFilter OPTIONAL,
-  IN ULONG ulFlags);
-
-#ifdef UNICODE
-#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
-#define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
-#else
-#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
-#define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_Size(
-  OUT PULONG pulLen,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_ID_Size_Ex(
-  OUT PULONG pulLen,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Registry_PropertyA(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Registry_PropertyW(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Registry_Property_ExA(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Registry_Property_ExW(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
-#define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
-#define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
-#define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
-
-#ifdef UNICODE
-#define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
-#define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
-#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
-#define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
-#else
-#define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
-#define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
-#define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
-#define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
-#endif /* UNICODE */
-
-#if (WINVER >= _WIN32_WINNT_WINXP)
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Custom_PropertyA(
-  IN DEVINST dnDevInst,
-  IN PCSTR pszCustomPropertyName,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Custom_PropertyW(
-  IN DEVINST dnDevInst,
-  IN PCWSTR pszCustomPropertyName,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Custom_Property_ExA(
-  IN DEVINST dnDevInst,
-  IN PCSTR pszCustomPropertyName,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Custom_Property_ExW(
-  IN DEVINST dnDevInst,
-  IN PCWSTR pszCustomPropertyName,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#define CM_Get_DevInst_Custom_PropertyW     CM_Get_DevNode_Custom_PropertyW
-#define CM_Get_DevInst_Custom_PropertyA     CM_Get_DevNode_Custom_PropertyA
-#define CM_Get_DevInst_Custom_Property_ExW  CM_Get_DevNode_Custom_Property_ExW
-#define CM_Get_DevInst_Custom_Property_ExA  CM_Get_DevNode_Custom_Property_ExA
-#ifdef UNICODE
-#define CM_Get_DevInst_Custom_Property      CM_Get_DevNode_Custom_PropertyW
-#define CM_Get_DevInst_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExW
-#define CM_Get_DevNode_Custom_Property      CM_Get_DevNode_Custom_PropertyW
-#define CM_Get_DevNode_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExW
-#else
-#define CM_Get_DevInst_Custom_Property      CM_Get_DevNode_Custom_PropertyA
-#define CM_Get_DevInst_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExA
-#define CM_Get_DevNode_Custom_Property      CM_Get_DevNode_Custom_PropertyA
-#define CM_Get_DevNode_Custom_Property_Ex   CM_Get_DevNode_Custom_Property_ExA
-#endif
-
-#endif /* (WINVER >= _WIN32_WINNT_WINXP) */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Status(
-  OUT PULONG pulStatus,
-  OUT PULONG pulProblemNumber,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_DevNode_Status_Ex(
-  OUT PULONG pulStatus,
-  OUT PULONG pulProblemNumber,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#define CM_Get_DevInst_Status CM_Get_DevNode_Status
-#define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_First_Log_Conf(
-  OUT PLOG_CONF plcLogConf OPTIONAL,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_First_Log_Conf_Ex(
-  OUT PLOG_CONF plcLogConf OPTIONAL,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Global_State(
-  OUT PULONG pulState,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Global_State_Ex(
-  OUT PULONG pulState,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Hardware_Profile_InfoA(
-  IN ULONG ulIndex,
-  OUT PHWPROFILEINFO_A pHWProfileInfo,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Hardware_Profile_Info_ExA(
-  IN ULONG ulIndex,
-  OUT PHWPROFILEINFO_A pHWProfileInfo,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Hardware_Profile_InfoW(
-  IN ULONG ulIndex,
-  OUT PHWPROFILEINFO_W pHWProfileInfo,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Hardware_Profile_Info_ExW(
-  IN ULONG ulIndex,
-  OUT PHWPROFILEINFO_W pHWProfileInfo,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Get_Hardware_Profile_Info      CM_Get_Hardware_Profile_InfoW
-#define CM_Get_Hardware_Profile_Info_Ex   CM_Get_Hardware_Profile_Info_ExW
-#else
-#define CM_Get_Hardware_Profile_Info      CM_Get_Hardware_Profile_InfoA
-#define CM_Get_Hardware_Profile_Info_Ex   CM_Get_Hardware_Profile_Info_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_HW_Prof_FlagsA(
-  IN DEVINSTID_A szDevInstName,
-  IN ULONG ulHardwareProfile,
-  OUT PULONG pulValue,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_HW_Prof_FlagsW(
-  IN DEVINSTID_W szDevInstName,
-  IN ULONG ulHardwareProfile,
-  OUT PULONG pulValue,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_HW_Prof_Flags_ExA(
-  IN DEVINSTID_A szDevInstName,
-  IN ULONG ulHardwareProfile,
-  OUT PULONG pulValue,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_HW_Prof_Flags_ExW(
-  IN DEVINSTID_W szDevInstName,
-  IN ULONG ulHardwareProfile,
-  OUT PULONG pulValue,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#ifdef UNICODE
-#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW
-#define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW
-#else
-#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsA
-#define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_AliasA(
-  IN LPCSTR pszDeviceInterface,
-  IN LPGUID AliasInterfaceGuid,
-  OUT LPSTR pszAliasDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_AliasW(
-  IN LPCWSTR pszDeviceInterface,
-  IN LPGUID AliasInterfaceGuid,
-  OUT LPWSTR pszAliasDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_Alias_ExA(
-  IN LPCSTR pszDeviceInterface,
-  IN LPGUID AliasInterfaceGuid,
-  OUT LPSTR pszAliasDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_Alias_ExW(
-  IN LPCWSTR pszDeviceInterface,
-  IN LPGUID AliasInterfaceGuid,
-  OUT LPWSTR pszAliasDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Get_Device_Interface_Alias     CM_Get_Device_Interface_AliasW
-#define CM_Get_Device_Interface_Alias_Ex  CM_Get_Device_Interface_Alias_ExW
-#else
-#define CM_Get_Device_Interface_Alias     CM_Get_Device_Interface_AliasA
-#define CM_Get_Device_Interface_Alias_Ex  CM_Get_Device_Interface_Alias_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_ListA(
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_A pDeviceID OPTIONAL,
-  OUT PCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_ListW(
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_W pDeviceID OPTIONAL,
-  OUT PWCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_List_ExA(
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_A pDeviceID OPTIONAL,
-  OUT PCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_List_ExW(
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_W pDeviceID OPTIONAL,
-  OUT PWCHAR Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Get_Device_Interface_List     CM_Get_Device_Interface_ListW
-#define CM_Get_Device_Interface_List_Ex  CM_Get_Device_Interface_List_ExW
-#else
-#define CM_Get_Device_Interface_List     CM_Get_Device_Interface_ListA
-#define CM_Get_Device_Interface_List_Ex  CM_Get_Device_Interface_List_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_List_SizeA(
-  OUT PULONG pulLen,
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_A pDeviceID OPTIONAL,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_List_SizeW(
-  OUT PULONG pulLen,
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_W pDeviceID OPTIONAL,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_List_Size_ExA(
-  OUT PULONG pulLen,
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_A pDeviceID OPTIONAL,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Device_Interface_List_Size_ExW(
-  OUT PULONG pulLen,
-  IN LPGUID InterfaceClassGuid,
-  IN DEVINSTID_W pDeviceID OPTIONAL,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Get_Device_Interface_List_Size     CM_Get_Device_Interface_List_SizeW
-#define CM_Get_Device_Interface_List_Size_Ex  CM_Get_Device_Interface_List_Size_ExW
-#else
-#define CM_Get_Device_Interface_List_Size     CM_Get_Device_Interface_List_SizeA
-#define CM_Get_Device_Interface_List_Size_Ex  CM_Get_Device_Interface_List_Size_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Log_Conf_Priority(
-  IN LOG_CONF lcLogConf,
-  OUT PPRIORITY pPriority,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Log_Conf_Priority_Ex(
-  IN LOG_CONF lcLogConf,
-  OUT PPRIORITY pPriority,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Next_Log_Conf(
-  OUT PLOG_CONF plcLogConf OPTIONAL,
-  IN LOG_CONF lcLogConf,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Next_Log_Conf_Ex(
-  OUT PLOG_CONF plcLogConf OPTIONAL,
-  IN LOG_CONF lcLogConf,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Next_Res_Des(
-  OUT PRES_DES prdResDes,
-  IN RES_DES rdResDes,
-  IN RESOURCEID ForResource,
-  OUT PRESOURCEID pResourceID,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Next_Res_Des_Ex(
-  OUT PRES_DES prdResDes,
-  IN RES_DES rdResDes,
-  IN RESOURCEID ForResource,
-  OUT PRESOURCEID pResourceID,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Parent(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Parent_Ex(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Res_Des_Data(
-  IN RES_DES rdResDes,
-  OUT PVOID Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Res_Des_Data_Ex(
-  IN RES_DES rdResDes,
-  OUT PVOID Buffer,
-  IN ULONG BufferLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Res_Des_Data_Size(
-  OUT PULONG pulSize,
-  IN RES_DES rdResDes,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Res_Des_Data_Size_Ex(
-  OUT PULONG pulSize,
-  IN RES_DES rdResDes,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Resource_Conflict_Count(
-  IN CONFLICT_LIST clConflictList,
-  OUT PULONG pulCount);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Resource_Conflict_DetailsA(
-  IN CONFLICT_LIST clConflictList,
-  IN ULONG ulIndex,
-  IN OUT PCONFLICT_DETAILS_A pConflictDetails);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Resource_Conflict_DetailsW(
-  IN CONFLICT_LIST clConflictList,
-  IN ULONG ulIndex,
-  IN OUT PCONFLICT_DETAILS_W pConflictDetails);
-
-#ifdef UNICODE
-#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
-#else
-#define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Registry_PropertyW(
-  IN LPGUID ClassGuid,
-  IN ULONG ulProperty,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_Class_Registry_PropertyW(
-  IN LPGUID ClassGuid,
-  IN ULONG ulProperty,
-  IN PCVOID Buffer OPTIONAL,
-  IN ULONG ulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Class_Registry_PropertyA(
-  IN LPGUID ClassGuid,
-  IN ULONG ulProperty,
-  OUT PULONG pulRegDataType OPTIONAL,
-  OUT PVOID Buffer OPTIONAL,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_Class_Registry_PropertyA(
-  IN LPGUID ClassGuid,
-  IN ULONG ulProperty,
-  IN PCVOID Buffer OPTIONAL,
-  IN  ULONG ulLength,
-  IN  ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyW
-#define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyW
-#else
-#define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyA
-#define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyA
-#endif // UNICODE
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Sibling(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINST DevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Get_Sibling_Ex(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINST DevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-WORD
-WINAPI
-CM_Get_Version(VOID);
-
-CMAPI
-WORD
-WINAPI
-CM_Get_Version_Ex(
-  IN HMACHINE hMachine);
-
-#if (WINVER >= _WIN32_WINNT_WINXP)
-
-CMAPI
-BOOL
-WINAPI
-CM_Is_Version_Available(
-  IN WORD wVersion);
-
-CMAPI
-BOOL
-WINAPI
-CM_Is_Version_Available_Ex(
-  IN WORD wVersion,
-  IN HMACHINE hMachine OPTIONAL);
-
-#endif /* (WINVER >= _WIN32_WINNT_WINXP) */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Intersect_Range_List(
-  IN RANGE_LIST rlhOld1,
-  IN RANGE_LIST rlhOld2,
-  IN RANGE_LIST rlhNew,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Invert_Range_List(
-  IN RANGE_LIST rlhOld,
-  IN RANGE_LIST rlhNew,
-  IN DWORDLONG ullMaxValue,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Is_Dock_Station_Present(
-  OUT PBOOL pbPresent);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Is_Dock_Station_Present_Ex(
-  OUT PBOOL pbPresent,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Locate_DevNodeA(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_A pDeviceID OPTIONAL,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Locate_DevNode_ExA(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_A pDeviceID OPTIONAL,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Locate_DevNode_ExW(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_W pDeviceID OPTIONAL,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Locate_DevNodeW(
-  OUT PDEVINST pdnDevInst,
-  IN DEVINSTID_W pDeviceID OPTIONAL,
-  IN ULONG ulFlags);
-
-#define CM_Locate_DevInstA CM_Locate_DevNodeA
-#define CM_Locate_DevInstW CM_Locate_DevNodeW
-#define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
-#define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
-
-#ifdef UNICODE
-#define CM_Locate_DevNode CM_Locate_DevNodeW
-#define CM_Locate_DevInst CM_Locate_DevNodeW
-#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
-#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
-#else
-#define CM_Locate_DevNode CM_Locate_DevNodeA
-#define CM_Locate_DevInst CM_Locate_DevNodeA
-#define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
-#define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Merge_Range_List(
-  IN RANGE_LIST rlhOld1,
-  IN RANGE_LIST rlhOld2,
-  IN RANGE_LIST rlhNew,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Modify_Res_Des(
-  OUT PRES_DES prdResDes,
-  IN RES_DES rdResDes,
-  IN RESOURCEID ResourceID,
-  IN PCVOID ResourceData,
-  IN ULONG ResourceLen,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Modify_Res_Des_Ex(
-  OUT PRES_DES prdResDes,
-  IN RES_DES rdResDes,
-  IN RESOURCEID ResourceID,
-  IN PCVOID ResourceData,
-  IN ULONG ResourceLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Move_DevNode(
-  IN DEVINST dnFromDevInst,
-  IN DEVINST dnToDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Move_DevNode_Ex(
-  IN DEVINST dnFromDevInst,
-  IN DEVINST dnToDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#define CM_Move_DevInst                CM_Move_DevNode
-#define CM_Move_DevInst_Ex             CM_Move_DevNode_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Next_Range(
-  IN OUT PRANGE_ELEMENT preElement,
-  OUT PDWORDLONG pullStart,
-  OUT PDWORDLONG pullEnd,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Class_KeyA(
-  IN LPGUID ClassGuid OPTIONAL,
-  IN LPCSTR pszClassName OPTIONAL,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkClass,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Class_KeyW(
-  IN LPGUID ClassGuid OPTIONAL,
-  IN LPCWSTR pszClassName OPTIONAL,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkClass,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Class_Key_ExA(
-  IN LPGUID pszClassGuid OPTIONAL,
-  IN LPCSTR pszClassName OPTIONAL,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkClass,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Class_Key_ExW(
-  IN LPGUID pszClassGuid OPTIONAL,
-  IN LPCWSTR pszClassName OPTIONAL,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkClass,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#ifdef UNICODE
-#define CM_Open_Class_Key CM_Open_Class_KeyW
-#define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
-#else
-#define CM_Open_Class_Key CM_Open_Class_KeyA
-#define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_DevNode_Key(
-  IN DEVINST dnDevNode,
-  IN REGSAM samDesired,
-  IN ULONG ulHardwareProfile,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkDevice,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_DevNode_Key_Ex(
-  IN DEVINST dnDevNode,
-  IN REGSAM samDesired,
-  IN ULONG ulHardwareProfile,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkDevice,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#define CM_Open_DevInst_Key CM_Open_DevNode_Key
-#define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex
-
-#if (WINVER >= _WIN32_WINNT_VISTA)
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Device_Interface_KeyA(
-  IN LPCSTR pszDeviceInterface,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkDeviceInterface,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Device_Interface_KeyW(
-  IN LPCWSTR pszDeviceInterface,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkDeviceInterface,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Device_Interface_Key_ExA(
-  IN LPCSTR pszDeviceInterface,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkDeviceInterface,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Open_Device_Interface_Key_ExW(
-  IN LPCWSTR pszDeviceInterface,
-  IN REGSAM samDesired,
-  IN REGDISPOSITION Disposition,
-  OUT PHKEY phkDeviceInterface,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Open_Device_Interface_Key    CM_Open_Device_Interface_KeyW
-#define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExW
-#else
-#define CM_Open_Device_Interface_Key    CM_Open_Device_Interface_KeyA
-#define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_Device_Interface_KeyA(
-  IN LPCSTR pszDeviceInterface,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_Device_Interface_KeyW(
-  IN LPCWSTR pszDeviceInterface,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_Device_Interface_Key_ExA(
-  IN LPCSTR pszDeviceInterface,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Delete_Device_Interface_Key_ExW(
-  IN LPCWSTR pszDeviceInterface,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Delete_Device_Interface_Key    CM_Delete_Device_Interface_KeyW
-#define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExW
-#else
-#define CM_Delete_Device_Interface_Key    CM_Delete_Device_Interface_KeyA
-#define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExA
-#endif
-
-#endif /* (WINVER >= _WIN32_WINNT_VISTA) */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_Arbitrator_Free_Data(
-  OUT PVOID pData,
-  IN ULONG DataLen,
-  IN DEVINST dnDevInst,
-  IN RESOURCEID ResourceID,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_Arbitrator_Free_Data_Ex(
-  OUT PVOID pData,
-  IN ULONG DataLen,
-  IN DEVINST dnDevInst,
-  IN RESOURCEID ResourceID,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_Arbitrator_Free_Size(
-  OUT PULONG pulSize,
-  IN DEVINST dnDevInst,
-  IN RESOURCEID ResourceID,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_Arbitrator_Free_Size_Ex(
-  OUT PULONG pulSize,
-  IN DEVINST dnDevInst,
-  IN RESOURCEID ResourceID,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_Remove_SubTree(
-  IN DEVINST dnAncestor,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_Remove_SubTree_Ex(
-  IN DEVINST dnAncestor,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_And_Remove_SubTreeA(
-  IN DEVINST dnAncestor,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_And_Remove_SubTreeW(
-  IN DEVINST dnAncestor,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPWSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_And_Remove_SubTree_ExA(
-  IN DEVINST dnAncestor,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_And_Remove_SubTree_ExW(
-  IN DEVINST dnAncestor,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPWSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#ifdef UNICODE
-#define CM_Query_And_Remove_SubTree     CM_Query_And_Remove_SubTreeW
-#define CM_Query_And_Remove_SubTree_Ex  CM_Query_And_Remove_SubTree_ExW
-#else
-#define CM_Query_And_Remove_SubTree     CM_Query_And_Remove_SubTreeA
-#define CM_Query_And_Remove_SubTree_Ex  CM_Query_And_Remove_SubTree_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Query_Resource_Conflict_List(
-  OUT PCONFLICT_LIST pclConflictList,
-  IN DEVINST dnDevInst,
-  IN RESOURCEID ResourceID,
-  IN PCVOID ResourceData,
-  IN ULONG ResourceLen,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Reenumerate_DevNode(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Reenumerate_DevNode_Ex(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
-#define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Register_Device_InterfaceA(
-  IN DEVINST dnDevInst,
-  IN LPGUID InterfaceClassGuid,
-  IN LPCSTR pszReference OPTIONAL,
-  OUT LPSTR pszDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Register_Device_InterfaceW(
-  IN DEVINST dnDevInst,
-  IN LPGUID InterfaceClassGuid,
-  IN LPCWSTR pszReference OPTIONAL,
-  OUT LPWSTR pszDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Register_Device_Interface_ExA(
-  IN DEVINST dnDevInst,
-  IN LPGUID InterfaceClassGuid,
-  IN LPCSTR pszReference OPTIONAL,
-  OUT LPSTR pszDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Register_Device_Interface_ExW(
-  IN DEVINST dnDevInst,
-  IN LPGUID InterfaceClassGuid,
-  IN LPCWSTR pszReference OPTIONAL,
-  OUT LPWSTR pszDeviceInterface,
-  IN OUT PULONG pulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Register_Device_Interface    CM_Register_Device_InterfaceW
-#define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExW
-#else
-#define CM_Register_Device_Interface    CM_Register_Device_InterfaceA
-#define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Request_Device_EjectA(
-  IN DEVINST dnDevInst,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Request_Device_Eject_ExW(
-  IN DEVINST dnDevInst,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPWSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Request_Device_Eject_ExA(
-  IN DEVINST dnDevInst,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Request_Device_EjectW(
-  IN DEVINST dnDevInst,
-  OUT PPNP_VETO_TYPE pVetoType,
-  OUT LPWSTR pszVetoName,
-  IN ULONG ulNameLength,
-  IN ULONG ulFlags);
-
-#ifdef UNICODE
-#define CM_Request_Device_Eject CM_Request_Device_EjectW
-#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
-#else
-#define CM_Request_Device_Eject CM_Request_Device_EjectA
-#define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Request_Eject_PC(VOID);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Request_Eject_PC_Ex(
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Run_Detection(
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Run_Detection_Ex(
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#if (WINVER >= _WIN32_WINNT_VISTA)
-
-CONFIGRET
-CM_Apply_PowerScheme(VOID);
-
-CONFIGRET
-CM_Write_UserPowerKey(
-  IN CONST GUID *SchemeGuid OPTIONAL,
-  IN CONST GUID *SubGroupOfPowerSettingsGuid OPTIONAL,
-  IN CONST GUID *PowerSettingGuid OPTIONAL,
-  IN ULONG AccessFlags,
-  IN ULONG Type,
-  IN UCHAR *Buffer,
-  IN DWORD BufferSize,
-  OUT PDWORD Error);
-
-CONFIGRET
-CM_Set_ActiveScheme(
-  IN CONST GUID *SchemeGuid,
-  OUT PDWORD Error);
-
-CONFIGRET
-CM_Restore_DefaultPowerScheme(
-  IN CONST GUID *SchemeGuid,
-  OUT PDWORD Error);
-
-CONFIGRET
-CM_RestoreAll_DefaultPowerSchemes(
-  OUT PDWORD Error);
-
-CONFIGRET
-CM_Duplicate_PowerScheme(
-  IN CONST GUID *SourceSchemeGuid,
-  IN GUID **DestinationSchemeGuid,
-  OUT PDWORD Error);
-
-CONFIGRET
-CM_Delete_PowerScheme(
-  IN CONST GUID *SchemeGuid,
-  OUT PDWORD Error);
-
-CONFIGRET
-CM_Import_PowerScheme(
-  IN LPCWSTR ImportFileNamePath,
-  IN OUT GUID **DestinationSchemeGuid,
-  OUT PDWORD Error);
-
-#endif /* (WINVER >= _WIN32_WINNT_VISTA) */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_DevNode_Problem(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProblem,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_DevNode_Problem_Ex(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProblem,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#define CM_Set_DevInst_Problem CM_Set_DevNode_Problem
-#define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Unregister_Device_InterfaceA(
-  IN LPCSTR pszDeviceInterface,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Unregister_Device_InterfaceW(
-  IN LPCWSTR pszDeviceInterface,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Unregister_Device_Interface_ExA(
-  IN LPCSTR pszDeviceInterface,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Unregister_Device_Interface_ExW(
-  IN LPCWSTR pszDeviceInterface,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#ifdef UNICODE
-#define CM_Unregister_Device_Interface    CM_Unregister_Device_InterfaceW
-#define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExW
-#else
-#define CM_Unregister_Device_Interface    CM_Unregister_Device_InterfaceA
-#define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExA
-#endif
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Register_Device_Driver(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Register_Device_Driver_Ex(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Remove_SubTree(
-  IN DEVINST dnAncestor,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Remove_SubTree_Ex(
-  IN DEVINST dnAncestor,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_DevNode_Registry_PropertyA(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  IN PCVOID Buffer OPTIONAL,
-  IN ULONG ulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_DevNode_Registry_PropertyW(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  IN PCVOID Buffer OPTIONAL,
-  IN ULONG ulLength,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_DevNode_Registry_Property_ExA(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  IN PCVOID Buffer OPTIONAL,
-  IN ULONG ulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_DevNode_Registry_Property_ExW(
-  IN DEVINST dnDevInst,
-  IN ULONG ulProperty,
-  IN PCVOID Buffer OPTIONAL,
-  IN ULONG ulLength,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
-#define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
-#define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
-#define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
-
-#ifdef UNICODE
-#define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
-#define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
-#define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
-#define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
-#else
-#define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
-#define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
-#define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
-#define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_HW_Prof(
-  IN ULONG ulHardwareProfile,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_HW_Prof_Ex(
-  IN ULONG ulHardwareProfile,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_HW_Prof_FlagsA(
-  IN DEVINSTID_A szDevInstName,
-  IN ULONG ulConfig,
-  IN ULONG ulValue,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_HW_Prof_FlagsW(
-  IN DEVINSTID_W szDevInstName,
-  IN ULONG ulConfig,
-  IN ULONG ulValue,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_HW_Prof_Flags_ExA(
-  IN DEVINSTID_A szDevInstName,
-  IN ULONG ulConfig,
-  IN ULONG ulValue,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Set_HW_Prof_Flags_ExW(
-  IN DEVINSTID_W szDevInstName,
-  IN ULONG ulConfig,
-  IN ULONG ulValue,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#ifdef UNICODE
-#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW
-#define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW
-#else
-#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsA
-#define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExA
-#endif /* UNICODE */
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Setup_DevNode(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Setup_DevNode_Ex(
-  IN DEVINST dnDevInst,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine OPTIONAL);
-
-#define CM_Setup_DevInst         CM_Setup_DevNode
-#define CM_Setup_DevInst_Ex      CM_Setup_DevNode_Ex
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Test_Range_Available(
-  IN DWORDLONG ullStartValue,
-  IN DWORDLONG ullEndValue,
-  IN RANGE_LIST rlh,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Uninstall_DevNode(
-  IN DEVINST dnPhantom,
-  IN ULONG ulFlags);
-
-CMAPI
-CONFIGRET
-WINAPI
-CM_Uninstall_DevNode_Ex(
-  IN DEVINST dnPhantom,
-  IN ULONG ulFlags,
-  IN HMACHINE hMachine);
-
-#define CM_Uninstall_DevInst     CM_Uninstall_DevNode
-#define CM_Uninstall_DevInst_Ex  CM_Uninstall_DevNode_Ex
-
-
-#if (WINVER >= _WIN32_WINNT_WIN2K)
-
-#define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
-
-CMAPI
-DWORD
-WINAPI
-CMP_WaitNoPendingInstallEvents(
-  IN DWORD dwTimeout);
-
-#endif /* (WINVER >= _WIN32_WINNT_WIN2K) */
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/reactos/include/psdk/devpropdef.h b/reactos/include/psdk/devpropdef.h
deleted file mode 100644 (file)
index 49e4c91..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef _DEVPROPDEF_H_
-#define _DEVPROPDEF_H_
-
-typedef ULONG DEVPROPTYPE, *PDEVPROPTYPE;
-
-#define DEVPROP_TYPEMOD_ARRAY                   0x00001000
-#define DEVPROP_TYPEMOD_LIST                    0x00002000
-
-#define DEVPROP_TYPE_EMPTY                      0x00000000
-#define DEVPROP_TYPE_NULL                       0x00000001
-#define DEVPROP_TYPE_SBYTE                      0x00000002
-#define DEVPROP_TYPE_BYTE                       0x00000003
-#define DEVPROP_TYPE_INT16                      0x00000004
-#define DEVPROP_TYPE_UINT16                     0x00000005
-#define DEVPROP_TYPE_INT32                      0x00000006
-#define DEVPROP_TYPE_UINT32                     0x00000007
-#define DEVPROP_TYPE_INT64                      0x00000008
-#define DEVPROP_TYPE_UINT64                     0x00000009
-#define DEVPROP_TYPE_FLOAT                      0x0000000A
-#define DEVPROP_TYPE_DOUBLE                     0x0000000B
-#define DEVPROP_TYPE_DECIMAL                    0x0000000C
-#define DEVPROP_TYPE_GUID                       0x0000000D
-#define DEVPROP_TYPE_CURRENCY                   0x0000000E
-#define DEVPROP_TYPE_DATE                       0x0000000F
-#define DEVPROP_TYPE_FILETIME                   0x00000010
-#define DEVPROP_TYPE_BOOLEAN                    0x00000011
-#define DEVPROP_TYPE_STRING                     0x00000012
-#define DEVPROP_TYPE_STRING_LIST (DEVPROP_TYPE_STRING|DEVPROP_TYPEMOD_LIST)
-#define DEVPROP_TYPE_SECURITY_DESCRIPTOR        0x00000013
-#define DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING 0x00000014
-#define DEVPROP_TYPE_DEVPROPKEY                 0x00000015
-#define DEVPROP_TYPE_DEVPROPTYPE                0x00000016
-#define DEVPROP_TYPE_BINARY      (DEVPROP_TYPE_BYTE|DEVPROP_TYPEMOD_ARRAY)
-#define DEVPROP_TYPE_ERROR                      0x00000017
-#define DEVPROP_TYPE_NTSTATUS                   0x00000018
-#define DEVPROP_TYPE_STRING_INDIRECT            0x00000019
-
-#define MAX_DEVPROP_TYPE                        0x00000019
-#define MAX_DEVPROP_TYPEMOD                     0x00002000
-
-#define DEVPROP_MASK_TYPE                       0x00000FFF
-#define DEVPROP_MASK_TYPEMOD                    0x0000F000
-
-typedef CHAR DEVPROP_BOOLEAN, *PDEVPROP_BOOLEAN;
-
-#define DEVPROP_TRUE ((DEVPROP_BOOLEAN)-1)
-#define DEVPROP_FALSE ((DEVPROP_BOOLEAN) 0)
-
-#ifndef DEVPROPKEY_DEFINED
-#define DEVPROPKEY_DEFINED
-
-typedef GUID DEVPROPGUID, *PDEVPROPGUID;
-typedef ULONG DEVPROPID, *PDEVPROPID;
-
-typedef struct _DEVPROPKEY {
-  DEVPROPGUID fmtid;
-  DEVPROPID pid;
-} DEVPROPKEY, *PDEVPROPKEY;
-
-#endif /* DEVPROPKEY_DEFINED */
-
-#define DEVPROPID_FIRST_USABLE 2
-
-#endif /* _DEVPROPDEF_H_ */
-
-#ifdef DEFINE_DEVPROPKEY
-#undef DEFINE_DEVPROPKEY
-#endif
-#ifdef INITGUID
-#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const DEVPROPKEY DECLSPEC_SELECTANY name = {{ l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}, pid}
-#else
-#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const DEVPROPKEY name
-#endif /* INITGUID */
-
-#ifndef IsEqualDevPropKey
-
-#ifdef __cplusplus
-#define IsEqualDevPropKey(a, b) (((a).pid == (b).pid) && IsEqualIID((a).fmtid, (b).fmtid))
-#else
-#define IsEqualDevPropKey(a, b) (((a).pid == (b).pid) && IsEqualIID(&(a).fmtid, &(b).fmtid))
-#endif
-
-#endif /* !IsEqualDevPropKey */
-
diff --git a/reactos/include/psdk/evntprov.h b/reactos/include/psdk/evntprov.h
deleted file mode 100644 (file)
index 69cc7ce..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-#pragma once
-
-#ifndef EVNTAPI
-#ifndef MIDL_PASS
-#ifdef _EVNT_SOURCE_
-#define EVNTAPI __stdcall
-#else
-#define EVNTAPI DECLSPEC_IMPORT __stdcall
-#endif /* _EVNT_SOURCE_ */
-#endif /* MIDL_PASS */
-#endif /* EVNTAPI */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define EVENT_MIN_LEVEL                      (0)
-#define EVENT_MAX_LEVEL                      (0xff)
-
-#define EVENT_ACTIVITY_CTRL_GET_ID           (1)
-#define EVENT_ACTIVITY_CTRL_SET_ID           (2)
-#define EVENT_ACTIVITY_CTRL_CREATE_ID        (3)
-#define EVENT_ACTIVITY_CTRL_GET_SET_ID       (4)
-#define EVENT_ACTIVITY_CTRL_CREATE_SET_ID    (5)
-
-typedef ULONGLONG REGHANDLE, *PREGHANDLE;
-
-#define MAX_EVENT_DATA_DESCRIPTORS           (128)
-#define MAX_EVENT_FILTER_DATA_SIZE           (1024)
-
-#define EVENT_FILTER_TYPE_SCHEMATIZED        (0x80000000)
-
-typedef struct _EVENT_DATA_DESCRIPTOR {
-  ULONGLONG Ptr;
-  ULONG Size;
-  ULONG Reserved;
-} EVENT_DATA_DESCRIPTOR, *PEVENT_DATA_DESCRIPTOR;
-
-typedef struct _EVENT_DESCRIPTOR {
-  USHORT Id;
-  UCHAR Version;
-  UCHAR Channel;
-  UCHAR Level;
-  UCHAR Opcode;
-  USHORT Task;
-  ULONGLONG Keyword;
-} EVENT_DESCRIPTOR, *PEVENT_DESCRIPTOR;
-typedef const EVENT_DESCRIPTOR *PCEVENT_DESCRIPTOR;
-
-typedef struct _EVENT_FILTER_DESCRIPTOR {
-  ULONGLONG Ptr;
-  ULONG Size;
-  ULONG Type;
-} EVENT_FILTER_DESCRIPTOR, *PEVENT_FILTER_DESCRIPTOR;
-
-typedef struct _EVENT_FILTER_HEADER {
-  USHORT Id;
-  UCHAR Version;
-  UCHAR Reserved[5];
-  ULONGLONG InstanceId;
-  ULONG Size;
-  ULONG NextOffset;
-} EVENT_FILTER_HEADER, *PEVENT_FILTER_HEADER;
-
-#ifndef _ETW_KM_
-
-typedef VOID
-(NTAPI *PENABLECALLBACK)(
-  IN LPCGUID SourceId,
-  IN ULONG IsEnabled,
-  IN UCHAR Level,
-  IN ULONGLONG MatchAnyKeyword,
-  IN ULONGLONG MatchAllKeyword,
-  IN PEVENT_FILTER_DESCRIPTOR FilterData OPTIONAL,
-  IN OUT PVOID CallbackContext OPTIONAL);
-
-#if (WINVER >= _WIN32_WINNT_VISTA)
-ULONG
-EVNTAPI
-EventRegister(
-  IN LPCGUID ProviderId,
-  IN PENABLECALLBACK EnableCallback OPTIONAL,
-  IN PVOID CallbackContext OPTIONAL,
-  OUT PREGHANDLE RegHandle);
-
-ULONG
-EVNTAPI
-EventUnregister(
-  IN REGHANDLE RegHandle);
-
-BOOLEAN
-EVNTAPI
-EventEnabled(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor);
-
-BOOLEAN
-EVNTAPI
-EventProviderEnabled(
-  IN REGHANDLE RegHandle,
-  IN UCHAR Level,
-  IN ULONGLONG Keyword);
-
-ULONG
-EVNTAPI
-EventWrite(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR UserData);
-
-ULONG
-EVNTAPI
-EventWriteTransfer(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN LPCGUID RelatedActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
-
-ULONG
-EVNTAPI
-EventWriteString(
-  IN REGHANDLE RegHandle,
-  IN UCHAR Level,
-  IN ULONGLONG Keyword,
-  IN PCWSTR String);
-
-ULONG
-EVNTAPI
-EventActivityIdControl(
-  IN ULONG ControlCode,
-  IN OUT LPGUID ActivityId);
-
-#endif /* (WINVER >= _WIN32_WINNT_VISTA) */
-
-#if (WINVER >= _WIN32_WINNT_WIN7)
-ULONG
-EVNTAPI
-EventWriteEx(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN ULONG64 Filter,
-  IN ULONG Flags,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN LPCGUID RelatedActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
-#endif
-
-#endif // _ETW_KM_ 
-
-FORCEINLINE
-VOID
-EventDataDescCreate(
-  OUT PEVENT_DATA_DESCRIPTOR EventDataDescriptor,
-  IN const VOID* DataPtr,
-  IN ULONG DataSize)
-{
-  EventDataDescriptor->Ptr = (ULONGLONG)(ULONG_PTR)DataPtr;
-  EventDataDescriptor->Size = DataSize;
-  EventDataDescriptor->Reserved = 0;
-}
-
-FORCEINLINE
-VOID
-EventDescCreate(
-  OUT PEVENT_DESCRIPTOR EventDescriptor,
-  IN USHORT Id,
-  IN UCHAR Version,
-  IN UCHAR Channel,
-  IN UCHAR Level,
-  IN USHORT Task,
-  IN UCHAR Opcode,
-  IN ULONGLONG Keyword)
-{
-  EventDescriptor->Id = Id;
-  EventDescriptor->Version = Version;
-  EventDescriptor->Channel = Channel;
-  EventDescriptor->Level = Level;
-  EventDescriptor->Task = Task;
-  EventDescriptor->Opcode = Opcode;
-  EventDescriptor->Keyword = Keyword;
-}
-
-FORCEINLINE
-VOID
-EventDescZero(
-  OUT PEVENT_DESCRIPTOR EventDescriptor)
-{
-  memset(EventDescriptor, 0, sizeof(EVENT_DESCRIPTOR));
-}
-
-FORCEINLINE
-USHORT
-EventDescGetId(
-  IN PCEVENT_DESCRIPTOR EventDescriptor)
-{
-  return (EventDescriptor->Id);
-}
-
-FORCEINLINE
-UCHAR
-EventDescGetVersion(
-  IN PCEVENT_DESCRIPTOR EventDescriptor)
-{
-  return (EventDescriptor->Version);
-}
-
-FORCEINLINE
-USHORT
-EventDescGetTask(
-  IN PCEVENT_DESCRIPTOR EventDescriptor)
-{
-  return (EventDescriptor->Task);
-}
-
-FORCEINLINE
-UCHAR
-EventDescGetOpcode(
-  IN PCEVENT_DESCRIPTOR EventDescriptor)
-{
-  return (EventDescriptor->Opcode);
-}
-
-FORCEINLINE
-UCHAR
-EventDescGetChannel(
-  IN PCEVENT_DESCRIPTOR EventDescriptor)
-{
-  return (EventDescriptor->Channel);
-}
-
-FORCEINLINE
-UCHAR
-EventDescGetLevel(
-  IN PCEVENT_DESCRIPTOR EventDescriptor)
-{
-  return (EventDescriptor->Level);
-}
-
-FORCEINLINE
-ULONGLONG
-EventDescGetKeyword(
-  IN PCEVENT_DESCRIPTOR EventDescriptor)
-{
-  return (EventDescriptor->Keyword);
-}
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescSetId(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN USHORT Id)
-{
-  EventDescriptor->Id = Id;
-  return (EventDescriptor);
-}
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescSetVersion(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN UCHAR Version)
-{
-  EventDescriptor->Version = Version;
-  return (EventDescriptor);
-}
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescSetTask(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN USHORT Task)
-{
-  EventDescriptor->Task = Task;
-  return (EventDescriptor);
-}
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescSetOpcode(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN UCHAR Opcode)
-{
-  EventDescriptor->Opcode = Opcode;
-  return (EventDescriptor);
-}
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescSetLevel(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN UCHAR  Level)
-{
-  EventDescriptor->Level = Level;
-  return (EventDescriptor);
-}
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescSetChannel(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN UCHAR Channel)
-{
-  EventDescriptor->Channel = Channel;
-  return (EventDescriptor);
-}
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescSetKeyword(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN ULONGLONG Keyword)
-{
-  EventDescriptor->Keyword = Keyword;
-  return (EventDescriptor);
-}
-
-
-FORCEINLINE
-PEVENT_DESCRIPTOR
-EventDescOrKeyword(
-  IN PEVENT_DESCRIPTOR EventDescriptor,
-  IN ULONGLONG Keyword)
-{
-  EventDescriptor->Keyword |= Keyword;
-  return (EventDescriptor);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
index 90b042f..77cf578 100644 (file)
 #define MAX_TRANSACTION_DESCRIPTION_LENGTH  64
 #define MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH  64
 
 #define MAX_TRANSACTION_DESCRIPTION_LENGTH  64
 #define MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH  64
 
-#ifndef _WDMDDK_
 typedef GUID UOW, *PUOW;
 typedef GUID UOW, *PUOW;
-#endif
-
 typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID;
 typedef ULONG NOTIFICATION_MASK;
 typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID;
 typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID;
 typedef ULONG NOTIFICATION_MASK;
 typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID;
index fdc3650..a0aae3e 100644 (file)
@@ -1,13 +1,15 @@
-#ifndef _NTDEF_
-#define _NTDEF_
+#ifndef _NTDEF_H
+#define _NTDEF_H
 
 
-/* Dependencies */
+//
+// Dependencies
+//
 #include <ctype.h>
 #include <basetsd.h>
 #include <excpt.h>
 #include <sdkddkver.h>
 
 #include <ctype.h>
 #include <basetsd.h>
 #include <excpt.h>
 #include <sdkddkver.h>
 
-// FIXME: Shouldn't be included!
+// FIXME: Should we include these here?
 #include <stdarg.h>
 #include <string.h>
 
 #include <stdarg.h>
 #include <string.h>
 
 
 typedef unsigned long POINTER_64; // FIXME! HACK!!!
 
 
 typedef unsigned long POINTER_64; // FIXME! HACK!!!
 
-/* Pseudo Modifiers for Input Parameters */
 
 
+
+//
+// Pseudo Modifiers for Input Parameters
+//
 #ifndef IN
 #define IN
 #endif
 #ifndef IN
 #define IN
 #endif
@@ -49,21 +54,29 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 #endif
 
 
 #endif
 
 
-/* Defines the "size" of an any-size array */
+//
+// Defines the "size" of an any-size array
+//
 #ifndef ANYSIZE_ARRAY
 #define ANYSIZE_ARRAY 1
 #endif
 
 #ifndef ANYSIZE_ARRAY
 #define ANYSIZE_ARRAY 1
 #endif
 
-/* Constant modifier */
+//
+// Constant modifier
+//
 #ifndef CONST
 #define CONST const
 #endif
 
 #ifndef CONST
 #define CONST const
 #endif
 
-/* TRUE/FALSE */
+//
+// TRUE/FALSE
+//
 #define FALSE   0
 #define TRUE    1
 
 #define FALSE   0
 #define TRUE    1
 
-/* NULL/NULL64 */
+//
+// NULL/NULL64
+//
 #ifndef NULL
 #ifdef __cplusplus
 #define NULL    0
 #ifndef NULL
 #ifdef __cplusplus
 #define NULL    0
@@ -72,8 +85,22 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 #define NULL    ((void *)0)
 #define NULL64  ((void * POINTER_64)0)
 #endif
 #define NULL    ((void *)0)
 #define NULL64  ((void * POINTER_64)0)
 #endif
-#endif /* NULL */
+#endif // NULL
 
 
+typedef enum _EVENT_TYPE {
+  NotificationEvent,
+  SynchronizationEvent
+} EVENT_TYPE;
+
+typedef enum _TIMER_TYPE {
+    NotificationTimer,
+    SynchronizationTimer
+} TIMER_TYPE;
+
+typedef enum _WAIT_TYPE {
+  WaitAll,
+  WaitAny
+} WAIT_TYPE;
 
 //
 // FIXME
 
 //
 // FIXME
@@ -144,27 +171,35 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 #define ARGUMENT_PRESENT(ArgumentPointer) \
   ((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL)
 
 #define ARGUMENT_PRESENT(ArgumentPointer) \
   ((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL)
 
-/* Returns the base address of a structure from a structure member */
+//
+// Returns the base address of a structure from a structure member
+//
 #ifndef CONTAINING_RECORD
 #define CONTAINING_RECORD(address, type, field) \
   ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
 #endif
 
 #ifndef CONTAINING_RECORD
 #define CONTAINING_RECORD(address, type, field) \
   ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
 #endif
 
-/* Returns the byte offset of the specified structure's member */
+//
+// Returns the byte offset of the specified structure's member
+//
 #ifndef __GNUC__
 #define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field))
 #else
 #define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field)
 #endif
 
 #ifndef __GNUC__
 #define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field))
 #else
 #define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field)
 #endif
 
-/* Returns the type's alignment */
+//
+// Returns the type's alignment
+//
 #if defined(_MSC_VER) && (_MSC_VER >= 1300)
 #define TYPE_ALIGNMENT(t) __alignof(t)
 #else
 #define TYPE_ALIGNMENT(t) FIELD_OFFSET( struct { char x; t test; }, test )
 #endif
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1300)
 #define TYPE_ALIGNMENT(t) __alignof(t)
 #else
 #define TYPE_ALIGNMENT(t) FIELD_OFFSET( struct { char x; t test; }, test )
 #endif
 
-/* Calling Conventions */
+//
+// Calling Conventions
+//
 #if defined(_M_IX86)
 #define FASTCALL __fastcall
 #else
 #if defined(_M_IX86)
 #define FASTCALL __fastcall
 #else
@@ -173,13 +208,21 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 
 #define NTAPI __stdcall
 
 
 #define NTAPI __stdcall
 
+//
+// Used by the DDK exclusively , don't put in drivers
+//
+#define DDKAPI __stdcall // Use NTAPI instead
+#define DDKCDECLAPI __cdecl // Just use __cdecl
 
 
-/* Import and Export Specifiers */
+//
+// Import and Export Specifiers
+//
 
 
-/* Done the same way as in windef.h for now */
+// Done the same way as in windef.h for now
 #define DECLSPEC_IMPORT __declspec(dllimport)
 #define DECLSPEC_NORETURN __declspec(noreturn)
 
 #define DECLSPEC_IMPORT __declspec(dllimport)
 #define DECLSPEC_NORETURN __declspec(noreturn)
 
+
 #ifndef DECLSPEC_ADDRSAFE
 #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
 #define DECLSPEC_ADDRSAFE  __declspec(address_safe)
 #ifndef DECLSPEC_ADDRSAFE
 #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
 #define DECLSPEC_ADDRSAFE  __declspec(address_safe)
@@ -200,7 +243,9 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 #endif
 #endif
 
 #endif
 #endif
 
-/* Inlines */
+//
+// Inlines
+//
 #ifndef FORCEINLINE
 #if (_MSC_VER >= 1200)
 #define FORCEINLINE __forceinline
 #ifndef FORCEINLINE
 #if (_MSC_VER >= 1200)
 #define FORCEINLINE __forceinline
@@ -227,7 +272,9 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 #define NTAPI_INLINE
 #endif
 
 #define NTAPI_INLINE
 #endif
 
-/* Use to specify structure alignment */
+//
+// Use to specify structure alignment
+//
 #ifndef DECLSPEC_ALIGN
 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
 #define DECLSPEC_ALIGN(x) __declspec(align(x))
 #ifndef DECLSPEC_ALIGN
 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
 #define DECLSPEC_ALIGN(x) __declspec(align(x))
@@ -238,13 +285,21 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 #endif
 #endif
 
 #endif
 #endif
 
-/* Use to silence unused variable warnings when it is intentional */
+
+
+//
+// Use to silence unused variable warnings when it is intentional
+//
 #define UNREFERENCED_PARAMETER(P) {(P)=(P);}
 #define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
 #define DBG_UNREFERENCED_PARAMETER(P)
 #define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
 
 #define UNREFERENCED_PARAMETER(P) {(P)=(P);}
 #define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
 #define DBG_UNREFERENCED_PARAMETER(P)
 #define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
 
-/* min/max helper macros */
+
+
+//
+// min/max helper macros
+//
 #ifndef NOMINMAX
 
 #ifndef min
 #ifndef NOMINMAX
 
 #ifndef min
@@ -255,17 +310,25 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
 #define max(a,b) (((a) > (b)) ? (a) : (b))
 #endif
 
 #define max(a,b) (((a) > (b)) ? (a) : (b))
 #endif
 
-#endif /* NOMINMAX */
+#endif // NOMINMAX
+
+
 
 
-/* Tell windef.h that we have defined some basic types */
+//
+// Tell windef.h that we have defined some basic types
+//
 #define BASETYPES
 
 #define BASETYPES
 
-/* Void Pointers */
+//
+// Void Pointers
+//
 typedef void *PVOID;
 //typedef void * POINTER_64 PVOID64;
 typedef PVOID PVOID64; // FIXME!
 
 typedef void *PVOID;
 //typedef void * POINTER_64 PVOID64;
 typedef PVOID PVOID64; // FIXME!
 
-/* Handle Type */
+//
+// Handle Type
+//
 #ifdef STRICT
 typedef void *HANDLE;
 #define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
 #ifdef STRICT
 typedef void *HANDLE;
 #define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
@@ -275,7 +338,9 @@ typedef PVOID HANDLE;
 #endif
 typedef HANDLE *PHANDLE;
 
 #endif
 typedef HANDLE *PHANDLE;
 
-/* Upper-Case Versions of Some Standard C Types */
+//
+// Upper-Case Versions of Some Standard C Types
+//
 #ifndef VOID
 #define VOID void
 typedef char CHAR;
 #ifndef VOID
 #define VOID void
 typedef char CHAR;
@@ -287,25 +352,47 @@ typedef int INT;
 #endif
 typedef double DOUBLE;
 
 #endif
 typedef double DOUBLE;
 
-/* Unsigned Types */
+//
+// Used to store a non-float 8 byte aligned structure
+//
+typedef struct _QUAD
+{
+    _ANONYMOUS_UNION union
+    {
+        __GNU_EXTENSION __int64 UseThisFieldToCopy;
+        double DoNotUseThisField;
+    };
+} QUAD, *PQUAD, UQUAD, *PUQUAD;
+
+
+//
+// Unsigned Types
+//
 typedef unsigned char UCHAR, *PUCHAR;
 typedef unsigned short USHORT, *PUSHORT;
 typedef unsigned long ULONG, *PULONG;
 typedef CONST UCHAR *PCUCHAR;
 typedef CONST USHORT *PCUSHORT;
 typedef CONST ULONG *PCULONG;
 typedef unsigned char UCHAR, *PUCHAR;
 typedef unsigned short USHORT, *PUSHORT;
 typedef unsigned long ULONG, *PULONG;
 typedef CONST UCHAR *PCUCHAR;
 typedef CONST USHORT *PCUSHORT;
 typedef CONST ULONG *PCULONG;
+
 typedef UCHAR FCHAR;
 typedef USHORT FSHORT;
 typedef ULONG FLONG;
 typedef UCHAR FCHAR;
 typedef USHORT FSHORT;
 typedef ULONG FLONG;
-typedef UCHAR BOOLEAN, *PBOOLEAN;
+typedef UCHAR BOOLEAN;
+typedef BOOLEAN *PBOOLEAN;
+
 typedef ULONG LOGICAL;
 typedef ULONG *PLOGICAL;
 
 typedef ULONG LOGICAL;
 typedef ULONG *PLOGICAL;
 
-/* Signed Types */
+//
+// Signed Types
+//
 typedef SHORT *PSHORT;
 typedef LONG *PLONG;
 typedef SHORT *PSHORT;
 typedef LONG *PLONG;
+
 typedef LONG NTSTATUS;
 typedef NTSTATUS *PNTSTATUS;
 typedef LONG NTSTATUS;
 typedef NTSTATUS *PNTSTATUS;
+
 typedef signed char SCHAR;
 typedef SCHAR *PSCHAR;
 
 typedef signed char SCHAR;
 typedef SCHAR *PSCHAR;
 
@@ -314,15 +401,22 @@ typedef SCHAR *PSCHAR;
 typedef LONG HRESULT;
 #endif
 
 typedef LONG HRESULT;
 #endif
 
-/* 64-bit types */
+//
+// 64-bit types
+//
 __GNU_EXTENSION typedef __int64 LONGLONG, *PLONGLONG;
 __GNU_EXTENSION typedef unsigned __int64 ULONGLONG, *PULONGLONG;
 typedef ULONGLONG DWORDLONG, *PDWORDLONG;
 
 __GNU_EXTENSION typedef __int64 LONGLONG, *PLONGLONG;
 __GNU_EXTENSION typedef unsigned __int64 ULONGLONG, *PULONGLONG;
 typedef ULONGLONG DWORDLONG, *PDWORDLONG;
 
-/* Update Sequence Number */
+//
+// Update Sequence Number
+//
 typedef LONGLONG USN;
 
 typedef LONGLONG USN;
 
-/* ANSI (Multi-byte Character) types */
+
+//
+// ANSI (Multi-byte Character) types
+//
 typedef CHAR *PCHAR, *LPCH, *PCH;
 typedef CONST CHAR *LPCCH, *PCCH;
 typedef CHAR *NPSTR, *LPSTR, *PSTR;
 typedef CHAR *PCHAR, *LPCH, *PCH;
 typedef CONST CHAR *LPCCH, *PCCH;
 typedef CHAR *NPSTR, *LPSTR, *PSTR;
@@ -331,11 +425,15 @@ typedef CONST PSTR *PCZPSTR;
 typedef CONST CHAR *LPCSTR, *PCSTR;
 typedef PCSTR *PZPCSTR;
 
 typedef CONST CHAR *LPCSTR, *PCSTR;
 typedef PCSTR *PZPCSTR;
 
-/* Pointer to an Asciiz string */
+//
+// Pointer to an Asciiz string
+//
 typedef CHAR *PSZ;
 typedef CONST char *PCSZ;
 
 typedef CHAR *PSZ;
 typedef CONST char *PCSZ;
 
-/* UNICODE (Wide Character) types */
+//
+// UNICODE (Wide Character) types
+//
 typedef wchar_t WCHAR;
 typedef WCHAR *PWCHAR, *LPWCH, *PWCH;
 typedef CONST WCHAR *LPCWCH, *PCWCH;
 typedef wchar_t WCHAR;
 typedef WCHAR *PWCHAR, *LPWCH, *PWCH;
 typedef CONST WCHAR *LPCWCH, *PCWCH;
@@ -347,27 +445,25 @@ typedef CONST WCHAR *LPCWSTR, *PCWSTR;
 typedef PCWSTR *PZPCWSTR;
 typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;
 
 typedef PCWSTR *PZPCWSTR;
 typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;
 
-/* Cardinal Data Types */
+//
+// Cardinal Data Types
+//
 typedef char CCHAR, *PCCHAR;
 typedef short CSHORT, *PCSHORT;
 typedef ULONG CLONG, *PCLONG;
 
 typedef char CCHAR, *PCCHAR;
 typedef short CSHORT, *PCSHORT;
 typedef ULONG CLONG, *PCLONG;
 
-/* NLS basics (Locale and Language Ids) */
+//
+// NLS basics (Locale and Language Ids)
+//
 typedef ULONG LCID;
 typedef PULONG PLCID;
 typedef USHORT LANGID;
 
 typedef ULONG LCID;
 typedef PULONG PLCID;
 typedef USHORT LANGID;
 
-/* Used to store a non-float 8 byte aligned structure */
-typedef struct _QUAD
-{
-    _ANONYMOUS_UNION union
-    {
-        __GNU_EXTENSION __int64 UseThisFieldToCopy;
-        double DoNotUseThisField;
-    } DUMMYUNIONNAME;
-} QUAD, *PQUAD, UQUAD, *PUQUAD;
 
 
-/* Large Integer Unions */
+
+//
+// Large Integer Unions
+//
 #if defined(MIDL_PASS)
 typedef struct _LARGE_INTEGER {
 #else
 #if defined(MIDL_PASS)
 typedef struct _LARGE_INTEGER {
 #else
@@ -382,7 +478,7 @@ typedef union _LARGE_INTEGER {
         ULONG LowPart;
         LONG HighPart;
     } u;
         ULONG LowPart;
         LONG HighPart;
     } u;
-#endif /* MIDL_PASS */
+#endif //MIDL_PASS
     LONGLONG QuadPart;
 } LARGE_INTEGER, *PLARGE_INTEGER;
 
     LONGLONG QuadPart;
 } LARGE_INTEGER, *PLARGE_INTEGER;
 
@@ -400,26 +496,40 @@ typedef union _ULARGE_INTEGER {
         ULONG LowPart;
         ULONG HighPart;
     } u;
         ULONG LowPart;
         ULONG HighPart;
     } u;
-#endif /* MIDL_PASS */
+#endif //MIDL_PASS
     ULONGLONG QuadPart;
 } ULARGE_INTEGER, *PULARGE_INTEGER;
 
     ULONGLONG QuadPart;
 } ULARGE_INTEGER, *PULARGE_INTEGER;
 
-/* Physical Addresses are always treated as 64-bit wide */
+//
+// Physical Addresses are always treated as 64-bit wide
+//
 typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
 
 typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
 
-/* Locally Unique Identifier */
+
+
+//
+// Locally Unique Identifier
+//
 typedef struct _LUID {
     ULONG LowPart;
     LONG HighPart;
 } LUID, *PLUID;
 
 typedef struct _LUID {
     ULONG LowPart;
     LONG HighPart;
 } LUID, *PLUID;
 
-/* Native API Return Value Macros */
+
+
+//
+// Native API Return Value Macros
+//
 #define NT_SUCCESS(Status)              (((NTSTATUS)(Status)) >= 0)
 #define NT_INFORMATION(Status)          ((((ULONG)(Status)) >> 30) == 1)
 #define NT_WARNING(Status)              ((((ULONG)(Status)) >> 30) == 2)
 #define NT_ERROR(Status)                ((((ULONG)(Status)) >> 30) == 3)
 
 #define NT_SUCCESS(Status)              (((NTSTATUS)(Status)) >= 0)
 #define NT_INFORMATION(Status)          ((((ULONG)(Status)) >> 30) == 1)
 #define NT_WARNING(Status)              ((((ULONG)(Status)) >> 30) == 2)
 #define NT_ERROR(Status)                ((((ULONG)(Status)) >> 30) == 3)
 
-/* String Types */
+
+
+//
+// String Types
+//
 typedef struct _UNICODE_STRING {
   USHORT Length;
   USHORT MaximumLength;
 typedef struct _UNICODE_STRING {
   USHORT Length;
   USHORT MaximumLength;
@@ -465,7 +575,9 @@ typedef struct _STRING64 {
   UNICODE_STRING64, *PUNICODE_STRING64, 
   ANSI_STRING64, *PANSI_STRING64;
 
   UNICODE_STRING64, *PUNICODE_STRING64, 
   ANSI_STRING64, *PANSI_STRING64;
 
-/* LangID and NLS */
+//
+// LangID and NLS
+//
 #define MAKELANGID(p, s)       ((((USHORT)(s)) << 10) | (USHORT)(p))
 #define PRIMARYLANGID(lgid)    ((USHORT)(lgid) & 0x3ff)
 #define SUBLANGID(lgid)        ((USHORT)(lgid) >> 10)
 #define MAKELANGID(p, s)       ((((USHORT)(s)) << 10) | (USHORT)(p))
 #define PRIMARYLANGID(lgid)    ((USHORT)(lgid) & 0x3ff)
 #define SUBLANGID(lgid)        ((USHORT)(lgid) >> 10)
@@ -482,7 +594,10 @@ typedef struct _STRING64 {
 #define SORTVERSIONFROMLCID(lcid)  ((USHORT)((((ULONG)(lcid)) >> 20) & 0xf))
 
 
 #define SORTVERSIONFROMLCID(lcid)  ((USHORT)((((ULONG)(lcid)) >> 20) & 0xf))
 
 
-/* Object Attributes */
+
+//
+// Object Attributes
+//
 typedef struct _OBJECT_ATTRIBUTES {
   ULONG Length;
   HANDLE RootDirectory;
 typedef struct _OBJECT_ATTRIBUTES {
   ULONG Length;
   HANDLE RootDirectory;
@@ -493,7 +608,9 @@ typedef struct _OBJECT_ATTRIBUTES {
 } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
 typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
 
 } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
 typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
 
-/* Values for the Attributes member */
+//
+// Values for the Attributes member
+//
 #define OBJ_INHERIT             0x00000002
 #define OBJ_PERMANENT           0x00000010
 #define OBJ_EXCLUSIVE           0x00000020
 #define OBJ_INHERIT             0x00000002
 #define OBJ_PERMANENT           0x00000010
 #define OBJ_EXCLUSIVE           0x00000020
@@ -504,7 +621,9 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
 #define OBJ_FORCE_ACCESS_CHECK  0x00000400
 #define OBJ_VALID_ATTRIBUTES    0x000007F2
 
 #define OBJ_FORCE_ACCESS_CHECK  0x00000400
 #define OBJ_VALID_ATTRIBUTES    0x000007F2
 
-/* Helper Macro */
+//
+// Helper Macro
+//
 #define InitializeObjectAttributes(p,n,a,r,s) { \
   (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
   (p)->RootDirectory = (r); \
 #define InitializeObjectAttributes(p,n,a,r,s) { \
   (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
   (p)->RootDirectory = (r); \
@@ -514,29 +633,22 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
   (p)->SecurityQualityOfService = NULL; \
 }
 
   (p)->SecurityQualityOfService = NULL; \
 }
 
-/* Product Types */
+
+
+//
+// Product Types
+//
 typedef enum _NT_PRODUCT_TYPE {
        NtProductWinNt = 1,
        NtProductLanManNt,
        NtProductServer
 } NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
 
 typedef enum _NT_PRODUCT_TYPE {
        NtProductWinNt = 1,
        NtProductLanManNt,
        NtProductServer
 } NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
 
-typedef enum _EVENT_TYPE {
-  NotificationEvent,
-  SynchronizationEvent
-} EVENT_TYPE;
-
-typedef enum _TIMER_TYPE {
-    NotificationTimer,
-    SynchronizationTimer
-} TIMER_TYPE;
 
 
-typedef enum _WAIT_TYPE {
-  WaitAll,
-  WaitAny
-} WAIT_TYPE;
 
 
-/* Doubly Linked Lists */
+//
+// Doubly Linked Lists
+//
 typedef struct _LIST_ENTRY {
    struct _LIST_ENTRY *Flink;
    struct _LIST_ENTRY *Blink;
 typedef struct _LIST_ENTRY {
    struct _LIST_ENTRY *Flink;
    struct _LIST_ENTRY *Blink;
@@ -554,11 +666,14 @@ typedef struct LIST_ENTRY64
     ULONGLONG Blink;
 } LIST_ENTRY64, *PLIST_ENTRY64;
 
     ULONGLONG Blink;
 } LIST_ENTRY64, *PLIST_ENTRY64;
 
-/* Singly Linked Lists */
+//
+// Singly Linked Lists
+//
 typedef struct _SINGLE_LIST_ENTRY {
     struct _SINGLE_LIST_ENTRY *Next;
 } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
 
 typedef struct _SINGLE_LIST_ENTRY {
     struct _SINGLE_LIST_ENTRY *Next;
 } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
 
+
 typedef struct _PROCESSOR_NUMBER {
   USHORT Group;
   UCHAR Number;
 typedef struct _PROCESSOR_NUMBER {
   USHORT Group;
   UCHAR Number;
@@ -566,19 +681,16 @@ typedef struct _PROCESSOR_NUMBER {
 } PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
 
 typedef EXCEPTION_DISPOSITION
 } PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
 
 typedef EXCEPTION_DISPOSITION
-(NTAPI *PEXCEPTION_ROUTINE)(
+(DDKAPI *PEXCEPTION_ROUTINE)(
   IN struct _EXCEPTION_RECORD *ExceptionRecord,
   IN PVOID EstablisherFrame,
   IN OUT struct _CONTEXT *ContextRecord,
   IN OUT PVOID DispatcherContext);
 
   IN struct _EXCEPTION_RECORD *ExceptionRecord,
   IN PVOID EstablisherFrame,
   IN OUT struct _CONTEXT *ContextRecord,
   IN OUT PVOID DispatcherContext);
 
-typedef struct _GROUP_AFFINITY {
-  KAFFINITY Mask;
-  USHORT Group;
-  USHORT Reserved[3];
-} GROUP_AFFINITY, *PGROUP_AFFINITY;
 
 
-/* Helper Macros */
+//
+// Helper Macros
+//
 #define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
 
 #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
 #define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
 
 #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
@@ -592,7 +704,11 @@ typedef struct _GROUP_AFFINITY {
 #endif
 #define ARRAYSIZE(A)    RTL_NUMBER_OF_V2(A)
 
 #endif
 #define ARRAYSIZE(A)    RTL_NUMBER_OF_V2(A)
 
-/* Type Limits */
+
+
+//
+// Type Limits
+//
 #define MINCHAR   0x80
 #define MAXCHAR   0x7f
 #define MINSHORT  0x8000
 #define MINCHAR   0x80
 #define MAXCHAR   0x7f
 #define MINSHORT  0x8000
@@ -604,17 +720,29 @@ typedef struct _GROUP_AFFINITY {
 #define MAXULONG  0xffffffff
 #define MAXLONGLONG (0x7fffffffffffffffLL)
 
 #define MAXULONG  0xffffffff
 #define MAXLONGLONG (0x7fffffffffffffffLL)
 
-/* Multiplication and Shift Operations */
+
+
+//
+// Multiplication and Shift Operations
+//
 #define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))
 #define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
 #define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))
 #define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))
 #define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))
 
 #define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))
 #define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
 #define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))
 #define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))
 #define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))
 
-/* C_ASSERT Definition */
+
+
+//
+// C_ASSERT Definition
+//
 #define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
 
 #define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
 
-/*  Primary language IDs. */
+
+
+//
+//  Primary language IDs.
+//
 #define LANG_NEUTRAL                     0x00
 #define LANG_INVARIANT                   0x7f
 
 #define LANG_NEUTRAL                     0x00
 #define LANG_INVARIANT                   0x7f
 
@@ -745,4 +873,6 @@ typedef struct _GROUP_AFFINITY {
 #define LANG_YORUBA                      0x6a
 #define LANG_ZULU                        0x35
 
 #define LANG_YORUBA                      0x6a
 #define LANG_ZULU                        0x35
 
-#endif /* _NTDEF_ */
+
+
+#endif /* _NTDEF_H */
diff --git a/reactos/include/psdk/ntiologc.h b/reactos/include/psdk/ntiologc.h
deleted file mode 100644 (file)
index b807315..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-#pragma once
-
-#define FACILITY_RPC_RUNTIME             0x2
-#define FACILITY_RPC_STUBS               0x3
-#define FACILITY_IO_ERROR_CODE           0x4
-#define FACILITY_MCA_ERROR_CODE          0x5
-
-#define IO_ERR_RETRY_SUCCEEDED           ((NTSTATUS)0x00040001L)
-#define IO_ERR_INSUFFICIENT_RESOURCES    ((NTSTATUS)0xC0040002L)
-#define IO_ERR_CONFIGURATION_ERROR       ((NTSTATUS)0xC0040003L)
-#define IO_ERR_DRIVER_ERROR              ((NTSTATUS)0xC0040004L)
-#define IO_ERR_PARITY                    ((NTSTATUS)0xC0040005L)
-#define IO_ERR_SEEK_ERROR                ((NTSTATUS)0xC0040006L)
-#define IO_ERR_BAD_BLOCK                 ((NTSTATUS)0xC0040007L)
-#define IO_ERR_OVERRUN_ERROR             ((NTSTATUS)0xC0040008L)
-#define IO_ERR_TIMEOUT                   ((NTSTATUS)0xC0040009L)
-#define IO_ERR_SEQUENCE                  ((NTSTATUS)0xC004000AL)
-#define IO_ERR_CONTROLLER_ERROR          ((NTSTATUS)0xC004000BL)
-#define IO_ERR_INTERNAL_ERROR            ((NTSTATUS)0xC004000CL)
-#define IO_ERR_INCORRECT_IRQL            ((NTSTATUS)0xC004000DL)
-#define IO_ERR_INVALID_IOBASE            ((NTSTATUS)0xC004000EL)
-#define IO_ERR_NOT_READY                 ((NTSTATUS)0xC004000FL)
-#define IO_ERR_INVALID_REQUEST           ((NTSTATUS)0xC0040010L)
-#define IO_ERR_VERSION                   ((NTSTATUS)0xC0040011L)
-#define IO_ERR_LAYERED_FAILURE           ((NTSTATUS)0xC0040012L)
-#define IO_ERR_RESET                     ((NTSTATUS)0xC0040013L)
-#define IO_ERR_PROTOCOL                  ((NTSTATUS)0xC0040014L)
-#define IO_ERR_MEMORY_CONFLICT_DETECTED  ((NTSTATUS)0xC0040015L)
-#define IO_ERR_PORT_CONFLICT_DETECTED    ((NTSTATUS)0xC0040016L)
-#define IO_ERR_DMA_CONFLICT_DETECTED     ((NTSTATUS)0xC0040017L)
-#define IO_ERR_IRQ_CONFLICT_DETECTED     ((NTSTATUS)0xC0040018L)
-#define IO_ERR_BAD_FIRMWARE              ((NTSTATUS)0xC0040019L)
-#define IO_WRN_BAD_FIRMWARE              ((NTSTATUS)0x8004001AL)
-#define IO_ERR_DMA_RESOURCE_CONFLICT     ((NTSTATUS)0xC004001BL)
-#define IO_ERR_INTERRUPT_RESOURCE_CONFLICT ((NTSTATUS)0xC004001CL)
-#define IO_ERR_MEMORY_RESOURCE_CONFLICT  ((NTSTATUS)0xC004001DL)
-#define IO_ERR_PORT_RESOURCE_CONFLICT    ((NTSTATUS)0xC004001EL)
-#define IO_BAD_BLOCK_WITH_NAME           ((NTSTATUS)0xC004001FL)
-#define IO_WRITE_CACHE_ENABLED           ((NTSTATUS)0x80040020L)
-#define IO_RECOVERED_VIA_ECC             ((NTSTATUS)0x80040021L)
-#define IO_WRITE_CACHE_DISABLED          ((NTSTATUS)0x80040022L)
-#define IO_FILE_QUOTA_THRESHOLD          ((NTSTATUS)0x40040024L)
-#define IO_FILE_QUOTA_LIMIT              ((NTSTATUS)0x40040025L)
-#define IO_FILE_QUOTA_STARTED            ((NTSTATUS)0x40040026L)
-#define IO_FILE_QUOTA_SUCCEEDED          ((NTSTATUS)0x40040027L)
-#define IO_FILE_QUOTA_FAILED             ((NTSTATUS)0x80040028L)
-#define IO_FILE_SYSTEM_CORRUPT           ((NTSTATUS)0xC0040029L)
-#define IO_FILE_QUOTA_CORRUPT            ((NTSTATUS)0xC004002AL)
-#define IO_SYSTEM_SLEEP_FAILED           ((NTSTATUS)0xC004002BL)
-#define IO_DUMP_POINTER_FAILURE          ((NTSTATUS)0xC004002CL)
-#define IO_DUMP_DRIVER_LOAD_FAILURE      ((NTSTATUS)0xC004002DL)
-#define IO_DUMP_INITIALIZATION_FAILURE   ((NTSTATUS)0xC004002EL)
-#define IO_DUMP_DUMPFILE_CONFLICT        ((NTSTATUS)0xC004002FL)
-#define IO_DUMP_DIRECT_CONFIG_FAILED     ((NTSTATUS)0xC0040030L)
-#define IO_DUMP_PAGE_CONFIG_FAILED       ((NTSTATUS)0xC0040031L)
-#define IO_LOST_DELAYED_WRITE            ((NTSTATUS)0x80040032L)
-#define IO_WARNING_PAGING_FAILURE        ((NTSTATUS)0x80040033L)
-#define IO_WRN_FAILURE_PREDICTED         ((NTSTATUS)0x80040034L)
-#define IO_WARNING_INTERRUPT_STILL_PENDING ((NTSTATUS)0x80040035L)
-#define IO_DRIVER_CANCEL_TIMEOUT         ((NTSTATUS)0x80040036L)
-#define IO_FILE_SYSTEM_CORRUPT_WITH_NAME ((NTSTATUS)0xC0040037L)
-#define IO_WARNING_ALLOCATION_FAILED     ((NTSTATUS)0x80040038L)
-#define IO_WARNING_LOG_FLUSH_FAILED      ((NTSTATUS)0x80040039L)
-#define IO_WARNING_DUPLICATE_SIGNATURE   ((NTSTATUS)0x8004003AL)
-#define IO_WARNING_DUPLICATE_PATH        ((NTSTATUS)0x8004003BL)
-#define IO_ERR_THREAD_STUCK_IN_DEVICE_DRIVER ((NTSTATUS)0xC004006CL)
-#define IO_ERR_PORT_TIMEOUT              ((NTSTATUS)0xC0040075L)
-#define IO_WARNING_BUS_RESET             ((NTSTATUS)0x80040076L)
-#define IO_INFO_THROTTLE_COMPLETE        ((NTSTATUS)0x40040077L)
-#define IO_WARNING_RESET                 ((NTSTATUS)0x80040081L)
-#define IO_FILE_SYSTEM_REPAIR_SUCCESS    ((NTSTATUS)0x80040082L)
-#define IO_FILE_SYSTEM_REPAIR_FAILED     ((NTSTATUS)0xC0040083L)
-#define IO_WARNING_WRITE_FUA_PROBLEM     ((NTSTATUS)0x80040084L)
-#define IO_CDROM_EXCLUSIVE_LOCK          ((NTSTATUS)0x40040085L)
-#define IO_FILE_SYSTEM_TXF_RECOVERY_FAILURE ((NTSTATUS)0x80040086L)
-#define IO_FILE_SYSTEM_TXF_LOG_FULL_HANDLING_FAILED ((NTSTATUS)0xC0040087L)
-#define IO_FILE_SYSTEM_TXF_RESOURCE_MANAGER_RESET ((NTSTATUS)0x80040088L)
-#define IO_FILE_SYSTEM_TXF_RESOURCE_MANAGER_START_FAILED ((NTSTATUS)0xC0040089L)
-#define IO_FILE_SYSTEM_TXF_RESOURCE_MANAGER_SHUT_DOWN ((NTSTATUS)0xC004008AL)
-#define IO_LOST_DELAYED_WRITE_NETWORK_DISCONNECTED ((NTSTATUS)0x8004008BL)
-#define IO_LOST_DELAYED_WRITE_NETWORK_SERVER_ERROR ((NTSTATUS)0x8004008CL)
-#define IO_LOST_DELAYED_WRITE_NETWORK_LOCAL_DISK_ERROR ((NTSTATUS)0x8004008DL)
-
-#define MCA_WARNING_CACHE                ((NTSTATUS)0x8005003CL)
-#define MCA_ERROR_CACHE                  ((NTSTATUS)0xC005003DL)
-#define MCA_WARNING_TLB                  ((NTSTATUS)0x8005003EL)
-#define MCA_ERROR_TLB                    ((NTSTATUS)0xC005003FL)
-#define MCA_WARNING_CPU_BUS              ((NTSTATUS)0x80050040L)
-#define MCA_ERROR_CPU_BUS                ((NTSTATUS)0xC0050041L)
-#define MCA_WARNING_REGISTER_FILE        ((NTSTATUS)0x80050042L)
-#define MCA_ERROR_REGISTER_FILE          ((NTSTATUS)0xC0050043L)
-#define MCA_WARNING_MAS                  ((NTSTATUS)0x80050044L)
-#define MCA_ERROR_MAS                    ((NTSTATUS)0xC0050045L)
-#define MCA_WARNING_MEM_UNKNOWN          ((NTSTATUS)0x80050046L)
-#define MCA_ERROR_MEM_UNKNOWN            ((NTSTATUS)0xC0050047L)
-#define MCA_WARNING_MEM_1_2              ((NTSTATUS)0x80050048L)
-#define MCA_ERROR_MEM_1_2                ((NTSTATUS)0xC0050049L)
-#define MCA_WARNING_MEM_1_2_5            ((NTSTATUS)0x8005004AL)
-#define MCA_ERROR_MEM_1_2_5              ((NTSTATUS)0xC005004BL)
-#define MCA_WARNING_MEM_1_2_5_4          ((NTSTATUS)0x8005004CL)
-#define MCA_ERROR_MEM_1_2_5_4            ((NTSTATUS)0xC005004DL)
-#define MCA_WARNING_SYSTEM_EVENT         ((NTSTATUS)0x8005004EL)
-#define MCA_ERROR_SYSTEM_EVENT           ((NTSTATUS)0xC005004FL)
-#define MCA_WARNING_PCI_BUS_PARITY       ((NTSTATUS)0x80050050L)
-#define MCA_ERROR_PCI_BUS_PARITY         ((NTSTATUS)0xC0050051L)
-#define MCA_WARNING_PCI_BUS_PARITY_NO_INFO ((NTSTATUS)0x80050052L)
-#define MCA_ERROR_PCI_BUS_PARITY_NO_INFO ((NTSTATUS)0xC0050053L)
-#define MCA_WARNING_PCI_BUS_SERR         ((NTSTATUS)0x80050054L)
-#define MCA_ERROR_PCI_BUS_SERR           ((NTSTATUS)0xC0050055L)
-#define MCA_WARNING_PCI_BUS_SERR_NO_INFO ((NTSTATUS)0x80050056L)
-#define MCA_ERROR_PCI_BUS_SERR_NO_INFO   ((NTSTATUS)0xC0050057L)
-#define MCA_WARNING_PCI_BUS_MASTER_ABORT ((NTSTATUS)0x80050058L)
-#define MCA_ERROR_PCI_BUS_MASTER_ABORT   ((NTSTATUS)0xC0050059L)
-#define MCA_WARNING_PCI_BUS_MASTER_ABORT_NO_INFO ((NTSTATUS)0x8005005AL)
-#define MCA_ERROR_PCI_BUS_MASTER_ABORT_NO_INFO ((NTSTATUS)0xC005005BL)
-#define MCA_WARNING_PCI_BUS_TIMEOUT      ((NTSTATUS)0x8005005CL)
-#define MCA_ERROR_PCI_BUS_TIMEOUT        ((NTSTATUS)0xC005005DL)
-#define MCA_WARNING_PCI_BUS_TIMEOUT_NO_INFO ((NTSTATUS)0x8005005EL)
-#define MCA_ERROR_PCI_BUS_TIMEOUT_NO_INFO ((NTSTATUS)0xC005005FL)
-#define MCA_WARNING_PCI_BUS_UNKNOWN      ((NTSTATUS)0x80050060L)
-#define MCA_ERROR_PCI_BUS_UNKNOWN        ((NTSTATUS)0xC0050061L)
-#define MCA_WARNING_PCI_DEVICE           ((NTSTATUS)0x80050062L)
-#define MCA_ERROR_PCI_DEVICE             ((NTSTATUS)0xC0050063L)
-#define MCA_WARNING_SMBIOS               ((NTSTATUS)0x80050064L)
-#define MCA_ERROR_SMBIOS                 ((NTSTATUS)0xC0050065L)
-#define MCA_WARNING_PLATFORM_SPECIFIC    ((NTSTATUS)0x80050066L)
-#define MCA_ERROR_PLATFORM_SPECIFIC      ((NTSTATUS)0xC0050067L)
-#define MCA_WARNING_UNKNOWN              ((NTSTATUS)0x80050068L)
-#define MCA_ERROR_UNKNOWN                ((NTSTATUS)0xC0050069L)
-#define MCA_WARNING_UNKNOWN_NO_CPU       ((NTSTATUS)0x8005006AL)
-#define MCA_ERROR_UNKNOWN_NO_CPU         ((NTSTATUS)0xC005006BL)
-#define MCA_WARNING_CMC_THRESHOLD_EXCEEDED ((NTSTATUS)0x8005006DL)
-#define MCA_WARNING_CPE_THRESHOLD_EXCEEDED ((NTSTATUS)0x8005006EL)
-#define MCA_WARNING_CPU_THERMAL_THROTTLED ((NTSTATUS)0x8005006FL)
-#define MCA_INFO_CPU_THERMAL_THROTTLING_REMOVED ((NTSTATUS)0x40050070L)
-#define MCA_WARNING_CPU                  ((NTSTATUS)0x80050071L)
-#define MCA_ERROR_CPU                    ((NTSTATUS)0xC0050072L)
-#define MCA_INFO_NO_MORE_CORRECTED_ERROR_LOGS ((NTSTATUS)0x40050073L)
-#define MCA_INFO_MEMORY_PAGE_MARKED_BAD  ((NTSTATUS)0x40050074L)
-#define MCA_MEMORYHIERARCHY_ERROR        ((NTSTATUS)0xC0050078L)
-#define MCA_TLB_ERROR                    ((NTSTATUS)0xC0050079L)
-#define MCA_BUS_ERROR                    ((NTSTATUS)0xC005007AL)
-#define MCA_BUS_TIMEOUT_ERROR            ((NTSTATUS)0xC005007BL)
-#define MCA_INTERNALTIMER_ERROR          ((NTSTATUS)0xC005007CL)
-#define MCA_MICROCODE_ROM_PARITY_ERROR   ((NTSTATUS)0xC005007EL)
-#define MCA_EXTERNAL_ERROR               ((NTSTATUS)0xC005007FL)
-#define MCA_FRC_ERROR                    ((NTSTATUS)0xC0050080L)
-
-#define STATUS_SEVERITY_SUCCESS          0x0
-#define STATUS_SEVERITY_INFORMATIONAL    0x1
-#define STATUS_SEVERITY_WARNING          0x2
-#define STATUS_SEVERITY_ERROR            0x3
index 9237221..688f996 100644 (file)
 extern "C" {
 #endif
 
 extern "C" {
 #endif
 
-#ifndef WIN32_NO_STATUS
-
-#define FACILITY_DEBUGGER               0x1
-#define FACILITY_RPC_RUNTIME            0x2
-#define FACILITY_RPC_STUBS              0x3
-#define FACILITY_IO_ERROR_CODE          0x4
-#define FACILITY_TERMINAL_SERVER        0xA
-#define FACILITY_USB_ERROR_CODE         0x10
-#define FACILITY_HID_ERROR_CODE         0x11
-#define FACILITY_FIREWIRE_ERROR_CODE    0x12
-#define FACILITY_CLUSTER_ERROR_CODE     0x13
-#define FACILITY_ACPI_ERROR_CODE        0x14
-#define FACILITY_SXS_ERROR_CODE         0x15
-
-/* Debug codes */
-
-#define DBG_EXCEPTION_HANDLED             ((NTSTATUS)0x00010001)
-#define DBG_CONTINUE                      ((NTSTATUS)0x00010002)
-#define DBG_REPLY_LATER                   ((NTSTATUS)0x40010001)
-#define DBG_UNABLE_TO_PROVIDE_HANDLE      ((NTSTATUS)0x40010002)
-#define DBG_TERMINATE_THREAD              ((NTSTATUS)0x40010003)
-#define DBG_TERMINATE_PROCESS             ((NTSTATUS)0x40010004)
-#define DBG_CONTROL_C                     ((NTSTATUS)0x40010005)
-#define DBG_PRINTEXCEPTION_C              ((NTSTATUS)0x40010006)
-#define DBG_RIPEXCEPTION                  ((NTSTATUS)0x40010007)
-#define DBG_CONTROL_BREAK                 ((NTSTATUS)0x40010008)
-#define DBG_COMMAND_EXCEPTION             ((NTSTATUS)0x40010009)
-#define DBG_EXCEPTION_NOT_HANDLED         ((NTSTATUS)0x80010001)
-#define DBG_NO_STATE_CHANGE               ((NTSTATUS)0xC0010001)
-#define DBG_APP_NOT_IDLE                  ((NTSTATUS)0xC0010002)
-
-/* Exception codes */
-
 #if !defined(STATUS_SUCCESS)
 #if !defined(STATUS_SUCCESS)
-#define STATUS_SUCCESS                    ((NTSTATUS)0x00000000)
-#endif
-#define STATUS_SEVERITY_SUCCESS           0x0
-#define STATUS_SEVERITY_INFORMATIONAL     0x1
-#define STATUS_SEVERITY_WARNING           0x2
-#define STATUS_SEVERITY_ERROR             0x3
-
-#define STATUS_WAIT_1                             ((NTSTATUS)0x00000001)
-#define STATUS_WAIT_2                             ((NTSTATUS)0x00000002)
-#define STATUS_WAIT_3                             ((NTSTATUS)0x00000003)
-#define STATUS_WAIT_63                            ((NTSTATUS)0x0000003f)
-#define STATUS_ABANDONED                          ((NTSTATUS)0x00000080)
-#define STATUS_ABANDONED_WAIT_63                  ((NTSTATUS)0x000000BF)
-#define STATUS_USER_APC                           ((NTSTATUS)0x000000C0)
-#define STATUS_KERNEL_APC                         ((NTSTATUS)0x00000100)
-#define STATUS_ALERTED                            ((NTSTATUS)0x00000101)
-#define STATUS_TIMEOUT                            ((NTSTATUS)0x00000102)
-#define STATUS_PENDING                            ((NTSTATUS)0x00000103)
-#define STATUS_REPARSE                            ((NTSTATUS)0x00000104)
-#define STATUS_MORE_ENTRIES                       ((NTSTATUS)0x00000105)
-#define STATUS_NOT_ALL_ASSIGNED                   ((NTSTATUS)0x00000106)
-#define STATUS_SOME_NOT_MAPPED                    ((NTSTATUS)0x00000107)
-#define STATUS_OPLOCK_BREAK_IN_PROGRESS           ((NTSTATUS)0x00000108)
-#define STATUS_VOLUME_MOUNTED                     ((NTSTATUS)0x00000109)
-#define STATUS_RXACT_COMMITTED                    ((NTSTATUS)0x0000010A)
-#define STATUS_NOTIFY_CLEANUP                     ((NTSTATUS)0x0000010B)
-#define STATUS_NOTIFY_ENUM_DIR                    ((NTSTATUS)0x0000010C)
-#define STATUS_NO_QUOTAS_FOR_ACCOUNT              ((NTSTATUS)0x0000010D)
-#define STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED   ((NTSTATUS)0x0000010E)
-#define STATUS_PAGE_FAULT_TRANSITION              ((NTSTATUS)0x00000110)
-#define STATUS_PAGE_FAULT_DEMAND_ZERO             ((NTSTATUS)0x00000111)
-#define STATUS_PAGE_FAULT_COPY_ON_WRITE           ((NTSTATUS)0x00000112)
-#define STATUS_PAGE_FAULT_GUARD_PAGE              ((NTSTATUS)0x00000113)
-#define STATUS_PAGE_FAULT_PAGING_FILE             ((NTSTATUS)0x00000114)
-#define STATUS_CACHE_PAGE_LOCKED                  ((NTSTATUS)0x00000115)
-#define STATUS_CRASH_DUMP                         ((NTSTATUS)0x00000116)
-#define STATUS_BUFFER_ALL_ZEROS                   ((NTSTATUS)0x00000117)
-#define STATUS_REPARSE_OBJECT                     ((NTSTATUS)0x00000118)
-#define STATUS_RESOURCE_REQUIREMENTS_CHANGED      ((NTSTATUS)0x00000119)
-#define STATUS_TRANSLATION_COMPLETE               ((NTSTATUS)0x00000120)
-#define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY    ((NTSTATUS)0x00000121)
-#define STATUS_NOTHING_TO_TERMINATE               ((NTSTATUS)0x00000122)
-#define STATUS_PROCESS_NOT_IN_JOB                 ((NTSTATUS)0x00000123)
-#define STATUS_PROCESS_IN_JOB                     ((NTSTATUS)0x00000124)
-#define STATUS_VOLSNAP_HIBERNATE_READY            ((NTSTATUS)0x00000125)
-#define STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY ((NTSTATUS)0x00000126)
-
-#define STATUS_OBJECT_NAME_EXISTS              ((NTSTATUS)0x40000000)
-#define STATUS_THREAD_WAS_SUSPENDED            ((NTSTATUS)0x40000001)
-#define STATUS_WORKING_SET_LIMIT_RANGE         ((NTSTATUS)0x40000002)
-#define STATUS_IMAGE_NOT_AT_BASE               ((NTSTATUS)0x40000003)
-#define STATUS_RXACT_STATE_CREATED             ((NTSTATUS)0x40000004)
-#define STATUS_SEGMENT_NOTIFICATION            ((NTSTATUS)0x40000005)
-#define STATUS_LOCAL_USER_SESSION_KEY          ((NTSTATUS)0x40000006)
-#define STATUS_BAD_CURRENT_DIRECTORY           ((NTSTATUS)0x40000007)
-#define STATUS_SERIAL_MORE_WRITES              ((NTSTATUS)0x40000008)
-#define STATUS_REGISTRY_RECOVERED              ((NTSTATUS)0x40000009)
-#define STATUS_FT_READ_RECOVERY_FROM_BACKUP    ((NTSTATUS)0x4000000A)
-#define STATUS_FT_WRITE_RECOVERY               ((NTSTATUS)0x4000000B)
-#define STATUS_SERIAL_COUNTER_TIMEOUT          ((NTSTATUS)0x4000000C)
-#define STATUS_NULL_LM_PASSWORD                ((NTSTATUS)0x4000000D)
-#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH     ((NTSTATUS)0x4000000E)
-#define STATUS_RECEIVE_PARTIAL                 ((NTSTATUS)0x4000000F)
-#define STATUS_RECEIVE_EXPEDITED               ((NTSTATUS)0x40000010)
-#define STATUS_RECEIVE_PARTIAL_EXPEDITED       ((NTSTATUS)0x40000011)
-#define STATUS_EVENT_DONE                      ((NTSTATUS)0x40000012)
-#define STATUS_EVENT_PENDING                   ((NTSTATUS)0x40000013)
-#define STATUS_CHECKING_FILE_SYSTEM            ((NTSTATUS)0x40000014)
-#define STATUS_FATAL_APP_EXIT                  ((NTSTATUS)0x40000015)
-#define STATUS_PREDEFINED_HANDLE               ((NTSTATUS)0x40000016)
-#define STATUS_WAS_UNLOCKED                    ((NTSTATUS)0x40000017)
-#define STATUS_SERVICE_NOTIFICATION            ((NTSTATUS)0x40000018)
-#define STATUS_WAS_LOCKED                      ((NTSTATUS)0x40000019)
-#define STATUS_LOG_HARD_ERROR                  ((NTSTATUS)0x4000001A)
-#define STATUS_ALREADY_WIN32                   ((NTSTATUS)0x4000001B)
-#define STATUS_WX86_UNSIMULATE                 ((NTSTATUS)0x4000001C)
-#define STATUS_WX86_CONTINUE                   ((NTSTATUS)0x4000001D)
-#define STATUS_WX86_SINGLE_STEP                ((NTSTATUS)0x4000001E)
-#define STATUS_WX86_BREAKPOINT                 ((NTSTATUS)0x4000001F)
-#define STATUS_WX86_EXCEPTION_CONTINUE         ((NTSTATUS)0x40000020)
-#define STATUS_WX86_EXCEPTION_LASTCHANCE       ((NTSTATUS)0x40000021)
-#define STATUS_WX86_EXCEPTION_CHAIN            ((NTSTATUS)0x40000022)
-#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE ((NTSTATUS)0x40000023)
-#define STATUS_NO_YIELD_PERFORMED              ((NTSTATUS)0x40000024)
-#define STATUS_TIMER_RESUME_IGNORED            ((NTSTATUS)0x40000025)
-#define STATUS_ARBITRATION_UNHANDLED           ((NTSTATUS)0x40000026)
-#define STATUS_CARDBUS_NOT_SUPPORTED           ((NTSTATUS)0x40000027)
-#define STATUS_WX86_CREATEWX86TIB              ((NTSTATUS)0x40000028)
-#define STATUS_MP_PROCESSOR_MISMATCH           ((NTSTATUS)0x40000029)
-#define STATUS_HIBERNATED                      ((NTSTATUS)0x4000002A)
-#define STATUS_RESUME_HIBERNATION              ((NTSTATUS)0x4000002B)
-#define STATUS_FIRMWARE_UPDATED                ((NTSTATUS)0x4000002C)
-#define STATUS_WAKE_SYSTEM                     ((NTSTATUS)0x40000294)
-#define STATUS_DS_SHUTTING_DOWN                ((NTSTATUS)0x40000370)
-
-#define RPC_NT_UUID_LOCAL_ONLY           ((NTSTATUS)0x40020056)
-#define RPC_NT_SEND_INCOMPLETE           ((NTSTATUS)0x400200AF)
-
-#define STATUS_CTX_CDM_CONNECT           ((NTSTATUS)0x400A0004)
-#define STATUS_CTX_CDM_DISCONNECT        ((NTSTATUS)0x400A0005)
-
-#define STATUS_SXS_RELEASE_ACTIVATION_CONTEXT  ((NTSTATUS)0x4015000D)
-
-#define STATUS_GUARD_PAGE_VIOLATION             ((NTSTATUS)0x80000001)
-#define STATUS_DATATYPE_MISALIGNMENT            ((NTSTATUS)0x80000002)
-#define STATUS_BREAKPOINT                       ((NTSTATUS)0x80000003)
-#define STATUS_SINGLE_STEP                      ((NTSTATUS)0x80000004)
-#define STATUS_BUFFER_OVERFLOW                  ((NTSTATUS)0x80000005)
-#define STATUS_NO_MORE_FILES                    ((NTSTATUS)0x80000006)
-#define STATUS_WAKE_SYSTEM_DEBUGGER             ((NTSTATUS)0x80000007)
-
-#define STATUS_HANDLES_CLOSED                   ((NTSTATUS)0x8000000A)
-#define STATUS_NO_INHERITANCE                   ((NTSTATUS)0x8000000B)
-#define STATUS_GUID_SUBSTITUTION_MADE           ((NTSTATUS)0x8000000C)
-#define STATUS_PARTIAL_COPY                     ((NTSTATUS)0x8000000D)
-#define STATUS_DEVICE_PAPER_EMPTY               ((NTSTATUS)0x8000000E)
-#define STATUS_DEVICE_POWERED_OFF               ((NTSTATUS)0x8000000F)
-#define STATUS_DEVICE_OFF_LINE                  ((NTSTATUS)0x80000010)
-#define STATUS_DEVICE_BUSY                      ((NTSTATUS)0x80000011)
-#define STATUS_NO_MORE_EAS                      ((NTSTATUS)0x80000012)
-#define STATUS_INVALID_EA_NAME                  ((NTSTATUS)0x80000013)
-#define STATUS_EA_LIST_INCONSISTENT             ((NTSTATUS)0x80000014)
-#define STATUS_INVALID_EA_FLAG                  ((NTSTATUS)0x80000015)
-#define STATUS_VERIFY_REQUIRED                  ((NTSTATUS)0x80000016)
-#define STATUS_EXTRANEOUS_INFORMATION           ((NTSTATUS)0x80000017)
-#define STATUS_RXACT_COMMIT_NECESSARY           ((NTSTATUS)0x80000018)
-#define STATUS_NO_MORE_ENTRIES                  ((NTSTATUS)0x8000001A)
-#define STATUS_FILEMARK_DETECTED                ((NTSTATUS)0x8000001B)
-#define STATUS_MEDIA_CHANGED                    ((NTSTATUS)0x8000001C)
-#define STATUS_BUS_RESET                        ((NTSTATUS)0x8000001D)
-#define STATUS_END_OF_MEDIA                     ((NTSTATUS)0x8000001E)
-#define STATUS_BEGINNING_OF_MEDIA               ((NTSTATUS)0x8000001F)
-#define STATUS_MEDIA_CHECK                      ((NTSTATUS)0x80000020)
-#define STATUS_SETMARK_DETECTED                 ((NTSTATUS)0x80000021)
-#define STATUS_NO_DATA_DETECTED                 ((NTSTATUS)0x80000022)
-#define STATUS_REDIRECTOR_HAS_OPEN_HANDLES      ((NTSTATUS)0x80000023)
-#define STATUS_SERVER_HAS_OPEN_HANDLES          ((NTSTATUS)0x80000024)
-#define STATUS_ALREADY_DISCONNECTED             ((NTSTATUS)0x80000025)
-#define STATUS_LONGJUMP                         ((NTSTATUS)0x80000026)
-#define STATUS_CLEANER_CARTRIDGE_INSTALLED      ((NTSTATUS)0x80000027)
-#define STATUS_PLUGPLAY_QUERY_VETOED            ((NTSTATUS)0x80000028)
-#define STATUS_UNWIND_CONSOLIDATE               ((NTSTATUS)0x80000029)
-#define STATUS_REGISTRY_HIVE_RECOVERED          ((NTSTATUS)0x8000002A)
-#define STATUS_DLL_MIGHT_BE_INSECURE            ((NTSTATUS)0x8000002B)
-#define STATUS_DLL_MIGHT_BE_INCOMPATIBLE        ((NTSTATUS)0x8000002C)
+#define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
+#endif /* !STATUS_SUCCESS */
+#define FACILITY_DEBUGGER 0x1
+#define FACILITY_RPC_RUNTIME 0x2
+#define FACILITY_RPC_STUBS 0x3
+#define FACILITY_IO_ERROR_CODE 0x4
+#define FACILITY_TERMINAL_SERVER 0xA
+#define FACILITY_USB_ERROR_CODE 0x10
+#define FACILITY_HID_ERROR_CODE 0x11
+#define FACILITY_FIREWIRE_ERROR_CODE 0x12
+#define FACILITY_CLUSTER_ERROR_CODE 0x13
+#define FACILITY_ACPI_ERROR_CODE 0x14
+#define FACILITY_SXS_ERROR_CODE 0x15
+#define STATUS_SEVERITY_SUCCESS 0x0
+#define STATUS_SEVERITY_INFORMATIONAL 0x1
+#define STATUS_SEVERITY_WARNING 0x2
+#define STATUS_SEVERITY_ERROR 0x3
+#define STATUS_WAIT_0 ((NTSTATUS)0x00000000L)
+#define STATUS_WAIT_1 ((NTSTATUS)0x00000001L)
+#define STATUS_WAIT_2 ((NTSTATUS)0x00000002L)
+#define STATUS_WAIT_3 ((NTSTATUS)0x00000003L)
+#define STATUS_WAIT_63 ((NTSTATUS)0x0000003FL)
+#define STATUS_ABANDONED ((NTSTATUS)0x00000080L)
+#define STATUS_ABANDONED_WAIT_0 ((NTSTATUS)0x00000080L)
+#define STATUS_ABANDONED_WAIT_63 ((NTSTATUS)0x000000BFL)
+#define STATUS_USER_APC ((NTSTATUS)0x000000C0L)
+#define STATUS_KERNEL_APC ((NTSTATUS)0x00000100L)
+#define STATUS_ALERTED ((NTSTATUS)0x00000101L)
+#define STATUS_TIMEOUT ((NTSTATUS)0x00000102L)
+#define STATUS_PENDING ((NTSTATUS)0x00000103L)
+#define STATUS_REPARSE ((NTSTATUS)0x00000104L)
+#define STATUS_MORE_ENTRIES ((NTSTATUS)0x00000105L)
+#define STATUS_NOT_ALL_ASSIGNED ((NTSTATUS)0x00000106L)
+#define STATUS_SOME_NOT_MAPPED ((NTSTATUS)0x00000107L)
+#define STATUS_OPLOCK_BREAK_IN_PROGRESS ((NTSTATUS)0x00000108L)
+#define STATUS_VOLUME_MOUNTED ((NTSTATUS)0x00000109L)
+#define STATUS_RXACT_COMMITTED ((NTSTATUS)0x0000010AL)
+#define STATUS_NOTIFY_CLEANUP ((NTSTATUS)0x0000010BL)
+#define STATUS_NOTIFY_ENUM_DIR ((NTSTATUS)0x0000010CL)
+#define STATUS_NO_QUOTAS_FOR_ACCOUNT ((NTSTATUS)0x0000010DL)
+#define STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED ((NTSTATUS)0x0000010EL)
+#define STATUS_PAGE_FAULT_TRANSITION ((NTSTATUS)0x00000110L)
+#define STATUS_PAGE_FAULT_DEMAND_ZERO ((NTSTATUS)0x00000111L)
+#define STATUS_PAGE_FAULT_COPY_ON_WRITE ((NTSTATUS)0x00000112L)
+#define STATUS_PAGE_FAULT_GUARD_PAGE ((NTSTATUS)0x00000113L)
+#define STATUS_PAGE_FAULT_PAGING_FILE ((NTSTATUS)0x00000114L)
+#define STATUS_CACHE_PAGE_LOCKED ((NTSTATUS)0x00000115L)
+#define STATUS_CRASH_DUMP ((NTSTATUS)0x00000116L)
+#define STATUS_BUFFER_ALL_ZEROS ((NTSTATUS)0x00000117L)
+#define STATUS_REPARSE_OBJECT ((NTSTATUS)0x00000118L)
+#define STATUS_RESOURCE_REQUIREMENTS_CHANGED ((NTSTATUS)0x00000119L)
+#define STATUS_TRANSLATION_COMPLETE ((NTSTATUS)0x00000120L)
+#define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY ((NTSTATUS)0x00000121L)
+#define STATUS_NOTHING_TO_TERMINATE ((NTSTATUS)0x00000122L)
+#define STATUS_PROCESS_NOT_IN_JOB ((NTSTATUS)0x00000123L)
+#define STATUS_PROCESS_IN_JOB ((NTSTATUS)0x00000124L)
+#define STATUS_OBJECT_NAME_EXISTS ((NTSTATUS)0x40000000L)
+#define STATUS_THREAD_WAS_SUSPENDED ((NTSTATUS)0x40000001L)
+#define STATUS_WORKING_SET_LIMIT_RANGE ((NTSTATUS)0x40000002L)
+#define STATUS_IMAGE_NOT_AT_BASE ((NTSTATUS)0x40000003L)
+#define STATUS_RXACT_STATE_CREATED ((NTSTATUS)0x40000004L)
+#define STATUS_SEGMENT_NOTIFICATION ((NTSTATUS)0x40000005L)
+#define STATUS_LOCAL_USER_SESSION_KEY ((NTSTATUS)0x40000006L)
+#define STATUS_BAD_CURRENT_DIRECTORY ((NTSTATUS)0x40000007L)
+#define STATUS_SERIAL_MORE_WRITES ((NTSTATUS)0x40000008L)
+#define STATUS_REGISTRY_RECOVERED ((NTSTATUS)0x40000009L)
+#define STATUS_FT_READ_RECOVERY_FROM_BACKUP ((NTSTATUS)0x4000000AL)
+#define STATUS_FT_WRITE_RECOVERY ((NTSTATUS)0x4000000BL)
+#define STATUS_SERIAL_COUNTER_TIMEOUT ((NTSTATUS)0x4000000CL)
+#define STATUS_NULL_LM_PASSWORD ((NTSTATUS)0x4000000DL)
+#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH ((NTSTATUS)0x4000000EL)
+#define STATUS_RECEIVE_PARTIAL ((NTSTATUS)0x4000000FL)
+#define STATUS_RECEIVE_EXPEDITED ((NTSTATUS)0x40000010L)
+#define STATUS_RECEIVE_PARTIAL_EXPEDITED ((NTSTATUS)0x40000011L)
+#define STATUS_EVENT_DONE ((NTSTATUS)0x40000012L)
+#define STATUS_EVENT_PENDING ((NTSTATUS)0x40000013L)
+#define STATUS_CHECKING_FILE_SYSTEM ((NTSTATUS)0x40000014L)
+#define STATUS_FATAL_APP_EXIT ((NTSTATUS)0x40000015L)
+#define STATUS_PREDEFINED_HANDLE ((NTSTATUS)0x40000016L)
+#define STATUS_WAS_UNLOCKED ((NTSTATUS)0x40000017L)
+#define STATUS_SERVICE_NOTIFICATION ((NTSTATUS)0x40000018L)
+#define STATUS_WAS_LOCKED ((NTSTATUS)0x40000019L)
+#define STATUS_LOG_HARD_ERROR ((NTSTATUS)0x4000001AL)
+#define STATUS_ALREADY_WIN32 ((NTSTATUS)0x4000001BL)
+#define STATUS_WX86_UNSIMULATE ((NTSTATUS)0x4000001CL)
+#define STATUS_WX86_CONTINUE ((NTSTATUS)0x4000001DL)
+#define STATUS_WX86_SINGLE_STEP ((NTSTATUS)0x4000001EL)
+#define STATUS_WX86_BREAKPOINT ((NTSTATUS)0x4000001FL)
+#define STATUS_WX86_EXCEPTION_CONTINUE ((NTSTATUS)0x40000020L)
+#define STATUS_WX86_EXCEPTION_LASTCHANCE ((NTSTATUS)0x40000021L)
+#define STATUS_WX86_EXCEPTION_CHAIN ((NTSTATUS)0x40000022L)
+#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE ((NTSTATUS)0x40000023L)
+#define STATUS_NO_YIELD_PERFORMED ((NTSTATUS)0x40000024L)
+#define STATUS_TIMER_RESUME_IGNORED ((NTSTATUS)0x40000025L)
+#define STATUS_ARBITRATION_UNHANDLED ((NTSTATUS)0x40000026L)
+#define STATUS_CARDBUS_NOT_SUPPORTED ((NTSTATUS)0x40000027L)
+#define STATUS_WX86_CREATEWX86TIB ((NTSTATUS)0x40000028L)
+#define STATUS_MP_PROCESSOR_MISMATCH ((NTSTATUS)0x40000029L)
+#define STATUS_HIBERNATED ((NTSTATUS)0x4000002AL)
+#define STATUS_RESUME_HIBERNATION ((NTSTATUS)0x4000002BL)
+#define STATUS_GUARD_PAGE_VIOLATION ((NTSTATUS)0x80000001L)
+#define STATUS_DATATYPE_MISALIGNMENT ((NTSTATUS)0x80000002L)
+#define STATUS_BREAKPOINT ((NTSTATUS)0x80000003L)
+#define STATUS_SINGLE_STEP ((NTSTATUS)0x80000004L)
+#define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005L)
+#define STATUS_NO_MORE_FILES ((NTSTATUS)0x80000006L)
+#define STATUS_WAKE_SYSTEM_DEBUGGER ((NTSTATUS)0x80000007L)
+#define STATUS_HANDLES_CLOSED ((NTSTATUS)0x8000000AL)
+#define STATUS_NO_INHERITANCE ((NTSTATUS)0x8000000BL)
+#define STATUS_GUID_SUBSTITUTION_MADE ((NTSTATUS)0x8000000CL)
+#define STATUS_PARTIAL_COPY ((NTSTATUS)0x8000000DL)
+#define STATUS_DEVICE_PAPER_EMPTY ((NTSTATUS)0x8000000EL)
+#define STATUS_DEVICE_POWERED_OFF ((NTSTATUS)0x8000000FL)
+#define STATUS_DEVICE_OFF_LINE ((NTSTATUS)0x80000010L)
+#define STATUS_DEVICE_BUSY ((NTSTATUS)0x80000011L)
+#define STATUS_NO_MORE_EAS ((NTSTATUS)0x80000012L)
+#define STATUS_INVALID_EA_NAME ((NTSTATUS)0x80000013L)
+#define STATUS_EA_LIST_INCONSISTENT ((NTSTATUS)0x80000014L)
+#define STATUS_INVALID_EA_FLAG ((NTSTATUS)0x80000015L)
+#define STATUS_VERIFY_REQUIRED ((NTSTATUS)0x80000016L)
+#define STATUS_EXTRANEOUS_INFORMATION ((NTSTATUS)0x80000017L)
+#define STATUS_RXACT_COMMIT_NECESSARY ((NTSTATUS)0x80000018L)
+#define STATUS_NO_MORE_ENTRIES ((NTSTATUS)0x8000001AL)
+#define STATUS_FILEMARK_DETECTED ((NTSTATUS)0x8000001BL)
+#define STATUS_MEDIA_CHANGED ((NTSTATUS)0x8000001CL)
+#define STATUS_BUS_RESET ((NTSTATUS)0x8000001DL)
+#define STATUS_END_OF_MEDIA ((NTSTATUS)0x8000001EL)
+#define STATUS_BEGINNING_OF_MEDIA ((NTSTATUS)0x8000001FL)
+#define STATUS_MEDIA_CHECK ((NTSTATUS)0x80000020L)
+#define STATUS_SETMARK_DETECTED ((NTSTATUS)0x80000021L)
+#define STATUS_NO_DATA_DETECTED ((NTSTATUS)0x80000022L)
+#define STATUS_REDIRECTOR_HAS_OPEN_HANDLES ((NTSTATUS)0x80000023L)
+#define STATUS_SERVER_HAS_OPEN_HANDLES ((NTSTATUS)0x80000024L)
+#define STATUS_ALREADY_DISCONNECTED ((NTSTATUS)0x80000025L)
+#define STATUS_LONGJUMP ((NTSTATUS)0x80000026L)
+#define STATUS_CLEANER_CARTRIDGE_INSTALLED ((NTSTATUS)0x80000027L)
+#define STATUS_PLUGPLAY_QUERY_VETOED ((NTSTATUS)0x80000028L)
+#define STATUS_UNWIND_CONSOLIDATE ((NTSTATUS)0x80000029L)
+#define STATUS_CLUSTER_NODE_ALREADY_UP ((NTSTATUS)0x80130001L)
+#define STATUS_CLUSTER_NODE_ALREADY_DOWN ((NTSTATUS)0x80130002L)
+#define STATUS_CLUSTER_NETWORK_ALREADY_ONLINE ((NTSTATUS)0x80130003L)
+#define STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE ((NTSTATUS)0x80130004L)
+#define STATUS_CLUSTER_NODE_ALREADY_MEMBER ((NTSTATUS)0x80130005L)
+#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L)
+#define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002L)
+#define STATUS_INVALID_INFO_CLASS ((NTSTATUS)0xC0000003L)
+#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
+#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L)
+#define STATUS_IN_PAGE_ERROR ((NTSTATUS)0xC0000006L)
+#define STATUS_PAGEFILE_QUOTA ((NTSTATUS)0xC0000007L)
+#define STATUS_INVALID_HANDLE ((NTSTATUS)0xC0000008L)
+#define STATUS_BAD_INITIAL_STACK ((NTSTATUS)0xC0000009L)
+#define STATUS_BAD_INITIAL_PC ((NTSTATUS)0xC000000AL)
+#define STATUS_INVALID_CID ((NTSTATUS)0xC000000BL)
+#define STATUS_TIMER_NOT_CANCELED ((NTSTATUS)0xC000000CL)
+#define STATUS_INVALID_PARAMETER ((NTSTATUS)0xC000000DL)
+#define STATUS_NO_SUCH_DEVICE ((NTSTATUS)0xC000000EL)
+#define STATUS_NO_SUCH_FILE ((NTSTATUS)0xC000000FL)
+#define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS)0xC0000010L)
+#define STATUS_END_OF_FILE ((NTSTATUS)0xC0000011L)
+#define STATUS_WRONG_VOLUME ((NTSTATUS)0xC0000012L)
+#define STATUS_NO_MEDIA_IN_DEVICE ((NTSTATUS)0xC0000013L)
+#define STATUS_UNRECOGNIZED_MEDIA ((NTSTATUS)0xC0000014L)
+#define STATUS_NONEXISTENT_SECTOR ((NTSTATUS)0xC0000015L)
+#define STATUS_MORE_PROCESSING_REQUIRED ((NTSTATUS)0xC0000016L)
+#define STATUS_NO_MEMORY ((NTSTATUS)0xC0000017L)
+#define STATUS_CONFLICTING_ADDRESSES ((NTSTATUS)0xC0000018L)
+#define STATUS_NOT_MAPPED_VIEW ((NTSTATUS)0xC0000019L)
+#define STATUS_UNABLE_TO_FREE_VM ((NTSTATUS)0xC000001AL)
+#define STATUS_UNABLE_TO_DELETE_SECTION ((NTSTATUS)0xC000001BL)
+#define STATUS_INVALID_SYSTEM_SERVICE ((NTSTATUS)0xC000001CL)
+#define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS)0xC000001DL)
+#define STATUS_INVALID_LOCK_SEQUENCE ((NTSTATUS)0xC000001EL)
+#define STATUS_INVALID_VIEW_SIZE ((NTSTATUS)0xC000001FL)
+#define STATUS_INVALID_FILE_FOR_SECTION ((NTSTATUS)0xC0000020L)
+#define STATUS_ALREADY_COMMITTED ((NTSTATUS)0xC0000021L)
+#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L)
+#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L)
+#define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS)0xC0000024L)
+#define STATUS_NONCONTINUABLE_EXCEPTION ((NTSTATUS)0xC0000025L)
+#define STATUS_INVALID_DISPOSITION ((NTSTATUS)0xC0000026L)
+#define STATUS_UNWIND ((NTSTATUS)0xC0000027L)
+#define STATUS_BAD_STACK ((NTSTATUS)0xC0000028L)
+#define STATUS_INVALID_UNWIND_TARGET ((NTSTATUS)0xC0000029L)
+#define STATUS_NOT_LOCKED ((NTSTATUS)0xC000002AL)
+#define STATUS_PARITY_ERROR ((NTSTATUS)0xC000002BL)
+#define STATUS_UNABLE_TO_DECOMMIT_VM ((NTSTATUS)0xC000002CL)
+#define STATUS_NOT_COMMITTED ((NTSTATUS)0xC000002DL)
+#define STATUS_INVALID_PORT_ATTRIBUTES ((NTSTATUS)0xC000002EL)
+#define STATUS_PORT_MESSAGE_TOO_LONG ((NTSTATUS)0xC000002FL)
+#define STATUS_INVALID_PARAMETER_MIX ((NTSTATUS)0xC0000030L)
+#define STATUS_INVALID_QUOTA_LOWER ((NTSTATUS)0xC0000031L)
+#define STATUS_DISK_CORRUPT_ERROR ((NTSTATUS)0xC0000032L)
+#define STATUS_OBJECT_NAME_INVALID ((NTSTATUS)0xC0000033L)
+#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xC0000034L)
+#define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS)0xC0000035L)
+#define STATUS_PORT_DISCONNECTED ((NTSTATUS)0xC0000037L)
+#define STATUS_DEVICE_ALREADY_ATTACHED ((NTSTATUS)0xC0000038L)
+#define STATUS_OBJECT_PATH_INVALID ((NTSTATUS)0xC0000039L)
+#define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS)0xC000003AL)
+#define STATUS_OBJECT_PATH_SYNTAX_BAD ((NTSTATUS)0xC000003BL)
+#define STATUS_DATA_OVERRUN ((NTSTATUS)0xC000003CL)
+#define STATUS_DATA_LATE_ERROR ((NTSTATUS)0xC000003DL)
+#define STATUS_DATA_ERROR ((NTSTATUS)0xC000003EL)
+#define STATUS_CRC_ERROR ((NTSTATUS)0xC000003FL)
+#define STATUS_SECTION_TOO_BIG ((NTSTATUS)0xC0000040L)
+#define STATUS_PORT_CONNECTION_REFUSED ((NTSTATUS)0xC0000041L)
+#define STATUS_INVALID_PORT_HANDLE ((NTSTATUS)0xC0000042L)
+#define STATUS_SHARING_VIOLATION ((NTSTATUS)0xC0000043L)
+#define STATUS_QUOTA_EXCEEDED ((NTSTATUS)0xC0000044L)
+#define STATUS_INVALID_PAGE_PROTECTION ((NTSTATUS)0xC0000045L)
+#define STATUS_MUTANT_NOT_OWNED ((NTSTATUS)0xC0000046L)
+#define STATUS_SEMAPHORE_LIMIT_EXCEEDED ((NTSTATUS)0xC0000047L)
+#define STATUS_PORT_ALREADY_SET ((NTSTATUS)0xC0000048L)
+#define STATUS_SECTION_NOT_IMAGE ((NTSTATUS)0xC0000049L)
+#define STATUS_SUSPEND_COUNT_EXCEEDED ((NTSTATUS)0xC000004AL)
+#define STATUS_THREAD_IS_TERMINATING ((NTSTATUS)0xC000004BL)
+#define STATUS_BAD_WORKING_SET_LIMIT ((NTSTATUS)0xC000004CL)
+#define STATUS_INCOMPATIBLE_FILE_MAP ((NTSTATUS)0xC000004DL)
+#define STATUS_SECTION_PROTECTION ((NTSTATUS)0xC000004EL)
+#define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS)0xC000004FL)
+#define STATUS_EA_TOO_LARGE ((NTSTATUS)0xC0000050L)
+#define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS)0xC0000051L)
+#define STATUS_NO_EAS_ON_FILE ((NTSTATUS)0xC0000052L)
+#define STATUS_EA_CORRUPT_ERROR ((NTSTATUS)0xC0000053L)
+#define STATUS_FILE_LOCK_CONFLICT ((NTSTATUS)0xC0000054L)
+#define STATUS_LOCK_NOT_GRANTED ((NTSTATUS)0xC0000055L)
+#define STATUS_DELETE_PENDING ((NTSTATUS)0xC0000056L)
+#define STATUS_CTL_FILE_NOT_SUPPORTED ((NTSTATUS)0xC0000057L)
+#define STATUS_UNKNOWN_REVISION ((NTSTATUS)0xC0000058L)
+#define STATUS_REVISION_MISMATCH ((NTSTATUS)0xC0000059L)
+#define STATUS_INVALID_OWNER ((NTSTATUS)0xC000005AL)
+#define STATUS_INVALID_PRIMARY_GROUP ((NTSTATUS)0xC000005BL)
+#define STATUS_NO_IMPERSONATION_TOKEN ((NTSTATUS)0xC000005CL)
+#define STATUS_CANT_DISABLE_MANDATORY ((NTSTATUS)0xC000005DL)
+#define STATUS_NO_LOGON_SERVERS ((NTSTATUS)0xC000005EL)
+#define STATUS_NO_SUCH_LOGON_SESSION ((NTSTATUS)0xC000005FL)
+#define STATUS_NO_SUCH_PRIVILEGE ((NTSTATUS)0xC0000060L)
+#define STATUS_PRIVILEGE_NOT_HELD ((NTSTATUS)0xC0000061L)
+#define STATUS_INVALID_ACCOUNT_NAME ((NTSTATUS)0xC0000062L)
+#define STATUS_USER_EXISTS ((NTSTATUS)0xC0000063L)
+#define STATUS_NO_SUCH_USER ((NTSTATUS)0xC0000064L)
+#define STATUS_GROUP_EXISTS ((NTSTATUS)0xC0000065L)
+#define STATUS_NO_SUCH_GROUP ((NTSTATUS)0xC0000066L)
+#define STATUS_MEMBER_IN_GROUP ((NTSTATUS)0xC0000067L)
+#define STATUS_MEMBER_NOT_IN_GROUP ((NTSTATUS)0xC0000068L)
+#define STATUS_LAST_ADMIN ((NTSTATUS)0xC0000069L)
+#define STATUS_WRONG_PASSWORD ((NTSTATUS)0xC000006AL)
+#define STATUS_ILL_FORMED_PASSWORD ((NTSTATUS)0xC000006BL)
+#define STATUS_PASSWORD_RESTRICTION ((NTSTATUS)0xC000006CL)
+#define STATUS_LOGON_FAILURE ((NTSTATUS)0xC000006DL)
+#define STATUS_ACCOUNT_RESTRICTION ((NTSTATUS)0xC000006EL)
+#define STATUS_INVALID_LOGON_HOURS ((NTSTATUS)0xC000006FL)
+#define STATUS_INVALID_WORKSTATION ((NTSTATUS)0xC0000070L)
+#define STATUS_PASSWORD_EXPIRED ((NTSTATUS)0xC0000071L)
+#define STATUS_ACCOUNT_DISABLED ((NTSTATUS)0xC0000072L)
+#define STATUS_NONE_MAPPED ((NTSTATUS)0xC0000073L)
+#define STATUS_TOO_MANY_LUIDS_REQUESTED ((NTSTATUS)0xC0000074L)
+#define STATUS_LUIDS_EXHAUSTED ((NTSTATUS)0xC0000075L)
+#define STATUS_INVALID_SUB_AUTHORITY ((NTSTATUS)0xC0000076L)
+#define STATUS_INVALID_ACL ((NTSTATUS)0xC0000077L)
+#define STATUS_INVALID_SID ((NTSTATUS)0xC0000078L)
+#define STATUS_INVALID_SECURITY_DESCR ((NTSTATUS)0xC0000079L)
+#define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS)0xC000007AL)
+#define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS)0xC000007BL)
+#define STATUS_NO_TOKEN ((NTSTATUS)0xC000007CL)
+#define STATUS_BAD_INHERITANCE_ACL ((NTSTATUS)0xC000007DL)
+#define STATUS_RANGE_NOT_LOCKED ((NTSTATUS)0xC000007EL)
+#define STATUS_DISK_FULL ((NTSTATUS)0xC000007FL)
+#define STATUS_SERVER_DISABLED ((NTSTATUS)0xC0000080L)
+#define STATUS_SERVER_NOT_DISABLED ((NTSTATUS)0xC0000081L)
+#define STATUS_TOO_MANY_GUIDS_REQUESTED ((NTSTATUS)0xC0000082L)
+#define STATUS_GUIDS_EXHAUSTED ((NTSTATUS)0xC0000083L)
+#define STATUS_INVALID_ID_AUTHORITY ((NTSTATUS)0xC0000084L)
+#define STATUS_AGENTS_EXHAUSTED ((NTSTATUS)0xC0000085L)
+#define STATUS_INVALID_VOLUME_LABEL ((NTSTATUS)0xC0000086L)
+#define STATUS_SECTION_NOT_EXTENDED ((NTSTATUS)0xC0000087L)
+#define STATUS_NOT_MAPPED_DATA ((NTSTATUS)0xC0000088L)
+#define STATUS_RESOURCE_DATA_NOT_FOUND ((NTSTATUS)0xC0000089L)
+#define STATUS_RESOURCE_TYPE_NOT_FOUND ((NTSTATUS)0xC000008AL)
+#define STATUS_RESOURCE_NAME_NOT_FOUND ((NTSTATUS)0xC000008BL)
+#define STATUS_ARRAY_BOUNDS_EXCEEDED ((NTSTATUS)0xC000008CL)
+#define STATUS_FLOAT_DENORMAL_OPERAND ((NTSTATUS)0xC000008DL)
+#define STATUS_FLOAT_DIVIDE_BY_ZERO ((NTSTATUS)0xC000008EL)
+#define STATUS_FLOAT_INEXACT_RESULT ((NTSTATUS)0xC000008FL)
+#define STATUS_FLOAT_INVALID_OPERATION ((NTSTATUS)0xC0000090L)
+#define STATUS_FLOAT_OVERFLOW ((NTSTATUS)0xC0000091L)
+#define STATUS_FLOAT_STACK_CHECK ((NTSTATUS)0xC0000092L)
+#define STATUS_FLOAT_UNDERFLOW ((NTSTATUS)0xC0000093L)
+#define STATUS_INTEGER_DIVIDE_BY_ZERO ((NTSTATUS)0xC0000094L)
+#define STATUS_INTEGER_OVERFLOW ((NTSTATUS)0xC0000095L)
+#define STATUS_PRIVILEGED_INSTRUCTION ((NTSTATUS)0xC0000096L)
+#define STATUS_TOO_MANY_PAGING_FILES ((NTSTATUS)0xC0000097L)
+#define STATUS_FILE_INVALID ((NTSTATUS)0xC0000098L)
+#define STATUS_ALLOTTED_SPACE_EXCEEDED ((NTSTATUS)0xC0000099L)
+#define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC000009AL)
+#define STATUS_DFS_EXIT_PATH_FOUND ((NTSTATUS)0xC000009BL)
+#define STATUS_DEVICE_DATA_ERROR ((NTSTATUS)0xC000009CL)
+#define STATUS_DEVICE_NOT_CONNECTED ((NTSTATUS)0xC000009DL)
+#define STATUS_DEVICE_POWER_FAILURE ((NTSTATUS)0xC000009EL)
+#define STATUS_FREE_VM_NOT_AT_BASE ((NTSTATUS)0xC000009FL)
+#define STATUS_MEMORY_NOT_ALLOCATED ((NTSTATUS)0xC00000A0L)
+#define STATUS_WORKING_SET_QUOTA ((NTSTATUS)0xC00000A1L)
+#define STATUS_MEDIA_WRITE_PROTECTED ((NTSTATUS)0xC00000A2L)
+#define STATUS_DEVICE_NOT_READY ((NTSTATUS)0xC00000A3L)
+#define STATUS_INVALID_GROUP_ATTRIBUTES ((NTSTATUS)0xC00000A4L)
+#define STATUS_BAD_IMPERSONATION_LEVEL ((NTSTATUS)0xC00000A5L)
+#define STATUS_CANT_OPEN_ANONYMOUS ((NTSTATUS)0xC00000A6L)
+#define STATUS_BAD_VALIDATION_CLASS ((NTSTATUS)0xC00000A7L)
+#define STATUS_BAD_TOKEN_TYPE ((NTSTATUS)0xC00000A8L)
+#define STATUS_BAD_MASTER_BOOT_RECORD ((NTSTATUS)0xC00000A9L)
+#define STATUS_INSTRUCTION_MISALIGNMENT ((NTSTATUS)0xC00000AAL)
+#define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS)0xC00000ABL)
+#define STATUS_PIPE_NOT_AVAILABLE ((NTSTATUS)0xC00000ACL)
+#define STATUS_INVALID_PIPE_STATE ((NTSTATUS)0xC00000ADL)
+#define STATUS_PIPE_BUSY ((NTSTATUS)0xC00000AEL)
+#define STATUS_ILLEGAL_FUNCTION ((NTSTATUS)0xC00000AFL)
+#define STATUS_PIPE_DISCONNECTED ((NTSTATUS)0xC00000B0L)
+#define STATUS_PIPE_CLOSING ((NTSTATUS)0xC00000B1L)
+#define STATUS_PIPE_CONNECTED ((NTSTATUS)0xC00000B2L)
+#define STATUS_PIPE_LISTENING ((NTSTATUS)0xC00000B3L)
+#define STATUS_INVALID_READ_MODE ((NTSTATUS)0xC00000B4L)
+#define STATUS_IO_TIMEOUT ((NTSTATUS)0xC00000B5L)
+#define STATUS_FILE_FORCED_CLOSED ((NTSTATUS)0xC00000B6L)
+#define STATUS_PROFILING_NOT_STARTED ((NTSTATUS)0xC00000B7L)
+#define STATUS_PROFILING_NOT_STOPPED ((NTSTATUS)0xC00000B8L)
+#define STATUS_COULD_NOT_INTERPRET ((NTSTATUS)0xC00000B9L)
+#define STATUS_FILE_IS_A_DIRECTORY ((NTSTATUS)0xC00000BAL)
+#define STATUS_NOT_SUPPORTED ((NTSTATUS)0xC00000BBL)
+#define STATUS_REMOTE_NOT_LISTENING ((NTSTATUS)0xC00000BCL)
+#define STATUS_DUPLICATE_NAME ((NTSTATUS)0xC00000BDL)
+#define STATUS_BAD_NETWORK_PATH ((NTSTATUS)0xC00000BEL)
+#define STATUS_NETWORK_BUSY ((NTSTATUS)0xC00000BFL)
+#define STATUS_DEVICE_DOES_NOT_EXIST ((NTSTATUS)0xC00000C0L)
+#define STATUS_TOO_MANY_COMMANDS ((NTSTATUS)0xC00000C1L)
+#define STATUS_ADAPTER_HARDWARE_ERROR ((NTSTATUS)0xC00000C2L)
+#define STATUS_INVALID_NETWORK_RESPONSE ((NTSTATUS)0xC00000C3L)
+#define STATUS_UNEXPECTED_NETWORK_ERROR ((NTSTATUS)0xC00000C4L)
+#define STATUS_BAD_REMOTE_ADAPTER ((NTSTATUS)0xC00000C5L)
+#define STATUS_PRINT_QUEUE_FULL ((NTSTATUS)0xC00000C6L)
+#define STATUS_NO_SPOOL_SPACE ((NTSTATUS)0xC00000C7L)
+#define STATUS_PRINT_CANCELLED ((NTSTATUS)0xC00000C8L)
+#define STATUS_NETWORK_NAME_DELETED ((NTSTATUS)0xC00000C9L)
+#define STATUS_NETWORK_ACCESS_DENIED ((NTSTATUS)0xC00000CAL)
+#define STATUS_BAD_DEVICE_TYPE ((NTSTATUS)0xC00000CBL)
+#define STATUS_BAD_NETWORK_NAME ((NTSTATUS)0xC00000CCL)
+#define STATUS_TOO_MANY_NAMES ((NTSTATUS)0xC00000CDL)
+#define STATUS_TOO_MANY_SESSIONS ((NTSTATUS)0xC00000CEL)
+#define STATUS_SHARING_PAUSED ((NTSTATUS)0xC00000CFL)
+#define STATUS_REQUEST_NOT_ACCEPTED ((NTSTATUS)0xC00000D0L)
+#define STATUS_REDIRECTOR_PAUSED ((NTSTATUS)0xC00000D1L)
+#define STATUS_NET_WRITE_FAULT ((NTSTATUS)0xC00000D2L)
+#define STATUS_PROFILING_AT_LIMIT ((NTSTATUS)0xC00000D3L)
+#define STATUS_NOT_SAME_DEVICE ((NTSTATUS)0xC00000D4L)
+#define STATUS_FILE_RENAMED ((NTSTATUS)0xC00000D5L)
+#define STATUS_VIRTUAL_CIRCUIT_CLOSED ((NTSTATUS)0xC00000D6L)
+#define STATUS_NO_SECURITY_ON_OBJECT ((NTSTATUS)0xC00000D7L)
+#define STATUS_CANT_WAIT ((NTSTATUS)0xC00000D8L)
+#define STATUS_PIPE_EMPTY ((NTSTATUS)0xC00000D9L)
+#define STATUS_CANT_ACCESS_DOMAIN_INFO ((NTSTATUS)0xC00000DAL)
+#define STATUS_CANT_TERMINATE_SELF ((NTSTATUS)0xC00000DBL)
+#define STATUS_INVALID_SERVER_STATE ((NTSTATUS)0xC00000DCL)
+#define STATUS_INVALID_DOMAIN_STATE ((NTSTATUS)0xC00000DDL)
+#define STATUS_INVALID_DOMAIN_ROLE ((NTSTATUS)0xC00000DEL)
+#define STATUS_NO_SUCH_DOMAIN ((NTSTATUS)0xC00000DFL)
+#define STATUS_DOMAIN_EXISTS ((NTSTATUS)0xC00000E0L)
+#define STATUS_DOMAIN_LIMIT_EXCEEDED ((NTSTATUS)0xC00000E1L)
+#define STATUS_OPLOCK_NOT_GRANTED ((NTSTATUS)0xC00000E2L)
+#define STATUS_INVALID_OPLOCK_PROTOCOL ((NTSTATUS)0xC00000E3L)
+#define STATUS_INTERNAL_DB_CORRUPTION ((NTSTATUS)0xC00000E4L)
+#define STATUS_INTERNAL_ERROR ((NTSTATUS)0xC00000E5L)
+#define STATUS_GENERIC_NOT_MAPPED ((NTSTATUS)0xC00000E6L)
+#define STATUS_BAD_DESCRIPTOR_FORMAT ((NTSTATUS)0xC00000E7L)
+#define STATUS_INVALID_USER_BUFFER ((NTSTATUS)0xC00000E8L)
+#define STATUS_UNEXPECTED_IO_ERROR ((NTSTATUS)0xC00000E9L)
+#define STATUS_UNEXPECTED_MM_CREATE_ERR ((NTSTATUS)0xC00000EAL)
+#define STATUS_UNEXPECTED_MM_MAP_ERROR ((NTSTATUS)0xC00000EBL)
+#define STATUS_UNEXPECTED_MM_EXTEND_ERR ((NTSTATUS)0xC00000ECL)
+#define STATUS_NOT_LOGON_PROCESS ((NTSTATUS)0xC00000EDL)
+#define STATUS_LOGON_SESSION_EXISTS ((NTSTATUS)0xC00000EEL)
+#define STATUS_INVALID_PARAMETER_1 ((NTSTATUS)0xC00000EFL)
+#define STATUS_INVALID_PARAMETER_2 ((NTSTATUS)0xC00000F0L)
+#define STATUS_INVALID_PARAMETER_3 ((NTSTATUS)0xC00000F1L)
+#define STATUS_INVALID_PARAMETER_4 ((NTSTATUS)0xC00000F2L)
+#define STATUS_INVALID_PARAMETER_5 ((NTSTATUS)0xC00000F3L)
+#define STATUS_INVALID_PARAMETER_6 ((NTSTATUS)0xC00000F4L)
+#define STATUS_INVALID_PARAMETER_7 ((NTSTATUS)0xC00000F5L)
+#define STATUS_INVALID_PARAMETER_8 ((NTSTATUS)0xC00000F6L)
+#define STATUS_INVALID_PARAMETER_9 ((NTSTATUS)0xC00000F7L)
+#define STATUS_INVALID_PARAMETER_10 ((NTSTATUS)0xC00000F8L)
+#define STATUS_INVALID_PARAMETER_11 ((NTSTATUS)0xC00000F9L)
+#define STATUS_INVALID_PARAMETER_12 ((NTSTATUS)0xC00000FAL)
+#define STATUS_REDIRECTOR_NOT_STARTED ((NTSTATUS)0xC00000FBL)
+#define STATUS_REDIRECTOR_STARTED ((NTSTATUS)0xC00000FCL)
+#define STATUS_STACK_OVERFLOW ((NTSTATUS)0xC00000FDL)
+#define STATUS_NO_SUCH_PACKAGE ((NTSTATUS)0xC00000FEL)
+#define STATUS_BAD_FUNCTION_TABLE ((NTSTATUS)0xC00000FFL)
+#define STATUS_VARIABLE_NOT_FOUND ((NTSTATUS)0xC0000100L)
+#define STATUS_DIRECTORY_NOT_EMPTY ((NTSTATUS)0xC0000101L)
+#define STATUS_FILE_CORRUPT_ERROR ((NTSTATUS)0xC0000102L)
+#define STATUS_NOT_A_DIRECTORY ((NTSTATUS)0xC0000103L)
+#define STATUS_BAD_LOGON_SESSION_STATE ((NTSTATUS)0xC0000104L)
+#define STATUS_LOGON_SESSION_COLLISION ((NTSTATUS)0xC0000105L)
+#define STATUS_NAME_TOO_LONG ((NTSTATUS)0xC0000106L)
+#define STATUS_FILES_OPEN ((NTSTATUS)0xC0000107L)
+#define STATUS_CONNECTION_IN_USE ((NTSTATUS)0xC0000108L)
+#define STATUS_MESSAGE_NOT_FOUND ((NTSTATUS)0xC0000109L)
+#define STATUS_PROCESS_IS_TERMINATING ((NTSTATUS)0xC000010AL)
+#define STATUS_INVALID_LOGON_TYPE ((NTSTATUS)0xC000010BL)
+#define STATUS_NO_GUID_TRANSLATION ((NTSTATUS)0xC000010CL)
+#define STATUS_CANNOT_IMPERSONATE ((NTSTATUS)0xC000010DL)
+#define STATUS_IMAGE_ALREADY_LOADED ((NTSTATUS)0xC000010EL)
+#define STATUS_ABIOS_NOT_PRESENT ((NTSTATUS)0xC000010FL)
+#define STATUS_ABIOS_LID_NOT_EXIST ((NTSTATUS)0xC0000110L)
+#define STATUS_ABIOS_LID_ALREADY_OWNED ((NTSTATUS)0xC0000111L)
+#define STATUS_ABIOS_NOT_LID_OWNER ((NTSTATUS)0xC0000112L)
+#define STATUS_ABIOS_INVALID_COMMAND ((NTSTATUS)0xC0000113L)
+#define STATUS_ABIOS_INVALID_LID ((NTSTATUS)0xC0000114L)
+#define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE ((NTSTATUS)0xC0000115L)
+#define STATUS_ABIOS_INVALID_SELECTOR ((NTSTATUS)0xC0000116L)
+#define STATUS_NO_LDT ((NTSTATUS)0xC0000117L)
+#define STATUS_INVALID_LDT_SIZE ((NTSTATUS)0xC0000118L)
+#define STATUS_INVALID_LDT_OFFSET ((NTSTATUS)0xC0000119L)
+#define STATUS_INVALID_LDT_DESCRIPTOR ((NTSTATUS)0xC000011AL)
+#define STATUS_INVALID_IMAGE_NE_FORMAT ((NTSTATUS)0xC000011BL)
+#define STATUS_RXACT_INVALID_STATE ((NTSTATUS)0xC000011CL)
+#define STATUS_RXACT_COMMIT_FAILURE ((NTSTATUS)0xC000011DL)
+#define STATUS_MAPPED_FILE_SIZE_ZERO ((NTSTATUS)0xC000011EL)
+#define STATUS_TOO_MANY_OPENED_FILES ((NTSTATUS)0xC000011FL)
+#define STATUS_CANCELLED ((NTSTATUS)0xC0000120L)
+#define STATUS_CANNOT_DELETE ((NTSTATUS)0xC0000121L)
+#define STATUS_INVALID_COMPUTER_NAME ((NTSTATUS)0xC0000122L)
+#define STATUS_FILE_DELETED ((NTSTATUS)0xC0000123L)
+#define STATUS_SPECIAL_ACCOUNT ((NTSTATUS)0xC0000124L)
+#define STATUS_SPECIAL_GROUP ((NTSTATUS)0xC0000125L)
+#define STATUS_SPECIAL_USER ((NTSTATUS)0xC0000126L)
+#define STATUS_MEMBERS_PRIMARY_GROUP ((NTSTATUS)0xC0000127L)
+#define STATUS_FILE_CLOSED ((NTSTATUS)0xC0000128L)
+#define STATUS_TOO_MANY_THREADS ((NTSTATUS)0xC0000129L)
+#define STATUS_THREAD_NOT_IN_PROCESS ((NTSTATUS)0xC000012AL)
+#define STATUS_TOKEN_ALREADY_IN_USE ((NTSTATUS)0xC000012BL)
+#define STATUS_PAGEFILE_QUOTA_EXCEEDED ((NTSTATUS)0xC000012CL)
+#define STATUS_COMMITMENT_LIMIT ((NTSTATUS)0xC000012DL)
+#define STATUS_INVALID_IMAGE_LE_FORMAT ((NTSTATUS)0xC000012EL)
+#define STATUS_INVALID_IMAGE_NOT_MZ ((NTSTATUS)0xC000012FL)
+#define STATUS_INVALID_IMAGE_PROTECT ((NTSTATUS)0xC0000130L)
+#define STATUS_INVALID_IMAGE_WIN_16 ((NTSTATUS)0xC0000131L)
+#define STATUS_LOGON_SERVER_CONFLICT ((NTSTATUS)0xC0000132L)
+#define STATUS_TIME_DIFFERENCE_AT_DC ((NTSTATUS)0xC0000133L)
+#define STATUS_SYNCHRONIZATION_REQUIRED ((NTSTATUS)0xC0000134L)
+#define STATUS_DLL_NOT_FOUND ((NTSTATUS)0xC0000135L)
+#define STATUS_OPEN_FAILED ((NTSTATUS)0xC0000136L)
+#define STATUS_IO_PRIVILEGE_FAILED ((NTSTATUS)0xC0000137L)
+#define STATUS_ORDINAL_NOT_FOUND ((NTSTATUS)0xC0000138L)
+#define STATUS_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xC0000139L)
+#define STATUS_CONTROL_C_EXIT ((NTSTATUS)0xC000013AL)
+#define STATUS_LOCAL_DISCONNECT ((NTSTATUS)0xC000013BL)
+#define STATUS_REMOTE_DISCONNECT ((NTSTATUS)0xC000013CL)
+#define STATUS_REMOTE_RESOURCES ((NTSTATUS)0xC000013DL)
+#define STATUS_LINK_FAILED ((NTSTATUS)0xC000013EL)
+#define STATUS_LINK_TIMEOUT ((NTSTATUS)0xC000013FL)
+#define STATUS_INVALID_CONNECTION ((NTSTATUS)0xC0000140L)
+#define STATUS_INVALID_ADDRESS ((NTSTATUS)0xC0000141L)
+#define STATUS_DLL_INIT_FAILED ((NTSTATUS)0xC0000142L)
+#define STATUS_MISSING_SYSTEMFILE ((NTSTATUS)0xC0000143L)
+#define STATUS_UNHANDLED_EXCEPTION ((NTSTATUS)0xC0000144L)
+#define STATUS_APP_INIT_FAILURE ((NTSTATUS)0xC0000145L)
+#define STATUS_PAGEFILE_CREATE_FAILED ((NTSTATUS)0xC0000146L)
+#define STATUS_NO_PAGEFILE ((NTSTATUS)0xC0000147L)
+#define STATUS_INVALID_LEVEL ((NTSTATUS)0xC0000148L)
+#define STATUS_WRONG_PASSWORD_CORE ((NTSTATUS)0xC0000149L)
+#define STATUS_ILLEGAL_FLOAT_CONTEXT ((NTSTATUS)0xC000014AL)
+#define STATUS_PIPE_BROKEN ((NTSTATUS)0xC000014BL)
+#define STATUS_REGISTRY_CORRUPT ((NTSTATUS)0xC000014CL)
+#define STATUS_REGISTRY_IO_FAILED ((NTSTATUS)0xC000014DL)
+#define STATUS_NO_EVENT_PAIR ((NTSTATUS)0xC000014EL)
+#define STATUS_UNRECOGNIZED_VOLUME ((NTSTATUS)0xC000014FL)
+#define STATUS_SERIAL_NO_DEVICE_INITED ((NTSTATUS)0xC0000150L)
+#define STATUS_NO_SUCH_ALIAS ((NTSTATUS)0xC0000151L)
+#define STATUS_MEMBER_NOT_IN_ALIAS ((NTSTATUS)0xC0000152L)
+#define STATUS_MEMBER_IN_ALIAS ((NTSTATUS)0xC0000153L)
+#define STATUS_ALIAS_EXISTS ((NTSTATUS)0xC0000154L)
+#define STATUS_LOGON_NOT_GRANTED ((NTSTATUS)0xC0000155L)
+#define STATUS_TOO_MANY_SECRETS ((NTSTATUS)0xC0000156L)
+#define STATUS_SECRET_TOO_LONG ((NTSTATUS)0xC0000157L)
+#define STATUS_INTERNAL_DB_ERROR ((NTSTATUS)0xC0000158L)
+#define STATUS_FULLSCREEN_MODE ((NTSTATUS)0xC0000159L)
+#define STATUS_TOO_MANY_CONTEXT_IDS ((NTSTATUS)0xC000015AL)
+#define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS)0xC000015BL)
+#define STATUS_NOT_REGISTRY_FILE ((NTSTATUS)0xC000015CL)
+#define STATUS_NT_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xC000015DL)
+#define STATUS_DOMAIN_CTRLR_CONFIG_ERROR ((NTSTATUS)0xC000015EL)
+#define STATUS_FT_MISSING_MEMBER ((NTSTATUS)0xC000015FL)
+#define STATUS_ILL_FORMED_SERVICE_ENTRY ((NTSTATUS)0xC0000160L)
+#define STATUS_ILLEGAL_CHARACTER ((NTSTATUS)0xC0000161L)
+#define STATUS_UNMAPPABLE_CHARACTER ((NTSTATUS)0xC0000162L)
+#define STATUS_UNDEFINED_CHARACTER ((NTSTATUS)0xC0000163L)
+#define STATUS_FLOPPY_VOLUME ((NTSTATUS)0xC0000164L)
+#define STATUS_FLOPPY_ID_MARK_NOT_FOUND ((NTSTATUS)0xC0000165L)
+#define STATUS_FLOPPY_WRONG_CYLINDER ((NTSTATUS)0xC0000166L)
+#define STATUS_FLOPPY_UNKNOWN_ERROR ((NTSTATUS)0xC0000167L)
+#define STATUS_FLOPPY_BAD_REGISTERS ((NTSTATUS)0xC0000168L)
+#define STATUS_DISK_RECALIBRATE_FAILED ((NTSTATUS)0xC0000169L)
+#define STATUS_DISK_OPERATION_FAILED ((NTSTATUS)0xC000016AL)
+#define STATUS_DISK_RESET_FAILED ((NTSTATUS)0xC000016BL)
+#define STATUS_SHARED_IRQ_BUSY ((NTSTATUS)0xC000016CL)
+#define STATUS_FT_ORPHANING ((NTSTATUS)0xC000016DL)
+#define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT ((NTSTATUS)0xC000016EL)
+#define STATUS_PARTITION_FAILURE ((NTSTATUS)0xC0000172L)
+#define STATUS_INVALID_BLOCK_LENGTH ((NTSTATUS)0xC0000173L)
+#define STATUS_DEVICE_NOT_PARTITIONED ((NTSTATUS)0xC0000174L)
+#define STATUS_UNABLE_TO_LOCK_MEDIA ((NTSTATUS)0xC0000175L)
+#define STATUS_UNABLE_TO_UNLOAD_MEDIA ((NTSTATUS)0xC0000176L)
+#define STATUS_EOM_OVERFLOW ((NTSTATUS)0xC0000177L)
+#define STATUS_NO_MEDIA ((NTSTATUS)0xC0000178L)
+#define STATUS_NO_SUCH_MEMBER ((NTSTATUS)0xC000017AL)
+#define STATUS_INVALID_MEMBER ((NTSTATUS)0xC000017BL)
+#define STATUS_KEY_DELETED ((NTSTATUS)0xC000017CL)
+#define STATUS_NO_LOG_SPACE ((NTSTATUS)0xC000017DL)
+#define STATUS_TOO_MANY_SIDS ((NTSTATUS)0xC000017EL)
+#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xC000017FL)
+#define STATUS_KEY_HAS_CHILDREN ((NTSTATUS)0xC0000180L)
+#define STATUS_CHILD_MUST_BE_VOLATILE ((NTSTATUS)0xC0000181L)
+#define STATUS_DEVICE_CONFIGURATION_ERROR ((NTSTATUS)0xC0000182L)
+#define STATUS_DRIVER_INTERNAL_ERROR ((NTSTATUS)0xC0000183L)
+#define STATUS_INVALID_DEVICE_STATE ((NTSTATUS)0xC0000184L)
+#define STATUS_IO_DEVICE_ERROR ((NTSTATUS)0xC0000185L)
+#define STATUS_DEVICE_PROTOCOL_ERROR ((NTSTATUS)0xC0000186L)
+#define STATUS_BACKUP_CONTROLLER ((NTSTATUS)0xC0000187L)
+#define STATUS_LOG_FILE_FULL ((NTSTATUS)0xC0000188L)
+#define STATUS_TOO_LATE ((NTSTATUS)0xC0000189L)
+#define STATUS_NO_TRUST_LSA_SECRET ((NTSTATUS)0xC000018AL)
+#define STATUS_NO_TRUST_SAM_ACCOUNT ((NTSTATUS)0xC000018BL)
+#define STATUS_TRUSTED_DOMAIN_FAILURE ((NTSTATUS)0xC000018CL)
+#define STATUS_TRUSTED_RELATIONSHIP_FAILURE ((NTSTATUS)0xC000018DL)
+#define STATUS_EVENTLOG_FILE_CORRUPT ((NTSTATUS)0xC000018EL)
+#define STATUS_EVENTLOG_CANT_START ((NTSTATUS)0xC000018FL)
+#define STATUS_TRUST_FAILURE ((NTSTATUS)0xC0000190L)
+#define STATUS_MUTANT_LIMIT_EXCEEDED ((NTSTATUS)0xC0000191L)
+#define STATUS_NETLOGON_NOT_STARTED ((NTSTATUS)0xC0000192L)
+#define STATUS_ACCOUNT_EXPIRED ((NTSTATUS)0xC0000193L)
+#define STATUS_POSSIBLE_DEADLOCK ((NTSTATUS)0xC0000194L)
+#define STATUS_NETWORK_CREDENTIAL_CONFLICT ((NTSTATUS)0xC0000195L)
+#define STATUS_REMOTE_SESSION_LIMIT ((NTSTATUS)0xC0000196L)
+#define STATUS_EVENTLOG_FILE_CHANGED ((NTSTATUS)0xC0000197L)
+#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT ((NTSTATUS)0xC0000198L)
+#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT ((NTSTATUS)0xC0000199L)
+#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT ((NTSTATUS)0xC000019AL)
+#define STATUS_DOMAIN_TRUST_INCONSISTENT ((NTSTATUS)0xC000019BL)
+#define STATUS_FS_DRIVER_REQUIRED ((NTSTATUS)0xC000019CL)
+#define STATUS_NO_USER_SESSION_KEY ((NTSTATUS)0xC0000202L)
+#define STATUS_USER_SESSION_DELETED ((NTSTATUS)0xC0000203L)
+#define STATUS_RESOURCE_LANG_NOT_FOUND ((NTSTATUS)0xC0000204L)
+#define STATUS_INSUFF_SERVER_RESOURCES ((NTSTATUS)0xC0000205L)
+#define STATUS_INVALID_BUFFER_SIZE ((NTSTATUS)0xC0000206L)
+#define STATUS_INVALID_ADDRESS_COMPONENT ((NTSTATUS)0xC0000207L)
+#define STATUS_INVALID_ADDRESS_WILDCARD ((NTSTATUS)0xC0000208L)
+#define STATUS_TOO_MANY_ADDRESSES ((NTSTATUS)0xC0000209L)
+#define STATUS_ADDRESS_ALREADY_EXISTS ((NTSTATUS)0xC000020AL)
+#define STATUS_ADDRESS_CLOSED ((NTSTATUS)0xC000020BL)
+#define STATUS_CONNECTION_DISCONNECTED ((NTSTATUS)0xC000020CL)
+#define STATUS_CONNECTION_RESET ((NTSTATUS)0xC000020DL)
+#define STATUS_TOO_MANY_NODES ((NTSTATUS)0xC000020EL)
+#define STATUS_TRANSACTION_ABORTED ((NTSTATUS)0xC000020FL)
+#define STATUS_TRANSACTION_TIMED_OUT ((NTSTATUS)0xC0000210L)
+#define STATUS_TRANSACTION_NO_RELEASE ((NTSTATUS)0xC0000211L)
+#define STATUS_TRANSACTION_NO_MATCH ((NTSTATUS)0xC0000212L)
+#define STATUS_TRANSACTION_RESPONDED ((NTSTATUS)0xC0000213L)
+#define STATUS_TRANSACTION_INVALID_ID ((NTSTATUS)0xC0000214L)
+#define STATUS_TRANSACTION_INVALID_TYPE ((NTSTATUS)0xC0000215L)
+#define STATUS_NOT_SERVER_SESSION ((NTSTATUS)0xC0000216L)
+#define STATUS_NOT_CLIENT_SESSION ((NTSTATUS)0xC0000217L)
+#define STATUS_CANNOT_LOAD_REGISTRY_FILE ((NTSTATUS)0xC0000218L)
+#define STATUS_DEBUG_ATTACH_FAILED ((NTSTATUS)0xC0000219L)
+#define STATUS_SYSTEM_PROCESS_TERMINATED ((NTSTATUS)0xC000021AL)
+#define STATUS_DATA_NOT_ACCEPTED ((NTSTATUS)0xC000021BL)
+#define STATUS_NO_BROWSER_SERVERS_FOUND ((NTSTATUS)0xC000021CL)
+#define STATUS_VDM_HARD_ERROR ((NTSTATUS)0xC000021DL)
+#define STATUS_DRIVER_CANCEL_TIMEOUT ((NTSTATUS)0xC000021EL)
+#define STATUS_REPLY_MESSAGE_MISMATCH ((NTSTATUS)0xC000021FL)
+#define STATUS_MAPPED_ALIGNMENT ((NTSTATUS)0xC0000220L)
+#define STATUS_IMAGE_CHECKSUM_MISMATCH ((NTSTATUS)0xC0000221L)
+#define STATUS_LOST_WRITEBEHIND_DATA ((NTSTATUS)0xC0000222L)
+#define STATUS_CLIENT_SERVER_PARAMETERS_INVALID ((NTSTATUS)0xC0000223L)
+#define STATUS_PASSWORD_MUST_CHANGE ((NTSTATUS)0xC0000224L)
+#define STATUS_NOT_FOUND ((NTSTATUS)0xC0000225L)
+#define STATUS_NOT_TINY_STREAM ((NTSTATUS)0xC0000226L)
+#define STATUS_RECOVERY_FAILURE ((NTSTATUS)0xC0000227L)
+#define STATUS_STACK_OVERFLOW_READ ((NTSTATUS)0xC0000228L)
+#define STATUS_FAIL_CHECK ((NTSTATUS)0xC0000229L)
+#define STATUS_DUPLICATE_OBJECTID ((NTSTATUS)0xC000022AL)
+#define STATUS_OBJECTID_EXISTS ((NTSTATUS)0xC000022BL)
+#define STATUS_CONVERT_TO_LARGE ((NTSTATUS)0xC000022CL)
+#define STATUS_RETRY ((NTSTATUS)0xC000022DL)
+#define STATUS_FOUND_OUT_OF_SCOPE ((NTSTATUS)0xC000022EL)
+#define STATUS_ALLOCATE_BUCKET ((NTSTATUS)0xC000022FL)
+#define STATUS_PROPSET_NOT_FOUND ((NTSTATUS)0xC0000230L)
+#define STATUS_MARSHALL_OVERFLOW ((NTSTATUS)0xC0000231L)
+#define STATUS_INVALID_VARIANT ((NTSTATUS)0xC0000232L)
+#define STATUS_DOMAIN_CONTROLLER_NOT_FOUND ((NTSTATUS)0xC0000233L)
+#define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS)0xC0000234L)
+#define STATUS_HANDLE_NOT_CLOSABLE ((NTSTATUS)0xC0000235L)
+#define STATUS_CONNECTION_REFUSED ((NTSTATUS)0xC0000236L)
+#define STATUS_GRACEFUL_DISCONNECT ((NTSTATUS)0xC0000237L)
+#define STATUS_ADDRESS_ALREADY_ASSOCIATED ((NTSTATUS)0xC0000238L)
+#define STATUS_ADDRESS_NOT_ASSOCIATED ((NTSTATUS)0xC0000239L)
+#define STATUS_CONNECTION_INVALID ((NTSTATUS)0xC000023AL)
+#define STATUS_CONNECTION_ACTIVE ((NTSTATUS)0xC000023BL)
+#define STATUS_NETWORK_UNREACHABLE ((NTSTATUS)0xC000023CL)
+#define STATUS_HOST_UNREACHABLE ((NTSTATUS)0xC000023DL)
+#define STATUS_PROTOCOL_UNREACHABLE ((NTSTATUS)0xC000023EL)
+#define STATUS_PORT_UNREACHABLE ((NTSTATUS)0xC000023FL)
+#define STATUS_REQUEST_ABORTED ((NTSTATUS)0xC0000240L)
+#define STATUS_CONNECTION_ABORTED ((NTSTATUS)0xC0000241L)
+#define STATUS_BAD_COMPRESSION_BUFFER ((NTSTATUS)0xC0000242L)
+#define STATUS_USER_MAPPED_FILE ((NTSTATUS)0xC0000243L)
+#define STATUS_AUDIT_FAILED ((NTSTATUS)0xC0000244L)
+#define STATUS_TIMER_RESOLUTION_NOT_SET ((NTSTATUS)0xC0000245L)
+#define STATUS_CONNECTION_COUNT_LIMIT ((NTSTATUS)0xC0000246L)
+#define STATUS_LOGIN_TIME_RESTRICTION ((NTSTATUS)0xC0000247L)
+#define STATUS_LOGIN_WKSTA_RESTRICTION ((NTSTATUS)0xC0000248L)
+#define STATUS_IMAGE_MP_UP_MISMATCH ((NTSTATUS)0xC0000249L)
+#define STATUS_INSUFFICIENT_LOGON_INFO ((NTSTATUS)0xC0000250L)
+#define STATUS_BAD_DLL_ENTRYPOINT ((NTSTATUS)0xC0000251L)
+#define STATUS_BAD_SERVICE_ENTRYPOINT ((NTSTATUS)0xC0000252L)
+#define STATUS_LPC_REPLY_LOST ((NTSTATUS)0xC0000253L)
+#define STATUS_IP_ADDRESS_CONFLICT1 ((NTSTATUS)0xC0000254L)
+#define STATUS_IP_ADDRESS_CONFLICT2 ((NTSTATUS)0xC0000255L)
+#define STATUS_REGISTRY_QUOTA_LIMIT ((NTSTATUS)0xC0000256L)
+#define STATUS_PATH_NOT_COVERED ((NTSTATUS)0xC0000257L)
+#define STATUS_NO_CALLBACK_ACTIVE ((NTSTATUS)0xC0000258L)
+#define STATUS_LICENSE_QUOTA_EXCEEDED ((NTSTATUS)0xC0000259L)
+#define STATUS_PWD_TOO_SHORT ((NTSTATUS)0xC000025AL)
+#define STATUS_PWD_TOO_RECENT ((NTSTATUS)0xC000025BL)
+#define STATUS_PWD_HISTORY_CONFLICT ((NTSTATUS)0xC000025CL)
+#define STATUS_PLUGPLAY_NO_DEVICE ((NTSTATUS)0xC000025EL)
+#define STATUS_UNSUPPORTED_COMPRESSION ((NTSTATUS)0xC000025FL)
+#define STATUS_INVALID_HW_PROFILE ((NTSTATUS)0xC0000260L)
+#define STATUS_INVALID_PLUGPLAY_DEVICE_PATH ((NTSTATUS)0xC0000261L)
+#define STATUS_DRIVER_ORDINAL_NOT_FOUND ((NTSTATUS)0xC0000262L)
+#define STATUS_DRIVER_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xC0000263L)
+#define STATUS_RESOURCE_NOT_OWNED ((NTSTATUS)0xC0000264L)
+#define STATUS_TOO_MANY_LINKS ((NTSTATUS)0xC0000265L)
+#define STATUS_QUOTA_LIST_INCONSISTENT ((NTSTATUS)0xC0000266L)
+#define STATUS_FILE_IS_OFFLINE ((NTSTATUS)0xC0000267L)
+#define STATUS_EVALUATION_EXPIRATION ((NTSTATUS)0xC0000268L)
+#define STATUS_ILLEGAL_DLL_RELOCATION ((NTSTATUS)0xC0000269L)
+#define STATUS_LICENSE_VIOLATION ((NTSTATUS)0xC000026AL)
+#define STATUS_DLL_INIT_FAILED_LOGOFF ((NTSTATUS)0xC000026BL)
+#define STATUS_DRIVER_UNABLE_TO_LOAD ((NTSTATUS)0xC000026CL)
+#define STATUS_DFS_UNAVAILABLE ((NTSTATUS)0xC000026DL)
+#define STATUS_VOLUME_DISMOUNTED ((NTSTATUS)0xC000026EL)
+#define STATUS_WX86_INTERNAL_ERROR ((NTSTATUS)0xC000026FL)
+#define STATUS_WX86_FLOAT_STACK_CHECK ((NTSTATUS)0xC0000270L)
+#define STATUS_VALIDATE_CONTINUE ((NTSTATUS)0xC0000271L)
+#define STATUS_NO_MATCH ((NTSTATUS)0xC0000272L)
+#define STATUS_NO_MORE_MATCHES ((NTSTATUS)0xC0000273L)
+#define STATUS_NOT_A_REPARSE_POINT ((NTSTATUS)0xC0000275L)
+#define STATUS_IO_REPARSE_TAG_INVALID ((NTSTATUS)0xC0000276L)
+#define STATUS_IO_REPARSE_TAG_MISMATCH ((NTSTATUS)0xC0000277L)
+#define STATUS_IO_REPARSE_DATA_INVALID ((NTSTATUS)0xC0000278L)
+#define STATUS_IO_REPARSE_TAG_NOT_HANDLED ((NTSTATUS)0xC0000279L)
+#define STATUS_REPARSE_POINT_NOT_RESOLVED ((NTSTATUS)0xC0000280L)
+#define STATUS_DIRECTORY_IS_A_REPARSE_POINT ((NTSTATUS)0xC0000281L)
+#define STATUS_RANGE_LIST_CONFLICT ((NTSTATUS)0xC0000282L)
+#define STATUS_SOURCE_ELEMENT_EMPTY ((NTSTATUS)0xC0000283L)
+#define STATUS_DESTINATION_ELEMENT_FULL ((NTSTATUS)0xC0000284L)
+#define STATUS_ILLEGAL_ELEMENT_ADDRESS ((NTSTATUS)0xC0000285L)
+#define STATUS_MAGAZINE_NOT_PRESENT ((NTSTATUS)0xC0000286L)
+#define STATUS_REINITIALIZATION_NEEDED ((NTSTATUS)0xC0000287L)
+#define STATUS_DEVICE_REQUIRES_CLEANING ((NTSTATUS)0x80000288L)
+#define STATUS_DEVICE_DOOR_OPEN ((NTSTATUS)0x80000289L)
+#define STATUS_ENCRYPTION_FAILED ((NTSTATUS)0xC000028AL)
+#define STATUS_DECRYPTION_FAILED ((NTSTATUS)0xC000028BL)
+#define STATUS_RANGE_NOT_FOUND ((NTSTATUS)0xC000028CL)
+#define STATUS_NO_RECOVERY_POLICY ((NTSTATUS)0xC000028DL)
+#define STATUS_NO_EFS ((NTSTATUS)0xC000028EL)
+#define STATUS_WRONG_EFS ((NTSTATUS)0xC000028FL)
+#define STATUS_NO_USER_KEYS ((NTSTATUS)0xC0000290L)
+#define STATUS_FILE_NOT_ENCRYPTED ((NTSTATUS)0xC0000291L)
+#define STATUS_NOT_EXPORT_FORMAT ((NTSTATUS)0xC0000292L)
+#define STATUS_FILE_ENCRYPTED ((NTSTATUS)0xC0000293L)
+#define STATUS_WAKE_SYSTEM ((NTSTATUS)0x40000294L)
+#define STATUS_WMI_GUID_NOT_FOUND ((NTSTATUS)0xC0000295L)
+#define STATUS_WMI_INSTANCE_NOT_FOUND ((NTSTATUS)0xC0000296L)
+#define STATUS_WMI_ITEMID_NOT_FOUND ((NTSTATUS)0xC0000297L)
+#define STATUS_WMI_TRY_AGAIN ((NTSTATUS)0xC0000298L)
+#define STATUS_SHARED_POLICY ((NTSTATUS)0xC0000299L)
+#define STATUS_POLICY_OBJECT_NOT_FOUND ((NTSTATUS)0xC000029AL)
+#define STATUS_POLICY_ONLY_IN_DS ((NTSTATUS)0xC000029BL)
+#define STATUS_VOLUME_NOT_UPGRADED ((NTSTATUS)0xC000029CL)
+#define STATUS_REMOTE_STORAGE_NOT_ACTIVE ((NTSTATUS)0xC000029DL)
+#define STATUS_REMOTE_STORAGE_MEDIA_ERROR ((NTSTATUS)0xC000029EL)
+#define STATUS_NO_TRACKING_SERVICE ((NTSTATUS)0xC000029FL)
+#define STATUS_SERVER_SID_MISMATCH ((NTSTATUS)0xC00002A0L)
+#define STATUS_DS_NO_ATTRIBUTE_OR_VALUE ((NTSTATUS)0xC00002A1L)
+#define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX ((NTSTATUS)0xC00002A2L)
+#define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED ((NTSTATUS)0xC00002A3L)
+#define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS ((NTSTATUS)0xC00002A4L)
+#define STATUS_DS_BUSY ((NTSTATUS)0xC00002A5L)
+#define STATUS_DS_UNAVAILABLE ((NTSTATUS)0xC00002A6L)
+#define STATUS_DS_NO_RIDS_ALLOCATED ((NTSTATUS)0xC00002A7L)
+#define STATUS_DS_NO_MORE_RIDS ((NTSTATUS)0xC00002A8L)
+#define STATUS_DS_INCORRECT_ROLE_OWNER ((NTSTATUS)0xC00002A9L)
+#define STATUS_DS_RIDMGR_INIT_ERROR ((NTSTATUS)0xC00002AAL)
+#define STATUS_DS_OBJ_CLASS_VIOLATION ((NTSTATUS)0xC00002ABL)
+#define STATUS_DS_CANT_ON_NON_LEAF ((NTSTATUS)0xC00002ACL)
+#define STATUS_DS_CANT_ON_RDN ((NTSTATUS)0xC00002ADL)
+#define STATUS_DS_CANT_MOD_OBJ_CLASS ((NTSTATUS)0xC00002AEL)
+#define STATUS_DS_CROSS_DOM_MOVE_FAILED ((NTSTATUS)0xC00002AFL)
+#define STATUS_DS_GC_NOT_AVAILABLE ((NTSTATUS)0xC00002B0L)
+#define STATUS_DIRECTORY_SERVICE_REQUIRED ((NTSTATUS)0xC00002B1L)
+#define STATUS_REPARSE_ATTRIBUTE_CONFLICT ((NTSTATUS)0xC00002B2L)
+#define STATUS_CANT_ENABLE_DENY_ONLY ((NTSTATUS)0xC00002B3L)
+#define STATUS_FLOAT_MULTIPLE_FAULTS ((NTSTATUS)0xC00002B4L)
+#define STATUS_FLOAT_MULTIPLE_TRAPS ((NTSTATUS)0xC00002B5L)
+#define STATUS_DEVICE_REMOVED ((NTSTATUS)0xC00002B6L)
+#define STATUS_JOURNAL_DELETE_IN_PROGRESS ((NTSTATUS)0xC00002B7L)
+#define STATUS_JOURNAL_NOT_ACTIVE ((NTSTATUS)0xC00002B8L)
+#define STATUS_NOINTERFACE ((NTSTATUS)0xC00002B9L)
+#define STATUS_DS_ADMIN_LIMIT_EXCEEDED ((NTSTATUS)0xC00002C1L)
+#define STATUS_DRIVER_FAILED_SLEEP ((NTSTATUS)0xC00002C2L)
+#define STATUS_MUTUAL_AUTHENTICATION_FAILED ((NTSTATUS)0xC00002C3L)
+#define STATUS_CORRUPT_SYSTEM_FILE ((NTSTATUS)0xC00002C4L)
+#define STATUS_DATATYPE_MISALIGNMENT_ERROR ((NTSTATUS)0xC00002C5L)
+#define STATUS_WMI_READ_ONLY ((NTSTATUS)0xC00002C6L)
+#define STATUS_WMI_SET_FAILURE ((NTSTATUS)0xC00002C7L)
+#define STATUS_COMMITMENT_MINIMUM ((NTSTATUS)0xC00002C8L)
+#define STATUS_REG_NAT_CONSUMPTION ((NTSTATUS)0xC00002C9L)
+#define STATUS_TRANSPORT_FULL ((NTSTATUS)0xC00002CAL)
+#define STATUS_DS_SAM_INIT_FAILURE ((NTSTATUS)0xC00002CBL)
+#define STATUS_ONLY_IF_CONNECTED ((NTSTATUS)0xC00002CCL)
+#define STATUS_DS_SENSITIVE_GROUP_VIOLATION ((NTSTATUS)0xC00002CDL)
+#define STATUS_PNP_RESTART_ENUMERATION ((NTSTATUS)0xC00002CEL)
+#define STATUS_JOURNAL_ENTRY_DELETED ((NTSTATUS)0xC00002CFL)
+#define STATUS_DS_CANT_MOD_PRIMARYGROUPID ((NTSTATUS)0xC00002D0L)
+#define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE ((NTSTATUS)0xC00002D1L)
+#define STATUS_PNP_REBOOT_REQUIRED ((NTSTATUS)0xC00002D2L)
+#define STATUS_POWER_STATE_INVALID ((NTSTATUS)0xC00002D3L)
+#define STATUS_DS_INVALID_GROUP_TYPE ((NTSTATUS)0xC00002D4L)
+#define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN ((NTSTATUS)0xC00002D5L)
+#define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN ((NTSTATUS)0xC00002D6L)
+#define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS)0xC00002D7L)
+#define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS)0xC00002D8L)
+#define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS)0xC00002D9L)
+#define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER ((NTSTATUS)0xC00002DAL)
+#define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER ((NTSTATUS)0xC00002DBL)
+#define STATUS_DS_HAVE_PRIMARY_MEMBERS ((NTSTATUS)0xC00002DCL)
+#define STATUS_WMI_NOT_SUPPORTED ((NTSTATUS)0xC00002DDL)
+#define STATUS_INSUFFICIENT_POWER ((NTSTATUS)0xC00002DEL)
+#define STATUS_SAM_NEED_BOOTKEY_PASSWORD ((NTSTATUS)0xC00002DFL)
+#define STATUS_SAM_NEED_BOOTKEY_FLOPPY ((NTSTATUS)0xC00002E0L)
+#define STATUS_DS_CANT_START ((NTSTATUS)0xC00002E1L)
+#define STATUS_DS_INIT_FAILURE ((NTSTATUS)0xC00002E2L)
+#define STATUS_SAM_INIT_FAILURE ((NTSTATUS)0xC00002E3L)
+#define STATUS_DS_GC_REQUIRED ((NTSTATUS)0xC00002E4L)
+#define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY ((NTSTATUS)0xC00002E5L)
+#define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS ((NTSTATUS)0xC00002E6L)
+#define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED ((NTSTATUS)0xC00002E7L)
+#define STATUS_MULTIPLE_FAULT_VIOLATION ((NTSTATUS)0xC00002E8L)
+#define STATUS_CURRENT_DOMAIN_NOT_ALLOWED ((NTSTATUS)0xC00002E9L)
+#define STATUS_CANNOT_MAKE ((NTSTATUS)0xC00002EAL)
+#define STATUS_SYSTEM_SHUTDOWN ((NTSTATUS)0xC00002EBL)
+#define STATUS_DS_INIT_FAILURE_CONSOLE ((NTSTATUS)0xC00002ECL)
+#define STATUS_DS_SAM_INIT_FAILURE_CONSOLE ((NTSTATUS)0xC00002EDL)
+#define STATUS_UNFINISHED_CONTEXT_DELETED ((NTSTATUS)0xC00002EEL)
+#define STATUS_NO_TGT_REPLY ((NTSTATUS)0xC00002EFL)
+#define STATUS_OBJECTID_NOT_FOUND ((NTSTATUS)0xC00002F0L)
+#define STATUS_NO_IP_ADDRESSES ((NTSTATUS)0xC00002F1L)
+#define STATUS_WRONG_CREDENTIAL_HANDLE ((NTSTATUS)0xC00002F2L)
+#define STATUS_CRYPTO_SYSTEM_INVALID ((NTSTATUS)0xC00002F3L)
+#define STATUS_MAX_REFERRALS_EXCEEDED ((NTSTATUS)0xC00002F4L)
+#define STATUS_MUST_BE_KDC ((NTSTATUS)0xC00002F5L)
+#define STATUS_STRONG_CRYPTO_NOT_SUPPORTED ((NTSTATUS)0xC00002F6L)
+#define STATUS_TOO_MANY_PRINCIPALS ((NTSTATUS)0xC00002F7L)
+#define STATUS_NO_PA_DATA ((NTSTATUS)0xC00002F8L)
+#define STATUS_PKINIT_NAME_MISMATCH ((NTSTATUS)0xC00002F9L)
+#define STATUS_SMARTCARD_LOGON_REQUIRED ((NTSTATUS)0xC00002FAL)
+#define STATUS_KDC_INVALID_REQUEST ((NTSTATUS)0xC00002FBL)
+#define STATUS_KDC_UNABLE_TO_REFER ((NTSTATUS)0xC00002FCL)
+#define STATUS_KDC_UNKNOWN_ETYPE ((NTSTATUS)0xC00002FDL)
+#define STATUS_SHUTDOWN_IN_PROGRESS ((NTSTATUS)0xC00002FEL)
+#define STATUS_SERVER_SHUTDOWN_IN_PROGRESS ((NTSTATUS)0xC00002FFL)
+#define STATUS_NOT_SUPPORTED_ON_SBS ((NTSTATUS)0xC0000300L)
+#define STATUS_WMI_GUID_DISCONNECTED ((NTSTATUS)0xC0000301L)
+#define STATUS_WMI_ALREADY_DISABLED ((NTSTATUS)0xC0000302L)
+#define STATUS_WMI_ALREADY_ENABLED ((NTSTATUS)0xC0000303L)
+#define STATUS_MFT_TOO_FRAGMENTED ((NTSTATUS)0xC0000304L)
+#define STATUS_COPY_PROTECTION_FAILURE ((NTSTATUS)0xC0000305L)
+#define STATUS_CSS_AUTHENTICATION_FAILURE ((NTSTATUS)0xC0000306L)
+#define STATUS_CSS_KEY_NOT_PRESENT ((NTSTATUS)0xC0000307L)
+#define STATUS_CSS_KEY_NOT_ESTABLISHED ((NTSTATUS)0xC0000308L)
+#define STATUS_CSS_SCRAMBLED_SECTOR ((NTSTATUS)0xC0000309L)
+#define STATUS_CSS_REGION_MISMATCH ((NTSTATUS)0xC000030AL)
+#define STATUS_CSS_RESETS_EXHAUSTED ((NTSTATUS)0xC000030BL)
+#define STATUS_PKINIT_FAILURE ((NTSTATUS)0xC0000320L)
+#define STATUS_SMARTCARD_SUBSYSTEM_FAILURE ((NTSTATUS)0xC0000321L)
+#define STATUS_NO_KERB_KEY ((NTSTATUS)0xC0000322L)
+#define STATUS_HOST_DOWN ((NTSTATUS)0xC0000350L)
+#define STATUS_UNSUPPORTED_PREAUTH ((NTSTATUS)0xC0000351L)
+#define STATUS_EFS_ALG_BLOB_TOO_BIG ((NTSTATUS)0xC0000352L)
+#define STATUS_PORT_NOT_SET ((NTSTATUS)0xC0000353L)
+#define STATUS_DEBUGGER_INACTIVE ((NTSTATUS)0xC0000354L)
+#define STATUS_DS_VERSION_CHECK_FAILURE ((NTSTATUS)0xC0000355L)
+#define STATUS_AUDITING_DISABLED ((NTSTATUS)0xC0000356L)
+#define STATUS_PRENT4_MACHINE_ACCOUNT ((NTSTATUS)0xC0000357L)
+#define STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS)0xC0000358L)
+#define STATUS_INVALID_IMAGE_WIN_32 ((NTSTATUS)0xC0000359L)
+#define STATUS_INVALID_IMAGE_WIN_64 ((NTSTATUS)0xC000035AL)
+#define STATUS_BAD_BINDINGS ((NTSTATUS)0xC000035BL)
+#define STATUS_NETWORK_SESSION_EXPIRED ((NTSTATUS)0xC000035CL)
+#define STATUS_APPHELP_BLOCK ((NTSTATUS)0xC000035DL)
+#define STATUS_ALL_SIDS_FILTERED ((NTSTATUS)0xC000035EL)
+#define STATUS_NOT_SAFE_MODE_DRIVER ((NTSTATUS)0xC000035FL)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT ((NTSTATUS)0xC0000361L)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_PATH ((NTSTATUS)0xC0000362L)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER ((NTSTATUS)0xC0000363L)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_OTHER ((NTSTATUS)0xC0000364L)
+#define STATUS_FAILED_DRIVER_ENTRY ((NTSTATUS)0xC0000365L)
+#define STATUS_DEVICE_ENUMERATION_ERROR ((NTSTATUS)0xC0000366L)
+#define STATUS_WAIT_FOR_OPLOCK ((NTSTATUS)0x00000367L)
+#define STATUS_MOUNT_POINT_NOT_RESOLVED ((NTSTATUS)0xC0000368L)
+#define STATUS_INVALID_DEVICE_OBJECT_PARAMETER ((NTSTATUS)0xC0000369L)
+#define STATUS_MCA_OCCURED ((NTSTATUS)0xC000036AL)
+#define STATUS_DRIVER_BLOCKED_CRITICAL ((NTSTATUS)0xC000036BL)
+#define STATUS_DRIVER_BLOCKED ((NTSTATUS)0xC000036CL)
+#define STATUS_DRIVER_DATABASE_ERROR ((NTSTATUS)0xC000036DL)
+#define STATUS_SYSTEM_HIVE_TOO_LARGE ((NTSTATUS)0xC000036EL)
+#define STATUS_INVALID_IMPORT_OF_NON_DLL ((NTSTATUS)0xC000036FL)
+#define STATUS_DS_SHUTTING_DOWN ((NTSTATUS)0x40000370L)
+#define STATUS_SMARTCARD_WRONG_PIN ((NTSTATUS)0xC0000380L)
+#define STATUS_SMARTCARD_CARD_BLOCKED ((NTSTATUS)0xC0000381L)
+#define STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED ((NTSTATUS)0xC0000382L)
+#define STATUS_SMARTCARD_NO_CARD ((NTSTATUS)0xC0000383L)
+#define STATUS_SMARTCARD_NO_KEY_CONTAINER ((NTSTATUS)0xC0000384L)
+#define STATUS_SMARTCARD_NO_CERTIFICATE ((NTSTATUS)0xC0000385L)
+#define STATUS_SMARTCARD_NO_KEYSET ((NTSTATUS)0xC0000386L)
+#define STATUS_SMARTCARD_IO_ERROR ((NTSTATUS)0xC0000387L)
+#define STATUS_DOWNGRADE_DETECTED ((NTSTATUS)0xC0000388L)
+#define STATUS_SMARTCARD_CERT_REVOKED ((NTSTATUS)0xC0000389L)
+#define STATUS_ISSUING_CA_UNTRUSTED ((NTSTATUS)0xC000038AL)
+#define STATUS_REVOCATION_OFFLINE_C ((NTSTATUS)0xC000038BL)
+#define STATUS_PKINIT_CLIENT_FAILURE ((NTSTATUS)0xC000038CL)
+#define STATUS_SMARTCARD_CERT_EXPIRED ((NTSTATUS)0xC000038DL)
+#define STATUS_DRIVER_FAILED_PRIOR_UNLOAD ((NTSTATUS)0xC000038EL)
+#define STATUS_ASSERTION_FAILURE ((NTSTATUS)0xC0000420L)
+#define STATUS_CALLBACK_POP_STACK ((NTSTATUS)0xC0000423L)
+#define STATUS_WOW_ASSERTION ((NTSTATUS)0xC0009898L)
+#define RPC_NT_INVALID_STRING_BINDING ((NTSTATUS)0xC0020001L)
+#define RPC_NT_WRONG_KIND_OF_BINDING ((NTSTATUS)0xC0020002L)
+#define RPC_NT_INVALID_BINDING ((NTSTATUS)0xC0020003L)
+#define RPC_NT_PROTSEQ_NOT_SUPPORTED ((NTSTATUS)0xC0020004L)
+#define RPC_NT_INVALID_RPC_PROTSEQ ((NTSTATUS)0xC0020005L)
+#define RPC_NT_INVALID_STRING_UUID ((NTSTATUS)0xC0020006L)
+#define RPC_NT_INVALID_ENDPOINT_FORMAT ((NTSTATUS)0xC0020007L)
+#define RPC_NT_INVALID_NET_ADDR ((NTSTATUS)0xC0020008L)
+#define RPC_NT_NO_ENDPOINT_FOUND ((NTSTATUS)0xC0020009L)
+#define RPC_NT_INVALID_TIMEOUT ((NTSTATUS)0xC002000AL)
+#define RPC_NT_OBJECT_NOT_FOUND ((NTSTATUS)0xC002000BL)
+#define RPC_NT_ALREADY_REGISTERED ((NTSTATUS)0xC002000CL)
+#define RPC_NT_TYPE_ALREADY_REGISTERED ((NTSTATUS)0xC002000DL)
+#define RPC_NT_ALREADY_LISTENING ((NTSTATUS)0xC002000EL)
+#define RPC_NT_NO_PROTSEQS_REGISTERED ((NTSTATUS)0xC002000FL)
+#define RPC_NT_NOT_LISTENING ((NTSTATUS)0xC0020010L)
+#define RPC_NT_UNKNOWN_MGR_TYPE ((NTSTATUS)0xC0020011L)
+#define RPC_NT_UNKNOWN_IF ((NTSTATUS)0xC0020012L)
+#define RPC_NT_NO_BINDINGS ((NTSTATUS)0xC0020013L)
+#define RPC_NT_NO_PROTSEQS ((NTSTATUS)0xC0020014L)
+#define RPC_NT_CANT_CREATE_ENDPOINT ((NTSTATUS)0xC0020015L)
+#define RPC_NT_OUT_OF_RESOURCES ((NTSTATUS)0xC0020016L)
+#define RPC_NT_SERVER_UNAVAILABLE ((NTSTATUS)0xC0020017L)
+#define RPC_NT_SERVER_TOO_BUSY ((NTSTATUS)0xC0020018L)
+#define RPC_NT_INVALID_NETWORK_OPTIONS ((NTSTATUS)0xC0020019L)
+#define RPC_NT_NO_CALL_ACTIVE ((NTSTATUS)0xC002001AL)
+#define RPC_NT_CALL_FAILED ((NTSTATUS)0xC002001BL)
+#define RPC_NT_CALL_FAILED_DNE ((NTSTATUS)0xC002001CL)
+#define RPC_NT_PROTOCOL_ERROR ((NTSTATUS)0xC002001DL)
+#define RPC_NT_UNSUPPORTED_TRANS_SYN ((NTSTATUS)0xC002001FL)
+#define RPC_NT_UNSUPPORTED_TYPE ((NTSTATUS)0xC0020021L)
+#define RPC_NT_INVALID_TAG ((NTSTATUS)0xC0020022L)
+#define RPC_NT_INVALID_BOUND ((NTSTATUS)0xC0020023L)
+#define RPC_NT_NO_ENTRY_NAME ((NTSTATUS)0xC0020024L)
+#define RPC_NT_INVALID_NAME_SYNTAX ((NTSTATUS)0xC0020025L)
+#define RPC_NT_UNSUPPORTED_NAME_SYNTAX ((NTSTATUS)0xC0020026L)
+#define RPC_NT_UUID_NO_ADDRESS ((NTSTATUS)0xC0020028L)
+#define RPC_NT_DUPLICATE_ENDPOINT ((NTSTATUS)0xC0020029L)
+#define RPC_NT_UNKNOWN_AUTHN_TYPE ((NTSTATUS)0xC002002AL)
+#define RPC_NT_MAX_CALLS_TOO_SMALL ((NTSTATUS)0xC002002BL)
+#define RPC_NT_STRING_TOO_LONG ((NTSTATUS)0xC002002CL)
+#define RPC_NT_PROTSEQ_NOT_FOUND ((NTSTATUS)0xC002002DL)
+#define RPC_NT_PROCNUM_OUT_OF_RANGE ((NTSTATUS)0xC002002EL)
+#define RPC_NT_BINDING_HAS_NO_AUTH ((NTSTATUS)0xC002002FL)
+#define RPC_NT_UNKNOWN_AUTHN_SERVICE ((NTSTATUS)0xC0020030L)
+#define RPC_NT_UNKNOWN_AUTHN_LEVEL ((NTSTATUS)0xC0020031L)
+#define RPC_NT_INVALID_AUTH_IDENTITY ((NTSTATUS)0xC0020032L)
+#define RPC_NT_UNKNOWN_AUTHZ_SERVICE ((NTSTATUS)0xC0020033L)
+#define EPT_NT_INVALID_ENTRY ((NTSTATUS)0xC0020034L)
+#define EPT_NT_CANT_PERFORM_OP ((NTSTATUS)0xC0020035L)
+#define EPT_NT_NOT_REGISTERED ((NTSTATUS)0xC0020036L)
+#define RPC_NT_NOTHING_TO_EXPORT ((NTSTATUS)0xC0020037L)
+#define RPC_NT_INCOMPLETE_NAME ((NTSTATUS)0xC0020038L)
+#define RPC_NT_INVALID_VERS_OPTION ((NTSTATUS)0xC0020039L)
+#define RPC_NT_NO_MORE_MEMBERS ((NTSTATUS)0xC002003AL)
+#define RPC_NT_NOT_ALL_OBJS_UNEXPORTED ((NTSTATUS)0xC002003BL)
+#define RPC_NT_INTERFACE_NOT_FOUND ((NTSTATUS)0xC002003CL)
+#define RPC_NT_ENTRY_ALREADY_EXISTS ((NTSTATUS)0xC002003DL)
+#define RPC_NT_ENTRY_NOT_FOUND ((NTSTATUS)0xC002003EL)
+#define RPC_NT_NAME_SERVICE_UNAVAILABLE ((NTSTATUS)0xC002003FL)
+#define RPC_NT_INVALID_NAF_ID ((NTSTATUS)0xC0020040L)
+#define RPC_NT_CANNOT_SUPPORT ((NTSTATUS)0xC0020041L)
+#define RPC_NT_NO_CONTEXT_AVAILABLE ((NTSTATUS)0xC0020042L)
+#define RPC_NT_INTERNAL_ERROR ((NTSTATUS)0xC0020043L)
+#define RPC_NT_ZERO_DIVIDE ((NTSTATUS)0xC0020044L)
+#define RPC_NT_ADDRESS_ERROR ((NTSTATUS)0xC0020045L)
+#define RPC_NT_FP_DIV_ZERO ((NTSTATUS)0xC0020046L)
+#define RPC_NT_FP_UNDERFLOW ((NTSTATUS)0xC0020047L)
+#define RPC_NT_FP_OVERFLOW ((NTSTATUS)0xC0020048L)
+#define RPC_NT_NO_MORE_ENTRIES ((NTSTATUS)0xC0030001L)
+#define RPC_NT_SS_CHAR_TRANS_OPEN_FAIL ((NTSTATUS)0xC0030002L)
+#define RPC_NT_SS_CHAR_TRANS_SHORT_FILE ((NTSTATUS)0xC0030003L)
+#define RPC_NT_SS_IN_NULL_CONTEXT ((NTSTATUS)0xC0030004L)
+#define RPC_NT_SS_CONTEXT_MISMATCH ((NTSTATUS)0xC0030005L)
+#define RPC_NT_SS_CONTEXT_DAMAGED ((NTSTATUS)0xC0030006L)
+#define RPC_NT_SS_HANDLES_MISMATCH ((NTSTATUS)0xC0030007L)
+#define RPC_NT_SS_CANNOT_GET_CALL_HANDLE ((NTSTATUS)0xC0030008L)
+#define RPC_NT_NULL_REF_POINTER ((NTSTATUS)0xC0030009L)
+#define RPC_NT_ENUM_VALUE_OUT_OF_RANGE ((NTSTATUS)0xC003000AL)
+#define RPC_NT_BYTE_COUNT_TOO_SMALL ((NTSTATUS)0xC003000BL)
+#define RPC_NT_BAD_STUB_DATA ((NTSTATUS)0xC003000CL)
+#define RPC_NT_CALL_IN_PROGRESS ((NTSTATUS)0xC0020049L)
+#define RPC_NT_NO_MORE_BINDINGS ((NTSTATUS)0xC002004AL)
+#define RPC_NT_GROUP_MEMBER_NOT_FOUND ((NTSTATUS)0xC002004BL)
+#define EPT_NT_CANT_CREATE ((NTSTATUS)0xC002004CL)
+#define RPC_NT_INVALID_OBJECT ((NTSTATUS)0xC002004DL)
+#define RPC_NT_NO_INTERFACES ((NTSTATUS)0xC002004FL)
+#define RPC_NT_CALL_CANCELLED ((NTSTATUS)0xC0020050L)
+#define RPC_NT_BINDING_INCOMPLETE ((NTSTATUS)0xC0020051L)
+#define RPC_NT_COMM_FAILURE ((NTSTATUS)0xC0020052L)
+#define RPC_NT_UNSUPPORTED_AUTHN_LEVEL ((NTSTATUS)0xC0020053L)
+#define RPC_NT_NO_PRINC_NAME ((NTSTATUS)0xC0020054L)
+#define RPC_NT_NOT_RPC_ERROR ((NTSTATUS)0xC0020055L)
+#define RPC_NT_UUID_LOCAL_ONLY ((NTSTATUS)0x40020056L)
+#define RPC_NT_SEC_PKG_ERROR ((NTSTATUS)0xC0020057L)
+#define RPC_NT_NOT_CANCELLED ((NTSTATUS)0xC0020058L)
+#define RPC_NT_INVALID_ES_ACTION ((NTSTATUS)0xC0030059L)
+#define RPC_NT_WRONG_ES_VERSION ((NTSTATUS)0xC003005AL)
+#define RPC_NT_WRONG_STUB_VERSION ((NTSTATUS)0xC003005BL)
+#define RPC_NT_INVALID_PIPE_OBJECT ((NTSTATUS)0xC003005CL)
+#define RPC_NT_INVALID_PIPE_OPERATION ((NTSTATUS)0xC003005DL)
+#define RPC_NT_WRONG_PIPE_VERSION ((NTSTATUS)0xC003005EL)
+#define RPC_NT_PIPE_CLOSED ((NTSTATUS)0xC003005FL)
+#define RPC_NT_PIPE_DISCIPLINE_ERROR ((NTSTATUS)0xC0030060L)
+#define RPC_NT_PIPE_EMPTY ((NTSTATUS)0xC0030061L)
+#define RPC_NT_INVALID_ASYNC_HANDLE ((NTSTATUS)0xC0020062L)
+#define RPC_NT_INVALID_ASYNC_CALL ((NTSTATUS)0xC0020063L)
+#define RPC_NT_SEND_INCOMPLETE ((NTSTATUS)0x400200AFL)
+#define STATUS_ACPI_INVALID_OPCODE ((NTSTATUS)0xC0140001L)
+#define STATUS_ACPI_STACK_OVERFLOW ((NTSTATUS)0xC0140002L)
+#define STATUS_ACPI_ASSERT_FAILED ((NTSTATUS)0xC0140003L)
+#define STATUS_ACPI_INVALID_INDEX ((NTSTATUS)0xC0140004L)
+#define STATUS_ACPI_INVALID_ARGUMENT ((NTSTATUS)0xC0140005L)
+#define STATUS_ACPI_FATAL ((NTSTATUS)0xC0140006L)
+#define STATUS_ACPI_INVALID_SUPERNAME ((NTSTATUS)0xC0140007L)
+#define STATUS_ACPI_INVALID_ARGTYPE ((NTSTATUS)0xC0140008L)
+#define STATUS_ACPI_INVALID_OBJTYPE ((NTSTATUS)0xC0140009L)
+#define STATUS_ACPI_INVALID_TARGETTYPE ((NTSTATUS)0xC014000AL)
+#define STATUS_ACPI_INCORRECT_ARGUMENT_COUNT ((NTSTATUS)0xC014000BL)
+#define STATUS_ACPI_ADDRESS_NOT_MAPPED ((NTSTATUS)0xC014000CL)
+#define STATUS_ACPI_INVALID_EVENTTYPE ((NTSTATUS)0xC014000DL)
+#define STATUS_ACPI_HANDLER_COLLISION ((NTSTATUS)0xC014000EL)
+#define STATUS_ACPI_INVALID_DATA ((NTSTATUS)0xC014000FL)
+#define STATUS_ACPI_INVALID_REGION ((NTSTATUS)0xC0140010L)
+#define STATUS_ACPI_INVALID_ACCESS_SIZE ((NTSTATUS)0xC0140011L)
+#define STATUS_ACPI_ACQUIRE_GLOBAL_LOCK ((NTSTATUS)0xC0140012L)
+#define STATUS_ACPI_ALREADY_INITIALIZED ((NTSTATUS)0xC0140013L)
+#define STATUS_ACPI_NOT_INITIALIZED ((NTSTATUS)0xC0140014L)
+#define STATUS_ACPI_INVALID_MUTEX_LEVEL ((NTSTATUS)0xC0140015L)
+#define STATUS_ACPI_MUTEX_NOT_OWNED ((NTSTATUS)0xC0140016L)
+#define STATUS_ACPI_MUTEX_NOT_OWNER ((NTSTATUS)0xC0140017L)
+#define STATUS_ACPI_RS_ACCESS ((NTSTATUS)0xC0140018L)
+#define STATUS_ACPI_INVALID_TABLE ((NTSTATUS)0xC0140019L)
+#define STATUS_ACPI_REG_HANDLER_FAILED ((NTSTATUS)0xC0140020L)
+#define STATUS_ACPI_POWER_REQUEST_FAILED ((NTSTATUS)0xC0140021L)
+#define STATUS_CTX_WINSTATION_NAME_INVALID ((NTSTATUS)0xC00A0001L)
+#define STATUS_CTX_INVALID_PD ((NTSTATUS)0xC00A0002L)
+#define STATUS_CTX_PD_NOT_FOUND ((NTSTATUS)0xC00A0003L)
+#define STATUS_CTX_CDM_CONNECT ((NTSTATUS)0x400A0004L)
+#define STATUS_CTX_CDM_DISCONNECT ((NTSTATUS)0x400A0005L)
+#define STATUS_CTX_CLOSE_PENDING ((NTSTATUS)0xC00A0006L)
+#define STATUS_CTX_NO_OUTBUF ((NTSTATUS)0xC00A0007L)
+#define STATUS_CTX_MODEM_INF_NOT_FOUND ((NTSTATUS)0xC00A0008L)
+#define STATUS_CTX_INVALID_MODEMNAME ((NTSTATUS)0xC00A0009L)
+#define STATUS_CTX_RESPONSE_ERROR ((NTSTATUS)0xC00A000AL)
+#define STATUS_CTX_MODEM_RESPONSE_TIMEOUT ((NTSTATUS)0xC00A000BL)
+#define STATUS_CTX_MODEM_RESPONSE_NO_CARRIER ((NTSTATUS)0xC00A000CL)
+#define STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE ((NTSTATUS)0xC00A000DL)
+#define STATUS_CTX_MODEM_RESPONSE_BUSY ((NTSTATUS)0xC00A000EL)
+#define STATUS_CTX_MODEM_RESPONSE_VOICE ((NTSTATUS)0xC00A000FL)
+#define STATUS_CTX_TD_ERROR ((NTSTATUS)0xC00A0010L)
+#define STATUS_CTX_LICENSE_CLIENT_INVALID ((NTSTATUS)0xC00A0012L)
+#define STATUS_CTX_LICENSE_NOT_AVAILABLE ((NTSTATUS)0xC00A0013L)
+#define STATUS_CTX_LICENSE_EXPIRED ((NTSTATUS)0xC00A0014L)
+#define STATUS_CTX_WINSTATION_NOT_FOUND ((NTSTATUS)0xC00A0015L)
+#define STATUS_CTX_WINSTATION_NAME_COLLISION ((NTSTATUS)0xC00A0016L)
+#define STATUS_CTX_WINSTATION_BUSY ((NTSTATUS)0xC00A0017L)
+#define STATUS_CTX_BAD_VIDEO_MODE ((NTSTATUS)0xC00A0018L)
+#define STATUS_CTX_GRAPHICS_INVALID ((NTSTATUS)0xC00A0022L)
+#define STATUS_CTX_NOT_CONSOLE ((NTSTATUS)0xC00A0024L)
+#define STATUS_CTX_CLIENT_QUERY_TIMEOUT ((NTSTATUS)0xC00A0026L)
+#define STATUS_CTX_CONSOLE_DISCONNECT ((NTSTATUS)0xC00A0027L)
+#define STATUS_CTX_CONSOLE_CONNECT ((NTSTATUS)0xC00A0028L)
+#define STATUS_CTX_SHADOW_DENIED ((NTSTATUS)0xC00A002AL)
+#define STATUS_CTX_WINSTATION_ACCESS_DENIED ((NTSTATUS)0xC00A002BL)
+#define STATUS_CTX_INVALID_WD ((NTSTATUS)0xC00A002EL)
+#define STATUS_CTX_WD_NOT_FOUND ((NTSTATUS)0xC00A002FL)
+#define STATUS_CTX_SHADOW_INVALID ((NTSTATUS)0xC00A0030L)
+#define STATUS_CTX_SHADOW_DISABLED ((NTSTATUS)0xC00A0031L)
+#define STATUS_RDP_PROTOCOL_ERROR ((NTSTATUS)0xC00A0032L)
+#define STATUS_CTX_CLIENT_LICENSE_NOT_SET ((NTSTATUS)0xC00A0033L)
+#define STATUS_CTX_CLIENT_LICENSE_IN_USE ((NTSTATUS)0xC00A0034L)
+#define STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE ((NTSTATUS)0xC00A0035L)
+#define STATUS_CTX_SHADOW_NOT_RUNNING ((NTSTATUS)0xC00A0036L)
+#define STATUS_PNP_BAD_MPS_TABLE ((NTSTATUS)0xC0040035L)
+#define STATUS_PNP_TRANSLATION_FAILED ((NTSTATUS)0xC0040036L)
+#define STATUS_PNP_IRQ_TRANSLATION_FAILED ((NTSTATUS)0xC0040037L)
+#define STATUS_SXS_SECTION_NOT_FOUND ((NTSTATUS)0xC0150001L)
+#define STATUS_SXS_CANT_GEN_ACTCTX ((NTSTATUS)0xC0150002L)
+#define STATUS_SXS_INVALID_ACTCTXDATA_FORMAT ((NTSTATUS)0xC0150003L)
+#define STATUS_SXS_ASSEMBLY_NOT_FOUND ((NTSTATUS)0xC0150004L)
+#define STATUS_SXS_MANIFEST_FORMAT_ERROR ((NTSTATUS)0xC0150005L)
+#define STATUS_SXS_MANIFEST_PARSE_ERROR ((NTSTATUS)0xC0150006L)
+#define STATUS_SXS_ACTIVATION_CONTEXT_DISABLED ((NTSTATUS)0xC0150007L)
+#define STATUS_SXS_KEY_NOT_FOUND ((NTSTATUS)0xC0150008L)
+#define STATUS_SXS_VERSION_CONFLICT ((NTSTATUS)0xC0150009L)
+#define STATUS_SXS_WRONG_SECTION_TYPE ((NTSTATUS)0xC015000AL)
+#define STATUS_SXS_THREAD_QUERIES_DISABLED ((NTSTATUS)0xC015000BL)
+#define STATUS_SXS_ASSEMBLY_MISSING ((NTSTATUS)0xC015000CL)
+#define STATUS_SXS_RELEASE_ACTIVATION_CONTEXT ((NTSTATUS)0x4015000DL)
+#define STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET ((NTSTATUS)0xC015000EL)
+#define STATUS_SXS_EARLY_DEACTIVATION ((NTSTATUS)0xC015000FL)
+#define STATUS_SXS_INVALID_DEACTIVATION ((NTSTATUS)0xC0150010L)
+#define STATUS_SXS_MULTIPLE_DEACTIVATION ((NTSTATUS)0xC0150011L)
+#define STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY ((NTSTATUS)0xC0150012L)
+#define STATUS_SXS_PROCESS_TERMINATION_REQUESTED ((NTSTATUS)0xC0150013L)
+#define STATUS_CLUSTER_INVALID_NODE ((NTSTATUS)0xC0130001L)
+#define STATUS_CLUSTER_NODE_EXISTS ((NTSTATUS)0xC0130002L)
+#define STATUS_CLUSTER_JOIN_IN_PROGRESS ((NTSTATUS)0xC0130003L)
+#define STATUS_CLUSTER_NODE_NOT_FOUND ((NTSTATUS)0xC0130004L)
+#define STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND ((NTSTATUS)0xC0130005L)
+#define STATUS_CLUSTER_NETWORK_EXISTS ((NTSTATUS)0xC0130006L)
+#define STATUS_CLUSTER_NETWORK_NOT_FOUND ((NTSTATUS)0xC0130007L)
+#define STATUS_CLUSTER_NETINTERFACE_EXISTS ((NTSTATUS)0xC0130008L)
+#define STATUS_CLUSTER_NETINTERFACE_NOT_FOUND ((NTSTATUS)0xC0130009L)
+#define STATUS_CLUSTER_INVALID_REQUEST ((NTSTATUS)0xC013000AL)
+#define STATUS_CLUSTER_INVALID_NETWORK_PROVIDER ((NTSTATUS)0xC013000BL)
+#define STATUS_CLUSTER_NODE_DOWN ((NTSTATUS)0xC013000CL)
+#define STATUS_CLUSTER_NODE_UNREACHABLE ((NTSTATUS)0xC013000DL)
+#define STATUS_CLUSTER_NODE_NOT_MEMBER ((NTSTATUS)0xC013000EL)
+#define STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS ((NTSTATUS)0xC013000FL)
+#define STATUS_CLUSTER_INVALID_NETWORK ((NTSTATUS)0xC0130010L)
+#define STATUS_CLUSTER_NO_NET_ADAPTERS ((NTSTATUS)0xC0130011L)
+#define STATUS_CLUSTER_NODE_UP ((NTSTATUS)0xC0130012L)
+#define STATUS_CLUSTER_NODE_PAUSED ((NTSTATUS)0xC0130013L)
+#define STATUS_CLUSTER_NODE_NOT_PAUSED ((NTSTATUS)0xC0130014L)
+#define STATUS_CLUSTER_NO_SECURITY_CONTEXT ((NTSTATUS)0xC0130015L)
+#define STATUS_CLUSTER_NETWORK_NOT_INTERNAL ((NTSTATUS)0xC0130016L)
+#define STATUS_CLUSTER_POISONED ((NTSTATUS)0xC0130017L)
 
 
-#define STATUS_DEVICE_REQUIRES_CLEANING         ((NTSTATUS)0x80000288)
-#define STATUS_DEVICE_DOOR_OPEN                 ((NTSTATUS)0x80000289)
-
-#define STATUS_CLUSTER_NODE_ALREADY_UP          ((NTSTATUS)0x80130001)
-#define STATUS_CLUSTER_NODE_ALREADY_DOWN        ((NTSTATUS)0x80130002)
-#define STATUS_CLUSTER_NETWORK_ALREADY_ONLINE   ((NTSTATUS)0x80130003)
-#define STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE  ((NTSTATUS)0x80130004)
-#define STATUS_CLUSTER_NODE_ALREADY_MEMBER      ((NTSTATUS)0x80130005)
-
-#define STATUS_WAIT_0                           ((NTSTATUS)0x00000000)
-#define STATUS_UNSUCCESSFUL                     ((NTSTATUS)0xC0000001)
-#define STATUS_NOT_IMPLEMENTED                  ((NTSTATUS)0xC0000002)
-#define STATUS_INVALID_INFO_CLASS               ((NTSTATUS)0xC0000003)
-#define STATUS_INFO_LENGTH_MISMATCH             ((NTSTATUS)0xC0000004)
-#define STATUS_ACCESS_VIOLATION                 ((NTSTATUS)0xC0000005)
-#define STATUS_IN_PAGE_ERROR                    ((NTSTATUS)0xC0000006)
-#define STATUS_PAGEFILE_QUOTA                   ((NTSTATUS)0xC0000007)
-#define STATUS_INVALID_HANDLE                   ((NTSTATUS)0xC0000008)
-#define STATUS_BAD_INITIAL_STACK                ((NTSTATUS)0xC0000009)
-#define STATUS_BAD_INITIAL_PC                   ((NTSTATUS)0xC000000A)
-#define STATUS_INVALID_CID                      ((NTSTATUS)0xC000000B)
-#define STATUS_TIMER_NOT_CANCELED               ((NTSTATUS)0xC000000C)
-#define STATUS_INVALID_PARAMETER                ((NTSTATUS)0xC000000D)
-#define STATUS_NO_SUCH_DEVICE                   ((NTSTATUS)0xC000000E)
-#define STATUS_NO_SUCH_FILE                     ((NTSTATUS)0xC000000F)
-#define STATUS_INVALID_DEVICE_REQUEST           ((NTSTATUS)0xC0000010)
-#define STATUS_END_OF_FILE                      ((NTSTATUS)0xC0000011)
-#define STATUS_WRONG_VOLUME                     ((NTSTATUS)0xC0000012)
-#define STATUS_NO_MEDIA_IN_DEVICE               ((NTSTATUS)0xC0000013)
-#define STATUS_UNRECOGNIZED_MEDIA               ((NTSTATUS)0xC0000014)
-#define STATUS_NONEXISTENT_SECTOR               ((NTSTATUS)0xC0000015)
-#define STATUS_MORE_PROCESSING_REQUIRED         ((NTSTATUS)0xC0000016)
-#define STATUS_NO_MEMORY                        ((NTSTATUS)0xC0000017)
-#define STATUS_CONFLICTING_ADDRESSES            ((NTSTATUS)0xC0000018)
-#define STATUS_NOT_MAPPED_VIEW                  ((NTSTATUS)0xC0000019)
-#define STATUS_UNABLE_TO_FREE_VM                ((NTSTATUS)0xC000001A)
-#define STATUS_UNABLE_TO_DELETE_SECTION         ((NTSTATUS)0xC000001B)
-#define STATUS_INVALID_SYSTEM_SERVICE           ((NTSTATUS)0xC000001C)
-#define STATUS_ILLEGAL_INSTRUCTION              ((NTSTATUS)0xC000001D)
-#define STATUS_INVALID_LOCK_SEQUENCE            ((NTSTATUS)0xC000001E)
-#define STATUS_INVALID_VIEW_SIZE                ((NTSTATUS)0xC000001F)
-#define STATUS_INVALID_FILE_FOR_SECTION         ((NTSTATUS)0xC0000020)
-#define STATUS_ALREADY_COMMITTED                ((NTSTATUS)0xC0000021)
-#define STATUS_ACCESS_DENIED                    ((NTSTATUS)0xC0000022)
-#define STATUS_BUFFER_TOO_SMALL                 ((NTSTATUS)0xC0000023)
-#define STATUS_OBJECT_TYPE_MISMATCH             ((NTSTATUS)0xC0000024)
-#define STATUS_NONCONTINUABLE_EXCEPTION         ((NTSTATUS)0xC0000025)
-#define STATUS_INVALID_DISPOSITION              ((NTSTATUS)0xC0000026)
-#define STATUS_UNWIND                           ((NTSTATUS)0xC0000027)
-#define STATUS_BAD_STACK                        ((NTSTATUS)0xC0000028)
-#define STATUS_INVALID_UNWIND_TARGET            ((NTSTATUS)0xC0000029)
-#define STATUS_NOT_LOCKED                       ((NTSTATUS)0xC000002A)
-#define STATUS_PARITY_ERROR                     ((NTSTATUS)0xC000002B)
-#define STATUS_UNABLE_TO_DECOMMIT_VM            ((NTSTATUS)0xC000002C)
-#define STATUS_NOT_COMMITTED                    ((NTSTATUS)0xC000002D)
-#define STATUS_INVALID_PORT_ATTRIBUTES          ((NTSTATUS)0xC000002E)
-#define STATUS_PORT_MESSAGE_TOO_LONG            ((NTSTATUS)0xC000002F)
-#define STATUS_INVALID_PARAMETER_MIX            ((NTSTATUS)0xC0000030)
-#define STATUS_INVALID_QUOTA_LOWER              ((NTSTATUS)0xC0000031)
-#define STATUS_DISK_CORRUPT_ERROR               ((NTSTATUS)0xC0000032)
-#define STATUS_OBJECT_NAME_INVALID              ((NTSTATUS)0xC0000033)
-#define STATUS_OBJECT_NAME_NOT_FOUND            ((NTSTATUS)0xC0000034)
-#define STATUS_OBJECT_NAME_COLLISION            ((NTSTATUS)0xC0000035)
-#define STATUS_PORT_DISCONNECTED                ((NTSTATUS)0xC0000037)
-#define STATUS_DEVICE_ALREADY_ATTACHED          ((NTSTATUS)0xC0000038)
-#define STATUS_OBJECT_PATH_INVALID              ((NTSTATUS)0xC0000039)
-#define STATUS_OBJECT_PATH_NOT_FOUND            ((NTSTATUS)0xC000003A)
-#define STATUS_OBJECT_PATH_SYNTAX_BAD           ((NTSTATUS)0xC000003B)
-#define STATUS_DATA_OVERRUN                     ((NTSTATUS)0xC000003C)
-#define STATUS_DATA_LATE_ERROR                  ((NTSTATUS)0xC000003D)
-#define STATUS_DATA_ERROR                       ((NTSTATUS)0xC000003E)
-#define STATUS_CRC_ERROR                        ((NTSTATUS)0xC000003F)
-#define STATUS_SECTION_TOO_BIG                  ((NTSTATUS)0xC0000040)
-#define STATUS_PORT_CONNECTION_REFUSED          ((NTSTATUS)0xC0000041)
-#define STATUS_INVALID_PORT_HANDLE              ((NTSTATUS)0xC0000042)
-#define STATUS_SHARING_VIOLATION                ((NTSTATUS)0xC0000043)
-#define STATUS_QUOTA_EXCEEDED                   ((NTSTATUS)0xC0000044)
-#define STATUS_INVALID_PAGE_PROTECTION          ((NTSTATUS)0xC0000045)
-#define STATUS_MUTANT_NOT_OWNED                 ((NTSTATUS)0xC0000046)
-#define STATUS_SEMAPHORE_LIMIT_EXCEEDED         ((NTSTATUS)0xC0000047)
-#define STATUS_PORT_ALREADY_SET                 ((NTSTATUS)0xC0000048)
-#define STATUS_SECTION_NOT_IMAGE                ((NTSTATUS)0xC0000049)
-#define STATUS_SUSPEND_COUNT_EXCEEDED           ((NTSTATUS)0xC000004A)
-#define STATUS_THREAD_IS_TERMINATING            ((NTSTATUS)0xC000004B)
-#define STATUS_BAD_WORKING_SET_LIMIT            ((NTSTATUS)0xC000004C)
-#define STATUS_INCOMPATIBLE_FILE_MAP            ((NTSTATUS)0xC000004D)
-#define STATUS_SECTION_PROTECTION               ((NTSTATUS)0xC000004E)
-#define STATUS_EAS_NOT_SUPPORTED                ((NTSTATUS)0xC000004F)
-#define STATUS_EA_TOO_LARGE                     ((NTSTATUS)0xC0000050)
-#define STATUS_NONEXISTENT_EA_ENTRY             ((NTSTATUS)0xC0000051)
-#define STATUS_NO_EAS_ON_FILE                   ((NTSTATUS)0xC0000052)
-#define STATUS_EA_CORRUPT_ERROR                 ((NTSTATUS)0xC0000053)
-#define STATUS_FILE_LOCK_CONFLICT               ((NTSTATUS)0xC0000054)
-#define STATUS_LOCK_NOT_GRANTED                 ((NTSTATUS)0xC0000055)
-#define STATUS_DELETE_PENDING                   ((NTSTATUS)0xC0000056)
-#define STATUS_CTL_FILE_NOT_SUPPORTED           ((NTSTATUS)0xC0000057)
-#define STATUS_UNKNOWN_REVISION                 ((NTSTATUS)0xC0000058)
-#define STATUS_REVISION_MISMATCH                ((NTSTATUS)0xC0000059)
-#define STATUS_INVALID_OWNER                    ((NTSTATUS)0xC000005A)
-#define STATUS_INVALID_PRIMARY_GROUP            ((NTSTATUS)0xC000005B)
-#define STATUS_NO_IMPERSONATION_TOKEN           ((NTSTATUS)0xC000005C)
-#define STATUS_CANT_DISABLE_MANDATORY           ((NTSTATUS)0xC000005D)
-#define STATUS_NO_LOGON_SERVERS                 ((NTSTATUS)0xC000005E)
-#define STATUS_NO_SUCH_LOGON_SESSION            ((NTSTATUS)0xC000005F)
-#define STATUS_NO_SUCH_PRIVILEGE                ((NTSTATUS)0xC0000060)
-#define STATUS_PRIVILEGE_NOT_HELD               ((NTSTATUS)0xC0000061)
-#define STATUS_INVALID_ACCOUNT_NAME             ((NTSTATUS)0xC0000062)
-#define STATUS_USER_EXISTS                      ((NTSTATUS)0xC0000063)
-#define STATUS_NO_SUCH_USER                     ((NTSTATUS)0xC0000064)
-#define STATUS_GROUP_EXISTS                     ((NTSTATUS)0xC0000065)
-#define STATUS_NO_SUCH_GROUP                    ((NTSTATUS)0xC0000066)
-#define STATUS_MEMBER_IN_GROUP                  ((NTSTATUS)0xC0000067)
-#define STATUS_MEMBER_NOT_IN_GROUP              ((NTSTATUS)0xC0000068)
-#define STATUS_LAST_ADMIN                       ((NTSTATUS)0xC0000069)
-#define STATUS_WRONG_PASSWORD                   ((NTSTATUS)0xC000006A)
-#define STATUS_ILL_FORMED_PASSWORD              ((NTSTATUS)0xC000006B)
-#define STATUS_PASSWORD_RESTRICTION             ((NTSTATUS)0xC000006C)
-#define STATUS_LOGON_FAILURE                    ((NTSTATUS)0xC000006D)
-#define STATUS_ACCOUNT_RESTRICTION              ((NTSTATUS)0xC000006E)
-#define STATUS_INVALID_LOGON_HOURS              ((NTSTATUS)0xC000006F)
-#define STATUS_INVALID_WORKSTATION              ((NTSTATUS)0xC0000070)
-#define STATUS_PASSWORD_EXPIRED                 ((NTSTATUS)0xC0000071)
-#define STATUS_ACCOUNT_DISABLED                 ((NTSTATUS)0xC0000072)
-#define STATUS_NONE_MAPPED                      ((NTSTATUS)0xC0000073)
-#define STATUS_TOO_MANY_LUIDS_REQUESTED         ((NTSTATUS)0xC0000074)
-#define STATUS_LUIDS_EXHAUSTED                  ((NTSTATUS)0xC0000075)
-#define STATUS_INVALID_SUB_AUTHORITY            ((NTSTATUS)0xC0000076)
-#define STATUS_INVALID_ACL                      ((NTSTATUS)0xC0000077)
-#define STATUS_INVALID_SID                      ((NTSTATUS)0xC0000078)
-#define STATUS_INVALID_SECURITY_DESCR           ((NTSTATUS)0xC0000079)
-#define STATUS_PROCEDURE_NOT_FOUND              ((NTSTATUS)0xC000007A)
-#define STATUS_INVALID_IMAGE_FORMAT             ((NTSTATUS)0xC000007B)
-#define STATUS_NO_TOKEN                         ((NTSTATUS)0xC000007C)
-#define STATUS_BAD_INHERITANCE_ACL              ((NTSTATUS)0xC000007D)
-#define STATUS_RANGE_NOT_LOCKED                 ((NTSTATUS)0xC000007E)
-#define STATUS_DISK_FULL                        ((NTSTATUS)0xC000007F)
-#define STATUS_SERVER_DISABLED                  ((NTSTATUS)0xC0000080)
-#define STATUS_SERVER_NOT_DISABLED              ((NTSTATUS)0xC0000081)
-#define STATUS_TOO_MANY_GUIDS_REQUESTED         ((NTSTATUS)0xC0000082)
-#define STATUS_GUIDS_EXHAUSTED                  ((NTSTATUS)0xC0000083)
-#define STATUS_INVALID_ID_AUTHORITY             ((NTSTATUS)0xC0000084)
-#define STATUS_AGENTS_EXHAUSTED                 ((NTSTATUS)0xC0000085)
-#define STATUS_INVALID_VOLUME_LABEL             ((NTSTATUS)0xC0000086)
-#define STATUS_SECTION_NOT_EXTENDED             ((NTSTATUS)0xC0000087)
-#define STATUS_NOT_MAPPED_DATA                  ((NTSTATUS)0xC0000088)
-#define STATUS_RESOURCE_DATA_NOT_FOUND          ((NTSTATUS)0xC0000089)
-#define STATUS_RESOURCE_TYPE_NOT_FOUND          ((NTSTATUS)0xC000008A)
-#define STATUS_RESOURCE_NAME_NOT_FOUND          ((NTSTATUS)0xC000008B)
-#define STATUS_ARRAY_BOUNDS_EXCEEDED            ((NTSTATUS)0xC000008C)
-#define STATUS_FLOAT_DENORMAL_OPERAND           ((NTSTATUS)0xC000008D)
-#define STATUS_FLOAT_DIVIDE_BY_ZERO             ((NTSTATUS)0xC000008E)
-#define STATUS_FLOAT_INEXACT_RESULT             ((NTSTATUS)0xC000008F)
-#define STATUS_FLOAT_INVALID_OPERATION          ((NTSTATUS)0xC0000090)
-#define STATUS_FLOAT_OVERFLOW                   ((NTSTATUS)0xC0000091)
-#define STATUS_FLOAT_STACK_CHECK                ((NTSTATUS)0xC0000092)
-#define STATUS_FLOAT_UNDERFLOW                  ((NTSTATUS)0xC0000093)
-#define STATUS_INTEGER_DIVIDE_BY_ZERO           ((NTSTATUS)0xC0000094)
-#define STATUS_INTEGER_OVERFLOW                 ((NTSTATUS)0xC0000095)
-#define STATUS_PRIVILEGED_INSTRUCTION           ((NTSTATUS)0xC0000096)
-#define STATUS_TOO_MANY_PAGING_FILES            ((NTSTATUS)0xC0000097)
-#define STATUS_FILE_INVALID                     ((NTSTATUS)0xC0000098)
-#define STATUS_ALLOTTED_SPACE_EXCEEDED          ((NTSTATUS)0xC0000099)
-#define STATUS_INSUFFICIENT_RESOURCES           ((NTSTATUS)0xC000009A)
-#define STATUS_DFS_EXIT_PATH_FOUND              ((NTSTATUS)0xC000009B)
-#define STATUS_DEVICE_DATA_ERROR                ((NTSTATUS)0xC000009C)
-#define STATUS_DEVICE_NOT_CONNECTED             ((NTSTATUS)0xC000009D)
-#define STATUS_DEVICE_POWER_FAILURE             ((NTSTATUS)0xC000009E)
-#define STATUS_FREE_VM_NOT_AT_BASE              ((NTSTATUS)0xC000009F)
-#define STATUS_MEMORY_NOT_ALLOCATED             ((NTSTATUS)0xC00000A0)
-#define STATUS_WORKING_SET_QUOTA                ((NTSTATUS)0xC00000A1)
-#define STATUS_MEDIA_WRITE_PROTECTED            ((NTSTATUS)0xC00000A2)
-#define STATUS_DEVICE_NOT_READY                 ((NTSTATUS)0xC00000A3)
-#define STATUS_INVALID_GROUP_ATTRIBUTES         ((NTSTATUS)0xC00000A4)
-#define STATUS_BAD_IMPERSONATION_LEVEL          ((NTSTATUS)0xC00000A5)
-#define STATUS_CANT_OPEN_ANONYMOUS              ((NTSTATUS)0xC00000A6)
-#define STATUS_BAD_VALIDATION_CLASS             ((NTSTATUS)0xC00000A7)
-#define STATUS_BAD_TOKEN_TYPE                   ((NTSTATUS)0xC00000A8)
-#define STATUS_BAD_MASTER_BOOT_RECORD           ((NTSTATUS)0xC00000A9)
-#define STATUS_INSTRUCTION_MISALIGNMENT         ((NTSTATUS)0xC00000AA)
-#define STATUS_INSTANCE_NOT_AVAILABLE           ((NTSTATUS)0xC00000AB)
-#define STATUS_PIPE_NOT_AVAILABLE               ((NTSTATUS)0xC00000AC)
-#define STATUS_INVALID_PIPE_STATE               ((NTSTATUS)0xC00000AD)
-#define STATUS_PIPE_BUSY                        ((NTSTATUS)0xC00000AE)
-#define STATUS_ILLEGAL_FUNCTION                 ((NTSTATUS)0xC00000AF)
-#define STATUS_PIPE_DISCONNECTED                ((NTSTATUS)0xC00000B0)
-#define STATUS_PIPE_CLOSING                     ((NTSTATUS)0xC00000B1)
-#define STATUS_PIPE_CONNECTED                   ((NTSTATUS)0xC00000B2)
-#define STATUS_PIPE_LISTENING                   ((NTSTATUS)0xC00000B3)
-#define STATUS_INVALID_READ_MODE                ((NTSTATUS)0xC00000B4)
-#define STATUS_IO_TIMEOUT                       ((NTSTATUS)0xC00000B5)
-#define STATUS_FILE_FORCED_CLOSED               ((NTSTATUS)0xC00000B6)
-#define STATUS_PROFILING_NOT_STARTED            ((NTSTATUS)0xC00000B7)
-#define STATUS_PROFILING_NOT_STOPPED            ((NTSTATUS)0xC00000B8)
-#define STATUS_COULD_NOT_INTERPRET              ((NTSTATUS)0xC00000B9)
-#define STATUS_FILE_IS_A_DIRECTORY              ((NTSTATUS)0xC00000BA)
-#define STATUS_NOT_SUPPORTED                    ((NTSTATUS)0xC00000BB)
-#define STATUS_REMOTE_NOT_LISTENING             ((NTSTATUS)0xC00000BC)
-#define STATUS_DUPLICATE_NAME                   ((NTSTATUS)0xC00000BD)
-#define STATUS_BAD_NETWORK_PATH                 ((NTSTATUS)0xC00000BE)
-#define STATUS_NETWORK_BUSY                     ((NTSTATUS)0xC00000BF)
-#define STATUS_DEVICE_DOES_NOT_EXIST            ((NTSTATUS)0xC00000C0)
-#define STATUS_TOO_MANY_COMMANDS                ((NTSTATUS)0xC00000C1)
-#define STATUS_ADAPTER_HARDWARE_ERROR           ((NTSTATUS)0xC00000C2)
-#define STATUS_INVALID_NETWORK_RESPONSE         ((NTSTATUS)0xC00000C3)
-#define STATUS_UNEXPECTED_NETWORK_ERROR         ((NTSTATUS)0xC00000C4)
-#define STATUS_BAD_REMOTE_ADAPTER               ((NTSTATUS)0xC00000C5)
-#define STATUS_PRINT_QUEUE_FULL                 ((NTSTATUS)0xC00000C6)
-#define STATUS_NO_SPOOL_SPACE                   ((NTSTATUS)0xC00000C7)
-#define STATUS_PRINT_CANCELLED                  ((NTSTATUS)0xC00000C8)
-#define STATUS_NETWORK_NAME_DELETED             ((NTSTATUS)0xC00000C9)
-#define STATUS_NETWORK_ACCESS_DENIED            ((NTSTATUS)0xC00000CA)
-#define STATUS_BAD_DEVICE_TYPE                  ((NTSTATUS)0xC00000CB)
-#define STATUS_BAD_NETWORK_NAME                 ((NTSTATUS)0xC00000CC)
-#define STATUS_TOO_MANY_NAMES                   ((NTSTATUS)0xC00000CD)
-#define STATUS_TOO_MANY_SESSIONS                ((NTSTATUS)0xC00000CE)
-#define STATUS_SHARING_PAUSED                   ((NTSTATUS)0xC00000CF)
-#define STATUS_REQUEST_NOT_ACCEPTED             ((NTSTATUS)0xC00000D0)
-#define STATUS_REDIRECTOR_PAUSED                ((NTSTATUS)0xC00000D1)
-#define STATUS_NET_WRITE_FAULT                  ((NTSTATUS)0xC00000D2)
-#define STATUS_PROFILING_AT_LIMIT               ((NTSTATUS)0xC00000D3)
-#define STATUS_NOT_SAME_DEVICE                  ((NTSTATUS)0xC00000D4)
-#define STATUS_FILE_RENAMED                     ((NTSTATUS)0xC00000D5)
-#define STATUS_VIRTUAL_CIRCUIT_CLOSED           ((NTSTATUS)0xC00000D6)
-#define STATUS_NO_SECURITY_ON_OBJECT            ((NTSTATUS)0xC00000D7)
-#define STATUS_CANT_WAIT                        ((NTSTATUS)0xC00000D8)
-#define STATUS_PIPE_EMPTY                       ((NTSTATUS)0xC00000D9)
-#define STATUS_CANT_ACCESS_DOMAIN_INFO          ((NTSTATUS)0xC00000DA)
-#define STATUS_CANT_TERMINATE_SELF              ((NTSTATUS)0xC00000DB)
-#define STATUS_INVALID_SERVER_STATE             ((NTSTATUS)0xC00000DC)
-#define STATUS_INVALID_DOMAIN_STATE             ((NTSTATUS)0xC00000DD)
-#define STATUS_INVALID_DOMAIN_ROLE              ((NTSTATUS)0xC00000DE)
-#define STATUS_NO_SUCH_DOMAIN                   ((NTSTATUS)0xC00000DF)
-#define STATUS_DOMAIN_EXISTS                    ((NTSTATUS)0xC00000E0)
-#define STATUS_DOMAIN_LIMIT_EXCEEDED            ((NTSTATUS)0xC00000E1)
-#define STATUS_OPLOCK_NOT_GRANTED               ((NTSTATUS)0xC00000E2)
-#define STATUS_INVALID_OPLOCK_PROTOCOL          ((NTSTATUS)0xC00000E3)
-#define STATUS_INTERNAL_DB_CORRUPTION           ((NTSTATUS)0xC00000E4)
-#define STATUS_INTERNAL_ERROR                   ((NTSTATUS)0xC00000E5)
-#define STATUS_GENERIC_NOT_MAPPED               ((NTSTATUS)0xC00000E6)
-#define STATUS_BAD_DESCRIPTOR_FORMAT            ((NTSTATUS)0xC00000E7)
-#define STATUS_INVALID_USER_BUFFER              ((NTSTATUS)0xC00000E8)
-#define STATUS_UNEXPECTED_IO_ERROR              ((NTSTATUS)0xC00000E9)
-#define STATUS_UNEXPECTED_MM_CREATE_ERR         ((NTSTATUS)0xC00000EA)
-#define STATUS_UNEXPECTED_MM_MAP_ERROR          ((NTSTATUS)0xC00000EB)
-#define STATUS_UNEXPECTED_MM_EXTEND_ERR         ((NTSTATUS)0xC00000EC)
-#define STATUS_NOT_LOGON_PROCESS                ((NTSTATUS)0xC00000ED)
-#define STATUS_LOGON_SESSION_EXISTS             ((NTSTATUS)0xC00000EE)
-#define STATUS_INVALID_PARAMETER_1              ((NTSTATUS)0xC00000EF)
-#define STATUS_INVALID_PARAMETER_2              ((NTSTATUS)0xC00000F0)
-#define STATUS_INVALID_PARAMETER_3              ((NTSTATUS)0xC00000F1)
-#define STATUS_INVALID_PARAMETER_4              ((NTSTATUS)0xC00000F2)
-#define STATUS_INVALID_PARAMETER_5              ((NTSTATUS)0xC00000F3)
-#define STATUS_INVALID_PARAMETER_6              ((NTSTATUS)0xC00000F4)
-#define STATUS_INVALID_PARAMETER_7              ((NTSTATUS)0xC00000F5)
-#define STATUS_INVALID_PARAMETER_8              ((NTSTATUS)0xC00000F6)
-#define STATUS_INVALID_PARAMETER_9              ((NTSTATUS)0xC00000F7)
-#define STATUS_INVALID_PARAMETER_10             ((NTSTATUS)0xC00000F8)
-#define STATUS_INVALID_PARAMETER_11             ((NTSTATUS)0xC00000F9)
-#define STATUS_INVALID_PARAMETER_12             ((NTSTATUS)0xC00000FA)
-#define STATUS_REDIRECTOR_NOT_STARTED           ((NTSTATUS)0xC00000FB)
-#define STATUS_REDIRECTOR_STARTED               ((NTSTATUS)0xC00000FC)
-#define STATUS_STACK_OVERFLOW                   ((NTSTATUS)0xC00000FD)
-#define STATUS_NO_SUCH_PACKAGE                  ((NTSTATUS)0xC00000FE)
-#define STATUS_BAD_FUNCTION_TABLE               ((NTSTATUS)0xC00000FF)
-#define STATUS_VARIABLE_NOT_FOUND               ((NTSTATUS)0xC0000100)
-#define STATUS_DIRECTORY_NOT_EMPTY              ((NTSTATUS)0xC0000101)
-#define STATUS_FILE_CORRUPT_ERROR               ((NTSTATUS)0xC0000102)
-#define STATUS_NOT_A_DIRECTORY                  ((NTSTATUS)0xC0000103)
-#define STATUS_BAD_LOGON_SESSION_STATE          ((NTSTATUS)0xC0000104)
-#define STATUS_LOGON_SESSION_COLLISION          ((NTSTATUS)0xC0000105)
-#define STATUS_NAME_TOO_LONG                    ((NTSTATUS)0xC0000106)
-#define STATUS_FILES_OPEN                       ((NTSTATUS)0xC0000107)
-#define STATUS_CONNECTION_IN_USE                ((NTSTATUS)0xC0000108)
-#define STATUS_MESSAGE_NOT_FOUND                ((NTSTATUS)0xC0000109)
-#define STATUS_PROCESS_IS_TERMINATING           ((NTSTATUS)0xC000010A)
-#define STATUS_INVALID_LOGON_TYPE               ((NTSTATUS)0xC000010B)
-#define STATUS_NO_GUID_TRANSLATION              ((NTSTATUS)0xC000010C)
-#define STATUS_CANNOT_IMPERSONATE               ((NTSTATUS)0xC000010D)
-#define STATUS_IMAGE_ALREADY_LOADED             ((NTSTATUS)0xC000010E)
-#define STATUS_ABIOS_NOT_PRESENT                ((NTSTATUS)0xC000010F)
-#define STATUS_ABIOS_LID_NOT_EXIST              ((NTSTATUS)0xC0000110)
-#define STATUS_ABIOS_LID_ALREADY_OWNED          ((NTSTATUS)0xC0000111)
-#define STATUS_ABIOS_NOT_LID_OWNER              ((NTSTATUS)0xC0000112)
-#define STATUS_ABIOS_INVALID_COMMAND            ((NTSTATUS)0xC0000113)
-#define STATUS_ABIOS_INVALID_LID                ((NTSTATUS)0xC0000114)
-#define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE     ((NTSTATUS)0xC0000115)
-#define STATUS_ABIOS_INVALID_SELECTOR           ((NTSTATUS)0xC0000116)
-#define STATUS_NO_LDT                           ((NTSTATUS)0xC0000117)
-#define STATUS_INVALID_LDT_SIZE                 ((NTSTATUS)0xC0000118)
-#define STATUS_INVALID_LDT_OFFSET               ((NTSTATUS)0xC0000119)
-#define STATUS_INVALID_LDT_DESCRIPTOR           ((NTSTATUS)0xC000011A)
-#define STATUS_INVALID_IMAGE_NE_FORMAT          ((NTSTATUS)0xC000011B)
-#define STATUS_RXACT_INVALID_STATE              ((NTSTATUS)0xC000011C)
-#define STATUS_RXACT_COMMIT_FAILURE             ((NTSTATUS)0xC000011D)
-#define STATUS_MAPPED_FILE_SIZE_ZERO            ((NTSTATUS)0xC000011E)
-#define STATUS_TOO_MANY_OPENED_FILES            ((NTSTATUS)0xC000011F)
-#define STATUS_CANCELLED                        ((NTSTATUS)0xC0000120)
-#define STATUS_CANNOT_DELETE                    ((NTSTATUS)0xC0000121)
-#define STATUS_INVALID_COMPUTER_NAME            ((NTSTATUS)0xC0000122)
-#define STATUS_FILE_DELETED                     ((NTSTATUS)0xC0000123)
-#define STATUS_SPECIAL_ACCOUNT                  ((NTSTATUS)0xC0000124)
-#define STATUS_SPECIAL_GROUP                    ((NTSTATUS)0xC0000125)
-#define STATUS_SPECIAL_USER                     ((NTSTATUS)0xC0000126)
-#define STATUS_MEMBERS_PRIMARY_GROUP            ((NTSTATUS)0xC0000127)
-#define STATUS_FILE_CLOSED                      ((NTSTATUS)0xC0000128)
-#define STATUS_TOO_MANY_THREADS                 ((NTSTATUS)0xC0000129)
-#define STATUS_THREAD_NOT_IN_PROCESS            ((NTSTATUS)0xC000012A)
-#define STATUS_TOKEN_ALREADY_IN_USE             ((NTSTATUS)0xC000012B)
-#define STATUS_PAGEFILE_QUOTA_EXCEEDED          ((NTSTATUS)0xC000012C)
-#define STATUS_COMMITMENT_LIMIT                 ((NTSTATUS)0xC000012D)
-#define STATUS_INVALID_IMAGE_LE_FORMAT          ((NTSTATUS)0xC000012E)
-#define STATUS_INVALID_IMAGE_NOT_MZ             ((NTSTATUS)0xC000012F)
-#define STATUS_INVALID_IMAGE_PROTECT            ((NTSTATUS)0xC0000130)
-#define STATUS_INVALID_IMAGE_WIN_16             ((NTSTATUS)0xC0000131)
-#define STATUS_LOGON_SERVER_CONFLICT            ((NTSTATUS)0xC0000132)
-#define STATUS_TIME_DIFFERENCE_AT_DC            ((NTSTATUS)0xC0000133)
-#define STATUS_SYNCHRONIZATION_REQUIRED         ((NTSTATUS)0xC0000134)
-#define STATUS_DLL_NOT_FOUND                    ((NTSTATUS)0xC0000135)
-#define STATUS_OPEN_FAILED                      ((NTSTATUS)0xC0000136)
-#define STATUS_IO_PRIVILEGE_FAILED              ((NTSTATUS)0xC0000137)
-#define STATUS_ORDINAL_NOT_FOUND                ((NTSTATUS)0xC0000138)
-#define STATUS_ENTRYPOINT_NOT_FOUND             ((NTSTATUS)0xC0000139)
-#define STATUS_CONTROL_C_EXIT                   ((NTSTATUS)0xC000013A)
-#define STATUS_LOCAL_DISCONNECT                 ((NTSTATUS)0xC000013B)
-#define STATUS_REMOTE_DISCONNECT                ((NTSTATUS)0xC000013C)
-#define STATUS_REMOTE_RESOURCES                 ((NTSTATUS)0xC000013D)
-#define STATUS_LINK_FAILED                      ((NTSTATUS)0xC000013E)
-#define STATUS_LINK_TIMEOUT                     ((NTSTATUS)0xC000013F)
-#define STATUS_INVALID_CONNECTION               ((NTSTATUS)0xC0000140)
-#define STATUS_INVALID_ADDRESS                  ((NTSTATUS)0xC0000141)
-#define STATUS_DLL_INIT_FAILED                  ((NTSTATUS)0xC0000142)
-#define STATUS_MISSING_SYSTEMFILE               ((NTSTATUS)0xC0000143)
-#define STATUS_UNHANDLED_EXCEPTION              ((NTSTATUS)0xC0000144)
-#define STATUS_APP_INIT_FAILURE                 ((NTSTATUS)0xC0000145)
-#define STATUS_PAGEFILE_CREATE_FAILED           ((NTSTATUS)0xC0000146)
-#define STATUS_NO_PAGEFILE                      ((NTSTATUS)0xC0000147)
-#define STATUS_INVALID_LEVEL                    ((NTSTATUS)0xC0000148)
-#define STATUS_WRONG_PASSWORD_CORE              ((NTSTATUS)0xC0000149)
-#define STATUS_ILLEGAL_FLOAT_CONTEXT            ((NTSTATUS)0xC000014A)
-#define STATUS_PIPE_BROKEN                      ((NTSTATUS)0xC000014B)
-#define STATUS_REGISTRY_CORRUPT                 ((NTSTATUS)0xC000014C)
-#define STATUS_REGISTRY_IO_FAILED               ((NTSTATUS)0xC000014D)
-#define STATUS_NO_EVENT_PAIR                    ((NTSTATUS)0xC000014E)
-#define STATUS_UNRECOGNIZED_VOLUME              ((NTSTATUS)0xC000014F)
-#define STATUS_SERIAL_NO_DEVICE_INITED          ((NTSTATUS)0xC0000150)
-#define STATUS_NO_SUCH_ALIAS                    ((NTSTATUS)0xC0000151)
-#define STATUS_MEMBER_NOT_IN_ALIAS              ((NTSTATUS)0xC0000152)
-#define STATUS_MEMBER_IN_ALIAS                  ((NTSTATUS)0xC0000153)
-#define STATUS_ALIAS_EXISTS                     ((NTSTATUS)0xC0000154)
-#define STATUS_LOGON_NOT_GRANTED                ((NTSTATUS)0xC0000155)
-#define STATUS_TOO_MANY_SECRETS                 ((NTSTATUS)0xC0000156)
-#define STATUS_SECRET_TOO_LONG                  ((NTSTATUS)0xC0000157)
-#define STATUS_INTERNAL_DB_ERROR                ((NTSTATUS)0xC0000158)
-#define STATUS_FULLSCREEN_MODE                  ((NTSTATUS)0xC0000159)
-#define STATUS_TOO_MANY_CONTEXT_IDS             ((NTSTATUS)0xC000015A)
-#define STATUS_LOGON_TYPE_NOT_GRANTED           ((NTSTATUS)0xC000015B)
-#define STATUS_NOT_REGISTRY_FILE                ((NTSTATUS)0xC000015C)
-#define STATUS_NT_CROSS_ENCRYPTION_REQUIRED     ((NTSTATUS)0xC000015D)
-#define STATUS_DOMAIN_CTRLR_CONFIG_ERROR        ((NTSTATUS)0xC000015E)
-#define STATUS_FT_MISSING_MEMBER                ((NTSTATUS)0xC000015F)
-#define STATUS_ILL_FORMED_SERVICE_ENTRY         ((NTSTATUS)0xC0000160)
-#define STATUS_ILLEGAL_CHARACTER                ((NTSTATUS)0xC0000161)
-#define STATUS_UNMAPPABLE_CHARACTER             ((NTSTATUS)0xC0000162)
-#define STATUS_UNDEFINED_CHARACTER              ((NTSTATUS)0xC0000163)
-#define STATUS_FLOPPY_VOLUME                    ((NTSTATUS)0xC0000164)
-#define STATUS_FLOPPY_ID_MARK_NOT_FOUND         ((NTSTATUS)0xC0000165)
-#define STATUS_FLOPPY_WRONG_CYLINDER            ((NTSTATUS)0xC0000166)
-#define STATUS_FLOPPY_UNKNOWN_ERROR             ((NTSTATUS)0xC0000167)
-#define STATUS_FLOPPY_BAD_REGISTERS             ((NTSTATUS)0xC0000168)
-#define STATUS_DISK_RECALIBRATE_FAILED          ((NTSTATUS)0xC0000169)
-#define STATUS_DISK_OPERATION_FAILED            ((NTSTATUS)0xC000016A)
-#define STATUS_DISK_RESET_FAILED                ((NTSTATUS)0xC000016B)
-#define STATUS_SHARED_IRQ_BUSY                  ((NTSTATUS)0xC000016C)
-#define STATUS_FT_ORPHANING                     ((NTSTATUS)0xC000016D)
-#define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT ((NTSTATUS)0xC000016E)
-
-#define STATUS_PARTITION_FAILURE                ((NTSTATUS)0xC0000172)
-#define STATUS_INVALID_BLOCK_LENGTH             ((NTSTATUS)0xC0000173)
-#define STATUS_DEVICE_NOT_PARTITIONED           ((NTSTATUS)0xC0000174)
-#define STATUS_UNABLE_TO_LOCK_MEDIA             ((NTSTATUS)0xC0000175)
-#define STATUS_UNABLE_TO_UNLOAD_MEDIA           ((NTSTATUS)0xC0000176)
-#define STATUS_EOM_OVERFLOW                     ((NTSTATUS)0xC0000177)
-#define STATUS_NO_MEDIA                         ((NTSTATUS)0xC0000178)
-#define STATUS_NO_SUCH_MEMBER                   ((NTSTATUS)0xC000017A)
-#define STATUS_INVALID_MEMBER                   ((NTSTATUS)0xC000017B)
-#define STATUS_KEY_DELETED                      ((NTSTATUS)0xC000017C)
-#define STATUS_NO_LOG_SPACE                     ((NTSTATUS)0xC000017D)
-#define STATUS_TOO_MANY_SIDS                    ((NTSTATUS)0xC000017E)
-#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED     ((NTSTATUS)0xC000017F)
-#define STATUS_KEY_HAS_CHILDREN                 ((NTSTATUS)0xC0000180)
-#define STATUS_CHILD_MUST_BE_VOLATILE           ((NTSTATUS)0xC0000181)
-#define STATUS_DEVICE_CONFIGURATION_ERROR       ((NTSTATUS)0xC0000182)
-#define STATUS_DRIVER_INTERNAL_ERROR            ((NTSTATUS)0xC0000183)
-#define STATUS_INVALID_DEVICE_STATE             ((NTSTATUS)0xC0000184)
-#define STATUS_IO_DEVICE_ERROR                  ((NTSTATUS)0xC0000185)
-#define STATUS_DEVICE_PROTOCOL_ERROR            ((NTSTATUS)0xC0000186)
-#define STATUS_BACKUP_CONTROLLER                ((NTSTATUS)0xC0000187)
-#define STATUS_LOG_FILE_FULL                    ((NTSTATUS)0xC0000188)
-#define STATUS_TOO_LATE                         ((NTSTATUS)0xC0000189)
-#define STATUS_NO_TRUST_LSA_SECRET              ((NTSTATUS)0xC000018A)
-#define STATUS_NO_TRUST_SAM_ACCOUNT             ((NTSTATUS)0xC000018B)
-#define STATUS_TRUSTED_DOMAIN_FAILURE           ((NTSTATUS)0xC000018C)
-#define STATUS_TRUSTED_RELATIONSHIP_FAILURE     ((NTSTATUS)0xC000018D)
-#define STATUS_EVENTLOG_FILE_CORRUPT            ((NTSTATUS)0xC000018E)
-#define STATUS_EVENTLOG_CANT_START              ((NTSTATUS)0xC000018F)
-#define STATUS_TRUST_FAILURE                    ((NTSTATUS)0xC0000190)
-#define STATUS_MUTANT_LIMIT_EXCEEDED            ((NTSTATUS)0xC0000191)
-#define STATUS_NETLOGON_NOT_STARTED             ((NTSTATUS)0xC0000192)
-#define STATUS_ACCOUNT_EXPIRED                  ((NTSTATUS)0xC0000193)
-#define STATUS_POSSIBLE_DEADLOCK                ((NTSTATUS)0xC0000194)
-#define STATUS_NETWORK_CREDENTIAL_CONFLICT      ((NTSTATUS)0xC0000195)
-#define STATUS_REMOTE_SESSION_LIMIT             ((NTSTATUS)0xC0000196)
-#define STATUS_EVENTLOG_FILE_CHANGED            ((NTSTATUS)0xC0000197)
-#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT ((NTSTATUS)0xC0000198)
-#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT ((NTSTATUS)0xC0000199)
-#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT     ((NTSTATUS)0xC000019A)
-#define STATUS_DOMAIN_TRUST_INCONSISTENT        ((NTSTATUS)0xC000019B)
-#define STATUS_FS_DRIVER_REQUIRED               ((NTSTATUS)0xC000019C)
-#define STATUS_NO_USER_SESSION_KEY              ((NTSTATUS)0xC0000202)
-#define STATUS_USER_SESSION_DELETED             ((NTSTATUS)0xC0000203)
-#define STATUS_RESOURCE_LANG_NOT_FOUND          ((NTSTATUS)0xC0000204)
-#define STATUS_INSUFF_SERVER_RESOURCES          ((NTSTATUS)0xC0000205)
-#define STATUS_INVALID_BUFFER_SIZE              ((NTSTATUS)0xC0000206)
-#define STATUS_INVALID_ADDRESS_COMPONENT        ((NTSTATUS)0xC0000207)
-#define STATUS_INVALID_ADDRESS_WILDCARD         ((NTSTATUS)0xC0000208)
-#define STATUS_TOO_MANY_ADDRESSES               ((NTSTATUS)0xC0000209)
-#define STATUS_ADDRESS_ALREADY_EXISTS           ((NTSTATUS)0xC000020A)
-#define STATUS_ADDRESS_CLOSED                   ((NTSTATUS)0xC000020B)
-#define STATUS_CONNECTION_DISCONNECTED          ((NTSTATUS)0xC000020C)
-#define STATUS_CONNECTION_RESET                 ((NTSTATUS)0xC000020D)
-#define STATUS_TOO_MANY_NODES                   ((NTSTATUS)0xC000020E)
-#define STATUS_TRANSACTION_ABORTED              ((NTSTATUS)0xC000020F)
-#define STATUS_TRANSACTION_TIMED_OUT            ((NTSTATUS)0xC0000210)
-#define STATUS_TRANSACTION_NO_RELEASE           ((NTSTATUS)0xC0000211)
-#define STATUS_TRANSACTION_NO_MATCH             ((NTSTATUS)0xC0000212)
-#define STATUS_TRANSACTION_RESPONDED            ((NTSTATUS)0xC0000213)
-#define STATUS_TRANSACTION_INVALID_ID           ((NTSTATUS)0xC0000214)
-#define STATUS_TRANSACTION_INVALID_TYPE         ((NTSTATUS)0xC0000215)
-#define STATUS_NOT_SERVER_SESSION               ((NTSTATUS)0xC0000216)
-#define STATUS_NOT_CLIENT_SESSION               ((NTSTATUS)0xC0000217)
-#define STATUS_CANNOT_LOAD_REGISTRY_FILE        ((NTSTATUS)0xC0000218)
-#define STATUS_DEBUG_ATTACH_FAILED              ((NTSTATUS)0xC0000219)
-#define STATUS_SYSTEM_PROCESS_TERMINATED        ((NTSTATUS)0xC000021A)
-#define STATUS_DATA_NOT_ACCEPTED                ((NTSTATUS)0xC000021B)
-#define STATUS_NO_BROWSER_SERVERS_FOUND         ((NTSTATUS)0xC000021C)
-#define STATUS_VDM_HARD_ERROR                   ((NTSTATUS)0xC000021D)
-#define STATUS_DRIVER_CANCEL_TIMEOUT            ((NTSTATUS)0xC000021E)
-#define STATUS_REPLY_MESSAGE_MISMATCH           ((NTSTATUS)0xC000021F)
-#define STATUS_MAPPED_ALIGNMENT                 ((NTSTATUS)0xC0000220)
-#define STATUS_IMAGE_CHECKSUM_MISMATCH          ((NTSTATUS)0xC0000221)
-#define STATUS_LOST_WRITEBEHIND_DATA            ((NTSTATUS)0xC0000222)
-#define STATUS_CLIENT_SERVER_PARAMETERS_INVALID ((NTSTATUS)0xC0000223)
-#define STATUS_PASSWORD_MUST_CHANGE             ((NTSTATUS)0xC0000224)
-#define STATUS_NOT_FOUND                        ((NTSTATUS)0xC0000225)
-#define STATUS_NOT_TINY_STREAM                  ((NTSTATUS)0xC0000226)
-#define STATUS_RECOVERY_FAILURE                 ((NTSTATUS)0xC0000227)
-#define STATUS_STACK_OVERFLOW_READ              ((NTSTATUS)0xC0000228)
-#define STATUS_FAIL_CHECK                       ((NTSTATUS)0xC0000229)
-#define STATUS_DUPLICATE_OBJECTID               ((NTSTATUS)0xC000022A)
-#define STATUS_OBJECTID_EXISTS                  ((NTSTATUS)0xC000022B)
-#define STATUS_CONVERT_TO_LARGE                 ((NTSTATUS)0xC000022C)
-#define STATUS_RETRY                            ((NTSTATUS)0xC000022D)
-#define STATUS_FOUND_OUT_OF_SCOPE               ((NTSTATUS)0xC000022E)
-#define STATUS_ALLOCATE_BUCKET                  ((NTSTATUS)0xC000022F)
-#define STATUS_PROPSET_NOT_FOUND                ((NTSTATUS)0xC0000230)
-#define STATUS_MARSHALL_OVERFLOW                ((NTSTATUS)0xC0000231)
-#define STATUS_INVALID_VARIANT                  ((NTSTATUS)0xC0000232)
-#define STATUS_DOMAIN_CONTROLLER_NOT_FOUND      ((NTSTATUS)0xC0000233)
-#define STATUS_ACCOUNT_LOCKED_OUT               ((NTSTATUS)0xC0000234)
-#define STATUS_HANDLE_NOT_CLOSABLE              ((NTSTATUS)0xC0000235)
-#define STATUS_CONNECTION_REFUSED               ((NTSTATUS)0xC0000236)
-#define STATUS_GRACEFUL_DISCONNECT              ((NTSTATUS)0xC0000237)
-#define STATUS_ADDRESS_ALREADY_ASSOCIATED       ((NTSTATUS)0xC0000238)
-#define STATUS_ADDRESS_NOT_ASSOCIATED           ((NTSTATUS)0xC0000239)
-#define STATUS_CONNECTION_INVALID               ((NTSTATUS)0xC000023A)
-#define STATUS_CONNECTION_ACTIVE                ((NTSTATUS)0xC000023B)
-#define STATUS_NETWORK_UNREACHABLE              ((NTSTATUS)0xC000023C)
-#define STATUS_HOST_UNREACHABLE                 ((NTSTATUS)0xC000023D)
-#define STATUS_PROTOCOL_UNREACHABLE             ((NTSTATUS)0xC000023E)
-#define STATUS_PORT_UNREACHABLE                 ((NTSTATUS)0xC000023F)
-#define STATUS_REQUEST_ABORTED                  ((NTSTATUS)0xC0000240)
-#define STATUS_CONNECTION_ABORTED               ((NTSTATUS)0xC0000241)
-#define STATUS_BAD_COMPRESSION_BUFFER           ((NTSTATUS)0xC0000242)
-#define STATUS_USER_MAPPED_FILE                 ((NTSTATUS)0xC0000243)
-#define STATUS_AUDIT_FAILED                     ((NTSTATUS)0xC0000244)
-#define STATUS_TIMER_RESOLUTION_NOT_SET         ((NTSTATUS)0xC0000245)
-#define STATUS_CONNECTION_COUNT_LIMIT           ((NTSTATUS)0xC0000246)
-#define STATUS_LOGIN_TIME_RESTRICTION           ((NTSTATUS)0xC0000247)
-#define STATUS_LOGIN_WKSTA_RESTRICTION          ((NTSTATUS)0xC0000248)
-#define STATUS_IMAGE_MP_UP_MISMATCH             ((NTSTATUS)0xC0000249)
-#define STATUS_INSUFFICIENT_LOGON_INFO          ((NTSTATUS)0xC0000250)
-#define STATUS_BAD_DLL_ENTRYPOINT               ((NTSTATUS)0xC0000251)
-#define STATUS_BAD_SERVICE_ENTRYPOINT           ((NTSTATUS)0xC0000252)
-#define STATUS_LPC_REPLY_LOST                   ((NTSTATUS)0xC0000253)
-#define STATUS_IP_ADDRESS_CONFLICT1             ((NTSTATUS)0xC0000254)
-#define STATUS_IP_ADDRESS_CONFLICT2             ((NTSTATUS)0xC0000255)
-#define STATUS_REGISTRY_QUOTA_LIMIT             ((NTSTATUS)0xC0000256)
-#define STATUS_PATH_NOT_COVERED                 ((NTSTATUS)0xC0000257)
-#define STATUS_NO_CALLBACK_ACTIVE               ((NTSTATUS)0xC0000258)
-#define STATUS_LICENSE_QUOTA_EXCEEDED           ((NTSTATUS)0xC0000259)
-#define STATUS_PWD_TOO_SHORT                    ((NTSTATUS)0xC000025A)
-#define STATUS_PWD_TOO_RECENT                   ((NTSTATUS)0xC000025B)
-#define STATUS_PWD_HISTORY_CONFLICT             ((NTSTATUS)0xC000025C)
-#define STATUS_PLUGPLAY_NO_DEVICE               ((NTSTATUS)0xC000025E)
-#define STATUS_UNSUPPORTED_COMPRESSION          ((NTSTATUS)0xC000025F)
-#define STATUS_INVALID_HW_PROFILE               ((NTSTATUS)0xC0000260)
-#define STATUS_INVALID_PLUGPLAY_DEVICE_PATH     ((NTSTATUS)0xC0000261)
-#define STATUS_DRIVER_ORDINAL_NOT_FOUND         ((NTSTATUS)0xC0000262)
-#define STATUS_DRIVER_ENTRYPOINT_NOT_FOUND      ((NTSTATUS)0xC0000263)
-#define STATUS_RESOURCE_NOT_OWNED               ((NTSTATUS)0xC0000264)
-#define STATUS_TOO_MANY_LINKS                   ((NTSTATUS)0xC0000265)
-#define STATUS_QUOTA_LIST_INCONSISTENT          ((NTSTATUS)0xC0000266)
-#define STATUS_FILE_IS_OFFLINE                  ((NTSTATUS)0xC0000267)
-#define STATUS_EVALUATION_EXPIRATION            ((NTSTATUS)0xC0000268)
-#define STATUS_ILLEGAL_DLL_RELOCATION           ((NTSTATUS)0xC0000269)
-#define STATUS_LICENSE_VIOLATION                ((NTSTATUS)0xC000026A)
-#define STATUS_DLL_INIT_FAILED_LOGOFF           ((NTSTATUS)0xC000026B)
-#define STATUS_DRIVER_UNABLE_TO_LOAD            ((NTSTATUS)0xC000026C)
-#define STATUS_DFS_UNAVAILABLE                  ((NTSTATUS)0xC000026D)
-#define STATUS_VOLUME_DISMOUNTED                ((NTSTATUS)0xC000026E)
-#define STATUS_WX86_INTERNAL_ERROR              ((NTSTATUS)0xC000026F)
-#define STATUS_WX86_FLOAT_STACK_CHECK           ((NTSTATUS)0xC0000270)
-#define STATUS_VALIDATE_CONTINUE                ((NTSTATUS)0xC0000271)
-#define STATUS_NO_MATCH                         ((NTSTATUS)0xC0000272)
-#define STATUS_NO_MORE_MATCHES                  ((NTSTATUS)0xC0000273)
-#define STATUS_NOT_A_REPARSE_POINT              ((NTSTATUS)0xC0000275)
-#define STATUS_IO_REPARSE_TAG_INVALID           ((NTSTATUS)0xC0000276)
-#define STATUS_IO_REPARSE_TAG_MISMATCH          ((NTSTATUS)0xC0000277)
-#define STATUS_IO_REPARSE_DATA_INVALID          ((NTSTATUS)0xC0000278)
-#define STATUS_IO_REPARSE_TAG_NOT_HANDLED       ((NTSTATUS)0xC0000279)
-#define STATUS_REPARSE_POINT_NOT_RESOLVED       ((NTSTATUS)0xC0000280)
-#define STATUS_DIRECTORY_IS_A_REPARSE_POINT     ((NTSTATUS)0xC0000281)
-#define STATUS_RANGE_LIST_CONFLICT              ((NTSTATUS)0xC0000282)
-#define STATUS_SOURCE_ELEMENT_EMPTY             ((NTSTATUS)0xC0000283)
-#define STATUS_DESTINATION_ELEMENT_FULL         ((NTSTATUS)0xC0000284)
-#define STATUS_ILLEGAL_ELEMENT_ADDRESS          ((NTSTATUS)0xC0000285)
-#define STATUS_MAGAZINE_NOT_PRESENT             ((NTSTATUS)0xC0000286)
-#define STATUS_REINITIALIZATION_NEEDED          ((NTSTATUS)0xC0000287)
-#define STATUS_ENCRYPTION_FAILED                ((NTSTATUS)0xC000028A)
-#define STATUS_DECRYPTION_FAILED                ((NTSTATUS)0xC000028B)
-#define STATUS_RANGE_NOT_FOUND                  ((NTSTATUS)0xC000028C)
-#define STATUS_NO_RECOVERY_POLICY               ((NTSTATUS)0xC000028D)
-#define STATUS_NO_EFS                           ((NTSTATUS)0xC000028E)
-#define STATUS_WRONG_EFS                        ((NTSTATUS)0xC000028F)
-#define STATUS_NO_USER_KEYS                     ((NTSTATUS)0xC0000290)
-#define STATUS_FILE_NOT_ENCRYPTED               ((NTSTATUS)0xC0000291)
-#define STATUS_NOT_EXPORT_FORMAT                ((NTSTATUS)0xC0000292)
-#define STATUS_FILE_ENCRYPTED                   ((NTSTATUS)0xC0000293)
-#define STATUS_WMI_GUID_NOT_FOUND               ((NTSTATUS)0xC0000295)
-#define STATUS_WMI_INSTANCE_NOT_FOUND           ((NTSTATUS)0xC0000296)
-#define STATUS_WMI_ITEMID_NOT_FOUND             ((NTSTATUS)0xC0000297)
-#define STATUS_WMI_TRY_AGAIN                    ((NTSTATUS)0xC0000298)
-#define STATUS_SHARED_POLICY                    ((NTSTATUS)0xC0000299)
-#define STATUS_POLICY_OBJECT_NOT_FOUND          ((NTSTATUS)0xC000029A)
-#define STATUS_POLICY_ONLY_IN_DS                ((NTSTATUS)0xC000029B)
-#define STATUS_VOLUME_NOT_UPGRADED              ((NTSTATUS)0xC000029C)
-#define STATUS_REMOTE_STORAGE_NOT_ACTIVE        ((NTSTATUS)0xC000029D)
-#define STATUS_REMOTE_STORAGE_MEDIA_ERROR       ((NTSTATUS)0xC000029E)
-#define STATUS_NO_TRACKING_SERVICE              ((NTSTATUS)0xC000029F)
-#define STATUS_SERVER_SID_MISMATCH              ((NTSTATUS)0xC00002A0)
-#define STATUS_DS_NO_ATTRIBUTE_OR_VALUE         ((NTSTATUS)0xC00002A1)
-#define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX      ((NTSTATUS)0xC00002A2)
-#define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED      ((NTSTATUS)0xC00002A3)
-#define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS     ((NTSTATUS)0xC00002A4)
-#define STATUS_DS_BUSY                          ((NTSTATUS)0xC00002A5)
-#define STATUS_DS_UNAVAILABLE                   ((NTSTATUS)0xC00002A6)
-#define STATUS_DS_NO_RIDS_ALLOCATED             ((NTSTATUS)0xC00002A7)
-#define STATUS_DS_NO_MORE_RIDS                  ((NTSTATUS)0xC00002A8)
-#define STATUS_DS_INCORRECT_ROLE_OWNER          ((NTSTATUS)0xC00002A9)
-#define STATUS_DS_RIDMGR_INIT_ERROR             ((NTSTATUS)0xC00002AA)
-#define STATUS_DS_OBJ_CLASS_VIOLATION           ((NTSTATUS)0xC00002AB)
-#define STATUS_DS_CANT_ON_NON_LEAF              ((NTSTATUS)0xC00002AC)
-#define STATUS_DS_CANT_ON_RDN                   ((NTSTATUS)0xC00002AD)
-#define STATUS_DS_CANT_MOD_OBJ_CLASS            ((NTSTATUS)0xC00002AE)
-#define STATUS_DS_CROSS_DOM_MOVE_FAILED         ((NTSTATUS)0xC00002AF)
-#define STATUS_DS_GC_NOT_AVAILABLE              ((NTSTATUS)0xC00002B0)
-#define STATUS_DIRECTORY_SERVICE_REQUIRED       ((NTSTATUS)0xC00002B1)
-#define STATUS_REPARSE_ATTRIBUTE_CONFLICT       ((NTSTATUS)0xC00002B2)
-#define STATUS_CANT_ENABLE_DENY_ONLY            ((NTSTATUS)0xC00002B3)
-#define STATUS_FLOAT_MULTIPLE_FAULTS            ((NTSTATUS)0xC00002B4)
-#define STATUS_FLOAT_MULTIPLE_TRAPS             ((NTSTATUS)0xC00002B5)
-#define STATUS_DEVICE_REMOVED                   ((NTSTATUS)0xC00002B6)
-#define STATUS_JOURNAL_DELETE_IN_PROGRESS       ((NTSTATUS)0xC00002B7)
-#define STATUS_JOURNAL_NOT_ACTIVE               ((NTSTATUS)0xC00002B8)
-#define STATUS_NOINTERFACE                      ((NTSTATUS)0xC00002B9)
-#define STATUS_DS_ADMIN_LIMIT_EXCEEDED          ((NTSTATUS)0xC00002C1)
-#define STATUS_DRIVER_FAILED_SLEEP              ((NTSTATUS)0xC00002C2)
-#define STATUS_MUTUAL_AUTHENTICATION_FAILED     ((NTSTATUS)0xC00002C3)
-#define STATUS_CORRUPT_SYSTEM_FILE              ((NTSTATUS)0xC00002C4)
-#define STATUS_DATATYPE_MISALIGNMENT_ERROR      ((NTSTATUS)0xC00002C5)
-#define STATUS_WMI_READ_ONLY                    ((NTSTATUS)0xC00002C6)
-#define STATUS_WMI_SET_FAILURE                  ((NTSTATUS)0xC00002C7)
-#define STATUS_COMMITMENT_MINIMUM               ((NTSTATUS)0xC00002C8)
-#define STATUS_REG_NAT_CONSUMPTION              ((NTSTATUS)0xC00002C9)
-#define STATUS_TRANSPORT_FULL                   ((NTSTATUS)0xC00002CA)
-#define STATUS_DS_SAM_INIT_FAILURE              ((NTSTATUS)0xC00002CB)
-#define STATUS_ONLY_IF_CONNECTED                ((NTSTATUS)0xC00002CC)
-#define STATUS_DS_SENSITIVE_GROUP_VIOLATION     ((NTSTATUS)0xC00002CD)
-#define STATUS_PNP_RESTART_ENUMERATION          ((NTSTATUS)0xC00002CE)
-#define STATUS_JOURNAL_ENTRY_DELETED            ((NTSTATUS)0xC00002CF)
-#define STATUS_DS_CANT_MOD_PRIMARYGROUPID       ((NTSTATUS)0xC00002D0)
-#define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE       ((NTSTATUS)0xC00002D1)
-#define STATUS_PNP_REBOOT_REQUIRED              ((NTSTATUS)0xC00002D2)
-#define STATUS_POWER_STATE_INVALID              ((NTSTATUS)0xC00002D3)
-#define STATUS_DS_INVALID_GROUP_TYPE                            ((NTSTATUS)0xC00002D4)
-#define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN            ((NTSTATUS)0xC00002D5)
-#define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN             ((NTSTATUS)0xC00002D6)
-#define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER                 ((NTSTATUS)0xC00002D7)
-#define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER             ((NTSTATUS)0xC00002D8)
-#define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER              ((NTSTATUS)0xC00002D9)
-#define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER           ((NTSTATUS)0xC00002DA)
-#define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER      ((NTSTATUS)0xC00002DB)
-#define STATUS_DS_HAVE_PRIMARY_MEMBERS                          ((NTSTATUS)0xC00002DC)
-#define STATUS_WMI_NOT_SUPPORTED                        ((NTSTATUS)0xC00002DD)
-#define STATUS_INSUFFICIENT_POWER                       ((NTSTATUS)0xC00002DE)
-#define STATUS_SAM_NEED_BOOTKEY_PASSWORD                ((NTSTATUS)0xC00002DF)
-#define STATUS_SAM_NEED_BOOTKEY_FLOPPY                  ((NTSTATUS)0xC00002E0)
-#define STATUS_DS_CANT_START                            ((NTSTATUS)0xC00002E1)
-#define STATUS_DS_INIT_FAILURE                          ((NTSTATUS)0xC00002E2)
-#define STATUS_SAM_INIT_FAILURE                         ((NTSTATUS)0xC00002E3)
-#define STATUS_DS_GC_REQUIRED                           ((NTSTATUS)0xC00002E4)
-#define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY            ((NTSTATUS)0xC00002E5)
-#define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS            ((NTSTATUS)0xC00002E6)
-#define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED        ((NTSTATUS)0xC00002E7)
-#define STATUS_MULTIPLE_FAULT_VIOLATION         ((NTSTATUS)0xC00002E8)
-#define STATUS_CURRENT_DOMAIN_NOT_ALLOWED       ((NTSTATUS)0xC00002E9)
-#define STATUS_CANNOT_MAKE                      ((NTSTATUS)0xC00002EA)
-#define STATUS_SYSTEM_SHUTDOWN                  ((NTSTATUS)0xC00002EB)
-#define STATUS_DS_INIT_FAILURE_CONSOLE          ((NTSTATUS)0xC00002EC)
-#define STATUS_DS_SAM_INIT_FAILURE_CONSOLE      ((NTSTATUS)0xC00002ED)
-#define STATUS_UNFINISHED_CONTEXT_DELETED       ((NTSTATUS)0xC00002EE)
-#define STATUS_NO_TGT_REPLY                     ((NTSTATUS)0xC00002EF)
-#define STATUS_OBJECTID_NOT_FOUND               ((NTSTATUS)0xC00002F0)
-#define STATUS_NO_IP_ADDRESSES                  ((NTSTATUS)0xC00002F1)
-#define STATUS_WRONG_CREDENTIAL_HANDLE          ((NTSTATUS)0xC00002F2)
-#define STATUS_CRYPTO_SYSTEM_INVALID            ((NTSTATUS)0xC00002F3)
-#define STATUS_MAX_REFERRALS_EXCEEDED           ((NTSTATUS)0xC00002F4)
-#define STATUS_MUST_BE_KDC                      ((NTSTATUS)0xC00002F5)
-#define STATUS_STRONG_CRYPTO_NOT_SUPPORTED      ((NTSTATUS)0xC00002F6)
-#define STATUS_TOO_MANY_PRINCIPALS              ((NTSTATUS)0xC00002F7)
-#define STATUS_NO_PA_DATA                       ((NTSTATUS)0xC00002F8)
-#define STATUS_PKINIT_NAME_MISMATCH             ((NTSTATUS)0xC00002F9)
-#define STATUS_SMARTCARD_LOGON_REQUIRED         ((NTSTATUS)0xC00002FA)
-#define STATUS_KDC_INVALID_REQUEST              ((NTSTATUS)0xC00002FB)
-#define STATUS_KDC_UNABLE_TO_REFER              ((NTSTATUS)0xC00002FC)
-#define STATUS_KDC_UNKNOWN_ETYPE                ((NTSTATUS)0xC00002FD)
-#define STATUS_SHUTDOWN_IN_PROGRESS             ((NTSTATUS)0xC00002FE)
-#define STATUS_SERVER_SHUTDOWN_IN_PROGRESS      ((NTSTATUS)0xC00002FF)
-#define STATUS_NOT_SUPPORTED_ON_SBS             ((NTSTATUS)0xC0000300)
-#define STATUS_WMI_GUID_DISCONNECTED            ((NTSTATUS)0xC0000301)
-#define STATUS_WMI_ALREADY_DISABLED             ((NTSTATUS)0xC0000302)
-#define STATUS_WMI_ALREADY_ENABLED              ((NTSTATUS)0xC0000303)
-#define STATUS_MFT_TOO_FRAGMENTED               ((NTSTATUS)0xC0000304)
-#define STATUS_COPY_PROTECTION_FAILURE          ((NTSTATUS)0xC0000305)
-#define STATUS_CSS_AUTHENTICATION_FAILURE       ((NTSTATUS)0xC0000306)
-#define STATUS_CSS_KEY_NOT_PRESENT              ((NTSTATUS)0xC0000307)
-#define STATUS_CSS_KEY_NOT_ESTABLISHED          ((NTSTATUS)0xC0000308)
-#define STATUS_CSS_SCRAMBLED_SECTOR             ((NTSTATUS)0xC0000309)
-#define STATUS_CSS_REGION_MISMATCH              ((NTSTATUS)0xC000030A)
-#define STATUS_CSS_RESETS_EXHAUSTED             ((NTSTATUS)0xC000030B)
-#define STATUS_PKINIT_FAILURE                   ((NTSTATUS)0xC0000320)
-#define STATUS_SMARTCARD_SUBSYSTEM_FAILURE      ((NTSTATUS)0xC0000321)
-#define STATUS_NO_KERB_KEY                      ((NTSTATUS)0xC0000322)
-#define STATUS_HOST_DOWN                        ((NTSTATUS)0xC0000350)
-#define STATUS_UNSUPPORTED_PREAUTH              ((NTSTATUS)0xC0000351)
-#define STATUS_EFS_ALG_BLOB_TOO_BIG             ((NTSTATUS)0xC0000352)
-#define STATUS_PORT_NOT_SET                     ((NTSTATUS)0xC0000353)
-#define STATUS_DEBUGGER_INACTIVE                ((NTSTATUS)0xC0000354)
-#define STATUS_DS_VERSION_CHECK_FAILURE         ((NTSTATUS)0xC0000355)
-#define STATUS_AUDITING_DISABLED                ((NTSTATUS)0xC0000356)
-#define STATUS_PRENT4_MACHINE_ACCOUNT           ((NTSTATUS)0xC0000357)
-#define STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS)0xC0000358)
-#define STATUS_INVALID_IMAGE_WIN_32             ((NTSTATUS)0xC0000359)
-#define STATUS_INVALID_IMAGE_WIN_64             ((NTSTATUS)0xC000035A)
-#define STATUS_BAD_BINDINGS                     ((NTSTATUS)0xC000035B)
-#define STATUS_NETWORK_SESSION_EXPIRED          ((NTSTATUS)0xC000035C)
-#define STATUS_APPHELP_BLOCK                    ((NTSTATUS)0xC000035D)
-#define STATUS_ALL_SIDS_FILTERED                ((NTSTATUS)0xC000035E)
-#define STATUS_NOT_SAFE_MODE_DRIVER             ((NTSTATUS)0xC000035F)
-#define STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT        ((NTSTATUS)0xC0000361)
-#define STATUS_ACCESS_DISABLED_BY_POLICY_PATH           ((NTSTATUS)0xC0000362)
-#define STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER      ((NTSTATUS)0xC0000363)
-#define STATUS_ACCESS_DISABLED_BY_POLICY_OTHER          ((NTSTATUS)0xC0000364)
-#define STATUS_FAILED_DRIVER_ENTRY              ((NTSTATUS)0xC0000365)
-#define STATUS_DEVICE_ENUMERATION_ERROR         ((NTSTATUS)0xC0000366)
-#define STATUS_WAIT_FOR_OPLOCK                  ((NTSTATUS)0x00000367)
-#define STATUS_MOUNT_POINT_NOT_RESOLVED         ((NTSTATUS)0xC0000368)
-#define STATUS_INVALID_DEVICE_OBJECT_PARAMETER  ((NTSTATUS)0xC0000369)
-#define STATUS_MCA_OCCURED                      ((NTSTATUS)0xC000036A)
-#define STATUS_DRIVER_BLOCKED_CRITICAL          ((NTSTATUS)0xC000036B)
-#define STATUS_DRIVER_BLOCKED                   ((NTSTATUS)0xC000036C)
-#define STATUS_DRIVER_DATABASE_ERROR            ((NTSTATUS)0xC000036D)
-#define STATUS_SYSTEM_HIVE_TOO_LARGE            ((NTSTATUS)0xC000036E)
-#define STATUS_INVALID_IMPORT_OF_NON_DLL        ((NTSTATUS)0xC000036F)
-#define STATUS_SMARTCARD_WRONG_PIN              ((NTSTATUS)0xC0000380)
-#define STATUS_SMARTCARD_CARD_BLOCKED           ((NTSTATUS)0xC0000381)
-#define STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED ((NTSTATUS)0xC0000382)
-#define STATUS_SMARTCARD_NO_CARD                ((NTSTATUS)0xC0000383)
-#define STATUS_SMARTCARD_NO_KEY_CONTAINER       ((NTSTATUS)0xC0000384)
-#define STATUS_SMARTCARD_NO_CERTIFICATE         ((NTSTATUS)0xC0000385)
-#define STATUS_SMARTCARD_NO_KEYSET              ((NTSTATUS)0xC0000386)
-#define STATUS_SMARTCARD_IO_ERROR               ((NTSTATUS)0xC0000387)
-#define STATUS_DOWNGRADE_DETECTED               ((NTSTATUS)0xC0000388)
-#define STATUS_SMARTCARD_CERT_REVOKED           ((NTSTATUS)0xC0000389)
-#define STATUS_ISSUING_CA_UNTRUSTED             ((NTSTATUS)0xC000038A)
-#define STATUS_REVOCATION_OFFLINE_C             ((NTSTATUS)0xC000038B)
-#define STATUS_PKINIT_CLIENT_FAILURE            ((NTSTATUS)0xC000038C)
-#define STATUS_SMARTCARD_CERT_EXPIRED           ((NTSTATUS)0xC000038D)
-#define STATUS_DRIVER_FAILED_PRIOR_UNLOAD       ((NTSTATUS)0xC000038E)
-#define STATUS_SMARTCARD_SILENT_CONTEXT         ((NTSTATUS)0xC000038F)
-#define STATUS_PER_USER_TRUST_QUOTA_EXCEEDED    ((NTSTATUS)0xC0000401)
-#define STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED    ((NTSTATUS)0xC0000402)
-#define STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED ((NTSTATUS)0xC0000403)
-#define STATUS_DS_NAME_NOT_UNIQUE               ((NTSTATUS)0xC0000404)
-#define STATUS_DS_DUPLICATE_ID_FOUND            ((NTSTATUS)0xC0000405)
-#define STATUS_DS_GROUP_CONVERSION_ERROR        ((NTSTATUS)0xC0000406)
-#define STATUS_VOLSNAP_PREPARE_HIBERNATE        ((NTSTATUS)0xC0000407)
-#define STATUS_USER2USER_REQUIRED               ((NTSTATUS)0xC0000408)
-#define STATUS_STACK_BUFFER_OVERRUN             ((NTSTATUS)0xC0000409)
-#define STATUS_NO_S4U_PROT_SUPPORT              ((NTSTATUS)0xC000040A)
-#define STATUS_CROSSREALM_DELEGATION_FAILURE    ((NTSTATUS)0xC000040B)
-#define STATUS_REVOCATION_OFFLINE_KDC           ((NTSTATUS)0xC000040C)
-#define STATUS_ISSUING_CA_UNTRUSTED_KDC         ((NTSTATUS)0xC000040D)
-#define STATUS_KDC_CERT_EXPIRED                 ((NTSTATUS)0xC000040E)
-#define STATUS_KDC_CERT_REVOKED                 ((NTSTATUS)0xC000040F)
-#define STATUS_PARAMETER_QUOTA_EXCEEDED         ((NTSTATUS)0xC0000410)
-#define STATUS_HIBERNATION_FAILURE              ((NTSTATUS)0xC0000411)
-#define STATUS_DELAY_LOAD_FAILED                ((NTSTATUS)0xC0000412)
-#define STATUS_AUTHENTICATION_FIREWALL_FAILED   ((NTSTATUS)0xC0000413)
-#define STATUS_VDM_DISALLOWED                   ((NTSTATUS)0xC0000414)
-#define STATUS_HUNG_DISPLAY_DRIVER_THREAD       ((NTSTATUS)0xC0000415)
-#define STATUS_ASSERTION_FAILURE                ((NTSTATUS)0xC0000420L)
-#define STATUS_CALLBACK_POP_STACK               ((NTSTATUS)0xC0000423)
-#define STATUS_WOW_ASSERTION                    ((NTSTATUS)0xC0009898)
-
-#define RPC_NT_INVALID_STRING_BINDING    ((NTSTATUS)0xC0020001)
-#define RPC_NT_WRONG_KIND_OF_BINDING     ((NTSTATUS)0xC0020002)
-#define RPC_NT_INVALID_BINDING           ((NTSTATUS)0xC0020003)
-#define RPC_NT_PROTSEQ_NOT_SUPPORTED     ((NTSTATUS)0xC0020004)
-#define RPC_NT_INVALID_RPC_PROTSEQ       ((NTSTATUS)0xC0020005)
-#define RPC_NT_INVALID_STRING_UUID       ((NTSTATUS)0xC0020006)
-#define RPC_NT_INVALID_ENDPOINT_FORMAT   ((NTSTATUS)0xC0020007)
-#define RPC_NT_INVALID_NET_ADDR          ((NTSTATUS)0xC0020008)
-#define RPC_NT_NO_ENDPOINT_FOUND         ((NTSTATUS)0xC0020009)
-#define RPC_NT_INVALID_TIMEOUT           ((NTSTATUS)0xC002000A)
-#define RPC_NT_OBJECT_NOT_FOUND          ((NTSTATUS)0xC002000B)
-#define RPC_NT_ALREADY_REGISTERED        ((NTSTATUS)0xC002000C)
-#define RPC_NT_TYPE_ALREADY_REGISTERED   ((NTSTATUS)0xC002000D)
-#define RPC_NT_ALREADY_LISTENING         ((NTSTATUS)0xC002000E)
-#define RPC_NT_NO_PROTSEQS_REGISTERED    ((NTSTATUS)0xC002000F)
-#define RPC_NT_NOT_LISTENING             ((NTSTATUS)0xC0020010)
-#define RPC_NT_UNKNOWN_MGR_TYPE          ((NTSTATUS)0xC0020011)
-#define RPC_NT_UNKNOWN_IF                ((NTSTATUS)0xC0020012)
-#define RPC_NT_NO_BINDINGS               ((NTSTATUS)0xC0020013)
-#define RPC_NT_NO_PROTSEQS               ((NTSTATUS)0xC0020014)
-#define RPC_NT_CANT_CREATE_ENDPOINT      ((NTSTATUS)0xC0020015)
-#define RPC_NT_OUT_OF_RESOURCES          ((NTSTATUS)0xC0020016)
-#define RPC_NT_SERVER_UNAVAILABLE        ((NTSTATUS)0xC0020017)
-#define RPC_NT_SERVER_TOO_BUSY           ((NTSTATUS)0xC0020018)
-#define RPC_NT_INVALID_NETWORK_OPTIONS   ((NTSTATUS)0xC0020019)
-#define RPC_NT_NO_CALL_ACTIVE            ((NTSTATUS)0xC002001A)
-#define RPC_NT_CALL_FAILED               ((NTSTATUS)0xC002001B)
-#define RPC_NT_CALL_FAILED_DNE           ((NTSTATUS)0xC002001C)
-#define RPC_NT_PROTOCOL_ERROR            ((NTSTATUS)0xC002001D)
-#define RPC_NT_UNSUPPORTED_TRANS_SYN     ((NTSTATUS)0xC002001F)
-#define RPC_NT_UNSUPPORTED_TYPE          ((NTSTATUS)0xC0020021)
-#define RPC_NT_INVALID_TAG               ((NTSTATUS)0xC0020022)
-#define RPC_NT_INVALID_BOUND             ((NTSTATUS)0xC0020023)
-#define RPC_NT_NO_ENTRY_NAME             ((NTSTATUS)0xC0020024)
-#define RPC_NT_INVALID_NAME_SYNTAX       ((NTSTATUS)0xC0020025)
-#define RPC_NT_UNSUPPORTED_NAME_SYNTAX   ((NTSTATUS)0xC0020026)
-#define RPC_NT_UUID_NO_ADDRESS           ((NTSTATUS)0xC0020028)
-#define RPC_NT_DUPLICATE_ENDPOINT        ((NTSTATUS)0xC0020029)
-#define RPC_NT_UNKNOWN_AUTHN_TYPE        ((NTSTATUS)0xC002002A)
-#define RPC_NT_MAX_CALLS_TOO_SMALL       ((NTSTATUS)0xC002002B)
-#define RPC_NT_STRING_TOO_LONG           ((NTSTATUS)0xC002002C)
-#define RPC_NT_PROTSEQ_NOT_FOUND         ((NTSTATUS)0xC002002D)
-#define RPC_NT_PROCNUM_OUT_OF_RANGE      ((NTSTATUS)0xC002002E)
-#define RPC_NT_BINDING_HAS_NO_AUTH       ((NTSTATUS)0xC002002F)
-#define RPC_NT_UNKNOWN_AUTHN_SERVICE     ((NTSTATUS)0xC0020030)
-#define RPC_NT_UNKNOWN_AUTHN_LEVEL       ((NTSTATUS)0xC0020031)
-#define RPC_NT_INVALID_AUTH_IDENTITY     ((NTSTATUS)0xC0020032)
-#define RPC_NT_UNKNOWN_AUTHZ_SERVICE     ((NTSTATUS)0xC0020033)
-#define EPT_NT_INVALID_ENTRY             ((NTSTATUS)0xC0020034)
-#define EPT_NT_CANT_PERFORM_OP           ((NTSTATUS)0xC0020035)
-#define EPT_NT_NOT_REGISTERED            ((NTSTATUS)0xC0020036)
-#define RPC_NT_NOTHING_TO_EXPORT         ((NTSTATUS)0xC0020037)
-#define RPC_NT_INCOMPLETE_NAME           ((NTSTATUS)0xC0020038)
-#define RPC_NT_INVALID_VERS_OPTION       ((NTSTATUS)0xC0020039)
-#define RPC_NT_NO_MORE_MEMBERS           ((NTSTATUS)0xC002003A)
-#define RPC_NT_NOT_ALL_OBJS_UNEXPORTED   ((NTSTATUS)0xC002003B)
-#define RPC_NT_INTERFACE_NOT_FOUND       ((NTSTATUS)0xC002003C)
-#define RPC_NT_ENTRY_ALREADY_EXISTS      ((NTSTATUS)0xC002003D)
-#define RPC_NT_ENTRY_NOT_FOUND           ((NTSTATUS)0xC002003E)
-#define RPC_NT_NAME_SERVICE_UNAVAILABLE  ((NTSTATUS)0xC002003F)
-#define RPC_NT_INVALID_NAF_ID            ((NTSTATUS)0xC0020040)
-#define RPC_NT_CANNOT_SUPPORT            ((NTSTATUS)0xC0020041)
-#define RPC_NT_NO_CONTEXT_AVAILABLE      ((NTSTATUS)0xC0020042)
-#define RPC_NT_INTERNAL_ERROR            ((NTSTATUS)0xC0020043)
-#define RPC_NT_ZERO_DIVIDE               ((NTSTATUS)0xC0020044)
-#define RPC_NT_ADDRESS_ERROR             ((NTSTATUS)0xC0020045)
-#define RPC_NT_FP_DIV_ZERO               ((NTSTATUS)0xC0020046)
-#define RPC_NT_FP_UNDERFLOW              ((NTSTATUS)0xC0020047)
-#define RPC_NT_FP_OVERFLOW               ((NTSTATUS)0xC0020048)
-#define RPC_NT_CALL_IN_PROGRESS          ((NTSTATUS)0xC0020049)
-#define RPC_NT_NO_MORE_BINDINGS          ((NTSTATUS)0xC002004A)
-#define RPC_NT_GROUP_MEMBER_NOT_FOUND    ((NTSTATUS)0xC002004B)
-#define EPT_NT_CANT_CREATE               ((NTSTATUS)0xC002004C)
-#define RPC_NT_INVALID_OBJECT            ((NTSTATUS)0xC002004D)
-#define RPC_NT_NO_INTERFACES             ((NTSTATUS)0xC002004F)
-#define RPC_NT_CALL_CANCELLED            ((NTSTATUS)0xC0020050)
-#define RPC_NT_BINDING_INCOMPLETE        ((NTSTATUS)0xC0020051)
-#define RPC_NT_COMM_FAILURE              ((NTSTATUS)0xC0020052)
-#define RPC_NT_UNSUPPORTED_AUTHN_LEVEL   ((NTSTATUS)0xC0020053)
-#define RPC_NT_NO_PRINC_NAME             ((NTSTATUS)0xC0020054)
-#define RPC_NT_NOT_RPC_ERROR             ((NTSTATUS)0xC0020055)
-#define RPC_NT_SEC_PKG_ERROR             ((NTSTATUS)0xC0020057)
-#define RPC_NT_NOT_CANCELLED             ((NTSTATUS)0xC0020058)
-#define RPC_NT_INVALID_ASYNC_HANDLE      ((NTSTATUS)0xC0020062)
-#define RPC_NT_INVALID_ASYNC_CALL        ((NTSTATUS)0xC0020063)
-
-#define RPC_NT_NO_MORE_ENTRIES           ((NTSTATUS)0xC0030001)
-#define RPC_NT_SS_CHAR_TRANS_OPEN_FAIL   ((NTSTATUS)0xC0030002)
-#define RPC_NT_SS_CHAR_TRANS_SHORT_FILE  ((NTSTATUS)0xC0030003)
-#define RPC_NT_SS_IN_NULL_CONTEXT        ((NTSTATUS)0xC0030004)
-#define RPC_NT_SS_CONTEXT_MISMATCH       ((NTSTATUS)0xC0030005)
-#define RPC_NT_SS_CONTEXT_DAMAGED        ((NTSTATUS)0xC0030006)
-#define RPC_NT_SS_HANDLES_MISMATCH       ((NTSTATUS)0xC0030007)
-#define RPC_NT_SS_CANNOT_GET_CALL_HANDLE ((NTSTATUS)0xC0030008)
-#define RPC_NT_NULL_REF_POINTER          ((NTSTATUS)0xC0030009)
-#define RPC_NT_ENUM_VALUE_OUT_OF_RANGE   ((NTSTATUS)0xC003000A)
-#define RPC_NT_BYTE_COUNT_TOO_SMALL      ((NTSTATUS)0xC003000B)
-#define RPC_NT_BAD_STUB_DATA             ((NTSTATUS)0xC003000C)
-#define RPC_NT_INVALID_ES_ACTION         ((NTSTATUS)0xC0030059)
-#define RPC_NT_WRONG_ES_VERSION          ((NTSTATUS)0xC003005A)
-#define RPC_NT_WRONG_STUB_VERSION        ((NTSTATUS)0xC003005B)
-#define RPC_NT_INVALID_PIPE_OBJECT       ((NTSTATUS)0xC003005C)
-#define RPC_NT_INVALID_PIPE_OPERATION    ((NTSTATUS)0xC003005D)
-#define RPC_NT_WRONG_PIPE_VERSION        ((NTSTATUS)0xC003005E)
-#define RPC_NT_PIPE_CLOSED               ((NTSTATUS)0xC003005F)
-#define RPC_NT_PIPE_DISCIPLINE_ERROR     ((NTSTATUS)0xC0030060)
-#define RPC_NT_PIPE_EMPTY                ((NTSTATUS)0xC0030061)
-
-#define STATUS_PNP_BAD_MPS_TABLE          ((NTSTATUS)0xC0040035)
-#define STATUS_PNP_TRANSLATION_FAILED     ((NTSTATUS)0xC0040036)
-#define STATUS_PNP_IRQ_TRANSLATION_FAILED ((NTSTATUS)0xC0040037)
-#define STATUS_PNP_INVALID_ID             ((NTSTATUS)0xC0040038)
-
-#define STATUS_ACPI_INVALID_OPCODE              ((NTSTATUS)0xC0140001L)
-#define STATUS_ACPI_STACK_OVERFLOW              ((NTSTATUS)0xC0140002L)
-#define STATUS_ACPI_ASSERT_FAILED               ((NTSTATUS)0xC0140003L)
-#define STATUS_ACPI_INVALID_INDEX               ((NTSTATUS)0xC0140004L)
-#define STATUS_ACPI_INVALID_ARGUMENT            ((NTSTATUS)0xC0140005L)
-#define STATUS_ACPI_FATAL                       ((NTSTATUS)0xC0140006L)
-#define STATUS_ACPI_INVALID_SUPERNAME           ((NTSTATUS)0xC0140007L)
-#define STATUS_ACPI_INVALID_ARGTYPE             ((NTSTATUS)0xC0140008L)
-#define STATUS_ACPI_INVALID_OBJTYPE             ((NTSTATUS)0xC0140009L)
-#define STATUS_ACPI_INVALID_TARGETTYPE          ((NTSTATUS)0xC014000AL)
-#define STATUS_ACPI_INCORRECT_ARGUMENT_COUNT    ((NTSTATUS)0xC014000BL)
-#define STATUS_ACPI_ADDRESS_NOT_MAPPED          ((NTSTATUS)0xC014000CL)
-#define STATUS_ACPI_INVALID_EVENTTYPE           ((NTSTATUS)0xC014000DL)
-#define STATUS_ACPI_HANDLER_COLLISION           ((NTSTATUS)0xC014000EL)
-#define STATUS_ACPI_INVALID_DATA                ((NTSTATUS)0xC014000FL)
-#define STATUS_ACPI_INVALID_REGION              ((NTSTATUS)0xC0140010L)
-#define STATUS_ACPI_INVALID_ACCESS_SIZE         ((NTSTATUS)0xC0140011L)
-#define STATUS_ACPI_ACQUIRE_GLOBAL_LOCK         ((NTSTATUS)0xC0140012L)
-#define STATUS_ACPI_ALREADY_INITIALIZED         ((NTSTATUS)0xC0140013L)
-#define STATUS_ACPI_NOT_INITIALIZED             ((NTSTATUS)0xC0140014L)
-#define STATUS_ACPI_INVALID_MUTEX_LEVEL         ((NTSTATUS)0xC0140015L)
-#define STATUS_ACPI_MUTEX_NOT_OWNED             ((NTSTATUS)0xC0140016L)
-#define STATUS_ACPI_MUTEX_NOT_OWNER             ((NTSTATUS)0xC0140017L)
-#define STATUS_ACPI_RS_ACCESS                   ((NTSTATUS)0xC0140018L)
-#define STATUS_ACPI_INVALID_TABLE               ((NTSTATUS)0xC0140019L)
-#define STATUS_ACPI_REG_HANDLER_FAILED          ((NTSTATUS)0xC0140020L)
-#define STATUS_ACPI_POWER_REQUEST_FAILED        ((NTSTATUS)0xC0140021L)
-
-#define STATUS_CTX_WINSTATION_NAME_INVALID      ((NTSTATUS)0xC00A0001)
-#define STATUS_CTX_INVALID_PD                   ((NTSTATUS)0xC00A0002)
-#define STATUS_CTX_PD_NOT_FOUND                 ((NTSTATUS)0xC00A0003)
-#define STATUS_CTX_CLOSE_PENDING                ((NTSTATUS)0xC00A0006)
-#define STATUS_CTX_NO_OUTBUF                    ((NTSTATUS)0xC00A0007)
-#define STATUS_CTX_MODEM_INF_NOT_FOUND          ((NTSTATUS)0xC00A0008)
-#define STATUS_CTX_INVALID_MODEMNAME            ((NTSTATUS)0xC00A0009)
-#define STATUS_CTX_RESPONSE_ERROR               ((NTSTATUS)0xC00A000A)
-#define STATUS_CTX_MODEM_RESPONSE_TIMEOUT       ((NTSTATUS)0xC00A000B)
-#define STATUS_CTX_MODEM_RESPONSE_NO_CARRIER    ((NTSTATUS)0xC00A000C)
-#define STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE   ((NTSTATUS)0xC00A000D)
-#define STATUS_CTX_MODEM_RESPONSE_BUSY          ((NTSTATUS)0xC00A000E)
-#define STATUS_CTX_MODEM_RESPONSE_VOICE         ((NTSTATUS)0xC00A000F)
-#define STATUS_CTX_TD_ERROR                     ((NTSTATUS)0xC00A0010)
-#define STATUS_CTX_LICENSE_CLIENT_INVALID       ((NTSTATUS)0xC00A0012)
-#define STATUS_CTX_LICENSE_NOT_AVAILABLE        ((NTSTATUS)0xC00A0013)
-#define STATUS_CTX_LICENSE_EXPIRED              ((NTSTATUS)0xC00A0014)
-#define STATUS_CTX_WINSTATION_NOT_FOUND         ((NTSTATUS)0xC00A0015)
-#define STATUS_CTX_WINSTATION_NAME_COLLISION    ((NTSTATUS)0xC00A0016)
-#define STATUS_CTX_WINSTATION_BUSY              ((NTSTATUS)0xC00A0017)
-#define STATUS_CTX_BAD_VIDEO_MODE               ((NTSTATUS)0xC00A0018)
-#define STATUS_CTX_GRAPHICS_INVALID             ((NTSTATUS)0xC00A0022)
-#define STATUS_CTX_NOT_CONSOLE                  ((NTSTATUS)0xC00A0024)
-#define STATUS_CTX_CLIENT_QUERY_TIMEOUT         ((NTSTATUS)0xC00A0026)
-#define STATUS_CTX_CONSOLE_DISCONNECT           ((NTSTATUS)0xC00A0027)
-#define STATUS_CTX_CONSOLE_CONNECT              ((NTSTATUS)0xC00A0028)
-#define STATUS_CTX_SHADOW_DENIED                ((NTSTATUS)0xC00A002A)
-#define STATUS_CTX_WINSTATION_ACCESS_DENIED     ((NTSTATUS)0xC00A002B)
-#define STATUS_CTX_INVALID_WD                   ((NTSTATUS)0xC00A002E)
-#define STATUS_CTX_WD_NOT_FOUND                 ((NTSTATUS)0xC00A002F)
-#define STATUS_CTX_SHADOW_INVALID               ((NTSTATUS)0xC00A0030)
-#define STATUS_CTX_SHADOW_DISABLED              ((NTSTATUS)0xC00A0031)
-#define STATUS_RDP_PROTOCOL_ERROR               ((NTSTATUS)0xC00A0032)
-#define STATUS_CTX_CLIENT_LICENSE_NOT_SET       ((NTSTATUS)0xC00A0033)
-#define STATUS_CTX_CLIENT_LICENSE_IN_USE        ((NTSTATUS)0xC00A0034)
-#define STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE  ((NTSTATUS)0xC00A0035)
-#define STATUS_CTX_SHADOW_NOT_RUNNING           ((NTSTATUS)0xC00A0036)
-
-#define STATUS_CLUSTER_INVALID_NODE             ((NTSTATUS)0xC0130001)
-#define STATUS_CLUSTER_NODE_EXISTS              ((NTSTATUS)0xC0130002)
-#define STATUS_CLUSTER_JOIN_IN_PROGRESS         ((NTSTATUS)0xC0130003)
-#define STATUS_CLUSTER_NODE_NOT_FOUND           ((NTSTATUS)0xC0130004)
-#define STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND     ((NTSTATUS)0xC0130005)
-#define STATUS_CLUSTER_NETWORK_EXISTS           ((NTSTATUS)0xC0130006)
-#define STATUS_CLUSTER_NETWORK_NOT_FOUND        ((NTSTATUS)0xC0130007)
-#define STATUS_CLUSTER_NETINTERFACE_EXISTS      ((NTSTATUS)0xC0130008)
-#define STATUS_CLUSTER_NETINTERFACE_NOT_FOUND   ((NTSTATUS)0xC0130009)
-#define STATUS_CLUSTER_INVALID_REQUEST          ((NTSTATUS)0xC013000A)
-#define STATUS_CLUSTER_INVALID_NETWORK_PROVIDER ((NTSTATUS)0xC013000B)
-#define STATUS_CLUSTER_NODE_DOWN                ((NTSTATUS)0xC013000C)
-#define STATUS_CLUSTER_NODE_UNREACHABLE         ((NTSTATUS)0xC013000D)
-#define STATUS_CLUSTER_NODE_NOT_MEMBER          ((NTSTATUS)0xC013000E)
-#define STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS     ((NTSTATUS)0xC013000F)
-#define STATUS_CLUSTER_INVALID_NETWORK          ((NTSTATUS)0xC0130010)
-#define STATUS_CLUSTER_NO_NET_ADAPTERS          ((NTSTATUS)0xC0130011)
-#define STATUS_CLUSTER_NODE_UP                  ((NTSTATUS)0xC0130012)
-#define STATUS_CLUSTER_NODE_PAUSED              ((NTSTATUS)0xC0130013)
-#define STATUS_CLUSTER_NODE_NOT_PAUSED          ((NTSTATUS)0xC0130014)
-#define STATUS_CLUSTER_NO_SECURITY_CONTEXT      ((NTSTATUS)0xC0130015)
-#define STATUS_CLUSTER_NETWORK_NOT_INTERNAL     ((NTSTATUS)0xC0130016)
-#define STATUS_CLUSTER_POISONED                 ((NTSTATUS)0xC0130017)
-
-#define STATUS_SXS_SECTION_NOT_FOUND            ((NTSTATUS)0xC0150001)
-#define STATUS_SXS_CANT_GEN_ACTCTX              ((NTSTATUS)0xC0150002)
-#define STATUS_SXS_INVALID_ACTCTXDATA_FORMAT    ((NTSTATUS)0xC0150003)
-#define STATUS_SXS_ASSEMBLY_NOT_FOUND           ((NTSTATUS)0xC0150004)
-#define STATUS_SXS_MANIFEST_FORMAT_ERROR        ((NTSTATUS)0xC0150005)
-#define STATUS_SXS_MANIFEST_PARSE_ERROR         ((NTSTATUS)0xC0150006)
-#define STATUS_SXS_ACTIVATION_CONTEXT_DISABLED  ((NTSTATUS)0xC0150007)
-#define STATUS_SXS_KEY_NOT_FOUND                ((NTSTATUS)0xC0150008)
-#define STATUS_SXS_VERSION_CONFLICT             ((NTSTATUS)0xC0150009)
-#define STATUS_SXS_WRONG_SECTION_TYPE           ((NTSTATUS)0xC015000A)
-#define STATUS_SXS_THREAD_QUERIES_DISABLED      ((NTSTATUS)0xC015000B)
-#define STATUS_SXS_ASSEMBLY_MISSING             ((NTSTATUS)0xC015000C)
-#define STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET  ((NTSTATUS)0xC015000E)
-#define STATUS_SXS_EARLY_DEACTIVATION           ((NTSTATUS)0xC015000F)
-#define STATUS_SXS_INVALID_DEACTIVATION         ((NTSTATUS)0xC0150010)
-#define STATUS_SXS_MULTIPLE_DEACTIVATION        ((NTSTATUS)0xC0150011)
-#define STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY ((NTSTATUS)0xC0150012)
-#define STATUS_SXS_PROCESS_TERMINATION_REQUESTED ((NTSTATUS)0xC0150013)
-#define STATUS_SXS_CORRUPT_ACTIVATION_STACK ((NTSTATUS)0xC0150014)
-#define STATUS_SXS_CORRUPTION                   ((NTSTATUS)0xC0150015)
+/*
+* Debug codes
+*/
 
 
-#endif /* WIN32_NO_STATUS */
+#define DBG_EXCEPTION_HANDLED            ((NTSTATUS)0x00010001)
+#define DBG_CONTINUE                     ((NTSTATUS)0x00010002)
+#define DBG_REPLY_LATER                  ((NTSTATUS)0x40010001)
+#define DBG_UNABLE_TO_PROVIDE_HANDLE     ((NTSTATUS)0x40010002)
+#define DBG_TERMINATE_THREAD             ((NTSTATUS)0x40010003)
+#define DBG_TERMINATE_PROCESS            ((NTSTATUS)0x40010004)
+#define DBG_CONTROL_C                    ((NTSTATUS)0x40010005)
+#define DBG_PRINTEXCEPTION_C             ((NTSTATUS)0x40010006)
+#define DBG_RIPEXCEPTION                 ((NTSTATUS)0x40010007)
+#define DBG_CONTROL_BREAK                ((NTSTATUS)0x40010008)
+#define DBG_COMMAND_EXCEPTION            ((NTSTATUS)0x40010009)
+#define DBG_EXCEPTION_NOT_HANDLED        ((NTSTATUS)0x80010001)
+#define DBG_NO_STATE_CHANGE              ((NTSTATUS)0xC0010001)
+#define DBG_APP_NOT_IDLE                 ((NTSTATUS)0xC0010002)
 
 #ifdef __cplusplus
 }
 #endif
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _NTSTATUS_ */
+#endif
index d9aebda..69541cb 100644 (file)
@@ -665,8 +665,6 @@ typedef struct _USB_DEVICE_PERFORMANCE_INFO {
 
 #include <poppack.h>
 
 
 #include <poppack.h>
 
-#endif /* USB_KERNEL_IOCTL */
-
 #ifdef __cplusplus
 }
 #endif
 #ifdef __cplusplus
 }
 #endif
index 6b38dac..b7a5fd2 100644 (file)
@@ -1505,14 +1505,14 @@ DWORD WINAPI GetFirmwareEnvironmentVariableA(LPCSTR,LPCSTR,PVOID,DWORD);
 DWORD WINAPI GetFirmwareEnvironmentVariableW(LPCWSTR,LPCWSTR,PVOID,DWORD);
 #endif
 BOOL WINAPI FlushFileBuffers(HANDLE);
 DWORD WINAPI GetFirmwareEnvironmentVariableW(LPCWSTR,LPCWSTR,PVOID,DWORD);
 #endif
 BOOL WINAPI FlushFileBuffers(HANDLE);
-BOOL WINAPI FlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
-BOOL WINAPI FlushViewOfFile(LPCVOID,SIZE_T);
+BOOL WINAPI FlushInstructionCache(HANDLE,PCVOID,DWORD);
+BOOL WINAPI FlushViewOfFile(PCVOID,SIZE_T);
 DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION);
 PVOID WINAPI FlsGetValue(DWORD);
 BOOL WINAPI FlsSetValue(DWORD,PVOID);
 BOOL WINAPI FlsFree(DWORD);
 DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION);
 PVOID WINAPI FlsGetValue(DWORD);
 BOOL WINAPI FlsSetValue(DWORD,PVOID);
 BOOL WINAPI FlsFree(DWORD);
-DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
-DWORD WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
+DWORD WINAPI FormatMessageA(DWORD,PCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*);
+DWORD WINAPI FormatMessageW(DWORD,PCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*);
 BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
 BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
 BOOL WINAPI FreeLibrary(HMODULE);
 BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
 BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
 BOOL WINAPI FreeLibrary(HMODULE);
@@ -1763,7 +1763,7 @@ UINT WINAPI GlobalFlags(HGLOBAL); /* Obsolete: Has no effect. */
 HGLOBAL WINAPI GlobalFree(HGLOBAL);
 UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,int);
 UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,int);
 HGLOBAL WINAPI GlobalFree(HGLOBAL);
 UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,int);
 UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,int);
-HGLOBAL WINAPI GlobalHandle(LPCVOID);
+HGLOBAL WINAPI GlobalHandle(PCVOID);
 LPVOID WINAPI GlobalLock(HGLOBAL);
 VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
 #if (_WIN32_WINNT >= 0x0500)
 LPVOID WINAPI GlobalLock(HGLOBAL);
 VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
 #if (_WIN32_WINNT >= 0x0500)
@@ -1789,9 +1789,9 @@ PVOID WINAPI HeapReAlloc(HANDLE,DWORD,PVOID,DWORD);
 #if (_WIN32_WINNT >= 0x0501)
 BOOL WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
 #endif
 #if (_WIN32_WINNT >= 0x0501)
 BOOL WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
 #endif
-SIZE_T WINAPI HeapSize(HANDLE,DWORD,LPCVOID);
+DWORD WINAPI HeapSize(HANDLE,DWORD,PCVOID);
 BOOL WINAPI HeapUnlock(HANDLE);
 BOOL WINAPI HeapUnlock(HANDLE);
-BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID);
+BOOL WINAPI HeapValidate(HANDLE,DWORD,PCVOID);
 BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
 BOOL WINAPI ImpersonateAnonymousToken(HANDLE);
 BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
 BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
 BOOL WINAPI ImpersonateAnonymousToken(HANDLE);
 BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
@@ -1948,9 +1948,9 @@ InterlockedOr_Inline(IN OUT volatile LONG *Target,
 #endif /* __INTERLOCKED_DECLARED */
 
 BOOL WINAPI IsBadCodePtr(FARPROC);
 #endif /* __INTERLOCKED_DECLARED */
 
 BOOL WINAPI IsBadCodePtr(FARPROC);
-BOOL WINAPI IsBadHugeReadPtr(CONST VOID*,UINT_PTR);
+BOOL WINAPI IsBadHugeReadPtr(PCVOID,UINT_PTR);
 BOOL WINAPI IsBadHugeWritePtr(PVOID,UINT_PTR);
 BOOL WINAPI IsBadHugeWritePtr(PVOID,UINT_PTR);
-BOOL WINAPI IsBadReadPtr(CONST VOID*,UINT_PTR);
+BOOL WINAPI IsBadReadPtr(PCVOID,UINT_PTR);
 BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT_PTR);
 BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT_PTR);
 BOOL WINAPI IsBadWritePtr(PVOID,UINT_PTR);
 BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT_PTR);
 BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT_PTR);
 BOOL WINAPI IsBadWritePtr(PVOID,UINT_PTR);
@@ -1960,7 +1960,7 @@ BOOL WINAPI IsProcessInJob(HANDLE,HANDLE,PBOOL);
 #endif
 BOOL WINAPI IsProcessorFeaturePresent(DWORD);
 BOOL WINAPI IsSystemResumeAutomatic(void);
 #endif
 BOOL WINAPI IsProcessorFeaturePresent(DWORD);
 BOOL WINAPI IsSystemResumeAutomatic(void);
-BOOL WINAPI IsTextUnicode(CONST VOID*,int,LPINT);
+BOOL WINAPI IsTextUnicode(PCVOID,int,LPINT);
 #if (_WIN32_WINNT >= 0x0600)
 BOOL WINAPI IsThreadAFiber(VOID);
 #endif
 #if (_WIN32_WINNT >= 0x0600)
 BOOL WINAPI IsThreadAFiber(VOID);
 #endif
@@ -2100,7 +2100,7 @@ BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *);
 BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED);
 BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
 BOOL WINAPI ReadFileScatter(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
 BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED);
 BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
 BOOL WINAPI ReadFileScatter(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
-BOOL WINAPI ReadProcessMemory(HANDLE,LPCVOID,LPVOID,SIZE_T,PSIZE_T);
+BOOL WINAPI ReadProcessMemory(HANDLE,PCVOID,PVOID,SIZE_T,PSIZE_T);
 #if (_WIN32_WINNT >= 0x0600)
 VOID WINAPI RecoveryFinished(BOOL);
 HRESULT WINAPI RecoveryInProgress(OUT PBOOL);
 #if (_WIN32_WINNT >= 0x0600)
 VOID WINAPI RecoveryFinished(BOOL);
 HRESULT WINAPI RecoveryInProgress(OUT PBOOL);
@@ -2301,8 +2301,8 @@ VOID WINAPI WakeConditionVariable(PCONDITION_VARIABLE);
 VOID WINAPI WakeAllConditionVariable(PCONDITION_VARIABLE);
 #endif
 BOOL WINAPI WinLoadTrustProvider(GUID*);
 VOID WINAPI WakeAllConditionVariable(PCONDITION_VARIABLE);
 #endif
 BOOL WINAPI WinLoadTrustProvider(GUID*);
-BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
-BOOL WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
+BOOL WINAPI WriteFile(HANDLE,PCVOID,DWORD,PDWORD,LPOVERLAPPED);
+BOOL WINAPI WriteFileEx(HANDLE,PCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
 BOOL WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
 BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
 BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
 BOOL WINAPI WriteFileGather(HANDLE,FILE_SEGMENT_ELEMENT*,DWORD,LPDWORD,LPOVERLAPPED);
 BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
 BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
index a7916b4..f2dd6fa 100644 (file)
@@ -223,8 +223,8 @@ BOOL WINAPI SetConsoleTextAttribute(HANDLE,WORD);
 BOOL WINAPI SetConsoleTitleA(LPCSTR);
 BOOL WINAPI SetConsoleTitleW(LPCWSTR);
 BOOL WINAPI SetConsoleWindowInfo(HANDLE,BOOL,const SMALL_RECT*);
 BOOL WINAPI SetConsoleTitleA(LPCSTR);
 BOOL WINAPI SetConsoleTitleW(LPCWSTR);
 BOOL WINAPI SetConsoleWindowInfo(HANDLE,BOOL,const SMALL_RECT*);
-BOOL WINAPI WriteConsoleA(HANDLE,CONST VOID*,DWORD,LPDWORD,LPVOID);
-BOOL WINAPI WriteConsoleW(HANDLE,CONST VOID*,DWORD,LPDWORD,LPVOID);
+BOOL WINAPI WriteConsoleA(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
+BOOL WINAPI WriteConsoleW(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
 BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
 BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
 BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
 BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
 BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
 BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
index bcd7c4d..97ccf73 100644 (file)
@@ -305,7 +305,7 @@ typedef long *LPLONG;
 typedef int *LPLONG;
 #endif
 typedef DWORD *PDWORD,*LPDWORD;
 typedef int *LPLONG;
 #endif
 typedef DWORD *PDWORD,*LPDWORD;
-typedef CONST void *LPCVOID;
+typedef CONST void *PCVOID,*LPCVOID;
 
 typedef unsigned int UINT,*PUINT,*LPUINT;
 
 
 typedef unsigned int UINT,*PUINT,*LPUINT;
 
index a4338d2..b7bd62b 100644 (file)
@@ -2831,7 +2831,7 @@ HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
 HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
 HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
 HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
 HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
 HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
 HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
-HBITMAP WINAPI CreateBitmap(int,int,UINT,UINT,CONST VOID*);
+HBITMAP WINAPI CreateBitmap(int,int,UINT,UINT,PCVOID);
 HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
 HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
 HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
 HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
 HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
 HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
@@ -2840,9 +2840,9 @@ HBITMAP WINAPI CreateCompatibleBitmap(HDC,int,int);
 HDC WINAPI CreateCompatibleDC(HDC);
 HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
 HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
 HDC WINAPI CreateCompatibleDC(HDC);
 HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
 HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
-HBITMAP WINAPI CreateDIBitmap(HDC,CONST BITMAPINFOHEADER*,DWORD,CONST VOID*,CONST BITMAPINFO*,UINT);
+HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,PCVOID,const BITMAPINFO*,UINT);
 HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
 HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
-HBRUSH WINAPI CreateDIBPatternBrushPt(CONST VOID*,UINT);
+HBRUSH WINAPI CreateDIBPatternBrushPt(PCVOID,UINT);
 HBITMAP WINAPI CreateDIBSection(HDC,const BITMAPINFO*,UINT,PVOID*,HANDLE,DWORD);
 HBITMAP WINAPI CreateDiscardableBitmap(HDC,int,int);
 HRGN WINAPI CreateEllipticRgn(int,int,int,int);
 HBITMAP WINAPI CreateDIBSection(HDC,const BITMAPINFO*,UINT,PVOID*,HANDLE,DWORD);
 HBITMAP WINAPI CreateDiscardableBitmap(HDC,int,int);
 HRGN WINAPI CreateEllipticRgn(int,int,int,int);
@@ -3094,7 +3094,7 @@ HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
 HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
 int WINAPI SetAbortProc(HDC,ABORTPROC);
 int WINAPI SetArcDirection(HDC,int);
 HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
 int WINAPI SetAbortProc(HDC,ABORTPROC);
 int WINAPI SetArcDirection(HDC,int);
-LONG WINAPI SetBitmapBits(HBITMAP,DWORD,CONST VOID*);
+LONG WINAPI SetBitmapBits(HBITMAP,DWORD,PCVOID);
 BOOL WINAPI SetBitmapDimensionEx(HBITMAP,int,int,LPSIZE);
 COLORREF WINAPI SetBkColor(HDC,COLORREF);
 int WINAPI SetBkMode(HDC,int);
 BOOL WINAPI SetBitmapDimensionEx(HBITMAP,int,int,LPSIZE);
 COLORREF WINAPI SetBkColor(HDC,COLORREF);
 int WINAPI SetBkMode(HDC,int);
@@ -3108,8 +3108,8 @@ COLORREF WINAPI SetDCPenColor(HDC,COLORREF);
 #endif
 BOOL WINAPI SetDeviceGammaRamp(HDC,PVOID);
 UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,const RGBQUAD*);
 #endif
 BOOL WINAPI SetDeviceGammaRamp(HDC,PVOID);
 UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,const RGBQUAD*);
-int WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,CONST VOID*,CONST BITMAPINFO*,UINT);
-int WINAPI SetDIBitsToDevice(HDC,int,int,DWORD,DWORD,int,int,UINT,UINT,CONST VOID*,CONST BITMAPINFO*,UINT);
+int WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,PCVOID,const BITMAPINFO*,UINT);
+int WINAPI SetDIBitsToDevice(HDC,int,int,DWORD,DWORD,int,int,UINT,UINT,PCVOID,const BITMAPINFO*,UINT);
 HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE*);
 int WINAPI SetGraphicsMode(HDC,int);
 int WINAPI SetICMMode(HDC,int);
 HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE*);
 int WINAPI SetGraphicsMode(HDC,int);
 int WINAPI SetICMMode(HDC,int);
index f856b07..bd0fac1 100644 (file)
@@ -3411,12 +3411,6 @@ typedef LONG
     struct _EXCEPTION_POINTERS *ExceptionInfo
 );
 
     struct _EXCEPTION_POINTERS *ExceptionInfo
 );
 
-typedef struct _GROUP_AFFINITY {
-  KAFFINITY Mask;
-  WORD Group;
-  WORD Reserved[3];
-} GROUP_AFFINITY, *PGROUP_AFFINITY;
-
 typedef struct _EVENTLOGRECORD {
        DWORD Length;
        DWORD Reserved;
 typedef struct _EVENTLOGRECORD {
        DWORD Length;
        DWORD Reserved;
index 563904b..57c1ac1 100644 (file)
@@ -3879,7 +3879,7 @@ int WINAPI CountClipboardFormats(void);
 HACCEL WINAPI CreateAcceleratorTableA(LPACCEL,int);
 HACCEL WINAPI CreateAcceleratorTableW(LPACCEL,int);
 BOOL WINAPI CreateCaret(HWND,HBITMAP,int,int);
 HACCEL WINAPI CreateAcceleratorTableA(LPACCEL,int);
 HACCEL WINAPI CreateAcceleratorTableW(LPACCEL,int);
 BOOL WINAPI CreateCaret(HWND,HBITMAP,int,int);
-HCURSOR WINAPI CreateCursor(HINSTANCE,int,int,int,int,CONST VOID*,CONST VOID*);
+HCURSOR WINAPI CreateCursor(HINSTANCE,int,int,int,int,PCVOID,PCVOID);
 #if defined(_WINGDI_) && !defined(NOGDI)
 HDESK WINAPI CreateDesktopA(LPCSTR,LPCSTR,LPDEVMODEA,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
 HDESK WINAPI CreateDesktopW(LPCWSTR,LPCWSTR,LPDEVMODEW,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
 #if defined(_WINGDI_) && !defined(NOGDI)
 HDESK WINAPI CreateDesktopA(LPCSTR,LPCSTR,LPDEVMODEA,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
 HDESK WINAPI CreateDesktopW(LPCWSTR,LPCWSTR,LPDEVMODEW,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
index ff5f5cc..44fd06a 100644 (file)
@@ -16,13 +16,6 @@ const unsigned long PNP_MAX_BUFFER_SIZE = 16000000;
 
 cpp_quote("#ifndef _CFGMGR32_H_")
 typedef unsigned long RESOURCEID;
 
 cpp_quote("#ifndef _CFGMGR32_H_")
 typedef unsigned long RESOURCEID;
-
-typedef struct _HWPROFILEINFO {
-    DWORD HWPI_ulHWProfile;
-    WCHAR HWPI_szFriendlyName[80];
-    DWORD HWPI_dwFlags;
-} HWPROFILEINFO;
-
 cpp_quote("#endif")
 typedef unsigned long DEVPROPTYPE;
 typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE;
 cpp_quote("#endif")
 typedef unsigned long DEVPROPTYPE;
 typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE;
@@ -249,6 +242,12 @@ typedef struct _DEVPROPKEY {
     DWORD pid;
 } DEVPROPKEY;
 
     DWORD pid;
 } DEVPROPKEY;
 
+typedef struct _HWPROFILEINFO {
+    DWORD HWPI_ulHWProfile;
+    WCHAR HWPI_szFriendlyName[80];
+    DWORD HWPI_dwFlags;
+} HWPROFILEINFO;
+
 [
   uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
   version(1.0),
 [
   uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
   version(1.0),
diff --git a/reactos/include/reactos/wine/cfgmgr32.h b/reactos/include/reactos/wine/cfgmgr32.h
new file mode 100644 (file)
index 0000000..7837f2a
--- /dev/null
@@ -0,0 +1,373 @@
+/*
+ * Copyright (C) 2005 Mike McCormack
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef _CFGMGR32_H_
+#define _CFGMGR32_H_
+
+/* cfgmgr32 doesn't use the normal convention, it adds an underscore before A/W */
+#ifdef __WINESRC__
+# define DECL_WINELIB_CFGMGR32_TYPE_AW(type)  /* nothing */
+#else   /* __WINESRC__ */
+# define DECL_WINELIB_CFGMGR32_TYPE_AW(type)  typedef WINELIB_NAME_AW(type##_) type;
+#endif  /* __WINESRC__ */
+
+typedef DWORD CONFIGRET;
+typedef HANDLE HMACHINE;
+typedef HMACHINE *PHMACHINE;
+typedef DWORD DEVINST;
+typedef DEVINST *PDEVINST;
+typedef DWORD DEVNODE;
+typedef DEVNODE *PDEVNODE;
+typedef ULONG REGDISPOSITION;
+typedef DWORD_PTR LOG_CONF;
+typedef LOG_CONF *PLOG_CONF;
+typedef ULONG PRIORITY;
+typedef PRIORITY *PPRIORITY;
+
+
+typedef CHAR  *DEVINSTID_A;
+typedef WCHAR *DEVINSTID_W;
+DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID)
+
+#define CR_SUCCESS              0x00000000
+#define CR_OUT_OF_MEMORY        0x00000002
+#define CR_INVALID_POINTER      0x00000003
+#define CR_INVALID_FLAG         0x00000004
+#define CR_INVALID_DEVNODE      0x00000005
+#define CR_INVALID_DEVINST      CR_INVALID_DEVNODE
+#define CR_INVALID_LOG_CONF     0x00000007
+#define CR_NO_SUCH_DEVNODE      0x0000000D
+#define CR_NO_SUCH_DEVINST      CR_NO_SUCH_DEVNODE
+#define CR_FAILURE              0x00000013
+#define CR_BUFFER_SMALL         0x0000001A
+#define CR_REGISTRY_ERROR       0x0000001D
+#define CR_INVALID_DEVICE_ID    0x0000001E
+#define CR_INVALID_DATA         0x0000001F
+#define CR_NO_SUCH_VALUE        0x00000025
+#define CR_INVALID_PRIORITY     0x00000027
+#define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
+#define CR_INVALID_MACHINENAME  0x0000002F
+#define CR_ACCESS_DENIED        0x00000033
+#define CR_CALL_NOT_IMPLEMENTED 0x00000034
+#define CR_INVALID_PROPERTY     0x00000035
+
+#define MAX_CLASS_NAME_LEN  32
+#define MAX_GUID_STRING_LEN 39
+#define MAX_PROFILE_LEN     80
+#define MAX_DEVICE_ID_LEN      200
+#define MAX_DEVNODE_ID_LEN     MAX_DEVICE_ID_LEN
+
+/* Disposition values for CM_Open_Class_Key[_Ex] */
+#define RegDisposition_OpenAlways   0x00000000
+#define RegDisposition_OpenExisting 0x00000001
+#define RegDisposition_Bits         0x00000001
+
+/* ulFlags for CM_Add_ID[_Ex] */
+#define CM_ADD_ID_HARDWARE   0x00000000
+#define CM_ADD_ID_COMPATIBLE 0x00000001
+#define CM_ADD_ID_BITS       0x00000001
+
+/* ulFlags for CM_Open_Class_Key[_Ex] */
+#define CM_OPEN_CLASS_KEY_INSTALLER 0x00000000
+#define CM_OPEN_CLASS_KEY_INTERFACE 0x00000001
+#define CM_OPEN_CLASS_KEY_BITS      0x00000001
+
+/* ulFlags for CM_Locate_DevNode[_Ex] */
+#define CM_LOCATE_DEVNODE_NORMAL       0x00000000
+#define CM_LOCATE_DEVNODE_PHANTOM      0x00000001
+#define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
+#define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
+#define CM_LOCATE_DEVNODE_BITS         0x00000007
+
+#define CM_LOCATE_DEVINST_NORMAL       CM_LOCATE_DEVNODE_NORMAL
+#define CM_LOCATE_DEVINST_PHANTOM      CM_LOCATE_DEVNODE_PHANTOM
+#define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
+#define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
+#define CM_LOCATE_DEVINST_BITS         CM_LOCATE_DEVNODE_BITS
+
+/* ulFlags for CM_Set_DevNode_Problem[_Ex] */
+#define CM_SET_DEVNODE_PROBLEM_NORMAL   0x00000000
+#define CM_SET_DEVNODE_PROBLEM_OVERRIDE 0x00000001
+#define CM_SET_DEVNODE_PROBLEM_BITS     0x00000001
+
+#define CM_SET_DEVINST_PROBLEM_NORMAL   CM_SET_DEVNODE_PROBLEM_NORMAL
+#define CM_SET_DEVINST_PROBLEM_OVERRIDE CM_SET_DEVNODE_PROBLEM_OVERRIDE
+#define CM_SET_DEVINST_PROBLEM_BITS     CM_SET_DEVNODE_PROBLEM_BITS
+
+/* Properties for CM_Get/Set_DevNode_Registry_Property[_Ex]A/W */
+#define CM_DRP_DEVICEDESC                  0x00000001
+#define CM_DRP_HARDWAREID                  0x00000002
+#define CM_DRP_COMPATIBLEIDS               0x00000003
+#define CM_DRP_UNUSED0                     0x00000004
+#define CM_DRP_SERVICE                     0x00000005
+#define CM_DRP_UNUSED1                     0x00000006
+#define CM_DRP_UNUSED2                     0x00000007
+#define CM_DRP_CLASS                       0x00000008
+#define CM_DRP_CLASSGUID                   0x00000009
+#define CM_DRP_DRIVER                      0x0000000A
+#define CM_DRP_CONFIGFLAGS                 0x0000000B
+#define CM_DRP_MFG                         0x0000000C
+#define CM_DRP_FRIENDLYNAME                0x0000000D
+#define CM_DRP_LOCATION_INFORMATION        0x0000000E
+#define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME 0x0000000F
+#define CM_DRP_CAPABILITIES                0x00000010
+#define CM_DRP_UI_NUMBER                   0x00000011
+#define CM_DRP_UPPERFILTERS                0x00000012
+#define CM_DRP_LOWERFILTERS                0x00000013
+#define CM_DRP_BUSTYPEGUID                 0x00000014
+#define CM_DRP_LEGACYBUSTYPE               0x00000015
+#define CM_DRP_BUSNUMBER                   0x00000016
+#define CM_DRP_ENUMERATOR_NAME             0x00000017
+
+#define CM_DRP_MIN                         0x00000001
+#define CM_DRP_MAX                         0x00000017
+
+/* ulFlags for CM_Delete_Class_Key[_Ex] */
+#define CM_DELETE_CLASS_ONLY    0x00000000
+#define CM_DELETE_CLASS_SUBKEYS 0x00000001
+#define CM_DELETE_CLASS_BITS    0x00000001
+
+/* ulFlags for CM_Get_Device_ID_List and CM_Get_Device_ID_List_Size */
+#define CM_GETIDLIST_FILTER_NONE                (0x00000000)
+#define CM_GETIDLIST_FILTER_ENUMERATOR          (0x00000001)
+#define CM_GETIDLIST_FILTER_SERVICE             (0x00000002)
+#define CM_GETIDLIST_FILTER_EJECTRELATIONS      (0x00000004)
+#define CM_GETIDLIST_FILTER_REMOVALRELATIONS    (0x00000008)
+#define CM_GETIDLIST_FILTER_POWERRELATIONS      (0x00000010)
+#define CM_GETIDLIST_FILTER_BUSRELATIONS        (0x00000020)
+#define CM_GETIDLIST_DONOTGENERATE              (0x10000040)
+#define CM_GETIDLIST_FILTER_BITS                (0x1000007F)
+
+/* ulFlags for CM_Reenumerate_DevNode[_Ex] */
+#define CM_REENUMERATE_NORMAL             0x00000000
+#define CM_REENUMERATE_SYNCHRONOUS        0x00000001
+#define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
+#define CM_REENUMERATE_ASYNCHRONOUS       0x00000004
+#define CM_REENUMERATE_BITS               0x00000007
+
+/* ulFlags for CM_Run_Detection[_Ex] */
+#define CM_DETECT_NEW_PROFILE       0x00000001
+#define CM_DETECT_CRASHED           0x00000002
+#define CM_DETECT_HWPROF_FIRST_BOOT 0x00000004
+#define CM_DETECT_RUN               0x80000000
+#define CM_DETECT_BITS              0x80000007
+
+/* ulFlags for CM_Setup_DevInst[_Ex] */
+#define CM_SETUP_DEVNODE_READY   0x00000000
+#define CM_SETUP_DEVINST_READY   CM_SETUP_DEVNODE_READY
+#define CM_SETUP_DOWNLOAD        0x00000001
+#define CM_SETUP_WRITE_LOG_CONFS 0x00000002
+#define CM_SETUP_PROP_CHANGE     0x00000003
+#define CM_SETUP_DEVNODE_RESET   0x00000004
+#define CM_SETUP_DEVINST_RESET   CM_SETUP_DEVNODE_RESET
+#define CM_SETUP_BITS            0x00000007
+
+/* ulFlags for CM_Create_DevNode[_Ex]A/W */
+#define CM_CREATE_DEVNODE_NORMAL          0x00000000
+#define CM_CREATE_DEVNODE_NO_WAIT_INSTALL 0x00000001
+#define CM_CREATE_DEVNODE_PHANTOM         0x00000002
+#define CM_CREATE_DEVNODE_GENERATE_ID     0x00000004
+#define CM_CREATE_DEVNODE_DO_NOT_INSTALL  0x00000008
+#define CM_CREATE_DEVNODE_BITS            0x0000000F
+
+#define CM_CREATE_DEVINST_NORMAL          CM_CREATE_DEVNODE_NORMAL
+#define CM_CREATE_DEVINST_NO_WAIT_INSTALL CM_CREATE_DEVNODE_NO_WAIT_INSTALL
+#define CM_CREATE_DEVINST_PHANTOM         CM_CREATE_DEVNODE_PHANTOM
+#define CM_CREATE_DEVINST_GENERATE_ID     CM_CREATE_DEVNODE_GENERATE_ID
+#define CM_CREATE_DEVINST_DO_NOT_INSTALL  CM_CREATE_DEVNODE_DO_NOT_INSTALL
+#define CM_CREATE_DEVINST_BITS            CM_CREATE_DEVNODE_BITS
+
+/* ulFlags for CM_Set_HW_Prof_Flags[_Ex]A/W */
+#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK 0x00000001
+#define CM_SET_HW_PROF_FLAGS_BITS      0x00000001
+
+/* ulFlags for Log_Conf functions */
+#define BASIC_LOG_CONF    0x00000000
+#define FILTERED_LOG_CONF 0x00000001
+#define ALLOC_LOG_CONF    0x00000002
+#define BOOT_LOG_CONF     0x00000003
+#define FORCED_LOG_CONF   0x00000004
+#define OVERRIDE_LOG_CONF 0x00000005
+#define NUM_LOG_CONF      0x00000006
+#define LOG_CONF_BITS     0x00000007
+
+#define PRIORITY_EQUAL_FIRST  0x00000008
+#define PRIORITY_EQUAL_LAST   0x00000000
+#define PRIORITY_BIT          0x00000008
+
+#define CMP_MAGIC  0x01234567
+
+
+CONFIGRET WINAPI CMP_Init_Detection( DWORD );
+CONFIGRET WINAPI CMP_Report_LogOn( DWORD, DWORD );
+
+CONFIGRET WINAPI CM_Add_Empty_Log_Conf( PLOG_CONF, DEVINST, PRIORITY, ULONG );
+CONFIGRET WINAPI CM_Add_Empty_Log_Conf_Ex( PLOG_CONF, DEVINST, PRIORITY, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Add_IDA( DEVINST, PSTR, ULONG );
+CONFIGRET WINAPI CM_Add_IDW( DEVINST, PWSTR, ULONG );
+#define     CM_Add_ID WINELIB_NAME_AW(CM_Add_ID)
+CONFIGRET WINAPI CM_Add_ID_ExA( DEVINST, PSTR, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Add_ID_ExW( DEVINST, PWSTR, ULONG, HMACHINE );
+#define     CM_Add_ID_Ex WINELIB_NAME_AW(CM_Add_ID_Ex)
+CONFIGRET WINAPI CM_Connect_MachineA( PCSTR, PHMACHINE );
+CONFIGRET WINAPI CM_Connect_MachineW( PCWSTR, PHMACHINE );
+#define     CM_Connect_Machine WINELIB_NAME_AW(CM_Connect_Machine)
+CONFIGRET WINAPI CM_Create_DevNodeA( PDEVINST, DEVINSTID_A, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Create_DevNodeW( PDEVINST, DEVINSTID_W, DEVINST, ULONG );
+#define     CM_Create_DevNode WINELIB_NAME_AW(CM_Create_DevNode)
+CONFIGRET WINAPI CM_Create_DevNode_ExA( PDEVINST, DEVINSTID_A, DEVINST, ULONG, HANDLE );
+CONFIGRET WINAPI CM_Create_DevNode_ExW( PDEVINST, DEVINSTID_W, DEVINST, ULONG, HANDLE );
+#define     CM_Create_DevNode_Ex WINELIB_NAME_AW(CM_Create_DevNode_Ex)
+CONFIGRET WINAPI CM_Delete_Class_Key( LPGUID, ULONG );
+CONFIGRET WINAPI CM_Delete_Class_Key_Ex( LPGUID, ULONG, HANDLE );
+CONFIGRET WINAPI CM_Delete_DevNode_Key( DEVNODE, ULONG, ULONG );
+CONFIGRET WINAPI CM_Delete_DevNode_Key_Ex( DEVNODE, ULONG, ULONG, HANDLE );
+CONFIGRET WINAPI CM_Disable_DevNode( DEVINST, ULONG );
+CONFIGRET WINAPI CM_Disable_DevNode_Ex( DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Disconnect_Machine( HMACHINE );
+CONFIGRET WINAPI CM_Enable_DevNode( DEVINST, ULONG );
+CONFIGRET WINAPI CM_Enable_DevNode_Ex( DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Enumerate_Classes( ULONG, LPGUID, ULONG );
+CONFIGRET WINAPI CM_Enumerate_Classes_Ex( ULONG, LPGUID, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Enumerate_EnumeratorsA( ULONG, PCHAR, PULONG, ULONG );
+CONFIGRET WINAPI CM_Enumerate_EnumeratorsW( ULONG, PWCHAR, PULONG, ULONG );
+#define     CM_Enumerate_Enumerators WINELIB_NAME_AW(CM_Enumerate_Enumerators)
+CONFIGRET WINAPI CM_Enumerate_Enumerators_ExA( ULONG, PCHAR, PULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Enumerate_Enumerators_ExW( ULONG, PWCHAR, PULONG, ULONG, HMACHINE );
+#define     CM_Enumerate_Enumerators_Ex WINELIB_NAME_AW(CM_Enumerate_Enumerators_Ex)
+CONFIGRET WINAPI CM_Free_Log_Conf( LOG_CONF, ULONG );
+CONFIGRET WINAPI CM_Free_Log_Conf_Ex( LOG_CONF, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Free_Log_Conf_Handle( LOG_CONF );
+CONFIGRET WINAPI CM_Get_Child( PDEVINST, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Get_Child_Ex( PDEVINST, DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Class_Key_NameA( LPGUID, LPSTR, PULONG, ULONG );
+CONFIGRET WINAPI CM_Get_Class_Key_NameW( LPGUID, LPWSTR, PULONG, ULONG );
+#define     CM_Get_Class_Key_Name WINELIB_NAME_AW(CM_Get_Class_Key_Name)
+CONFIGRET WINAPI CM_Get_Class_Key_Name_ExA( LPGUID, LPSTR, PULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Class_Key_Name_ExW( LPGUID, LPWSTR, PULONG, ULONG, HMACHINE );
+#define     CM_Get_Class_Key_Name_Ex WINELIB_NAME_AW(CM_Get_Class_Key_Name_Ex)
+CONFIGRET WINAPI CM_Get_Class_NameA( LPGUID, PCHAR, PULONG, ULONG );
+CONFIGRET WINAPI CM_Get_Class_NameW( LPGUID, PWCHAR, PULONG, ULONG );
+#define     CM_Get_Class_Name WINELIB_NAME_AW(CM_Get_Class_Name)
+CONFIGRET WINAPI CM_Get_Class_Name_ExA( LPGUID, PCHAR, PULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Class_Name_ExW( LPGUID, PWCHAR, PULONG, ULONG, HMACHINE );
+#define     CM_Get_Class_Name_Ex WINELIB_NAME_AW(CM_Get_Class_Name_Ex)
+CONFIGRET WINAPI CM_Get_Depth( PULONG, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Get_Depth_Ex( PULONG, DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyA( DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG );
+CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyW( DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG );
+#define     CM_Get_DevNode_Registry_Property WINELIB_NAME_AW(CM_Get_DevNode_Registry_Property)
+CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExA( DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW( DEVINST, ULONG, PULONG, PVOID, PULONG, ULONG, HMACHINE );
+#define     CM_Get_DevNode_Registry_Property_Ex WINELIB_NAME_AW(CM_Get_DevNode_Registry_Property_Ex)
+CONFIGRET WINAPI CM_Get_DevNode_Status( PULONG, PULONG, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Get_DevNode_Status_Ex( PULONG, PULONG, DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Device_IDA( DEVINST, PCHAR, ULONG, ULONG );
+CONFIGRET WINAPI CM_Get_Device_IDW( DEVINST, PWCHAR, ULONG, ULONG );
+#define     CM_Get_Device_ID WINELIB_NAME_AW(CM_Get_Device_ID)
+CONFIGRET WINAPI CM_Get_Device_ID_ExW( DEVINST, PWCHAR, ULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Device_ID_ExA( DEVINST, PCHAR, ULONG, ULONG, HMACHINE );
+#define     CM_Get_Device_ID_Ex WINELIB_NAME_AW(CM_Get_Device_ID_Ex)
+CONFIGRET WINAPI CM_Get_Device_ID_ListA( PCSTR, PCHAR, ULONG, ULONG );
+CONFIGRET WINAPI CM_Get_Device_ID_ListW( PCWSTR, PWCHAR, ULONG, ULONG );
+#define     CM_Get_Device_ID_List WINELIB_NAME_AW(CM_Get_Device_ID_List)
+CONFIGRET WINAPI CM_Get_Device_ID_List_ExA( PCSTR, PCHAR, ULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Device_ID_List_ExW( PCWSTR, PWCHAR, ULONG, ULONG, HMACHINE );
+#define     CM_Get_Device_ID_List_Ex WINELIB_NAME_AW(CM_Get_Device_ID_List_Ex)
+CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA( PULONG, PCSTR, ULONG );
+CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW( PULONG, PCWSTR, ULONG );
+#define     CM_Get_Device_ID_List_Size WINELIB_NAME_AW(CM_Get_Device_ID_List_Size)
+CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA( PULONG, PCSTR, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW( PULONG, PCWSTR, ULONG, HMACHINE );
+#define     CM_Get_Device_ID_List_Size_Ex WINELIB_NAME_AW(CM_Get_Device_ID_List_Size_Ex)
+CONFIGRET WINAPI CM_Get_Device_ID_Size( PULONG, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex( PULONG, DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_First_Log_Conf( PLOG_CONF, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Get_First_Log_Conf_Ex( PLOG_CONF, DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Global_State( PULONG, ULONG );
+CONFIGRET WINAPI CM_Get_Global_State_Ex( PULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Set_HW_Prof( ULONG, ULONG );
+CONFIGRET WINAPI CM_Set_HW_Prof_Ex( ULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_HW_Prof_FlagsA( DEVINSTID_A, ULONG, PULONG, ULONG );
+CONFIGRET WINAPI CM_Get_HW_Prof_FlagsW( DEVINSTID_W, ULONG, PULONG, ULONG );
+#define     CM_Get_HW_Prof_Flags WINELIB_NAME_AW(CM_Get_HW_Prof_Flags)
+CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA( DEVINSTID_A, ULONG, PULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW( DEVINSTID_W, ULONG, PULONG, ULONG, HMACHINE );
+#define     CM_Get_HW_Prof_Flags_Ex WINELIB_NAME_AW(CM_Get_HW_Prof_Flags_Ex)
+CONFIGRET WINAPI CM_Get_Log_Conf_Priority( LOG_CONF, PPRIORITY, ULONG );
+CONFIGRET WINAPI CM_Get_Log_Conf_Priority_Ex( LOG_CONF, PPRIORITY, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Next_Log_Conf( PLOG_CONF, LOG_CONF, ULONG );
+CONFIGRET WINAPI CM_Get_Next_Log_Conf_Ex( PLOG_CONF, LOG_CONF, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Parent( PDEVINST, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Get_Parent_Ex( PDEVINST, DEVINST, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Get_Sibling( PDEVINST, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Get_Sibling_Ex( PDEVINST, DEVINST, ULONG, HMACHINE );
+WORD WINAPI CM_Get_Version( VOID );
+WORD WINAPI CM_Get_Version_Ex( HMACHINE );
+
+CONFIGRET WINAPI CM_Is_Dock_Station_Present( PBOOL );
+CONFIGRET WINAPI CM_Is_Dock_Station_Present_Ex( PBOOL, HMACHINE );
+CONFIGRET WINAPI CM_Locate_DevNodeA( PDEVINST, DEVINSTID_A, ULONG );
+CONFIGRET WINAPI CM_Locate_DevNodeW( PDEVINST, DEVINSTID_W, ULONG );
+#define     CM_Locate_DevNode WINELIB_NAME_AW(CM_Locate_DevNode)
+CONFIGRET WINAPI CM_Locate_DevNode_ExA( PDEVINST, DEVINSTID_A, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Locate_DevNode_ExW( PDEVINST, DEVINSTID_W, ULONG, HMACHINE );
+#define     CM_Locate_DevNode_Ex WINELIB_NAME_AW(CM_Locate_DevNode_Ex)
+
+CONFIGRET WINAPI CM_Move_DevNode( DEVINST, DEVINST, ULONG );
+CONFIGRET WINAPI CM_Move_DevNode_Ex( DEVINST, DEVINST, ULONG, HMACHINE );
+
+CONFIGRET WINAPI CM_Open_Class_KeyA( LPGUID, LPCSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG );
+CONFIGRET WINAPI CM_Open_Class_KeyW( LPGUID, LPCWSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG );
+#define     CM_Open_Class_Key WINELIB_NAME_AW(CM_Open_Class_Key)
+CONFIGRET WINAPI CM_Open_Class_Key_ExA( LPGUID, LPCSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Open_Class_Key_ExW( LPGUID, LPCWSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG, HMACHINE );
+#define     CM_Open_Class_Key_Ex WINELIB_NAME_AW(CM_Open_Class_Key_Ex)
+CONFIGRET WINAPI CM_Open_DevNode_Key( DEVINST, REGSAM, ULONG, REGDISPOSITION, PHKEY, ULONG );
+CONFIGRET WINAPI CM_Open_DevNode_Key_Ex( DEVINST, REGSAM, ULONG, REGDISPOSITION, PHKEY, ULONG, HMACHINE );
+
+CONFIGRET WINAPI CM_Reenumerate_DevNode( DEVINST, ULONG );
+CONFIGRET WINAPI CM_Reenumerate_DevNode_Ex( DEVINST, ULONG, HMACHINE );
+
+CONFIGRET WINAPI CM_Request_Eject_PC( VOID );
+CONFIGRET WINAPI CM_Request_Eject_PC_Ex( HMACHINE );
+
+CONFIGRET WINAPI CM_Run_Detection( ULONG );
+CONFIGRET WINAPI CM_Run_Detection_Ex( ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Set_DevNode_Problem( DEVINST, ULONG, ULONG );
+CONFIGRET WINAPI CM_Set_DevNode_Problem_Ex( DEVINST, ULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyA( DEVINST, ULONG, PCVOID, ULONG, ULONG );
+CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyW( DEVINST, ULONG, PCVOID, ULONG, ULONG );
+#define     CM_Set_DevNode_Registry_Property WINELIB_NAME_AW(CM_Set_DevNode_Registry_Property)
+CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExA( DEVINST, ULONG, PCVOID, ULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExW( DEVINST, ULONG, PCVOID, ULONG, ULONG, HMACHINE );
+#define     CM_Set_DevNode_Registry_Property_Ex WINELIB_NAME_AW(CM_Set_DevNode_Registry_Property_Ex)
+
+CONFIGRET WINAPI CM_Set_HW_Prof_FlagsA( DEVINSTID_A, ULONG, ULONG, ULONG );
+CONFIGRET WINAPI CM_Set_HW_Prof_FlagsW( DEVINSTID_W, ULONG, ULONG, ULONG );
+#define     CM_Set_HW_Prof_Flags WINELIB_NAME_AW(CM_Set_HW_Prof_Flags)
+CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExA( DEVINSTID_A, ULONG, ULONG, ULONG, HMACHINE );
+CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExW( DEVINSTID_W, ULONG, ULONG, ULONG, HMACHINE );
+#define     CM_Set_HW_Prof_Flags_Ex WINELIB_NAME_AW(CM_Set_HW_Prof_Flags_Ex)
+CONFIGRET WINAPI CM_Setup_DevNode( DEVINST, ULONG );
+CONFIGRET WINAPI CM_Setup_DevNode_Ex( DEVINST, ULONG, HMACHINE );
+
+CONFIGRET WINAPI CM_Uninstall_DevNode( DEVINST, ULONG );
+CONFIGRET WINAPI CM_Uninstall_DevNode_Ex( DEVINST, ULONG, HMACHINE );
+
+#endif /* _CFGMGR32_H_ */
diff --git a/reactos/include/xdk/amd64/ke.h b/reactos/include/xdk/amd64/ke.h
deleted file mode 100644 (file)
index d744cd5..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-$if (_WDMDDK_)
-/** Kernel definitions for AMD64 **/
-
-/* Interrupt request levels */
-#define PASSIVE_LEVEL           0
-#define LOW_LEVEL               0
-#define APC_LEVEL               1
-#define DISPATCH_LEVEL          2
-#define CMCI_LEVEL              5
-#define CLOCK_LEVEL             13
-#define IPI_LEVEL               14
-#define DRS_LEVEL               14
-#define POWER_LEVEL             14
-#define PROFILE_LEVEL           15
-#define HIGH_LEVEL              15
-
-#define KI_USER_SHARED_DATA     0xFFFFF78000000000ULL
-#define SharedUserData          ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
-#define SharedInterruptTime     (KI_USER_SHARED_DATA + 0x8)
-#define SharedSystemTime        (KI_USER_SHARED_DATA + 0x14)
-#define SharedTickCount         (KI_USER_SHARED_DATA + 0x320)
-
-#define PAGE_SIZE               0x1000
-#define PAGE_SHIFT              12L
-
-#define EFLAG_SIGN              0x8000
-#define EFLAG_ZERO              0x4000
-#define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
-
-#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-
-
-typedef struct _KFLOATING_SAVE {
-  ULONG Dummy;
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
-
-typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
-
-#define KeQueryInterruptTime() \
-    (*(volatile ULONG64*)SharedInterruptTime)
-
-#define KeQuerySystemTime(CurrentCount) \
-    *(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedSystemTime
-
-#define KeQueryTickCount(CurrentCount) \
-    *(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedTickCount
-
-#define KeGetDcacheFillSize() 1L
-
-#define YieldProcessor _mm_pause
-
-FORCEINLINE
-KIRQL
-KeGetCurrentIrql(VOID)
-{
-  return (KIRQL)__readcr8();
-}
-
-FORCEINLINE
-VOID
-KeLowerIrql(IN KIRQL NewIrql)
-{
-  //ASSERT(KeGetCurrentIrql() >= NewIrql);
-  __writecr8(NewIrql);
-}
-
-FORCEINLINE
-KIRQL
-KfRaiseIrql(IN KIRQL NewIrql)
-{
-  KIRQL OldIrql;
-
-  OldIrql = __readcr8();
-  //ASSERT(OldIrql <= NewIrql);
-  __writecr8(NewIrql);
-  return OldIrql;
-}
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
-
-FORCEINLINE
-KIRQL
-KeRaiseIrqlToDpcLevel(VOID)
-{
-  return KfRaiseIrql(DISPATCH_LEVEL);
-}
-
-FORCEINLINE
-KIRQL
-KeRaiseIrqlToSynchLevel(VOID)
-{
-  return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
-}
-
-FORCEINLINE
-PKTHREAD
-KeGetCurrentThread(VOID)
-{
-  return (struct _KTHREAD *)__readgsqword(0x188);
-}
-
-/* VOID
- * KeFlushIoBuffers(
- *   IN PMDL Mdl,
- *   IN BOOLEAN ReadOperation,
- *   IN BOOLEAN DmaOperation)
- */
-#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
-
-/* x86 and x64 performs a 0x2C interrupt */
-#define DbgRaiseAssertionFailure __int2c
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-#define PAUSE_PROCESSOR YieldProcessor();
-
-#define KERNEL_STACK_SIZE 0x6000
-#define KERNEL_LARGE_STACK_SIZE 0x12000
-#define KERNEL_LARGE_STACK_COMMIT KERNEL_STACK_SIZE
-
-#define KERNEL_MCA_EXCEPTION_STACK_SIZE 0x2000
-
-#define EXCEPTION_READ_FAULT    0
-#define EXCEPTION_WRITE_FAULT   1
-#define EXCEPTION_EXECUTE_FAULT 8
-
-#if !defined(RC_INVOKED)
-
-#define CONTEXT_AMD64 0x100000
-
-#define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x1L)
-#define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x2L)
-#define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x4L)
-#define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x8L)
-#define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x10L)
-
-#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
-#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
-
-#define CONTEXT_XSTATE (CONTEXT_AMD64 | 0x20L)
-
-#define CONTEXT_EXCEPTION_ACTIVE 0x8000000
-#define CONTEXT_SERVICE_ACTIVE 0x10000000
-#define CONTEXT_EXCEPTION_REQUEST 0x40000000
-#define CONTEXT_EXCEPTION_REPORTING 0x80000000
-
-#endif /* !defined(RC_INVOKED) */
-
-#define INITIAL_MXCSR                  0x1f80
-#define INITIAL_FPCSR                  0x027f
-
-typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
-  ULONG64 P1Home;
-  ULONG64 P2Home;
-  ULONG64 P3Home;
-  ULONG64 P4Home;
-  ULONG64 P5Home;
-  ULONG64 P6Home;
-  ULONG ContextFlags;
-  ULONG MxCsr;
-  USHORT SegCs;
-  USHORT SegDs;
-  USHORT SegEs;
-  USHORT SegFs;
-  USHORT SegGs;
-  USHORT SegSs;
-  ULONG EFlags;
-  ULONG64 Dr0;
-  ULONG64 Dr1;
-  ULONG64 Dr2;
-  ULONG64 Dr3;
-  ULONG64 Dr6;
-  ULONG64 Dr7;
-  ULONG64 Rax;
-  ULONG64 Rcx;
-  ULONG64 Rdx;
-  ULONG64 Rbx;
-  ULONG64 Rsp;
-  ULONG64 Rbp;
-  ULONG64 Rsi;
-  ULONG64 Rdi;
-  ULONG64 R8;
-  ULONG64 R9;
-  ULONG64 R10;
-  ULONG64 R11;
-  ULONG64 R12;
-  ULONG64 R13;
-  ULONG64 R14;
-  ULONG64 R15;
-  ULONG64 Rip;
-  union {
-    XMM_SAVE_AREA32 FltSave;
-    struct {
-      M128A Header[2];
-      M128A Legacy[8];
-      M128A Xmm0;
-      M128A Xmm1;
-      M128A Xmm2;
-      M128A Xmm3;
-      M128A Xmm4;
-      M128A Xmm5;
-      M128A Xmm6;
-      M128A Xmm7;
-      M128A Xmm8;
-      M128A Xmm9;
-      M128A Xmm10;
-      M128A Xmm11;
-      M128A Xmm12;
-      M128A Xmm13;
-      M128A Xmm14;
-      M128A Xmm15;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-  M128A VectorRegister[26];
-  ULONG64 VectorControl;
-  ULONG64 DebugControl;
-  ULONG64 LastBranchToRip;
-  ULONG64 LastBranchFromRip;
-  ULONG64 LastExceptionToRip;
-  ULONG64 LastExceptionFromRip;
-} CONTEXT;
-
-#define PCR_MINOR_VERSION 1
-#define PCR_MAJOR_VERSION 1
-
-typedef struct _KPCR
-{
-    _ANONYMOUS_UNION union
-    {
-        NT_TIB NtTib;
-        _ANONYMOUS_STRUCT struct
-        {
-            union _KGDTENTRY64 *GdtBase;
-            struct _KTSS64 *TssBase;
-            ULONG64 UserRsp;
-            struct _KPCR *Self;
-            struct _KPRCB *CurrentPrcb;
-            PKSPIN_LOCK_QUEUE LockArray;
-            PVOID Used_Self;
-        };
-    };
-    union _KIDTENTRY64 *IdtBase;
-    ULONG64 Unused[2];
-    KIRQL Irql;
-    UCHAR SecondLevelCacheAssociativity;
-    UCHAR ObsoleteNumber;
-    UCHAR Fill0;
-    ULONG Unused0[3];
-    USHORT MajorVersion;
-    USHORT MinorVersion;
-    ULONG StallScaleFactor;
-    PVOID Unused1[3];
-    ULONG KernelReserved[15];
-    ULONG SecondLevelCacheSize;
-    ULONG HalReserved[16];
-    ULONG Unused2;
-    PVOID KdVersionBlock;
-    PVOID Unused3;
-    ULONG PcrAlign1[24];
-} KPCR, *PKPCR;
-
-FORCEINLINE
-PKPCR
-KeGetPcr(VOID)
-{
-    return (PKPCR)__readgsqword(FIELD_OFFSET(KPCR, Self));
-}
-
-FORCEINLINE
-ULONG
-KeGetCurrentProcessorNumber(VOID)
-{
-    return (ULONG)__readgsword(0x184);
-}
-
-$endif /* _NTDDK_ */
diff --git a/reactos/include/xdk/amd64/mm.h b/reactos/include/xdk/amd64/mm.h
deleted file mode 100644 (file)
index 2c390a1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-$if (_NTDDK_)
-
-#define PTI_SHIFT  12L
-#define PDI_SHIFT  21L
-#define PPI_SHIFT  30L
-#define PXI_SHIFT  39L
-#define PTE_PER_PAGE 512
-#define PDE_PER_PAGE 512
-#define PPE_PER_PAGE 512
-#define PXE_PER_PAGE 512
-#define PTI_MASK_AMD64 (PTE_PER_PAGE - 1)
-#define PDI_MASK_AMD64 (PDE_PER_PAGE - 1)
-#define PPI_MASK (PPE_PER_PAGE - 1)
-#define PXI_MASK (PXE_PER_PAGE - 1)
-
-#define PXE_BASE    0xFFFFF6FB7DBED000ULL
-#define PXE_SELFMAP 0xFFFFF6FB7DBEDF68ULL
-#define PPE_BASE    0xFFFFF6FB7DA00000ULL
-#define PDE_BASE    0xFFFFF6FB40000000ULL
-#define PTE_BASE    0xFFFFF68000000000ULL
-#define PXE_TOP     0xFFFFF6FB7DBEDFFFULL
-#define PPE_TOP     0xFFFFF6FB7DBFFFFFULL
-#define PDE_TOP     0xFFFFF6FB7FFFFFFFULL
-#define PTE_TOP     0xFFFFF6FFFFFFFFFFULL
-
-extern NTKERNELAPI PVOID MmHighestUserAddress;
-extern NTKERNELAPI PVOID MmSystemRangeStart;
-extern NTKERNELAPI ULONG64 MmUserProbeAddress;
-
-#define MM_HIGHEST_USER_ADDRESS           MmHighestUserAddress
-#define MM_SYSTEM_RANGE_START             MmSystemRangeStart
-#define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
-#define MM_LOWEST_USER_ADDRESS   (PVOID)0x10000
-#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
-
-$endif /* _NTDDK_ */
-
diff --git a/reactos/include/xdk/arm/ke.h b/reactos/include/xdk/arm/ke.h
deleted file mode 100644 (file)
index 372e565..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-$if (_WDMDDK_)
-#include <armddk.h>
-$endif
diff --git a/reactos/include/xdk/cmfuncs.h b/reactos/include/xdk/cmfuncs.h
deleted file mode 100644 (file)
index 9fb3de0..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/******************************************************************************
- *                         Configuration Manager Functions                    *
- ******************************************************************************/
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmRegisterCallback(
-  IN PEX_CALLBACK_FUNCTION Function,
-  IN PVOID Context OPTIONAL,
-  OUT PLARGE_INTEGER Cookie);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmUnRegisterCallback(
-  IN LARGE_INTEGER Cookie);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmRegisterCallbackEx(
-  PEX_CALLBACK_FUNCTION Function,
-  PCUNICODE_STRING Altitude,
-  PVOID Driver,
-  PVOID Context,
-  PLARGE_INTEGER Cookie,
-  PVOID Reserved);
-
-NTKERNELAPI
-VOID
-NTAPI
-CmGetCallbackVersion(
-  OUT PULONG Major OPTIONAL,
-  OUT PULONG Minor OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmSetCallbackObjectContext(
-  IN OUT PVOID Object,
-  IN PLARGE_INTEGER Cookie,
-  IN PVOID NewContext,
-  OUT PVOID *OldContext OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-CmCallbackGetKeyObjectID(
-  IN PLARGE_INTEGER Cookie,
-  IN PVOID Object,
-  OUT PULONG_PTR ObjectID OPTIONAL,
-  OUT PCUNICODE_STRING *ObjectName OPTIONAL);
-
-NTKERNELAPI
-PVOID
-NTAPI
-CmGetBoundTransaction(
-  IN PLARGE_INTEGER Cookie,
-  IN PVOID Object);
-
-#endif // NTDDI_VERSION >= NTDDI_VISTA
-
-$endif
-
diff --git a/reactos/include/xdk/cmtypes.h b/reactos/include/xdk/cmtypes.h
deleted file mode 100644 (file)
index 2599a78..0000000
+++ /dev/null
@@ -1,1048 +0,0 @@
-/******************************************************************************
- *                            Configuration Manager Types                     *
- ******************************************************************************/
-
-$if (_WDMDDK_)
-/* Resource list definitions */
-typedef int CM_RESOURCE_TYPE;
-
-#define CmResourceTypeNull              0
-#define CmResourceTypePort              1
-#define CmResourceTypeInterrupt         2
-#define CmResourceTypeMemory            3
-#define CmResourceTypeDma               4
-#define CmResourceTypeDeviceSpecific    5
-#define CmResourceTypeBusNumber         6
-#define CmResourceTypeNonArbitrated     128
-#define CmResourceTypeConfigData        128
-#define CmResourceTypeDevicePrivate     129
-#define CmResourceTypePcCardConfig      130
-#define CmResourceTypeMfCardConfig      131
-
-/* KEY_VALUE_Xxx.Type */
-#define REG_NONE                           0
-#define REG_SZ                             1
-#define REG_EXPAND_SZ                      2
-#define REG_BINARY                         3
-#define REG_DWORD                          4
-#define REG_DWORD_LITTLE_ENDIAN            4
-#define REG_DWORD_BIG_ENDIAN               5
-#define REG_LINK                           6
-#define REG_MULTI_SZ                       7
-#define REG_RESOURCE_LIST                  8
-#define REG_FULL_RESOURCE_DESCRIPTOR       9
-#define REG_RESOURCE_REQUIREMENTS_LIST     10
-#define REG_QWORD                          11
-#define REG_QWORD_LITTLE_ENDIAN            11
-
-/* Registry Access Rights */
-#define KEY_QUERY_VALUE         (0x0001)
-#define KEY_SET_VALUE           (0x0002)
-#define KEY_CREATE_SUB_KEY      (0x0004)
-#define KEY_ENUMERATE_SUB_KEYS  (0x0008)
-#define KEY_NOTIFY              (0x0010)
-#define KEY_CREATE_LINK         (0x0020)
-#define KEY_WOW64_32KEY         (0x0200)
-#define KEY_WOW64_64KEY         (0x0100)
-#define KEY_WOW64_RES           (0x0300)
-
-#define KEY_READ                ((STANDARD_RIGHTS_READ       |\
-                                  KEY_QUERY_VALUE            |\
-                                  KEY_ENUMERATE_SUB_KEYS     |\
-                                  KEY_NOTIFY)                 \
-                                  &                           \
-                                 (~SYNCHRONIZE))
-
-#define KEY_WRITE               ((STANDARD_RIGHTS_WRITE      |\
-                                  KEY_SET_VALUE              |\
-                                  KEY_CREATE_SUB_KEY)         \
-                                  &                           \
-                                 (~SYNCHRONIZE))
-
-#define KEY_EXECUTE             ((KEY_READ)                   \
-                                  &                           \
-                                 (~SYNCHRONIZE))
-
-#define KEY_ALL_ACCESS          ((STANDARD_RIGHTS_ALL        |\
-                                  KEY_QUERY_VALUE            |\
-                                  KEY_SET_VALUE              |\
-                                  KEY_CREATE_SUB_KEY         |\
-                                  KEY_ENUMERATE_SUB_KEYS     |\
-                                  KEY_NOTIFY                 |\
-                                  KEY_CREATE_LINK)            \
-                                  &                           \
-                                 (~SYNCHRONIZE))
-
-/* Registry Open/Create Options */
-#define REG_OPTION_RESERVED         (0x00000000L)
-#define REG_OPTION_NON_VOLATILE     (0x00000000L)
-#define REG_OPTION_VOLATILE         (0x00000001L)
-#define REG_OPTION_CREATE_LINK      (0x00000002L)
-#define REG_OPTION_BACKUP_RESTORE   (0x00000004L)
-#define REG_OPTION_OPEN_LINK        (0x00000008L)
-
-#define REG_LEGAL_OPTION            \
-                (REG_OPTION_RESERVED            |\
-                 REG_OPTION_NON_VOLATILE        |\
-                 REG_OPTION_VOLATILE            |\
-                 REG_OPTION_CREATE_LINK         |\
-                 REG_OPTION_BACKUP_RESTORE      |\
-                 REG_OPTION_OPEN_LINK)
-
-#define REG_OPEN_LEGAL_OPTION       \
-                (REG_OPTION_RESERVED            |\
-                 REG_OPTION_BACKUP_RESTORE      |\
-                 REG_OPTION_OPEN_LINK)
-
-#define REG_STANDARD_FORMAT            1
-#define REG_LATEST_FORMAT              2
-#define REG_NO_COMPRESSION             4
-
-/* Key creation/open disposition */
-#define REG_CREATED_NEW_KEY         (0x00000001L)
-#define REG_OPENED_EXISTING_KEY     (0x00000002L)
-
-/* Key restore & hive load flags */
-#define REG_WHOLE_HIVE_VOLATILE         (0x00000001L)
-#define REG_REFRESH_HIVE                (0x00000002L)
-#define REG_NO_LAZY_FLUSH               (0x00000004L)
-#define REG_FORCE_RESTORE               (0x00000008L)
-#define REG_APP_HIVE                    (0x00000010L)
-#define REG_PROCESS_PRIVATE             (0x00000020L)
-#define REG_START_JOURNAL               (0x00000040L)
-#define REG_HIVE_EXACT_FILE_GROWTH      (0x00000080L)
-#define REG_HIVE_NO_RM                  (0x00000100L)
-#define REG_HIVE_SINGLE_LOG             (0x00000200L)
-#define REG_BOOT_HIVE                   (0x00000400L)
-
-/* Unload Flags */
-#define REG_FORCE_UNLOAD            1
-
-/* Notify Filter Values */
-#define REG_NOTIFY_CHANGE_NAME          (0x00000001L)
-#define REG_NOTIFY_CHANGE_ATTRIBUTES    (0x00000002L)
-#define REG_NOTIFY_CHANGE_LAST_SET      (0x00000004L)
-#define REG_NOTIFY_CHANGE_SECURITY      (0x00000008L)
-
-#define REG_LEGAL_CHANGE_FILTER                 \
-                (REG_NOTIFY_CHANGE_NAME          |\
-                 REG_NOTIFY_CHANGE_ATTRIBUTES    |\
-                 REG_NOTIFY_CHANGE_LAST_SET      |\
-                 REG_NOTIFY_CHANGE_SECURITY)
-
-#include <pshpack4.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 {
-#if defined(NT_PROCESSOR_GROUPS)
-      USHORT Level;
-      USHORT Group;
-#else
-      ULONG Level;
-#endif
-      ULONG Vector;
-      KAFFINITY Affinity;
-    } Interrupt;
-#if (NTDDI_VERSION >= NTDDI_LONGHORN)
-    struct {
-      __GNU_EXTENSION union {
-        struct {
-#if defined(NT_PROCESSOR_GROUPS)
-          USHORT Group;
-#else
-          USHORT Reserved;
-#endif
-          USHORT MessageCount;
-          ULONG Vector;
-          KAFFINITY Affinity;
-        } Raw;
-        struct {
-#if defined(NT_PROCESSOR_GROUPS)
-          USHORT Level;
-          USHORT Group;
-#else
-          ULONG Level;
-#endif
-          ULONG Vector;
-          KAFFINITY Affinity;
-        } Translated;
-      } DUMMYUNIONNAME;
-    } MessageInterrupt;
-#endif
-    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;
-#if (NTDDI_VERSION >= NTDDI_LONGHORN)
-    struct {
-      PHYSICAL_ADDRESS Start;
-      ULONG Length40;
-    } Memory40;
-    struct {
-      PHYSICAL_ADDRESS Start;
-      ULONG Length48;
-    } Memory48;
-    struct {
-      PHYSICAL_ADDRESS Start;
-      ULONG Length64;
-    } Memory64;
-#endif
-  } u;
-} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
-#include <poppack.h>
-
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Type */
-#define CmResourceTypeNull                0
-#define CmResourceTypePort                1
-#define CmResourceTypeInterrupt           2
-#define CmResourceTypeMemory              3
-#define CmResourceTypeDma                 4
-#define CmResourceTypeDeviceSpecific      5
-#define CmResourceTypeBusNumber           6
-#define CmResourceTypeMemoryLarge         7
-#define CmResourceTypeNonArbitrated       128
-#define CmResourceTypeConfigData          128
-#define CmResourceTypeDevicePrivate       129
-#define CmResourceTypePcCardConfig        130
-#define CmResourceTypeMfCardConfig        131
-
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition */
-typedef enum _CM_SHARE_DISPOSITION {
-  CmResourceShareUndetermined = 0,
-  CmResourceShareDeviceExclusive,
-  CmResourceShareDriverExclusive,
-  CmResourceShareShared
-} CM_SHARE_DISPOSITION;
-
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypePort */
-#define CM_RESOURCE_PORT_MEMORY           0x0000
-#define CM_RESOURCE_PORT_IO               0x0001
-#define CM_RESOURCE_PORT_10_BIT_DECODE    0x0004
-#define CM_RESOURCE_PORT_12_BIT_DECODE    0x0008
-#define CM_RESOURCE_PORT_16_BIT_DECODE    0x0010
-#define CM_RESOURCE_PORT_POSITIVE_DECODE  0x0020
-#define CM_RESOURCE_PORT_PASSIVE_DECODE   0x0040
-#define CM_RESOURCE_PORT_WINDOW_DECODE    0x0080
-#define CM_RESOURCE_PORT_BAR              0x0100
-
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeInterrupt */
-#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000
-#define CM_RESOURCE_INTERRUPT_LATCHED         0x0001
-#define CM_RESOURCE_INTERRUPT_MESSAGE         0x0002
-#define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004
-
-#define CM_RESOURCE_INTERRUPT_LEVEL_LATCHED_BITS 0x0001
-
-#define CM_RESOURCE_INTERRUPT_MESSAGE_TOKEN   ((ULONG)-2)
-
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeMemory */
-#define CM_RESOURCE_MEMORY_READ_WRITE                    0x0000
-#define CM_RESOURCE_MEMORY_READ_ONLY                     0x0001
-#define CM_RESOURCE_MEMORY_WRITE_ONLY                    0x0002
-#define CM_RESOURCE_MEMORY_WRITEABILITY_MASK             0x0003
-#define CM_RESOURCE_MEMORY_PREFETCHABLE                  0x0004
-#define CM_RESOURCE_MEMORY_COMBINEDWRITE                 0x0008
-#define CM_RESOURCE_MEMORY_24                            0x0010
-#define CM_RESOURCE_MEMORY_CACHEABLE                     0x0020
-#define CM_RESOURCE_MEMORY_WINDOW_DECODE                 0x0040
-#define CM_RESOURCE_MEMORY_BAR                           0x0080
-#define CM_RESOURCE_MEMORY_COMPAT_FOR_INACCESSIBLE_RANGE 0x0100
-
-#define CM_RESOURCE_MEMORY_LARGE                         0x0E00
-#define CM_RESOURCE_MEMORY_LARGE_40                      0x0200
-#define CM_RESOURCE_MEMORY_LARGE_48                      0x0400
-#define CM_RESOURCE_MEMORY_LARGE_64                      0x0800
-
-#define CM_RESOURCE_MEMORY_LARGE_40_MAXLEN               0x000000FFFFFFFF00
-#define CM_RESOURCE_MEMORY_LARGE_48_MAXLEN               0x0000FFFFFFFF0000
-#define CM_RESOURCE_MEMORY_LARGE_64_MAXLEN               0xFFFFFFFF00000000
-
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeDma */
-#define CM_RESOURCE_DMA_8                 0x0000
-#define CM_RESOURCE_DMA_16                0x0001
-#define CM_RESOURCE_DMA_32                0x0002
-#define CM_RESOURCE_DMA_8_AND_16          0x0004
-#define CM_RESOURCE_DMA_BUS_MASTER        0x0008
-#define CM_RESOURCE_DMA_TYPE_A            0x0010
-#define CM_RESOURCE_DMA_TYPE_B            0x0020
-#define CM_RESOURCE_DMA_TYPE_F            0x0040
-
-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;
-
-typedef enum _INTERFACE_TYPE {
-  InterfaceTypeUndefined = -1,
-  Internal,
-  Isa,
-  Eisa,
-  MicroChannel,
-  TurboChannel,
-  PCIBus,
-  VMEBus,
-  NuBus,
-  PCMCIABus,
-  CBus,
-  MPIBus,
-  MPSABus,
-  ProcessorInternal,
-  InternalPowerBus,
-  PNPISABus,
-  PNPBus,
-  Vmcs,
-  MaximumInterfaceType
-} INTERFACE_TYPE, *PINTERFACE_TYPE;
-
-typedef struct _CM_COMPONENT_INFORMATION {
-  DEVICE_FLAGS Flags;
-  ULONG Version;
-  ULONG Key;
-  KAFFINITY AffinityMask;
-} CM_COMPONENT_INFORMATION, *PCM_COMPONENT_INFORMATION;
-
-typedef struct _CM_ROM_BLOCK {
-  ULONG Address;
-  ULONG Size;
-} CM_ROM_BLOCK, *PCM_ROM_BLOCK;
-
-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;
-
-typedef struct _CM_FULL_RESOURCE_DESCRIPTOR {
-  INTERFACE_TYPE InterfaceType;
-  ULONG BusNumber;
-  CM_PARTIAL_RESOURCE_LIST PartialResourceList;
-} CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;
-
-typedef struct _CM_RESOURCE_LIST {
-  ULONG Count;
-  CM_FULL_RESOURCE_DESCRIPTOR List[1];
-} CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;
-
-typedef struct _PNP_BUS_INFORMATION {
-  GUID BusTypeGuid;
-  INTERFACE_TYPE LegacyBusType;
-  ULONG BusNumber;
-} PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION;
-
-#include <pshpack1.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;
-
-typedef struct _CM_MCA_POS_DATA {
-  USHORT AdapterId;
-  UCHAR PosData1;
-  UCHAR PosData2;
-  UCHAR PosData3;
-  UCHAR PosData4;
-} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA;
-
-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;
-
-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;
-
-#include <poppack.h>
-
-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;
-
-typedef struct _CM_KEYBOARD_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  UCHAR Type;
-  UCHAR Subtype;
-  USHORT KeyboardFlags;
-} CM_KEYBOARD_DEVICE_DATA, *PCM_KEYBOARD_DEVICE_DATA;
-
-typedef struct _CM_SCSI_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  UCHAR HostIdentifier;
-} CM_SCSI_DEVICE_DATA, *PCM_SCSI_DEVICE_DATA;
-
-typedef struct _CM_VIDEO_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  ULONG VideoClock;
-} CM_VIDEO_DEVICE_DATA, *PCM_VIDEO_DEVICE_DATA;
-
-typedef struct _CM_SONIC_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  USHORT DataConfigurationRegister;
-  UCHAR EthernetAddress[8];
-} CM_SONIC_DEVICE_DATA, *PCM_SONIC_DEVICE_DATA;
-
-typedef struct _CM_SERIAL_DEVICE_DATA {
-  USHORT Version;
-  USHORT Revision;
-  ULONG BaudClock;
-} CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA;
-
-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;
-
-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;
-
-typedef enum _KEY_INFORMATION_CLASS {
-  KeyBasicInformation,
-  KeyNodeInformation,
-  KeyFullInformation,
-  KeyNameInformation,
-  KeyCachedInformation,
-  KeyFlagsInformation,
-  KeyVirtualizationInformation,
-  KeyHandleTagsInformation,
-  MaxKeyInfoClass
-} KEY_INFORMATION_CLASS;
-
-typedef struct _KEY_BASIC_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
-  ULONG TitleIndex;
-  ULONG NameLength;
-  WCHAR Name[1];
-} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
-
-typedef struct _KEY_CONTROL_FLAGS_INFORMATION {
-  ULONG ControlFlags;
-} KEY_CONTROL_FLAGS_INFORMATION, *PKEY_CONTROL_FLAGS_INFORMATION;
-
-typedef struct _KEY_FULL_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
-  ULONG TitleIndex;
-  ULONG ClassOffset;
-  ULONG ClassLength;
-  ULONG SubKeys;
-  ULONG MaxNameLen;
-  ULONG MaxClassLen;
-  ULONG Values;
-  ULONG MaxValueNameLen;
-  ULONG MaxValueDataLen;
-  WCHAR Class[1];
-} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
-
-typedef struct _KEY_HANDLE_TAGS_INFORMATION {
-  ULONG HandleTags;
-} KEY_HANDLE_TAGS_INFORMATION, *PKEY_HANDLE_TAGS_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;
-
-typedef enum _KEY_SET_INFORMATION_CLASS {
-  KeyWriteTimeInformation,
-  KeyWow64FlagsInformation,
-  KeyControlFlagsInformation,
-  KeySetVirtualizationInformation,
-  KeySetDebugInformation,
-  KeySetHandleTagsInformation,
-  MaxKeySetInfoClass
-} KEY_SET_INFORMATION_CLASS;
-
-typedef struct _KEY_SET_VIRTUALIZATION_INFORMATION {
-  ULONG VirtualTarget:1;
-  ULONG VirtualStore:1;
-  ULONG VirtualSource:1;
-  ULONG Reserved:29;
-} KEY_SET_VIRTUALIZATION_INFORMATION, *PKEY_SET_VIRTUALIZATION_INFORMATION;
-
-typedef struct _KEY_VALUE_BASIC_INFORMATION {
-  ULONG TitleIndex;
-  ULONG Type;
-  ULONG NameLength;
-  WCHAR Name[1];
-} KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;
-
-typedef struct _KEY_VALUE_FULL_INFORMATION {
-  ULONG TitleIndex;
-  ULONG Type;
-  ULONG DataOffset;
-  ULONG DataLength;
-  ULONG NameLength;
-  WCHAR Name[1];
-} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
-
-typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
-  ULONG TitleIndex;
-  ULONG Type;
-  ULONG DataLength;
-  UCHAR Data[1];
-} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
-
-typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 {
-  ULONG Type;
-  ULONG DataLength;
-  UCHAR Data[1];
-} KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
-
-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;
-
-typedef struct _KEY_WOW64_FLAGS_INFORMATION {
-  ULONG UserFlags;
-} KEY_WOW64_FLAGS_INFORMATION, *PKEY_WOW64_FLAGS_INFORMATION;
-
-typedef struct _KEY_WRITE_TIME_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
-} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
-
-typedef enum _REG_NOTIFY_CLASS {
-  RegNtDeleteKey,
-  RegNtPreDeleteKey = RegNtDeleteKey,
-  RegNtSetValueKey,
-  RegNtPreSetValueKey = RegNtSetValueKey,
-  RegNtDeleteValueKey,
-  RegNtPreDeleteValueKey = RegNtDeleteValueKey,
-  RegNtSetInformationKey,
-  RegNtPreSetInformationKey = RegNtSetInformationKey,
-  RegNtRenameKey,
-  RegNtPreRenameKey = RegNtRenameKey,
-  RegNtEnumerateKey,
-  RegNtPreEnumerateKey = RegNtEnumerateKey,
-  RegNtEnumerateValueKey,
-  RegNtPreEnumerateValueKey = RegNtEnumerateValueKey,
-  RegNtQueryKey,
-  RegNtPreQueryKey = RegNtQueryKey,
-  RegNtQueryValueKey,
-  RegNtPreQueryValueKey = RegNtQueryValueKey,
-  RegNtQueryMultipleValueKey,
-  RegNtPreQueryMultipleValueKey = RegNtQueryMultipleValueKey,
-  RegNtPreCreateKey,
-  RegNtPostCreateKey,
-  RegNtPreOpenKey,
-  RegNtPostOpenKey,
-  RegNtKeyHandleClose,
-  RegNtPreKeyHandleClose = RegNtKeyHandleClose,
-  RegNtPostDeleteKey,
-  RegNtPostSetValueKey,
-  RegNtPostDeleteValueKey,
-  RegNtPostSetInformationKey,
-  RegNtPostRenameKey,
-  RegNtPostEnumerateKey,
-  RegNtPostEnumerateValueKey,
-  RegNtPostQueryKey,
-  RegNtPostQueryValueKey,
-  RegNtPostQueryMultipleValueKey,
-  RegNtPostKeyHandleClose,
-  RegNtPreCreateKeyEx,
-  RegNtPostCreateKeyEx,
-  RegNtPreOpenKeyEx,
-  RegNtPostOpenKeyEx,
-  RegNtPreFlushKey,
-  RegNtPostFlushKey,
-  RegNtPreLoadKey,
-  RegNtPostLoadKey,
-  RegNtPreUnLoadKey,
-  RegNtPostUnLoadKey,
-  RegNtPreQueryKeySecurity,
-  RegNtPostQueryKeySecurity,
-  RegNtPreSetKeySecurity,
-  RegNtPostSetKeySecurity,
-  RegNtCallbackObjectContextCleanup,
-  RegNtPreRestoreKey,
-  RegNtPostRestoreKey,
-  RegNtPreSaveKey,
-  RegNtPostSaveKey,
-  RegNtPreReplaceKey,
-  RegNtPostReplaceKey,
-  MaxRegNtNotifyClass
-} REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS;
-
-typedef NTSTATUS
-(NTAPI EX_CALLBACK_FUNCTION)(
-  IN PVOID CallbackContext,
-  IN PVOID Argument1,
-  IN PVOID Argument2);
-typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION;
-
-typedef struct _REG_DELETE_KEY_INFORMATION {
-  PVOID Object;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_DELETE_KEY_INFORMATION, *PREG_DELETE_KEY_INFORMATION
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-, REG_FLUSH_KEY_INFORMATION, *PREG_FLUSH_KEY_INFORMATION
-#endif
-;
-
-typedef struct _REG_SET_VALUE_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING ValueName;
-  ULONG TitleIndex;
-  ULONG Type;
-  PVOID Data;
-  ULONG DataSize;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_SET_VALUE_KEY_INFORMATION, *PREG_SET_VALUE_KEY_INFORMATION;
-
-typedef struct _REG_DELETE_VALUE_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING ValueName;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_DELETE_VALUE_KEY_INFORMATION, *PREG_DELETE_VALUE_KEY_INFORMATION;
-
-typedef struct _REG_SET_INFORMATION_KEY_INFORMATION {
-  PVOID Object;
-  KEY_SET_INFORMATION_CLASS KeySetInformationClass;
-  PVOID KeySetInformation;
-  ULONG KeySetInformationLength;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_SET_INFORMATION_KEY_INFORMATION, *PREG_SET_INFORMATION_KEY_INFORMATION;
-
-typedef struct _REG_ENUMERATE_KEY_INFORMATION {
-  PVOID Object;
-  ULONG Index;
-  KEY_INFORMATION_CLASS KeyInformationClass;
-  PVOID KeyInformation;
-  ULONG Length;
-  PULONG ResultLength;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_ENUMERATE_KEY_INFORMATION, *PREG_ENUMERATE_KEY_INFORMATION;
-
-typedef struct _REG_ENUMERATE_VALUE_KEY_INFORMATION {
-  PVOID Object;
-  ULONG Index;
-  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass;
-  PVOID KeyValueInformation;
-  ULONG Length;
-  PULONG ResultLength;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_ENUMERATE_VALUE_KEY_INFORMATION, *PREG_ENUMERATE_VALUE_KEY_INFORMATION;
-
-typedef struct _REG_QUERY_KEY_INFORMATION {
-  PVOID Object;
-  KEY_INFORMATION_CLASS KeyInformationClass;
-  PVOID KeyInformation;
-  ULONG Length;
-  PULONG ResultLength;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_QUERY_KEY_INFORMATION, *PREG_QUERY_KEY_INFORMATION;
-
-typedef struct _REG_QUERY_VALUE_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING ValueName;
-  KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass;
-  PVOID KeyValueInformation;
-  ULONG Length;
-  PULONG ResultLength;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_QUERY_VALUE_KEY_INFORMATION, *PREG_QUERY_VALUE_KEY_INFORMATION;
-
-typedef struct _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION {
-  PVOID Object;
-  PKEY_VALUE_ENTRY ValueEntries;
-  ULONG EntryCount;
-  PVOID ValueBuffer;
-  PULONG BufferLength;
-  PULONG RequiredBufferLength;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION;
-
-typedef struct _REG_RENAME_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING NewName;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_RENAME_KEY_INFORMATION, *PREG_RENAME_KEY_INFORMATION;
-
-typedef struct _REG_CREATE_KEY_INFORMATION {
-  PUNICODE_STRING CompleteName;
-  PVOID RootObject;
-  PVOID ObjectType;
-  ULONG CreateOptions;
-  PUNICODE_STRING Class;
-  PVOID SecurityDescriptor;
-  PVOID SecurityQualityOfService;
-  ACCESS_MASK DesiredAccess;
-  ACCESS_MASK GrantedAccess;
-  PULONG Disposition;
-  PVOID *ResultObject;
-  PVOID CallContext;
-  PVOID RootObjectContext;
-  PVOID Transaction;
-  PVOID Reserved;
-} REG_CREATE_KEY_INFORMATION, REG_OPEN_KEY_INFORMATION,*PREG_CREATE_KEY_INFORMATION, *PREG_OPEN_KEY_INFORMATION;
-
-typedef struct _REG_CREATE_KEY_INFORMATION_V1 {
-  PUNICODE_STRING CompleteName;
-  PVOID RootObject;
-  PVOID ObjectType;
-  ULONG Options;
-  PUNICODE_STRING Class;
-  PVOID SecurityDescriptor;
-  PVOID SecurityQualityOfService;
-  ACCESS_MASK DesiredAccess;
-  ACCESS_MASK GrantedAccess;
-  PULONG Disposition;
-  PVOID *ResultObject;
-  PVOID CallContext;
-  PVOID RootObjectContext;
-  PVOID Transaction;
-  ULONG_PTR Version;
-  PUNICODE_STRING RemainingName;
-  ULONG Wow64Flags;
-  ULONG Attributes;
-  KPROCESSOR_MODE CheckAccessMode;
-} REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION_V1,*PREG_CREATE_KEY_INFORMATION_V1, *PREG_OPEN_KEY_INFORMATION_V1;
-
-typedef struct _REG_PRE_CREATE_KEY_INFORMATION {
-  PUNICODE_STRING CompleteName;
-} REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;;
-
-typedef struct _REG_POST_CREATE_KEY_INFORMATION {
-  PUNICODE_STRING CompleteName;
-  PVOID Object;
-  NTSTATUS Status;
-} REG_POST_CREATE_KEY_INFORMATION,REG_POST_OPEN_KEY_INFORMATION, *PREG_POST_CREATE_KEY_INFORMATION, *PREG_POST_OPEN_KEY_INFORMATION;
-
-typedef struct _REG_POST_OPERATION_INFORMATION {
-  PVOID Object;
-  NTSTATUS Status;
-  PVOID PreInformation;
-  NTSTATUS ReturnStatus;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_POST_OPERATION_INFORMATION,*PREG_POST_OPERATION_INFORMATION;
-
-typedef struct _REG_KEY_HANDLE_CLOSE_INFORMATION {
-  PVOID Object;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-typedef struct _REG_LOAD_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING KeyName;
-  PUNICODE_STRING SourceFile;
-  ULONG Flags;
-  PVOID TrustClassObject;
-  PVOID UserEvent;
-  ACCESS_MASK DesiredAccess;
-  PHANDLE RootHandle;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_LOAD_KEY_INFORMATION, *PREG_LOAD_KEY_INFORMATION;
-
-typedef struct _REG_UNLOAD_KEY_INFORMATION {
-  PVOID Object;
-  PVOID UserEvent;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_UNLOAD_KEY_INFORMATION, *PREG_UNLOAD_KEY_INFORMATION;
-
-typedef struct _REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION {
-  PVOID Object;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION, *PREG_CALLBACK_CONTEXT_CLEANUP_INFORMATION;
-
-typedef struct _REG_QUERY_KEY_SECURITY_INFORMATION {
-  PVOID Object;
-  PSECURITY_INFORMATION SecurityInformation;
-  PSECURITY_DESCRIPTOR SecurityDescriptor;
-  PULONG Length;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_QUERY_KEY_SECURITY_INFORMATION, *PREG_QUERY_KEY_SECURITY_INFORMATION;
-
-typedef struct _REG_SET_KEY_SECURITY_INFORMATION {
-  PVOID Object;
-  PSECURITY_INFORMATION SecurityInformation;
-  PSECURITY_DESCRIPTOR SecurityDescriptor;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_SET_KEY_SECURITY_INFORMATION, *PREG_SET_KEY_SECURITY_INFORMATION;
-
-typedef struct _REG_RESTORE_KEY_INFORMATION {
-  PVOID Object;
-  HANDLE FileHandle;
-  ULONG Flags;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_RESTORE_KEY_INFORMATION, *PREG_RESTORE_KEY_INFORMATION;
-
-typedef struct _REG_SAVE_KEY_INFORMATION {
-  PVOID Object;
-  HANDLE FileHandle;
-  ULONG Format;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_SAVE_KEY_INFORMATION, *PREG_SAVE_KEY_INFORMATION;
-
-typedef struct _REG_REPLACE_KEY_INFORMATION {
-  PVOID Object;
-  PUNICODE_STRING OldFileName;
-  PUNICODE_STRING NewFileName;
-  PVOID CallContext;
-  PVOID ObjectContext;
-  PVOID Reserved;
-} REG_REPLACE_KEY_INFORMATION, *PREG_REPLACE_KEY_INFORMATION;
-
-#endif /* NTDDI_VERSION >= NTDDI_VISTA */
-
-#define SERVICE_KERNEL_DRIVER          0x00000001
-#define SERVICE_FILE_SYSTEM_DRIVER     0x00000002
-#define SERVICE_ADAPTER                0x00000004
-#define SERVICE_RECOGNIZER_DRIVER      0x00000008
-
-#define SERVICE_DRIVER                 (SERVICE_KERNEL_DRIVER | \
-                                        SERVICE_FILE_SYSTEM_DRIVER | \
-                                        SERVICE_RECOGNIZER_DRIVER)
-
-#define SERVICE_WIN32_OWN_PROCESS      0x00000010
-#define SERVICE_WIN32_SHARE_PROCESS    0x00000020
-#define SERVICE_WIN32                  (SERVICE_WIN32_OWN_PROCESS | \
-                                        SERVICE_WIN32_SHARE_PROCESS)
-
-#define SERVICE_INTERACTIVE_PROCESS    0x00000100
-
-#define SERVICE_TYPE_ALL               (SERVICE_WIN32  | \
-                                        SERVICE_ADAPTER | \
-                                        SERVICE_DRIVER  | \
-                                        SERVICE_INTERACTIVE_PROCESS)
-
-/* Service Start Types */
-#define SERVICE_BOOT_START             0x00000000
-#define SERVICE_SYSTEM_START           0x00000001
-#define SERVICE_AUTO_START             0x00000002
-#define SERVICE_DEMAND_START           0x00000003
-#define SERVICE_DISABLED               0x00000004
-
-#define SERVICE_ERROR_IGNORE           0x00000000
-#define SERVICE_ERROR_NORMAL           0x00000001
-#define SERVICE_ERROR_SEVERE           0x00000002
-#define SERVICE_ERROR_CRITICAL         0x00000003
-
-typedef enum _CM_SERVICE_NODE_TYPE {
-  DriverType = SERVICE_KERNEL_DRIVER,
-  FileSystemType = SERVICE_FILE_SYSTEM_DRIVER,
-  Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS,
-  Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,
-  AdapterType = SERVICE_ADAPTER,
-  RecognizerType = SERVICE_RECOGNIZER_DRIVER
-} SERVICE_NODE_TYPE;
-
-typedef enum _CM_SERVICE_LOAD_TYPE {
-  BootLoad = SERVICE_BOOT_START,
-  SystemLoad = SERVICE_SYSTEM_START,
-  AutoLoad = SERVICE_AUTO_START,
-  DemandLoad = SERVICE_DEMAND_START,
-  DisableLoad = SERVICE_DISABLED
-} SERVICE_LOAD_TYPE;
-
-typedef enum _CM_ERROR_CONTROL_TYPE {
-  IgnoreError = SERVICE_ERROR_IGNORE,
-  NormalError = SERVICE_ERROR_NORMAL,
-  SevereError = SERVICE_ERROR_SEVERE,
-  CriticalError = SERVICE_ERROR_CRITICAL
-} SERVICE_ERROR_TYPE;
-
-#define CM_SERVICE_NETWORK_BOOT_LOAD      0x00000001
-#define CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD 0x00000002
-#define CM_SERVICE_USB_DISK_BOOT_LOAD     0x00000004
-
-#define CM_SERVICE_VALID_PROMOTION_MASK (CM_SERVICE_NETWORK_BOOT_LOAD |       \
-                                         CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD |  \
-                                         CM_SERVICE_USB_DISK_BOOT_LOAD)
-
-$endif
-$if (_NTDDK_)
-
-typedef struct _KEY_NAME_INFORMATION {
-  ULONG NameLength;
-  WCHAR Name[1];
-} KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION;
-
-typedef struct _KEY_CACHED_INFORMATION {
-  LARGE_INTEGER LastWriteTime;
-  ULONG TitleIndex;
-  ULONG SubKeys;
-  ULONG MaxNameLen;
-  ULONG Values;
-  ULONG MaxValueNameLen;
-  ULONG MaxValueDataLen;
-  ULONG NameLength;
-} KEY_CACHED_INFORMATION, *PKEY_CACHED_INFORMATION;
-
-typedef struct _KEY_VIRTUALIZATION_INFORMATION {
-  ULONG VirtualizationCandidate:1;
-  ULONG VirtualizationEnabled:1;
-  ULONG VirtualTarget:1;
-  ULONG VirtualStore:1;
-  ULONG VirtualSource:1;
-  ULONG Reserved:27;
-} KEY_VIRTUALIZATION_INFORMATION, *PKEY_VIRTUALIZATION_INFORMATION;
-
-#define CmResourceTypeMaximum             8
-
-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;
-
-$endif /* _NTDDK_ */
diff --git a/reactos/include/xdk/exfuncs.h b/reactos/include/xdk/exfuncs.h
deleted file mode 100644 (file)
index 46a5387..0000000
+++ /dev/null
@@ -1,1040 +0,0 @@
-/******************************************************************************
- *                          Executive Functions                               *
- ******************************************************************************/
-$if (_NTDDK_)
-static __inline PVOID
-ExAllocateFromZone(
-  IN PZONE_HEADER Zone)
-{
-  if (Zone->FreeList.Next)
-    Zone->FreeList.Next = Zone->FreeList.Next->Next;
-  return (PVOID) Zone->FreeList.Next;
-}
-
-static __inline PVOID
-ExFreeToZone(
-  IN PZONE_HEADER Zone,
-  IN PVOID Block)
-{
-  ((PSINGLE_LIST_ENTRY) Block)->Next = Zone->FreeList.Next;
-  Zone->FreeList.Next = ((PSINGLE_LIST_ENTRY) Block);
-  return ((PSINGLE_LIST_ENTRY) Block)->Next;
-}
-
-/*
- * PVOID
- * ExInterlockedAllocateFromZone(
- *   IN PZONE_HEADER  Zone,
- *   IN PKSPIN_LOCK  Lock)
- */
-#define ExInterlockedAllocateFromZone(Zone, Lock) \
-    ((PVOID) ExInterlockedPopEntryList(&Zone->FreeList, Lock))
-
-/* PVOID
- * ExInterlockedFreeToZone(
- *  IN PZONE_HEADER  Zone,
- *  IN PVOID  Block,
- *  IN PKSPIN_LOCK  Lock);
- */
-#define ExInterlockedFreeToZone(Zone, Block, Lock) \
-    ExInterlockedPushEntryList(&(Zone)->FreeList, (PSINGLE_LIST_ENTRY)(Block), Lock)
-
-/*
- * BOOLEAN
- * ExIsFullZone(
- *  IN PZONE_HEADER  Zone)
- */
-#define ExIsFullZone(Zone) \
-  ((Zone)->FreeList.Next == (PSINGLE_LIST_ENTRY) NULL)
-
-/* BOOLEAN
- * ExIsObjectInFirstZoneSegment(
- *     IN PZONE_HEADER Zone,
- *     IN PVOID Object);
- */
-#define ExIsObjectInFirstZoneSegment(Zone,Object) \
-    ((BOOLEAN)( ((PUCHAR)(Object) >= (PUCHAR)(Zone)->SegmentList.Next) && \
-                ((PUCHAR)(Object) <  (PUCHAR)(Zone)->SegmentList.Next + \
-                         (Zone)->TotalSegmentSize)) )
-
-#define ExAcquireResourceExclusive ExAcquireResourceExclusiveLite
-#define ExAcquireResourceShared ExAcquireResourceSharedLite
-#define ExConvertExclusiveToShared ExConvertExclusiveToSharedLite
-#define ExDeleteResource ExDeleteResourceLite
-#define ExInitializeResource ExInitializeResourceLite
-#define ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite
-#define ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite
-#define ExIsResourceAcquired ExIsResourceAcquiredSharedLite
-#define ExReleaseResourceForThread ExReleaseResourceForThreadLite
-
-typedef enum _INTERLOCKED_RESULT {
-  ResultNegative = RESULT_NEGATIVE,
-  ResultZero = RESULT_ZERO,
-  ResultPositive = RESULT_POSITIVE
-} INTERLOCKED_RESULT;
-
-#ifdef _X86_
-NTKERNELAPI
-INTERLOCKED_RESULT
-FASTCALL
-Exfi386InterlockedIncrementLong(
-  IN OUT LONG volatile *Addend);
-
-NTKERNELAPI
-INTERLOCKED_RESULT
-FASTCALL
-Exfi386InterlockedDecrementLong(
-  IN PLONG  Addend);
-
-NTKERNELAPI
-ULONG
-FASTCALL
-Exfi386InterlockedExchangeUlong(
-  IN PULONG  Target,
-  IN ULONG  Value);
-#endif
-
-$endif
-
-$if (_WDMDDK_)
-#define ExInterlockedIncrementLong(Addend,Lock) Exfi386InterlockedIncrementLong(Addend)
-#define ExInterlockedDecrementLong(Addend,Lock) Exfi386InterlockedDecrementLong(Addend)
-#define ExInterlockedExchangeUlong(Target, Value, Lock) Exfi386InterlockedExchangeUlong(Target, Value)
-
-#define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql))
-#define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql))
-#define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock)
-#define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock)
-
-#define ExInitializeSListHead InitializeSListHead
-
-#if defined(_NTHAL_) && defined(_X86_)
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExiAcquireFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExiReleaseFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExiTryToAcquireFastMutex(
-    IN OUT PFAST_MUTEX FastMutex);
-
-#define ExAcquireFastMutex ExiAcquireFastMutex
-#define ExReleaseFastMutex ExiReleaseFastMutex
-#define ExTryToAcquireFastMutex ExiTryToAcquireFastMutex
-
-#else
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExAcquireFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExTryToAcquireFastMutex(
-  IN OUT PFAST_MUTEX FastMutex);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#endif /* defined(_NTHAL_) && defined(_X86_) */
-
-#if defined(_X86_)
-#define ExInterlockedAddUlong ExfInterlockedAddUlong
-#define ExInterlockedInsertHeadList ExfInterlockedInsertHeadList
-#define ExInterlockedInsertTailList ExfInterlockedInsertTailList
-#define ExInterlockedRemoveHeadList ExfInterlockedRemoveHeadList
-#define ExInterlockedPopEntryList ExfInterlockedPopEntryList
-#define ExInterlockedPushEntryList ExfInterlockedPushEntryList
-#endif /* defined(_X86_) */
-
-#if defined(_WIN64)
-
-#if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || \
-    defined(_NTHAL_) || defined(_NTOSP_)
-NTKERNELAPI
-USHORT
-ExQueryDepthSList(IN PSLIST_HEADER ListHead);
-#else
-FORCEINLINE
-USHORT
-ExQueryDepthSList(IN PSLIST_HEADER ListHead)
-{
-  return (USHORT)(ListHead->Alignment & 0xffff);
-}
-#endif
-
-NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedFlushSList(
-  PSLIST_HEADER ListHead);
-
-NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedPopEntrySList(
-  PSLIST_HEADER ListHead);
-
-NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedPushEntrySList(
-  PSLIST_HEADER ListHead,
-  PSLIST_ENTRY ListEntry);
-
-#define ExInterlockedFlushSList(Head) \
-    ExpInterlockedFlushSList(Head)
-#define ExInterlockedPopEntrySList(Head, Lock) \
-    ExpInterlockedPopEntrySList(Head)
-#define ExInterlockedPushEntrySList(Head, Entry, Lock) \
-    ExpInterlockedPushEntrySList(Head, Entry)
-
-#else /* !defined(_WIN64) */
-
-#define ExQueryDepthSList(listhead) (listhead)->Depth
-
-NTKERNELAPI
-PSINGLE_LIST_ENTRY
-FASTCALL
-ExInterlockedFlushSList(
-  IN OUT PSLIST_HEADER ListHead);
-
-#endif /* !defined(_WIN64) */
-
-#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
-
-NTKERNELAPI
-PSINGLE_LIST_ENTRY 
-FASTCALL
-ExInterlockedPopEntrySList(
-  IN PSLIST_HEADER ListHead,
-  IN PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-PSINGLE_LIST_ENTRY 
-FASTCALL
-ExInterlockedPushEntrySList(
-  IN PSLIST_HEADER ListHead,
-  IN PSINGLE_LIST_ENTRY ListEntry,
-  IN PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExAllocateFromPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExFreeToPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
-  IN PVOID Entry);
-
-#else /* !_WIN2K_COMPAT_SLIST_USAGE */
-
-#if !defined(_WIN64)
-#define ExInterlockedPopEntrySList(_ListHead, _Lock) \
-    InterlockedPopEntrySList(_ListHead)
-#define ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) \
-    InterlockedPushEntrySList(_ListHead, _ListEntry)
-#endif
-
-static __inline
-PVOID
-ExAllocateFromPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside)
-{
-  PVOID Entry;
-
-  Lookaside->L.TotalAllocates++;
-  Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
-  if (Entry == NULL) {
-    Lookaside->L.AllocateMisses++;
-    Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
-                                    Lookaside->L.Size,
-                                    Lookaside->L.Tag);
-  }
-  return Entry;
-}
-
-static __inline
-VOID
-ExFreeToPagedLookasideList(
-  IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
-  IN PVOID Entry)
-{
-  Lookaside->L.TotalFrees++;
-  if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
-    Lookaside->L.FreeMisses++;
-    (Lookaside->L.Free)(Entry);
-  } else {
-    InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
-  }
-}
-
-#endif /* _WIN2K_COMPAT_SLIST_USAGE */
-
-
-/* ERESOURCE_THREAD
- * ExGetCurrentResourceThread(
- *     VOID);
- */
-#define ExGetCurrentResourceThread() ((ULONG_PTR)PsGetCurrentThread())
-
-#define ExReleaseResource(R) (ExReleaseResourceLite(R))
-
-/* VOID
- * ExInitializeWorkItem(
- *     IN PWORK_QUEUE_ITEM Item,
- *     IN PWORKER_THREAD_ROUTINE Routine,
- *     IN PVOID Context)
- */
-#define ExInitializeWorkItem(Item, Routine, Context) \
-{ \
-  (Item)->WorkerRoutine = Routine; \
-  (Item)->Parameter = Context; \
-  (Item)->List.Flink = NULL; \
-}
-
-FORCEINLINE
-VOID
-ExInitializeFastMutex(
-  OUT PFAST_MUTEX FastMutex)
-{
-  FastMutex->Count = FM_LOCK_BIT;
-  FastMutex->Owner = NULL;
-  FastMutex->Contention = 0;
-  KeInitializeEvent(&FastMutex->Event, SynchronizationEvent, FALSE);
-  return;
-}
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-$if (_NTDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExExtendZone(
-  IN OUT PZONE_HEADER Zone,
-  IN OUT PVOID Segment,
-  IN ULONG SegmentSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExInitializeZone(
-  OUT PZONE_HEADER Zone,
-  IN ULONG BlockSize,
-  IN OUT PVOID InitialSegment,
-  IN ULONG InitialSegmentSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExInterlockedExtendZone(
-  IN OUT PZONE_HEADER Zone,
-  IN OUT PVOID Segment,
-  IN ULONG SegmentSize,
-  IN OUT PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExUuidCreate(
-  OUT UUID *Uuid);
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-ExRaiseAccessViolation(VOID);
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-ExRaiseDatatypeMisalignment(VOID);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-VOID
-FASTCALL
-ExAcquireFastMutexUnsafe(
-  IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseFastMutexUnsafe(
-  IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-ExAcquireResourceExclusiveLite(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-ExAcquireResourceSharedLite(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-ExAcquireSharedStarveExclusive(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-ExAcquireSharedWaitForExclusive(
-  IN OUT PERESOURCE Resource,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExAllocatePool(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExAllocatePoolWithQuota(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExAllocatePoolWithQuotaTag(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag);
-
-#ifndef POOL_TAGGING
-#define ExAllocatePoolWithQuotaTag(a,b,c) ExAllocatePoolWithQuota(a,b)
-#endif
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExAllocatePoolWithTag(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag);
-
-#ifndef POOL_TAGGING
-#define ExAllocatePoolWithTag(a,b,c) ExAllocatePool(a,b)
-#endif
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExAllocatePoolWithTagPriority(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag,
-  IN EX_POOL_PRIORITY Priority);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExConvertExclusiveToSharedLite(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExCreateCallback(
-  OUT PCALLBACK_OBJECT *CallbackObject,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN BOOLEAN Create,
-  IN BOOLEAN AllowMultipleCallbacks);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExDeleteNPagedLookasideList(
-  IN OUT PNPAGED_LOOKASIDE_LIST Lookaside);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExDeletePagedLookasideList(
-  IN PPAGED_LOOKASIDE_LIST Lookaside);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExDeleteResourceLite(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExFreePool(
-  IN PVOID P);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExFreePoolWithTag(
-  IN PVOID P,
-  IN ULONG Tag);
-
-NTKERNELAPI
-ULONG
-NTAPI
-ExGetExclusiveWaiterCount(
-  IN PERESOURCE Resource);
-
-NTKERNELAPI
-KPROCESSOR_MODE
-NTAPI
-ExGetPreviousMode(VOID);
-
-NTKERNELAPI
-ULONG
-NTAPI
-ExGetSharedWaiterCount(
-  IN PERESOURCE Resource);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExInitializeNPagedLookasideList(
-  IN PNPAGED_LOOKASIDE_LIST Lookaside,
-  IN PALLOCATE_FUNCTION Allocate OPTIONAL,
-  IN PFREE_FUNCTION Free OPTIONAL,
-  IN ULONG Flags,
-  IN SIZE_T Size,
-  IN ULONG Tag,
-  IN USHORT Depth);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExInitializePagedLookasideList(
-  IN PPAGED_LOOKASIDE_LIST Lookaside,
-  IN PALLOCATE_FUNCTION Allocate OPTIONAL,
-  IN PFREE_FUNCTION Free OPTIONAL,
-  IN ULONG Flags,
-  IN SIZE_T Size,
-  IN ULONG Tag,
-  IN USHORT Depth);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExInitializeResourceLite(
-  OUT PERESOURCE Resource);
-
-NTKERNELAPI
-LARGE_INTEGER
-NTAPI
-ExInterlockedAddLargeInteger(
-  IN PLARGE_INTEGER Addend,
-  IN LARGE_INTEGER Increment,
-  IN PKSPIN_LOCK Lock);
-
-#if defined(_WIN64)
-#define ExInterlockedAddLargeStatistic(Addend, Increment) \
-    (VOID)InterlockedAdd64(&(Addend)->QuadPart, Increment)
-#else
-#define ExInterlockedAddLargeStatistic(Addend, Increment) \
-    _InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment)
-#endif
-
-NTKERNELAPI
-ULONG
-FASTCALL
-ExInterlockedAddUlong(
-  IN PULONG Addend,
-  IN ULONG Increment,
-  IN OUT PKSPIN_LOCK Lock);
-
-#if defined(_AMD64_) || defined(_IA64_)
-
-#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \
-    InterlockedCompareExchange64(Destination, *(Exchange), *(Comperand))
-
-#elif defined(_X86_)
-
-NTKERNELAPI
-LONGLONG
-FASTCALL
-ExfInterlockedCompareExchange64(
-  IN OUT LONGLONG volatile *Destination,
-  IN PLONGLONG Exchange,
-  IN PLONGLONG Comperand);
-
-#define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \
-    ExfInterlockedCompareExchange64(Destination, Exchange, Comperand)
-
-#else
-
-NTKERNELAPI
-LONGLONG
-FASTCALL
-ExInterlockedCompareExchange64(
-  IN OUT LONGLONG volatile *Destination,
-  IN PLONGLONG Exchange,
-  IN PLONGLONG Comparand,
-  IN PKSPIN_LOCK Lock);
-
-#endif /* defined(_AMD64_) || defined(_IA64_) */
-
-NTKERNELAPI
-PLIST_ENTRY
-FASTCALL
-ExInterlockedInsertHeadList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY ListEntry,
-  IN OUT PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-PLIST_ENTRY
-FASTCALL
-ExInterlockedInsertTailList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY ListEntry,
-  IN OUT PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-PSINGLE_LIST_ENTRY
-FASTCALL
-ExInterlockedPopEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead,
-  IN OUT PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-PSINGLE_LIST_ENTRY
-FASTCALL
-ExInterlockedPushEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead,
-  IN OUT PSINGLE_LIST_ENTRY ListEntry,
-  IN OUT PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-PLIST_ENTRY
-FASTCALL
-ExInterlockedRemoveHeadList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PKSPIN_LOCK Lock);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-ExIsProcessorFeaturePresent(
-  IN ULONG ProcessorFeature);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-ExIsResourceAcquiredExclusiveLite(
-  IN PERESOURCE Resource);
-
-NTKERNELAPI
-ULONG
-NTAPI
-ExIsResourceAcquiredSharedLite(
-  IN PERESOURCE Resource);
-
-#define ExIsResourceAcquiredLite ExIsResourceAcquiredSharedLite
-
-NTKERNELAPI
-VOID
-NTAPI
-ExLocalTimeToSystemTime(
-  IN PLARGE_INTEGER LocalTime,
-  OUT PLARGE_INTEGER SystemTime);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExNotifyCallback(
-  IN PCALLBACK_OBJECT CallbackObject,
-  IN PVOID Argument1 OPTIONAL,
-  IN PVOID Argument2 OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExQueueWorkItem(
-  IN OUT PWORK_QUEUE_ITEM WorkItem,
-  IN WORK_QUEUE_TYPE QueueType);
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-ExRaiseStatus(
-  IN NTSTATUS Status);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExRegisterCallback(
-  IN PCALLBACK_OBJECT CallbackObject,
-  IN PCALLBACK_FUNCTION CallbackFunction,
-  IN PVOID CallbackContext OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExReinitializeResourceLite(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExReleaseResourceForThreadLite(
-  IN OUT PERESOURCE Resource,
-  IN ERESOURCE_THREAD ResourceThreadId);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseResourceLite(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExSetResourceOwnerPointer(
-  IN OUT PERESOURCE Resource,
-  IN PVOID OwnerPointer);
-
-NTKERNELAPI
-ULONG
-NTAPI
-ExSetTimerResolution(
-  IN ULONG DesiredTime,
-  IN BOOLEAN SetResolution);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExSystemTimeToLocalTime(
-  IN PLARGE_INTEGER SystemTime,
-  OUT PLARGE_INTEGER LocalTime);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExUnregisterCallback(
-  IN OUT PVOID CbRegistration);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtection(
-  IN OUT PEX_RUNDOWN_REF RunRef);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExInitializeRundownProtection(
-  OUT PEX_RUNDOWN_REF RunRef);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReInitializeRundownProtection(
-  IN OUT PEX_RUNDOWN_REF RunRef);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseRundownProtection(
-  IN OUT PEX_RUNDOWN_REF RunRef);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExRundownCompleted(
-  OUT PEX_RUNDOWN_REF RunRef);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-ExVerifySuite(
-  IN SUITE_TYPE SuiteType);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExWaitForRundownProtectionRelease(
-  IN OUT PEX_RUNDOWN_REF RunRef);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtectionEx(
-  IN OUT PEX_RUNDOWN_REF RunRef,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseRundownProtectionEx(
-  IN OUT PEX_RUNDOWN_REF RunRef,
-  IN ULONG Count);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-
-NTKERNELAPI
-PEX_RUNDOWN_REF_CACHE_AWARE
-NTAPI
-ExAllocateCacheAwareRundownProtection(
-  IN POOL_TYPE PoolType,
-  IN ULONG PoolTag);
-
-NTKERNELAPI
-SIZE_T
-NTAPI
-ExSizeOfRundownProtectionCacheAware(VOID);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExEnterCriticalRegionAndAcquireResourceShared(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExEnterCriticalRegionAndAcquireResourceExclusive(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-PVOID
-NTAPI
-ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseResourceAndLeaveCriticalRegion(
-  IN OUT PERESOURCE Resource);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExInitializeRundownProtectionCacheAware(
-  OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware,
-  IN SIZE_T RunRefSize);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExFreeCacheAwareRundownProtection(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtectionCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseRundownProtectionCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExAcquireRundownProtectionCacheAwareEx(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseRundownProtectionCacheAwareEx(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRef,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExWaitForRundownProtectionReleaseCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRef);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReInitializeRundownProtectionCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExRundownCompletedCacheAware(
-  IN OUT PEX_RUNDOWN_REF_CACHE_AWARE RunRefCacheAware);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ExInitializeLookasideListEx(
-  OUT PLOOKASIDE_LIST_EX Lookaside,
-  IN PALLOCATE_FUNCTION_EX Allocate OPTIONAL,
-  IN PFREE_FUNCTION_EX Free OPTIONAL,
-  IN POOL_TYPE PoolType,
-  IN ULONG Flags,
-  IN SIZE_T Size,
-  IN ULONG Tag,
-  IN USHORT Depth);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExDeleteLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
-
-NTKERNELAPI
-VOID
-NTAPI
-ExFlushLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
-
-FORCEINLINE
-PVOID
-ExAllocateFromLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside)
-{
-  PVOID Entry;
-
-  Lookaside->L.TotalAllocates += 1;
-  Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
-  if (Entry == NULL) {
-    Lookaside->L.AllocateMisses += 1;
-    Entry = (Lookaside->L.AllocateEx)(Lookaside->L.Type,
-                                      Lookaside->L.Size,
-                                      Lookaside->L.Tag,
-                                      Lookaside);
-  }
-  return Entry;
-}
-
-FORCEINLINE
-VOID
-ExFreeToLookasideListEx(
-  IN OUT PLOOKASIDE_LIST_EX Lookaside,
-  IN PVOID Entry)
-{
-  Lookaside->L.TotalFrees += 1;
-  if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
-    Lookaside->L.FreeMisses += 1;
-    (Lookaside->L.FreeEx)(Entry, Lookaside);
-  } else {
-    InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
-  }
-  return;
-}
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-NTKERNELAPI
-VOID
-NTAPI
-ExSetResourceOwnerPointerEx(
-  IN OUT PERESOURCE Resource,
-  IN PVOID OwnerPointer,
-  IN ULONG Flags);
-
-#define FLAG_OWNER_POINTER_IS_THREAD 0x1
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-static __inline PVOID
-ExAllocateFromNPagedLookasideList(
-  IN OUT PNPAGED_LOOKASIDE_LIST Lookaside)
-{
-  PVOID Entry;
-
-  Lookaside->L.TotalAllocates++;
-#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
-  Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead,
-                                     &Lookaside->Lock__ObsoleteButDoNotDelete);
-#else
-  Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
-#endif
-  if (Entry == NULL) {
-    Lookaside->L.AllocateMisses++;
-    Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
-                                    Lookaside->L.Size,
-                                    Lookaside->L.Tag);
-  }
-  return Entry;
-}
-
-static __inline VOID
-ExFreeToNPagedLookasideList(
-  IN OUT PNPAGED_LOOKASIDE_LIST Lookaside,
-  IN PVOID Entry)
-{
-  Lookaside->L.TotalFrees++;
-  if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
-    Lookaside->L.FreeMisses++;
-    (Lookaside->L.Free)(Entry);
-  } else {
-#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
-      ExInterlockedPushEntrySList(&Lookaside->L.ListHead,
-                                  (PSLIST_ENTRY)Entry,
-                                  &Lookaside->Lock__ObsoleteButDoNotDelete);
-#else
-      InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
-#endif
-   }
-}
-
-$endif
-
diff --git a/reactos/include/xdk/extypes.h b/reactos/include/xdk/extypes.h
deleted file mode 100644 (file)
index 4d18ac1..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-/******************************************************************************
- *                            Executive Types                                 *
- ******************************************************************************/
-$if (_WDMDDK_)
-
-#define EX_RUNDOWN_ACTIVE                 0x1
-#define EX_RUNDOWN_COUNT_SHIFT            0x1
-#define EX_RUNDOWN_COUNT_INC              (1 << EX_RUNDOWN_COUNT_SHIFT)
-
-typedef struct _FAST_MUTEX {
-  volatile LONG Count;
-  PKTHREAD Owner;
-  ULONG Contention;
-  KEVENT Event;
-  ULONG OldIrql;
-} FAST_MUTEX, *PFAST_MUTEX;
-
-typedef enum _SUITE_TYPE {
-  SmallBusiness,
-  Enterprise,
-  BackOffice,
-  CommunicationServer,
-  TerminalServer,
-  SmallBusinessRestricted,
-  EmbeddedNT,
-  DataCenter,
-  SingleUserTS,
-  Personal,
-  Blade,
-  EmbeddedRestricted,
-  SecurityAppliance,
-  StorageServer,
-  ComputeServer,
-  WHServer,
-  MaxSuiteType
-} SUITE_TYPE;
-
-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;
-
-#if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_))
-#define LOOKASIDE_ALIGN
-#else
-#define LOOKASIDE_ALIGN /* FIXME: DECLSPEC_CACHEALIGN */
-#endif
-
-typedef struct _LOOKASIDE_LIST_EX *PLOOKASIDE_LIST_EX;
-
-typedef PVOID
-(NTAPI *PALLOCATE_FUNCTION)(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag);
-
-typedef PVOID
-(NTAPI *PALLOCATE_FUNCTION_EX)(
-  IN POOL_TYPE PoolType,
-  IN SIZE_T NumberOfBytes,
-  IN ULONG Tag,
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
-
-typedef VOID
-(NTAPI *PFREE_FUNCTION)(
-  IN PVOID Buffer);
-
-typedef VOID
-(NTAPI *PFREE_FUNCTION_EX)(
-  IN PVOID Buffer,
-  IN OUT PLOOKASIDE_LIST_EX Lookaside);
-
-typedef VOID
-(NTAPI CALLBACK_FUNCTION)(
-  IN PVOID CallbackContext OPTIONAL,
-  IN PVOID Argument1 OPTIONAL,
-  IN PVOID Argument2 OPTIONAL);
-typedef CALLBACK_FUNCTION *PCALLBACK_FUNCTION;
-
-#define GENERAL_LOOKASIDE_LAYOUT                \
-    union {                                     \
-        SLIST_HEADER ListHead;                  \
-        SINGLE_LIST_ENTRY SingleListHead;       \
-    } DUMMYUNIONNAME;                           \
-    USHORT Depth;                               \
-    USHORT MaximumDepth;                        \
-    ULONG TotalAllocates;                       \
-    union {                                     \
-        ULONG AllocateMisses;                   \
-        ULONG AllocateHits;                     \
-    } DUMMYUNIONNAME2;                          \
-                                                \
-    ULONG TotalFrees;                           \
-    union {                                     \
-        ULONG FreeMisses;                       \
-        ULONG FreeHits;                         \
-    } DUMMYUNIONNAME3;                          \
-                                                \
-    POOL_TYPE Type;                             \
-    ULONG Tag;                                  \
-    ULONG Size;                                 \
-    union {                                     \
-        PALLOCATE_FUNCTION_EX AllocateEx;       \
-        PALLOCATE_FUNCTION Allocate;            \
-    } DUMMYUNIONNAME4;                          \
-                                                \
-    union {                                     \
-        PFREE_FUNCTION_EX FreeEx;               \
-        PFREE_FUNCTION Free;                    \
-    } DUMMYUNIONNAME5;                          \
-                                                \
-    LIST_ENTRY ListEntry;                       \
-    ULONG LastTotalAllocates;                   \
-    union {                                     \
-        ULONG LastAllocateMisses;               \
-        ULONG LastAllocateHits;                 \
-    } DUMMYUNIONNAME6;                          \
-    ULONG Future[2];
-
-typedef struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE {
-  GENERAL_LOOKASIDE_LAYOUT
-} GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE;
-
-typedef struct _GENERAL_LOOKASIDE_POOL {
-  GENERAL_LOOKASIDE_LAYOUT
-} GENERAL_LOOKASIDE_POOL, *PGENERAL_LOOKASIDE_POOL;
-
-#define LOOKASIDE_CHECK(f)  \
-    C_ASSERT(FIELD_OFFSET(GENERAL_LOOKASIDE,f) == FIELD_OFFSET(GENERAL_LOOKASIDE_POOL,f))
-
-LOOKASIDE_CHECK(TotalFrees);
-LOOKASIDE_CHECK(Tag);
-LOOKASIDE_CHECK(Future);
-
-typedef struct _PAGED_LOOKASIDE_LIST {
-  GENERAL_LOOKASIDE L;
-#if !defined(_AMD64_) && !defined(_IA64_)
-  FAST_MUTEX Lock__ObsoleteButDoNotDelete;
-#endif
-} PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
-
-typedef struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST {
-  GENERAL_LOOKASIDE L;
-#if !defined(_AMD64_) && !defined(_IA64_)
-  KSPIN_LOCK Lock__ObsoleteButDoNotDelete;
-#endif
-} NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
-
-#define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD (SLIST_ENTRY, Next))
-
-typedef struct _LOOKASIDE_LIST_EX {
-  GENERAL_LOOKASIDE_POOL L;
-} LOOKASIDE_LIST_EX;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-#define EX_LOOKASIDE_LIST_EX_FLAGS_RAISE_ON_FAIL 0x00000001UL
-#define EX_LOOKASIDE_LIST_EX_FLAGS_FAIL_NO_RAISE 0x00000002UL
-
-#define EX_MAXIMUM_LOOKASIDE_DEPTH_BASE          256
-#define EX_MAXIMUM_LOOKASIDE_DEPTH_LIMIT         1024
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-typedef struct _EX_RUNDOWN_REF {
-  __GNU_EXTENSION union {
-    volatile ULONG_PTR Count;
-    volatile PVOID Ptr;
-  };
-} EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
-
-typedef struct _EX_RUNDOWN_REF_CACHE_AWARE *PEX_RUNDOWN_REF_CACHE_AWARE;
-
-typedef enum _WORK_QUEUE_TYPE {
-  CriticalWorkQueue,
-  DelayedWorkQueue,
-  HyperCriticalWorkQueue,
-  MaximumWorkQueue
-} WORK_QUEUE_TYPE;
-
-typedef VOID
-(NTAPI WORKER_THREAD_ROUTINE)(
-  IN PVOID Parameter);
-typedef WORKER_THREAD_ROUTINE *PWORKER_THREAD_ROUTINE;
-
-typedef struct _WORK_QUEUE_ITEM {
-  LIST_ENTRY List;
-  PWORKER_THREAD_ROUTINE WorkerRoutine;
-  volatile PVOID Parameter;
-} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
-
-typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
-
-typedef struct _OWNER_ENTRY {
-  ERESOURCE_THREAD OwnerThread;
-  union {
-    struct {
-      ULONG IoPriorityBoosted:1;
-      ULONG OwnerReferenced:1;
-      ULONG OwnerCount:30;
-    };
-    ULONG TableSize;
-  };
-} OWNER_ENTRY, *POWNER_ENTRY;
-
-typedef struct _ERESOURCE {
-  LIST_ENTRY SystemResourcesList;
-  POWNER_ENTRY OwnerTable;
-  SHORT ActiveCount;
-  USHORT Flag;
-  volatile PKSEMAPHORE SharedWaiters;
-  volatile PKEVENT ExclusiveWaiters;
-  OWNER_ENTRY OwnerEntry;
-  ULONG ActiveEntries;
-  ULONG ContentionCount;
-  ULONG NumberOfSharedWaiters;
-  ULONG NumberOfExclusiveWaiters;
-#if defined(_WIN64)
-  PVOID Reserved2;
-#endif
-  __GNU_EXTENSION union {
-    PVOID Address;
-    ULONG_PTR CreatorBackTraceIndex;
-  };
-  KSPIN_LOCK SpinLock;
-} ERESOURCE, *PERESOURCE;
-
-/* ERESOURCE.Flag */
-#define ResourceNeverExclusive            0x0010
-#define ResourceReleaseByOtherThread      0x0020
-#define ResourceOwnedExclusive            0x0080
-
-#define RESOURCE_HASH_TABLE_SIZE          64
-
-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[RESOURCE_HASH_TABLE_SIZE];
-} RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA;
-
-/* Global debug flag */
-#if DEVL
-extern ULONG NtGlobalFlag;
-#define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName))
-#else
-#define IF_NTOS_DEBUG(FlagName) if(FALSE)
-#endif
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-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;
-
-#define PROTECTED_POOL                    0x80000000
-
-$endif /* _NTDDK_ */
-
diff --git a/reactos/include/xdk/generate.bat b/reactos/include/xdk/generate.bat
deleted file mode 100644 (file)
index e26f34a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-..\..\output-i386\tools\hpp\hpp.exe wdm.template.h wdm.h
-..\..\output-i386\tools\hpp\hpp.exe ntddk.template.h ntddk.h
diff --git a/reactos/include/xdk/halfuncs.h b/reactos/include/xdk/halfuncs.h
deleted file mode 100644 (file)
index 547f4e4..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-/* Hardware Abstraction Layer Functions */
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
-$if (_WDMDDK_)
-
-FORCEINLINE
-PVOID
-NTAPI
-HalAllocateCommonBuffer(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  OUT PPHYSICAL_ADDRESS LogicalAddress,
-  IN BOOLEAN CacheEnabled)
-{
-  PALLOCATE_COMMON_BUFFER allocateCommonBuffer;
-  PVOID commonBuffer;
-
-  allocateCommonBuffer = *(DmaAdapter)->DmaOperations->AllocateCommonBuffer;
-  ASSERT( allocateCommonBuffer != NULL );
-  commonBuffer = allocateCommonBuffer( DmaAdapter, Length, LogicalAddress, CacheEnabled );
-  return commonBuffer;
-}
-
-FORCEINLINE
-VOID
-NTAPI
-HalFreeCommonBuffer(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  IN PHYSICAL_ADDRESS LogicalAddress,
-  IN PVOID VirtualAddress,
-  IN BOOLEAN CacheEnabled)
-{
-  PFREE_COMMON_BUFFER freeCommonBuffer;
-
-  freeCommonBuffer = *(DmaAdapter)->DmaOperations->FreeCommonBuffer;
-  ASSERT( freeCommonBuffer != NULL );
-  freeCommonBuffer( DmaAdapter, Length, LogicalAddress, VirtualAddress, CacheEnabled );
-}
-
-FORCEINLINE
-ULONG
-NTAPI
-HalReadDmaCounter(
-  IN PDMA_ADAPTER DmaAdapter)
-{
-  PREAD_DMA_COUNTER readDmaCounter;
-  ULONG counter;
-
-  readDmaCounter = *(DmaAdapter)->DmaOperations->ReadDmaCounter;
-  ASSERT( readDmaCounter != NULL );
-  counter = readDmaCounter( DmaAdapter );
-  return counter;
-}
-
-FORCEINLINE
-ULONG
-HalGetDmaAlignment(
-  IN PDMA_ADAPTER DmaAdapter)
-{
-  PGET_DMA_ALIGNMENT getDmaAlignment;
-  ULONG alignment;
-
-  getDmaAlignment = *(DmaAdapter)->DmaOperations->GetDmaAlignment;
-  ASSERT( getDmaAlignment != NULL );
-  alignment = getDmaAlignment( DmaAdapter );
-  return alignment;
-}
-
-$endif
-$if (_NTDDK_)
-
-/* Nothing here */
-
-#else /* USE_DMA_MACROS ... */
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-VOID
-NTAPI
-IoFreeAdapterChannel(
-  IN PADAPTER_OBJECT AdapterObject);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-BOOLEAN
-NTAPI
-IoFlushAdapterBuffers(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN BOOLEAN WriteToDevice);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-VOID
-NTAPI
-IoFreeMapRegisters(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PVOID MapRegisterBase,
-  IN ULONG NumberOfMapRegisters);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-PVOID
-NTAPI
-HalAllocateCommonBuffer(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN ULONG Length,
-  OUT PPHYSICAL_ADDRESS LogicalAddress,
-  IN BOOLEAN CacheEnabled);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-VOID
-NTAPI
-HalFreeCommonBuffer(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN ULONG Length,
-  IN PHYSICAL_ADDRESS LogicalAddress,
-  IN PVOID VirtualAddress,
-  IN BOOLEAN CacheEnabled);
-
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-ULONG
-NTAPI
-HalReadDmaCounter(
-  IN PADAPTER_OBJECT AdapterObject);
-
-NTHALAPI
-NTSTATUS
-NTAPI
-HalAllocateAdapterChannel(
-  IN PADAPTER_OBJECT  AdapterObject,
-  IN PWAIT_CONTEXT_BLOCK  Wcb,
-  IN ULONG  NumberOfMapRegisters,
-  IN PDRIVER_CONTROL  ExecutionRoutine);
-
-$endif /* _NTDDK_ */
-#endif /* USE_DMA_MACROS ... */
-$if (_NTDDK_)
-
-#if !defined(NO_LEGACY_DRIVERS)
-NTHALAPI
-NTSTATUS
-NTAPI
-HalAssignSlotResources(
-  IN PUNICODE_STRING RegistryPath,
-  IN PUNICODE_STRING DriverClassName,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN INTERFACE_TYPE BusType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN OUT PCM_RESOURCE_LIST *AllocatedResources);
-
-NTHALAPI
-ULONG
-NTAPI
-HalGetInterruptVector(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber,
-  IN ULONG BusInterruptLevel,
-  IN ULONG BusInterruptVector,
-  OUT PKIRQL Irql,
-  OUT PKAFFINITY Affinity);
-
-NTHALAPI
-ULONG
-NTAPI
-HalSetBusData(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PVOID Buffer,
-  IN ULONG Length);
-
-NTHALAPI
-ULONG
-NTAPI
-HalGetBusData(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  OUT PVOID Buffer,
-  IN ULONG Length);
-
-NTHALAPI
-BOOLEAN
-NTAPI
-HalMakeBeep(
-  IN ULONG Frequency);
-#endif /* !defined(NO_LEGACY_DRIVERS) */
-
-NTHALAPI
-PADAPTER_OBJECT
-NTAPI
-HalGetAdapter(
-  IN PDEVICE_DESCRIPTION DeviceDescription,
-  OUT PULONG NumberOfMapRegisters);
-
-VOID
-NTAPI
-HalPutDmaAdapter(
-  IN PADAPTER_OBJECT DmaAdapter);
-
-NTHALAPI
-VOID
-NTAPI
-HalAcquireDisplayOwnership(
-  IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters);
-
-NTHALAPI
-ULONG
-NTAPI
-HalGetBusDataByOffset(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  OUT PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-NTHALAPI
-ULONG
-NTAPI
-HalSetBusDataByOffset(
-  IN BUS_DATA_TYPE BusDataType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-NTHALAPI
-BOOLEAN
-NTAPI
-HalTranslateBusAddress(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber,
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN OUT PULONG AddressSpace,
-  OUT PPHYSICAL_ADDRESS TranslatedAddress);
-
-NTHALAPI
-PVOID
-NTAPI
-HalAllocateCrashDumpRegisters(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN OUT PULONG NumberOfMapRegisters);
-
-NTSTATUS
-NTAPI
-HalGetScatterGatherList(
-  IN PADAPTER_OBJECT DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PMDL Mdl,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN PDRIVER_LIST_CONTROL ExecutionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN WriteToDevice);
-
-VOID
-NTAPI
-HalPutScatterGatherList(
-  IN PADAPTER_OBJECT DmaAdapter,
-  IN PSCATTER_GATHER_LIST ScatterGather,
-  IN BOOLEAN WriteToDevice);
-
-$endif /* _NTDDK_ */
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-$if (_NTDDK_)
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-VOID
-FASTCALL
-HalExamineMBR(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG MBRTypeIdentifier,
-  OUT PVOID *Buffer);
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-NTSTATUS
-NTAPI
-HalAllocateHardwareCounters(
-  IN PGROUP_AFFINITY GroupAffinty,
-  IN ULONG GroupCount,
-  IN PPHYSICAL_COUNTER_RESOURCE_LIST ResourceList,
-  OUT PHANDLE CounterSetHandle);
-
-NTSTATUS
-NTAPI
-HalFreeHardwareCounters(
-  IN HANDLE CounterSetHandle);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#if defined(_IA64_)
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTHALAPI
-ULONG
-NTAPI
-HalGetDmaAlignmentRequirement(VOID);
-#endif
-#endif /* defined(_IA64_) */
-
-#if defined(_M_IX86) || defined(_M_AMD64)
-#define HalGetDmaAlignmentRequirement() 1L
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-typedef struct _WHEA_ERROR_SOURCE_DESCRIPTOR *PWHEA_ERROR_SOURCE_DESCRIPTOR;
-typedef struct _WHEA_ERROR_RECORD *PWHEA_ERROR_RECORD;
-
-NTHALAPI
-VOID
-NTAPI
-HalBugCheckSystem(
-  IN PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
-  IN PWHEA_ERROR_RECORD ErrorRecord);
-
-#else
-
-typedef struct _WHEA_ERROR_RECORD *PWHEA_ERROR_RECORD;
-
-NTHALAPI
-VOID
-NTAPI
-HalBugCheckSystem(
-  IN PWHEA_ERROR_RECORD ErrorRecord);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-$endif /* _NTDDK_ */
-
diff --git a/reactos/include/xdk/haltypes.h b/reactos/include/xdk/haltypes.h
deleted file mode 100644 (file)
index a9a0317..0000000
+++ /dev/null
@@ -1,551 +0,0 @@
-/* Hardware Abstraction Layer Types */
-
-$if (_NTDDK_)
-typedef BOOLEAN
-(NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
-  IN ULONG Columns,
-  IN ULONG Rows);
-
-typedef PBUS_HANDLER
-(FASTCALL *pHalHandlerForBus)(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber);
-
-typedef VOID
-(FASTCALL *pHalReferenceBusHandler)(
-  IN PBUS_HANDLER BusHandler);
-
-typedef enum _HAL_QUERY_INFORMATION_CLASS {
-  HalInstalledBusInformation,
-  HalProfileSourceInformation,
-  HalInformationClassUnused1,
-  HalPowerInformation,
-  HalProcessorSpeedInformation,
-  HalCallbackInformation,
-  HalMapRegisterInformation,
-  HalMcaLogInformation,
-  HalFrameBufferCachingInformation,
-  HalDisplayBiosInformation,
-  HalProcessorFeatureInformation,
-  HalNumaTopologyInterface,
-  HalErrorInformation,
-  HalCmcLogInformation,
-  HalCpeLogInformation,
-  HalQueryMcaInterface,
-  HalQueryAMLIIllegalIOPortAddresses,
-  HalQueryMaxHotPlugMemoryAddress,
-  HalPartitionIpiInterface,
-  HalPlatformInformation,
-  HalQueryProfileSourceList,
-  HalInitLogInformation,
-  HalFrequencyInformation,
-  HalProcessorBrandString,
-  HalHypervisorInformation,
-  HalPlatformTimerInformation,
-  HalAcpiAuditInformation
-} HAL_QUERY_INFORMATION_CLASS, *PHAL_QUERY_INFORMATION_CLASS;
-
-typedef enum _HAL_SET_INFORMATION_CLASS {
-  HalProfileSourceInterval,
-  HalProfileSourceInterruptHandler,
-  HalMcaRegisterDriver,
-  HalKernelErrorHandler,
-  HalCmcRegisterDriver,
-  HalCpeRegisterDriver,
-  HalMcaLog,
-  HalCmcLog,
-  HalCpeLog,
-  HalGenerateCmcInterrupt,
-  HalProfileSourceTimerHandler,
-  HalEnlightenment,
-  HalProfileDpgoSourceInterruptHandler
-} HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
-
-typedef NTSTATUS
-(NTAPI *pHalQuerySystemInformation)(
-  IN HAL_QUERY_INFORMATION_CLASS InformationClass,
-  IN ULONG BufferSize,
-  IN OUT PVOID Buffer,
-  OUT PULONG ReturnedLength);
-
-typedef NTSTATUS
-(NTAPI *pHalSetSystemInformation)(
-  IN HAL_SET_INFORMATION_CLASS InformationClass,
-  IN ULONG BufferSize,
-  IN PVOID Buffer);
-
-typedef VOID
-(FASTCALL *pHalExamineMBR)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG MBRTypeIdentifier,
-  OUT PVOID *Buffer);
-
-typedef NTSTATUS
-(FASTCALL *pHalIoReadPartitionTable)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN BOOLEAN ReturnRecognizedPartitions,
-  OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
-
-typedef NTSTATUS
-(FASTCALL *pHalIoSetPartitionInformation)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG PartitionNumber,
-  IN ULONG PartitionType);
-
-typedef NTSTATUS
-(FASTCALL *pHalIoWritePartitionTable)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG SectorsPerTrack,
-  IN ULONG NumberOfHeads,
-  IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
-
-typedef NTSTATUS
-(NTAPI *pHalQueryBusSlots)(
-  IN PBUS_HANDLER BusHandler,
-  IN ULONG BufferSize,
-  OUT PULONG SlotNumbers,
-  OUT PULONG ReturnedLength);
-
-typedef NTSTATUS
-(NTAPI *pHalInitPnpDriver)(
-  VOID);
-
-typedef struct _PM_DISPATCH_TABLE {
-  ULONG Signature;
-  ULONG Version;
-  PVOID Function[1];
-} PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE;
-
-typedef NTSTATUS
-(NTAPI *pHalInitPowerManagement)(
-  IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
-  OUT PPM_DISPATCH_TABLE *PmHalDispatchTable);
-
-typedef struct _DMA_ADAPTER*
-(NTAPI *pHalGetDmaAdapter)(
-  IN PVOID Context,
-  IN struct _DEVICE_DESCRIPTION *DeviceDescriptor,
-  OUT PULONG NumberOfMapRegisters);
-
-typedef NTSTATUS
-(NTAPI *pHalGetInterruptTranslator)(
-  IN INTERFACE_TYPE ParentInterfaceType,
-  IN ULONG ParentBusNumber,
-  IN INTERFACE_TYPE BridgeInterfaceType,
-  IN USHORT Size,
-  IN USHORT Version,
-  OUT PTRANSLATOR_INTERFACE Translator,
-  OUT PULONG BridgeBusNumber);
-
-typedef NTSTATUS
-(NTAPI *pHalStartMirroring)(
-  VOID);
-
-typedef NTSTATUS
-(NTAPI *pHalEndMirroring)(
-  IN ULONG PassNumber);
-
-typedef NTSTATUS
-(NTAPI *pHalMirrorPhysicalMemory)(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN LARGE_INTEGER NumberOfBytes);
-
-typedef NTSTATUS
-(NTAPI *pHalMirrorVerify)(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN LARGE_INTEGER NumberOfBytes);
-
-typedef BOOLEAN
-(NTAPI *pHalTranslateBusAddress)(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber,
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN OUT PULONG AddressSpace,
-  OUT PPHYSICAL_ADDRESS TranslatedAddress);
-
-typedef NTSTATUS
-(NTAPI *pHalAssignSlotResources)(
-  IN PUNICODE_STRING RegistryPath,
-  IN PUNICODE_STRING DriverClassName OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN INTERFACE_TYPE BusType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN OUT PCM_RESOURCE_LIST *AllocatedResources);
-
-typedef VOID
-(NTAPI *pHalHaltSystem)(
-  VOID);
-
-typedef BOOLEAN
-(NTAPI *pHalResetDisplay)(
-  VOID);
-
-typedef struct _MAP_REGISTER_ENTRY {
-  PVOID MapRegister;
-  BOOLEAN WriteToDevice;
-} MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY;
-
-typedef UCHAR
-(NTAPI *pHalVectorToIDTEntry)(
-  ULONG Vector);
-
-typedef BOOLEAN
-(NTAPI *pHalFindBusAddressTranslation)(
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN OUT PULONG AddressSpace,
-  OUT PPHYSICAL_ADDRESS TranslatedAddress,
-  IN OUT PULONG_PTR Context,
-  IN BOOLEAN NextBus);
-
-typedef VOID
-(NTAPI *pHalEndOfBoot)(
-  VOID);
-
-typedef PVOID
-(NTAPI *pHalGetAcpiTable)(
-  IN ULONG Signature,
-  IN PCSTR OemId OPTIONAL,
-  IN PCSTR OemTableId OPTIONAL);
-
-#if defined(_IA64_)
-typedef NTSTATUS
-(*pHalGetErrorCapList)(
-  IN OUT PULONG CapsListLength,
-  IN OUT PUCHAR ErrorCapList);
-
-typedef NTSTATUS
-(*pHalInjectError)(
-  IN ULONG BufferLength,
-  IN PUCHAR Buffer);
-#endif
-
-typedef VOID
-(NTAPI *PCI_ERROR_HANDLER_CALLBACK)(
-  VOID);
-
-typedef VOID
-(NTAPI *pHalSetPciErrorHandlerCallback)(
-  IN PCI_ERROR_HANDLER_CALLBACK Callback);
-
-#if 1 /* Not present in WDK 7600 */
-typedef VOID
-(FASTCALL *pHalIoAssignDriveLetters)(
-  IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
-  IN PSTRING NtDeviceName,
-  OUT PUCHAR NtSystemPath,
-  OUT PSTRING NtSystemPathString);
-#endif
-
-typedef struct {
-  ULONG Version;
-  pHalQuerySystemInformation HalQuerySystemInformation;
-  pHalSetSystemInformation HalSetSystemInformation;
-  pHalQueryBusSlots HalQueryBusSlots;
-  ULONG Spare1;
-  pHalExamineMBR HalExamineMBR;
-#if 1 /* Not present in WDK 7600 */
-  pHalIoAssignDriveLetters HalIoAssignDriveLetters;
-#endif
-  pHalIoReadPartitionTable HalIoReadPartitionTable;
-  pHalIoSetPartitionInformation HalIoSetPartitionInformation;
-  pHalIoWritePartitionTable HalIoWritePartitionTable;
-  pHalHandlerForBus HalReferenceHandlerForBus;
-  pHalReferenceBusHandler HalReferenceBusHandler;
-  pHalReferenceBusHandler HalDereferenceBusHandler;
-  pHalInitPnpDriver HalInitPnpDriver;
-  pHalInitPowerManagement HalInitPowerManagement;
-  pHalGetDmaAdapter HalGetDmaAdapter;
-  pHalGetInterruptTranslator HalGetInterruptTranslator;
-  pHalStartMirroring HalStartMirroring;
-  pHalEndMirroring HalEndMirroring;
-  pHalMirrorPhysicalMemory HalMirrorPhysicalMemory;
-  pHalEndOfBoot HalEndOfBoot;
-  pHalMirrorVerify HalMirrorVerify;
-  pHalGetAcpiTable HalGetCachedAcpiTable;
-  pHalSetPciErrorHandlerCallback  HalSetPciErrorHandlerCallback;
-#if defined(_IA64_)
-  pHalGetErrorCapList HalGetErrorCapList;
-  pHalInjectError HalInjectError;
-#endif
-} HAL_DISPATCH, *PHAL_DISPATCH;
-
-/* GCC/MSVC and WDK compatible declaration */
-extern NTKERNELAPI HAL_DISPATCH HalDispatchTable;
-
-#if defined(_NTOSKRNL_) || defined(_BLDR_)
-#define HALDISPATCH (&HalDispatchTable)
-#else
-/* This is a WDK compatibility definition */
-#define HalDispatchTable (&HalDispatchTable)
-#define HALDISPATCH HalDispatchTable
-#endif
-
-#define HAL_DISPATCH_VERSION            3 /* FIXME: when to use 4? */
-#define HalDispatchTableVersion         HALDISPATCH->Version
-#define HalQuerySystemInformation       HALDISPATCH->HalQuerySystemInformation
-#define HalSetSystemInformation         HALDISPATCH->HalSetSystemInformation
-#define HalQueryBusSlots                HALDISPATCH->HalQueryBusSlots
-#define HalReferenceHandlerForBus       HALDISPATCH->HalReferenceHandlerForBus
-#define HalReferenceBusHandler          HALDISPATCH->HalReferenceBusHandler
-#define HalDereferenceBusHandler        HALDISPATCH->HalDereferenceBusHandler
-#define HalInitPnpDriver                HALDISPATCH->HalInitPnpDriver
-#define HalInitPowerManagement          HALDISPATCH->HalInitPowerManagement
-#define HalGetDmaAdapter                HALDISPATCH->HalGetDmaAdapter
-#define HalGetInterruptTranslator       HALDISPATCH->HalGetInterruptTranslator
-#define HalStartMirroring               HALDISPATCH->HalStartMirroring
-#define HalEndMirroring                 HALDISPATCH->HalEndMirroring
-#define HalMirrorPhysicalMemory         HALDISPATCH->HalMirrorPhysicalMemory
-#define HalEndOfBoot                    HALDISPATCH->HalEndOfBoot
-#define HalMirrorVerify                 HALDISPATCH->HalMirrorVerify
-#define HalGetCachedAcpiTable           HALDISPATCH->HalGetCachedAcpiTable
-#define HalSetPciErrorHandlerCallback   HALDISPATCH->HalSetPciErrorHandlerCallback
-#if defined(_IA64_)
-#define HalGetErrorCapList              HALDISPATCH->HalGetErrorCapList
-#define HalInjectError                  HALDISPATCH->HalInjectError
-#endif
-
-typedef struct _HAL_BUS_INFORMATION {
-  INTERFACE_TYPE BusType;
-  BUS_DATA_TYPE ConfigurationType;
-  ULONG BusNumber;
-  ULONG Reserved;
-} HAL_BUS_INFORMATION, *PHAL_BUS_INFORMATION;
-
-typedef struct _HAL_PROFILE_SOURCE_INFORMATION {
-  KPROFILE_SOURCE Source;
-  BOOLEAN Supported;
-  ULONG Interval;
-} HAL_PROFILE_SOURCE_INFORMATION, *PHAL_PROFILE_SOURCE_INFORMATION;
-
-typedef struct _HAL_PROFILE_SOURCE_INFORMATION_EX {
-  KPROFILE_SOURCE Source;
-  BOOLEAN Supported;
-  ULONG_PTR Interval;
-  ULONG_PTR DefInterval;
-  ULONG_PTR MaxInterval;
-  ULONG_PTR MinInterval;
-} HAL_PROFILE_SOURCE_INFORMATION_EX, *PHAL_PROFILE_SOURCE_INFORMATION_EX;
-
-typedef struct _HAL_PROFILE_SOURCE_INTERVAL {
-  KPROFILE_SOURCE Source;
-  ULONG_PTR Interval;
-} HAL_PROFILE_SOURCE_INTERVAL, *PHAL_PROFILE_SOURCE_INTERVAL;
-
-typedef struct _HAL_PROFILE_SOURCE_LIST {
-  KPROFILE_SOURCE Source;
-  PWSTR Description;
-} HAL_PROFILE_SOURCE_LIST, *PHAL_PROFILE_SOURCE_LIST;
-
-typedef enum _HAL_DISPLAY_BIOS_INFORMATION {
-  HalDisplayInt10Bios,
-  HalDisplayEmulatedBios,
-  HalDisplayNoBios
-} HAL_DISPLAY_BIOS_INFORMATION, *PHAL_DISPLAY_BIOS_INFORMATION;
-
-typedef struct _HAL_POWER_INFORMATION {
-  ULONG TBD;
-} HAL_POWER_INFORMATION, *PHAL_POWER_INFORMATION;
-
-typedef struct _HAL_PROCESSOR_SPEED_INFO {
-  ULONG ProcessorSpeed;
-} HAL_PROCESSOR_SPEED_INFORMATION, *PHAL_PROCESSOR_SPEED_INFORMATION;
-
-typedef struct _HAL_CALLBACKS {
-  PCALLBACK_OBJECT SetSystemInformation;
-  PCALLBACK_OBJECT BusCheck;
-} HAL_CALLBACKS, *PHAL_CALLBACKS;
-
-typedef struct _HAL_PROCESSOR_FEATURE {
-  ULONG UsableFeatureBits;
-} HAL_PROCESSOR_FEATURE;
-
-typedef NTSTATUS
-(NTAPI *PHALIOREADWRITEHANDLER)(
-  IN BOOLEAN fRead,
-  IN ULONG dwAddr,
-  IN ULONG dwSize,
-  IN OUT PULONG pdwData);
-
-typedef struct _HAL_AMLI_BAD_IO_ADDRESS_LIST {
-  ULONG BadAddrBegin;
-  ULONG BadAddrSize;
-  ULONG OSVersionTrigger;
-  PHALIOREADWRITEHANDLER IOHandler;
-} HAL_AMLI_BAD_IO_ADDRESS_LIST, *PHAL_AMLI_BAD_IO_ADDRESS_LIST;
-
-#if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
-
-typedef VOID
-(NTAPI *PHALMCAINTERFACELOCK)(
-  VOID);
-
-typedef VOID
-(NTAPI *PHALMCAINTERFACEUNLOCK)(
-  VOID);
-
-typedef NTSTATUS
-(NTAPI *PHALMCAINTERFACEREADREGISTER)(
-  IN UCHAR BankNumber,
-  IN OUT PVOID Exception);
-
-typedef struct _HAL_MCA_INTERFACE {
-  PHALMCAINTERFACELOCK Lock;
-  PHALMCAINTERFACEUNLOCK Unlock;
-  PHALMCAINTERFACEREADREGISTER ReadRegister;
-} HAL_MCA_INTERFACE;
-
-typedef enum {
-  ApicDestinationModePhysical = 1,
-  ApicDestinationModeLogicalFlat,
-  ApicDestinationModeLogicalClustered,
-  ApicDestinationModeUnknown
-} HAL_APIC_DESTINATION_MODE, *PHAL_APIC_DESTINATION_MODE;
-
-#if defined(_AMD64_)
-
-struct _KTRAP_FRAME;
-struct _KEXCEPTION_FRAME;
-
-typedef ERROR_SEVERITY
-(NTAPI *PDRIVER_EXCPTN_CALLBACK)(
-  IN PVOID Context,
-  IN struct _KTRAP_FRAME *TrapFrame,
-  IN struct _KEXCEPTION_FRAME *ExceptionFrame,
-  IN PMCA_EXCEPTION Exception);
-
-#endif
-
-#if defined(_X86_) || defined(_IA64_)
-typedef
-#if defined(_IA64_)
-ERROR_SEVERITY
-#else
-VOID
-#endif
-(NTAPI *PDRIVER_EXCPTN_CALLBACK)(
-  IN PVOID Context,
-  IN PMCA_EXCEPTION BankLog);
-#endif
-
-typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK;
-
-typedef struct _MCA_DRIVER_INFO {
-  PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback;
-  PKDEFERRED_ROUTINE DpcCallback;
-  PVOID DeviceContext;
-} MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;
-
-typedef struct _HAL_ERROR_INFO {
-  ULONG Version;
-  ULONG InitMaxSize;
-  ULONG McaMaxSize;
-  ULONG McaPreviousEventsCount;
-  ULONG McaCorrectedEventsCount;
-  ULONG McaKernelDeliveryFails;
-  ULONG McaDriverDpcQueueFails;
-  ULONG McaReserved;
-  ULONG CmcMaxSize;
-  ULONG CmcPollingInterval;
-  ULONG CmcInterruptsCount;
-  ULONG CmcKernelDeliveryFails;
-  ULONG CmcDriverDpcQueueFails;
-  ULONG CmcGetStateFails;
-  ULONG CmcClearStateFails;
-  ULONG CmcReserved;
-  ULONGLONG CmcLogId;
-  ULONG CpeMaxSize;
-  ULONG CpePollingInterval;
-  ULONG CpeInterruptsCount;
-  ULONG CpeKernelDeliveryFails;
-  ULONG CpeDriverDpcQueueFails;
-  ULONG CpeGetStateFails;
-  ULONG CpeClearStateFails;
-  ULONG CpeInterruptSources;
-  ULONGLONG CpeLogId;
-  ULONGLONG KernelReserved[4];
-} HAL_ERROR_INFO, *PHAL_ERROR_INFO;
-
-#define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1)
-#define HAL_MCE_DISABLED          ((ULONG)0)
-
-#define HAL_CMC_INTERRUPTS_BASED  HAL_MCE_INTERRUPTS_BASED
-#define HAL_CMC_DISABLED          HAL_MCE_DISABLED
-
-#define HAL_CPE_INTERRUPTS_BASED  HAL_MCE_INTERRUPTS_BASED
-#define HAL_CPE_DISABLED          HAL_MCE_DISABLED
-
-#define HAL_MCA_INTERRUPTS_BASED  HAL_MCE_INTERRUPTS_BASED
-#define HAL_MCA_DISABLED          HAL_MCE_DISABLED
-
-typedef VOID
-(NTAPI *PDRIVER_CMC_EXCEPTION_CALLBACK)(
-  IN PVOID Context,
-  IN PCMC_EXCEPTION CmcLog);
-
-typedef VOID
-(NTAPI *PDRIVER_CPE_EXCEPTION_CALLBACK)(
-  IN PVOID Context,
-  IN PCPE_EXCEPTION CmcLog);
-
-typedef struct _CMC_DRIVER_INFO {
-  PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback;
-  PKDEFERRED_ROUTINE DpcCallback;
-  PVOID DeviceContext;
-} CMC_DRIVER_INFO, *PCMC_DRIVER_INFO;
-
-typedef struct _CPE_DRIVER_INFO {
-  PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback;
-  PKDEFERRED_ROUTINE DpcCallback;
-  PVOID DeviceContext;
-} CPE_DRIVER_INFO, *PCPE_DRIVER_INFO;
-
-#endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
-
-#if defined(_IA64_)
-
-typedef NTSTATUS
-(*HALSENDCROSSPARTITIONIPI)(
-  IN USHORT ProcessorID,
-  IN UCHAR HardwareVector);
-
-typedef NTSTATUS
-(*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
-  OUT PULONG Vector,
-  OUT PKIRQL Irql,
-  IN OUT PGROUP_AFFINITY Affinity,
-  OUT PUCHAR HardwareVector);
-
-typedef VOID
-(*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
-  IN ULONG Vector,
-  IN PGROUP_AFFINITY Affinity);
-
-typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
-  HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
-  HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
-  HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
-} HAL_CROSS_PARTITION_IPI_INTERFACE;
-
-#define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \
-    FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE,    \
-                 HalFreeCrossPartitionInterruptVector)
-
-#endif /* defined(_IA64_) */
-
-typedef struct _HAL_PLATFORM_INFORMATION {
-  ULONG PlatformFlags;
-} HAL_PLATFORM_INFORMATION, *PHAL_PLATFORM_INFORMATION;
-
-#define HAL_PLATFORM_DISABLE_WRITE_COMBINING      0x01L
-#define HAL_PLATFORM_DISABLE_PTCG                 0x04L
-#define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY       0x08L
-#define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO  0x10L
-#define HAL_PLATFORM_ACPI_TABLES_CACHED           0x20L
-$endif
-
diff --git a/reactos/include/xdk/ia64/ke.h b/reactos/include/xdk/ia64/ke.h
deleted file mode 100644 (file)
index 2920636..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-$if (_WDMDDK_)
-/** Kernel definitions for IA64 **/
-
-/* Interrupt request levels */
-#define PASSIVE_LEVEL           0
-#define LOW_LEVEL               0
-#define APC_LEVEL               1
-#define DISPATCH_LEVEL          2
-#define CMC_LEVEL               3
-#define DEVICE_LEVEL_BASE       4
-#define PC_LEVEL                12
-#define IPI_LEVEL               14
-#define DRS_LEVEL               14
-#define CLOCK_LEVEL             13
-#define POWER_LEVEL             15
-#define PROFILE_LEVEL           15
-#define HIGH_LEVEL              15
-
-#define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000))
-extern volatile LARGE_INTEGER KeTickCount;
-
-#define PAUSE_PROCESSOR __yield();
-
-FORCEINLINE
-VOID
-KeFlushWriteBuffer(VOID)
-{
-  __mf ();
-  return;
-}
-
-NTSYSAPI
-PKTHREAD
-NTAPI
-KeGetCurrentThread(VOID);
-
-$endif
-
diff --git a/reactos/include/xdk/interlocked.h b/reactos/include/xdk/interlocked.h
deleted file mode 100644 (file)
index 722096b..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/******************************************************************************
- *                           INTERLOCKED Functions                            *
- ******************************************************************************/
-//
-// Intrinsics (note: taken from our winnt.h)
-// FIXME: 64-bit
-//
-#if defined(__GNUC__)
-
-static __inline__ BOOLEAN
-InterlockedBitTestAndSet(
-  IN LONG volatile *Base,
-  IN LONG Bit)
-{
-#if defined(_M_IX86)
-  LONG OldBit;
-  __asm__ __volatile__("lock "
-                       "btsl %2,%1\n\t"
-                       "sbbl %0,%0\n\t"
-                       :"=r" (OldBit),"+m" (*Base)
-                       :"Ir" (Bit)
-                       : "memory");
-  return OldBit;
-#else
-  return (_InterlockedOr(Base, 1 << Bit) >> Bit) & 1;
-#endif
-}
-
-static __inline__ BOOLEAN
-InterlockedBitTestAndReset(
-  IN LONG volatile *Base,
-  IN LONG Bit)
-{
-#if defined(_M_IX86)
-  LONG OldBit;
-  __asm__ __volatile__("lock "
-                       "btrl %2,%1\n\t"
-                       "sbbl %0,%0\n\t"
-                       :"=r" (OldBit),"+m" (*Base)
-                       :"Ir" (Bit)
-                       : "memory");
-  return OldBit;
-#else
-  return (_InterlockedAnd(Base, ~(1 << Bit)) >> Bit) & 1;
-#endif
-}
-
-#endif /* defined(__GNUC__) */
-
-#define BitScanForward _BitScanForward
-#define BitScanReverse _BitScanReverse
-#define BitTest _bittest
-#define BitTestAndComplement _bittestandcomplement
-#define BitTestAndSet _bittestandset
-#define BitTestAndReset _bittestandreset
-#define InterlockedBitTestAndSet _interlockedbittestandset
-#define InterlockedBitTestAndReset _interlockedbittestandreset
-
-#ifdef _M_AMD64
-#define BitTest64 _bittest64
-#define BitTestAndComplement64 _bittestandcomplement64
-#define BitTestAndSet64 _bittestandset64
-#define BitTestAndReset64 _bittestandreset64
-#define InterlockedBitTestAndSet64 _interlockedbittestandset64
-#define InterlockedBitTestAndReset64 _interlockedbittestandreset64
-#endif
-
-#if !defined(__INTERLOCKED_DECLARED)
-#define __INTERLOCKED_DECLARED
-
-#if defined (_X86_)
-#if defined(NO_INTERLOCKED_INTRINSICS)
-NTKERNELAPI
-LONG
-FASTCALL
-InterlockedIncrement(
-  IN OUT LONG volatile *Addend);
-
-NTKERNELAPI
-LONG
-FASTCALL
-InterlockedDecrement(
-  IN OUT LONG volatile *Addend);
-
-NTKERNELAPI
-LONG
-FASTCALL
-InterlockedCompareExchange(
-  IN OUT LONG volatile *Destination,
-  IN LONG Exchange,
-  IN LONG Comparand);
-
-NTKERNELAPI
-LONG
-FASTCALL
-InterlockedExchange(
-  IN OUT LONG volatile *Destination,
-  IN LONG Value);
-
-NTKERNELAPI
-LONG
-FASTCALL
-InterlockedExchangeAdd(
-  IN OUT LONG volatile *Addend,
-  IN LONG  Value);
-
-#else /* !defined(NO_INTERLOCKED_INTRINSICS) */
-
-#define InterlockedExchange _InterlockedExchange
-#define InterlockedIncrement _InterlockedIncrement
-#define InterlockedDecrement _InterlockedDecrement
-#define InterlockedExchangeAdd _InterlockedExchangeAdd
-#define InterlockedCompareExchange _InterlockedCompareExchange
-#define InterlockedOr _InterlockedOr
-#define InterlockedAnd _InterlockedAnd
-#define InterlockedXor _InterlockedXor
-
-#endif /* !defined(NO_INTERLOCKED_INTRINSICS) */
-
-#endif /* defined (_X86_) */
-
-#if !defined (_WIN64)
-/*
- * PVOID
- * InterlockedExchangePointer(
- *   IN OUT PVOID volatile  *Target,
- *   IN PVOID  Value)
- */
-#define InterlockedExchangePointer(Target, Value) \
-  ((PVOID) InterlockedExchange((PLONG) Target, (LONG) Value))
-
-/*
- * PVOID
- * InterlockedCompareExchangePointer(
- *   IN OUT PVOID  *Destination,
- *   IN PVOID  Exchange,
- *   IN PVOID  Comparand)
- */
-#define InterlockedCompareExchangePointer(Destination, Exchange, Comparand) \
-  ((PVOID) InterlockedCompareExchange((PLONG) Destination, (LONG) Exchange, (LONG) Comparand))
-
-#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b)
-#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a)
-#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a)
-
-#endif // !defined (_WIN64)
-
-#if defined (_M_AMD64)
-
-#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONGLONG *)a, (LONGLONG)b)
-#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONGLONG *)a)
-#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONGLONG *)a)
-#define InterlockedAnd _InterlockedAnd
-#define InterlockedOr _InterlockedOr
-#define InterlockedXor _InterlockedXor
-#define InterlockedIncrement _InterlockedIncrement
-#define InterlockedDecrement _InterlockedDecrement
-#define InterlockedAdd _InterlockedAdd
-#define InterlockedExchange _InterlockedExchange
-#define InterlockedExchangeAdd _InterlockedExchangeAdd
-#define InterlockedCompareExchange _InterlockedCompareExchange
-#define InterlockedAnd64 _InterlockedAnd64
-#define InterlockedOr64 _InterlockedOr64
-#define InterlockedXor64 _InterlockedXor64
-#define InterlockedIncrement64 _InterlockedIncrement64
-#define InterlockedDecrement64 _InterlockedDecrement64
-#define InterlockedAdd64 _InterlockedAdd64
-#define InterlockedExchange64 _InterlockedExchange64
-#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
-#define InterlockedCompareExchange64 _InterlockedCompareExchange64
-#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
-#define InterlockedExchangePointer _InterlockedExchangePointer
-#define InterlockedBitTestAndSet64 _interlockedbittestandset64
-#define InterlockedBitTestAndReset64 _interlockedbittestandreset64
-
-#endif // _M_AMD64
-
-#if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS)
-//#if !defined(_X86AMD64_) // FIXME: what's _X86AMD64_ used for?
-FORCEINLINE
-LONG64
-InterlockedAdd64(
-  IN OUT LONG64 volatile *Addend,
-  IN LONG64 Value)
-{
-  return InterlockedExchangeAdd64(Addend, Value) + Value;
-}
-//#endif
-#endif
-
-#endif /* !__INTERLOCKED_DECLARED */
-
-
diff --git a/reactos/include/xdk/iofuncs.h b/reactos/include/xdk/iofuncs.h
deleted file mode 100644 (file)
index a1a2fcf..0000000
+++ /dev/null
@@ -1,2284 +0,0 @@
-/******************************************************************************
- *                         I/O Manager Functions                              *
- ******************************************************************************/
-$if (_NTDDK_)
-/*
- * VOID IoAssignArcName(
- *   IN PUNICODE_STRING  ArcName,
- *   IN PUNICODE_STRING  DeviceName);
- */
-#define IoAssignArcName(_ArcName, _DeviceName) ( \
-  IoCreateSymbolicLink((_ArcName), (_DeviceName)))
-
-/*
- * VOID
- * IoDeassignArcName(
- *   IN PUNICODE_STRING  ArcName)
- */
-#define IoDeassignArcName IoDeleteSymbolicLink
-
-VOID
-FORCEINLINE
-NTAPI
-IoInitializeDriverCreateContext(
-  PIO_DRIVER_CREATE_CONTEXT DriverContext)
-{
-  RtlZeroMemory(DriverContext, sizeof(IO_DRIVER_CREATE_CONTEXT));
-  DriverContext->Size = sizeof(IO_DRIVER_CREATE_CONTEXT);
-}
-$endif
-
-
-$if (_WDMDDK_)
-/*
- * NTSTATUS
- * IoAcquireRemoveLock(
- *   IN PIO_REMOVE_LOCK  RemoveLock,
- *   IN OPTIONAL PVOID  Tag)
- */
-#if DBG
-#define IoAcquireRemoveLock(RemoveLock, Tag) \
-  IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK))
-#else
-#define IoAcquireRemoveLock(RemoveLock, Tag) \
-  IoAcquireRemoveLockEx(RemoveLock, Tag, "", 1, sizeof (IO_REMOVE_LOCK))
-#endif
-
-/*
- * VOID
- * IoAdjustPagingPathCount(
- *   IN PLONG  Count,
- *   IN BOOLEAN  Increment)
- */
-#define IoAdjustPagingPathCount(_Count, \
-                                _Increment) \
-{ \
-  if (_Increment) \
-    { \
-      InterlockedIncrement(_Count); \
-    } \
-  else \
-    { \
-      InterlockedDecrement(_Count); \
-    } \
-}
-
-#if !defined(_M_AMD64)
-NTHALAPI
-VOID
-NTAPI
-READ_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-READ_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-READ_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-UCHAR
-NTAPI
-READ_PORT_UCHAR(
-  IN PUCHAR Port);
-
-NTHALAPI
-ULONG
-NTAPI
-READ_PORT_ULONG(
-  IN PULONG Port);
-
-NTHALAPI
-USHORT
-NTAPI
-READ_PORT_USHORT(
-  IN PUSHORT Port);
-
-NTKERNELAPI
-VOID
-NTAPI
-READ_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-READ_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-READ_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-UCHAR
-NTAPI
-READ_REGISTER_UCHAR(
-  IN PUCHAR Register);
-
-NTKERNELAPI
-ULONG
-NTAPI
-READ_REGISTER_ULONG(
-  IN PULONG Register);
-
-NTKERNELAPI
-USHORT
-NTAPI
-READ_REGISTER_USHORT(
-  IN PUSHORT Register);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_UCHAR(
-  IN PUCHAR Port,
-  IN UCHAR Value);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_ULONG(
-  IN PULONG Port,
-  IN ULONG Value);
-
-NTHALAPI
-VOID
-NTAPI
-WRITE_PORT_USHORT(
-  IN PUSHORT Port,
-  IN USHORT Value);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_UCHAR(
-  IN PUCHAR Register,
-  IN UCHAR Value);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_ULONG(
-  IN PULONG Register,
-  IN ULONG Value);
-
-NTKERNELAPI
-VOID
-NTAPI
-WRITE_REGISTER_USHORT(
-  IN PUSHORT Register,
-  IN USHORT Value);
-
-#else
-
-FORCEINLINE
-VOID
-READ_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  __inbytestring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  __indwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  __inwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-UCHAR
-READ_PORT_UCHAR(
-  IN PUCHAR Port)
-{
-  return __inbyte((USHORT)(ULONG_PTR)Port);
-}
-
-FORCEINLINE
-ULONG
-READ_PORT_ULONG(
-  IN PULONG Port)
-{
-  return __indword((USHORT)(ULONG_PTR)Port);
-}
-
-FORCEINLINE
-USHORT
-READ_PORT_USHORT(
-  IN PUSHORT Port)
-{
-  return __inword((USHORT)(ULONG_PTR)Port);
-}
-
-FORCEINLINE
-VOID
-READ_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  __movsb(Register, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  __movsd(Register, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-READ_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  __movsw(Register, Buffer, Count);
-}
-
-FORCEINLINE
-UCHAR
-READ_REGISTER_UCHAR(
-  IN volatile UCHAR *Register)
-{
-  return *Register;
-}
-
-FORCEINLINE
-ULONG
-READ_REGISTER_ULONG(
-  IN volatile ULONG *Register)
-{
-  return *Register;
-}
-
-FORCEINLINE
-USHORT
-READ_REGISTER_USHORT(
-  IN volatile USHORT *Register)
-{
-  return *Register;
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_BUFFER_UCHAR(
-  IN PUCHAR Port,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  __outbytestring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_BUFFER_ULONG(
-  IN PULONG Port,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  __outdwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_BUFFER_USHORT(
-  IN PUSHORT Port,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  __outwordstring((USHORT)(ULONG_PTR)Port, Buffer, Count);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_UCHAR(
-  IN PUCHAR Port,
-  IN UCHAR Value)
-{
-  __outbyte((USHORT)(ULONG_PTR)Port, Value);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_ULONG(
-  IN PULONG Port,
-  IN ULONG Value)
-{
-  __outdword((USHORT)(ULONG_PTR)Port, Value);
-}
-
-FORCEINLINE
-VOID
-WRITE_PORT_USHORT(
-  IN PUSHORT Port,
-  IN USHORT Value)
-{
-  __outword((USHORT)(ULONG_PTR)Port, Value);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_BUFFER_UCHAR(
-  IN PUCHAR Register,
-  IN PUCHAR Buffer,
-  IN ULONG Count)
-{
-  LONG Synch;
-  __movsb(Register, Buffer, Count);
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_BUFFER_ULONG(
-  IN PULONG Register,
-  IN PULONG Buffer,
-  IN ULONG Count)
-{
-  LONG Synch;
-  __movsd(Register, Buffer, Count);
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_BUFFER_USHORT(
-  IN PUSHORT Register,
-  IN PUSHORT Buffer,
-  IN ULONG Count)
-{
-  LONG Synch;
-  __movsw(Register, Buffer, Count);
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_UCHAR(
-  IN volatile UCHAR *Register,
-  IN UCHAR Value)
-{
-  LONG Synch;
-  *Register = Value;
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_ULONG(
-  IN volatile ULONG *Register,
-  IN ULONG Value)
-{
-  LONG Synch;
-  *Register = Value;
-  InterlockedOr(&Synch, 1);
-}
-
-FORCEINLINE
-VOID
-WRITE_REGISTER_USHORT(
-  IN volatile USHORT *Register,
-  IN USHORT Value)
-{
-  LONG Sync;
-  *Register = Value;
-  InterlockedOr(&Sync, 1);
-}
-#endif
-
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && \
-   (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
-
-#define DMA_MACROS_DEFINED
-
-FORCEINLINE
-NTSTATUS
-IoAllocateAdapterChannel(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG NumberOfMapRegisters,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context)
-{
-  PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel;
-  AllocateAdapterChannel =
-      *(DmaAdapter)->DmaOperations->AllocateAdapterChannel;
-  ASSERT(AllocateAdapterChannel);
-  return AllocateAdapterChannel(DmaAdapter,
-                                DeviceObject,
-                                NumberOfMapRegisters,
-                                ExecutionRoutine,
-                                Context );
-}
-
-FORCEINLINE
-BOOLEAN
-NTAPI
-IoFlushAdapterBuffers(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN BOOLEAN WriteToDevice)
-{
-  PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers;
-  FlushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers;
-  ASSERT(FlushAdapterBuffers);
-  return FlushAdapterBuffers(DmaAdapter,
-                             Mdl,
-                             MapRegisterBase,
-                             CurrentVa,
-                             Length,
-                             WriteToDevice);
-}
-
-FORCEINLINE
-VOID
-NTAPI
-IoFreeAdapterChannel(
-  IN PDMA_ADAPTER DmaAdapter)
-{
-  PFREE_ADAPTER_CHANNEL FreeAdapterChannel;
-  FreeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel;
-  ASSERT(FreeAdapterChannel);
-  FreeAdapterChannel(DmaAdapter);
-}
-
-FORCEINLINE
-VOID
-NTAPI
-IoFreeMapRegisters(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PVOID MapRegisterBase,
-  IN ULONG NumberOfMapRegisters)
-{
-  PFREE_MAP_REGISTERS FreeMapRegisters;
-  FreeMapRegisters = *(DmaAdapter)->DmaOperations->FreeMapRegisters;
-  ASSERT(FreeMapRegisters);
-  FreeMapRegisters(DmaAdapter, MapRegisterBase, NumberOfMapRegisters);
-}
-
-FORCEINLINE
-PHYSICAL_ADDRESS
-NTAPI
-IoMapTransfer(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN OUT PULONG Length,
-  IN BOOLEAN WriteToDevice)
-{
-  PMAP_TRANSFER MapTransfer;
-
-  MapTransfer = *(DmaAdapter)->DmaOperations->MapTransfer;
-  ASSERT(MapTransfer);
-  return MapTransfer(DmaAdapter,
-                     Mdl,
-                     MapRegisterBase,
-                     CurrentVa,
-                     Length,
-                     WriteToDevice);
-}
-#endif
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-$if (_NTDDK_)
-#if !(defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_))
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAllocateAdapterChannel(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG NumberOfMapRegisters,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context);
-#endif
-
-#if !defined(DMA_MACROS_DEFINED)
-//DECLSPEC_DEPRECATED_DDK
-NTHALAPI
-PHYSICAL_ADDRESS
-NTAPI
-IoMapTransfer(
-  IN PADAPTER_OBJECT AdapterObject,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN OUT PULONG Length,
-  IN BOOLEAN WriteToDevice);
-#endif
-
-NTKERNELAPI
-VOID
-NTAPI
-IoAllocateController(
-  IN PCONTROLLER_OBJECT ControllerObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-PCONTROLLER_OBJECT
-NTAPI
-IoCreateController(
-  IN ULONG Size);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoDeleteController(
-  IN PCONTROLLER_OBJECT ControllerObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoFreeController(
-  IN PCONTROLLER_OBJECT ControllerObject);
-
-NTKERNELAPI
-PCONFIGURATION_INFORMATION
-NTAPI
-IoGetConfigurationInformation(VOID);
-
-NTKERNELAPI
-PDEVICE_OBJECT
-NTAPI
-IoGetDeviceToVerify(
-  IN PETHREAD Thread);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoCancelFileOpen(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PFILE_OBJECT FileObject);
-
-NTKERNELAPI
-PGENERIC_MAPPING
-NTAPI
-IoGetFileObjectGenericMapping(VOID);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoMakeAssociatedIrp(
-  IN PIRP Irp,
-  IN CCHAR StackSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoQueryDeviceDescription(
-  IN PINTERFACE_TYPE BusType OPTIONAL,
-  IN PULONG BusNumber OPTIONAL,
-  IN PCONFIGURATION_TYPE ControllerType OPTIONAL,
-  IN PULONG ControllerNumber OPTIONAL,
-  IN PCONFIGURATION_TYPE PeripheralType OPTIONAL,
-  IN PULONG PeripheralNumber OPTIONAL,
-  IN PIO_QUERY_DEVICE_ROUTINE CalloutRoutine,
-  IN OUT PVOID Context OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRaiseHardError(
-  IN PIRP Irp,
-  IN PVPB Vpb OPTIONAL,
-  IN PDEVICE_OBJECT RealDeviceObject);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoRaiseInformationalHardError(
-  IN NTSTATUS ErrorStatus,
-  IN PUNICODE_STRING String OPTIONAL,
-  IN PKTHREAD Thread OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRegisterBootDriverReinitialization(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRegisterDriverReinitialization(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDRIVER_REINITIALIZE DriverReinitializationRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAttachDeviceByPointer(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PDEVICE_OBJECT TargetDevice);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportDetectedDevice(
-  IN PDRIVER_OBJECT DriverObject,
-  IN INTERFACE_TYPE LegacyBusType,
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PCM_RESOURCE_LIST ResourceList OPTIONAL,
-  IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL,
-  IN BOOLEAN ResourceAssigned,
-  IN OUT PDEVICE_OBJECT *DeviceObject OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportResourceForDetection(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PCM_RESOURCE_LIST DriverList OPTIONAL,
-  IN ULONG DriverListSize OPTIONAL,
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
-  IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
-  IN ULONG DeviceListSize OPTIONAL,
-  OUT PBOOLEAN ConflictDetected);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportResourceUsage(
-  IN PUNICODE_STRING DriverClassName OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PCM_RESOURCE_LIST DriverList OPTIONAL,
-  IN ULONG DriverListSize OPTIONAL,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PCM_RESOURCE_LIST DeviceList OPTIONAL,
-  IN ULONG DeviceListSize OPTIONAL,
-  IN BOOLEAN OverrideConflict,
-  OUT PBOOLEAN ConflictDetected);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoSetHardErrorOrVerifyDevice(
-  IN PIRP Irp,
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAssignResources(
-  IN PUNICODE_STRING RegistryPath,
-  IN PUNICODE_STRING DriverClassName OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
-  IN PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources OPTIONAL,
-  IN OUT PCM_RESOURCE_LIST *AllocatedResources);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoSetThreadHardErrorMode(
-  IN BOOLEAN EnableHardErrors);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-VOID
-NTAPI
-IoAcquireCancelSpinLock(
-  OUT PKIRQL Irql);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAcquireRemoveLockEx(
-  IN PIO_REMOVE_LOCK RemoveLock,
-  IN PVOID Tag OPTIONAL,
-  IN PCSTR File,
-  IN ULONG Line,
-  IN ULONG RemlockSize);
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAllocateDriverObjectExtension(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PVOID ClientIdentificationAddress,
-  IN ULONG DriverObjectExtensionSize,
-  OUT PVOID *DriverObjectExtension);
-
-NTKERNELAPI
-PVOID
-NTAPI
-IoAllocateErrorLogEntry(
-  IN PVOID IoObject,
-  IN UCHAR EntrySize);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoAllocateIrp(
-  IN CCHAR StackSize,
-  IN BOOLEAN ChargeQuota);
-
-NTKERNELAPI
-PMDL
-NTAPI
-IoAllocateMdl(
-  IN PVOID VirtualAddress OPTIONAL,
-  IN ULONG Length,
-  IN BOOLEAN SecondaryBuffer,
-  IN BOOLEAN ChargeQuota,
-  IN OUT PIRP Irp OPTIONAL);
-
-NTKERNELAPI
-PIO_WORKITEM
-NTAPI
-IoAllocateWorkItem(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAttachDevice(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PUNICODE_STRING TargetDevice,
-  OUT PDEVICE_OBJECT *AttachedDevice);
-
-NTKERNELAPI
-PDEVICE_OBJECT
-NTAPI
-IoAttachDeviceToDeviceStack(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PDEVICE_OBJECT TargetDevice);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoBuildAsynchronousFsdRequest(
-  IN ULONG MajorFunction,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN OUT PVOID Buffer OPTIONAL,
-  IN ULONG Length OPTIONAL,
-  IN PLARGE_INTEGER StartingOffset OPTIONAL,
-  IN PIO_STATUS_BLOCK IoStatusBlock OPTIONAL);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoBuildDeviceIoControlRequest(
-  IN ULONG IoControlCode,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength,
-  IN BOOLEAN InternalDeviceIoControl,
-  IN PKEVENT Event,
-  OUT PIO_STATUS_BLOCK IoStatusBlock);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoBuildPartialMdl(
-  IN PMDL SourceMdl,
-  IN OUT PMDL TargetMdl,
-  IN PVOID VirtualAddress,
-  IN ULONG Length);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoBuildSynchronousFsdRequest(
-  IN ULONG MajorFunction,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN OUT PVOID Buffer OPTIONAL,
-  IN ULONG Length OPTIONAL,
-  IN PLARGE_INTEGER StartingOffset OPTIONAL,
-  IN PKEVENT Event,
-  OUT PIO_STATUS_BLOCK IoStatusBlock);
-
-NTKERNELAPI
-NTSTATUS
-FASTCALL
-IofCallDriver(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN OUT PIRP Irp);
-#define IoCallDriver IofCallDriver
-
-NTKERNELAPI
-VOID
-FASTCALL
-IofCompleteRequest(
-  IN PIRP Irp,
-  IN CCHAR PriorityBoost);
-#define IoCompleteRequest IofCompleteRequest
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoCancelIrp(
-  IN PIRP Irp);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCheckShareAccess(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess,
-  IN BOOLEAN Update);
-
-NTKERNELAPI
-VOID
-FASTCALL
-IofCompleteRequest(
-  IN PIRP Irp,
-  IN CCHAR PriorityBoost);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoConnectInterrupt(
-  OUT PKINTERRUPT *InterruptObject,
-  IN PKSERVICE_ROUTINE ServiceRoutine,
-  IN PVOID ServiceContext OPTIONAL,
-  IN PKSPIN_LOCK SpinLock OPTIONAL,
-  IN ULONG Vector,
-  IN KIRQL Irql,
-  IN KIRQL SynchronizeIrql,
-  IN KINTERRUPT_MODE InterruptMode,
-  IN BOOLEAN ShareVector,
-  IN KAFFINITY ProcessorEnableMask,
-  IN BOOLEAN FloatingSave);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateDevice(
-  IN PDRIVER_OBJECT DriverObject,
-  IN ULONG DeviceExtensionSize,
-  IN PUNICODE_STRING DeviceName OPTIONAL,
-  IN DEVICE_TYPE DeviceType,
-  IN ULONG DeviceCharacteristics,
-  IN BOOLEAN Exclusive,
-  OUT PDEVICE_OBJECT *DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateFile(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG Disposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength,
-  IN CREATE_FILE_TYPE CreateFileType,
-  IN PVOID InternalParameters OPTIONAL,
-  IN ULONG Options);
-
-NTKERNELAPI
-PKEVENT
-NTAPI
-IoCreateNotificationEvent(
-  IN PUNICODE_STRING EventName,
-  OUT PHANDLE EventHandle);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateSymbolicLink(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN PUNICODE_STRING DeviceName);
-
-NTKERNELAPI
-PKEVENT
-NTAPI
-IoCreateSynchronizationEvent(
-  IN PUNICODE_STRING EventName,
-  OUT PHANDLE EventHandle);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateUnprotectedSymbolicLink(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN PUNICODE_STRING DeviceName);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoDeleteDevice(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoDeleteSymbolicLink(
-  IN PUNICODE_STRING SymbolicLinkName);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoDetachDevice(
-  IN OUT PDEVICE_OBJECT TargetDevice);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoDisconnectInterrupt(
-  IN PKINTERRUPT InterruptObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoFreeIrp(
-  IN PIRP Irp);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoFreeMdl(
-  IN PMDL Mdl);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoFreeWorkItem(
-  IN PIO_WORKITEM IoWorkItem);
-
-NTKERNELAPI
-PDEVICE_OBJECT
-NTAPI
-IoGetAttachedDevice(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-PDEVICE_OBJECT
-NTAPI
-IoGetAttachedDeviceReference(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetBootDiskInformation(
-  IN OUT PBOOTDISK_INFORMATION BootDiskInformation,
-  IN ULONG Size);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetDeviceInterfaceAlias(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN CONST GUID *AliasInterfaceClassGuid,
-  OUT PUNICODE_STRING AliasSymbolicLinkName);
-
-NTKERNELAPI
-PEPROCESS
-NTAPI
-IoGetCurrentProcess(VOID);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetDeviceInterfaces(
-  IN CONST GUID *InterfaceClassGuid,
-  IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
-  IN ULONG Flags,
-  OUT PWSTR *SymbolicLinkList);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetDeviceObjectPointer(
-  IN PUNICODE_STRING ObjectName,
-  IN ACCESS_MASK DesiredAccess,
-  OUT PFILE_OBJECT *FileObject,
-  OUT PDEVICE_OBJECT *DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetDeviceProperty(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN DEVICE_REGISTRY_PROPERTY DeviceProperty,
-  IN ULONG BufferLength,
-  OUT PVOID PropertyBuffer,
-  OUT PULONG ResultLength);
-
-NTKERNELAPI
-PDMA_ADAPTER
-NTAPI
-IoGetDmaAdapter(
-  IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
-  IN PDEVICE_DESCRIPTION DeviceDescription,
-  IN OUT PULONG NumberOfMapRegisters);
-
-NTKERNELAPI
-PVOID
-NTAPI
-IoGetDriverObjectExtension(
-  IN PDRIVER_OBJECT DriverObject,
-  IN PVOID ClientIdentificationAddress);
-
-NTKERNELAPI
-PVOID
-NTAPI
-IoGetInitialStack(VOID);
-
-NTKERNELAPI
-PDEVICE_OBJECT
-NTAPI
-IoGetRelatedDeviceObject(
-  IN PFILE_OBJECT FileObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoQueueWorkItem(
-  IN PIO_WORKITEM IoWorkItem,
-  IN PIO_WORKITEM_ROUTINE WorkerRoutine,
-  IN WORK_QUEUE_TYPE QueueType,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoInitializeIrp(
-  IN OUT PIRP Irp,
-  IN USHORT PacketSize,
-  IN CCHAR StackSize);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoInitializeRemoveLockEx(
-  IN PIO_REMOVE_LOCK Lock,
-  IN ULONG AllocateTag,
-  IN ULONG MaxLockedMinutes,
-  IN ULONG HighWatermark,
-  IN ULONG RemlockSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoInitializeTimer(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIO_TIMER_ROUTINE TimerRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoInvalidateDeviceRelations(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN DEVICE_RELATION_TYPE Type);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoInvalidateDeviceState(
-  IN PDEVICE_OBJECT PhysicalDeviceObject);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoIsWdmVersionAvailable(
-  IN UCHAR MajorVersion,
-  IN UCHAR MinorVersion);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoOpenDeviceInterfaceRegistryKey(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN ACCESS_MASK DesiredAccess,
-  OUT PHANDLE DeviceInterfaceKey);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoOpenDeviceRegistryKey(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG DevInstKeyType,
-  IN ACCESS_MASK DesiredAccess,
-  OUT PHANDLE DevInstRegKey);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoRegisterDeviceInterface(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN CONST GUID *InterfaceClassGuid,
-  IN PUNICODE_STRING ReferenceString OPTIONAL,
-  OUT PUNICODE_STRING SymbolicLinkName);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoRegisterPlugPlayNotification(
-  IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory,
-  IN ULONG EventCategoryFlags,
-  IN PVOID EventCategoryData OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject,
-  IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine,
-  IN OUT PVOID Context OPTIONAL,
-  OUT PVOID *NotificationEntry);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoRegisterShutdownNotification(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoReleaseCancelSpinLock(
-  IN KIRQL Irql);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoReleaseRemoveLockAndWaitEx(
-  IN PIO_REMOVE_LOCK RemoveLock,
-  IN PVOID Tag OPTIONAL,
-  IN ULONG RemlockSize);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoReleaseRemoveLockEx(
-  IN PIO_REMOVE_LOCK RemoveLock,
-  IN PVOID Tag OPTIONAL,
-  IN ULONG RemlockSize);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRemoveShareAccess(
-  IN PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportTargetDeviceChange(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN PVOID NotificationStructure);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReportTargetDeviceChangeAsynchronous(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN PVOID NotificationStructure,
-  IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback OPTIONAL,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoRequestDeviceEject(
-  IN PDEVICE_OBJECT PhysicalDeviceObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoReuseIrp(
-  IN OUT PIRP Irp,
-  IN NTSTATUS Status);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetDeviceInterfaceState(
-  IN PUNICODE_STRING SymbolicLinkName,
-  IN BOOLEAN Enable);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoSetShareAccess(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  OUT PSHARE_ACCESS ShareAccess);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoStartNextPacket(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN Cancelable);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoStartNextPacketByKey(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN Cancelable,
-  IN ULONG Key);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoStartPacket(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIRP Irp,
-  IN PULONG Key OPTIONAL,
-  IN PDRIVER_CANCEL CancelFunction OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoStartTimer(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoStopTimer(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoUnregisterPlugPlayNotification(
-  IN PVOID NotificationEntry);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoUnregisterShutdownNotification(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoUpdateShareAccess(
-  IN PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIAllocateInstanceIds(
-  IN GUID *Guid,
-  IN ULONG InstanceCount,
-  OUT ULONG *FirstInstanceId);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIQuerySingleInstanceMultiple(
-  IN PVOID *DataBlockObjectList,
-  IN PUNICODE_STRING InstanceNames,
-  IN ULONG ObjectCount,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIRegistrationControl(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG Action);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMISuggestInstanceName(
-  IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
-  IN PUNICODE_STRING SymbolicLinkName OPTIONAL,
-  IN BOOLEAN CombineNames,
-  OUT PUNICODE_STRING SuggestedInstanceName);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIWriteEvent(
-  IN OUT PVOID WnodeEventItem);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoWriteErrorLogEntry(
-  IN PVOID ElEntry);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoGetTopLevelIrp(VOID);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoRegisterLastChanceShutdownNotification(
-  IN PDEVICE_OBJECT DeviceObject);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoSetTopLevelIrp(
-  IN PIRP Irp OPTIONAL);
-
-$endif
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-$if (_NTDDK_)
-#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoIsFileOriginRemote(
-  IN PFILE_OBJECT FileObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetFileOrigin(
-  IN PFILE_OBJECT FileObject,
-  IN BOOLEAN Remote);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2KSP3) */
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-$if (_NTDDK_)
-NTKERNELAPI
-NTSTATUS
-FASTCALL
-IoReadPartitionTable(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN BOOLEAN ReturnRecognizedPartitions,
-  OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
-
-NTKERNELAPI
-NTSTATUS
-FASTCALL
-IoSetPartitionInformation(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG PartitionNumber,
-  IN ULONG PartitionType);
-
-NTKERNELAPI
-NTSTATUS
-FASTCALL
-IoWritePartitionTable(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG SectorSize,
-  IN ULONG SectorsPerTrack,
-  IN ULONG NumberOfHeads,
-  IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateDisk(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN struct _CREATE_DISK* Disk OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReadDiskSignature(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG BytesPerSector,
-  OUT PDISK_SIGNATURE Signature);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReadPartitionTableEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  OUT struct _DRIVE_LAYOUT_INFORMATION_EX **PartitionBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetPartitionInformationEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG PartitionNumber,
-  IN struct _SET_PARTITION_INFORMATION_EX *PartitionInfo);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetSystemPartition(
-  IN PUNICODE_STRING VolumeNameString);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoVerifyPartitionTable(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN FixErrors);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoVolumeDeviceToDosName(
-  IN PVOID VolumeDeviceObject,
-  OUT PUNICODE_STRING DosName);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWritePartitionTableEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN struct _DRIVE_LAYOUT_INFORMATION_EX *DriveLayout);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateFileSpecifyDeviceObjectHint(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG Disposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength,
-  IN CREATE_FILE_TYPE CreateFileType,
-  IN PVOID InternalParameters OPTIONAL,
-  IN ULONG Options,
-  IN PVOID DeviceObject OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoAttachDeviceToDeviceStackSafe(
-  IN PDEVICE_OBJECT SourceDevice,
-  IN PDEVICE_OBJECT TargetDevice,
-  OUT PDEVICE_OBJECT *AttachedToDeviceObject);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCsqInitialize(
-  IN PIO_CSQ Csq,
-  IN PIO_CSQ_INSERT_IRP CsqInsertIrp,
-  IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
-  IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
-  IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
-  IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
-  IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoCsqInsertIrp(
-  IN PIO_CSQ Csq,
-  IN PIRP Irp,
-  IN PIO_CSQ_IRP_CONTEXT Context OPTIONAL);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoCsqRemoveIrp(
-  IN PIO_CSQ Csq,
-  IN PIO_CSQ_IRP_CONTEXT Context);
-
-NTKERNELAPI
-PIRP
-NTAPI
-IoCsqRemoveNextIrp(
-  IN PIO_CSQ Csq,
-  IN PVOID PeekContext OPTIONAL);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-IoForwardIrpSynchronously(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIRP Irp);
-
-#define IoForwardAndCatchIrp IoForwardIrpSynchronously
-
-NTKERNELAPI
-VOID
-NTAPI
-IoFreeErrorLogEntry(
-  PVOID ElEntry);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetCompletionRoutineEx(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIRP Irp,
-  IN PIO_COMPLETION_ROUTINE CompletionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN InvokeOnSuccess,
-  IN BOOLEAN InvokeOnError,
-  IN BOOLEAN InvokeOnCancel);
-
-VOID
-NTAPI
-IoSetStartIoAttributes(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN BOOLEAN DeferredStartIo,
-  IN BOOLEAN NonCancelable);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIDeviceObjectToInstanceName(
-  IN PVOID DataBlockObject,
-  IN PDEVICE_OBJECT DeviceObject,
-  OUT PUNICODE_STRING InstanceName);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIExecuteMethod(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN ULONG MethodId,
-  IN ULONG InBufferSize,
-  IN OUT PULONG OutBufferSize,
-  IN OUT  PUCHAR InOutBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIHandleToInstanceName(
-  IN PVOID DataBlockObject,
-  IN HANDLE FileHandle,
-  OUT PUNICODE_STRING InstanceName);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIOpenBlock(
-  IN GUID *DataBlockGuid,
-  IN ULONG DesiredAccess,
-  OUT PVOID *DataBlockObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIQueryAllData(
-  IN PVOID DataBlockObject,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIQueryAllDataMultiple(
-  IN PVOID *DataBlockObjectList,
-  IN ULONG ObjectCount,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMIQuerySingleInstance(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN OUT ULONG *InOutBufferSize,
-  OUT PVOID OutBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMISetNotificationCallback(
-  IN OUT PVOID Object,
-  IN WMI_NOTIFICATION_CALLBACK Callback,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMISetSingleInstance(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN ULONG Version,
-  IN ULONG ValueBufferSize,
-  IN PVOID ValueBuffer);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoWMISetSingleItem(
-  IN PVOID DataBlockObject,
-  IN PUNICODE_STRING InstanceName,
-  IN ULONG DataItemId,
-  IN ULONG Version,
-  IN ULONG ValueBufferSize,
-  IN PVOID ValueBuffer);
-$endif
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoValidateDeviceIoControlAccess(
-  IN PIRP Irp,
-  IN ULONG RequiredAccess);
-#endif
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-$if (_NTDDK_)
-NTKERNELAPI
-IO_PAGING_PRIORITY
-FASTCALL
-IoGetPagingIoPriority(
-  IN PIRP Irp);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCsqInitializeEx(
-  IN PIO_CSQ Csq,
-  IN PIO_CSQ_INSERT_IRP_EX CsqInsertIrp,
-  IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
-  IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
-  IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
-  IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
-  IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCsqInsertIrpEx(
-  IN PIO_CSQ Csq,
-  IN PIRP Irp,
-  IN PIO_CSQ_IRP_CONTEXT Context OPTIONAL,
-  IN PVOID InsertContext OPTIONAL);
-$endif
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
-$if (_NTDDK_)
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-BOOLEAN
-NTAPI
-IoTranslateBusAddress(
-  IN INTERFACE_TYPE InterfaceType,
-  IN ULONG BusNumber,
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN OUT PULONG AddressSpace,
-  OUT PPHYSICAL_ADDRESS TranslatedAddress);
-#endif
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-$if (_NTDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoUpdateDiskGeometry(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN struct _DISK_GEOMETRY_EX* OldDiskGeometry,
-  IN struct _DISK_GEOMETRY_EX* NewDiskGeometry);
-
-PTXN_PARAMETER_BLOCK
-NTAPI
-IoGetTransactionParameterBlock(
-  IN PFILE_OBJECT FileObject);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCreateFileEx(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG Disposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength,
-  IN CREATE_FILE_TYPE CreateFileType,
-  IN PVOID InternalParameters OPTIONAL,
-  IN ULONG Options,
-  IN PIO_DRIVER_CREATE_CONTEXT DriverContext OPTIONAL);
-
-NTSTATUS
-NTAPI
-IoSetIrpExtraCreateParameter(
-  IN OUT PIRP Irp,
-  IN struct _ECP_LIST *ExtraCreateParameter);
-
-VOID
-NTAPI
-IoClearIrpExtraCreateParameter(
-  IN OUT PIRP Irp);
-
-NTSTATUS
-NTAPI
-IoGetIrpExtraCreateParameter(
-  IN PIRP Irp,
-  OUT struct _ECP_LIST **ExtraCreateParameter OPTIONAL);
-
-BOOLEAN
-NTAPI
-IoIsFileObjectIgnoringSharing(
-  IN PFILE_OBJECT FileObject);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetBootDiskInformationLite(
-  OUT PBOOTDISK_INFORMATION_LITE *BootDiskInformation);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoCheckShareAccessEx(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  IN OUT PSHARE_ACCESS ShareAccess,
-  IN BOOLEAN Update,
-  IN PBOOLEAN WritePermission);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoConnectInterruptEx(
-  IN OUT PIO_CONNECT_INTERRUPT_PARAMETERS Parameters);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoDisconnectInterruptEx(
-  IN PIO_DISCONNECT_INTERRUPT_PARAMETERS Parameters);
-
-LOGICAL
-NTAPI
-IoWithinStackLimits(
-  IN ULONG_PTR RegionStart,
-  IN SIZE_T RegionSize);
-
-NTKERNELAPI
-VOID
-NTAPI
-IoSetShareAccessEx(
-  IN ACCESS_MASK DesiredAccess,
-  IN ULONG DesiredShareAccess,
-  IN OUT PFILE_OBJECT FileObject,
-  OUT PSHARE_ACCESS ShareAccess,
-  IN PBOOLEAN WritePermission);
-
-ULONG
-NTAPI
-IoSizeofWorkItem(VOID);
-
-VOID
-NTAPI
-IoInitializeWorkItem(
-  IN PVOID IoObject,
-  IN PIO_WORKITEM IoWorkItem);
-
-VOID
-NTAPI
-IoUninitializeWorkItem(
-  IN PIO_WORKITEM IoWorkItem);
-
-VOID
-NTAPI
-IoQueueWorkItemEx(
-  IN PIO_WORKITEM IoWorkItem,
-  IN PIO_WORKITEM_ROUTINE_EX WorkerRoutine,
-  IN WORK_QUEUE_TYPE QueueType,
-  IN PVOID Context OPTIONAL);
-
-IO_PRIORITY_HINT
-NTAPI
-IoGetIoPriorityHint(
-  IN PIRP Irp);
-
-NTSTATUS
-NTAPI
-IoSetIoPriorityHint(
-  IN PIRP Irp,
-  IN IO_PRIORITY_HINT PriorityHint);
-
-NTSTATUS
-NTAPI
-IoAllocateSfioStreamIdentifier(
-  IN PFILE_OBJECT FileObject,
-  IN ULONG Length,
-  IN PVOID Signature,
-  OUT PVOID *StreamIdentifier);
-
-PVOID
-NTAPI
-IoGetSfioStreamIdentifier(
-  IN PFILE_OBJECT FileObject,
-  IN PVOID Signature);
-
-NTSTATUS
-NTAPI
-IoFreeSfioStreamIdentifier(
-  IN PFILE_OBJECT FileObject,
-  IN PVOID Signature);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoRequestDeviceEjectEx(
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  IN PIO_DEVICE_EJECT_CALLBACK Callback OPTIONAL,
-  IN PVOID Context OPTIONAL,
-  IN PDRIVER_OBJECT DriverObject OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoSetDevicePropertyData(
-  IN PDEVICE_OBJECT     Pdo,
-  IN CONST DEVPROPKEY   *PropertyKey,
-  IN LCID               Lcid,
-  IN ULONG              Flags,
-  IN DEVPROPTYPE        Type,
-  IN ULONG              Size,
-  IN PVOID          Data OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetDevicePropertyData(
-  PDEVICE_OBJECT Pdo,
-  CONST DEVPROPKEY *PropertyKey,
-  LCID Lcid,
-  ULONG Flags,
-  ULONG Size,
-  PVOID Data,
-  PULONG RequiredSize,
-  PDEVPROPTYPE Type);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-$if (_WDMDDK_)
-#define IoCallDriverStackSafeDefault(a, b) IoCallDriver(a, b)
-
-#if (NTDDI_VERSION >= NTDDI_WS08)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoReplacePartitionUnit(
-  IN PDEVICE_OBJECT TargetPdo,
-  IN PDEVICE_OBJECT SparePdo,
-  IN ULONG Flags);
-#endif
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-$if (_NTDDK_)
-NTSTATUS
-NTAPI
-IoSetFileObjectIgnoreSharing(
-  IN PFILE_OBJECT FileObject);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetAffinityInterrupt(
-  IN PKINTERRUPT InterruptObject,
-  OUT PGROUP_AFFINITY GroupAffinity);
-
-NTSTATUS
-NTAPI
-IoGetContainerInformation(
-  IN IO_CONTAINER_INFORMATION_CLASS InformationClass,
-  IN PVOID ContainerObject OPTIONAL,
-  IN OUT PVOID Buffer OPTIONAL,
-  IN ULONG BufferLength);
-
-NTSTATUS
-NTAPI
-IoRegisterContainerNotification(
-  IN IO_CONTAINER_NOTIFICATION_CLASS NotificationClass,
-  IN PIO_CONTAINER_NOTIFICATION_FUNCTION CallbackFunction,
-  IN PVOID NotificationInformation OPTIONAL,
-  IN ULONG NotificationInformationLength,
-  OUT PVOID CallbackRegistration);
-
-VOID
-NTAPI
-IoUnregisterContainerNotification(
-  IN PVOID CallbackRegistration);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoUnregisterPlugPlayNotificationEx(
-  IN PVOID NotificationEntry);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-IoGetDeviceNumaNode(
-  IN PDEVICE_OBJECT Pdo,
-  OUT PUSHORT NodeNumber);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-$if (_WDMDDK_)
-#if defined(_WIN64)
-NTKERNELAPI
-ULONG
-NTAPI
-IoWMIDeviceObjectToProviderId(
-  IN PDEVICE_OBJECT DeviceObject);
-#else
-#define IoWMIDeviceObjectToProviderId(DeviceObject) ((ULONG)(DeviceObject))
-#endif
-
-/*
- * USHORT
- * IoSizeOfIrp(
- *   IN CCHAR  StackSize)
- */
-#define IoSizeOfIrp(_StackSize) \
-  ((USHORT) (sizeof(IRP) + ((_StackSize) * (sizeof(IO_STACK_LOCATION)))))
-
-FORCEINLINE
-VOID
-IoSkipCurrentIrpStackLocation(
-  IN OUT PIRP Irp)
-{
-  ASSERT(Irp->CurrentLocation <= Irp->StackCount);
-  Irp->CurrentLocation++;
-  Irp->Tail.Overlay.CurrentStackLocation++;
-}
-
-FORCEINLINE
-VOID
-IoSetNextIrpStackLocation(
-  IN OUT PIRP Irp)
-{
-  ASSERT(Irp->CurrentLocation > 0);
-  Irp->CurrentLocation--;
-  Irp->Tail.Overlay.CurrentStackLocation--;
-}
-
-FORCEINLINE
-PIO_STACK_LOCATION
-IoGetNextIrpStackLocation(
-  IN PIRP Irp)
-{
-  ASSERT(Irp->CurrentLocation > 0);
-  return ((Irp)->Tail.Overlay.CurrentStackLocation - 1 );
-}
-
-FORCEINLINE
-VOID
-IoSetCompletionRoutine(
-  IN PIRP Irp,
-  IN PIO_COMPLETION_ROUTINE CompletionRoutine OPTIONAL,
-  IN PVOID Context OPTIONAL,
-  IN BOOLEAN InvokeOnSuccess,
-  IN BOOLEAN InvokeOnError,
-  IN BOOLEAN InvokeOnCancel)
-{
-  PIO_STACK_LOCATION irpSp;
-  ASSERT( (InvokeOnSuccess || InvokeOnError || InvokeOnCancel) ? (CompletionRoutine != NULL) : TRUE );
-  irpSp = IoGetNextIrpStackLocation(Irp);
-  irpSp->CompletionRoutine = CompletionRoutine;
-  irpSp->Context = Context;
-  irpSp->Control = 0;
-
-  if (InvokeOnSuccess) {
-    irpSp->Control = SL_INVOKE_ON_SUCCESS;
-  }
-
-  if (InvokeOnError) {
-    irpSp->Control |= SL_INVOKE_ON_ERROR;
-  }
-
-  if (InvokeOnCancel) {
-    irpSp->Control |= SL_INVOKE_ON_CANCEL;
-  }
-}
-
-/*
- * PDRIVER_CANCEL
- * IoSetCancelRoutine(
- *   IN PIRP  Irp,
- *   IN PDRIVER_CANCEL  CancelRoutine)
- */
-#define IoSetCancelRoutine(_Irp, \
-                           _CancelRoutine) \
-  ((PDRIVER_CANCEL) (ULONG_PTR) InterlockedExchangePointer( \
-    (PVOID *) &(_Irp)->CancelRoutine, (PVOID) (ULONG_PTR) (_CancelRoutine)))
-
-/*
- * VOID
- * IoRequestDpc(
- *   IN PDEVICE_OBJECT  DeviceObject,
- *   IN PIRP  Irp,
- *   IN PVOID  Context);
- */
-#define IoRequestDpc(DeviceObject, Irp, Context)( \
-  KeInsertQueueDpc(&(DeviceObject)->Dpc, (Irp), (Context)))
-
-/*
- * VOID
- * IoReleaseRemoveLock(
- *   IN PIO_REMOVE_LOCK  RemoveLock,
- *   IN PVOID  Tag)
- */
-#define IoReleaseRemoveLock(_RemoveLock, \
-                            _Tag) \
-  IoReleaseRemoveLockEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
-
-/*
- * VOID
- * IoReleaseRemoveLockAndWait(
- *   IN PIO_REMOVE_LOCK  RemoveLock,
- *   IN PVOID  Tag)
- */
-#define IoReleaseRemoveLockAndWait(_RemoveLock, \
-                                   _Tag) \
-  IoReleaseRemoveLockAndWaitEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
-
-#if defined(_WIN64)
-NTKERNELAPI
-BOOLEAN
-IoIs32bitProcess(
-  IN PIRP Irp OPTIONAL);
-#endif
-
-#define PLUGPLAY_REGKEY_DEVICE                            1
-#define PLUGPLAY_REGKEY_DRIVER                            2
-#define PLUGPLAY_REGKEY_CURRENT_HWPROFILE                 4
-
-FORCEINLINE
-PIO_STACK_LOCATION
-IoGetCurrentIrpStackLocation(
-  IN PIRP Irp)
-{
-  ASSERT(Irp->CurrentLocation <= Irp->StackCount + 1);
-  return Irp->Tail.Overlay.CurrentStackLocation;
-}
-
-FORCEINLINE
-VOID
-IoMarkIrpPending(
-  IN OUT PIRP Irp)
-{
-  IoGetCurrentIrpStackLocation( (Irp) )->Control |= SL_PENDING_RETURNED;
-}
-
-/*
- * BOOLEAN
- * IoIsErrorUserInduced(
- *   IN NTSTATUS  Status);
- */
-#define IoIsErrorUserInduced(Status) \
-   ((BOOLEAN)(((Status) == STATUS_DEVICE_NOT_READY) || \
-   ((Status) == STATUS_IO_TIMEOUT) || \
-   ((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \
-   ((Status) == STATUS_NO_MEDIA_IN_DEVICE) || \
-   ((Status) == STATUS_VERIFY_REQUIRED) || \
-   ((Status) == STATUS_UNRECOGNIZED_MEDIA) || \
-   ((Status) == STATUS_WRONG_VOLUME)))
-
-/* VOID
- * IoInitializeRemoveLock(
- *   IN PIO_REMOVE_LOCK  Lock,
- *   IN ULONG  AllocateTag,
- *   IN ULONG  MaxLockedMinutes,
- *   IN ULONG  HighWatermark)
- */
-#define IoInitializeRemoveLock( \
-  Lock, AllocateTag, MaxLockedMinutes, HighWatermark) \
-  IoInitializeRemoveLockEx(Lock, AllocateTag, MaxLockedMinutes, \
-    HighWatermark, sizeof(IO_REMOVE_LOCK))
-
-VOID
-FORCEINLINE
-IoInitializeDpcRequest(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIO_DPC_ROUTINE DpcRoutine)
-{
-  KeInitializeDpc( &DeviceObject->Dpc,
-                   (PKDEFERRED_ROUTINE) DpcRoutine,
-                   DeviceObject );
-}
-
-#define DEVICE_INTERFACE_INCLUDE_NONACTIVE 0x00000001
-
-/*
- * ULONG
- * IoGetFunctionCodeFromCtlCode(
- *   IN ULONG  ControlCode)
- */
-#define IoGetFunctionCodeFromCtlCode(_ControlCode) \
-  (((_ControlCode) >> 2) & 0x00000FFF)
-
-FORCEINLINE
-VOID
-IoCopyCurrentIrpStackLocationToNext(
-  IN OUT PIRP Irp)
-{
-  PIO_STACK_LOCATION irpSp;
-  PIO_STACK_LOCATION nextIrpSp;
-  irpSp = IoGetCurrentIrpStackLocation(Irp);
-  nextIrpSp = IoGetNextIrpStackLocation(Irp);
-  RtlCopyMemory( nextIrpSp, irpSp, FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine));
-  nextIrpSp->Control = 0;
-}
-
-NTKERNELAPI
-VOID
-NTAPI
-IoGetStackLimits(
-  OUT PULONG_PTR LowLimit,
-  OUT PULONG_PTR HighLimit);
-
-FORCEINLINE
-ULONG_PTR
-IoGetRemainingStackSize(VOID)
-{
-  ULONG_PTR End, Begin;
-  ULONG_PTR Result;
-
-  IoGetStackLimits(&Begin, &End);
-  Result = (ULONG_PTR)(&End) - Begin;
-  return Result;
-}
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-VOID
-FORCEINLINE
-IoInitializeThreadedDpcRequest(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PIO_DPC_ROUTINE DpcRoutine)
-{
-  KeInitializeThreadedDpc(&DeviceObject->Dpc,
-                          (PKDEFERRED_ROUTINE) DpcRoutine,
-                          DeviceObject );
-}
-#endif
-$endif
-
diff --git a/reactos/include/xdk/iotypes.h b/reactos/include/xdk/iotypes.h
deleted file mode 100644 (file)
index aac22cb..0000000
+++ /dev/null
@@ -1,4869 +0,0 @@
-/******************************************************************************
- *                         I/O Manager Types                                  *
- ******************************************************************************/
-
-$if (_WDMDDK_)
-#define WDM_MAJORVERSION        0x06
-#define WDM_MINORVERSION        0x00
-
-#if defined(_WIN64)
-
-#ifndef USE_DMA_MACROS
-#define USE_DMA_MACROS
-#endif
-
-#ifndef NO_LEGACY_DRIVERS
-#define NO_LEGACY_DRIVERS
-#endif
-
-#endif /* defined(_WIN64) */
-
-#define STATUS_CONTINUE_COMPLETION      STATUS_SUCCESS
-
-#define CONNECT_FULLY_SPECIFIED         0x1
-#define CONNECT_LINE_BASED              0x2
-#define CONNECT_MESSAGE_BASED           0x3
-#define CONNECT_FULLY_SPECIFIED_GROUP   0x4
-#define CONNECT_CURRENT_VERSION         0x4
-
-#define POOL_COLD_ALLOCATION                256
-#define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE    8
-#define POOL_RAISE_IF_ALLOCATION_FAILURE    16
-
-#define IO_TYPE_ADAPTER                 1
-#define IO_TYPE_CONTROLLER              2
-#define IO_TYPE_DEVICE                  3
-#define IO_TYPE_DRIVER                  4
-#define IO_TYPE_FILE                    5
-#define IO_TYPE_IRP                     6
-#define IO_TYPE_MASTER_ADAPTER          7
-#define IO_TYPE_OPEN_PACKET             8
-#define IO_TYPE_TIMER                   9
-#define IO_TYPE_VPB                     10
-#define IO_TYPE_ERROR_LOG               11
-#define IO_TYPE_ERROR_MESSAGE           12
-#define IO_TYPE_DEVICE_OBJECT_EXTENSION 13
-
-#define IO_TYPE_CSQ_IRP_CONTEXT 1
-#define IO_TYPE_CSQ 2
-#define IO_TYPE_CSQ_EX 3
-
-/* IO_RESOURCE_DESCRIPTOR.Option */
-#define IO_RESOURCE_PREFERRED             0x01
-#define IO_RESOURCE_DEFAULT               0x02
-#define IO_RESOURCE_ALTERNATIVE           0x08
-
-#define FILE_DEVICE_BEEP                  0x00000001
-#define FILE_DEVICE_CD_ROM                0x00000002
-#define FILE_DEVICE_CD_ROM_FILE_SYSTEM    0x00000003
-#define FILE_DEVICE_CONTROLLER            0x00000004
-#define FILE_DEVICE_DATALINK              0x00000005
-#define FILE_DEVICE_DFS                   0x00000006
-#define FILE_DEVICE_DISK                  0x00000007
-#define FILE_DEVICE_DISK_FILE_SYSTEM      0x00000008
-#define FILE_DEVICE_FILE_SYSTEM           0x00000009
-#define FILE_DEVICE_INPORT_PORT           0x0000000a
-#define FILE_DEVICE_KEYBOARD              0x0000000b
-#define FILE_DEVICE_MAILSLOT              0x0000000c
-#define FILE_DEVICE_MIDI_IN               0x0000000d
-#define FILE_DEVICE_MIDI_OUT              0x0000000e
-#define FILE_DEVICE_MOUSE                 0x0000000f
-#define FILE_DEVICE_MULTI_UNC_PROVIDER    0x00000010
-#define FILE_DEVICE_NAMED_PIPE            0x00000011
-#define FILE_DEVICE_NETWORK               0x00000012
-#define FILE_DEVICE_NETWORK_BROWSER       0x00000013
-#define FILE_DEVICE_NETWORK_FILE_SYSTEM   0x00000014
-#define FILE_DEVICE_NULL                  0x00000015
-#define FILE_DEVICE_PARALLEL_PORT         0x00000016
-#define FILE_DEVICE_PHYSICAL_NETCARD      0x00000017
-#define FILE_DEVICE_PRINTER               0x00000018
-#define FILE_DEVICE_SCANNER               0x00000019
-#define FILE_DEVICE_SERIAL_MOUSE_PORT     0x0000001a
-#define FILE_DEVICE_SERIAL_PORT           0x0000001b
-#define FILE_DEVICE_SCREEN                0x0000001c
-#define FILE_DEVICE_SOUND                 0x0000001d
-#define FILE_DEVICE_STREAMS               0x0000001e
-#define FILE_DEVICE_TAPE                  0x0000001f
-#define FILE_DEVICE_TAPE_FILE_SYSTEM      0x00000020
-#define FILE_DEVICE_TRANSPORT             0x00000021
-#define FILE_DEVICE_UNKNOWN               0x00000022
-#define FILE_DEVICE_VIDEO                 0x00000023
-#define FILE_DEVICE_VIRTUAL_DISK          0x00000024
-#define FILE_DEVICE_WAVE_IN               0x00000025
-#define FILE_DEVICE_WAVE_OUT              0x00000026
-#define FILE_DEVICE_8042_PORT             0x00000027
-#define FILE_DEVICE_NETWORK_REDIRECTOR    0x00000028
-#define FILE_DEVICE_BATTERY               0x00000029
-#define FILE_DEVICE_BUS_EXTENDER          0x0000002a
-#define FILE_DEVICE_MODEM                 0x0000002b
-#define FILE_DEVICE_VDM                   0x0000002c
-#define FILE_DEVICE_MASS_STORAGE          0x0000002d
-#define FILE_DEVICE_SMB                   0x0000002e
-#define FILE_DEVICE_KS                    0x0000002f
-#define FILE_DEVICE_CHANGER               0x00000030
-#define FILE_DEVICE_SMARTCARD             0x00000031
-#define FILE_DEVICE_ACPI                  0x00000032
-#define FILE_DEVICE_DVD                   0x00000033
-#define FILE_DEVICE_FULLSCREEN_VIDEO      0x00000034
-#define FILE_DEVICE_DFS_FILE_SYSTEM       0x00000035
-#define FILE_DEVICE_DFS_VOLUME            0x00000036
-#define FILE_DEVICE_SERENUM               0x00000037
-#define FILE_DEVICE_TERMSRV               0x00000038
-#define FILE_DEVICE_KSEC                  0x00000039
-#define FILE_DEVICE_FIPS                  0x0000003A
-#define FILE_DEVICE_INFINIBAND            0x0000003B
-#define FILE_DEVICE_VMBUS                 0x0000003E
-#define FILE_DEVICE_CRYPT_PROVIDER        0x0000003F
-#define FILE_DEVICE_WPD                   0x00000040
-#define FILE_DEVICE_BLUETOOTH             0x00000041
-#define FILE_DEVICE_MT_COMPOSITE          0x00000042
-#define FILE_DEVICE_MT_TRANSPORT          0x00000043
-#define FILE_DEVICE_BIOMETRIC             0x00000044
-#define FILE_DEVICE_PMI                   0x00000045
-
-#if defined(NT_PROCESSOR_GROUPS)
-
-typedef USHORT IRQ_DEVICE_POLICY, *PIRQ_DEVICE_POLICY;
-
-typedef enum _IRQ_DEVICE_POLICY_USHORT {
-  IrqPolicyMachineDefault = 0,
-  IrqPolicyAllCloseProcessors = 1,
-  IrqPolicyOneCloseProcessor = 2,
-  IrqPolicyAllProcessorsInMachine = 3,
-  IrqPolicyAllProcessorsInGroup = 3,
-  IrqPolicySpecifiedProcessors = 4,
-  IrqPolicySpreadMessagesAcrossAllProcessors = 5};
-
-#else /* defined(NT_PROCESSOR_GROUPS) */
-
-typedef enum _IRQ_DEVICE_POLICY {
-  IrqPolicyMachineDefault = 0,
-  IrqPolicyAllCloseProcessors,
-  IrqPolicyOneCloseProcessor,
-  IrqPolicyAllProcessorsInMachine,
-  IrqPolicySpecifiedProcessors,
-  IrqPolicySpreadMessagesAcrossAllProcessors
-} IRQ_DEVICE_POLICY, *PIRQ_DEVICE_POLICY;
-
-#endif
-
-typedef enum _IRQ_PRIORITY {
-  IrqPriorityUndefined = 0,
-  IrqPriorityLow,
-  IrqPriorityNormal,
-  IrqPriorityHigh
-} IRQ_PRIORITY, *PIRQ_PRIORITY;
-
-typedef enum _IRQ_GROUP_POLICY {
-  GroupAffinityAllGroupZero = 0,
-  GroupAffinityDontCare
-} IRQ_GROUP_POLICY, *PIRQ_GROUP_POLICY;
-
-#define MAXIMUM_VOLUME_LABEL_LENGTH       (32 * sizeof(WCHAR))
-
-typedef struct _OBJECT_HANDLE_INFORMATION {
-  ULONG HandleAttributes;
-  ACCESS_MASK GrantedAccess;
-} OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION;
-
-typedef struct _CLIENT_ID {
-  HANDLE UniqueProcess;
-  HANDLE UniqueThread;
-} CLIENT_ID, *PCLIENT_ID;
-
-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[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)];
-} VPB, *PVPB;
-
-typedef enum _IO_ALLOCATION_ACTION {
-  KeepObject = 1,
-  DeallocateObject,
-  DeallocateObjectKeepRegisters
-} IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
-
-typedef IO_ALLOCATION_ACTION
-(NTAPI DRIVER_CONTROL)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN PVOID MapRegisterBase,
-  IN PVOID Context);
-typedef DRIVER_CONTROL *PDRIVER_CONTROL;
-
-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;
-
-$endif
-/* DEVICE_OBJECT.Flags */
-$if (_NTDDK_)
-#define DO_DEVICE_HAS_NAME                0x00000040
-#define DO_SYSTEM_BOOT_PARTITION          0x00000100
-#define DO_LONG_TERM_REQUESTS             0x00000200
-#define DO_NEVER_LAST_DEVICE              0x00000400
-#define DO_LOW_PRIORITY_FILESYSTEM        0x00010000
-#define DO_SUPPORTS_TRANSACTIONS          0x00040000
-#define DO_FORCE_NEITHER_IO               0x00080000
-#define DO_VOLUME_DEVICE_OBJECT           0x00100000
-#define DO_SYSTEM_SYSTEM_PARTITION        0x00200000
-#define DO_SYSTEM_CRITICAL_PARTITION      0x00400000
-#define DO_DISALLOW_EXECUTE               0x00800000
-$endif
-$if (_WDMDDK_)
-#define DO_VERIFY_VOLUME                  0x00000002
-#define DO_BUFFERED_IO                    0x00000004
-#define DO_EXCLUSIVE                      0x00000008
-#define DO_DIRECT_IO                      0x00000010
-#define DO_MAP_IO_BUFFER                  0x00000020
-#define DO_DEVICE_INITIALIZING            0x00000080
-#define DO_SHUTDOWN_REGISTERED            0x00000800
-#define DO_BUS_ENUMERATED_DEVICE          0x00001000
-#define DO_POWER_PAGABLE                  0x00002000
-#define DO_POWER_INRUSH                   0x00004000
-
-/* DEVICE_OBJECT.Characteristics */
-#define FILE_REMOVABLE_MEDIA              0x00000001
-#define FILE_READ_ONLY_DEVICE             0x00000002
-#define FILE_FLOPPY_DISKETTE              0x00000004
-#define FILE_WRITE_ONCE_MEDIA             0x00000008
-#define FILE_REMOTE_DEVICE                0x00000010
-#define FILE_DEVICE_IS_MOUNTED            0x00000020
-#define FILE_VIRTUAL_VOLUME               0x00000040
-#define FILE_AUTOGENERATED_DEVICE_NAME    0x00000080
-#define FILE_DEVICE_SECURE_OPEN           0x00000100
-#define FILE_CHARACTERISTIC_PNP_DEVICE    0x00000800
-#define FILE_CHARACTERISTIC_TS_DEVICE     0x00001000
-#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
-
-/* DEVICE_OBJECT.AlignmentRequirement */
-#define FILE_BYTE_ALIGNMENT             0x00000000
-#define FILE_WORD_ALIGNMENT             0x00000001
-#define FILE_LONG_ALIGNMENT             0x00000003
-#define FILE_QUAD_ALIGNMENT             0x00000007
-#define FILE_OCTA_ALIGNMENT             0x0000000f
-#define FILE_32_BYTE_ALIGNMENT          0x0000001f
-#define FILE_64_BYTE_ALIGNMENT          0x0000003f
-#define FILE_128_BYTE_ALIGNMENT         0x0000007f
-#define FILE_256_BYTE_ALIGNMENT         0x000000ff
-#define FILE_512_BYTE_ALIGNMENT         0x000001ff
-
-/* DEVICE_OBJECT.DeviceType */
-#define DEVICE_TYPE ULONG
-
-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;
-  volatile PVPB Vpb;
-  PVOID DeviceExtension;
-  DEVICE_TYPE 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, *PDEVICE_OBJECT;
-
-typedef enum _IO_SESSION_STATE {
-  IoSessionStateCreated = 1,
-  IoSessionStateInitialized,
-  IoSessionStateConnected,
-  IoSessionStateDisconnected,
-  IoSessionStateDisconnectedLoggedOn,
-  IoSessionStateLoggedOn,
-  IoSessionStateLoggedOff,
-  IoSessionStateTerminated,
-  IoSessionStateMax
-} IO_SESSION_STATE, *PIO_SESSION_STATE;
-
-typedef enum _IO_COMPLETION_ROUTINE_RESULT {
-  ContinueCompletion = STATUS_CONTINUE_COMPLETION,
-  StopCompletion = STATUS_MORE_PROCESSING_REQUIRED
-} IO_COMPLETION_ROUTINE_RESULT, *PIO_COMPLETION_ROUTINE_RESULT;
-
-typedef struct _IO_INTERRUPT_MESSAGE_INFO_ENTRY {
-  PHYSICAL_ADDRESS MessageAddress;
-  KAFFINITY TargetProcessorSet;
-  PKINTERRUPT InterruptObject;
-  ULONG MessageData;
-  ULONG Vector;
-  KIRQL Irql;
-  KINTERRUPT_MODE Mode;
-  KINTERRUPT_POLARITY Polarity;
-} IO_INTERRUPT_MESSAGE_INFO_ENTRY, *PIO_INTERRUPT_MESSAGE_INFO_ENTRY;
-
-typedef struct _IO_INTERRUPT_MESSAGE_INFO {
-  KIRQL UnifiedIrql;
-  ULONG MessageCount;
-  IO_INTERRUPT_MESSAGE_INFO_ENTRY MessageInfo[1];
-} IO_INTERRUPT_MESSAGE_INFO, *PIO_INTERRUPT_MESSAGE_INFO;
-
-typedef struct _IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  OUT PKINTERRUPT *InterruptObject;
-  IN PKSERVICE_ROUTINE ServiceRoutine;
-  IN PVOID ServiceContext;
-  IN PKSPIN_LOCK SpinLock OPTIONAL;
-  IN KIRQL SynchronizeIrql;
-  IN BOOLEAN FloatingSave;
-  IN BOOLEAN ShareVector;
-  IN ULONG Vector;
-  IN KIRQL Irql;
-  IN KINTERRUPT_MODE InterruptMode;
-  IN KAFFINITY ProcessorEnableMask;
-  IN USHORT Group;
-} IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS, *PIO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS;
-
-typedef struct _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  OUT PKINTERRUPT *InterruptObject;
-  IN PKSERVICE_ROUTINE ServiceRoutine;
-  IN PVOID ServiceContext;
-  IN PKSPIN_LOCK SpinLock OPTIONAL;
-  IN KIRQL SynchronizeIrql OPTIONAL;
-  IN BOOLEAN FloatingSave;
-} IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS, *PIO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS;
-
-typedef struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  union {
-    OUT PVOID *Generic;
-    OUT PIO_INTERRUPT_MESSAGE_INFO *InterruptMessageTable;
-    OUT PKINTERRUPT *InterruptObject;
-  } ConnectionContext;
-  IN PKMESSAGE_SERVICE_ROUTINE MessageServiceRoutine;
-  IN PVOID ServiceContext;
-  IN PKSPIN_LOCK SpinLock OPTIONAL;
-  IN KIRQL SynchronizeIrql OPTIONAL;
-  IN BOOLEAN FloatingSave;
-  IN PKSERVICE_ROUTINE FallBackServiceRoutine OPTIONAL;
-} IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS, *PIO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS;
-
-typedef struct _IO_CONNECT_INTERRUPT_PARAMETERS {
-  IN OUT ULONG Version;
-  union {
-    IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS FullySpecified;
-    IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS LineBased;
-    IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS MessageBased;
-  };
-} IO_CONNECT_INTERRUPT_PARAMETERS, *PIO_CONNECT_INTERRUPT_PARAMETERS;
-
-typedef struct _IO_DISCONNECT_INTERRUPT_PARAMETERS {
-  IN ULONG Version;
-  union {
-    IN PVOID Generic;
-    IN PKINTERRUPT InterruptObject;
-    IN PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable;
-  } ConnectionContext;
-} IO_DISCONNECT_INTERRUPT_PARAMETERS, *PIO_DISCONNECT_INTERRUPT_PARAMETERS;
-
-typedef enum _IO_ACCESS_TYPE {
-  ReadAccess,
-  WriteAccess,
-  ModifyAccess
-} IO_ACCESS_TYPE;
-
-typedef enum _IO_ACCESS_MODE {
-  SequentialAccess,
-  RandomAccess
-} IO_ACCESS_MODE;
-
-typedef enum _IO_CONTAINER_NOTIFICATION_CLASS {
-  IoSessionStateNotification,
-  IoMaxContainerNotificationClass
-} IO_CONTAINER_NOTIFICATION_CLASS;
-
-typedef struct _IO_SESSION_STATE_NOTIFICATION {
-  ULONG Size;
-  ULONG Flags;
-  PVOID IoObject;
-  ULONG EventMask;
-  PVOID Context;
-} IO_SESSION_STATE_NOTIFICATION, *PIO_SESSION_STATE_NOTIFICATION;
-
-typedef enum _IO_CONTAINER_INFORMATION_CLASS {
-  IoSessionStateInformation,
-  IoMaxContainerInformationClass
-} IO_CONTAINER_INFORMATION_CLASS;
-
-typedef struct _IO_SESSION_STATE_INFORMATION {
-  ULONG SessionId;
-  IO_SESSION_STATE SessionState;
-  BOOLEAN LocalSession;
-} IO_SESSION_STATE_INFORMATION, *PIO_SESSION_STATE_INFORMATION;
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-typedef NTSTATUS
-(NTAPI *PIO_CONTAINER_NOTIFICATION_FUNCTION)(
-  VOID);
-
-typedef NTSTATUS
-(NTAPI IO_SESSION_NOTIFICATION_FUNCTION)(
-  IN PVOID SessionObject,
-  IN PVOID IoObject,
-  IN ULONG Event,
-  IN PVOID Context,
-  IN PVOID NotificationPayload,
-  IN ULONG PayloadLength);
-
-typedef IO_SESSION_NOTIFICATION_FUNCTION *PIO_SESSION_NOTIFICATION_FUNCTION;
-
-#endif
-
-typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK;
-
-typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK {
-  BOOLEAN Removed;
-  BOOLEAN Reserved[3];
-  volatile LONG IoCount;
-  KEVENT RemoveEvent;
-} IO_REMOVE_LOCK_COMMON_BLOCK;
-
-typedef struct _IO_REMOVE_LOCK_DBG_BLOCK {
-  LONG Signature;
-  LONG HighWatermark;
-  LONGLONG MaxLockedTicks;
-  LONG AllocateTag;
-  LIST_ENTRY LockList;
-  KSPIN_LOCK Spin;
-  volatile 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;
-#if DBG
-  IO_REMOVE_LOCK_DBG_BLOCK Dbg;
-#endif
-} IO_REMOVE_LOCK, *PIO_REMOVE_LOCK;
-
-typedef struct _IO_WORKITEM *PIO_WORKITEM;
-
-typedef VOID
-(NTAPI IO_WORKITEM_ROUTINE)(
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PVOID Context);
-typedef IO_WORKITEM_ROUTINE *PIO_WORKITEM_ROUTINE;
-
-typedef VOID
-(NTAPI IO_WORKITEM_ROUTINE_EX)(
-  IN PVOID IoObject,
-  IN PVOID Context OPTIONAL,
-  IN PIO_WORKITEM IoWorkItem);
-typedef IO_WORKITEM_ROUTINE_EX *PIO_WORKITEM_ROUTINE_EX;
-
-typedef struct _SHARE_ACCESS {
-  ULONG OpenCount;
-  ULONG Readers;
-  ULONG Writers;
-  ULONG Deleters;
-  ULONG SharedRead;
-  ULONG SharedWrite;
-  ULONG SharedDelete;
-} SHARE_ACCESS, *PSHARE_ACCESS;
-
-/* While MS WDK uses inheritance in C++, we cannot do this with gcc, as
-   inheritance, even from a struct renders the type non-POD. So we use
-   this hack */
-#define PCI_COMMON_HEADER_LAYOUT \
-  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[PCI_TYPE0_ADDRESSES]; \
-      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[PCI_TYPE1_ADDRESSES]; \
-      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[PCI_TYPE2_ADDRESSES-1]; \
-      UCHAR InterruptLine; \
-      UCHAR InterruptPin; \
-      USHORT BridgeControl; \
-    } type2; \
-  } u;
-
-typedef enum _CREATE_FILE_TYPE {
-  CreateFileTypeNone,
-  CreateFileTypeNamedPipe,
-  CreateFileTypeMailslot
-} CREATE_FILE_TYPE;
-
-#define IO_FORCE_ACCESS_CHECK               0x001
-#define IO_NO_PARAMETER_CHECKING            0x100
-
-#define IO_REPARSE                      0x0
-#define IO_REMOUNT                      0x1
-
-typedef struct _IO_STATUS_BLOCK {
-  _ANONYMOUS_UNION union {
-    NTSTATUS Status;
-    PVOID Pointer;
-  } DUMMYUNIONNAME;
-  ULONG_PTR Information;
-} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
-
-#if defined(_WIN64)
-typedef struct _IO_STATUS_BLOCK32 {
-  NTSTATUS Status;
-  ULONG Information;
-} IO_STATUS_BLOCK32, *PIO_STATUS_BLOCK32;
-#endif
-
-typedef VOID
-(NTAPI *PIO_APC_ROUTINE)(
-  IN PVOID ApcContext,
-  IN PIO_STATUS_BLOCK IoStatusBlock,
-  IN ULONG Reserved);
-
-#define PIO_APC_ROUTINE_DEFINED
-
-typedef enum _IO_SESSION_EVENT {
-  IoSessionEventIgnore = 0,
-  IoSessionEventCreated,
-  IoSessionEventTerminated,
-  IoSessionEventConnected,
-  IoSessionEventDisconnected,
-  IoSessionEventLogon,
-  IoSessionEventLogoff,
-  IoSessionEventMax
-} IO_SESSION_EVENT, *PIO_SESSION_EVENT;
-
-#define IO_SESSION_STATE_ALL_EVENTS        0xffffffff
-#define IO_SESSION_STATE_CREATION_EVENT    0x00000001
-#define IO_SESSION_STATE_TERMINATION_EVENT 0x00000002
-#define IO_SESSION_STATE_CONNECT_EVENT     0x00000004
-#define IO_SESSION_STATE_DISCONNECT_EVENT  0x00000008
-#define IO_SESSION_STATE_LOGON_EVENT       0x00000010
-#define IO_SESSION_STATE_LOGOFF_EVENT      0x00000020
-
-#define IO_SESSION_STATE_VALID_EVENT_MASK  0x0000003f
-
-#define IO_SESSION_MAX_PAYLOAD_SIZE        256L
-
-typedef struct _IO_SESSION_CONNECT_INFO {
-  ULONG SessionId;
-  BOOLEAN LocalSession;
-} IO_SESSION_CONNECT_INFO, *PIO_SESSION_CONNECT_INFO;
-
-#define EVENT_INCREMENT                   1
-#define IO_NO_INCREMENT                   0
-#define IO_CD_ROM_INCREMENT               1
-#define IO_DISK_INCREMENT                 1
-#define IO_KEYBOARD_INCREMENT             6
-#define IO_MAILSLOT_INCREMENT             2
-#define IO_MOUSE_INCREMENT                6
-#define IO_NAMED_PIPE_INCREMENT           2
-#define IO_NETWORK_INCREMENT              2
-#define IO_PARALLEL_INCREMENT             1
-#define IO_SERIAL_INCREMENT               2
-#define IO_SOUND_INCREMENT                8
-#define IO_VIDEO_INCREMENT                1
-#define SEMAPHORE_INCREMENT               1
-
-#define MM_MAXIMUM_DISK_IO_SIZE          (0x10000)
-
-typedef struct _BOOTDISK_INFORMATION {
-  LONGLONG BootPartitionOffset;
-  LONGLONG SystemPartitionOffset;
-  ULONG BootDeviceSignature;
-  ULONG SystemDeviceSignature;
-} BOOTDISK_INFORMATION, *PBOOTDISK_INFORMATION;
-
-typedef struct _BOOTDISK_INFORMATION_EX {
-  LONGLONG BootPartitionOffset;
-  LONGLONG SystemPartitionOffset;
-  ULONG BootDeviceSignature;
-  ULONG SystemDeviceSignature;
-  GUID BootDeviceGuid;
-  GUID SystemDeviceGuid;
-  BOOLEAN BootDeviceIsGpt;
-  BOOLEAN SystemDeviceIsGpt;
-} BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX;
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-typedef struct _LOADER_PARTITION_INFORMATION_EX {
-  ULONG PartitionStyle;
-  ULONG PartitionNumber;
-  union {
-    ULONG Signature;
-    GUID DeviceId;
-  };
-  ULONG Flags;
-} LOADER_PARTITION_INFORMATION_EX, *PLOADER_PARTITION_INFORMATION_EX;
-
-typedef struct _BOOTDISK_INFORMATION_LITE {
-  ULONG NumberEntries;
-  LOADER_PARTITION_INFORMATION_EX Entries[1];
-} BOOTDISK_INFORMATION_LITE, *PBOOTDISK_INFORMATION_LITE;
-
-#else
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-typedef struct _BOOTDISK_INFORMATION_LITE {
-  ULONG BootDeviceSignature;
-  ULONG SystemDeviceSignature;
-  GUID BootDeviceGuid;
-  GUID SystemDeviceGuid;
-  BOOLEAN BootDeviceIsGpt;
-  BOOLEAN SystemDeviceIsGpt;
-} BOOTDISK_INFORMATION_LITE, *PBOOTDISK_INFORMATION_LITE;
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#include <pshpack1.h>
-
-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;
-
-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;
-
-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;
-
-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;
-
-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;
-
-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;
-
-#include <poppack.h>
-
-/* CM_EISA_FUNCTION_INFORMATION.FunctionFlags */
-
-#define EISA_FUNCTION_ENABLED           0x80
-#define EISA_FREE_FORM_DATA             0x40
-#define EISA_HAS_PORT_INIT_ENTRY        0x20
-#define EISA_HAS_PORT_RANGE             0x10
-#define EISA_HAS_DMA_ENTRY              0x08
-#define EISA_HAS_IRQ_ENTRY              0x04
-#define EISA_HAS_MEMORY_ENTRY           0x02
-#define EISA_HAS_TYPE_ENTRY             0x01
-#define EISA_HAS_INFORMATION \
-  (EISA_HAS_PORT_RANGE + EISA_HAS_DMA_ENTRY + EISA_HAS_IRQ_ENTRY \
-  + EISA_HAS_MEMORY_ENTRY + EISA_HAS_TYPE_ENTRY)
-
-#define EISA_MORE_ENTRIES               0x80
-#define EISA_SYSTEM_MEMORY              0x00
-#define EISA_MEMORY_TYPE_RAM            0x01
-
-/* CM_EISA_SLOT_INFORMATION.ReturnCode */
-
-#define EISA_INVALID_SLOT               0x80
-#define EISA_INVALID_FUNCTION           0x81
-#define EISA_INVALID_CONFIGURATION      0x82
-#define EISA_EMPTY_SLOT                 0x83
-#define EISA_INVALID_BIOS_CALL          0x86
-
-/*
-** Plug and Play structures
-*/
-
-typedef VOID
-(NTAPI *PINTERFACE_REFERENCE)(
-  PVOID Context);
-
-typedef VOID
-(NTAPI *PINTERFACE_DEREFERENCE)(
-  PVOID Context);
-
-typedef BOOLEAN
-(NTAPI TRANSLATE_BUS_ADDRESS)(
-  IN PVOID Context,
-  IN PHYSICAL_ADDRESS BusAddress,
-  IN ULONG Length,
-  IN OUT PULONG AddressSpace,
-  OUT PPHYSICAL_ADDRESS  TranslatedAddress);
-typedef TRANSLATE_BUS_ADDRESS *PTRANSLATE_BUS_ADDRESS;
-
-typedef struct _DMA_ADAPTER*
-(NTAPI GET_DMA_ADAPTER)(
-  IN PVOID Context,
-  IN struct _DEVICE_DESCRIPTION *DeviceDescriptor,
-  OUT PULONG NumberOfMapRegisters);
-typedef GET_DMA_ADAPTER *PGET_DMA_ADAPTER;
-
-typedef ULONG
-(NTAPI GET_SET_DEVICE_DATA)(
-  IN PVOID Context,
-  IN ULONG DataType,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-typedef GET_SET_DEVICE_DATA *PGET_SET_DEVICE_DATA;
-
-typedef enum _DEVICE_INSTALL_STATE {
-  InstallStateInstalled,
-  InstallStateNeedsReinstall,
-  InstallStateFailedInstall,
-  InstallStateFinishInstall
-} DEVICE_INSTALL_STATE, *PDEVICE_INSTALL_STATE;
-
-typedef struct _LEGACY_BUS_INFORMATION {
-  GUID BusTypeGuid;
-  INTERFACE_TYPE LegacyBusType;
-  ULONG BusNumber;
-} LEGACY_BUS_INFORMATION, *PLEGACY_BUS_INFORMATION;
-
-typedef enum _DEVICE_REMOVAL_POLICY {
-  RemovalPolicyExpectNoRemoval = 1,
-  RemovalPolicyExpectOrderlyRemoval = 2,
-  RemovalPolicyExpectSurpriseRemoval = 3
-} DEVICE_REMOVAL_POLICY, *PDEVICE_REMOVAL_POLICY;
-
-typedef VOID
-(NTAPI*PREENUMERATE_SELF)(
-  IN PVOID Context);
-
-typedef struct _REENUMERATE_SELF_INTERFACE_STANDARD {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PREENUMERATE_SELF SurpriseRemoveAndReenumerateSelf;
-} REENUMERATE_SELF_INTERFACE_STANDARD, *PREENUMERATE_SELF_INTERFACE_STANDARD;
-
-typedef VOID
-(NTAPI *PIO_DEVICE_EJECT_CALLBACK)(
-  IN NTSTATUS Status,
-  IN OUT PVOID Context OPTIONAL);
-
-#define PCI_DEVICE_PRESENT_INTERFACE_VERSION     1
-
-/* PCI_DEVICE_PRESENCE_PARAMETERS.Flags */
-#define PCI_USE_SUBSYSTEM_IDS   0x00000001
-#define PCI_USE_REVISION        0x00000002
-#define PCI_USE_VENDEV_IDS      0x00000004
-#define PCI_USE_CLASS_SUBCLASS  0x00000008
-#define PCI_USE_PROGIF          0x00000010
-#define PCI_USE_LOCAL_BUS       0x00000020
-#define PCI_USE_LOCAL_DEVICE    0x00000040
-
-typedef struct _PCI_DEVICE_PRESENCE_PARAMETERS {
-  ULONG Size;
-  ULONG Flags;
-  USHORT VendorID;
-  USHORT DeviceID;
-  UCHAR RevisionID;
-  USHORT SubVendorID;
-  USHORT SubSystemID;
-  UCHAR BaseClass;
-  UCHAR SubClass;
-  UCHAR ProgIf;
-} PCI_DEVICE_PRESENCE_PARAMETERS, *PPCI_DEVICE_PRESENCE_PARAMETERS;
-
-typedef BOOLEAN
-(NTAPI PCI_IS_DEVICE_PRESENT)(
-  IN USHORT VendorID,
-  IN USHORT DeviceID,
-  IN UCHAR RevisionID,
-  IN USHORT SubVendorID,
-  IN USHORT SubSystemID,
-  IN ULONG Flags);
-typedef PCI_IS_DEVICE_PRESENT *PPCI_IS_DEVICE_PRESENT;
-
-typedef BOOLEAN
-(NTAPI PCI_IS_DEVICE_PRESENT_EX)(
-  IN PVOID Context,
-  IN PPCI_DEVICE_PRESENCE_PARAMETERS Parameters);
-typedef PCI_IS_DEVICE_PRESENT_EX *PPCI_IS_DEVICE_PRESENT_EX;
-
-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;
-
-typedef struct _PCI_DEVICE_PRESENT_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_IS_DEVICE_PRESENT IsDevicePresent;
-  PPCI_IS_DEVICE_PRESENT_EX IsDevicePresentEx;
-} PCI_DEVICE_PRESENT_INTERFACE, *PPCI_DEVICE_PRESENT_INTERFACE;
-
-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 NoDisplayInUI:1;
-  ULONG Reserved:14;
-  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;
-
-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;
-
-typedef struct _HWPROFILE_CHANGE_NOTIFICATION {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
-} HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION;
-
-#undef INTERFACE
-
-typedef struct _INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-} INTERFACE, *PINTERFACE;
-
-typedef struct _PLUGPLAY_NOTIFICATION_HEADER {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
-} PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER;
-
-typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE;
-
-/* PNP_DEVICE_STATE */
-
-#define PNP_DEVICE_DISABLED                      0x00000001
-#define PNP_DEVICE_DONT_DISPLAY_IN_UI            0x00000002
-#define PNP_DEVICE_FAILED                        0x00000004
-#define PNP_DEVICE_REMOVED                       0x00000008
-#define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010
-#define PNP_DEVICE_NOT_DISABLEABLE               0x00000020
-
-typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
-  struct _FILE_OBJECT *FileObject;
-  LONG NameBufferOffset;
-  UCHAR CustomDataBuffer[1];
-} TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION;
-
-typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION {
-  USHORT Version;
-  USHORT Size;
-  GUID Event;
-  struct _FILE_OBJECT *FileObject;
-} TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#include <devpropdef.h>
-#define PLUGPLAY_PROPERTY_PERSISTENT   0x00000001
-#endif
-
-#define PNP_REPLACE_NO_MAP             MAXLONGLONG
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_MAP_MEMORY)(
-  IN PHYSICAL_ADDRESS TargetPhysicalAddress,
-  IN PHYSICAL_ADDRESS SparePhysicalAddress,
-  IN OUT PLARGE_INTEGER NumberOfBytes,
-  OUT PVOID *TargetAddress,
-  OUT PVOID *SpareAddress);
-
-typedef struct _PNP_REPLACE_MEMORY_LIST {
-  ULONG AllocatedCount;
-  ULONG Count;
-  ULONGLONG TotalLength;
-  struct {
-    PHYSICAL_ADDRESS Address;
-    ULONGLONG Length;
-  } Ranges[ANYSIZE_ARRAY];
-} PNP_REPLACE_MEMORY_LIST, *PPNP_REPLACE_MEMORY_LIST;
-
-typedef struct _PNP_REPLACE_PROCESSOR_LIST {
-  PKAFFINITY Affinity;
-  ULONG GroupCount;
-  ULONG AllocatedCount;
-  ULONG Count;
-  ULONG ApicIds[ANYSIZE_ARRAY];
-} PNP_REPLACE_PROCESSOR_LIST, *PPNP_REPLACE_PROCESSOR_LIST;
-
-typedef struct _PNP_REPLACE_PROCESSOR_LIST_V1 {
-  KAFFINITY AffinityMask;
-  ULONG AllocatedCount;
-  ULONG Count;
-  ULONG ApicIds[ANYSIZE_ARRAY];
-} PNP_REPLACE_PROCESSOR_LIST_V1, *PPNP_REPLACE_PROCESSOR_LIST_V1;
-
-#define PNP_REPLACE_PARAMETERS_VERSION           2
-
-typedef struct _PNP_REPLACE_PARAMETERS {
-  ULONG Size;
-  ULONG Version;
-  ULONG64 Target;
-  ULONG64 Spare;
-  PPNP_REPLACE_PROCESSOR_LIST TargetProcessors;
-  PPNP_REPLACE_PROCESSOR_LIST SpareProcessors;
-  PPNP_REPLACE_MEMORY_LIST TargetMemory;
-  PPNP_REPLACE_MEMORY_LIST SpareMemory;
-  PREPLACE_MAP_MEMORY MapMemory;
-} PNP_REPLACE_PARAMETERS, *PPNP_REPLACE_PARAMETERS;
-
-typedef VOID
-(NTAPI *PREPLACE_UNLOAD)(
-  VOID);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_BEGIN)(
-  IN PPNP_REPLACE_PARAMETERS Parameters,
-  OUT PVOID *Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_END)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_MIRROR_PHYSICAL_MEMORY)(
-  IN PVOID Context,
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN LARGE_INTEGER ByteCount);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_SET_PROCESSOR_ID)(
-  IN PVOID Context,
-  IN ULONG ApicId,
-  IN BOOLEAN Target);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_SWAP)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_INITIATE_HARDWARE_MIRROR)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_MIRROR_PLATFORM_MEMORY)(
-  IN PVOID Context);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_GET_MEMORY_DESTINATION)(
-  IN PVOID Context,
-  IN PHYSICAL_ADDRESS SourceAddress,
-  OUT PPHYSICAL_ADDRESS DestinationAddress);
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE)(
-  IN PVOID Context,
-  IN BOOLEAN Enable);
-
-#define PNP_REPLACE_DRIVER_INTERFACE_VERSION      1
-#define PNP_REPLACE_DRIVER_INTERFACE_MINIMUM_SIZE \
-             FIELD_OFFSET(PNP_REPLACE_DRIVER_INTERFACE, InitiateHardwareMirror)
-
-#define PNP_REPLACE_MEMORY_SUPPORTED             0x0001
-#define PNP_REPLACE_PROCESSOR_SUPPORTED          0x0002
-#define PNP_REPLACE_HARDWARE_MEMORY_MIRRORING    0x0004
-#define PNP_REPLACE_HARDWARE_PAGE_COPY           0x0008
-#define PNP_REPLACE_HARDWARE_QUIESCE             0x0010
-
-typedef struct _PNP_REPLACE_DRIVER_INTERFACE {
-  ULONG Size;
-  ULONG Version;
-  ULONG Flags;
-  PREPLACE_UNLOAD Unload;
-  PREPLACE_BEGIN BeginReplace;
-  PREPLACE_END EndReplace;
-  PREPLACE_MIRROR_PHYSICAL_MEMORY MirrorPhysicalMemory;
-  PREPLACE_SET_PROCESSOR_ID SetProcessorId;
-  PREPLACE_SWAP Swap;
-  PREPLACE_INITIATE_HARDWARE_MIRROR InitiateHardwareMirror;
-  PREPLACE_MIRROR_PLATFORM_MEMORY MirrorPlatformMemory;
-  PREPLACE_GET_MEMORY_DESTINATION GetMemoryDestination;
-  PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE EnableDisableHardwareQuiesce;
-} PNP_REPLACE_DRIVER_INTERFACE, *PPNP_REPLACE_DRIVER_INTERFACE;
-
-typedef NTSTATUS
-(NTAPI *PREPLACE_DRIVER_INIT)(
-  IN OUT PPNP_REPLACE_DRIVER_INTERFACE Interface,
-  IN PVOID Unused);
-
-typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
-  DeviceUsageTypeUndefined,
-  DeviceUsageTypePaging,
-  DeviceUsageTypeHibernation,
-  DeviceUsageTypeDumpFile
-} DEVICE_USAGE_NOTIFICATION_TYPE;
-
-typedef struct _POWER_SEQUENCE {
-  ULONG SequenceD1;
-  ULONG SequenceD2;
-  ULONG SequenceD3;
-} POWER_SEQUENCE, *PPOWER_SEQUENCE;
-
-typedef enum {
-  DevicePropertyDeviceDescription = 0x0,
-  DevicePropertyHardwareID = 0x1,
-  DevicePropertyCompatibleIDs = 0x2,
-  DevicePropertyBootConfiguration = 0x3,
-  DevicePropertyBootConfigurationTranslated = 0x4,
-  DevicePropertyClassName = 0x5,
-  DevicePropertyClassGuid = 0x6,
-  DevicePropertyDriverKeyName = 0x7,
-  DevicePropertyManufacturer = 0x8,
-  DevicePropertyFriendlyName = 0x9,
-  DevicePropertyLocationInformation = 0xa,
-  DevicePropertyPhysicalDeviceObjectName = 0xb,
-  DevicePropertyBusTypeGuid = 0xc,
-  DevicePropertyLegacyBusType = 0xd,
-  DevicePropertyBusNumber = 0xe,
-  DevicePropertyEnumeratorName = 0xf,
-  DevicePropertyAddress = 0x10,
-  DevicePropertyUINumber = 0x11,
-  DevicePropertyInstallState = 0x12,
-  DevicePropertyRemovalPolicy = 0x13,
-  DevicePropertyResourceRequirements = 0x14,
-  DevicePropertyAllocatedResources = 0x15,
-  DevicePropertyContainerID = 0x16
-} DEVICE_REGISTRY_PROPERTY;
-
-typedef enum _IO_NOTIFICATION_EVENT_CATEGORY {
-  EventCategoryReserved,
-  EventCategoryHardwareProfileChange,
-  EventCategoryDeviceInterfaceChange,
-  EventCategoryTargetDeviceChange
-} IO_NOTIFICATION_EVENT_CATEGORY;
-
-typedef enum _IO_PRIORITY_HINT {
-  IoPriorityVeryLow = 0,
-  IoPriorityLow,
-  IoPriorityNormal,
-  IoPriorityHigh,
-  IoPriorityCritical,
-  MaxIoPriorityTypes
-} IO_PRIORITY_HINT;
-
-#define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES    0x00000001
-
-typedef NTSTATUS
-(NTAPI DRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
-  IN PVOID NotificationStructure,
-  IN PVOID Context);
-typedef DRIVER_NOTIFICATION_CALLBACK_ROUTINE *PDRIVER_NOTIFICATION_CALLBACK_ROUTINE;
-
-typedef VOID
-(NTAPI DEVICE_CHANGE_COMPLETE_CALLBACK)(
-  IN PVOID Context);
-typedef DEVICE_CHANGE_COMPLETE_CALLBACK *PDEVICE_CHANGE_COMPLETE_CALLBACK;
-
-typedef enum _FILE_INFORMATION_CLASS {
-  FileDirectoryInformation = 1,
-  FileFullDirectoryInformation,
-  FileBothDirectoryInformation,
-  FileBasicInformation,
-  FileStandardInformation,
-  FileInternalInformation,
-  FileEaInformation,
-  FileAccessInformation,
-  FileNameInformation,
-  FileRenameInformation,
-  FileLinkInformation,
-  FileNamesInformation,
-  FileDispositionInformation,
-  FilePositionInformation,
-  FileFullEaInformation,
-  FileModeInformation,
-  FileAlignmentInformation,
-  FileAllInformation,
-  FileAllocationInformation,
-  FileEndOfFileInformation,
-  FileAlternateNameInformation,
-  FileStreamInformation,
-  FilePipeInformation,
-  FilePipeLocalInformation,
-  FilePipeRemoteInformation,
-  FileMailslotQueryInformation,
-  FileMailslotSetInformation,
-  FileCompressionInformation,
-  FileObjectIdInformation,
-  FileCompletionInformation,
-  FileMoveClusterInformation,
-  FileQuotaInformation,
-  FileReparsePointInformation,
-  FileNetworkOpenInformation,
-  FileAttributeTagInformation,
-  FileTrackingInformation,
-  FileIdBothDirectoryInformation,
-  FileIdFullDirectoryInformation,
-  FileValidDataLengthInformation,
-  FileShortNameInformation,
-  FileIoCompletionNotificationInformation,
-  FileIoStatusBlockRangeInformation,
-  FileIoPriorityHintInformation,
-  FileSfioReserveInformation,
-  FileSfioVolumeInformation,
-  FileHardLinkInformation,
-  FileProcessIdsUsingFileInformation,
-  FileNormalizedNameInformation,
-  FileNetworkPhysicalNameInformation,
-  FileIdGlobalTxDirectoryInformation,
-  FileIsRemoteDeviceInformation,
-  FileAttributeCacheInformation,
-  FileNumaNodeInformation,
-  FileStandardLinkInformation,
-  FileRemoteProtocolInformation,
-  FileMaximumInformation
-} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
-
-typedef struct _FILE_POSITION_INFORMATION {
-  LARGE_INTEGER CurrentByteOffset;
-} FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
-
-typedef struct _FILE_BASIC_INFORMATION {
-  LARGE_INTEGER CreationTime;
-  LARGE_INTEGER LastAccessTime;
-  LARGE_INTEGER LastWriteTime;
-  LARGE_INTEGER ChangeTime;
-  ULONG FileAttributes;
-} FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;
-
-typedef struct _FILE_IO_PRIORITY_HINT_INFORMATION {
-  IO_PRIORITY_HINT PriorityHint;
-} FILE_IO_PRIORITY_HINT_INFORMATION, *PFILE_IO_PRIORITY_HINT_INFORMATION;
-
-typedef struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION {
-  ULONG Flags;
-} FILE_IO_COMPLETION_NOTIFICATION_INFORMATION, *PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION;
-
-typedef struct _FILE_IOSTATUSBLOCK_RANGE_INFORMATION {
-  PUCHAR IoStatusBlockRange;
-  ULONG Length;
-} FILE_IOSTATUSBLOCK_RANGE_INFORMATION, *PFILE_IOSTATUSBLOCK_RANGE_INFORMATION;
-
-typedef struct _FILE_IS_REMOTE_DEVICE_INFORMATION {
-  BOOLEAN IsRemote;
-} FILE_IS_REMOTE_DEVICE_INFORMATION, *PFILE_IS_REMOTE_DEVICE_INFORMATION;
-
-typedef struct _FILE_NUMA_NODE_INFORMATION {
-  USHORT NodeNumber;
-} FILE_NUMA_NODE_INFORMATION, *PFILE_NUMA_NODE_INFORMATION;
-
-typedef struct _FILE_PROCESS_IDS_USING_FILE_INFORMATION {
-  ULONG NumberOfProcessIdsInList;
-  ULONG_PTR ProcessIdList[1];
-} FILE_PROCESS_IDS_USING_FILE_INFORMATION, *PFILE_PROCESS_IDS_USING_FILE_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_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 enum _FSINFOCLASS {
-  FileFsVolumeInformation = 1,
-  FileFsLabelInformation,
-  FileFsSizeInformation,
-  FileFsDeviceInformation,
-  FileFsAttributeInformation,
-  FileFsControlInformation,
-  FileFsFullSizeInformation,
-  FileFsObjectIdInformation,
-  FileFsDriverPathInformation,
-  FileFsVolumeFlagsInformation,
-  FileFsMaximumInformation
-} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
-
-typedef struct _FILE_FS_DEVICE_INFORMATION {
-  DEVICE_TYPE DeviceType;
-  ULONG Characteristics;
-} FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
-
-typedef struct _FILE_FULL_EA_INFORMATION {
-  ULONG NextEntryOffset;
-  UCHAR Flags;
-  UCHAR EaNameLength;
-  USHORT EaValueLength;
-  CHAR EaName[1];
-} FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
-
-typedef struct _FILE_SFIO_RESERVE_INFORMATION {
-  ULONG RequestsPerPeriod;
-  ULONG Period;
-  BOOLEAN RetryFailures;
-  BOOLEAN Discardable;
-  ULONG RequestSize;
-  ULONG NumOutstandingRequests;
-} FILE_SFIO_RESERVE_INFORMATION, *PFILE_SFIO_RESERVE_INFORMATION;
-
-typedef struct _FILE_SFIO_VOLUME_INFORMATION {
-  ULONG MaximumRequestsPerPeriod;
-  ULONG MinimumPeriod;
-  ULONG MinimumTransferSize;
-} FILE_SFIO_VOLUME_INFORMATION, *PFILE_SFIO_VOLUME_INFORMATION;
-
-#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS     0x1
-#define FILE_SKIP_SET_EVENT_ON_HANDLE            0x2
-#define FILE_SKIP_SET_USER_EVENT_ON_FAST_IO      0x4
-
-#define FM_LOCK_BIT             (0x1)
-#define FM_LOCK_BIT_V           (0x0)
-#define FM_LOCK_WAITER_WOKEN    (0x2)
-#define FM_LOCK_WAITER_INC      (0x4)
-
-typedef BOOLEAN
-(NTAPI FAST_IO_CHECK_IF_POSSIBLE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  IN BOOLEAN CheckForReadOperation,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_CHECK_IF_POSSIBLE *PFAST_IO_CHECK_IF_POSSIBLE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_READ)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  OUT PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_READ *PFAST_IO_READ;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN BOOLEAN Wait,
-  IN ULONG LockKey,
-  IN PVOID Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_WRITE *PFAST_IO_WRITE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_BASIC_INFO)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  OUT PFILE_BASIC_INFORMATION Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_BASIC_INFO *PFAST_IO_QUERY_BASIC_INFO;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_STANDARD_INFO)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  OUT PFILE_STANDARD_INFORMATION Buffer,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_STANDARD_INFO *PFAST_IO_QUERY_STANDARD_INFO;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_LOCK)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PLARGE_INTEGER Length,
-  PEPROCESS ProcessId,
-  ULONG Key,
-  BOOLEAN FailImmediately,
-  BOOLEAN ExclusiveLock,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_LOCK *PFAST_IO_LOCK;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_UNLOCK_SINGLE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PLARGE_INTEGER Length,
-  PEPROCESS ProcessId,
-  ULONG Key,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_UNLOCK_SINGLE *PFAST_IO_UNLOCK_SINGLE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_UNLOCK_ALL)(
-  IN struct _FILE_OBJECT *FileObject,
-  PEPROCESS ProcessId,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_UNLOCK_ALL *PFAST_IO_UNLOCK_ALL;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_UNLOCK_ALL_BY_KEY)(
-  IN struct _FILE_OBJECT *FileObject,
-  PVOID ProcessId,
-  ULONG Key,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_UNLOCK_ALL_BY_KEY *PFAST_IO_UNLOCK_ALL_BY_KEY;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_DEVICE_CONTROL)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength,
-  IN ULONG IoControlCode,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_DEVICE_CONTROL *PFAST_IO_DEVICE_CONTROL;
-
-typedef VOID
-(NTAPI FAST_IO_ACQUIRE_FILE)(
-  IN struct _FILE_OBJECT *FileObject);
-typedef FAST_IO_ACQUIRE_FILE *PFAST_IO_ACQUIRE_FILE;
-
-typedef VOID
-(NTAPI FAST_IO_RELEASE_FILE)(
-  IN struct _FILE_OBJECT *FileObject);
-typedef FAST_IO_RELEASE_FILE *PFAST_IO_RELEASE_FILE;
-
-typedef VOID
-(NTAPI FAST_IO_DETACH_DEVICE)(
-  IN struct _DEVICE_OBJECT *SourceDevice,
-  IN struct _DEVICE_OBJECT *TargetDevice);
-typedef FAST_IO_DETACH_DEVICE *PFAST_IO_DETACH_DEVICE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_NETWORK_OPEN_INFO)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN BOOLEAN Wait,
-  OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer,
-  OUT struct _IO_STATUS_BLOCK *IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_NETWORK_OPEN_INFO *PFAST_IO_QUERY_NETWORK_OPEN_INFO;
-
-typedef NTSTATUS
-(NTAPI FAST_IO_ACQUIRE_FOR_MOD_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER EndingOffset,
-  OUT struct _ERESOURCE **ResourceToRelease,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_ACQUIRE_FOR_MOD_WRITE *PFAST_IO_ACQUIRE_FOR_MOD_WRITE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_MDL_READ)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_READ *PFAST_IO_MDL_READ;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_MDL_READ_COMPLETE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PMDL MdlChain,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_READ_COMPLETE *PFAST_IO_MDL_READ_COMPLETE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_PREPARE_MDL_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_PREPARE_MDL_WRITE *PFAST_IO_PREPARE_MDL_WRITE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_MDL_WRITE_COMPLETE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PMDL MdlChain,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_WRITE_COMPLETE *PFAST_IO_MDL_WRITE_COMPLETE;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_READ_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  OUT PVOID Buffer,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
-  IN ULONG CompressedDataInfoLength,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_READ_COMPRESSED *PFAST_IO_READ_COMPRESSED;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_WRITE_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN ULONG Length,
-  IN ULONG LockKey,
-  IN PVOID Buffer,
-  OUT PMDL *MdlChain,
-  OUT PIO_STATUS_BLOCK IoStatus,
-  IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
-  IN ULONG CompressedDataInfoLength,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_WRITE_COMPRESSED *PFAST_IO_WRITE_COMPRESSED;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_MDL_READ_COMPLETE_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PMDL MdlChain,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_READ_COMPLETE_COMPRESSED *PFAST_IO_MDL_READ_COMPLETE_COMPRESSED;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN PLARGE_INTEGER FileOffset,
-  IN PMDL MdlChain,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED *PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED;
-
-typedef BOOLEAN
-(NTAPI FAST_IO_QUERY_OPEN)(
-  IN struct _IRP *Irp,
-  OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_QUERY_OPEN *PFAST_IO_QUERY_OPEN;
-
-typedef NTSTATUS
-(NTAPI FAST_IO_RELEASE_FOR_MOD_WRITE)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN struct _ERESOURCE *ResourceToRelease,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_RELEASE_FOR_MOD_WRITE *PFAST_IO_RELEASE_FOR_MOD_WRITE;
-
-typedef NTSTATUS
-(NTAPI FAST_IO_ACQUIRE_FOR_CCFLUSH)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_ACQUIRE_FOR_CCFLUSH *PFAST_IO_ACQUIRE_FOR_CCFLUSH;
-
-typedef NTSTATUS
-(NTAPI FAST_IO_RELEASE_FOR_CCFLUSH)(
-  IN struct _FILE_OBJECT *FileObject,
-  IN struct _DEVICE_OBJECT *DeviceObject);
-typedef FAST_IO_RELEASE_FOR_CCFLUSH *PFAST_IO_RELEASE_FOR_CCFLUSH;
-
-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;
-
-typedef struct _SECTION_OBJECT_POINTERS {
-  PVOID DataSectionObject;
-  PVOID SharedCacheMap;
-  PVOID ImageSectionObject;
-} SECTION_OBJECT_POINTERS, *PSECTION_OBJECT_POINTERS;
-
-typedef struct _IO_COMPLETION_CONTEXT {
-  PVOID Port;
-  PVOID Key;
-} IO_COMPLETION_CONTEXT, *PIO_COMPLETION_CONTEXT;
-
-/* FILE_OBJECT.Flags */
-#define FO_FILE_OPEN                 0x00000001
-#define FO_SYNCHRONOUS_IO            0x00000002
-#define FO_ALERTABLE_IO              0x00000004
-#define FO_NO_INTERMEDIATE_BUFFERING 0x00000008
-#define FO_WRITE_THROUGH             0x00000010
-#define FO_SEQUENTIAL_ONLY           0x00000020
-#define FO_CACHE_SUPPORTED           0x00000040
-#define FO_NAMED_PIPE                0x00000080
-#define FO_STREAM_FILE               0x00000100
-#define FO_MAILSLOT                  0x00000200
-#define FO_GENERATE_AUDIT_ON_CLOSE   0x00000400
-#define FO_QUEUE_IRP_TO_THREAD       0x00000400
-#define FO_DIRECT_DEVICE_OPEN        0x00000800
-#define FO_FILE_MODIFIED             0x00001000
-#define FO_FILE_SIZE_CHANGED         0x00002000
-#define FO_CLEANUP_COMPLETE          0x00004000
-#define FO_TEMPORARY_FILE            0x00008000
-#define FO_DELETE_ON_CLOSE           0x00010000
-#define FO_OPENED_CASE_SENSITIVE     0x00020000
-#define FO_HANDLE_CREATED            0x00040000
-#define FO_FILE_FAST_IO_READ         0x00080000
-#define FO_RANDOM_ACCESS             0x00100000
-#define FO_FILE_OPEN_CANCELLED       0x00200000
-#define FO_VOLUME_OPEN               0x00400000
-#define FO_REMOTE_ORIGIN             0x01000000
-#define FO_DISALLOW_EXCLUSIVE        0x02000000
-#define FO_SKIP_COMPLETION_PORT      0x02000000
-#define FO_SKIP_SET_EVENT            0x04000000
-#define FO_SKIP_SET_FAST_IO          0x08000000
-#define FO_FLAGS_VALID_ONLY_DURING_CREATE FO_DISALLOW_EXCLUSIVE
-
-/* VPB.Flags */
-#define VPB_MOUNTED                       0x0001
-#define VPB_LOCKED                        0x0002
-#define VPB_PERSISTENT                    0x0004
-#define VPB_REMOVE_PENDING                0x0008
-#define VPB_RAW_MOUNT                     0x0010
-#define VPB_DIRECT_WRITES_ALLOWED         0x0020
-
-/* IRP.Flags */
-
-#define SL_FORCE_ACCESS_CHECK             0x01
-#define SL_OPEN_PAGING_FILE               0x02
-#define SL_OPEN_TARGET_DIRECTORY          0x04
-#define SL_STOP_ON_SYMLINK                0x08
-#define SL_CASE_SENSITIVE                 0x80
-
-#define SL_KEY_SPECIFIED                  0x01
-#define SL_OVERRIDE_VERIFY_VOLUME         0x02
-#define SL_WRITE_THROUGH                  0x04
-#define SL_FT_SEQUENTIAL_WRITE            0x08
-#define SL_FORCE_DIRECT_WRITE             0x10
-#define SL_REALTIME_STREAM                0x20
-
-#define SL_READ_ACCESS_GRANTED            0x01
-#define SL_WRITE_ACCESS_GRANTED           0x04
-
-#define SL_FAIL_IMMEDIATELY               0x01
-#define SL_EXCLUSIVE_LOCK                 0x02
-
-#define SL_RESTART_SCAN                   0x01
-#define SL_RETURN_SINGLE_ENTRY            0x02
-#define SL_INDEX_SPECIFIED                0x04
-
-#define SL_WATCH_TREE                     0x01
-
-#define SL_ALLOW_RAW_MOUNT                0x01
-
-#define CTL_CODE(DeviceType, Function, Method, Access) \
-  (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
-
-#define DEVICE_TYPE_FROM_CTL_CODE(ctl) (((ULONG) (ctl & 0xffff0000)) >> 16)
-
-#define METHOD_FROM_CTL_CODE(ctrlCode)          ((ULONG)(ctrlCode & 3))
-
-#define IRP_NOCACHE                     0x00000001
-#define IRP_PAGING_IO                   0x00000002
-#define IRP_MOUNT_COMPLETION            0x00000002
-#define IRP_SYNCHRONOUS_API             0x00000004
-#define IRP_ASSOCIATED_IRP              0x00000008
-#define IRP_BUFFERED_IO                 0x00000010
-#define IRP_DEALLOCATE_BUFFER           0x00000020
-#define IRP_INPUT_OPERATION             0x00000040
-#define IRP_SYNCHRONOUS_PAGING_IO       0x00000040
-#define IRP_CREATE_OPERATION            0x00000080
-#define IRP_READ_OPERATION              0x00000100
-#define IRP_WRITE_OPERATION             0x00000200
-#define IRP_CLOSE_OPERATION             0x00000400
-#define IRP_DEFER_IO_COMPLETION         0x00000800
-#define IRP_OB_QUERY_NAME               0x00001000
-#define IRP_HOLD_DEVICE_QUEUE           0x00002000
-
-#define IRP_QUOTA_CHARGED                 0x01
-#define IRP_ALLOCATED_MUST_SUCCEED        0x02
-#define IRP_ALLOCATED_FIXED_SIZE          0x04
-#define IRP_LOOKASIDE_ALLOCATION          0x08
-
-/*
-** IRP function codes
-*/
-
-#define IRP_MJ_CREATE                     0x00
-#define IRP_MJ_CREATE_NAMED_PIPE          0x01
-#define IRP_MJ_CLOSE                      0x02
-#define IRP_MJ_READ                       0x03
-#define IRP_MJ_WRITE                      0x04
-#define IRP_MJ_QUERY_INFORMATION          0x05
-#define IRP_MJ_SET_INFORMATION            0x06
-#define IRP_MJ_QUERY_EA                   0x07
-#define IRP_MJ_SET_EA                     0x08
-#define IRP_MJ_FLUSH_BUFFERS              0x09
-#define IRP_MJ_QUERY_VOLUME_INFORMATION   0x0a
-#define IRP_MJ_SET_VOLUME_INFORMATION     0x0b
-#define IRP_MJ_DIRECTORY_CONTROL          0x0c
-#define IRP_MJ_FILE_SYSTEM_CONTROL        0x0d
-#define IRP_MJ_DEVICE_CONTROL             0x0e
-#define IRP_MJ_INTERNAL_DEVICE_CONTROL    0x0f
-#define IRP_MJ_SCSI                       0x0f
-#define IRP_MJ_SHUTDOWN                   0x10
-#define IRP_MJ_LOCK_CONTROL               0x11
-#define IRP_MJ_CLEANUP                    0x12
-#define IRP_MJ_CREATE_MAILSLOT            0x13
-#define IRP_MJ_QUERY_SECURITY             0x14
-#define IRP_MJ_SET_SECURITY               0x15
-#define IRP_MJ_POWER                      0x16
-#define IRP_MJ_SYSTEM_CONTROL             0x17
-#define IRP_MJ_DEVICE_CHANGE              0x18
-#define IRP_MJ_QUERY_QUOTA                0x19
-#define IRP_MJ_SET_QUOTA                  0x1a
-#define IRP_MJ_PNP                        0x1b
-#define IRP_MJ_PNP_POWER                  0x1b
-#define IRP_MJ_MAXIMUM_FUNCTION           0x1b
-
-#define IRP_MN_SCSI_CLASS                 0x01
-
-#define IRP_MN_START_DEVICE               0x00
-#define IRP_MN_QUERY_REMOVE_DEVICE        0x01
-#define IRP_MN_REMOVE_DEVICE              0x02
-#define IRP_MN_CANCEL_REMOVE_DEVICE       0x03
-#define IRP_MN_STOP_DEVICE                0x04
-#define IRP_MN_QUERY_STOP_DEVICE          0x05
-#define IRP_MN_CANCEL_STOP_DEVICE         0x06
-
-#define IRP_MN_QUERY_DEVICE_RELATIONS       0x07
-#define IRP_MN_QUERY_INTERFACE              0x08
-#define IRP_MN_QUERY_CAPABILITIES           0x09
-#define IRP_MN_QUERY_RESOURCES              0x0A
-#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS  0x0B
-#define IRP_MN_QUERY_DEVICE_TEXT            0x0C
-#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D
-
-#define IRP_MN_READ_CONFIG                  0x0F
-#define IRP_MN_WRITE_CONFIG                 0x10
-#define IRP_MN_EJECT                        0x11
-#define IRP_MN_SET_LOCK                     0x12
-#define IRP_MN_QUERY_ID                     0x13
-#define IRP_MN_QUERY_PNP_DEVICE_STATE       0x14
-#define IRP_MN_QUERY_BUS_INFORMATION        0x15
-#define IRP_MN_DEVICE_USAGE_NOTIFICATION    0x16
-#define IRP_MN_SURPRISE_REMOVAL             0x17
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-#define IRP_MN_DEVICE_ENUMERATED            0x19
-#endif
-
-#define IRP_MN_WAIT_WAKE                  0x00
-#define IRP_MN_POWER_SEQUENCE             0x01
-#define IRP_MN_SET_POWER                  0x02
-#define IRP_MN_QUERY_POWER                0x03
-
-#define IRP_MN_QUERY_ALL_DATA             0x00
-#define IRP_MN_QUERY_SINGLE_INSTANCE      0x01
-#define IRP_MN_CHANGE_SINGLE_INSTANCE     0x02
-#define IRP_MN_CHANGE_SINGLE_ITEM         0x03
-#define IRP_MN_ENABLE_EVENTS              0x04
-#define IRP_MN_DISABLE_EVENTS             0x05
-#define IRP_MN_ENABLE_COLLECTION          0x06
-#define IRP_MN_DISABLE_COLLECTION         0x07
-#define IRP_MN_REGINFO                    0x08
-#define IRP_MN_EXECUTE_METHOD             0x09
-
-#define IRP_MN_REGINFO_EX                 0x0b
-
-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;
-  volatile ULONG Waiters;
-  volatile ULONG Busy;
-  PVOID LastLock;
-  KEVENT Lock;
-  KEVENT Event;
-  volatile PIO_COMPLETION_CONTEXT CompletionContext;
-  KSPIN_LOCK IrpListLock;
-  LIST_ENTRY IrpList;
-  volatile PVOID FileObjectExtension;
-} FILE_OBJECT, *PFILE_OBJECT;
-
-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;
-
-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;
-
-#define ERROR_LOG_LIMIT_SIZE               240
-#define IO_ERROR_LOG_MESSAGE_HEADER_LENGTH (sizeof(IO_ERROR_LOG_MESSAGE) - \
-                                            sizeof(IO_ERROR_LOG_PACKET) + \
-                                            (sizeof(WCHAR) * 40))
-#define ERROR_LOG_MESSAGE_LIMIT_SIZE                                          \
-    (ERROR_LOG_LIMIT_SIZE + IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
-#define IO_ERROR_LOG_MESSAGE_LENGTH                                           \
-    ((PORT_MAXIMUM_MESSAGE_LENGTH > ERROR_LOG_MESSAGE_LIMIT_SIZE) ?           \
-        ERROR_LOG_MESSAGE_LIMIT_SIZE :                                        \
-        PORT_MAXIMUM_MESSAGE_LENGTH)
-#define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH -                 \
-                                IO_ERROR_LOG_MESSAGE_HEADER_LENGTH)
-
-#ifdef _WIN64
-#define PORT_MAXIMUM_MESSAGE_LENGTH    512
-#else
-#define PORT_MAXIMUM_MESSAGE_LENGTH    256
-#endif
-
-typedef enum _DMA_WIDTH {
-  Width8Bits,
-  Width16Bits,
-  Width32Bits,
-  MaximumDmaWidth
-} DMA_WIDTH, *PDMA_WIDTH;
-
-typedef enum _DMA_SPEED {
-  Compatible,
-  TypeA,
-  TypeB,
-  TypeC,
-  TypeF,
-  MaximumDmaSpeed
-} DMA_SPEED, *PDMA_SPEED;
-
-/* DEVICE_DESCRIPTION.Version */
-
-#define DEVICE_DESCRIPTION_VERSION        0x0000
-#define DEVICE_DESCRIPTION_VERSION1       0x0001
-#define DEVICE_DESCRIPTION_VERSION2       0x0002
-
-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;
-
-typedef enum _DEVICE_RELATION_TYPE {
-  BusRelations,
-  EjectionRelations,
-  PowerRelations,
-  RemovalRelations,
-  TargetDeviceRelation,
-  SingleBusRelations,
-  TransportRelations
-} DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE;
-
-typedef struct _DEVICE_RELATIONS {
-  ULONG Count;
-  PDEVICE_OBJECT Objects[1];
-} DEVICE_RELATIONS, *PDEVICE_RELATIONS;
-
-typedef struct _DEVOBJ_EXTENSION {
-  CSHORT Type;
-  USHORT Size;
-  PDEVICE_OBJECT DeviceObject;
-} DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION;
-
-typedef struct _SCATTER_GATHER_ELEMENT {
-  PHYSICAL_ADDRESS Address;
-  ULONG Length;
-  ULONG_PTR Reserved;
-} SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;
-
-#if defined(_MSC_EXTENSIONS)
-
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-#pragma warning(disable:4200)
-typedef struct _SCATTER_GATHER_LIST {
-  ULONG NumberOfElements;
-  ULONG_PTR Reserved;
-  SCATTER_GATHER_ELEMENT Elements[1];
-} SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
-
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#else
-#pragma warning(default:4200)
-#endif
-
-#else
-
-struct _SCATTER_GATHER_LIST;
-typedef struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
-
-#endif
-
-typedef NTSTATUS
-(NTAPI DRIVER_ADD_DEVICE)(
-  IN struct _DRIVER_OBJECT *DriverObject,
-  IN struct _DEVICE_OBJECT *PhysicalDeviceObject);
-typedef DRIVER_ADD_DEVICE *PDRIVER_ADD_DEVICE;
-
-typedef struct _DRIVER_EXTENSION {
-  struct _DRIVER_OBJECT *DriverObject;
-  PDRIVER_ADD_DEVICE AddDevice;
-  ULONG Count;
-  UNICODE_STRING ServiceKeyName;
-} DRIVER_EXTENSION, *PDRIVER_EXTENSION;
-
-#define DRVO_UNLOAD_INVOKED               0x00000001
-#define DRVO_LEGACY_DRIVER                0x00000002
-#define DRVO_BUILTIN_DRIVER               0x00000004
-
-typedef NTSTATUS
-(NTAPI DRIVER_INITIALIZE)(
-  IN struct _DRIVER_OBJECT *DriverObject,
-  IN PUNICODE_STRING RegistryPath);
-typedef DRIVER_INITIALIZE *PDRIVER_INITIALIZE;
-
-typedef VOID
-(NTAPI DRIVER_STARTIO)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp);
-typedef DRIVER_STARTIO *PDRIVER_STARTIO;
-
-typedef VOID
-(NTAPI DRIVER_UNLOAD)(
-  IN struct _DRIVER_OBJECT *DriverObject);
-typedef DRIVER_UNLOAD *PDRIVER_UNLOAD;
-
-typedef NTSTATUS
-(NTAPI DRIVER_DISPATCH)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp);
-typedef DRIVER_DISPATCH *PDRIVER_DISPATCH;
-
-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;
-  struct _FAST_IO_DISPATCH *FastIoDispatch;
-  PDRIVER_INITIALIZE DriverInit;
-  PDRIVER_STARTIO DriverStartIo;
-  PDRIVER_UNLOAD DriverUnload;
-  PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
-} DRIVER_OBJECT, *PDRIVER_OBJECT;
-
-typedef struct _DMA_ADAPTER {
-  USHORT Version;
-  USHORT Size;
-  struct _DMA_OPERATIONS* DmaOperations;
-} DMA_ADAPTER, *PDMA_ADAPTER;
-
-typedef VOID
-(NTAPI *PPUT_DMA_ADAPTER)(
-  IN PDMA_ADAPTER DmaAdapter);
-
-typedef PVOID
-(NTAPI *PALLOCATE_COMMON_BUFFER)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  OUT PPHYSICAL_ADDRESS LogicalAddress,
-  IN BOOLEAN CacheEnabled);
-
-typedef VOID
-(NTAPI *PFREE_COMMON_BUFFER)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN ULONG Length,
-  IN PHYSICAL_ADDRESS LogicalAddress,
-  IN PVOID VirtualAddress,
-  IN BOOLEAN CacheEnabled);
-
-typedef NTSTATUS
-(NTAPI *PALLOCATE_ADAPTER_CHANNEL)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN ULONG NumberOfMapRegisters,
-  IN PDRIVER_CONTROL ExecutionRoutine,
-  IN PVOID Context);
-
-typedef BOOLEAN
-(NTAPI *PFLUSH_ADAPTER_BUFFERS)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN BOOLEAN WriteToDevice);
-
-typedef VOID
-(NTAPI *PFREE_ADAPTER_CHANNEL)(
-  IN PDMA_ADAPTER DmaAdapter);
-
-typedef VOID
-(NTAPI *PFREE_MAP_REGISTERS)(
-  IN PDMA_ADAPTER DmaAdapter,
-  PVOID MapRegisterBase,
-  ULONG NumberOfMapRegisters);
-
-typedef PHYSICAL_ADDRESS
-(NTAPI *PMAP_TRANSFER)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl,
-  IN PVOID MapRegisterBase,
-  IN PVOID CurrentVa,
-  IN OUT PULONG Length,
-  IN BOOLEAN WriteToDevice);
-
-typedef ULONG
-(NTAPI *PGET_DMA_ALIGNMENT)(
-  IN PDMA_ADAPTER DmaAdapter);
-
-typedef ULONG
-(NTAPI *PREAD_DMA_COUNTER)(
-  IN PDMA_ADAPTER DmaAdapter);
-
-typedef VOID
-(NTAPI DRIVER_LIST_CONTROL)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN struct _SCATTER_GATHER_LIST *ScatterGather,
-  IN PVOID Context);
-typedef DRIVER_LIST_CONTROL *PDRIVER_LIST_CONTROL;
-
-typedef NTSTATUS
-(NTAPI *PGET_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PMDL Mdl,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN PDRIVER_LIST_CONTROL ExecutionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN WriteToDevice);
-
-typedef VOID
-(NTAPI *PPUT_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PSCATTER_GATHER_LIST ScatterGather,
-  IN BOOLEAN WriteToDevice);
-
-typedef NTSTATUS
-(NTAPI *PCALCULATE_SCATTER_GATHER_LIST_SIZE)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PMDL Mdl OPTIONAL,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  OUT PULONG ScatterGatherListSize,
-  OUT PULONG pNumberOfMapRegisters OPTIONAL);
-
-typedef NTSTATUS
-(NTAPI *PBUILD_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PMDL Mdl,
-  IN PVOID CurrentVa,
-  IN ULONG Length,
-  IN PDRIVER_LIST_CONTROL ExecutionRoutine,
-  IN PVOID Context,
-  IN BOOLEAN WriteToDevice,
-  IN PVOID ScatterGatherBuffer,
-  IN ULONG ScatterGatherLength);
-
-typedef NTSTATUS
-(NTAPI *PBUILD_MDL_FROM_SCATTER_GATHER_LIST)(
-  IN PDMA_ADAPTER DmaAdapter,
-  IN PSCATTER_GATHER_LIST ScatterGather,
-  IN PMDL OriginalMdl,
-  OUT PMDL *TargetMdl);
-
-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;
-  PCALCULATE_SCATTER_GATHER_LIST_SIZE CalculateScatterGatherList;
-  PBUILD_SCATTER_GATHER_LIST BuildScatterGatherList;
-  PBUILD_MDL_FROM_SCATTER_GATHER_LIST BuildMdlFromScatterGatherList;
-} DMA_OPERATIONS, *PDMA_OPERATIONS;
-
-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 {
-      ULONG Priority;
-      ULONG Reserved1;
-      ULONG Reserved2;
-    } ConfigData;
-  } u;
-} IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;
-
-typedef struct _IO_RESOURCE_LIST {
-  USHORT Version;
-  USHORT Revision;
-  ULONG Count;
-  IO_RESOURCE_DESCRIPTOR Descriptors[1];
-} IO_RESOURCE_LIST, *PIO_RESOURCE_LIST;
-
-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;
-
-typedef VOID
-(NTAPI DRIVER_CANCEL)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp);
-typedef DRIVER_CANCEL *PDRIVER_CANCEL;
-
-typedef struct _IRP {
-  CSHORT Type;
-  USHORT Size;
-  struct _MDL *MdlAddress;
-  ULONG Flags;
-  union {
-    struct _IRP *MasterIrp;
-    volatile 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 {
-      _ANONYMOUS_UNION union {
-        PIO_APC_ROUTINE UserApcRoutine;
-        PVOID IssuingProcess;
-      } DUMMYUNIONNAME;
-      PVOID UserApcContext;
-    } AsynchronousParameters;
-    LARGE_INTEGER AllocationSize;
-  } Overlay;
-  volatile PDRIVER_CANCEL CancelRoutine;
-  PVOID UserBuffer;
-  union {
-    struct {
-      _ANONYMOUS_UNION union {
-        KDEVICE_QUEUE_ENTRY DeviceQueueEntry;
-        _ANONYMOUS_STRUCT struct {
-          PVOID DriverContext[4];
-        } DUMMYSTRUCTNAME;
-      } DUMMYUNIONNAME;
-      PETHREAD Thread;
-      PCHAR AuxiliaryBuffer;
-      _ANONYMOUS_STRUCT struct {
-        LIST_ENTRY ListEntry;
-        _ANONYMOUS_UNION union {
-          struct _IO_STACK_LOCATION *CurrentStackLocation;
-          ULONG PacketType;
-        } DUMMYUNIONNAME;
-      } DUMMYSTRUCTNAME;
-      struct _FILE_OBJECT *OriginalFileObject;
-    } Overlay;
-    KAPC Apc;
-    PVOID CompletionKey;
-  } Tail;
-} IRP, *PIRP;
-
-typedef enum _IO_PAGING_PRIORITY {
-  IoPagingPriorityInvalid,
-  IoPagingPriorityNormal,
-  IoPagingPriorityHigh,
-  IoPagingPriorityReserved1,
-  IoPagingPriorityReserved2
-} IO_PAGING_PRIORITY;
-
-typedef NTSTATUS
-(NTAPI IO_COMPLETION_ROUTINE)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN PVOID Context);
-typedef IO_COMPLETION_ROUTINE *PIO_COMPLETION_ROUTINE;
-
-typedef VOID
-(NTAPI IO_DPC_ROUTINE)(
-  IN struct _KDPC *Dpc,
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN struct _IRP *Irp,
-  IN PVOID Context);
-typedef IO_DPC_ROUTINE *PIO_DPC_ROUTINE;
-
-typedef NTSTATUS
-(NTAPI *PMM_DLL_INITIALIZE)(
-  IN PUNICODE_STRING RegistryPath);
-
-typedef NTSTATUS
-(NTAPI *PMM_DLL_UNLOAD)(
-  VOID);
-
-typedef VOID
-(NTAPI IO_TIMER_ROUTINE)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN PVOID Context);
-typedef IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE;
-
-typedef struct _IO_SECURITY_CONTEXT {
-  PSECURITY_QUALITY_OF_SERVICE SecurityQos;
-  PACCESS_STATE AccessState;
-  ACCESS_MASK DesiredAccess;
-  ULONG FullCreateOptions;
-} IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT;
-
-struct _IO_CSQ;
-
-typedef struct _IO_CSQ_IRP_CONTEXT {
-  ULONG Type;
-  struct _IRP *Irp;
-  struct _IO_CSQ *Csq;
-} IO_CSQ_IRP_CONTEXT, *PIO_CSQ_IRP_CONTEXT;
-
-typedef VOID
-(NTAPI *PIO_CSQ_INSERT_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp);
-
-typedef NTSTATUS
-(NTAPI IO_CSQ_INSERT_IRP_EX)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp,
-  IN PVOID InsertContext);
-typedef IO_CSQ_INSERT_IRP_EX *PIO_CSQ_INSERT_IRP_EX;
-
-typedef VOID
-(NTAPI *PIO_CSQ_REMOVE_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp);
-
-typedef PIRP
-(NTAPI *PIO_CSQ_PEEK_NEXT_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp,
-  IN PVOID PeekContext);
-
-typedef VOID
-(NTAPI *PIO_CSQ_ACQUIRE_LOCK)(
-  IN struct _IO_CSQ *Csq,
-  OUT PKIRQL Irql);
-
-typedef VOID
-(NTAPI *PIO_CSQ_RELEASE_LOCK)(
-  IN struct _IO_CSQ *Csq,
-  IN KIRQL Irql);
-
-typedef VOID
-(NTAPI *PIO_CSQ_COMPLETE_CANCELED_IRP)(
-  IN struct _IO_CSQ *Csq,
-  IN PIRP Irp);
-
-typedef struct _IO_CSQ {
-  ULONG Type;
-  PIO_CSQ_INSERT_IRP CsqInsertIrp;
-  PIO_CSQ_REMOVE_IRP CsqRemoveIrp;
-  PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp;
-  PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock;
-  PIO_CSQ_RELEASE_LOCK CsqReleaseLock;
-  PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp;
-  PVOID ReservePointer;
-} IO_CSQ, *PIO_CSQ;
-
-typedef enum _BUS_QUERY_ID_TYPE {
-  BusQueryDeviceID,
-  BusQueryHardwareIDs,
-  BusQueryCompatibleIDs,
-  BusQueryInstanceID,
-  BusQueryDeviceSerialNumber
-} BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE;
-
-typedef enum _DEVICE_TEXT_TYPE {
-  DeviceTextDescription,
-  DeviceTextLocationInformation
-} DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
-
-typedef BOOLEAN
-(NTAPI *PGPE_SERVICE_ROUTINE)(
-  PVOID,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CONNECT_VECTOR)(
-  PDEVICE_OBJECT,
-  ULONG,
-  KINTERRUPT_MODE,
-  BOOLEAN,
-  PGPE_SERVICE_ROUTINE,
-  PVOID,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISCONNECT_VECTOR)(
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_ENABLE_EVENT)(
-  PDEVICE_OBJECT,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISABLE_EVENT)(
-  PDEVICE_OBJECT,
-  PVOID);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CLEAR_STATUS)(
-  PDEVICE_OBJECT,
-  PVOID);
-
-typedef VOID
-(NTAPI *PDEVICE_NOTIFY_CALLBACK)(
-  PVOID,
-  ULONG);
-
-typedef NTSTATUS
-(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS)(
-  PDEVICE_OBJECT,
-  PDEVICE_NOTIFY_CALLBACK,
-  PVOID);
-
-typedef VOID
-(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS)(
-  PDEVICE_OBJECT,
-  PDEVICE_NOTIFY_CALLBACK);
-
-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;
-
-typedef BOOLEAN
-(NTAPI *PGPE_SERVICE_ROUTINE2)(
-  PVOID ObjectContext,
-  PVOID ServiceContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CONNECT_VECTOR2)(
-  PVOID Context,
-  ULONG GpeNumber,
-  KINTERRUPT_MODE Mode,
-  BOOLEAN Shareable,
-  PGPE_SERVICE_ROUTINE ServiceRoutine,
-  PVOID ServiceContext,
-  PVOID *ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISCONNECT_VECTOR2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_ENABLE_EVENT2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_DISABLE_EVENT2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef NTSTATUS
-(NTAPI *PGPE_CLEAR_STATUS2)(
-  PVOID Context,
-  PVOID ObjectContext);
-
-typedef VOID
-(NTAPI *PDEVICE_NOTIFY_CALLBACK2)(
-  PVOID NotificationContext,
-  ULONG NotifyCode);
-
-typedef NTSTATUS
-(NTAPI *PREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
-  PVOID Context,
-  PDEVICE_NOTIFY_CALLBACK2 NotificationHandler,
-  PVOID NotificationContext);
-
-typedef VOID
-(NTAPI *PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2)(
-  PVOID Context);
-
-typedef struct _ACPI_INTERFACE_STANDARD2 {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PGPE_CONNECT_VECTOR2 GpeConnectVector;
-  PGPE_DISCONNECT_VECTOR2 GpeDisconnectVector;
-  PGPE_ENABLE_EVENT2 GpeEnableEvent;
-  PGPE_DISABLE_EVENT2 GpeDisableEvent;
-  PGPE_CLEAR_STATUS2 GpeClearStatus;
-  PREGISTER_FOR_DEVICE_NOTIFICATIONS2 RegisterForDeviceNotifications;
-  PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 UnregisterForDeviceNotifications;
-} ACPI_INTERFACE_STANDARD2, *PACPI_INTERFACE_STANDARD2;
-
-#if !defined(_AMD64_) && !defined(_IA64_)
-#include <pshpack4.h>
-#endif
-typedef struct _IO_STACK_LOCATION {
-  UCHAR MajorFunction;
-  UCHAR MinorFunction;
-  UCHAR Flags;
-  UCHAR Control;
-  union {
-    struct {
-      PIO_SECURITY_CONTEXT SecurityContext;
-      ULONG Options;
-      USHORT POINTER_ALIGNMENT FileAttributes;
-      USHORT ShareAccess;
-      ULONG POINTER_ALIGNMENT EaLength;
-    } Create;
-    struct {
-      ULONG Length;
-      ULONG POINTER_ALIGNMENT Key;
-      LARGE_INTEGER ByteOffset;
-    } Read;
-    struct {
-      ULONG Length;
-      ULONG POINTER_ALIGNMENT Key;
-      LARGE_INTEGER ByteOffset;
-    } Write;
-    struct {
-      ULONG Length;
-      PUNICODE_STRING FileName;
-      FILE_INFORMATION_CLASS FileInformationClass;
-      ULONG FileIndex;
-    } QueryDirectory;
-    struct {
-      ULONG Length;
-      ULONG CompletionFilter;
-    } NotifyDirectory;
-    struct {
-      ULONG Length;
-      FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
-    } QueryFile;
-    struct {
-      ULONG Length;
-      FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
-      PFILE_OBJECT FileObject;
-      _ANONYMOUS_UNION union {
-        _ANONYMOUS_STRUCT struct {
-          BOOLEAN ReplaceIfExists;
-          BOOLEAN AdvanceOnly;
-        } DUMMYSTRUCTNAME;
-        ULONG ClusterCount;
-        HANDLE DeleteHandle;
-      } DUMMYUNIONNAME;
-    } SetFile;
-    struct {
-      ULONG Length;
-      PVOID EaList;
-      ULONG EaListLength;
-      ULONG EaIndex;
-    } QueryEa;
-    struct {
-      ULONG Length;
-    } SetEa;
-    struct {
-      ULONG Length;
-      FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass;
-    } QueryVolume;
-    struct {
-      ULONG Length;
-      FS_INFORMATION_CLASS FsInformationClass;
-    } SetVolume;
-    struct {
-      ULONG OutputBufferLength;
-      ULONG InputBufferLength;
-      ULONG FsControlCode;
-      PVOID Type3InputBuffer;
-    } FileSystemControl;
-    struct {
-      PLARGE_INTEGER Length;
-      ULONG Key;
-      LARGE_INTEGER ByteOffset;
-    } LockControl;
-    struct {
-      ULONG OutputBufferLength;
-      ULONG POINTER_ALIGNMENT InputBufferLength;
-      ULONG POINTER_ALIGNMENT IoControlCode;
-      PVOID Type3InputBuffer;
-    } DeviceIoControl;
-    struct {
-      SECURITY_INFORMATION SecurityInformation;
-      ULONG POINTER_ALIGNMENT 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 {
-      ULONG Length;
-      PSID StartSid;
-      struct _FILE_GET_QUOTA_INFORMATION *SidList;
-      ULONG SidListLength;
-    } QueryQuota;
-    struct {
-      ULONG Length;
-    } SetQuota;
-    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 POINTER_ALIGNMENT Length;
-    } ReadWriteConfig;
-    struct {
-      BOOLEAN Lock;
-    } SetLock;
-    struct {
-      BUS_QUERY_ID_TYPE IdType;
-    } QueryId;
-    struct {
-      DEVICE_TEXT_TYPE DeviceTextType;
-      LCID POINTER_ALIGNMENT LocaleId;
-    } QueryDeviceText;
-    struct {
-      BOOLEAN InPath;
-      BOOLEAN Reserved[3];
-      DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type;
-    } UsageNotification;
-    struct {
-      SYSTEM_POWER_STATE PowerState;
-    } WaitWake;
-    struct {
-      PPOWER_SEQUENCE PowerSequence;
-    } PowerSequence;
-    struct {
-      ULONG SystemContext;
-      POWER_STATE_TYPE POINTER_ALIGNMENT Type;
-      POWER_STATE POINTER_ALIGNMENT State;
-      POWER_ACTION POINTER_ALIGNMENT 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;
-#if !defined(_AMD64_) && !defined(_IA64_)
-#include <poppack.h>
-#endif
-
-/* IO_STACK_LOCATION.Control */
-
-#define SL_PENDING_RETURNED               0x01
-#define SL_ERROR_RETURNED                 0x02
-#define SL_INVOKE_ON_CANCEL               0x20
-#define SL_INVOKE_ON_SUCCESS              0x40
-#define SL_INVOKE_ON_ERROR                0x80
-
-#define METHOD_BUFFERED                   0
-#define METHOD_IN_DIRECT                  1
-#define METHOD_OUT_DIRECT                 2
-#define METHOD_NEITHER                    3
-
-#define METHOD_DIRECT_TO_HARDWARE       METHOD_IN_DIRECT
-#define METHOD_DIRECT_FROM_HARDWARE     METHOD_OUT_DIRECT
-
-#define FILE_SUPERSEDED                   0x00000000
-#define FILE_OPENED                       0x00000001
-#define FILE_CREATED                      0x00000002
-#define FILE_OVERWRITTEN                  0x00000003
-#define FILE_EXISTS                       0x00000004
-#define FILE_DOES_NOT_EXIST               0x00000005
-
-#define FILE_USE_FILE_POINTER_POSITION    0xfffffffe
-#define FILE_WRITE_TO_END_OF_FILE         0xffffffff
-
-/* also in winnt.h */
-#define FILE_LIST_DIRECTORY               0x00000001
-#define FILE_READ_DATA                    0x00000001
-#define FILE_ADD_FILE                     0x00000002
-#define FILE_WRITE_DATA                   0x00000002
-#define FILE_ADD_SUBDIRECTORY             0x00000004
-#define FILE_APPEND_DATA                  0x00000004
-#define FILE_CREATE_PIPE_INSTANCE         0x00000004
-#define FILE_READ_EA                      0x00000008
-#define FILE_WRITE_EA                     0x00000010
-#define FILE_EXECUTE                      0x00000020
-#define FILE_TRAVERSE                     0x00000020
-#define FILE_DELETE_CHILD                 0x00000040
-#define FILE_READ_ATTRIBUTES              0x00000080
-#define FILE_WRITE_ATTRIBUTES             0x00000100
-
-#define FILE_SHARE_READ                   0x00000001
-#define FILE_SHARE_WRITE                  0x00000002
-#define FILE_SHARE_DELETE                 0x00000004
-#define FILE_SHARE_VALID_FLAGS            0x00000007
-
-#define FILE_ATTRIBUTE_READONLY           0x00000001
-#define FILE_ATTRIBUTE_HIDDEN             0x00000002
-#define FILE_ATTRIBUTE_SYSTEM             0x00000004
-#define FILE_ATTRIBUTE_DIRECTORY          0x00000010
-#define FILE_ATTRIBUTE_ARCHIVE            0x00000020
-#define FILE_ATTRIBUTE_DEVICE             0x00000040
-#define FILE_ATTRIBUTE_NORMAL             0x00000080
-#define FILE_ATTRIBUTE_TEMPORARY          0x00000100
-#define FILE_ATTRIBUTE_SPARSE_FILE        0x00000200
-#define FILE_ATTRIBUTE_REPARSE_POINT      0x00000400
-#define FILE_ATTRIBUTE_COMPRESSED         0x00000800
-#define FILE_ATTRIBUTE_OFFLINE            0x00001000
-#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
-#define FILE_ATTRIBUTE_ENCRYPTED          0x00004000
-#define FILE_ATTRIBUTE_VIRTUAL            0x00010000
-
-#define FILE_ATTRIBUTE_VALID_FLAGS        0x00007fb7
-#define FILE_ATTRIBUTE_VALID_SET_FLAGS    0x000031a7
-
-#define FILE_VALID_OPTION_FLAGS           0x00ffffff
-#define FILE_VALID_PIPE_OPTION_FLAGS      0x00000032
-#define FILE_VALID_MAILSLOT_OPTION_FLAGS  0x00000032
-#define FILE_VALID_SET_FLAGS              0x00000036
-
-#define FILE_SUPERSEDE                    0x00000000
-#define FILE_OPEN                         0x00000001
-#define FILE_CREATE                       0x00000002
-#define FILE_OPEN_IF                      0x00000003
-#define FILE_OVERWRITE                    0x00000004
-#define FILE_OVERWRITE_IF                 0x00000005
-#define FILE_MAXIMUM_DISPOSITION          0x00000005
-
-#define FILE_DIRECTORY_FILE               0x00000001
-#define FILE_WRITE_THROUGH                0x00000002
-#define FILE_SEQUENTIAL_ONLY              0x00000004
-#define FILE_NO_INTERMEDIATE_BUFFERING    0x00000008
-#define FILE_SYNCHRONOUS_IO_ALERT         0x00000010
-#define FILE_SYNCHRONOUS_IO_NONALERT      0x00000020
-#define FILE_NON_DIRECTORY_FILE           0x00000040
-#define FILE_CREATE_TREE_CONNECTION       0x00000080
-#define FILE_COMPLETE_IF_OPLOCKED         0x00000100
-#define FILE_NO_EA_KNOWLEDGE              0x00000200
-#define FILE_OPEN_REMOTE_INSTANCE         0x00000400
-#define FILE_RANDOM_ACCESS                0x00000800
-#define FILE_DELETE_ON_CLOSE              0x00001000
-#define FILE_OPEN_BY_FILE_ID              0x00002000
-#define FILE_OPEN_FOR_BACKUP_INTENT       0x00004000
-#define FILE_NO_COMPRESSION               0x00008000
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-#define FILE_OPEN_REQUIRING_OPLOCK        0x00010000
-#define FILE_DISALLOW_EXCLUSIVE           0x00020000
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-#define FILE_RESERVE_OPFILTER             0x00100000
-#define FILE_OPEN_REPARSE_POINT           0x00200000
-#define FILE_OPEN_NO_RECALL               0x00400000
-#define FILE_OPEN_FOR_FREE_SPACE_QUERY    0x00800000
-
-#define FILE_ANY_ACCESS                   0x00000000
-#define FILE_SPECIAL_ACCESS               FILE_ANY_ACCESS
-#define FILE_READ_ACCESS                  0x00000001
-#define FILE_WRITE_ACCESS                 0x00000002
-
-#define FILE_ALL_ACCESS \
-  (STANDARD_RIGHTS_REQUIRED | \
-   SYNCHRONIZE | \
-   0x1FF)
-
-#define FILE_GENERIC_EXECUTE \
-  (STANDARD_RIGHTS_EXECUTE | \
-   FILE_READ_ATTRIBUTES | \
-   FILE_EXECUTE | \
-   SYNCHRONIZE)
-
-#define FILE_GENERIC_READ \
-  (STANDARD_RIGHTS_READ | \
-   FILE_READ_DATA | \
-   FILE_READ_ATTRIBUTES | \
-   FILE_READ_EA | \
-   SYNCHRONIZE)
-
-#define FILE_GENERIC_WRITE \
-  (STANDARD_RIGHTS_WRITE | \
-   FILE_WRITE_DATA | \
-   FILE_WRITE_ATTRIBUTES | \
-   FILE_WRITE_EA | \
-   FILE_APPEND_DATA | \
-   SYNCHRONIZE)
-
-/* end winnt.h */
-
-#define WMIREG_ACTION_REGISTER      1
-#define WMIREG_ACTION_DEREGISTER    2
-#define WMIREG_ACTION_REREGISTER    3
-#define WMIREG_ACTION_UPDATE_GUIDS  4
-#define WMIREG_ACTION_BLOCK_IRPS    5
-
-#define WMIREGISTER                 0
-#define WMIUPDATE                   1
-
-typedef VOID
-(NTAPI FWMI_NOTIFICATION_CALLBACK)(
-  PVOID Wnode,
-  PVOID Context);
-typedef FWMI_NOTIFICATION_CALLBACK *WMI_NOTIFICATION_CALLBACK;
-
-#ifndef _PCI_X_
-#define _PCI_X_
-
-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;
-
-#define PCI_TYPE0_ADDRESSES               6
-#define PCI_TYPE1_ADDRESSES               2
-#define PCI_TYPE2_ADDRESSES               5
-
-typedef struct _PCI_COMMON_HEADER {
-  PCI_COMMON_HEADER_LAYOUT
-} PCI_COMMON_HEADER, *PPCI_COMMON_HEADER;
-
-#ifdef __cplusplus
-typedef struct _PCI_COMMON_CONFIG {
-  PCI_COMMON_HEADER_LAYOUT
-  UCHAR DeviceSpecific[192];
-} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
-#else
-typedef struct _PCI_COMMON_CONFIG {
-  PCI_COMMON_HEADER DUMMYSTRUCTNAME;
-  UCHAR DeviceSpecific[192];
-} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
-#endif
-
-#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET(PCI_COMMON_CONFIG, DeviceSpecific))
-
-#define PCI_EXTENDED_CONFIG_LENGTH               0x1000
-
-#define PCI_MAX_DEVICES        32
-#define PCI_MAX_FUNCTION       8
-#define PCI_MAX_BRIDGE_NUMBER  0xFF
-#define PCI_INVALID_VENDORID   0xFFFF
-
-/* PCI_COMMON_CONFIG.HeaderType */
-#define PCI_MULTIFUNCTION                 0x80
-#define PCI_DEVICE_TYPE                   0x00
-#define PCI_BRIDGE_TYPE                   0x01
-#define PCI_CARDBUS_BRIDGE_TYPE           0x02
-
-#define PCI_CONFIGURATION_TYPE(PciData) \
-  (((PPCI_COMMON_CONFIG) (PciData))->HeaderType & ~PCI_MULTIFUNCTION)
-
-#define PCI_MULTIFUNCTION_DEVICE(PciData) \
-  ((((PPCI_COMMON_CONFIG) (PciData))->HeaderType & PCI_MULTIFUNCTION) != 0)
-
-/* PCI_COMMON_CONFIG.Command */
-#define PCI_ENABLE_IO_SPACE               0x0001
-#define PCI_ENABLE_MEMORY_SPACE           0x0002
-#define PCI_ENABLE_BUS_MASTER             0x0004
-#define PCI_ENABLE_SPECIAL_CYCLES         0x0008
-#define PCI_ENABLE_WRITE_AND_INVALIDATE   0x0010
-#define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020
-#define PCI_ENABLE_PARITY                 0x0040
-#define PCI_ENABLE_WAIT_CYCLE             0x0080
-#define PCI_ENABLE_SERR                   0x0100
-#define PCI_ENABLE_FAST_BACK_TO_BACK      0x0200
-#define PCI_DISABLE_LEVEL_INTERRUPT       0x0400
-
-/* PCI_COMMON_CONFIG.Status */
-#define PCI_STATUS_INTERRUPT_PENDING      0x0008
-#define PCI_STATUS_CAPABILITIES_LIST      0x0010
-#define PCI_STATUS_66MHZ_CAPABLE          0x0020
-#define PCI_STATUS_UDF_SUPPORTED          0x0040
-#define PCI_STATUS_FAST_BACK_TO_BACK      0x0080
-#define PCI_STATUS_DATA_PARITY_DETECTED   0x0100
-#define PCI_STATUS_DEVSEL                 0x0600
-#define PCI_STATUS_SIGNALED_TARGET_ABORT  0x0800
-#define PCI_STATUS_RECEIVED_TARGET_ABORT  0x1000
-#define PCI_STATUS_RECEIVED_MASTER_ABORT  0x2000
-#define PCI_STATUS_SIGNALED_SYSTEM_ERROR  0x4000
-#define PCI_STATUS_DETECTED_PARITY_ERROR  0x8000
-
-/* IO_STACK_LOCATION.Parameters.ReadWriteControl.WhichSpace */
-
-#define PCI_WHICHSPACE_CONFIG             0x0
-#define PCI_WHICHSPACE_ROM                0x52696350 /* 'PciR' */
-
-#define PCI_CAPABILITY_ID_POWER_MANAGEMENT  0x01
-#define PCI_CAPABILITY_ID_AGP               0x02
-#define PCI_CAPABILITY_ID_VPD               0x03
-#define PCI_CAPABILITY_ID_SLOT_ID           0x04
-#define PCI_CAPABILITY_ID_MSI               0x05
-#define PCI_CAPABILITY_ID_CPCI_HOTSWAP      0x06
-#define PCI_CAPABILITY_ID_PCIX              0x07
-#define PCI_CAPABILITY_ID_HYPERTRANSPORT    0x08
-#define PCI_CAPABILITY_ID_VENDOR_SPECIFIC   0x09
-#define PCI_CAPABILITY_ID_DEBUG_PORT        0x0A
-#define PCI_CAPABILITY_ID_CPCI_RES_CTRL     0x0B
-#define PCI_CAPABILITY_ID_SHPC              0x0C
-#define PCI_CAPABILITY_ID_P2P_SSID          0x0D
-#define PCI_CAPABILITY_ID_AGP_TARGET        0x0E
-#define PCI_CAPABILITY_ID_SECURE            0x0F
-#define PCI_CAPABILITY_ID_PCI_EXPRESS       0x10
-#define PCI_CAPABILITY_ID_MSIX              0x11
-
-typedef struct _PCI_CAPABILITIES_HEADER {
-  UCHAR CapabilityID;
-  UCHAR Next;
-} PCI_CAPABILITIES_HEADER, *PPCI_CAPABILITIES_HEADER;
-
-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;
-
-typedef struct _PCI_PMCSR_BSE {
-  UCHAR Rsvd1:6;
-  UCHAR D3HotSupportsStopClock:1;
-  UCHAR BusPowerClockControlEnabled:1;
-} PCI_PMCSR_BSE, *PPCI_PMCSR_BSE;
-
-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;
-
-typedef struct {
-  PCI_CAPABILITIES_HEADER Header;
-  union {
-    struct {
-      USHORT DataParityErrorRecoveryEnable:1;
-      USHORT EnableRelaxedOrdering:1;
-      USHORT MaxMemoryReadByteCount:2;
-      USHORT MaxOutstandingSplitTransactions:3;
-      USHORT Reserved:9;
-    } bits;
-    USHORT AsUSHORT;
-  } Command;
-  union {
-    struct {
-      ULONG FunctionNumber:3;
-      ULONG DeviceNumber:5;
-      ULONG BusNumber:8;
-      ULONG Device64Bit:1;
-      ULONG Capable133MHz:1;
-      ULONG SplitCompletionDiscarded:1;
-      ULONG UnexpectedSplitCompletion:1;
-      ULONG DeviceComplexity:1;
-      ULONG DesignedMaxMemoryReadByteCount:2;
-      ULONG DesignedMaxOutstandingSplitTransactions:3;
-      ULONG DesignedMaxCumulativeReadSize:3;
-      ULONG ReceivedSplitCompletionErrorMessage:1;
-      ULONG CapablePCIX266:1;
-      ULONG CapablePCIX533:1;
-      } bits;
-    ULONG AsULONG;
-  } Status;
-} PCI_X_CAPABILITY, *PPCI_X_CAPABILITY;
-
-#define PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID                     0x0001
-#define PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID                              0x0002
-#define PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID                         0x0003
-#define PCI_EXPRESS_POWER_BUDGETING_CAP_ID                              0x0004
-#define PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID                          0x0005
-#define PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID                     0x0006
-#define PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID      0x0007
-#define PCI_EXPRESS_MFVC_CAP_ID                                         0x0008
-#define PCI_EXPRESS_VC_AND_MFVC_CAP_ID                                  0x0009
-#define PCI_EXPRESS_RCRB_HEADER_CAP_ID                                  0x000A
-#define PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID                0x0010
-
-typedef struct _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER {
-  USHORT CapabilityID;
-  USHORT Version:4;
-  USHORT Next:12;
-} PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER, *PPCI_EXPRESS_ENHANCED_CAPABILITY_HEADER;
-
-typedef struct _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  ULONG LowSerialNumber;
-  ULONG HighSerialNumber;
-} PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY, *PPCI_EXPRESS_SERIAL_NUMBER_CAPABILITY;
-
-typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS {
-  struct {
-    ULONG Undefined:1;
-    ULONG Reserved1:3;
-    ULONG DataLinkProtocolError:1;
-    ULONG SurpriseDownError:1;
-    ULONG Reserved2:6;
-    ULONG PoisonedTLP:1;
-    ULONG FlowControlProtocolError:1;
-    ULONG CompletionTimeout:1;
-    ULONG CompleterAbort:1;
-    ULONG UnexpectedCompletion:1;
-    ULONG ReceiverOverflow:1;
-    ULONG MalformedTLP:1;
-    ULONG ECRCError:1;
-    ULONG UnsupportedRequestError:1;
-    ULONG Reserved3:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK {
-  struct {
-    ULONG Undefined:1;
-    ULONG Reserved1:3;
-    ULONG DataLinkProtocolError:1;
-    ULONG SurpriseDownError:1;
-    ULONG Reserved2:6;
-    ULONG PoisonedTLP:1;
-    ULONG FlowControlProtocolError:1;
-    ULONG CompletionTimeout:1;
-    ULONG CompleterAbort:1;
-    ULONG UnexpectedCompletion:1;
-    ULONG ReceiverOverflow:1;
-    ULONG MalformedTLP:1;
-    ULONG ECRCError:1;
-    ULONG UnsupportedRequestError:1;
-    ULONG Reserved3:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_MASK;
-
-typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY {
-  struct {
-    ULONG Undefined:1;
-    ULONG Reserved1:3;
-    ULONG DataLinkProtocolError:1;
-    ULONG SurpriseDownError:1;
-    ULONG Reserved2:6;
-    ULONG PoisonedTLP:1;
-    ULONG FlowControlProtocolError:1;
-    ULONG CompletionTimeout:1;
-    ULONG CompleterAbort:1;
-    ULONG UnexpectedCompletion:1;
-    ULONG ReceiverOverflow:1;
-    ULONG MalformedTLP:1;
-    ULONG ECRCError:1;
-    ULONG UnsupportedRequestError:1;
-    ULONG Reserved3:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY;
-
-typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS {
-  struct {
-    ULONG ReceiverError:1;
-    ULONG Reserved1:5;
-    ULONG BadTLP:1;
-    ULONG BadDLLP:1;
-    ULONG ReplayNumRollover:1;
-    ULONG Reserved2:3;
-    ULONG ReplayTimerTimeout:1;
-    ULONG AdvisoryNonFatalError:1;
-    ULONG Reserved3:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_CORRECTABLE_ERROR_STATUS, *PPCI_CORRECTABLE_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_MASK {
-  struct {
-    ULONG ReceiverError:1;
-    ULONG Reserved1:5;
-    ULONG BadTLP:1;
-    ULONG BadDLLP:1;
-    ULONG ReplayNumRollover:1;
-    ULONG Reserved2:3;
-    ULONG ReplayTimerTimeout:1;
-    ULONG AdvisoryNonFatalError:1;
-    ULONG Reserved3:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_CORRECTABLE_ERROR_MASK, *PPCI_CORRECTABLE_ERROR_MASK;
-
-typedef union _PCI_EXPRESS_AER_CAPABILITIES {
-  struct {
-    ULONG FirstErrorPointer:5;
-    ULONG ECRCGenerationCapable:1;
-    ULONG ECRCGenerationEnable:1;
-    ULONG ECRCCheckCapable:1;
-    ULONG ECRCCheckEnable:1;
-    ULONG Reserved:23;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_AER_CAPABILITIES, *PPCI_EXPRESS_AER_CAPABILITIES;
-
-typedef union _PCI_EXPRESS_ROOT_ERROR_COMMAND {
-  struct {
-    ULONG CorrectableErrorReportingEnable:1;
-    ULONG NonFatalErrorReportingEnable:1;
-    ULONG FatalErrorReportingEnable:1;
-    ULONG Reserved:29;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ROOT_ERROR_COMMAND, *PPCI_EXPRESS_ROOT_ERROR_COMMAND;
-
-typedef union _PCI_EXPRESS_ROOT_ERROR_STATUS {
-  struct {
-    ULONG CorrectableErrorReceived:1;
-    ULONG MultipleCorrectableErrorsReceived:1;
-    ULONG UncorrectableErrorReceived:1;
-    ULONG MultipleUncorrectableErrorsReceived:1;
-    ULONG FirstUncorrectableFatal:1;
-    ULONG NonFatalErrorMessagesReceived:1;
-    ULONG FatalErrorMessagesReceived:1;
-    ULONG Reserved:20;
-    ULONG AdvancedErrorInterruptMessageNumber:5;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ROOT_ERROR_STATUS, *PPCI_EXPRESS_ROOT_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_ERROR_SOURCE_ID {
-  struct {
-    USHORT CorrectableSourceIdFun:3;
-    USHORT CorrectableSourceIdDev:5;
-    USHORT CorrectableSourceIdBus:8;
-    USHORT UncorrectableSourceIdFun:3;
-    USHORT UncorrectableSourceIdDev:5;
-    USHORT UncorrectableSourceIdBus:8;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ERROR_SOURCE_ID, *PPCI_EXPRESS_ERROR_SOURCE_ID;
-
-typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS {
-  struct {
-    ULONG TargetAbortOnSplitCompletion:1;
-    ULONG MasterAbortOnSplitCompletion:1;
-    ULONG ReceivedTargetAbort:1;
-    ULONG ReceivedMasterAbort:1;
-    ULONG RsvdZ:1;
-    ULONG UnexpectedSplitCompletionError:1;
-    ULONG UncorrectableSplitCompletion:1;
-    ULONG UncorrectableDataError:1;
-    ULONG UncorrectableAttributeError:1;
-    ULONG UncorrectableAddressError:1;
-    ULONG DelayedTransactionDiscardTimerExpired:1;
-    ULONG PERRAsserted:1;
-    ULONG SERRAsserted:1;
-    ULONG InternalBridgeError:1;
-    ULONG Reserved:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS;
-
-typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK {
-  struct {
-    ULONG TargetAbortOnSplitCompletion:1;
-    ULONG MasterAbortOnSplitCompletion:1;
-    ULONG ReceivedTargetAbort:1;
-    ULONG ReceivedMasterAbort:1;
-    ULONG RsvdZ:1;
-    ULONG UnexpectedSplitCompletionError:1;
-    ULONG UncorrectableSplitCompletion:1;
-    ULONG UncorrectableDataError:1;
-    ULONG UncorrectableAttributeError:1;
-    ULONG UncorrectableAddressError:1;
-    ULONG DelayedTransactionDiscardTimerExpired:1;
-    ULONG PERRAsserted:1;
-    ULONG SERRAsserted:1;
-    ULONG InternalBridgeError:1;
-    ULONG Reserved:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK;
-
-typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY {
-  struct {
-    ULONG TargetAbortOnSplitCompletion:1;
-    ULONG MasterAbortOnSplitCompletion:1;
-    ULONG ReceivedTargetAbort:1;
-    ULONG ReceivedMasterAbort:1;
-    ULONG RsvdZ:1;
-    ULONG UnexpectedSplitCompletionError:1;
-    ULONG UncorrectableSplitCompletion:1;
-    ULONG UncorrectableDataError:1;
-    ULONG UncorrectableAttributeError:1;
-    ULONG UncorrectableAddressError:1;
-    ULONG DelayedTransactionDiscardTimerExpired:1;
-    ULONG PERRAsserted:1;
-    ULONG SERRAsserted:1;
-    ULONG InternalBridgeError:1;
-    ULONG Reserved:18;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY;
-
-typedef union _PCI_EXPRESS_SEC_AER_CAPABILITIES {
-  struct {
-    ULONG SecondaryUncorrectableFirstErrorPtr:5;
-    ULONG Reserved:27;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SEC_AER_CAPABILITIES, *PPCI_EXPRESS_SEC_AER_CAPABILITIES;
-
-#define ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING  0x00000001
-#define ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING     0x00000002
-#define ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING        0x00000004
-
-#define ROOT_CMD_ERROR_REPORTING_ENABLE_MASK \
-    (ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING | \
-     ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING | \
-     ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING)
-
-typedef struct _PCI_EXPRESS_AER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity;
-  PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus;
-  PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask;
-  PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl;
-  ULONG HeaderLog[4];
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity;
-  PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl;
-  ULONG SecHeaderLog[4];
-} PCI_EXPRESS_AER_CAPABILITY, *PPCI_EXPRESS_AER_CAPABILITY;
-
-typedef struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity;
-  PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus;
-  PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask;
-  PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl;
-  ULONG HeaderLog[4];
-  PCI_EXPRESS_ROOT_ERROR_COMMAND RootErrorCommand;
-  PCI_EXPRESS_ROOT_ERROR_STATUS RootErrorStatus;
-  PCI_EXPRESS_ERROR_SOURCE_ID ErrorSourceId;
-} PCI_EXPRESS_ROOTPORT_AER_CAPABILITY, *PPCI_EXPRESS_ROOTPORT_AER_CAPABILITY;
-
-typedef struct _PCI_EXPRESS_BRIDGE_AER_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS UncorrectableErrorStatus;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK UncorrectableErrorMask;
-  PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY UncorrectableErrorSeverity;
-  PCI_EXPRESS_CORRECTABLE_ERROR_STATUS CorrectableErrorStatus;
-  PCI_EXPRESS_CORRECTABLE_ERROR_MASK CorrectableErrorMask;
-  PCI_EXPRESS_AER_CAPABILITIES CapabilitiesAndControl;
-  ULONG HeaderLog[4];
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS SecUncorrectableErrorStatus;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK SecUncorrectableErrorMask;
-  PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY SecUncorrectableErrorSeverity;
-  PCI_EXPRESS_SEC_AER_CAPABILITIES SecCapabilitiesAndControl;
-  ULONG SecHeaderLog[4];
-} PCI_EXPRESS_BRIDGE_AER_CAPABILITY, *PPCI_EXPRESS_BRIDGE_AER_CAPABILITY;
-
-typedef union _PCI_EXPRESS_SRIOV_CAPS {
-  struct {
-    ULONG VFMigrationCapable:1;
-    ULONG Reserved1:20;
-    ULONG VFMigrationInterruptNumber:11;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SRIOV_CAPS, *PPCI_EXPRESS_SRIOV_CAPS;
-
-typedef union _PCI_EXPRESS_SRIOV_CONTROL {
-  struct {
-    USHORT VFEnable:1;
-    USHORT VFMigrationEnable:1;
-    USHORT VFMigrationInterruptEnable:1;
-    USHORT VFMemorySpaceEnable:1;
-    USHORT ARICapableHierarchy:1;
-    USHORT Reserved1:11;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SRIOV_CONTROL, *PPCI_EXPRESS_SRIOV_CONTROL;
-
-typedef union _PCI_EXPRESS_SRIOV_STATUS {
-  struct {
-    USHORT VFMigrationStatus:1;
-    USHORT Reserved1:15;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SRIOV_STATUS, *PPCI_EXPRESS_SRIOV_STATUS;
-
-typedef union _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY {
-  struct {
-    ULONG VFMigrationStateBIR:3;
-    ULONG VFMigrationStateOffset:29;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY, *PPCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY;
-
-typedef struct _PCI_EXPRESS_SRIOV_CAPABILITY {
-  PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER Header;
-  PCI_EXPRESS_SRIOV_CAPS SRIOVCapabilities;
-  PCI_EXPRESS_SRIOV_CONTROL SRIOVControl;
-  PCI_EXPRESS_SRIOV_STATUS SRIOVStatus;
-  USHORT InitialVFs;
-  USHORT TotalVFs;
-  USHORT NumVFs;
-  UCHAR FunctionDependencyLink;
-  UCHAR RsvdP1;
-  USHORT FirstVFOffset;
-  USHORT VFStride;
-  USHORT RsvdP2;
-  USHORT VFDeviceId;
-  ULONG SupportedPageSizes;
-  ULONG SystemPageSize;
-  ULONG BaseAddresses[PCI_TYPE0_ADDRESSES];
-  PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY VFMigrationStateArrayOffset;
-} PCI_EXPRESS_SRIOV_CAPABILITY, *PPCI_EXPRESS_SRIOV_CAPABILITY;
-
-/* PCI device classes */
-#define PCI_CLASS_PRE_20                    0x00
-#define PCI_CLASS_MASS_STORAGE_CTLR         0x01
-#define PCI_CLASS_NETWORK_CTLR              0x02
-#define PCI_CLASS_DISPLAY_CTLR              0x03
-#define PCI_CLASS_MULTIMEDIA_DEV            0x04
-#define PCI_CLASS_MEMORY_CTLR               0x05
-#define PCI_CLASS_BRIDGE_DEV                0x06
-#define PCI_CLASS_SIMPLE_COMMS_CTLR         0x07
-#define PCI_CLASS_BASE_SYSTEM_DEV           0x08
-#define PCI_CLASS_INPUT_DEV                 0x09
-#define PCI_CLASS_DOCKING_STATION           0x0a
-#define PCI_CLASS_PROCESSOR                 0x0b
-#define PCI_CLASS_SERIAL_BUS_CTLR           0x0c
-#define PCI_CLASS_WIRELESS_CTLR             0x0d
-#define PCI_CLASS_INTELLIGENT_IO_CTLR       0x0e
-#define PCI_CLASS_SATELLITE_COMMS_CTLR      0x0f
-#define PCI_CLASS_ENCRYPTION_DECRYPTION     0x10
-#define PCI_CLASS_DATA_ACQ_SIGNAL_PROC      0x11
-#define PCI_CLASS_NOT_DEFINED               0xff
-
-/* PCI device subclasses for class 0 */
-#define PCI_SUBCLASS_PRE_20_NON_VGA         0x00
-#define PCI_SUBCLASS_PRE_20_VGA             0x01
-
-/* PCI device subclasses for class 1 (mass storage controllers)*/
-#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR      0x00
-#define PCI_SUBCLASS_MSC_IDE_CTLR           0x01
-#define PCI_SUBCLASS_MSC_FLOPPY_CTLR        0x02
-#define PCI_SUBCLASS_MSC_IPI_CTLR           0x03
-#define PCI_SUBCLASS_MSC_RAID_CTLR          0x04
-#define PCI_SUBCLASS_MSC_OTHER              0x80
-
-/* PCI device subclasses for class 2 (network controllers)*/
-#define PCI_SUBCLASS_NET_ETHERNET_CTLR      0x00
-#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR    0x01
-#define PCI_SUBCLASS_NET_FDDI_CTLR          0x02
-#define PCI_SUBCLASS_NET_ATM_CTLR           0x03
-#define PCI_SUBCLASS_NET_ISDN_CTLR          0x04
-#define PCI_SUBCLASS_NET_OTHER              0x80
-
-/* PCI device subclasses for class 3 (display controllers)*/
-#define PCI_SUBCLASS_VID_VGA_CTLR           0x00
-#define PCI_SUBCLASS_VID_XGA_CTLR           0x01
-#define PCI_SUBCLASS_VID_3D_CTLR            0x02
-#define PCI_SUBCLASS_VID_OTHER              0x80
-
-/* PCI device subclasses for class 4 (multimedia device)*/
-#define PCI_SUBCLASS_MM_VIDEO_DEV           0x00
-#define PCI_SUBCLASS_MM_AUDIO_DEV           0x01
-#define PCI_SUBCLASS_MM_TELEPHONY_DEV       0x02
-#define PCI_SUBCLASS_MM_OTHER               0x80
-
-/* PCI device subclasses for class 5 (memory controller)*/
-#define PCI_SUBCLASS_MEM_RAM                0x00
-#define PCI_SUBCLASS_MEM_FLASH              0x01
-#define PCI_SUBCLASS_MEM_OTHER              0x80
-
-/* PCI device subclasses for class 6 (bridge device)*/
-#define PCI_SUBCLASS_BR_HOST                0x00
-#define PCI_SUBCLASS_BR_ISA                 0x01
-#define PCI_SUBCLASS_BR_EISA                0x02
-#define PCI_SUBCLASS_BR_MCA                 0x03
-#define PCI_SUBCLASS_BR_PCI_TO_PCI          0x04
-#define PCI_SUBCLASS_BR_PCMCIA              0x05
-#define PCI_SUBCLASS_BR_NUBUS               0x06
-#define PCI_SUBCLASS_BR_CARDBUS             0x07
-#define PCI_SUBCLASS_BR_RACEWAY             0x08
-#define PCI_SUBCLASS_BR_OTHER               0x80
-
-#define PCI_SUBCLASS_COM_SERIAL             0x00
-#define PCI_SUBCLASS_COM_PARALLEL           0x01
-#define PCI_SUBCLASS_COM_MULTIPORT          0x02
-#define PCI_SUBCLASS_COM_MODEM              0x03
-#define PCI_SUBCLASS_COM_OTHER              0x80
-
-#define PCI_SUBCLASS_SYS_INTERRUPT_CTLR     0x00
-#define PCI_SUBCLASS_SYS_DMA_CTLR           0x01
-#define PCI_SUBCLASS_SYS_SYSTEM_TIMER       0x02
-#define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK    0x03
-#define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR   0x04
-#define PCI_SUBCLASS_SYS_SDIO_CTRL          0x05
-#define PCI_SUBCLASS_SYS_OTHER              0x80
-
-#define PCI_SUBCLASS_INP_KEYBOARD           0x00
-#define PCI_SUBCLASS_INP_DIGITIZER          0x01
-#define PCI_SUBCLASS_INP_MOUSE              0x02
-#define PCI_SUBCLASS_INP_SCANNER            0x03
-#define PCI_SUBCLASS_INP_GAMEPORT           0x04
-#define PCI_SUBCLASS_INP_OTHER              0x80
-
-#define PCI_SUBCLASS_DOC_GENERIC            0x00
-#define PCI_SUBCLASS_DOC_OTHER              0x80
-
-#define PCI_SUBCLASS_PROC_386               0x00
-#define PCI_SUBCLASS_PROC_486               0x01
-#define PCI_SUBCLASS_PROC_PENTIUM           0x02
-#define PCI_SUBCLASS_PROC_ALPHA             0x10
-#define PCI_SUBCLASS_PROC_POWERPC           0x20
-#define PCI_SUBCLASS_PROC_COPROCESSOR       0x40
-
-/* PCI device subclasses for class C (serial bus controller)*/
-#define PCI_SUBCLASS_SB_IEEE1394            0x00
-#define PCI_SUBCLASS_SB_ACCESS              0x01
-#define PCI_SUBCLASS_SB_SSA                 0x02
-#define PCI_SUBCLASS_SB_USB                 0x03
-#define PCI_SUBCLASS_SB_FIBRE_CHANNEL       0x04
-#define PCI_SUBCLASS_SB_SMBUS               0x05
-
-#define PCI_SUBCLASS_WIRELESS_IRDA          0x00
-#define PCI_SUBCLASS_WIRELESS_CON_IR        0x01
-#define PCI_SUBCLASS_WIRELESS_RF            0x10
-#define PCI_SUBCLASS_WIRELESS_OTHER         0x80
-
-#define PCI_SUBCLASS_INTIO_I2O              0x00
-
-#define PCI_SUBCLASS_SAT_TV                 0x01
-#define PCI_SUBCLASS_SAT_AUDIO              0x02
-#define PCI_SUBCLASS_SAT_VOICE              0x03
-#define PCI_SUBCLASS_SAT_DATA               0x04
-
-#define PCI_SUBCLASS_CRYPTO_NET_COMP        0x00
-#define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT   0x10
-#define PCI_SUBCLASS_CRYPTO_OTHER           0x80
-
-#define PCI_SUBCLASS_DASP_DPIO              0x00
-#define PCI_SUBCLASS_DASP_OTHER             0x80
-
-#define PCI_ADDRESS_IO_SPACE                0x00000001
-#define PCI_ADDRESS_MEMORY_TYPE_MASK        0x00000006
-#define PCI_ADDRESS_MEMORY_PREFETCHABLE     0x00000008
-#define PCI_ADDRESS_IO_ADDRESS_MASK         0xfffffffc
-#define PCI_ADDRESS_MEMORY_ADDRESS_MASK     0xfffffff0
-#define PCI_ADDRESS_ROM_ADDRESS_MASK        0xfffff800
-
-#define PCI_TYPE_32BIT                      0
-#define PCI_TYPE_20BIT                      2
-#define PCI_TYPE_64BIT                      4
-
-#define PCI_ROMADDRESS_ENABLED              0x00000001
-
-#endif /* _PCI_X_ */
-
-#define PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION       1
-
-typedef NTSTATUS
-(NTAPI PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE)(
-  IN OUT PVOID Context);
-typedef PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE *PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE;
-
-typedef NTSTATUS
-(NTAPI PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE)(
-  IN OUT PVOID Context);
-typedef PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE *PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE;
-
-typedef struct _PCI_EXPRESS_LINK_QUIESCENT_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE PciExpressEnterLinkQuiescentMode;
-  PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE PciExpressExitLinkQuiescentMode;
-} PCI_EXPRESS_LINK_QUIESCENT_INTERFACE, *PPCI_EXPRESS_LINK_QUIESCENT_INTERFACE;
-
-#define PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION            1
-
-typedef ULONG
-(NTAPI *PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE)(
-  IN PVOID Context,
-  OUT PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-typedef ULONG
-(NTAPI *PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE)(
-  IN PVOID Context,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-typedef struct _PCI_EXPRESS_ROOT_PORT_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE ReadConfigSpace;
-  PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE WriteConfigSpace;
-} PCI_EXPRESS_ROOT_PORT_INTERFACE, *PPCI_EXPRESS_ROOT_PORT_INTERFACE;
-
-#define PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION            1
-
-typedef NTSTATUS
-(NTAPI PCI_MSIX_SET_ENTRY)(
-  IN PVOID Context,
-  IN ULONG TableEntry,
-  IN ULONG MessageNumber);
-typedef PCI_MSIX_SET_ENTRY *PPCI_MSIX_SET_ENTRY;
-
-typedef NTSTATUS
-(NTAPI PCI_MSIX_MASKUNMASK_ENTRY)(
-  IN PVOID Context,
-  IN ULONG TableEntry);
-typedef PCI_MSIX_MASKUNMASK_ENTRY *PPCI_MSIX_MASKUNMASK_ENTRY;
-
-typedef NTSTATUS
-(NTAPI PCI_MSIX_GET_ENTRY)(
-  IN PVOID Context,
-  IN ULONG TableEntry,
-  OUT PULONG MessageNumber,
-  OUT PBOOLEAN Masked);
-typedef PCI_MSIX_GET_ENTRY *PPCI_MSIX_GET_ENTRY;
-
-typedef NTSTATUS
-(NTAPI PCI_MSIX_GET_TABLE_SIZE)(
-  IN PVOID Context,
-  OUT PULONG TableSize);
-typedef PCI_MSIX_GET_TABLE_SIZE *PPCI_MSIX_GET_TABLE_SIZE;
-
-typedef struct _PCI_MSIX_TABLE_CONFIG_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PPCI_MSIX_SET_ENTRY SetTableEntry;
-  PPCI_MSIX_MASKUNMASK_ENTRY MaskTableEntry;
-  PPCI_MSIX_MASKUNMASK_ENTRY UnmaskTableEntry;
-  PPCI_MSIX_GET_ENTRY GetTableEntry;
-  PPCI_MSIX_GET_TABLE_SIZE GetTableSize;
-} PCI_MSIX_TABLE_CONFIG_INTERFACE, *PPCI_MSIX_TABLE_CONFIG_INTERFACE;
-
-#define PCI_MSIX_TABLE_CONFIG_MINIMUM_SIZE \
-        RTL_SIZEOF_THROUGH_FIELD(PCI_MSIX_TABLE_CONFIG_INTERFACE, UnmaskTableEntry)
-$endif
-$if (_NTDDK_)
-
-#ifndef _ARC_DDK_
-#define _ARC_DDK_
-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,
-  RealModePCIEnumeration,
-  MaximumType
-} CONFIGURATION_TYPE, *PCONFIGURATION_TYPE;
-#endif /* !_ARC_DDK_ */
-
-/*
-** IRP function codes
-*/
-
-#define IRP_MN_QUERY_DIRECTORY            0x01
-#define IRP_MN_NOTIFY_CHANGE_DIRECTORY    0x02
-
-#define IRP_MN_USER_FS_REQUEST            0x00
-#define IRP_MN_MOUNT_VOLUME               0x01
-#define IRP_MN_VERIFY_VOLUME              0x02
-#define IRP_MN_LOAD_FILE_SYSTEM           0x03
-#define IRP_MN_TRACK_LINK                 0x04
-#define IRP_MN_KERNEL_CALL                0x04
-
-#define IRP_MN_LOCK                       0x01
-#define IRP_MN_UNLOCK_SINGLE              0x02
-#define IRP_MN_UNLOCK_ALL                 0x03
-#define IRP_MN_UNLOCK_ALL_BY_KEY          0x04
-
-#define IRP_MN_FLUSH_AND_PURGE          0x01
-
-#define IRP_MN_NORMAL                     0x00
-#define IRP_MN_DPC                        0x01
-#define IRP_MN_MDL                        0x02
-#define IRP_MN_COMPLETE                   0x04
-#define IRP_MN_COMPRESSED                 0x08
-
-#define IRP_MN_MDL_DPC                    (IRP_MN_MDL | IRP_MN_DPC)
-#define IRP_MN_COMPLETE_MDL               (IRP_MN_COMPLETE | IRP_MN_MDL)
-#define IRP_MN_COMPLETE_MDL_DPC           (IRP_MN_COMPLETE_MDL | IRP_MN_DPC)
-
-#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
-
-#define IO_CHECK_CREATE_PARAMETERS      0x0200
-#define IO_ATTACH_DEVICE                0x0400
-#define IO_IGNORE_SHARE_ACCESS_CHECK    0x0800
-
-typedef
-NTSTATUS
-(NTAPI *PIO_QUERY_DEVICE_ROUTINE)(
-  IN PVOID Context,
-  IN PUNICODE_STRING PathName,
-  IN INTERFACE_TYPE BusType,
-  IN ULONG BusNumber,
-  IN PKEY_VALUE_FULL_INFORMATION *BusInformation,
-  IN CONFIGURATION_TYPE ControllerType,
-  IN ULONG ControllerNumber,
-  IN PKEY_VALUE_FULL_INFORMATION *ControllerInformation,
-  IN CONFIGURATION_TYPE PeripheralType,
-  IN ULONG PeripheralNumber,
-  IN PKEY_VALUE_FULL_INFORMATION *PeripheralInformation);
-
-typedef enum _IO_QUERY_DEVICE_DATA_FORMAT {
-  IoQueryDeviceIdentifier = 0,
-  IoQueryDeviceConfigurationData,
-  IoQueryDeviceComponentInformation,
-  IoQueryDeviceMaxData
-} IO_QUERY_DEVICE_DATA_FORMAT, *PIO_QUERY_DEVICE_DATA_FORMAT;
-
-typedef VOID
-(NTAPI *PDRIVER_REINITIALIZE)(
-  IN struct _DRIVER_OBJECT *DriverObject,
-  IN PVOID Context OPTIONAL,
-  IN ULONG Count);
-
-typedef struct _CONTROLLER_OBJECT {
-  CSHORT Type;
-  CSHORT Size;
-  PVOID ControllerExtension;
-  KDEVICE_QUEUE DeviceWaitQueue;
-  ULONG Spare1;
-  LARGE_INTEGER Spare2;
-} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
-
-#define DRVO_REINIT_REGISTERED          0x00000008
-#define DRVO_INITIALIZED                0x00000010
-#define DRVO_BOOTREINIT_REGISTERED      0x00000020
-#define DRVO_LEGACY_RESOURCES           0x00000040
-
-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;
-
-typedef struct _DISK_SIGNATURE {
-  ULONG PartitionStyle;
-  _ANONYMOUS_UNION union {
-    struct {
-      ULONG Signature;
-      ULONG CheckSum;
-    } Mbr;
-    struct {
-      GUID DiskId;
-    } Gpt;
-  } DUMMYUNIONNAME;
-} DISK_SIGNATURE, *PDISK_SIGNATURE;
-
-typedef struct _TXN_PARAMETER_BLOCK {
-  USHORT Length;
-  USHORT TxFsContext;
-  PVOID TransactionObject;
-} TXN_PARAMETER_BLOCK, *PTXN_PARAMETER_BLOCK;
-
-#define TXF_MINIVERSION_DEFAULT_VIEW        (0xFFFE)
-
-typedef struct _IO_DRIVER_CREATE_CONTEXT {
-  CSHORT Size;
-  struct _ECP_LIST *ExtraCreateParameter;
-  PVOID DeviceObjectHint;
-  PTXN_PARAMETER_BLOCK TxnParameters;
-} IO_DRIVER_CREATE_CONTEXT, *PIO_DRIVER_CREATE_CONTEXT;
-
-typedef struct _AGP_TARGET_BUS_INTERFACE_STANDARD {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PGET_SET_DEVICE_DATA SetBusData;
-  PGET_SET_DEVICE_DATA GetBusData;
-  UCHAR CapabilityID;
-} AGP_TARGET_BUS_INTERFACE_STANDARD, *PAGP_TARGET_BUS_INTERFACE_STANDARD;
-
-typedef NTSTATUS
-(NTAPI *PGET_LOCATION_STRING)(
-  IN OUT PVOID Context OPTIONAL,
-  OUT PWCHAR *LocationStrings);
-
-typedef struct _PNP_LOCATION_INTERFACE {
-  USHORT Size;
-  USHORT Version;
-  PVOID Context;
-  PINTERFACE_REFERENCE InterfaceReference;
-  PINTERFACE_DEREFERENCE InterfaceDereference;
-  PGET_LOCATION_STRING GetLocationString;
-} PNP_LOCATION_INTERFACE, *PPNP_LOCATION_INTERFACE;
-
-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;
-
-typedef struct _ARBITER_TEST_ALLOCATION_PARAMETERS {
-  IN OUT PLIST_ENTRY ArbitrationList;
-  IN ULONG AllocateFromCount;
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom;
-} ARBITER_TEST_ALLOCATION_PARAMETERS, *PARBITER_TEST_ALLOCATION_PARAMETERS;
-
-typedef struct _ARBITER_RETEST_ALLOCATION_PARAMETERS {
-  IN OUT PLIST_ENTRY ArbitrationList;
-  IN ULONG AllocateFromCount;
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom;
-} ARBITER_RETEST_ALLOCATION_PARAMETERS, *PARBITER_RETEST_ALLOCATION_PARAMETERS;
-
-typedef struct _ARBITER_BOOT_ALLOCATION_PARAMETERS {
-  IN OUT PLIST_ENTRY ArbitrationList;
-} ARBITER_BOOT_ALLOCATION_PARAMETERS, *PARBITER_BOOT_ALLOCATION_PARAMETERS;
-
-typedef struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS {
-  OUT PCM_PARTIAL_RESOURCE_LIST *AllocatedResources;
-} ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS, *PARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS;
-
-typedef struct _ARBITER_QUERY_CONFLICT_PARAMETERS {
-  IN PDEVICE_OBJECT PhysicalDeviceObject;
-  IN PIO_RESOURCE_DESCRIPTOR ConflictingResource;
-  OUT PULONG ConflictCount;
-  OUT PARBITER_CONFLICT_INFO *Conflicts;
-} ARBITER_QUERY_CONFLICT_PARAMETERS, *PARBITER_QUERY_CONFLICT_PARAMETERS;
-
-typedef struct _ARBITER_QUERY_ARBITRATE_PARAMETERS {
-  IN PLIST_ENTRY ArbitrationList;
-} ARBITER_QUERY_ARBITRATE_PARAMETERS, *PARBITER_QUERY_ARBITRATE_PARAMETERS;
-
-typedef struct _ARBITER_ADD_RESERVED_PARAMETERS {
-  IN PDEVICE_OBJECT ReserveDevice;
-} ARBITER_ADD_RESERVED_PARAMETERS, *PARBITER_ADD_RESERVED_PARAMETERS;
-
-typedef struct _ARBITER_PARAMETERS {
-  union {
-    ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation;
-    ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation;
-    ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation;
-    ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources;
-    ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict;
-    ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate;
-    ARBITER_ADD_RESERVED_PARAMETERS AddReserved;
-  } Parameters;
-} ARBITER_PARAMETERS, *PARBITER_PARAMETERS;
-
-typedef enum _ARBITER_REQUEST_SOURCE {
-  ArbiterRequestUndefined = -1,
-  ArbiterRequestLegacyReported,
-  ArbiterRequestHalReported,
-  ArbiterRequestLegacyAssigned,
-  ArbiterRequestPnpDetected,
-  ArbiterRequestPnpEnumerated
-} ARBITER_REQUEST_SOURCE;
-
-typedef enum _ARBITER_RESULT {
-  ArbiterResultUndefined = -1,
-  ArbiterResultSuccess,
-  ArbiterResultExternalConflict,
-  ArbiterResultNullRequest
-} ARBITER_RESULT;
-
-#define ARBITER_FLAG_BOOT_CONFIG 0x00000001
-
-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;
-
-typedef NTSTATUS
-(NTAPI *PARBITER_HANDLER)(
-  IN OUT PVOID Context,
-  IN ARBITER_ACTION Action,
-  IN OUT PARBITER_PARAMETERS Parameters);
-
-#define ARBITER_PARTIAL 0x00000001
-
-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;
-
-typedef enum _RESOURCE_TRANSLATION_DIRECTION {
-  TranslateChildToParent,
-  TranslateParentToChild
-} RESOURCE_TRANSLATION_DIRECTION;
-
-typedef NTSTATUS
-(NTAPI *PTRANSLATE_RESOURCE_HANDLER)(
-  IN OUT PVOID Context OPTIONAL,
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Source,
-  IN RESOURCE_TRANSLATION_DIRECTION Direction,
-  IN ULONG AlternativesCount OPTIONAL,
-  IN IO_RESOURCE_DESCRIPTOR Alternatives[],
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR Target);
-
-typedef NTSTATUS
-(NTAPI *PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER)(
-  IN OUT PVOID Context OPTIONAL,
-  IN PIO_RESOURCE_DESCRIPTOR Source,
-  IN PDEVICE_OBJECT PhysicalDeviceObject,
-  OUT PULONG TargetCount,
-  OUT PIO_RESOURCE_DESCRIPTOR *Target);
-
-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;
-
-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 Agp3Mode:1;
-    ULONG FastWrite:1;
-    ULONG FourGB:1;
-    ULONG HostTransDisable:1;
-    ULONG Gart64:1;
-    ULONG ITA_Coherent:1;
-    ULONG SideBandAddressing:1;
-    ULONG CalibrationCycle:3;
-    ULONG AsyncRequestSize:3;
-    ULONG Rsvd1:1;
-    ULONG Isoch:1;
-    ULONG Rsvd2:6;
-    ULONG RequestQueueDepthMaximum:8;
-  } AGPStatus;
-  struct _PCI_AGP_COMMAND {
-    ULONG Rate:3;
-    ULONG Rsvd1:1;
-    ULONG FastWriteEnable:1;
-    ULONG FourGBEnable:1;
-    ULONG Rsvd2:1;
-    ULONG Gart64:1;
-    ULONG AGPEnable:1;
-    ULONG SBAEnable:1;
-    ULONG CalibrationCycle:3;
-    ULONG AsyncReqSize:3;
-    ULONG Rsvd3:8;
-    ULONG RequestQueueDepth:8;
-  } AGPCommand;
-} PCI_AGP_CAPABILITY, *PPCI_AGP_CAPABILITY;
-
-typedef enum _EXTENDED_AGP_REGISTER {
-  IsochStatus,
-  AgpControl,
-  ApertureSize,
-  AperturePageSize,
-  GartLow,
-  GartHigh,
-  IsochCommand
-} EXTENDED_AGP_REGISTER, *PEXTENDED_AGP_REGISTER;
-
-typedef struct _PCI_AGP_ISOCH_STATUS {
-  ULONG ErrorCode:2;
-  ULONG Rsvd1:1;
-  ULONG Isoch_L:3;
-  ULONG Isoch_Y:2;
-  ULONG Isoch_N:8;
-  ULONG Rsvd2:16;
-} PCI_AGP_ISOCH_STATUS, *PPCI_AGP_ISOCH_STATUS;
-
-typedef struct _PCI_AGP_CONTROL {
-  ULONG Rsvd1:7;
-  ULONG GTLB_Enable:1;
-  ULONG AP_Enable:1;
-  ULONG CAL_Disable:1;
-  ULONG Rsvd2:22;
-} PCI_AGP_CONTROL, *PPCI_AGP_CONTROL;
-
-typedef struct _PCI_AGP_APERTURE_PAGE_SIZE {
-  USHORT PageSizeMask:11;
-  USHORT Rsvd1:1;
-  USHORT PageSizeSelect:4;
-} PCI_AGP_APERTURE_PAGE_SIZE, *PPCI_AGP_APERTURE_PAGE_SIZE;
-
-typedef struct _PCI_AGP_ISOCH_COMMAND {
-  USHORT Rsvd1:6;
-  USHORT Isoch_Y:2;
-  USHORT Isoch_N:8;
-} PCI_AGP_ISOCH_COMMAND, *PPCI_AGP_ISOCH_COMMAND;
-
-typedef struct PCI_AGP_EXTENDED_CAPABILITY {
-  PCI_AGP_ISOCH_STATUS IsochStatus;
-  PCI_AGP_CONTROL AgpControl;
-  USHORT ApertureSize;
-  PCI_AGP_APERTURE_PAGE_SIZE AperturePageSize;
-  ULONG GartLow;
-  ULONG GartHigh;
-  PCI_AGP_ISOCH_COMMAND IsochCommand;
-} PCI_AGP_EXTENDED_CAPABILITY, *PPCI_AGP_EXTENDED_CAPABILITY;
-
-#define PCI_AGP_RATE_1X     0x1
-#define PCI_AGP_RATE_2X     0x2
-#define PCI_AGP_RATE_4X     0x4
-
-#define PCIX_MODE_CONVENTIONAL_PCI  0x0
-#define PCIX_MODE1_66MHZ            0x1
-#define PCIX_MODE1_100MHZ           0x2
-#define PCIX_MODE1_133MHZ           0x3
-#define PCIX_MODE2_266_66MHZ        0x9
-#define PCIX_MODE2_266_100MHZ       0xA
-#define PCIX_MODE2_266_133MHZ       0xB
-#define PCIX_MODE2_533_66MHZ        0xD
-#define PCIX_MODE2_533_100MHZ       0xE
-#define PCIX_MODE2_533_133MHZ       0xF
-
-#define PCIX_VERSION_MODE1_ONLY     0x0
-#define PCIX_VERSION_MODE2_ECC      0x1
-#define PCIX_VERSION_DUAL_MODE_ECC  0x2
-
-typedef struct _PCIX_BRIDGE_CAPABILITY {
-  PCI_CAPABILITIES_HEADER Header;
-  union {
-    struct {
-      USHORT Bus64Bit:1;
-      USHORT Bus133MHzCapable:1;
-      USHORT SplitCompletionDiscarded:1;
-      USHORT UnexpectedSplitCompletion:1;
-      USHORT SplitCompletionOverrun:1;
-      USHORT SplitRequestDelayed:1;
-      USHORT BusModeFrequency:4;
-      USHORT Rsvd:2;
-      USHORT Version:2;
-      USHORT Bus266MHzCapable:1;
-      USHORT Bus533MHzCapable:1;
-    } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-  } SecondaryStatus;
-  union {
-    struct {
-      ULONG FunctionNumber:3;
-      ULONG DeviceNumber:5;
-      ULONG BusNumber:8;
-      ULONG Device64Bit:1;
-      ULONG Device133MHzCapable:1;
-      ULONG SplitCompletionDiscarded:1;
-      ULONG UnexpectedSplitCompletion:1;
-      ULONG SplitCompletionOverrun:1;
-      ULONG SplitRequestDelayed:1;
-      ULONG Rsvd:7;
-      ULONG DIMCapable:1;
-      ULONG Device266MHzCapable:1;
-      ULONG Device533MHzCapable:1;
-    } DUMMYSTRUCTNAME;
-    ULONG AsULONG;
-  } BridgeStatus;
-  USHORT UpstreamSplitTransactionCapacity;
-  USHORT UpstreamSplitTransactionLimit;
-  USHORT DownstreamSplitTransactionCapacity;
-  USHORT DownstreamSplitTransactionLimit;
-  union {
-    struct {
-      ULONG SelectSecondaryRegisters:1;
-      ULONG ErrorPresentInOtherBank:1;
-      ULONG AdditionalCorrectableError:1;
-      ULONG AdditionalUncorrectableError:1;
-      ULONG ErrorPhase:3;
-      ULONG ErrorCorrected:1;
-      ULONG Syndrome:8;
-      ULONG ErrorFirstCommand:4;
-      ULONG ErrorSecondCommand:4;
-      ULONG ErrorUpperAttributes:4;
-      ULONG ControlUpdateEnable:1;
-      ULONG Rsvd:1;
-      ULONG DisableSingleBitCorrection:1;
-      ULONG EccMode:1;
-    } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-  } EccControlStatus;
-  ULONG EccFirstAddress;
-  ULONG EccSecondAddress;
-  ULONG EccAttribute;
-} PCIX_BRIDGE_CAPABILITY, *PPCIX_BRIDGE_CAPABILITY;
-
-typedef struct _PCI_SUBSYSTEM_IDS_CAPABILITY {
-  PCI_CAPABILITIES_HEADER Header;
-  USHORT Reserved;
-  USHORT SubVendorID;
-  USHORT SubSystemID;
-} PCI_SUBSYSTEM_IDS_CAPABILITY, *PPCI_SUBSYSTEM_IDS_CAPABILITY;
-
-#define OSC_FIRMWARE_FAILURE                            0x02
-#define OSC_UNRECOGNIZED_UUID                           0x04
-#define OSC_UNRECOGNIZED_REVISION                       0x08
-#define OSC_CAPABILITIES_MASKED                         0x10
-
-#define PCI_ROOT_BUS_OSC_METHOD_CAPABILITY_REVISION     0x01
-
-typedef struct _PCI_ROOT_BUS_OSC_SUPPORT_FIELD {
-  union {
-    struct {
-      ULONG ExtendedConfigOpRegions:1;
-      ULONG ActiveStatePowerManagement:1;
-      ULONG ClockPowerManagement:1;
-      ULONG SegmentGroups:1;
-      ULONG MessageSignaledInterrupts:1;
-      ULONG WindowsHardwareErrorArchitecture:1;
-      ULONG Reserved:26;
-    } DUMMYSTRUCTNAME;
-    ULONG AsULONG;
-  } u;
-} PCI_ROOT_BUS_OSC_SUPPORT_FIELD, *PPCI_ROOT_BUS_OSC_SUPPORT_FIELD;
-
-typedef struct _PCI_ROOT_BUS_OSC_CONTROL_FIELD {
-  union {
-    struct {
-      ULONG ExpressNativeHotPlug:1;
-      ULONG ShpcNativeHotPlug:1;
-      ULONG ExpressNativePME:1;
-      ULONG ExpressAdvancedErrorReporting:1;
-      ULONG ExpressCapabilityStructure:1;
-      ULONG Reserved:27;
-    } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-  } u;
-} PCI_ROOT_BUS_OSC_CONTROL_FIELD, *PPCI_ROOT_BUS_OSC_CONTROL_FIELD;
-
-typedef enum _PCI_HARDWARE_INTERFACE {
-  PciConventional,
-  PciXMode1,
-  PciXMode2,
-  PciExpress
-} PCI_HARDWARE_INTERFACE, *PPCI_HARDWARE_INTERFACE;
-
-typedef enum {
-  BusWidth32Bits,
-  BusWidth64Bits
-} PCI_BUS_WIDTH;
-
-typedef struct _PCI_ROOT_BUS_HARDWARE_CAPABILITY {
-  PCI_HARDWARE_INTERFACE SecondaryInterface;
-  struct {
-    BOOLEAN BusCapabilitiesFound;
-    ULONG CurrentSpeedAndMode;
-    ULONG SupportedSpeedsAndModes;
-    BOOLEAN DeviceIDMessagingCapable;
-    PCI_BUS_WIDTH SecondaryBusWidth;
-  } DUMMYSTRUCTNAME;
-  PCI_ROOT_BUS_OSC_SUPPORT_FIELD OscFeatureSupport;
-  PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlRequest;
-  PCI_ROOT_BUS_OSC_CONTROL_FIELD OscControlGranted;
-} PCI_ROOT_BUS_HARDWARE_CAPABILITY, *PPCI_ROOT_BUS_HARDWARE_CAPABILITY;
-
-typedef union _PCI_EXPRESS_CAPABILITIES_REGISTER {
-  struct {
-    USHORT CapabilityVersion:4;
-    USHORT DeviceType:4;
-    USHORT SlotImplemented:1;
-    USHORT InterruptMessageNumber:5;
-    USHORT Rsvd:2;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_CAPABILITIES_REGISTER, *PPCI_EXPRESS_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER {
-  struct {
-    ULONG MaxPayloadSizeSupported:3;
-    ULONG PhantomFunctionsSupported:2;
-    ULONG ExtendedTagSupported:1;
-    ULONG L0sAcceptableLatency:3;
-    ULONG L1AcceptableLatency:3;
-    ULONG Undefined:3;
-    ULONG RoleBasedErrorReporting:1;
-    ULONG Rsvd1:2;
-    ULONG CapturedSlotPowerLimit:8;
-    ULONG CapturedSlotPowerLimitScale:2;
-    ULONG Rsvd2:4;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER, *PPCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER;
-
-#define PCI_EXPRESS_AER_DEVICE_CONTROL_MASK 0x07;
-
-typedef union _PCI_EXPRESS_DEVICE_CONTROL_REGISTER {
-  struct {
-    USHORT CorrectableErrorEnable:1;
-    USHORT NonFatalErrorEnable:1;
-    USHORT FatalErrorEnable:1;
-    USHORT UnsupportedRequestErrorEnable:1;
-    USHORT EnableRelaxedOrder:1;
-    USHORT MaxPayloadSize:3;
-    USHORT ExtendedTagEnable:1;
-    USHORT PhantomFunctionsEnable:1;
-    USHORT AuxPowerEnable:1;
-    USHORT NoSnoopEnable:1;
-    USHORT MaxReadRequestSize:3;
-    USHORT BridgeConfigRetryEnable:1;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_DEVICE_CONTROL_REGISTER, *PPCI_EXPRESS_DEVICE_CONTROL_REGISTER;
-
-#define PCI_EXPRESS_AER_DEVICE_STATUS_MASK 0x0F;
-
-typedef union _PCI_EXPRESS_DEVICE_STATUS_REGISTER {
-  struct {
-    USHORT CorrectableErrorDetected:1;
-    USHORT NonFatalErrorDetected:1;
-    USHORT FatalErrorDetected:1;
-    USHORT UnsupportedRequestDetected:1;
-    USHORT AuxPowerDetected:1;
-    USHORT TransactionsPending:1;
-    USHORT Rsvd:10;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_DEVICE_STATUS_REGISTER, *PPCI_EXPRESS_DEVICE_STATUS_REGISTER;
-
-typedef union _PCI_EXPRESS_LINK_CAPABILITIES_REGISTER {
-  struct {
-    ULONG MaximumLinkSpeed:4;
-    ULONG MaximumLinkWidth:6;
-    ULONG ActiveStatePMSupport:2;
-    ULONG L0sExitLatency:3;
-    ULONG L1ExitLatency:3;
-    ULONG ClockPowerManagement:1;
-    ULONG SurpriseDownErrorReportingCapable:1;
-    ULONG DataLinkLayerActiveReportingCapable:1;
-    ULONG Rsvd:3;
-    ULONG PortNumber:8;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_LINK_CAPABILITIES_REGISTER, *PPCI_EXPRESS_LINK_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_LINK_CONTROL_REGISTER {
-  struct {
-    USHORT ActiveStatePMControl:2;
-    USHORT Rsvd1:1;
-    USHORT ReadCompletionBoundary:1;
-    USHORT LinkDisable:1;
-    USHORT RetrainLink:1;
-    USHORT CommonClockConfig:1;
-    USHORT ExtendedSynch:1;
-    USHORT EnableClockPowerManagement:1;
-    USHORT Rsvd2:7;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_LINK_CONTROL_REGISTER, *PPCI_EXPRESS_LINK_CONTROL_REGISTER;
-
-typedef union _PCI_EXPRESS_LINK_STATUS_REGISTER {
-  struct {
-    USHORT LinkSpeed:4;
-    USHORT LinkWidth:6;
-    USHORT Undefined:1;
-    USHORT LinkTraining:1;
-    USHORT SlotClockConfig:1;
-    USHORT DataLinkLayerActive:1;
-    USHORT Rsvd:2;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_LINK_STATUS_REGISTER, *PPCI_EXPRESS_LINK_STATUS_REGISTER;
-
-typedef union _PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER {
-  struct {
-    ULONG AttentionButtonPresent:1;
-    ULONG PowerControllerPresent:1;
-    ULONG MRLSensorPresent:1;
-    ULONG AttentionIndicatorPresent:1;
-    ULONG PowerIndicatorPresent:1;
-    ULONG HotPlugSurprise:1;
-    ULONG HotPlugCapable:1;
-    ULONG SlotPowerLimit:8;
-    ULONG SlotPowerLimitScale:2;
-    ULONG ElectromechanicalLockPresent:1;
-    ULONG NoCommandCompletedSupport:1;
-    ULONG PhysicalSlotNumber:13;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER, *PPCI_EXPRESS_SLOT_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_SLOT_CONTROL_REGISTER {
-  struct {
-    USHORT AttentionButtonEnable:1;
-    USHORT PowerFaultDetectEnable:1;
-    USHORT MRLSensorEnable:1;
-    USHORT PresenceDetectEnable:1;
-    USHORT CommandCompletedEnable:1;
-    USHORT HotPlugInterruptEnable:1;
-    USHORT AttentionIndicatorControl:2;
-    USHORT PowerIndicatorControl:2;
-    USHORT PowerControllerControl:1;
-    USHORT ElectromechanicalLockControl:1;
-    USHORT DataLinkStateChangeEnable:1;
-    USHORT Rsvd:3;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SLOT_CONTROL_REGISTER, *PPCI_EXPRESS_SLOT_CONTROL_REGISTER;
-
-typedef union _PCI_EXPRESS_SLOT_STATUS_REGISTER {
-  struct {
-    USHORT AttentionButtonPressed:1;
-    USHORT PowerFaultDetected:1;
-    USHORT MRLSensorChanged:1;
-    USHORT PresenceDetectChanged:1;
-    USHORT CommandCompleted:1;
-    USHORT MRLSensorState:1;
-    USHORT PresenceDetectState:1;
-    USHORT ElectromechanicalLockEngaged:1;
-    USHORT DataLinkStateChanged:1;
-    USHORT Rsvd:7;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_SLOT_STATUS_REGISTER, *PPCI_EXPRESS_SLOT_STATUS_REGISTER;
-
-typedef union _PCI_EXPRESS_ROOT_CONTROL_REGISTER {
-  struct {
-    USHORT CorrectableSerrEnable:1;
-    USHORT NonFatalSerrEnable:1;
-    USHORT FatalSerrEnable:1;
-    USHORT PMEInterruptEnable:1;
-    USHORT CRSSoftwareVisibilityEnable:1;
-    USHORT Rsvd:11;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_ROOT_CONTROL_REGISTER, *PPCI_EXPRESS_ROOT_CONTROL_REGISTER;
-
-typedef union _PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER {
-  struct {
-    USHORT CRSSoftwareVisibility:1;
-    USHORT Rsvd:15;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER, *PPCI_EXPRESS_ROOT_CAPABILITIES_REGISTER;
-
-typedef union _PCI_EXPRESS_ROOT_STATUS_REGISTER {
-  struct {
-    ULONG PMERequestorId:16;
-    ULONG PMEStatus:1;
-    ULONG PMEPending:1;
-    ULONG Rsvd:14;
-  } DUMMYSTRUCTNAME;
-  ULONG AsULONG;
-} PCI_EXPRESS_ROOT_STATUS_REGISTER, *PPCI_EXPRESS_ROOT_STATUS_REGISTER;
-
-typedef struct _PCI_EXPRESS_CAPABILITY {
-  PCI_CAPABILITIES_HEADER Header;
-  PCI_EXPRESS_CAPABILITIES_REGISTER ExpressCapabilities;
-  PCI_EXPRESS_DEVICE_CAPABILITIES_REGISTER DeviceCapabilities;
-  PCI_EXPRESS_DEVICE_CONTROL_REGISTER DeviceControl;
-  PCI_EXPRESS_DEVICE_STATUS_REGISTER DeviceStatus;
-  PCI_EXPRESS_LINK_CAPABILITIES_REGISTER LinkCapabilities;
-  PCI_EXPRESS_LINK_CONTROL_REGISTER LinkControl;
-  PCI_EXPRESS_LINK_STATUS_REGISTER LinkStatus;
-  PCI_EXPRESS_SLOT_CAPABILITIES_REGISTER SlotCapabilities;
-  PCI_EXPRESS_SLOT_CONTROL_REGISTER SlotControl;
-  PCI_EXPRESS_SLOT_STATUS_REGISTER SlotStatus;
-  PCI_EXPRESS_ROOT_CONTROL_REGISTER RootControl;
-  PCI_EXPRESS_ROOT_CAPABILITIES_REGISTER RootCapabilities;
-  PCI_EXPRESS_ROOT_STATUS_REGISTER RootStatus;
-} PCI_EXPRESS_CAPABILITY, *PPCI_EXPRESS_CAPABILITY;
-
-typedef enum {
-  MRLClosed = 0,
-  MRLOpen
-} PCI_EXPRESS_MRL_STATE;
-
-typedef enum {
-  SlotEmpty = 0,
-  CardPresent
-} PCI_EXPRESS_CARD_PRESENCE;
-
-typedef enum {
-  IndicatorOn = 1,
-  IndicatorBlink,
-  IndicatorOff
-} PCI_EXPRESS_INDICATOR_STATE;
-
-typedef enum {
-  PowerOn = 0,
-  PowerOff
-} PCI_EXPRESS_POWER_STATE;
-
-typedef enum {
-  L0sEntrySupport = 1,
-  L0sAndL1EntrySupport = 3
-} PCI_EXPRESS_ASPM_SUPPORT;
-
-typedef enum {
-  L0sAndL1EntryDisabled,
-  L0sEntryEnabled,
-  L1EntryEnabled,
-  L0sAndL1EntryEnabled
-} PCI_EXPRESS_ASPM_CONTROL;
-
-typedef enum {
-  L0s_Below64ns = 0,
-  L0s_64ns_128ns,
-  L0s_128ns_256ns,
-  L0s_256ns_512ns,
-  L0s_512ns_1us,
-  L0s_1us_2us,
-  L0s_2us_4us,
-  L0s_Above4us
-} PCI_EXPRESS_L0s_EXIT_LATENCY;
-
-typedef enum {
-  L1_Below1us = 0,
-  L1_1us_2us,
-  L1_2us_4us,
-  L1_4us_8us,
-  L1_8us_16us,
-  L1_16us_32us,
-  L1_32us_64us,
-  L1_Above64us
-} PCI_EXPRESS_L1_EXIT_LATENCY;
-
-typedef enum {
-  PciExpressEndpoint = 0,
-  PciExpressLegacyEndpoint,
-  PciExpressRootPort = 4,
-  PciExpressUpstreamSwitchPort,
-  PciExpressDownstreamSwitchPort,
-  PciExpressToPciXBridge,
-  PciXToExpressBridge,
-  PciExpressRootComplexIntegratedEndpoint,
-  PciExpressRootComplexEventCollector
-} PCI_EXPRESS_DEVICE_TYPE;
-
-typedef enum {
-  MaxPayload128Bytes = 0,
-  MaxPayload256Bytes,
-  MaxPayload512Bytes,
-  MaxPayload1024Bytes,
-  MaxPayload2048Bytes,
-  MaxPayload4096Bytes
-} PCI_EXPRESS_MAX_PAYLOAD_SIZE;
-
-typedef union _PCI_EXPRESS_PME_REQUESTOR_ID {
-  struct {
-    USHORT FunctionNumber:3;
-    USHORT DeviceNumber:5;
-    USHORT BusNumber:8;
-  } DUMMYSTRUCTNAME;
-  USHORT AsUSHORT;
-} PCI_EXPRESS_PME_REQUESTOR_ID, *PPCI_EXPRESS_PME_REQUESTOR_ID;
-
-#if defined(_WIN64)
-
-#ifndef USE_DMA_MACROS
-#define USE_DMA_MACROS
-#endif
-
-#ifndef NO_LEGACY_DRIVERS
-#define NO_LEGACY_DRIVERS
-#endif
-
-#endif /* defined(_WIN64) */
-
-typedef enum _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE {
-  ResourceTypeSingle = 0,
-  ResourceTypeRange,
-  ResourceTypeExtendedCounterConfiguration,
-  ResourceTypeOverflow,
-  ResourceTypeMax
-} PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE;
-
-typedef struct _PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR {
-  PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE Type;
-  ULONG Flags;
-  union {
-    ULONG CounterIndex;
-    ULONG ExtendedRegisterAddress;
-    struct {
-      ULONG Begin;
-      ULONG End;
-    } Range;
-  } u;
-} PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR, *PPHYSICAL_COUNTER_RESOURCE_DESCRIPTOR;
-
-typedef struct _PHYSICAL_COUNTER_RESOURCE_LIST {
-  ULONG Count;
-  PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR Descriptors[ANYSIZE_ARRAY];
-} PHYSICAL_COUNTER_RESOURCE_LIST, *PPHYSICAL_COUNTER_RESOURCE_LIST;
-
-typedef VOID
-(NTAPI *PciPin2Line)(
-  IN struct _BUS_HANDLER *BusHandler,
-  IN struct _BUS_HANDLER *RootHandler,
-  IN PCI_SLOT_NUMBER SlotNumber,
-  IN PPCI_COMMON_CONFIG PciData);
-
-typedef VOID
-(NTAPI *PciLine2Pin)(
-  IN struct _BUS_HANDLER *BusHandler,
-  IN struct _BUS_HANDLER *RootHandler,
-  IN PCI_SLOT_NUMBER SlotNumber,
-  IN PPCI_COMMON_CONFIG PciNewData,
-  IN PPCI_COMMON_CONFIG PciOldData);
-
-typedef VOID
-(NTAPI *PciReadWriteConfig)(
-  IN struct _BUS_HANDLER *BusHandler,
-  IN PCI_SLOT_NUMBER Slot,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-#define PCI_DATA_TAG ' ICP'
-#define PCI_DATA_VERSION 1
-
-typedef struct _PCIBUSDATA {
-  ULONG Tag;
-  ULONG Version;
-  PciReadWriteConfig ReadConfig;
-  PciReadWriteConfig WriteConfig;
-  PciPin2Line Pin2Line;
-  PciLine2Pin Line2Pin;
-  PCI_SLOT_NUMBER ParentSlot;
-  PVOID Reserved[4];
-} PCIBUSDATA, *PPCIBUSDATA;
-
-#ifndef _PCIINTRF_X_
-#define _PCIINTRF_X_
-
-typedef ULONG
-(NTAPI *PCI_READ_WRITE_CONFIG)(
-  IN PVOID Context,
-  IN ULONG BusOffset,
-  IN ULONG Slot,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-typedef VOID
-(NTAPI *PCI_PIN_TO_LINE)(
-  IN PVOID Context,
-  IN PPCI_COMMON_CONFIG PciData);
-
-typedef VOID
-(NTAPI *PCI_LINE_TO_PIN)(
-  IN PVOID Context,
-  IN PPCI_COMMON_CONFIG PciNewData,
-  IN PPCI_COMMON_CONFIG PciOldData);
-
-typedef VOID
-(NTAPI *PCI_ROOT_BUS_CAPABILITY)(
-  IN PVOID Context,
-  OUT PPCI_ROOT_BUS_HARDWARE_CAPABILITY HardwareCapability);
-
-typedef VOID
-(NTAPI *PCI_EXPRESS_WAKE_CONTROL)(
-  IN PVOID Context,
-  IN BOOLEAN EnableWake);
-
-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_ROOT_BUS_CAPABILITY RootBusCapability;
-  PCI_EXPRESS_WAKE_CONTROL ExpressWakeControl;
-} PCI_BUS_INTERFACE_STANDARD, *PPCI_BUS_INTERFACE_STANDARD;
-
-#define PCI_BUS_INTERFACE_STANDARD_VERSION 1
-
-#endif /* _PCIINTRF_X_ */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX     0x00004000
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX    0x00008000
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX \
-    (FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX | \
-     FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX)
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_DEPRECATED 0x00000200
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_DEPRECATED 0x00000300
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_DEPRECATED 0x00000300
-
-#else
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL     0x00000200
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL    0x00000300
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK        0x00000300
-
-#define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL
-#define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL_EX FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL
-#define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK_EX FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#define FILE_CHARACTERISTICS_PROPAGATED (   FILE_REMOVABLE_MEDIA   | \
-                                            FILE_READ_ONLY_DEVICE  | \
-                                            FILE_FLOPPY_DISKETTE   | \
-                                            FILE_WRITE_ONCE_MEDIA  | \
-                                            FILE_DEVICE_SECURE_OPEN  )
-
-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_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;
-
-typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {
-  LARGE_INTEGER ValidDataLength;
-} FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
-
-typedef struct _FILE_FS_LABEL_INFORMATION {
-  ULONG VolumeLabelLength;
-  WCHAR VolumeLabel[1];
-} FILE_FS_LABEL_INFORMATION, *PFILE_FS_LABEL_INFORMATION;
-
-typedef struct _FILE_FS_VOLUME_INFORMATION {
-  LARGE_INTEGER VolumeCreationTime;
-  ULONG VolumeSerialNumber;
-  ULONG VolumeLabelLength;
-  BOOLEAN SupportsObjects;
-  WCHAR VolumeLabel[1];
-} FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
-
-typedef struct _FILE_FS_SIZE_INFORMATION {
-  LARGE_INTEGER TotalAllocationUnits;
-  LARGE_INTEGER AvailableAllocationUnits;
-  ULONG SectorsPerAllocationUnit;
-  ULONG BytesPerSector;
-} FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION;
-
-typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
-  LARGE_INTEGER TotalAllocationUnits;
-  LARGE_INTEGER CallerAvailableAllocationUnits;
-  LARGE_INTEGER ActualAvailableAllocationUnits;
-  ULONG SectorsPerAllocationUnit;
-  ULONG BytesPerSector;
-} FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION;
-
-typedef struct _FILE_FS_OBJECTID_INFORMATION {
-  UCHAR ObjectId[16];
-  UCHAR ExtendedInfo[48];
-} FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;
-
-typedef union _FILE_SEGMENT_ELEMENT {
-  PVOID64 Buffer;
-  ULONGLONG Alignment;
-}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
-
-#define IOCTL_AVIO_ALLOCATE_STREAM      CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
-#define IOCTL_AVIO_FREE_STREAM          CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
-#define IOCTL_AVIO_MODIFY_STREAM        CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
-
-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;
-$endif
-
diff --git a/reactos/include/xdk/kdfuncs.h b/reactos/include/xdk/kdfuncs.h
deleted file mode 100644 (file)
index 1817849..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/******************************************************************************
- *                          Kernel Debugger Functions                         *
- ******************************************************************************/
-$if (_NTDDK_)
-NTSYSAPI
-ULONG
-NTAPI
-DbgPrompt(
-  IN PCCH Prompt,
-  OUT PCH Response,
-  IN ULONG MaximumResponseLength);
-$endif
-
-$if (_WDMDDK_)
-#ifndef _DBGNT_
-
-ULONG
-__cdecl
-DbgPrint(
-  IN PCSTR Format,
-  IN ...);
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTSYSAPI
-ULONG
-__cdecl
-DbgPrintReturnControlC(
-  IN PCCH Format,
-  IN ...);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTSYSAPI
-ULONG
-__cdecl
-DbgPrintEx(
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN PCSTR Format,
-  IN ...);
-
-#ifdef _VA_LIST_DEFINED
-
-NTSYSAPI
-ULONG
-NTAPI
-vDbgPrintEx(
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN PCCH Format,
-  IN va_list ap);
-
-NTSYSAPI
-ULONG
-NTAPI
-vDbgPrintExWithPrefix(
-  IN PCCH Prefix,
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN PCCH Format,
-  IN va_list ap);
-
-#endif /* _VA_LIST_DEFINED */
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-DbgQueryDebugFilterState(
-  IN ULONG ComponentId,
-  IN ULONG Level);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-DbgSetDebugFilterState(
-  IN ULONG ComponentId,
-  IN ULONG Level,
-  IN BOOLEAN State);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-typedef VOID
-(*PDEBUG_PRINT_CALLBACK)(
-  IN PSTRING Output,
-  IN ULONG ComponentId,
-  IN ULONG Level);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-DbgSetDebugPrintCallback(
-  IN PDEBUG_PRINT_CALLBACK DebugPrintCallback,
-  IN BOOLEAN Enable);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#endif /* _DBGNT_ */
-
-#if DBG
-
-#define KdPrint(_x_) DbgPrint _x_
-#define KdPrintEx(_x_) DbgPrintEx _x_
-#define vKdPrintEx(_x_) vDbgPrintEx _x_
-#define vKdPrintExWithPrefix(_x_) vDbgPrintExWithPrefix _x_
-#define KdBreakPoint() DbgBreakPoint()
-#define KdBreakPointWithStatus(s) DbgBreakPointWithStatus(s)
-
-#else /* !DBG */
-
-#define KdPrint(_x_)
-#define KdPrintEx(_x_)
-#define vKdPrintEx(_x_)
-#define vKdPrintExWithPrefix(_x_)
-#define KdBreakPoint()
-#define KdBreakPointWithStatus(s)
-
-#endif /* !DBG */
-
-#if defined(__GNUC__)
-
-extern NTKERNELAPI BOOLEAN KdDebuggerNotPresent;
-extern NTKERNELAPI BOOLEAN KdDebuggerEnabled;
-#define KD_DEBUGGER_ENABLED KdDebuggerEnabled
-#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
-
-#elif defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_)
-
-extern NTKERNELAPI PBOOLEAN KdDebuggerNotPresent;
-extern NTKERNELAPI PBOOLEAN KdDebuggerEnabled;
-#define KD_DEBUGGER_ENABLED *KdDebuggerEnabled
-#define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent
-
-#else
-
-extern BOOLEAN KdDebuggerNotPresent;
-extern BOOLEAN KdDebuggerEnabled;
-#define KD_DEBUGGER_ENABLED KdDebuggerEnabled
-#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
-
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KdDisableDebugger(VOID);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KdEnableDebugger(VOID);
-
-#if (_MSC_FULL_VER >= 150030729) && !defined(IMPORT_NATIVE_DBG_BREAK)
-#define DbgBreakPoint __debugbreak
-#else
-VOID
-NTAPI
-DbgBreakPoint(VOID);
-#endif
-
-NTSYSAPI
-VOID
-NTAPI
-DbgBreakPointWithStatus(
-  IN ULONG Status);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KdRefreshDebuggerNotPresent(VOID);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KdChangeOption(
-  IN KD_OPTION Option,
-  IN ULONG InBufferBytes OPTIONAL,
-  IN PVOID InBuffer,
-  IN ULONG OutBufferBytes OPTIONAL,
-  OUT PVOID OutBuffer,
-  OUT PULONG OutBufferNeeded OPTIONAL);
-#endif
-$endif
diff --git a/reactos/include/xdk/kdtypes.h b/reactos/include/xdk/kdtypes.h
deleted file mode 100644 (file)
index b030a23..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/******************************************************************************
- *                          Kernel Debugger Types                             *
- ******************************************************************************/
-$if (_NTDDK_)
-typedef struct _DEBUG_DEVICE_ADDRESS {
-  UCHAR Type;
-  BOOLEAN Valid;
-  UCHAR Reserved[2];
-  PUCHAR TranslatedAddress;
-  ULONG Length;
-} DEBUG_DEVICE_ADDRESS, *PDEBUG_DEVICE_ADDRESS;
-
-typedef struct _DEBUG_MEMORY_REQUIREMENTS {
-  PHYSICAL_ADDRESS Start;
-  PHYSICAL_ADDRESS MaxEnd;
-  PVOID VirtualAddress;
-  ULONG Length;
-  BOOLEAN Cached;
-  BOOLEAN Aligned;
-} DEBUG_MEMORY_REQUIREMENTS, *PDEBUG_MEMORY_REQUIREMENTS;
-
-typedef struct _DEBUG_DEVICE_DESCRIPTOR {
-  ULONG Bus;
-  ULONG Slot;
-  USHORT Segment;
-  USHORT VendorID;
-  USHORT DeviceID;
-  UCHAR BaseClass;
-  UCHAR SubClass;
-  UCHAR ProgIf;
-  BOOLEAN Initialized;
-  BOOLEAN Configured;
-  DEBUG_DEVICE_ADDRESS BaseAddress[6];
-  DEBUG_MEMORY_REQUIREMENTS Memory;
-} DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR;
-
-typedef NTSTATUS
-(NTAPI *pKdSetupPciDeviceForDebugging)(
-  IN PVOID LoaderBlock OPTIONAL,
-  IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
-
-typedef NTSTATUS
-(NTAPI *pKdReleasePciDeviceForDebugging)(
-  IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
-
-typedef PVOID
-(NTAPI *pKdGetAcpiTablePhase0)(
-  IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
-  IN ULONG Signature);
-
-typedef VOID
-(NTAPI *pKdCheckPowerButton)(
-  VOID);
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-typedef PVOID
-(NTAPI *pKdMapPhysicalMemory64)(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN ULONG NumberPages,
-  IN BOOLEAN FlushCurrentTLB);
-
-typedef VOID
-(NTAPI *pKdUnmapVirtualAddress)(
-  IN PVOID VirtualAddress,
-  IN ULONG NumberPages,
-  IN BOOLEAN FlushCurrentTLB);
-#else
-typedef PVOID
-(NTAPI *pKdMapPhysicalMemory64)(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN ULONG NumberPages);
-
-typedef VOID
-(NTAPI *pKdUnmapVirtualAddress)(
-  IN PVOID VirtualAddress,
-  IN ULONG NumberPages);
-#endif
-
-typedef ULONG
-(NTAPI *pKdGetPciDataByOffset)(
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  OUT PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-
-typedef ULONG
-(NTAPI *pKdSetPciDataByOffset)(
-  IN ULONG BusNumber,
-  IN ULONG SlotNumber,
-  IN PVOID Buffer,
-  IN ULONG Offset,
-  IN ULONG Length);
-$endif
diff --git a/reactos/include/xdk/kefuncs.h b/reactos/include/xdk/kefuncs.h
deleted file mode 100644 (file)
index 716ee87..0000000
+++ /dev/null
@@ -1,1075 +0,0 @@
-/******************************************************************************
- *                              Kernel Functions                              *
- ******************************************************************************/
-$if (_NTDDK_)
-NTKERNELAPI
-VOID
-FASTCALL
-KeInvalidateRangeAllCaches(
-  IN PVOID BaseAddress,
-  IN ULONG Length);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeEvent(
-  OUT PRKEVENT Event,
-  IN EVENT_TYPE Type,
-  IN BOOLEAN State);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeClearEvent(
-  IN OUT PRKEVENT Event);
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-$if (_NTDDK_)
-NTKERNELAPI
-VOID
-NTAPI
-KeSetImportanceDpc(
-  IN OUT PRKDPC Dpc,
-  IN KDPC_IMPORTANCE Importance);
-
-NTKERNELAPI
-LONG
-NTAPI
-KePulseEvent(
-  IN OUT PRKEVENT Event,
-  IN KPRIORITY Increment,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeSetBasePriorityThread(
-  IN OUT PRKTHREAD Thread,
-  IN LONG Increment);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeEnterCriticalRegion(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeLeaveCriticalRegion(VOID);
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-KeBugCheck(
-  IN ULONG BugCheckCode);
-$endif /* _NTDDK_ */
-
-$if (_WDMDDK_)
-#if defined(_NTDDK_) || defined(_NTIFS_)
-NTKERNELAPI
-VOID
-NTAPI
-ProbeForRead(
-  IN CONST VOID *Address, /* CONST is added */
-  IN SIZE_T Length,
-  IN ULONG Alignment);
-#endif /* defined(_NTDDK_) || defined(_NTIFS_) */
-
-NTKERNELAPI
-VOID
-NTAPI
-ProbeForWrite(
-  IN PVOID Address,
-  IN SIZE_T Length,
-  IN ULONG Alignment);
-
-$endif /* _WDMDDK_ */
-
-#if defined(SINGLE_GROUP_LEGACY_API)
-
-$if (_WDMDDK_)
-NTKERNELAPI
-VOID
-NTAPI
-KeRevertToUserAffinityThread(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetSystemAffinityThread(
-  IN KAFFINITY Affinity);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetTargetProcessorDpc(
-  IN OUT PRKDPC Dpc,
-  IN CCHAR Number);
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryActiveProcessors(VOID);
-$endif
-
-$if (_NTDDK_)
-NTKERNELAPI
-VOID
-NTAPI
-KeSetTargetProcessorDpc(
-  IN OUT PRKDPC Dpc,
-  IN CCHAR Number);
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryActiveProcessors(VOID);
-$endif
-
-#endif /* defined(SINGLE_GROUP_LEGACY_API) */
-
-$if (_WDMDDK_)
-#if !defined(_M_AMD64)
-NTKERNELAPI
-ULONGLONG
-NTAPI
-KeQueryInterruptTime(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeQuerySystemTime(
-  OUT PLARGE_INTEGER CurrentTime);
-#endif /* !_M_AMD64 */
-
-#if !defined(_X86_)
-NTKERNELAPI
-KIRQL
-NTAPI
-KeAcquireSpinLockRaiseToDpc(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-#define KeAcquireSpinLock(SpinLock, OldIrql) \
-    *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
-
-NTKERNELAPI
-VOID
-NTAPI
-KeAcquireSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeReleaseSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock,
-  IN KIRQL NewIrql);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeReleaseSpinLockFromDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-#endif /* !_X86_ */
-
-#if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeSpinLock(
-  IN PKSPIN_LOCK SpinLock);
-#else
-FORCEINLINE
-VOID
-KeInitializeSpinLock(IN PKSPIN_LOCK SpinLock)
-{
-  /* Clear the lock */
-  *SpinLock = 0;
-}
-#endif
-
-NTKERNELAPI
-DECLSPEC_NORETURN
-VOID
-NTAPI
-KeBugCheckEx(
-  IN ULONG BugCheckCode,
-  IN ULONG_PTR BugCheckParameter1,
-  IN ULONG_PTR BugCheckParameter2,
-  IN ULONG_PTR BugCheckParameter3,
-  IN ULONG_PTR BugCheckParameter4);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeCancelTimer(
-  IN OUT PKTIMER);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeDelayExecutionThread(
-  IN KPROCESSOR_MODE WaitMode,
-  IN BOOLEAN Alertable,
-  IN PLARGE_INTEGER Interval);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeDeregisterBugCheckCallback(
-  IN OUT PKBUGCHECK_CALLBACK_RECORD CallbackRecord);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeEnterCriticalRegion(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeDeviceQueue(
-  OUT PKDEVICE_QUEUE DeviceQueue);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeDpc(
-  OUT PRKDPC Dpc,
-  IN PKDEFERRED_ROUTINE DeferredRoutine,
-  IN PVOID DeferredContext OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeMutex(
-  OUT PRKMUTEX Mutex,
-  IN ULONG Level);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeSemaphore(
-  OUT PRKSEMAPHORE Semaphore,
-  IN LONG Count,
-  IN LONG Limit);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeTimer(
-  OUT PKTIMER Timer);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeTimerEx(
-  OUT PKTIMER Timer,
-  IN TIMER_TYPE Type);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInsertByKeyDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN OUT PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
-  IN ULONG SortKey);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInsertDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN OUT PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInsertQueueDpc(
-  IN OUT PRKDPC Dpc,
-  IN PVOID SystemArgument1 OPTIONAL,
-  IN PVOID SystemArgument2 OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeLeaveCriticalRegion(VOID);
-
-NTHALAPI
-LARGE_INTEGER
-NTAPI
-KeQueryPerformanceCounter(
-  OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL);
-
-NTKERNELAPI
-KPRIORITY
-NTAPI
-KeQueryPriorityThread(
-  IN PRKTHREAD Thread);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryTimeIncrement(VOID);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReadStateEvent(
-  IN PRKEVENT Event);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReadStateMutex(
-  IN PRKMUTEX Mutex);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReadStateSemaphore(
-  IN PRKSEMAPHORE Semaphore);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeReadStateTimer(
-  IN PKTIMER Timer);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRegisterBugCheckCallback(
-  OUT PKBUGCHECK_CALLBACK_RECORD CallbackRecord,
-  IN PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine,
-  IN PVOID Buffer,
-  IN ULONG Length,
-  IN PUCHAR Component);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReleaseMutex(
-  IN OUT PRKMUTEX Mutex,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeReleaseSemaphore(
-  IN OUT PRKSEMAPHORE Semaphore,
-  IN KPRIORITY Increment,
-  IN LONG Adjustment,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-PKDEVICE_QUEUE_ENTRY
-NTAPI
-KeRemoveByKeyDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN ULONG SortKey);
-
-NTKERNELAPI
-PKDEVICE_QUEUE_ENTRY
-NTAPI
-KeRemoveDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRemoveEntryDeviceQueue(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN OUT PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRemoveQueueDpc(
-  IN OUT PRKDPC Dpc);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeResetEvent(
-  IN OUT PRKEVENT Event);
-
-NTKERNELAPI
-LONG
-NTAPI
-KeSetEvent(
-  IN OUT PRKEVENT Event,
-  IN KPRIORITY Increment,
-  IN BOOLEAN Wait);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetImportanceDpc(
-  IN OUT PRKDPC Dpc,
-  IN KDPC_IMPORTANCE Importance);
-
-NTKERNELAPI
-KPRIORITY
-NTAPI
-KeSetPriorityThread(
-  IN OUT PKTHREAD Thread,
-  IN KPRIORITY Priority);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSetTimer(
-  IN OUT PKTIMER Timer,
-  IN LARGE_INTEGER DueTime,
-  IN PKDPC Dpc OPTIONAL);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSetTimerEx(
-  IN OUT PKTIMER Timer,
-  IN LARGE_INTEGER DueTime,
-  IN LONG Period OPTIONAL,
-  IN PKDPC Dpc OPTIONAL);
-
-NTHALAPI
-VOID
-NTAPI
-KeStallExecutionProcessor(
-  IN ULONG MicroSeconds);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSynchronizeExecution(
-  IN OUT PKINTERRUPT Interrupt,
-  IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
-  IN PVOID SynchronizeContext OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeWaitForMultipleObjects(
-  IN ULONG Count,
-  IN PVOID Object[],
-  IN WAIT_TYPE WaitType,
-  IN KWAIT_REASON WaitReason,
-  IN KPROCESSOR_MODE WaitMode,
-  IN BOOLEAN Alertable,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  OUT PKWAIT_BLOCK WaitBlockArray OPTIONAL);
-
-#define KeWaitForMutexObject KeWaitForSingleObject
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeWaitForSingleObject(
-  IN PVOID Object,
-  IN KWAIT_REASON WaitReason,
-  IN KPROCESSOR_MODE WaitMode,
-  IN BOOLEAN Alertable,
-  IN PLARGE_INTEGER Timeout OPTIONAL);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-$if (_NTDDK_)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeAreApcsDisabled(VOID);
-$endif
-
-$if (_WDMDDK_)
-_DECL_HAL_KE_IMPORT
-VOID
-FASTCALL
-KeAcquireInStackQueuedSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock,
-  OUT PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireInStackQueuedSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock,
-  OUT PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-KIRQL
-NTAPI
-KeAcquireInterruptSpinLock(
-  IN OUT PKINTERRUPT Interrupt);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeAreApcsDisabled(VOID);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeGetRecommendedSharedDataAlignment(VOID);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryRuntimeThread(
-  IN PKTHREAD Thread,
-  OUT PULONG UserTime);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseInStackQueuedSpinLockFromDpcLevel(
-  IN PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeReleaseInterruptSpinLock(
-  IN OUT PKINTERRUPT Interrupt,
-  IN KIRQL OldIrql);
-
-NTKERNELAPI
-PKDEVICE_QUEUE_ENTRY
-NTAPI
-KeRemoveByKeyDeviceQueueIfBusy(
-  IN OUT PKDEVICE_QUEUE DeviceQueue,
-  IN ULONG SortKey);
-
-_DECL_HAL_KE_IMPORT
-VOID
-FASTCALL
-KeReleaseInStackQueuedSpinLock(
-  IN PKLOCK_QUEUE_HANDLE LockHandle);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeDeregisterBugCheckReasonCallback(
-  IN OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeRegisterBugCheckReasonCallback(
-  OUT PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
-  IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
-  IN KBUGCHECK_CALLBACK_REASON Reason,
-  IN PUCHAR Component);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP1) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
-NTKERNELAPI
-VOID
-NTAPI
-KeFlushQueuedDpcs(VOID);
-#endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
-$endif /* _WDMDDK_ */
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-
-$if (_WDMDDK_)
-NTKERNELAPI
-PVOID
-NTAPI
-KeRegisterNmiCallback(
-  IN PNMI_CALLBACK CallbackRoutine,
-  IN PVOID Context OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeDeregisterNmiCallback(
-  IN PVOID Handle);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeInitializeThreadedDpc(
-  OUT PRKDPC Dpc,
-  IN PKDEFERRED_ROUTINE DeferredRoutine,
-  IN PVOID DeferredContext OPTIONAL);
-
-NTKERNELAPI
-ULONG_PTR
-NTAPI
-KeIpiGenericCall(
-  IN PKIPI_BROADCAST_WORKER BroadcastFunction,
-  IN ULONG_PTR Context);
-
-NTKERNELAPI
-KIRQL
-FASTCALL
-KeAcquireSpinLockForDpc(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseSpinLockForDpc(
-  IN OUT PKSPIN_LOCK SpinLock,
-  IN KIRQL OldIrql);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-KeTestSpinLock(
-  IN PKSPIN_LOCK SpinLock);
-$endif /* _WDMDDK_ */
-
-$if (_NTDDK_)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeInvalidateAllCaches(VOID);
-$endif /* _NTDDK_ */
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-
-$if (_NTDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeExpandKernelStackAndCallout(
-  IN PEXPAND_STACK_CALLOUT Callout,
-  IN PVOID Parameter OPTIONAL,
-  IN SIZE_T Size);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeEnterGuardedRegion(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeLeaveGuardedRegion(VOID);
-$endif /* _NTDDK_ */
-
-$if (_WDMDDK_)
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-KeTryToAcquireSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeAreAllApcsDisabled(VOID);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireGuardedMutex(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireGuardedMutexUnsafe(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeEnterGuardedRegion(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeLeaveGuardedRegion(VOID);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeInitializeGuardedMutex(
-  OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseGuardedMutexUnsafe(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseGuardedMutex(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-KeTryToAcquireGuardedMutex(
-  IN OUT PKGUARDED_MUTEX GuardedMutex);
-$endif /* _WDMDDK_ */
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-$if (_WDMDDK_)
-NTKERNELAPI
-VOID
-FASTCALL
-KeAcquireInStackQueuedSpinLockForDpc(
-  IN OUT PKSPIN_LOCK SpinLock,
-  OUT PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-VOID
-FASTCALL
-KeReleaseInStackQueuedSpinLockForDpc(
-  IN PKLOCK_QUEUE_HANDLE LockHandle);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryDpcWatchdogInformation(
-  OUT PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
-$endif /* _WDMDDK_ */
-
-#if defined(SINGLE_GROUP_LEGACY_API)
-$if (_NTDDK_)
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryActiveProcessorCount(
-  OUT PKAFFINITY ActiveProcessors OPTIONAL);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCount(VOID);
-$endif /* _NTDDK_ */
-
-$if (_WDMDDK_)
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeSetSystemAffinityThreadEx(
-  IN KAFFINITY Affinity);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeRevertToUserAffinityThreadEx(
-  IN KAFFINITY Affinity);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryActiveProcessorCount(
-  OUT PKAFFINITY ActiveProcessors OPTIONAL);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCount(VOID);
-$endif /* _WDMDDK_ */
-#endif /* SINGLE_GROUP_LEGACY_API */
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WS08)
-
-PVOID
-KeRegisterProcessorChangeCallback(
-  IN PPROCESSOR_CALLBACK_FUNCTION CallbackFunction,
-  IN PVOID CallbackContext OPTIONAL,
-  IN ULONG Flags);
-
-VOID
-KeDeregisterProcessorChangeCallback(
-  IN PVOID CallbackHandle);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS08) */
-$endif /* _WDMDDK_ */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-$if (_NTDDK_)
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryActiveProcessorCountEx(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCountEx(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryActiveGroupCount(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryMaximumGroupCount(VOID);
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryGroupAffinity(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeGetCurrentProcessorNumberEx(
-  OUT PPROCESSOR_NUMBER ProcNumber OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeQueryNodeActiveAffinity(
-  IN USHORT NodeNumber,
-  OUT PGROUP_AFFINITY Affinity OPTIONAL,
-  OUT PUSHORT Count OPTIONAL);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryNodeMaximumProcessorCount(
-  IN USHORT NodeNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryHighestNodeNumber(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeGetCurrentNodeNumber(VOID);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryLogicalProcessorRelationship(
-  IN PPROCESSOR_NUMBER ProcessorNumber OPTIONAL,
-  IN LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
-  OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information OPTIONAL,
-  IN OUT PULONG Length);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSetHardwareCounterConfiguration(
-  IN PHARDWARE_COUNTER CounterArray,
-  IN ULONG Count);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryHardwareCounterConfiguration(
-  OUT PHARDWARE_COUNTER CounterArray,
-  IN ULONG MaximumCount,
-  OUT PULONG Count);
-$endif /* _NTDDK_ */
-
-$if (_WDMDDK_)
-ULONG64
-NTAPI
-KeQueryTotalCycleTimeProcess(
-  IN OUT PKPROCESS Process,
-  OUT PULONG64 CycleTimeStamp);
-
-ULONG64
-NTAPI
-KeQueryTotalCycleTimeThread(
-  IN OUT PKTHREAD Thread,
-  OUT PULONG64 CycleTimeStamp);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSetTargetProcessorDpcEx(
-  IN OUT PKDPC Dpc,
-  IN PPROCESSOR_NUMBER ProcNumber);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeSetSystemGroupAffinityThread(
-  IN PGROUP_AFFINITY Affinity,
-  OUT PGROUP_AFFINITY PreviousAffinity OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeRevertToUserGroupAffinityThread(
-  IN PGROUP_AFFINITY PreviousAffinity);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-KeSetCoalescableTimer(
-  IN OUT PKTIMER Timer,
-  IN LARGE_INTEGER DueTime,
-  IN ULONG Period,
-  IN ULONG TolerableDelay,
-  IN PKDPC Dpc OPTIONAL);
-
-NTKERNELAPI
-ULONGLONG
-NTAPI
-KeQueryUnbiasedInterruptTime(VOID);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryActiveProcessorCountEx(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeQueryMaximumProcessorCountEx(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryActiveGroupCount(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryMaximumGroupCount(VOID);
-
-NTKERNELAPI
-KAFFINITY
-NTAPI
-KeQueryGroupAffinity(
-  IN USHORT GroupNumber);
-
-NTKERNELAPI
-ULONG
-NTAPI
-KeGetCurrentProcessorNumberEx(
-  OUT PPROCESSOR_NUMBER ProcNumber OPTIONAL);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeQueryNodeActiveAffinity(
-  IN USHORT NodeNumber,
-  OUT PGROUP_AFFINITY Affinity OPTIONAL,
-  OUT PUSHORT Count OPTIONAL);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryNodeMaximumProcessorCount(
-  IN USHORT NodeNumber);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeQueryHighestNodeNumber(VOID);
-
-NTKERNELAPI
-USHORT
-NTAPI
-KeGetCurrentNodeNumber(VOID);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeQueryLogicalProcessorRelationship(
-  IN PPROCESSOR_NUMBER ProcessorNumber OPTIONAL,
-  IN LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
-  OUT PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information OPTIONAL,
-  IN OUT PULONG Length);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSaveExtendedProcessorState(
-  IN ULONG64 Mask,
-  OUT PXSTATE_SAVE XStateSave);
-
-NTKERNELAPI
-VOID
-NTAPI
-KeRestoreExtendedProcessorState(
-  IN PXSTATE_SAVE XStateSave);
-
-NTSTATUS
-NTAPI
-KeGetProcessorNumberFromIndex(
-  IN ULONG ProcIndex,
-  OUT PPROCESSOR_NUMBER ProcNumber);
-
-ULONG
-NTAPI
-KeGetProcessorIndexFromNumber(
-  IN PPROCESSOR_NUMBER ProcNumber);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-$if (_WDMDDK_)
-#if !defined(_IA64_)
-NTHALAPI
-VOID
-NTAPI
-KeFlushWriteBuffer(VOID);
-#endif
-
-/* VOID
- * KeInitializeCallbackRecord(
- *   IN PKBUGCHECK_CALLBACK_RECORD  CallbackRecord)
- */
-#define KeInitializeCallbackRecord(CallbackRecord) \
-  CallbackRecord->State = BufferEmpty;
-
-#if DBG
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#define PAGED_ASSERT( exp ) NT_ASSERT( exp )
-#else
-#define PAGED_ASSERT( exp ) ASSERT( exp )
-#endif
-
-#define PAGED_CODE() { \
-  if (KeGetCurrentIrql() > APC_LEVEL) { \
-    KdPrint( ("NTDDK: Pageable code called at IRQL > APC_LEVEL (%d)\n", KeGetCurrentIrql() )); \
-    PAGED_ASSERT(FALSE); \
-  } \
-}
-
-#else
-
-#define PAGED_CODE()
-
-#endif /* DBG */
-
-#define PAGED_CODE_LOCKED() NOP_FUNCTION;
-$endif
-
diff --git a/reactos/include/xdk/ketypes.h b/reactos/include/xdk/ketypes.h
deleted file mode 100644 (file)
index a4bb363..0000000
+++ /dev/null
@@ -1,1183 +0,0 @@
-/******************************************************************************
- *                              Kernel Types                                  *
- ******************************************************************************/
-$if (_WDMDDK_)
-
-typedef UCHAR KIRQL, *PKIRQL;
-typedef CCHAR KPROCESSOR_MODE;
-typedef LONG KPRIORITY;
-
-typedef enum _MODE {
-  KernelMode,
-  UserMode,
-  MaximumMode
-} MODE;
-
-#define CACHE_FULLY_ASSOCIATIVE 0xFF
-#define MAXIMUM_SUSPEND_COUNT   MAXCHAR
-
-#define EVENT_QUERY_STATE (0x0001)
-#define EVENT_MODIFY_STATE (0x0002)
-#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
-
-#define LTP_PC_SMT 0x1
-
-#if (NTDDI_VERSION < NTDDI_WIN7) || defined(_X86_) || !defined(NT_PROCESSOR_GROUPS)
-#define SINGLE_GROUP_LEGACY_API        1
-#endif
-
-#define SEMAPHORE_QUERY_STATE (0x0001)
-#define SEMAPHORE_MODIFY_STATE (0x0002)
-#define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
-
-typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP {
-  RelationProcessorCore,
-  RelationNumaNode,
-  RelationCache,
-  RelationProcessorPackage,
-  RelationGroup,
-  RelationAll = 0xffff
-} LOGICAL_PROCESSOR_RELATIONSHIP;
-
-typedef enum _PROCESSOR_CACHE_TYPE {
-  CacheUnified,
-  CacheInstruction,
-  CacheData,
-  CacheTrace
-} PROCESSOR_CACHE_TYPE;
-
-typedef struct _CACHE_DESCRIPTOR {
-  UCHAR Level;
-  UCHAR Associativity;
-  USHORT LineSize;
-  ULONG Size;
-  PROCESSOR_CACHE_TYPE Type;
-} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
-
-typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
-  ULONG_PTR ProcessorMask;
-  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-  union {
-    struct {
-      UCHAR Flags;
-    } ProcessorCore;
-    struct {
-      ULONG NodeNumber;
-    } NumaNode;
-    CACHE_DESCRIPTOR Cache;
-    ULONGLONG  Reserved[2];
-  } DUMMYUNIONNAME;
-} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
-
-typedef struct _PROCESSOR_RELATIONSHIP {
-  UCHAR Flags;
-  UCHAR Reserved[21];
-  USHORT GroupCount;
-  GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY];
-} PROCESSOR_RELATIONSHIP, *PPROCESSOR_RELATIONSHIP;
-
-typedef struct _NUMA_NODE_RELATIONSHIP {
-  ULONG NodeNumber;
-  UCHAR Reserved[20];
-  GROUP_AFFINITY GroupMask;
-} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP;
-
-typedef struct _CACHE_RELATIONSHIP {
-  UCHAR Level;
-  UCHAR Associativity;
-  USHORT LineSize;
-  ULONG CacheSize;
-  PROCESSOR_CACHE_TYPE Type;
-  UCHAR Reserved[20];
-  GROUP_AFFINITY GroupMask;
-} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP;
-
-typedef struct _PROCESSOR_GROUP_INFO {
-  UCHAR MaximumProcessorCount;
-  UCHAR ActiveProcessorCount;
-  UCHAR Reserved[38];
-  KAFFINITY ActiveProcessorMask;
-} PROCESSOR_GROUP_INFO, *PPROCESSOR_GROUP_INFO;
-
-typedef struct _GROUP_RELATIONSHIP {
-  USHORT MaximumGroupCount;
-  USHORT ActiveGroupCount;
-  UCHAR Reserved[20];
-  PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY];
-} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP;
-
-typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
-  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-  ULONG Size;
-  union {
-    PROCESSOR_RELATIONSHIP Processor;
-    NUMA_NODE_RELATIONSHIP NumaNode;
-    CACHE_RELATIONSHIP Cache;
-    GROUP_RELATIONSHIP Group;
-  } DUMMYUNIONNAME;
-} SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;;
-
-/* Processor features */
-#define PF_FLOATING_POINT_PRECISION_ERRATA  0
-#define PF_FLOATING_POINT_EMULATED          1
-#define PF_COMPARE_EXCHANGE_DOUBLE          2
-#define PF_MMX_INSTRUCTIONS_AVAILABLE       3
-#define PF_PPC_MOVEMEM_64BIT_OK             4
-#define PF_ALPHA_BYTE_INSTRUCTIONS          5
-#define PF_XMMI_INSTRUCTIONS_AVAILABLE      6
-#define PF_3DNOW_INSTRUCTIONS_AVAILABLE     7
-#define PF_RDTSC_INSTRUCTION_AVAILABLE      8
-#define PF_PAE_ENABLED                      9
-#define PF_XMMI64_INSTRUCTIONS_AVAILABLE   10
-#define PF_SSE_DAZ_MODE_AVAILABLE          11
-#define PF_NX_ENABLED                      12
-#define PF_SSE3_INSTRUCTIONS_AVAILABLE     13
-#define PF_COMPARE_EXCHANGE128             14
-#define PF_COMPARE64_EXCHANGE128           15
-#define PF_CHANNELS_ENABLED                16
-#define PF_XSAVE_ENABLED                   17
-
-#define MAXIMUM_WAIT_OBJECTS              64
-
-#define ASSERT_APC(Object) NT_ASSERT((Object)->Type == ApcObject)
-
-#define ASSERT_DPC(Object) \
-    ASSERT(((Object)->Type == 0) || \
-           ((Object)->Type == DpcObject) || \
-           ((Object)->Type == ThreadedDpcObject))
-
-#define ASSERT_GATE(object) \
-    NT_ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == GateObject) || \
-              (((object)->Header.Type & KOBJECT_TYPE_MASK) == EventSynchronizationObject))
-
-#define ASSERT_DEVICE_QUEUE(Object) \
-    NT_ASSERT((Object)->Type == DeviceQueueObject)
-
-#define ASSERT_TIMER(E) \
-    NT_ASSERT(((E)->Header.Type == TimerNotificationObject) || \
-              ((E)->Header.Type == TimerSynchronizationObject))
-
-#define ASSERT_MUTANT(E) \
-    NT_ASSERT((E)->Header.Type == MutantObject)
-
-#define ASSERT_SEMAPHORE(E) \
-    NT_ASSERT((E)->Header.Type == SemaphoreObject)
-
-#define ASSERT_EVENT(E) \
-    NT_ASSERT(((E)->Header.Type == NotificationEvent) || \
-              ((E)->Header.Type == SynchronizationEvent))
-
-#define DPC_NORMAL 0
-#define DPC_THREADED 1
-
-#define GM_LOCK_BIT          0x1
-#define GM_LOCK_BIT_V        0x0
-#define GM_LOCK_WAITER_WOKEN 0x2
-#define GM_LOCK_WAITER_INC   0x4
-
-#define LOCK_QUEUE_WAIT_BIT               0
-#define LOCK_QUEUE_OWNER_BIT              1
-
-#define LOCK_QUEUE_WAIT                   1
-#define LOCK_QUEUE_OWNER                  2
-#define LOCK_QUEUE_TIMER_LOCK_SHIFT       4
-#define LOCK_QUEUE_TIMER_TABLE_LOCKS (1 << (8 - LOCK_QUEUE_TIMER_LOCK_SHIFT))
-
-#define PROCESSOR_FEATURE_MAX 64
-
-#define DBG_STATUS_CONTROL_C              1
-#define DBG_STATUS_SYSRQ                  2
-#define DBG_STATUS_BUGCHECK_FIRST         3
-#define DBG_STATUS_BUGCHECK_SECOND        4
-#define DBG_STATUS_FATAL                  5
-#define DBG_STATUS_DEBUG_CONTROL          6
-#define DBG_STATUS_WORKER                 7
-
-#if defined(_WIN64)
-#define MAXIMUM_PROC_PER_GROUP 64
-#else
-#define MAXIMUM_PROC_PER_GROUP 32
-#endif
-#define MAXIMUM_PROCESSORS          MAXIMUM_PROC_PER_GROUP
-
-/* Exception Records */
-#define EXCEPTION_NONCONTINUABLE     1
-#define EXCEPTION_MAXIMUM_PARAMETERS 15
-
-#define EXCEPTION_DIVIDED_BY_ZERO       0
-#define EXCEPTION_DEBUG                 1
-#define EXCEPTION_NMI                   2
-#define EXCEPTION_INT3                  3
-#define EXCEPTION_BOUND_CHECK           5
-#define EXCEPTION_INVALID_OPCODE        6
-#define EXCEPTION_NPX_NOT_AVAILABLE     7
-#define EXCEPTION_DOUBLE_FAULT          8
-#define EXCEPTION_NPX_OVERRUN           9
-#define EXCEPTION_INVALID_TSS           0x0A
-#define EXCEPTION_SEGMENT_NOT_PRESENT   0x0B
-#define EXCEPTION_STACK_FAULT           0x0C
-#define EXCEPTION_GP_FAULT              0x0D
-#define EXCEPTION_RESERVED_TRAP         0x0F
-#define EXCEPTION_NPX_ERROR             0x010
-#define EXCEPTION_ALIGNMENT_CHECK       0x011
-
-typedef struct _EXCEPTION_RECORD {
-  NTSTATUS ExceptionCode;
-  ULONG ExceptionFlags;
-  struct _EXCEPTION_RECORD *ExceptionRecord;
-  PVOID ExceptionAddress;
-  ULONG NumberParameters;
-  ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
-} EXCEPTION_RECORD, *PEXCEPTION_RECORD;
-
-typedef struct _EXCEPTION_RECORD32 {
-  NTSTATUS ExceptionCode;
-  ULONG ExceptionFlags;
-  ULONG ExceptionRecord;
-  ULONG ExceptionAddress;
-  ULONG NumberParameters;
-  ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
-} EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
-
-typedef struct _EXCEPTION_RECORD64 {
-  NTSTATUS ExceptionCode;
-  ULONG ExceptionFlags;
-  ULONG64 ExceptionRecord;
-  ULONG64 ExceptionAddress;
-  ULONG NumberParameters;
-  ULONG __unusedAlignment;
-  ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
-} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
-
-typedef struct _EXCEPTION_POINTERS {
-  PEXCEPTION_RECORD ExceptionRecord;
-  PCONTEXT ContextRecord;
-} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
-
-typedef enum _KBUGCHECK_CALLBACK_REASON {
-  KbCallbackInvalid,
-  KbCallbackReserved1,
-  KbCallbackSecondaryDumpData,
-  KbCallbackDumpIo,
-  KbCallbackAddPages
-} KBUGCHECK_CALLBACK_REASON;
-
-struct _KBUGCHECK_REASON_CALLBACK_RECORD;
-
-typedef VOID
-(NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(
-  IN KBUGCHECK_CALLBACK_REASON Reason,
-  IN struct _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
-  IN OUT PVOID ReasonSpecificData,
-  IN ULONG ReasonSpecificDataLength);
-typedef KBUGCHECK_REASON_CALLBACK_ROUTINE *PKBUGCHECK_REASON_CALLBACK_ROUTINE;
-
-typedef struct _KBUGCHECK_ADD_PAGES {
-  IN OUT PVOID Context;
-  IN OUT ULONG Flags;
-  IN ULONG BugCheckCode;
-  OUT ULONG_PTR Address;
-  OUT ULONG_PTR Count;
-} KBUGCHECK_ADD_PAGES, *PKBUGCHECK_ADD_PAGES;
-
-typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA {
-  IN PVOID InBuffer;
-  IN ULONG InBufferLength;
-  IN ULONG MaximumAllowed;
-  OUT GUID Guid;
-  OUT PVOID OutBuffer;
-  OUT ULONG OutBufferLength;
-} KBUGCHECK_SECONDARY_DUMP_DATA, *PKBUGCHECK_SECONDARY_DUMP_DATA;
-
-typedef enum _KBUGCHECK_DUMP_IO_TYPE {
-  KbDumpIoInvalid,
-  KbDumpIoHeader,
-  KbDumpIoBody,
-  KbDumpIoSecondaryData,
-  KbDumpIoComplete
-} KBUGCHECK_DUMP_IO_TYPE;
-
-typedef struct _KBUGCHECK_DUMP_IO {
-  IN ULONG64 Offset;
-  IN PVOID Buffer;
-  IN ULONG BufferLength;
-  IN KBUGCHECK_DUMP_IO_TYPE Type;
-} KBUGCHECK_DUMP_IO, *PKBUGCHECK_DUMP_IO;
-
-#define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS         0x00000001UL
-#define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS        0x00000002UL
-#define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST 0x80000000UL
-
-typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
-  LIST_ENTRY Entry;
-  PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine;
-  PUCHAR Component;
-  ULONG_PTR Checksum;
-  KBUGCHECK_CALLBACK_REASON Reason;
-  UCHAR State;
-} KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD;
-
-typedef enum _KBUGCHECK_BUFFER_DUMP_STATE {
-  BufferEmpty,
-  BufferInserted,
-  BufferStarted,
-  BufferFinished,
-  BufferIncomplete
-} KBUGCHECK_BUFFER_DUMP_STATE;
-
-typedef VOID
-(NTAPI KBUGCHECK_CALLBACK_ROUTINE)(
-  IN PVOID Buffer,
-  IN ULONG Length);
-typedef KBUGCHECK_CALLBACK_ROUTINE *PKBUGCHECK_CALLBACK_ROUTINE;
-
-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;
-
-typedef BOOLEAN
-(NTAPI NMI_CALLBACK)(
-  IN PVOID Context,
-  IN BOOLEAN Handled);
-typedef NMI_CALLBACK *PNMI_CALLBACK;
-
-typedef enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE {
-  KeProcessorAddStartNotify = 0,
-  KeProcessorAddCompleteNotify,
-  KeProcessorAddFailureNotify
-} KE_PROCESSOR_CHANGE_NOTIFY_STATE;
-
-typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT {
-  KE_PROCESSOR_CHANGE_NOTIFY_STATE State;
-  ULONG NtNumber;
-  NTSTATUS Status;
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  PROCESSOR_NUMBER ProcNumber;
-#endif
-} KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT, *PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
-
-typedef VOID
-(NTAPI PROCESSOR_CALLBACK_FUNCTION)(
-  IN PVOID CallbackContext,
-  IN PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext,
-  IN OUT PNTSTATUS OperationStatus);
-typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION;
-
-#define KE_PROCESSOR_CHANGE_ADD_EXISTING         1
-
-#define INVALID_PROCESSOR_INDEX     0xffffffff
-
-typedef enum _KINTERRUPT_POLARITY {
-  InterruptPolarityUnknown,
-  InterruptActiveHigh,
-  InterruptActiveLow
-} KINTERRUPT_POLARITY, *PKINTERRUPT_POLARITY;
-
-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;
-
-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,
-  WrKeyedEvent,
-  WrTerminated,
-  WrProcessInSwap,
-  WrCpuRateControl,
-  WrCalloutStack,
-  WrKernel,
-  WrResource,
-  WrPushLock,
-  WrMutex,
-  WrQuantumEnd,
-  WrDispatchInt,
-  WrPreempted,
-  WrYieldExecution,
-  WrFastMutex,
-  WrGuardedMutex,
-  WrRundown,
-  MaximumWaitReason
-} KWAIT_REASON;
-
-typedef struct _KWAIT_BLOCK {
-  LIST_ENTRY WaitListEntry;
-  struct _KTHREAD *Thread;
-  PVOID Object;
-  struct _KWAIT_BLOCK *NextWaitBlock;
-  USHORT WaitKey;
-  UCHAR WaitType;
-  volatile UCHAR BlockState;
-#if defined(_WIN64)
-  LONG SpareLong;
-#endif
-} KWAIT_BLOCK, *PKWAIT_BLOCK, *PRKWAIT_BLOCK;
-
-typedef enum _KINTERRUPT_MODE {
-  LevelSensitive,
-  Latched
-} KINTERRUPT_MODE;
-
-#define THREAD_WAIT_OBJECTS 3
-
-typedef VOID
-(NTAPI KSTART_ROUTINE)(
-  IN PVOID StartContext);
-typedef KSTART_ROUTINE *PKSTART_ROUTINE;
-
-typedef VOID
-(NTAPI *PKINTERRUPT_ROUTINE)(
-  VOID);
-
-typedef BOOLEAN
-(NTAPI KSERVICE_ROUTINE)(
-  IN struct _KINTERRUPT *Interrupt,
-  IN PVOID ServiceContext);
-typedef KSERVICE_ROUTINE *PKSERVICE_ROUTINE;
-
-typedef BOOLEAN
-(NTAPI KMESSAGE_SERVICE_ROUTINE)(
-  IN struct _KINTERRUPT *Interrupt,
-  IN PVOID ServiceContext,
-  IN ULONG MessageID);
-typedef KMESSAGE_SERVICE_ROUTINE *PKMESSAGE_SERVICE_ROUTINE;
-
-typedef enum _KD_OPTION {
-  KD_OPTION_SET_BLOCK_ENABLE,
-} KD_OPTION;
-
-typedef VOID
-(NTAPI *PKNORMAL_ROUTINE)(
-  IN PVOID NormalContext OPTIONAL,
-  IN PVOID SystemArgument1 OPTIONAL,
-  IN PVOID SystemArgument2 OPTIONAL);
-
-typedef VOID
-(NTAPI *PKRUNDOWN_ROUTINE)(
-  IN struct _KAPC *Apc);
-
-typedef VOID
-(NTAPI *PKKERNEL_ROUTINE)(
-  IN struct _KAPC *Apc,
-  IN OUT PKNORMAL_ROUTINE *NormalRoutine OPTIONAL,
-  IN OUT PVOID *NormalContext OPTIONAL,
-  IN OUT PVOID *SystemArgument1 OPTIONAL,
-  IN OUT PVOID *SystemArgument2 OPTIONAL);
-
-typedef struct _KAPC {
-  UCHAR Type;
-  UCHAR SpareByte0;
-  UCHAR Size;
-  UCHAR SpareByte1;
-  ULONG SpareLong0;
-  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, *RESTRICTED_POINTER PRKAPC;
-
-#define KAPC_OFFSET_TO_SPARE_BYTE0 FIELD_OFFSET(KAPC, SpareByte0)
-#define KAPC_OFFSET_TO_SPARE_BYTE1 FIELD_OFFSET(KAPC, SpareByte1)
-#define KAPC_OFFSET_TO_SPARE_LONG FIELD_OFFSET(KAPC, SpareLong0)
-#define KAPC_OFFSET_TO_SYSTEMARGUMENT1 FIELD_OFFSET(KAPC, SystemArgument1)
-#define KAPC_OFFSET_TO_SYSTEMARGUMENT2 FIELD_OFFSET(KAPC, SystemArgument2)
-#define KAPC_OFFSET_TO_APCSTATEINDEX FIELD_OFFSET(KAPC, ApcStateIndex)
-#define KAPC_ACTUAL_LENGTH (FIELD_OFFSET(KAPC, Inserted) + sizeof(BOOLEAN))
-
-typedef struct _KDEVICE_QUEUE_ENTRY {
-  LIST_ENTRY DeviceListEntry;
-  ULONG SortKey;
-  BOOLEAN Inserted;
-} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY,
-*RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY;
-
-typedef PVOID PKIPI_CONTEXT;
-
-typedef VOID
-(NTAPI *PKIPI_WORKER)(
-  IN OUT PKIPI_CONTEXT PacketContext,
-  IN PVOID Parameter1 OPTIONAL,
-  IN PVOID Parameter2 OPTIONAL,
-  IN PVOID Parameter3 OPTIONAL);
-
-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;
-
-typedef ULONG_PTR
-(NTAPI KIPI_BROADCAST_WORKER)(
-  IN ULONG_PTR Argument);
-typedef KIPI_BROADCAST_WORKER *PKIPI_BROADCAST_WORKER;
-
-typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
-
-typedef struct _KSPIN_LOCK_QUEUE {
-  struct _KSPIN_LOCK_QUEUE *volatile Next;
-  PKSPIN_LOCK volatile Lock;
-} KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
-
-typedef struct _KLOCK_QUEUE_HANDLE {
-  KSPIN_LOCK_QUEUE LockQueue;
-  KIRQL OldIrql;
-} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
-
-#if defined(_AMD64_)
-
-typedef ULONG64 KSPIN_LOCK_QUEUE_NUMBER;
-
-#define LockQueueDispatcherLock 0
-#define LockQueueExpansionLock 1
-#define LockQueuePfnLock 2
-#define LockQueueSystemSpaceLock 3
-#define LockQueueVacbLock 4
-#define LockQueueMasterLock 5
-#define LockQueueNonPagedPoolLock 6
-#define LockQueueIoCancelLock 7
-#define LockQueueWorkQueueLock 8
-#define LockQueueIoVpbLock 9
-#define LockQueueIoDatabaseLock 10
-#define LockQueueIoCompletionLock 11
-#define LockQueueNtfsStructLock 12
-#define LockQueueAfdWorkQueueLock 13
-#define LockQueueBcbLock 14
-#define LockQueueMmNonPagedPoolLock 15
-#define LockQueueUnusedSpare16 16
-#define LockQueueTimerTableLock 17
-#define LockQueueMaximumLock (LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS)
-
-#else
-
-typedef enum _KSPIN_LOCK_QUEUE_NUMBER {
-  LockQueueDispatcherLock,
-  LockQueueExpansionLock,
-  LockQueuePfnLock,
-  LockQueueSystemSpaceLock,
-  LockQueueVacbLock,
-  LockQueueMasterLock,
-  LockQueueNonPagedPoolLock,
-  LockQueueIoCancelLock,
-  LockQueueWorkQueueLock,
-  LockQueueIoVpbLock,
-  LockQueueIoDatabaseLock,
-  LockQueueIoCompletionLock,
-  LockQueueNtfsStructLock,
-  LockQueueAfdWorkQueueLock,
-  LockQueueBcbLock,
-  LockQueueMmNonPagedPoolLock,
-  LockQueueUnusedSpare16,
-  LockQueueTimerTableLock,
-  LockQueueMaximumLock = LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS
-} KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER;
-
-#endif /* defined(_AMD64_) */
-
-typedef VOID
-(NTAPI *PKDEFERRED_ROUTINE)(
-  IN struct _KDPC *Dpc,
-  IN PVOID DeferredContext OPTIONAL,
-  IN PVOID SystemArgument1 OPTIONAL,
-  IN PVOID SystemArgument2 OPTIONAL);
-
-typedef enum _KDPC_IMPORTANCE {
-  LowImportance,
-  MediumImportance,
-  HighImportance,
-  MediumHighImportance
-} KDPC_IMPORTANCE;
-
-typedef struct _KDPC {
-  UCHAR Type;
-  UCHAR Importance;
-  volatile USHORT Number;
-  LIST_ENTRY DpcListEntry;
-  PKDEFERRED_ROUTINE DeferredRoutine;
-  PVOID DeferredContext;
-  PVOID SystemArgument1;
-  PVOID SystemArgument2;
-  volatile PVOID DpcData;
-} KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;
-
-typedef struct _KDPC_WATCHDOG_INFORMATION {
-  ULONG DpcTimeLimit;
-  ULONG DpcTimeCount;
-  ULONG DpcWatchdogLimit;
-  ULONG DpcWatchdogCount;
-  ULONG Reserved;
-} KDPC_WATCHDOG_INFORMATION, *PKDPC_WATCHDOG_INFORMATION;
-
-typedef struct _KDEVICE_QUEUE {
-  CSHORT Type;
-  CSHORT Size;
-  LIST_ENTRY DeviceListHead;
-  KSPIN_LOCK Lock;
-  #if defined(_AMD64_)
-  union {
-    BOOLEAN Busy;
-    struct {
-      LONG64 Reserved:8;
-      LONG64 Hint:56;
-    };
-  };
-  #else
-  BOOLEAN Busy;
-  #endif
-} KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
-
-#define TIMER_EXPIRED_INDEX_BITS        6
-#define TIMER_PROCESSOR_INDEX_BITS      5
-
-typedef struct _DISPATCHER_HEADER {
-  _ANONYMOUS_UNION union {
-    _ANONYMOUS_STRUCT struct {
-      UCHAR Type;
-      _ANONYMOUS_UNION union {
-        _ANONYMOUS_UNION union {
-          UCHAR TimerControlFlags;
-          _ANONYMOUS_STRUCT struct {
-            UCHAR Absolute:1;
-            UCHAR Coalescable:1;
-            UCHAR KeepShifting:1;
-            UCHAR EncodedTolerableDelay:5;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-        UCHAR Abandoned;
-#if (NTDDI_VERSION < NTDDI_WIN7)
-        UCHAR NpxIrql;
-#endif
-        BOOLEAN Signalling;
-      } DUMMYUNIONNAME;
-      _ANONYMOUS_UNION union {
-        _ANONYMOUS_UNION union {
-          UCHAR ThreadControlFlags;
-          _ANONYMOUS_STRUCT struct {
-            UCHAR CpuThrottled:1;
-            UCHAR CycleProfiling:1;
-            UCHAR CounterProfiling:1;
-            UCHAR Reserved:5;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-        UCHAR Size;
-        UCHAR Hand;
-      } DUMMYUNIONNAME2;
-      _ANONYMOUS_UNION union {
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-        _ANONYMOUS_UNION union {
-          UCHAR TimerMiscFlags;
-          _ANONYMOUS_STRUCT struct {
-#if !defined(_X86_)
-            UCHAR Index:TIMER_EXPIRED_INDEX_BITS;
-#else
-            UCHAR Index:1;
-            UCHAR Processor:TIMER_PROCESSOR_INDEX_BITS;
-#endif
-            UCHAR Inserted:1;
-            volatile UCHAR Expired:1;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-#else
-        /* Pre Win7 compatibility fix to latest WDK */
-        UCHAR Inserted;
-#endif
-        _ANONYMOUS_UNION union {
-          BOOLEAN DebugActive;
-          _ANONYMOUS_STRUCT struct {
-            BOOLEAN ActiveDR7:1;
-            BOOLEAN Instrumented:1;
-            BOOLEAN Reserved2:4;
-            BOOLEAN UmsScheduled:1;
-            BOOLEAN UmsPrimary:1;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME; /* should probably be DUMMYUNIONNAME2, but this is what WDK says */
-        BOOLEAN DpcActive;
-      } DUMMYUNIONNAME3;
-    } DUMMYSTRUCTNAME;
-    volatile LONG Lock;
-  } DUMMYUNIONNAME;
-  LONG SignalState;
-  LIST_ENTRY WaitListHead;
-} DISPATCHER_HEADER, *PDISPATCHER_HEADER;
-
-typedef struct _KEVENT {
-  DISPATCHER_HEADER Header;
-} KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
-
-typedef struct _KSEMAPHORE {
-  DISPATCHER_HEADER Header;
-  LONG Limit;
-} KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
-
-#define KSEMAPHORE_ACTUAL_LENGTH (FIELD_OFFSET(KSEMAPHORE, Limit) + sizeof(LONG))
-
-typedef struct _KGATE {
-  DISPATCHER_HEADER Header;
-} KGATE, *PKGATE, *RESTRICTED_POINTER PRKGATE;
-
-typedef struct _KGUARDED_MUTEX {
-  volatile LONG Count;
-  PKTHREAD Owner;
-  ULONG Contention;
-  KGATE Gate;
-  __GNU_EXTENSION union {
-    __GNU_EXTENSION struct {
-      SHORT KernelApcDisable;
-      SHORT SpecialApcDisable;
-    };
-    ULONG CombinedApcDisable;
-  };
-} KGUARDED_MUTEX, *PKGUARDED_MUTEX;
-
-typedef struct _KMUTANT {
-  DISPATCHER_HEADER Header;
-  LIST_ENTRY MutantListEntry;
-  struct _KTHREAD *RESTRICTED_POINTER OwnerThread;
-  BOOLEAN Abandoned;
-  UCHAR ApcDisable;
-} KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX;
-
-#define TIMER_TABLE_SIZE 512
-#define TIMER_TABLE_SHIFT 9
-
-typedef struct _KTIMER {
-  DISPATCHER_HEADER Header;
-  ULARGE_INTEGER DueTime;
-  LIST_ENTRY TimerListEntry;
-  struct _KDPC *Dpc;
-  #if !defined(_X86_)
-  ULONG Processor;
-  #endif
-  ULONG Period;
-} KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;
-
-typedef enum _LOCK_OPERATION {
-  IoReadAccess,
-  IoWriteAccess,
-  IoModifyAccess
-} LOCK_OPERATION;
-
-#define KTIMER_ACTUAL_LENGTH (FIELD_OFFSET(KTIMER, Period) + sizeof(LONG))
-
-typedef BOOLEAN
-(NTAPI *PKSYNCHRONIZE_ROUTINE)(
-  IN PVOID SynchronizeContext);
-
-typedef enum _POOL_TYPE {
-  NonPagedPool,
-  PagedPool,
-  NonPagedPoolMustSucceed,
-  DontUseThisType,
-  NonPagedPoolCacheAligned,
-  PagedPoolCacheAligned,
-  NonPagedPoolCacheAlignedMustS,
-  MaxPoolType,
-  NonPagedPoolSession = 32,
-  PagedPoolSession,
-  NonPagedPoolMustSucceedSession,
-  DontUseThisTypeSession,
-  NonPagedPoolCacheAlignedSession,
-  PagedPoolCacheAlignedSession,
-  NonPagedPoolCacheAlignedMustSSession
-} POOL_TYPE;
-
-typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE {
-  StandardDesign,
-  NEC98x86,
-  EndAlternatives
-} ALTERNATIVE_ARCHITECTURE_TYPE;
-
-#ifndef _X86_
-
-#ifndef IsNEC_98
-#define IsNEC_98 (FALSE)
-#endif
-
-#ifndef IsNotNEC_98
-#define IsNotNEC_98 (TRUE)
-#endif
-
-#ifndef SetNEC_98
-#define SetNEC_98
-#endif
-
-#ifndef SetNotNEC_98
-#define SetNotNEC_98
-#endif
-
-#endif
-
-typedef struct _KSYSTEM_TIME {
-  ULONG LowPart;
-  LONG High1Time;
-  LONG High2Time;
-} KSYSTEM_TIME, *PKSYSTEM_TIME;
-
-typedef struct DECLSPEC_ALIGN(16) _M128A {
-  ULONGLONG Low;
-  LONGLONG High;
-} M128A, *PM128A;
-
-typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
-  USHORT ControlWord;
-  USHORT StatusWord;
-  UCHAR TagWord;
-  UCHAR Reserved1;
-  USHORT ErrorOpcode;
-  ULONG ErrorOffset;
-  USHORT ErrorSelector;
-  USHORT Reserved2;
-  ULONG DataOffset;
-  USHORT DataSelector;
-  USHORT Reserved3;
-  ULONG MxCsr;
-  ULONG MxCsr_Mask;
-  M128A FloatRegisters[8];
-#if defined(_WIN64)
-  M128A XmmRegisters[16];
-  UCHAR Reserved4[96];
-#else
-  M128A XmmRegisters[8];
-  UCHAR Reserved4[192];
-  ULONG StackControl[7];
-  ULONG Cr0NpxState;
-#endif
-} XSAVE_FORMAT, *PXSAVE_FORMAT;
-
-typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER {
-  ULONG64 Mask;
-  ULONG64 Reserved[7];
-} XSAVE_AREA_HEADER, *PXSAVE_AREA_HEADER;
-
-typedef struct DECLSPEC_ALIGN(16) _XSAVE_AREA {
-  XSAVE_FORMAT LegacyState;
-  XSAVE_AREA_HEADER Header;
-} XSAVE_AREA, *PXSAVE_AREA;
-
-typedef struct _XSTATE_CONTEXT {
-  ULONG64 Mask;
-  ULONG Length;
-  ULONG Reserved1;
-  PXSAVE_AREA Area;
-#if defined(_X86_)
-  ULONG Reserved2;
-#endif
-  PVOID Buffer;
-#if defined(_X86_)
-  ULONG Reserved3;
-#endif
-} XSTATE_CONTEXT, *PXSTATE_CONTEXT;
-
-typedef struct _XSTATE_SAVE {
-#if defined(_AMD64_)
-  struct _XSTATE_SAVE* Prev;
-  struct _KTHREAD* Thread;
-  UCHAR Level;
-  XSTATE_CONTEXT XStateContext;
-#elif defined(_IA64_)
-  ULONG Dummy;
-#elif defined(_X86_)
-  union {
-    struct {
-      LONG64 Reserved1;
-      ULONG Reserved2;
-      struct _XSTATE_SAVE* Prev;
-      PXSAVE_AREA Reserved3;
-      struct _KTHREAD* Thread;
-      PVOID Reserved4;
-      UCHAR Level;
-    };
-    XSTATE_CONTEXT XStateContext;
-  };
-#endif
-} XSTATE_SAVE, *PXSTATE_SAVE;
-
-#ifdef _X86_
-
-#define MAXIMUM_SUPPORTED_EXTENSION  512
-
-#if !defined(__midl) && !defined(MIDL_PASS)
-C_ASSERT(sizeof(XSAVE_FORMAT) == MAXIMUM_SUPPORTED_EXTENSION);
-#endif
-
-#endif /* _X86_ */
-
-#define XSAVE_ALIGN                    64
-#define MINIMAL_XSTATE_AREA_LENGTH     sizeof(XSAVE_AREA)
-
-#if !defined(__midl) && !defined(MIDL_PASS)
-C_ASSERT((sizeof(XSAVE_FORMAT) & (XSAVE_ALIGN - 1)) == 0);
-C_ASSERT((FIELD_OFFSET(XSAVE_AREA, Header) & (XSAVE_ALIGN - 1)) == 0);
-C_ASSERT(MINIMAL_XSTATE_AREA_LENGTH == 512 + 64);
-#endif
-
-typedef struct _CONTEXT_CHUNK {
-  LONG Offset;
-  ULONG Length;
-} CONTEXT_CHUNK, *PCONTEXT_CHUNK;
-
-typedef struct _CONTEXT_EX {
-  CONTEXT_CHUNK All;
-  CONTEXT_CHUNK Legacy;
-  CONTEXT_CHUNK XState;
-} CONTEXT_EX, *PCONTEXT_EX;
-
-#define CONTEXT_EX_LENGTH         ALIGN_UP_BY(sizeof(CONTEXT_EX), STACK_ALIGN)
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-extern NTSYSAPI volatile CCHAR KeNumberProcessors;
-#elif (NTDDI_VERSION >= NTDDI_WINXP)
-extern NTSYSAPI CCHAR KeNumberProcessors;
-#else
-extern PCCHAR KeNumberProcessors;
-#endif
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-#define NX_SUPPORT_POLICY_ALWAYSOFF 0
-#define NX_SUPPORT_POLICY_ALWAYSON 1
-#define NX_SUPPORT_POLICY_OPTIN 2
-#define NX_SUPPORT_POLICY_OPTOUT 3
-
-typedef VOID
-(NTAPI *PEXPAND_STACK_CALLOUT)(
-  IN PVOID Parameter OPTIONAL);
-
-typedef VOID
-(NTAPI *PTIMER_APC_ROUTINE)(
-  IN PVOID TimerContext,
-  IN ULONG TimerLowValue,
-  IN LONG TimerHighValue);
-
-typedef enum _TIMER_SET_INFORMATION_CLASS {
-  TimerSetCoalescableTimer,
-  MaxTimerInfoClass 
-} TIMER_SET_INFORMATION_CLASS;
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-typedef struct _TIMER_SET_COALESCABLE_TIMER_INFO {
-  IN LARGE_INTEGER DueTime;
-  IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL;
-  IN PVOID TimerContext OPTIONAL;
-  IN struct _COUNTED_REASON_CONTEXT *WakeContext OPTIONAL;
-  IN ULONG Period OPTIONAL;
-  IN ULONG TolerableDelay;
-  OUT PBOOLEAN PreviousState OPTIONAL;
-} TIMER_SET_COALESCABLE_TIMER_INFO, *PTIMER_SET_COALESCABLE_TIMER_INFO;
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#define XSTATE_LEGACY_FLOATING_POINT        0
-#define XSTATE_LEGACY_SSE                   1
-#define XSTATE_GSSE                         2
-
-#define XSTATE_MASK_LEGACY_FLOATING_POINT   (1i64 << (XSTATE_LEGACY_FLOATING_POINT))
-#define XSTATE_MASK_LEGACY_SSE              (1i64 << (XSTATE_LEGACY_SSE))
-#define XSTATE_MASK_LEGACY                  (XSTATE_MASK_LEGACY_FLOATING_POINT | XSTATE_MASK_LEGACY_SSE)
-#define XSTATE_MASK_GSSE                    (1i64 << (XSTATE_GSSE))
-
-#define MAXIMUM_XSTATE_FEATURES             64
-
-typedef struct _XSTATE_FEATURE {
-  ULONG Offset;
-  ULONG Size;
-} XSTATE_FEATURE, *PXSTATE_FEATURE;
-
-typedef struct _XSTATE_CONFIGURATION {
-  ULONG64 EnabledFeatures;
-  ULONG Size;
-  ULONG OptimizedSave:1;
-  XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES];
-} XSTATE_CONFIGURATION, *PXSTATE_CONFIGURATION;
-
-#define MAX_WOW64_SHARED_ENTRIES 16
-
-typedef struct _KUSER_SHARED_DATA {
-  ULONG TickCountLowDeprecated;
-  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 LargePageMinimum;
-  ULONG Reserved2[7];
-  NT_PRODUCT_TYPE NtProductType;
-  BOOLEAN ProductTypeIsValid;
-  ULONG NtMajorVersion;
-  ULONG NtMinorVersion;
-  BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX];
-  ULONG Reserved1;
-  ULONG Reserved3;
-  volatile ULONG TimeSlip;
-  ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
-  ULONG AltArchitecturePad[1];
-  LARGE_INTEGER SystemExpirationDate;
-  ULONG SuiteMask;
-  BOOLEAN KdDebuggerEnabled;
-#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
-  UCHAR NXSupportPolicy;
-#endif
-  volatile ULONG ActiveConsoleId;
-  volatile ULONG DismountCount;
-  ULONG ComPlusPackage;
-  ULONG LastSystemRITEventTickCount;
-  ULONG NumberOfPhysicalPages;
-  BOOLEAN SafeBootMode;
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  union {
-    UCHAR TscQpcData;
-    struct {
-      UCHAR TscQpcEnabled:1;
-      UCHAR TscQpcSpareFlag:1;
-      UCHAR TscQpcShift:6;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-  UCHAR TscQpcPad[2];
-#endif
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-  union {
-    ULONG SharedDataFlags;
-    struct {
-      ULONG DbgErrorPortPresent:1;
-      ULONG DbgElevationEnabled:1;
-      ULONG DbgVirtEnabled:1;
-      ULONG DbgInstallerDetectEnabled:1;
-      ULONG DbgSystemDllRelocated:1;
-      ULONG DbgDynProcessorEnabled:1;
-      ULONG DbgSEHValidationEnabled:1;
-      ULONG SpareBits:25;
-    } DUMMYSTRUCTNAME2;
-  } DUMMYUNIONNAME2;
-#else
-  ULONG TraceLogging;
-#endif
-  ULONG DataFlagsPad[1];
-  ULONGLONG TestRetInstruction;
-  ULONG SystemCall;
-  ULONG SystemCallReturn;
-  ULONGLONG SystemCallPad[3];
-  _ANONYMOUS_UNION union {
-    volatile KSYSTEM_TIME TickCount;
-    volatile ULONG64 TickCountQuad;
-    _ANONYMOUS_STRUCT struct {
-      ULONG ReservedTickCountOverlay[3];
-      ULONG TickCountPad[1];
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME3;
-  ULONG Cookie;
-  ULONG CookiePad[1];
-#if (NTDDI_VERSION >= NTDDI_WS03)
-  LONGLONG ConsoleSessionForegroundProcessId;
-  ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES];
-#endif
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  USHORT UserModeGlobalLogger[16];
-#else
-  USHORT UserModeGlobalLogger[8];
-  ULONG HeapTracingPid[2];
-  ULONG CritSecTracingPid[2];
-#endif
-  ULONG ImageFileExecutionOptions;
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-  ULONG LangGenerationCount;
-#else
-  /* 4 bytes padding */
-#endif
-  ULONGLONG Reserved5;
-  volatile ULONG64 InterruptTimeBias;
-#endif
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  volatile ULONG64 TscQpcBias;
-  volatile ULONG ActiveProcessorCount;
-  volatile USHORT ActiveGroupCount;
-  USHORT Reserved4;
-  volatile ULONG AitSamplingValue;
-  volatile ULONG AppCompatFlag;
-  ULONGLONG SystemDllNativeRelocation;
-  ULONG SystemDllWowRelocation;
-  ULONG XStatePad[1];
-  XSTATE_CONFIGURATION XState;
-#endif
-} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-extern NTSYSAPI volatile CCHAR KeNumberProcessors;
-#elif (NTDDI_VERSION >= NTDDI_WINXP)
-extern NTSYSAPI CCHAR KeNumberProcessors;
-#else
-extern PCCHAR KeNumberProcessors;
-#endif
-
-$endif /* _NTDDK_ */
-
diff --git a/reactos/include/xdk/mips/ke.h b/reactos/include/xdk/mips/ke.h
deleted file mode 100644 (file)
index 31384ad..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-$if (_WDMDDK_)
-#error MIPS Headers are totally incorrect
-
-//
-// Used to contain PFNs and PFN counts
-//
-typedef ULONG PFN_COUNT;
-typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
-typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
-
-#define PASSIVE_LEVEL                      0
-#define APC_LEVEL                          1
-#define DISPATCH_LEVEL                     2
-#define PROFILE_LEVEL                     27
-#define IPI_LEVEL                         29
-#define HIGH_LEVEL                        31
-
-typedef struct _KPCR {
-  struct _KPRCB *Prcb;         /* 20 */
-  KIRQL Irql;                  /* 24 */
-  ULONG IRR;                   /* 28 */
-  ULONG IDR;                   /* 30 */
-} KPCR, *PKPCR;
-
-#define KeGetPcr()                      PCR
-
-typedef struct _KFLOATING_SAVE {
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
-
-static __inline
-ULONG
-NTAPI
-KeGetCurrentProcessorNumber(VOID)
-{
-  return 0;
-}
-
-#define YieldProcessor() __asm__ __volatile__("nop");
-
-#define KeLowerIrql(a) KfLowerIrql(a)
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
-
-NTKERNELAPI
-VOID
-NTAPI
-KfLowerIrql(
-  IN KIRQL NewIrql);
-
-NTKERNELAPI
-KIRQL
-NTAPI
-KfRaiseIrql(
-  IN KIRQL NewIrql);
-
-NTKERNELAPI
-KIRQL
-NTAPI
-KeRaiseIrqlToDpcLevel(VOID);
-
-NTKERNELAPI
-KIRQL
-NTAPI
-KeRaiseIrqlToSynchLevel(VOID);
-
-$endif
-
diff --git a/reactos/include/xdk/mmfuncs.h b/reactos/include/xdk/mmfuncs.h
deleted file mode 100644 (file)
index b714f97..0000000
+++ /dev/null
@@ -1,658 +0,0 @@
-/******************************************************************************
- *                       Memory manager Functions                             *
- ******************************************************************************/
-$if (_WDMDDK_)
-/* Alignment Macros */
-#define ALIGN_DOWN_BY(size, align) \
-    ((ULONG_PTR)(size) & ~((ULONG_PTR)(align) - 1))
-
-#define ALIGN_UP_BY(size, align) \
-    (ALIGN_DOWN_BY(((ULONG_PTR)(size) + align - 1), align))
-
-#define ALIGN_DOWN_POINTER_BY(ptr, align) \
-    ((PVOID)ALIGN_DOWN_BY(ptr, align))
-
-#define ALIGN_UP_POINTER_BY(ptr, align) \
-    ((PVOID)ALIGN_UP_BY(ptr, align))
-
-#define ALIGN_DOWN(size, type) \
-    ALIGN_DOWN_BY(size, sizeof(type))
-
-#define ALIGN_UP(size, type) \
-    ALIGN_UP_BY(size, sizeof(type))
-
-#define ALIGN_DOWN_POINTER(ptr, type) \
-    ALIGN_DOWN_POINTER_BY(ptr, sizeof(type))
-
-#define ALIGN_UP_POINTER(ptr, type) \
-    ALIGN_UP_POINTER_BY(ptr, sizeof(type))
-
-#ifndef FIELD_OFFSET
-#define FIELD_OFFSET(type, field) ((ULONG)&(((type *)0)->field))
-#endif
-
-#ifndef FIELD_SIZE
-#define FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
-#endif
-
-#define POOL_TAGGING                             1
-
-#if DBG
-#define IF_DEBUG if (TRUE)
-#else
-#define IF_DEBUG if (FALSE)
-#endif /* DBG */
-
-/* ULONG
- * BYTE_OFFSET(
- *   IN PVOID Va)
- */
-#define BYTE_OFFSET(Va) \
-  ((ULONG) ((ULONG_PTR) (Va) & (PAGE_SIZE - 1)))
-
-/* ULONG
- * BYTES_TO_PAGES(
- *   IN ULONG Size)
- */
-#define BYTES_TO_PAGES(Size) \
-  (((Size) + PAGE_SIZE - 1) >> PAGE_SHIFT)
-
-/* PVOID
- * PAGE_ALIGN(
- *   IN PVOID Va)
- */
-#define PAGE_ALIGN(Va) \
-  ((PVOID) ((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1)))
-
-/* ULONG_PTR
- * ROUND_TO_PAGES(
- *   IN ULONG_PTR Size)
- */
-#define ROUND_TO_PAGES(Size) \
-  (((ULONG_PTR) (Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
-
-/* ULONG
- * ADDRESS_AND_SIZE_TO_SPAN_PAGES(
- *   IN PVOID Va,
- *   IN ULONG Size)
- */
-#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size) \
-  ((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
-    + (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
-
-#define COMPUTE_PAGES_SPANNED(Va, Size) \
-    ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size)
-
-/*
- * ULONG
- * MmGetMdlByteCount(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlByteCount(_Mdl) \
-  ((_Mdl)->ByteCount)
-
-/*
- * ULONG
- * MmGetMdlByteOffset(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlByteOffset(_Mdl) \
-  ((_Mdl)->ByteOffset)
-
-#define MmGetMdlBaseVa(Mdl) ((Mdl)->StartVa)
-
-/*
- * PPFN_NUMBER
- * MmGetMdlPfnArray(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlPfnArray(_Mdl) \
-  ((PPFN_NUMBER) ((_Mdl) + 1))
-
-/*
- * PVOID
- * MmGetMdlVirtualAddress(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlVirtualAddress(_Mdl) \
-  ((PVOID) ((PCHAR) ((_Mdl)->StartVa) + (_Mdl)->ByteOffset))
-
-#define MmGetProcedureAddress(Address) (Address)
-
-/* PVOID MmGetSystemAddressForMdl(
- *     IN PMDL Mdl);
- */
-#define MmGetSystemAddressForMdl(Mdl) \
-  (((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \
-    MDL_SOURCE_IS_NONPAGED_POOL)) ? \
-      ((Mdl)->MappedSystemVa) : \
-      (MmMapLockedPages((Mdl), KernelMode)))
-
-/* PVOID
- * MmGetSystemAddressForMdlSafe(
- *     IN PMDL Mdl,
- *     IN MM_PAGE_PRIORITY Priority)
- */
-#define MmGetSystemAddressForMdlSafe(_Mdl, _Priority) \
-  (((_Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA \
-    | MDL_SOURCE_IS_NONPAGED_POOL)) ? \
-    (_Mdl)->MappedSystemVa : \
-    (PVOID) MmMapLockedPagesSpecifyCache((_Mdl), \
-      KernelMode, MmCached, NULL, FALSE, (_Priority)))
-
-/*
- * VOID
- * MmInitializeMdl(
- *   IN PMDL  MemoryDescriptorList,
- *   IN PVOID  BaseVa,
- *   IN SIZE_T  Length)
- */
-#define MmInitializeMdl(_MemoryDescriptorList, \
-                        _BaseVa, \
-                        _Length) \
-{ \
-  (_MemoryDescriptorList)->Next = (PMDL) NULL; \
-  (_MemoryDescriptorList)->Size = (CSHORT) (sizeof(MDL) + \
-    (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES(_BaseVa, _Length))); \
-  (_MemoryDescriptorList)->MdlFlags = 0; \
-  (_MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN(_BaseVa); \
-  (_MemoryDescriptorList)->ByteOffset = BYTE_OFFSET(_BaseVa); \
-  (_MemoryDescriptorList)->ByteCount = (ULONG) _Length; \
-}
-
-/*
- * VOID
- * MmPrepareMdlForReuse(
- *   IN PMDL  Mdl)
- */
-#define MmPrepareMdlForReuse(_Mdl) \
-{ \
-  if (((_Mdl)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \
-    ASSERT(((_Mdl)->MdlFlags & MDL_PARTIAL) != 0); \
-    MmUnmapLockedPages((_Mdl)->MappedSystemVa, (_Mdl)); \
-  } else if (((_Mdl)->MdlFlags & MDL_PARTIAL) == 0) { \
-    ASSERT(((_Mdl)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \
-  } \
-}
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-$if (_NTDDK_)
-NTKERNELAPI
-PPHYSICAL_MEMORY_RANGE
-NTAPI
-MmGetPhysicalMemoryRanges(VOID);
-
-NTKERNELAPI
-PHYSICAL_ADDRESS
-NTAPI
-MmGetPhysicalAddress(
-  IN PVOID BaseAddress);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-MmIsNonPagedSystemAddressValid(
-  IN PVOID VirtualAddress);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateNonCachedMemory(
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeNonCachedMemory(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmGetVirtualForPhysical(
-  IN PHYSICAL_ADDRESS PhysicalAddress);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmMapUserAddressesToPage(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes,
-  IN PVOID PageAddress);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapVideoDisplay(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmMapViewInSessionSpace(
-  IN PVOID Section,
-  OUT PVOID *MappedBase,
-  IN OUT PSIZE_T ViewSize);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmMapViewInSystemSpace(
-  IN PVOID Section,
-  OUT PVOID *MappedBase,
-  IN OUT PSIZE_T ViewSize);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-MmIsAddressValid(
-  IN PVOID VirtualAddress);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-MmIsThisAnNtAsSystem(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmLockPagableSectionByHandle(
-  IN PVOID ImageSectionHandle);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmUnmapViewInSessionSpace(
-  IN PVOID MappedBase);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmUnmapViewInSystemSpace(
-  IN PVOID MappedBase);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnsecureVirtualMemory(
-  IN HANDLE SecureHandle);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmRemovePhysicalMemory(
-  IN PPHYSICAL_ADDRESS StartAddress,
-  IN OUT PLARGE_INTEGER NumberOfBytes);
-
-NTKERNELAPI
-HANDLE
-NTAPI
-MmSecureVirtualMemory(
-  IN PVOID Address,
-  IN SIZE_T Size,
-  IN ULONG ProbeMode);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapVideoDisplay(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAddPhysicalMemory(
-  IN PPHYSICAL_ADDRESS StartAddress,
-  IN OUT PLARGE_INTEGER NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemory(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemorySpecifyCache(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemorySpecifyCacheNode(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN NODE_REQUIREMENT PreferredNode);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemory(
-  IN PVOID BaseAddress);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemorySpecifyCache(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheType);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemory(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemorySpecifyCache(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-PMDL
-NTAPI
-MmAllocatePagesForMdl(
-  IN PHYSICAL_ADDRESS LowAddress,
-  IN PHYSICAL_ADDRESS HighAddress,
-  IN PHYSICAL_ADDRESS SkipBytes,
-  IN SIZE_T TotalBytes);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmBuildMdlForNonPagedPool(
-  IN OUT PMDLX MemoryDescriptorList);
-
-//DECLSPEC_DEPRECATED_DDK
-NTKERNELAPI
-PMDL
-NTAPI
-MmCreateMdl(
-  IN PMDL MemoryDescriptorList OPTIONAL,
-  IN PVOID Base,
-  IN SIZE_T Length);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemory(
-  IN PVOID BaseAddress);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemorySpecifyCache(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreePagesFromMdl(
-  IN PMDLX MemoryDescriptorList);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmGetSystemRoutineAddress(
-  IN PUNICODE_STRING SystemRoutineName);
-
-NTKERNELAPI
-LOGICAL
-NTAPI
-MmIsDriverVerifying(
-  IN struct _DRIVER_OBJECT *DriverObject);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmLockPagableDataSection(
-  IN PVOID AddressWithinSection);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapIoSpace(
-  IN PHYSICAL_ADDRESS PhysicalAddress,
-  IN SIZE_T NumberOfBytes,
-  IN MEMORY_CACHING_TYPE CacheEnable);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPages(
-  IN PMDL MemoryDescriptorList,
-  IN KPROCESSOR_MODE AccessMode);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPagesSpecifyCache(
-  IN PMDLX MemoryDescriptorList,
-  IN KPROCESSOR_MODE AccessMode,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN PVOID BaseAddress OPTIONAL,
-  IN ULONG BugCheckOnFailure,
-  IN MM_PAGE_PRIORITY Priority);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmPageEntireDriver(
-  IN PVOID AddressWithinSection);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmProbeAndLockPages(
-  IN OUT PMDL MemoryDescriptorList,
-  IN KPROCESSOR_MODE AccessMode,
-  IN LOCK_OPERATION Operation);
-
-NTKERNELAPI
-MM_SYSTEMSIZE
-NTAPI
-MmQuerySystemSize(VOID);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmResetDriverPaging(
-  IN PVOID AddressWithinSection);
-
-NTKERNELAPI
-SIZE_T
-NTAPI
-MmSizeOfMdl(
-  IN PVOID Base,
-  IN SIZE_T Length);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnlockPagableImageSection(
-  IN PVOID ImageSectionHandle);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnlockPages(
-  IN OUT PMDL MemoryDescriptorList);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapIoSpace(
-  IN PVOID BaseAddress,
-  IN SIZE_T NumberOfBytes);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmProbeAndLockProcessPages(
-  IN OUT PMDL MemoryDescriptorList,
-  IN PEPROCESS Process,
-  IN KPROCESSOR_MODE AccessMode,
-  IN LOCK_OPERATION Operation);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapLockedPages(
-  IN PVOID BaseAddress,
-  IN PMDL MemoryDescriptorList);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemorySpecifyCacheNode(
-  IN SIZE_T NumberOfBytes,
-  IN PHYSICAL_ADDRESS LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN NODE_REQUIREMENT PreferredNode);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAdvanceMdl(
-  IN OUT PMDL Mdl,
-  IN ULONG NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateMappingAddress(
-  IN SIZE_T NumberOfBytes,
-  IN ULONG PoolTag);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeMappingAddress(
-  IN PVOID BaseAddress,
-  IN ULONG PoolTag);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmIsVerifierEnabled(
-  OUT PULONG VerifierFlags);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPagesWithReservedMapping(
-  IN PVOID MappingAddress,
-  IN ULONG PoolTag,
-  IN PMDL MemoryDescriptorList,
-  IN MEMORY_CACHING_TYPE CacheType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmProtectMdlSystemAddress(
-  IN PMDL MemoryDescriptorList,
-  IN ULONG NewProtect);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapReservedMapping(
-  IN PVOID BaseAddress,
-  IN ULONG PoolTag,
-  IN PMDL MemoryDescriptorList);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAddVerifierThunks(
-  IN PVOID ThunkBuffer,
-  IN ULONG ThunkBufferSize);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-$if (_NTDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmCreateMirror(VOID);
-$endif
-$if (_WDMDDK_)
-NTKERNELAPI
-LOGICAL
-NTAPI
-MmIsIoSpaceActive(
-  IN PHYSICAL_ADDRESS StartAddress,
-  IN SIZE_T NumberOfBytes);
-$endif
-#endif
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-NTKERNELAPI
-PMDL
-NTAPI
-MmAllocatePagesForMdlEx(
-  IN PHYSICAL_ADDRESS LowAddress,
-  IN PHYSICAL_ADDRESS HighAddress,
-  IN PHYSICAL_ADDRESS SkipBytes,
-  IN SIZE_T TotalBytes,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN ULONG Flags);
-#endif
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-$if (_NTDDK_)
-NTSTATUS
-NTAPI
-MmRotatePhysicalView(
-  IN PVOID VirtualAddress,
-  IN OUT PSIZE_T NumberOfBytes,
-  IN PMDLX NewMdl OPTIONAL,
-  IN MM_ROTATE_DIRECTION Direction,
-  IN PMM_ROTATE_COPY_CALLBACK_FUNCTION CopyFunction,
-  IN PVOID Context OPTIONAL);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-LOGICAL
-NTAPI
-MmIsDriverVerifyingByAddress(
-  IN PVOID AddressWithinSection);
-$endif
-#endif
-
diff --git a/reactos/include/xdk/mmtypes.h b/reactos/include/xdk/mmtypes.h
deleted file mode 100644 (file)
index e4a23f4..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/******************************************************************************
- *                         Memory manager Types                               *
- ******************************************************************************/
-$if (_WDMDDK_)
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-typedef ULONG NODE_REQUIREMENT;
-#define MM_ANY_NODE_OK                           0x80000000
-#endif
-
-#define MM_DONT_ZERO_ALLOCATION                  0x00000001
-#define MM_ALLOCATE_FROM_LOCAL_NODE_ONLY         0x00000002
-#define MM_ALLOCATE_FULLY_REQUIRED               0x00000004
-#define MM_ALLOCATE_NO_WAIT                      0x00000008
-#define MM_ALLOCATE_PREFER_CONTIGUOUS            0x00000010
-#define MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS    0x00000020
-
-#define MDL_MAPPED_TO_SYSTEM_VA     0x0001
-#define MDL_PAGES_LOCKED            0x0002
-#define MDL_SOURCE_IS_NONPAGED_POOL 0x0004
-#define MDL_ALLOCATED_FIXED_SIZE    0x0008
-#define MDL_PARTIAL                 0x0010
-#define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020
-#define MDL_IO_PAGE_READ            0x0040
-#define MDL_WRITE_OPERATION         0x0080
-#define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100
-#define MDL_FREE_EXTRA_PTES         0x0200
-#define MDL_DESCRIBES_AWE           0x0400
-#define MDL_IO_SPACE                0x0800
-#define MDL_NETWORK_HEADER          0x1000
-#define MDL_MAPPING_CAN_FAIL        0x2000
-#define MDL_ALLOCATED_MUST_SUCCEED  0x4000
-#define MDL_INTERNAL                0x8000
-
-#define MDL_MAPPING_FLAGS ( \
-  MDL_MAPPED_TO_SYSTEM_VA     | \
-  MDL_PAGES_LOCKED            | \
-  MDL_SOURCE_IS_NONPAGED_POOL | \
-  MDL_PARTIAL_HAS_BEEN_MAPPED | \
-  MDL_PARENT_MAPPED_SYSTEM_VA | \
-  MDL_SYSTEM_VA               | \
-  MDL_IO_SPACE)
-
-#define FLUSH_MULTIPLE_MAXIMUM 32
-
-/* Section access rights */
-#define SECTION_QUERY                0x0001
-#define SECTION_MAP_WRITE            0x0002
-#define SECTION_MAP_READ             0x0004
-#define SECTION_MAP_EXECUTE          0x0008
-#define SECTION_EXTEND_SIZE          0x0010
-#define SECTION_MAP_EXECUTE_EXPLICIT 0x0020
-
-#define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\
-                            SECTION_MAP_WRITE |      \
-                            SECTION_MAP_READ |       \
-                            SECTION_MAP_EXECUTE |    \
-                            SECTION_EXTEND_SIZE)
-
-#define SESSION_QUERY_ACCESS  0x0001
-#define SESSION_MODIFY_ACCESS 0x0002
-
-#define SESSION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |  \
-                            SESSION_QUERY_ACCESS |             \
-                            SESSION_MODIFY_ACCESS)
-
-#define SEGMENT_ALL_ACCESS SECTION_ALL_ACCESS
-
-#define PAGE_NOACCESS          0x01
-#define PAGE_READONLY          0x02
-#define PAGE_READWRITE         0x04
-#define PAGE_WRITECOPY         0x08
-#define PAGE_EXECUTE           0x10
-#define PAGE_EXECUTE_READ      0x20
-#define PAGE_EXECUTE_READWRITE 0x40
-#define PAGE_EXECUTE_WRITECOPY 0x80
-#define PAGE_GUARD            0x100
-#define PAGE_NOCACHE          0x200
-#define PAGE_WRITECOMBINE     0x400
-
-#define MEM_COMMIT           0x1000
-#define MEM_RESERVE          0x2000
-#define MEM_DECOMMIT         0x4000
-#define MEM_RELEASE          0x8000
-#define MEM_FREE            0x10000
-#define MEM_PRIVATE         0x20000
-#define MEM_MAPPED          0x40000
-#define MEM_RESET           0x80000
-#define MEM_TOP_DOWN       0x100000
-#define MEM_LARGE_PAGES  0x20000000
-#define MEM_4MB_PAGES    0x80000000
-
-#define SEC_RESERVE       0x4000000
-#define SEC_COMMIT        0x8000000
-#define SEC_LARGE_PAGES  0x80000000
-
-/* Section map options */
-typedef enum _SECTION_INHERIT {
-  ViewShare = 1,
-  ViewUnmap = 2
-} SECTION_INHERIT;
-
-typedef ULONG PFN_COUNT;
-typedef LONG_PTR SPFN_NUMBER, *PSPFN_NUMBER;
-typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER;
-
-typedef struct _MDL {
-  struct _MDL *Next;
-  CSHORT Size;
-  CSHORT MdlFlags;
-  struct _EPROCESS *Process;
-  PVOID MappedSystemVa;
-  PVOID StartVa;
-  ULONG ByteCount;
-  ULONG ByteOffset;
-} MDL, *PMDL;
-typedef MDL *PMDLX;
-
-typedef enum _MEMORY_CACHING_TYPE_ORIG {
-  MmFrameBufferCached = 2
-} MEMORY_CACHING_TYPE_ORIG;
-
-typedef enum _MEMORY_CACHING_TYPE {
-  MmNonCached = FALSE,
-  MmCached = TRUE,
-  MmWriteCombined = MmFrameBufferCached,
-  MmHardwareCoherentCached,
-  MmNonCachedUnordered,
-  MmUSWCCached,
-  MmMaximumCacheType
-} MEMORY_CACHING_TYPE;
-
-typedef enum _MM_PAGE_PRIORITY {
-  LowPagePriority,
-  NormalPagePriority = 16,
-  HighPagePriority = 32
-} MM_PAGE_PRIORITY;
-
-typedef enum _MM_SYSTEM_SIZE {
-  MmSmallSystem,
-  MmMediumSystem,
-  MmLargeSystem
-} MM_SYSTEMSIZE;
-
-extern NTKERNELAPI BOOLEAN Mm64BitPhysicalAddress;
-extern PVOID MmBadPointer;
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-typedef struct _PHYSICAL_MEMORY_RANGE {
-  PHYSICAL_ADDRESS BaseAddress;
-  LARGE_INTEGER NumberOfBytes;
-} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
-
-typedef NTSTATUS
-(NTAPI *PMM_ROTATE_COPY_CALLBACK_FUNCTION)(
-  IN PMDL DestinationMdl,
-  IN PMDL SourceMdl,
-  IN PVOID Context);
-
-typedef enum _MM_ROTATE_DIRECTION {
-  MmToFrameBuffer,
-  MmToFrameBufferNoCopy,
-  MmToRegularMemory,
-  MmToRegularMemoryNoCopy,
-  MmMaximumRotateDirection
-} MM_ROTATE_DIRECTION, *PMM_ROTATE_DIRECTION;
-
-$endif /* _NTDDK_ */
-
diff --git a/reactos/include/xdk/ntddk.template.h b/reactos/include/xdk/ntddk.template.h
deleted file mode 100644 (file)
index 003e9b7..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * ntddk.h
- *
- * Windows NT Device Driver Kit
- *
- * This file is part of the ReactOS DDK package.
- *
- * Contributors:
- *   Amine Khaldi
- *   Timo Kreuzer (timo.kreuzer@reactos.org)
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#pragma once
-
-#define _NTDDK_
-
-#if !defined(_NTHAL_) && !defined(_NTIFS_)
-#define _NTDDK_INCLUDED_
-#define _DDK_DRIVER_
-#endif
-
-/* Dependencies */
-
-#define NT_INCLUDED
-#define _CTYPE_DISABLE_MACROS
-
-#include <wdm.h>
-#include <excpt.h>
-#include <ntdef.h>
-#include <ntstatus.h>
-#include <mce.h>
-
-/* FIXME
-#include <bugcodes.h>
-#include <ntiologc.h>
-*/
-
-#include <stdarg.h> // FIXME
-#include <basetyps.h> // FIXME
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GUID and UUID */
-#ifndef _NTLSA_IFS_
-#ifndef _NTLSA_AUDIT_
-#define _NTLSA_AUDIT_
-
-#ifndef GUID_DEFINED
-#include <guiddef.h>
-#endif
-
-#endif /* _NTLSA_AUDIT_ */
-#endif /* _NTLSA_IFS_ */
-
-typedef GUID UUID;
-
-struct _LOADER_PARAMETER_BLOCK;
-struct _CREATE_DISK;
-struct _DRIVE_LAYOUT_INFORMATION_EX;
-struct _SET_PARTITION_INFORMATION_EX;
-
-typedef struct _BUS_HANDLER *PBUS_HANDLER;
-typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
-#if defined(_NTHAL_INCLUDED_)
-typedef struct _KAFFINITY_EX *PKAFFINITY_EX;
-#endif
-typedef struct _PEB *PPEB;
-
-#ifndef _NTIMAGE_
-
-typedef struct _IMAGE_NT_HEADERS *PIMAGE_NT_HEADERS32;
-typedef struct _IMAGE_NT_HEADERS64 *PIMAGE_NT_HEADERS64;
-
-#ifdef _WIN64
-typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS;
-#else
-typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
-#endif
-
-#endif /* _NTIMAGE_ */
-
-$define (_NTDDK_)
-$include (extypes.h)
-$include (iotypes.h)
-$include (haltypes.h)
-$include (ketypes.h)
-$include (kdtypes.h)
-$include (mmtypes.h)
-$include (pstypes.h)
-$include (rtltypes.h)
-$include (setypes.h)
-
-#if defined(_M_IX86)
-$include(x86/ke.h)
-$include(x86/mm.h)
-#elif defined(_M_AMD64)
-$include(amd64/ke.h)
-$include(amd64/mm.h)
-#elif defined(_M_IA64)
-$include(ia64/ke.h)
-#elif defined(_M_PPC)
-$include(ppc/ke.h)
-#elif defined(_M_MIPS)
-$include(mips/ke.h)
-#elif defined(_M_ARM)
-$include(arm/ke.h)
-#else
-#error Unknown Architecture
-#endif
-
-$include (exfuncs.h)
-$include (halfuncs.h)
-$include (iofuncs.h)
-$include (kdfuncs.h)
-$include (kefuncs.h)
-$include (mmfuncs.h)
-$include (psfuncs.h)
-$include (rtlfuncs.h)
-$include (sefuncs.h)
-$include (zwfuncs.h)
-
-
-/* UNSORTED */
-
-#define VER_SET_CONDITION(ConditionMask, TypeBitMask, ComparisonType)  \
-        ((ConditionMask) = VerSetConditionMask((ConditionMask), \
-        (TypeBitMask), (ComparisonType)))
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTSYSAPI
-ULONGLONG
-NTAPI
-VerSetConditionMask(
-  IN ULONGLONG ConditionMask,
-  IN ULONG TypeMask,
-  IN UCHAR Condition);
-#endif
-
-typedef struct _KERNEL_USER_TIMES {
-  LARGE_INTEGER CreateTime;
-  LARGE_INTEGER ExitTime;
-  LARGE_INTEGER KernelTime;
-  LARGE_INTEGER UserTime;
-} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
-
-/* NtXxx Functions */
-
-typedef enum _SYSTEM_FIRMWARE_TABLE_ACTION {
-  SystemFirmwareTable_Enumerate,
-  SystemFirmwareTable_Get
-} SYSTEM_FIRMWARE_TABLE_ACTION;
-
-typedef struct _SYSTEM_FIRMWARE_TABLE_INFORMATION {
-  ULONG ProviderSignature;
-  SYSTEM_FIRMWARE_TABLE_ACTION Action;
-  ULONG TableID;
-  ULONG TableBufferLength;
-  UCHAR TableBuffer[ANYSIZE_ARRAY];
-} SYSTEM_FIRMWARE_TABLE_INFORMATION, *PSYSTEM_FIRMWARE_TABLE_INFORMATION;
-
-typedef NTSTATUS
-(__cdecl *PFNFTH)(
-  IN OUT PSYSTEM_FIRMWARE_TABLE_INFORMATION SystemFirmwareTableInfo);
-
-typedef struct _SYSTEM_FIRMWARE_TABLE_HANDLER {
-  ULONG ProviderSignature;
-  BOOLEAN Register;
-  PFNFTH FirmwareTableHandler;
-  PVOID DriverObject;
-} SYSTEM_FIRMWARE_TABLE_HANDLER, *PSYSTEM_FIRMWARE_TABLE_HANDLER;
-
-typedef ULONG_PTR
-(NTAPI *PDRIVER_VERIFIER_THUNK_ROUTINE)(
-  IN PVOID Context);
-
-typedef struct _DRIVER_VERIFIER_THUNK_PAIRS {
-  PDRIVER_VERIFIER_THUNK_ROUTINE PristineRoutine;
-  PDRIVER_VERIFIER_THUNK_ROUTINE NewRoutine;
-} DRIVER_VERIFIER_THUNK_PAIRS, *PDRIVER_VERIFIER_THUNK_PAIRS;
-
-#define DRIVER_VERIFIER_SPECIAL_POOLING             0x0001
-#define DRIVER_VERIFIER_FORCE_IRQL_CHECKING         0x0002
-#define DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES  0x0004
-#define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS      0x0008
-#define DRIVER_VERIFIER_IO_CHECKING                 0x0010
-
-#define SHARED_GLOBAL_FLAGS_ERROR_PORT_V        0x0
-#define SHARED_GLOBAL_FLAGS_ERROR_PORT          (1UL << SHARED_GLOBAL_FLAGS_ERROR_PORT_V)
-
-#define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V 0x1
-#define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED   (1UL << SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V      0x2
-#define SHARED_GLOBAL_FLAGS_VIRT_ENABLED        (1UL << SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V  0x3
-#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED    \
-    (1UL << SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_SPARE_V                     0x4
-#define SHARED_GLOBAL_FLAGS_SPARE                       \
-    (1UL << SHARED_GLOBAL_FLAGS_SPARE_V)
-
-#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V      0x5
-#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED        \
-    (1UL << SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V)
-
-#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V    0x6
-#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED        \
-    (1UL << SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V)
-
-#define EX_INIT_BITS(Flags, Bit) \
-    *((Flags)) |= (Bit)             // Safe to use before concurrently accessible
-
-#define EX_TEST_SET_BIT(Flags, Bit) \
-    InterlockedBitTestAndSet ((PLONG)(Flags), (Bit))
-
-#define EX_TEST_CLEAR_BIT(Flags, Bit) \
-    InterlockedBitTestAndReset ((PLONG)(Flags), (Bit))
-
-#define PCCARD_MAP_ERROR               0x01
-#define PCCARD_DEVICE_PCI              0x10
-
-#define PCCARD_SCAN_DISABLED           0x01
-#define PCCARD_MAP_ZERO                0x02
-#define PCCARD_NO_TIMER                0x03
-#define PCCARD_NO_PIC                  0x04
-#define PCCARD_NO_LEGACY_BASE          0x05
-#define PCCARD_DUP_LEGACY_BASE         0x06
-#define PCCARD_NO_CONTROLLERS          0x07
-
-#define MAXIMUM_EXPANSION_SIZE (KERNEL_LARGE_STACK_SIZE - (PAGE_SIZE / 2))
-
-/* Filesystem runtime library routines */
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-FsRtlIsTotalDeviceFailure(
-  IN NTSTATUS Status);
-#endif
-
-/* FIXME : These definitions below doesn't belong to NTDDK */
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/reactos/include/xdk/nttmapi.h b/reactos/include/xdk/nttmapi.h
deleted file mode 100644 (file)
index 721005f..0000000
+++ /dev/null
@@ -1,652 +0,0 @@
-$if (_WDMDDK_)
-#ifndef _NTTMAPI_
-#define _NTTMAPI_
-
-#include <ktmtypes.h>
-
-#define TRANSACTIONMANAGER_QUERY_INFORMATION     (0x0001)
-#define TRANSACTIONMANAGER_SET_INFORMATION       (0x0002)
-#define TRANSACTIONMANAGER_RECOVER               (0x0004)
-#define TRANSACTIONMANAGER_RENAME                (0x0008)
-#define TRANSACTIONMANAGER_CREATE_RM             (0x0010)
-#define TRANSACTIONMANAGER_BIND_TRANSACTION      (0x0020)
-
-#define TRANSACTIONMANAGER_GENERIC_READ            (STANDARD_RIGHTS_READ            |\
-                                                    TRANSACTIONMANAGER_QUERY_INFORMATION)
-
-#define TRANSACTIONMANAGER_GENERIC_WRITE           (STANDARD_RIGHTS_WRITE           |\
-                                                    TRANSACTIONMANAGER_SET_INFORMATION     |\
-                                                    TRANSACTIONMANAGER_RECOVER             |\
-                                                    TRANSACTIONMANAGER_RENAME              |\
-                                                    TRANSACTIONMANAGER_CREATE_RM)
-
-#define TRANSACTIONMANAGER_GENERIC_EXECUTE         (STANDARD_RIGHTS_EXECUTE)
-
-#define TRANSACTIONMANAGER_ALL_ACCESS              (STANDARD_RIGHTS_REQUIRED        |\
-                                                    TRANSACTIONMANAGER_GENERIC_READ        |\
-                                                    TRANSACTIONMANAGER_GENERIC_WRITE       |\
-                                                    TRANSACTIONMANAGER_GENERIC_EXECUTE     |\
-                                                    TRANSACTIONMANAGER_BIND_TRANSACTION)
-
-#define TRANSACTION_QUERY_INFORMATION     (0x0001)
-#define TRANSACTION_SET_INFORMATION       (0x0002)
-#define TRANSACTION_ENLIST                (0x0004)
-#define TRANSACTION_COMMIT                (0x0008)
-#define TRANSACTION_ROLLBACK              (0x0010)
-#define TRANSACTION_PROPAGATE             (0x0020)
-#define TRANSACTION_RIGHT_RESERVED1       (0x0040)
-
-#define TRANSACTION_GENERIC_READ            (STANDARD_RIGHTS_READ            |\
-                                             TRANSACTION_QUERY_INFORMATION   |\
-                                             SYNCHRONIZE)
-
-#define TRANSACTION_GENERIC_WRITE           (STANDARD_RIGHTS_WRITE           |\
-                                             TRANSACTION_SET_INFORMATION     |\
-                                             TRANSACTION_COMMIT              |\
-                                             TRANSACTION_ENLIST              |\
-                                             TRANSACTION_ROLLBACK            |\
-                                             TRANSACTION_PROPAGATE           |\
-                                             SYNCHRONIZE)
-
-#define TRANSACTION_GENERIC_EXECUTE         (STANDARD_RIGHTS_EXECUTE         |\
-                                             TRANSACTION_COMMIT              |\
-                                             TRANSACTION_ROLLBACK            |\
-                                             SYNCHRONIZE)
-
-#define TRANSACTION_ALL_ACCESS              (STANDARD_RIGHTS_REQUIRED        |\
-                                             TRANSACTION_GENERIC_READ        |\
-                                             TRANSACTION_GENERIC_WRITE       |\
-                                             TRANSACTION_GENERIC_EXECUTE)
-
-#define TRANSACTION_RESOURCE_MANAGER_RIGHTS (TRANSACTION_GENERIC_READ        |\
-                                             STANDARD_RIGHTS_WRITE           |\
-                                             TRANSACTION_SET_INFORMATION     |\
-                                             TRANSACTION_ENLIST              |\
-                                             TRANSACTION_ROLLBACK            |\
-                                             TRANSACTION_PROPAGATE           |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_QUERY_INFORMATION        (0x0001)
-#define RESOURCEMANAGER_SET_INFORMATION          (0x0002)
-#define RESOURCEMANAGER_RECOVER                  (0x0004)
-#define RESOURCEMANAGER_ENLIST                   (0x0008)
-#define RESOURCEMANAGER_GET_NOTIFICATION         (0x0010)
-#define RESOURCEMANAGER_REGISTER_PROTOCOL        (0x0020)
-#define RESOURCEMANAGER_COMPLETE_PROPAGATION     (0x0040)
-
-#define RESOURCEMANAGER_GENERIC_READ        (STANDARD_RIGHTS_READ                 |\
-                                             RESOURCEMANAGER_QUERY_INFORMATION    |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_GENERIC_WRITE       (STANDARD_RIGHTS_WRITE                |\
-                                             RESOURCEMANAGER_SET_INFORMATION      |\
-                                             RESOURCEMANAGER_RECOVER              |\
-                                             RESOURCEMANAGER_ENLIST               |\
-                                             RESOURCEMANAGER_GET_NOTIFICATION     |\
-                                             RESOURCEMANAGER_REGISTER_PROTOCOL    |\
-                                             RESOURCEMANAGER_COMPLETE_PROPAGATION |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_GENERIC_EXECUTE     (STANDARD_RIGHTS_EXECUTE              |\
-                                             RESOURCEMANAGER_RECOVER              |\
-                                             RESOURCEMANAGER_ENLIST               |\
-                                             RESOURCEMANAGER_GET_NOTIFICATION     |\
-                                             RESOURCEMANAGER_COMPLETE_PROPAGATION |\
-                                             SYNCHRONIZE)
-
-#define RESOURCEMANAGER_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED             |\
-                                             RESOURCEMANAGER_GENERIC_READ         |\
-                                             RESOURCEMANAGER_GENERIC_WRITE        |\
-                                             RESOURCEMANAGER_GENERIC_EXECUTE)
-
-#define ENLISTMENT_QUERY_INFORMATION             (0x0001)
-#define ENLISTMENT_SET_INFORMATION               (0x0002)
-#define ENLISTMENT_RECOVER                       (0x0004)
-#define ENLISTMENT_SUBORDINATE_RIGHTS            (0x0008)
-#define ENLISTMENT_SUPERIOR_RIGHTS               (0x0010)
-
-#define ENLISTMENT_GENERIC_READ        (STANDARD_RIGHTS_READ           |\
-                                        ENLISTMENT_QUERY_INFORMATION)
-
-#define ENLISTMENT_GENERIC_WRITE       (STANDARD_RIGHTS_WRITE          |\
-                                        ENLISTMENT_SET_INFORMATION     |\
-                                        ENLISTMENT_RECOVER             |\
-                                        ENLISTMENT_SUBORDINATE_RIGHTS  |\
-                                        ENLISTMENT_SUPERIOR_RIGHTS)
-
-#define ENLISTMENT_GENERIC_EXECUTE     (STANDARD_RIGHTS_EXECUTE        |\
-                                        ENLISTMENT_RECOVER             |\
-                                        ENLISTMENT_SUBORDINATE_RIGHTS  |\
-                                        ENLISTMENT_SUPERIOR_RIGHTS)
-
-#define ENLISTMENT_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED       |\
-                                        ENLISTMENT_GENERIC_READ        |\
-                                        ENLISTMENT_GENERIC_WRITE       |\
-                                        ENLISTMENT_GENERIC_EXECUTE)
-
-typedef enum _TRANSACTION_OUTCOME {
-  TransactionOutcomeUndetermined = 1,
-  TransactionOutcomeCommitted,
-  TransactionOutcomeAborted,
-} TRANSACTION_OUTCOME;
-
-
-typedef enum _TRANSACTION_STATE {
-  TransactionStateNormal = 1,
-  TransactionStateIndoubt,
-  TransactionStateCommittedNotify,
-} TRANSACTION_STATE;
-
-
-typedef struct _TRANSACTION_BASIC_INFORMATION {
-  GUID TransactionId;
-  ULONG State;
-  ULONG Outcome;
-} TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
-  GUID TmIdentity;
-  LARGE_INTEGER VirtualClock;
-} TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION {
-  GUID LogIdentity;
-} TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
-  ULONG LogPathLength;
-  WCHAR LogPath[1];
-} TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION;
-
-typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
-  ULONGLONG LastRecoveredLsn;
-} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION;
-
-typedef struct _TRANSACTION_PROPERTIES_INFORMATION {
-  ULONG IsolationLevel;
-  ULONG IsolationFlags;
-  LARGE_INTEGER Timeout;
-  ULONG Outcome;
-  ULONG DescriptionLength;
-  WCHAR Description[1];
-} TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION;
-
-typedef struct _TRANSACTION_BIND_INFORMATION {
-  HANDLE TmHandle;
-} TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION;
-
-typedef struct _TRANSACTION_ENLISTMENT_PAIR {
-  GUID EnlistmentId;
-  GUID ResourceManagerId;
-} TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR;
-
-typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION {
-  ULONG NumberOfEnlistments;
-  TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1];
-} TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION;
-
-typedef struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
-  TRANSACTION_ENLISTMENT_PAIR SuperiorEnlistmentPair;
-} TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION, *PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
-
-typedef struct _RESOURCEMANAGER_BASIC_INFORMATION {
-  GUID ResourceManagerId;
-  ULONG DescriptionLength;
-  WCHAR Description[1];
-} RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION;
-
-typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
-  HANDLE IoCompletionPortHandle;
-  ULONG_PTR CompletionKey;
-} RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION;
-
-typedef enum _KTMOBJECT_TYPE {
-  KTMOBJECT_TRANSACTION,
-  KTMOBJECT_TRANSACTION_MANAGER,
-  KTMOBJECT_RESOURCE_MANAGER,
-  KTMOBJECT_ENLISTMENT,
-  KTMOBJECT_INVALID
-} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE;
-
-typedef struct _KTMOBJECT_CURSOR {
-  GUID LastQuery;
-  ULONG ObjectIdCount;
-  GUID ObjectIds[1];
-} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
-
-typedef enum _TRANSACTION_INFORMATION_CLASS {
-  TransactionBasicInformation,
-  TransactionPropertiesInformation,
-  TransactionEnlistmentInformation,
-  TransactionSuperiorEnlistmentInformation
-} TRANSACTION_INFORMATION_CLASS;
-
-typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
-  TransactionManagerBasicInformation,
-  TransactionManagerLogInformation,
-  TransactionManagerLogPathInformation,
-  TransactionManagerRecoveryInformation = 4
-} TRANSACTIONMANAGER_INFORMATION_CLASS;
-
-typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
-  ResourceManagerBasicInformation,
-  ResourceManagerCompletionInformation,
-} RESOURCEMANAGER_INFORMATION_CLASS;
-
-typedef struct _ENLISTMENT_BASIC_INFORMATION {
-  GUID EnlistmentId;
-  GUID TransactionId;
-  GUID ResourceManagerId;
-} ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION;
-
-typedef struct _ENLISTMENT_CRM_INFORMATION {
-  GUID CrmTransactionManagerId;
-  GUID CrmResourceManagerId;
-  GUID CrmEnlistmentId;
-} ENLISTMENT_CRM_INFORMATION, *PENLISTMENT_CRM_INFORMATION;
-
-typedef enum _ENLISTMENT_INFORMATION_CLASS {
-  EnlistmentBasicInformation,
-  EnlistmentRecoveryInformation,
-  EnlistmentCrmInformation
-} ENLISTMENT_INFORMATION_CLASS;
-
-typedef struct _TRANSACTION_LIST_ENTRY {
-#if defined(__cplusplus)
-  ::UOW UOW;
-#else
-  UOW UOW;
-#endif
-} TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY;
-
-typedef struct _TRANSACTION_LIST_INFORMATION {
-  ULONG NumberOfTransactions;
-  TRANSACTION_LIST_ENTRY TransactionInformation[1];
-} TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION;
-
-typedef NTSTATUS
-(NTAPI *PFN_NT_CREATE_TRANSACTION)(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN LPGUID Uow OPTIONAL,
-  IN HANDLE TmHandle OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG IsolationLevel OPTIONAL,
-  IN ULONG IsolationFlags OPTIONAL,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
-
-typedef NTSTATUS
-(NTAPI *PFN_NT_OPEN_TRANSACTION)(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN LPGUID Uow OPTIONAL,
-  IN HANDLE TmHandle OPTIONAL);
-
-typedef NTSTATUS
-(NTAPI *PFN_NT_QUERY_INFORMATION_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  OUT PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
-
-typedef NTSTATUS
-(NTAPI *PFN_NT_SET_INFORMATION_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  IN PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength);
-
-typedef NTSTATUS
-(NTAPI *PFN_NT_COMMIT_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
-
-typedef NTSTATUS
-(NTAPI *PFN_NT_ROLLBACK_TRANSACTION)(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtCreateTransactionManager(
-  OUT PHANDLE TmHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PUNICODE_STRING LogFileName OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG CommitStrength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtOpenTransactionManager(
-  OUT PHANDLE TmHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PUNICODE_STRING LogFileName OPTIONAL,
-  IN LPGUID TmIdentity OPTIONAL,
-  IN ULONG OpenOptions OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRenameTransactionManager(
-  IN PUNICODE_STRING LogFileName,
-  IN LPGUID ExistingTransactionManagerGuid);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRollforwardTransactionManager(
-  IN HANDLE TransactionManagerHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRecoverTransactionManager(
-  IN HANDLE TransactionManagerHandle);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtQueryInformationTransactionManager(
-  IN HANDLE TransactionManagerHandle,
-  IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
-  OUT PVOID TransactionManagerInformation,
-  IN ULONG TransactionManagerInformationLength,
-  OUT PULONG ReturnLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtSetInformationTransactionManager(
-  IN HANDLE TmHandle OPTIONAL,
-  IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
-  IN PVOID TransactionManagerInformation,
-  IN ULONG TransactionManagerInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtEnumerateTransactionObject(
-  IN HANDLE RootObjectHandle OPTIONAL,
-  IN KTMOBJECT_TYPE QueryType,
-  IN OUT PKTMOBJECT_CURSOR ObjectCursor,
-  IN ULONG ObjectCursorLength,
-  OUT PULONG ReturnLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtCreateTransaction(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN LPGUID Uow OPTIONAL,
-  IN HANDLE TmHandle OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG IsolationLevel OPTIONAL,
-  IN ULONG IsolationFlags OPTIONAL,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtOpenTransaction(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN LPGUID Uow,
-  IN HANDLE TmHandle OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtQueryInformationTransaction(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  OUT PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtSetInformationTransaction(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  IN PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtCommitTransaction(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRollbackTransaction(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtCreateEnlistment(
-  OUT PHANDLE EnlistmentHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE ResourceManagerHandle,
-  IN HANDLE TransactionHandle,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN NOTIFICATION_MASK NotificationMask,
-  IN PVOID EnlistmentKey OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtOpenEnlistment(
-  OUT PHANDLE EnlistmentHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE ResourceManagerHandle,
-  IN LPGUID EnlistmentGuid,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtQueryInformationEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
-  OUT PVOID EnlistmentInformation,
-  IN ULONG EnlistmentInformationLength,
-  OUT PULONG ReturnLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtSetInformationEnlistment(
-  IN HANDLE EnlistmentHandle OPTIONAL,
-  IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
-  IN PVOID EnlistmentInformation,
-  IN ULONG EnlistmentInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRecoverEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PVOID EnlistmentKey OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtPrePrepareEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtPrepareEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtCommitEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRollbackEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtPrePrepareComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtPrepareComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtCommitComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtReadOnlyEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRollbackComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtSinglePhaseReject(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtCreateResourceManager(
-  OUT PHANDLE ResourceManagerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE TmHandle,
-  IN LPGUID RmGuid,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtOpenResourceManager(
-  OUT PHANDLE ResourceManagerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE TmHandle,
-  IN LPGUID ResourceManagerGuid OPTIONAL,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRecoverResourceManager(
-  IN HANDLE ResourceManagerHandle);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtGetNotificationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  OUT PTRANSACTION_NOTIFICATION TransactionNotification,
-  IN ULONG NotificationLength,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  OUT PULONG ReturnLength OPTIONAL,
-  IN ULONG Asynchronous,
-  IN ULONG_PTR AsynchronousContext OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtQueryInformationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
-  OUT PVOID ResourceManagerInformation,
-  IN ULONG ResourceManagerInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtSetInformationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
-  IN PVOID ResourceManagerInformation,
-  IN ULONG ResourceManagerInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtRegisterProtocolAddressInformation(
-  IN HANDLE ResourceManager,
-  IN PCRM_PROTOCOL_ID ProtocolId,
-  IN ULONG ProtocolInformationSize,
-  IN PVOID ProtocolInformation,
-  IN ULONG CreateOptions OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtPropagationComplete(
-  IN HANDLE ResourceManagerHandle,
-  IN ULONG RequestCookie,
-  IN ULONG BufferLength,
-  IN PVOID Buffer);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtPropagationFailed(
-  IN HANDLE ResourceManagerHandle,
-  IN ULONG RequestCookie,
-  IN NTSTATUS PropStatus);
-
-#endif /* NTDDI_VERSION >= NTDDI_VISTA */
-
-#endif /* !_NTTMAPI_ */
-$endif
diff --git a/reactos/include/xdk/obfuncs.h b/reactos/include/xdk/obfuncs.h
deleted file mode 100644 (file)
index 40912fa..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/******************************************************************************
- *                          Object Manager Functions                          *
- ******************************************************************************/
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfDereferenceObject(
-  IN PVOID Object);
-#define ObDereferenceObject ObfDereferenceObject
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObGetObjectSecurity(
-  IN PVOID Object,
-  OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
-  OUT PBOOLEAN MemoryAllocated);
-
-NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfReferenceObject(
-  IN PVOID Object);
-#define ObReferenceObject ObfReferenceObject
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObReferenceObjectByHandle(
-  IN HANDLE Handle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode,
-  OUT PVOID *Object,
-  OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObReferenceObjectByPointer(
-  IN PVOID Object,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode);
-
-NTKERNELAPI
-VOID
-NTAPI
-ObReleaseObjectSecurity(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN BOOLEAN MemoryAllocated);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-NTKERNELAPI
-VOID
-NTAPI
-ObDereferenceObjectDeferDelete(
-  IN PVOID Object);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObRegisterCallbacks(
-  IN POB_CALLBACK_REGISTRATION CallbackRegistration,
-  OUT PVOID *RegistrationHandle);
-
-NTKERNELAPI
-VOID
-NTAPI
-ObUnRegisterCallbacks(
-  IN PVOID RegistrationHandle);
-
-NTKERNELAPI
-USHORT
-NTAPI
-ObGetFilterVersion(VOID);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObReferenceObjectByHandleWithTag(
-  IN HANDLE Handle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode,
-  IN ULONG Tag,
-  OUT PVOID *Object,
-  OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
-
-NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfReferenceObjectWithTag(
-  IN PVOID Object,
-  IN ULONG Tag);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-ObReferenceObjectByPointerWithTag(
-  IN PVOID Object,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_TYPE ObjectType OPTIONAL,
-  IN KPROCESSOR_MODE AccessMode,
-  IN ULONG Tag);
-
-NTKERNELAPI
-LONG_PTR
-FASTCALL
-ObfDereferenceObjectWithTag(
-  IN PVOID Object,
-  IN ULONG Tag);
-
-NTKERNELAPI
-VOID
-NTAPI
-ObDereferenceObjectDeferDeleteWithTag(
-  IN PVOID Object,
-  IN ULONG Tag);
-
-#define ObDereferenceObject ObfDereferenceObject
-#define ObReferenceObject ObfReferenceObject
-#define ObDereferenceObjectWithTag ObfDereferenceObjectWithTag
-#define ObReferenceObjectWithTag ObfReferenceObjectWithTag
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-$endif
-
diff --git a/reactos/include/xdk/obtypes.h b/reactos/include/xdk/obtypes.h
deleted file mode 100644 (file)
index 84310a9..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/******************************************************************************
- *                            Object Manager Types                            *
- ******************************************************************************/
-
-#define MAXIMUM_FILENAME_LENGTH           256
-#define OBJ_NAME_PATH_SEPARATOR     ((WCHAR)L'\\')
-
-#define OBJECT_TYPE_CREATE 0x0001
-#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
-
-#define DIRECTORY_QUERY 0x0001
-#define DIRECTORY_TRAVERSE 0x0002
-#define DIRECTORY_CREATE_OBJECT 0x0004
-#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
-#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
-
-#define SYMBOLIC_LINK_QUERY               0x0001
-#define SYMBOLIC_LINK_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED | 0x1)
-
-#define DUPLICATE_CLOSE_SOURCE            0x00000001
-#define DUPLICATE_SAME_ACCESS             0x00000002
-#define DUPLICATE_SAME_ATTRIBUTES         0x00000004
-
-#define OB_FLT_REGISTRATION_VERSION_0100         0x0100
-#define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100
-
-typedef ULONG OB_OPERATION;
-
-#define OB_OPERATION_HANDLE_CREATE               0x00000001
-#define OB_OPERATION_HANDLE_DUPLICATE            0x00000002
-
-typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION {
-  IN OUT ACCESS_MASK DesiredAccess;
-  IN ACCESS_MASK OriginalDesiredAccess;
-} OB_PRE_CREATE_HANDLE_INFORMATION, *POB_PRE_CREATE_HANDLE_INFORMATION;
-
-typedef struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION {
-  IN OUT ACCESS_MASK DesiredAccess;
-  IN ACCESS_MASK OriginalDesiredAccess;
-  IN PVOID SourceProcess;
-  IN PVOID TargetProcess;
-} OB_PRE_DUPLICATE_HANDLE_INFORMATION, *POB_PRE_DUPLICATE_HANDLE_INFORMATION;
-
-typedef union _OB_PRE_OPERATION_PARAMETERS {
-  IN OUT OB_PRE_CREATE_HANDLE_INFORMATION CreateHandleInformation;
-  IN OUT OB_PRE_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation;
-} OB_PRE_OPERATION_PARAMETERS, *POB_PRE_OPERATION_PARAMETERS;
-
-typedef struct _OB_PRE_OPERATION_INFORMATION {
-  IN OB_OPERATION Operation;
-  union {
-    IN ULONG Flags;
-    struct {
-      IN ULONG KernelHandle:1;
-      IN ULONG Reserved:31;
-    };
-  };
-  IN PVOID Object;
-  IN POBJECT_TYPE ObjectType;
-  OUT PVOID CallContext;
-  IN POB_PRE_OPERATION_PARAMETERS Parameters;
-} OB_PRE_OPERATION_INFORMATION, *POB_PRE_OPERATION_INFORMATION;
-
-typedef struct _OB_POST_CREATE_HANDLE_INFORMATION {
-  IN ACCESS_MASK GrantedAccess;
-} OB_POST_CREATE_HANDLE_INFORMATION, *POB_POST_CREATE_HANDLE_INFORMATION;
-
-typedef struct _OB_POST_DUPLICATE_HANDLE_INFORMATION {
-  IN ACCESS_MASK GrantedAccess;
-} OB_POST_DUPLICATE_HANDLE_INFORMATION, *POB_POST_DUPLICATE_HANDLE_INFORMATION;
-
-typedef union _OB_POST_OPERATION_PARAMETERS {
-  IN OB_POST_CREATE_HANDLE_INFORMATION CreateHandleInformation;
-  IN OB_POST_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation;
-} OB_POST_OPERATION_PARAMETERS, *POB_POST_OPERATION_PARAMETERS;
-
-typedef struct _OB_POST_OPERATION_INFORMATION {
-  IN OB_OPERATION Operation;
-    union {
-      IN ULONG Flags;
-      struct {
-        IN ULONG KernelHandle:1;
-        IN ULONG Reserved:31;
-      };
-    };
-  IN PVOID Object;
-  IN POBJECT_TYPE ObjectType;
-  IN PVOID CallContext;
-  IN NTSTATUS ReturnStatus;
-  IN POB_POST_OPERATION_PARAMETERS Parameters;
-} OB_POST_OPERATION_INFORMATION,*POB_POST_OPERATION_INFORMATION;
-
-typedef enum _OB_PREOP_CALLBACK_STATUS {
-  OB_PREOP_SUCCESS
-} OB_PREOP_CALLBACK_STATUS, *POB_PREOP_CALLBACK_STATUS;
-
-typedef OB_PREOP_CALLBACK_STATUS
-(NTAPI *POB_PRE_OPERATION_CALLBACK)(
-  IN PVOID RegistrationContext,
-  IN OUT POB_PRE_OPERATION_INFORMATION OperationInformation);
-
-typedef VOID
-(NTAPI *POB_POST_OPERATION_CALLBACK)(
-  IN PVOID RegistrationContext,
-  IN POB_POST_OPERATION_INFORMATION OperationInformation);
-
-typedef struct _OB_OPERATION_REGISTRATION {
-  IN POBJECT_TYPE *ObjectType;
-  IN OB_OPERATION Operations;
-  IN POB_PRE_OPERATION_CALLBACK PreOperation;
-  IN POB_POST_OPERATION_CALLBACK PostOperation;
-} OB_OPERATION_REGISTRATION, *POB_OPERATION_REGISTRATION;
-
-typedef struct _OB_CALLBACK_REGISTRATION {
-  IN USHORT Version;
-  IN USHORT OperationRegistrationCount;
-  IN UNICODE_STRING Altitude;
-  IN PVOID RegistrationContext;
-  IN OB_OPERATION_REGISTRATION *OperationRegistration;
-} OB_CALLBACK_REGISTRATION, *POB_CALLBACK_REGISTRATION;
-
-typedef struct _OBJECT_NAME_INFORMATION {
-  UNICODE_STRING Name;
-} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
-
-/* Exported object types */
-extern POBJECT_TYPE NTSYSAPI CmKeyObjectType;
-extern POBJECT_TYPE NTSYSAPI ExEventObjectType;
-extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType;
-extern POBJECT_TYPE NTSYSAPI IoFileObjectType;
-extern POBJECT_TYPE NTSYSAPI PsThreadType;
-extern POBJECT_TYPE NTSYSAPI SeTokenObjectType;
-extern POBJECT_TYPE NTSYSAPI PsProcessType;
-
-
diff --git a/reactos/include/xdk/pofuncs.h b/reactos/include/xdk/pofuncs.h
deleted file mode 100644 (file)
index 9fd1ec6..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/******************************************************************************
- *                     Power Management Support Functions                     *
- ******************************************************************************/
-
-#define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoCallDriver(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN OUT struct _IRP *Irp);
-
-NTKERNELAPI
-PULONG
-NTAPI
-PoRegisterDeviceForIdleDetection(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN ULONG ConservationIdleTime,
-  IN ULONG PerformanceIdleTime,
-  IN DEVICE_POWER_STATE State);
-
-NTKERNELAPI
-PVOID
-NTAPI
-PoRegisterSystemState(
-  IN OUT PVOID StateHandle OPTIONAL,
-  IN EXECUTION_STATE Flags);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoRequestPowerIrp(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN UCHAR MinorFunction,
-  IN POWER_STATE PowerState,
-  IN PREQUEST_POWER_COMPLETE CompletionFunction OPTIONAL,
-  IN PVOID Context OPTIONAL,
-  OUT struct _IRP **Irp OPTIONAL);
-
-NTKERNELAPI
-POWER_STATE
-NTAPI
-PoSetPowerState(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN POWER_STATE_TYPE Type,
-  IN POWER_STATE State);
-
-NTKERNELAPI
-VOID
-NTAPI
-PoSetSystemState(
-  IN EXECUTION_STATE Flags);
-
-NTKERNELAPI
-VOID
-NTAPI
-PoStartNextPowerIrp(
-  IN OUT struct _IRP *Irp);
-
-NTKERNELAPI
-VOID
-NTAPI
-PoUnregisterSystemState(
-  IN OUT PVOID StateHandle);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoRequestShutdownEvent(
-  OUT PVOID *Event);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-VOID
-NTAPI
-PoSetSystemWake(
-  IN OUT struct _IRP *Irp);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-PoGetSystemWake(
-  IN struct _IRP *Irp);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoRegisterPowerSettingCallback(
-  IN PDEVICE_OBJECT DeviceObject OPTIONAL,
-  IN LPCGUID SettingGuid,
-  IN PPOWER_SETTING_CALLBACK Callback,
-  IN PVOID Context OPTIONAL,
-  OUT PVOID *Handle OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoUnregisterPowerSettingCallback(
-  IN OUT PVOID Handle);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-NTKERNELAPI
-VOID
-NTAPI
-PoSetDeviceBusyEx(
-  IN OUT PULONG IdlePointer);
-#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-NTKERNELAPI
-VOID
-NTAPI
-PoStartDeviceBusy(
-  IN OUT PULONG IdlePointer);
-
-NTKERNELAPI
-VOID
-NTAPI
-PoEndDeviceBusy(
-  IN OUT PULONG IdlePointer);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-PoQueryWatchdogTime(
-  IN PDEVICE_OBJECT Pdo,
-  OUT PULONG SecondsRemaining);
-
-NTKERNELAPI
-VOID
-NTAPI
-PoDeletePowerRequest(
-  IN OUT PVOID PowerRequest);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoSetPowerRequest(
-  IN OUT PVOID PowerRequest,
-  IN POWER_REQUEST_TYPE Type);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoClearPowerRequest(
-  IN OUT PVOID PowerRequest,
-  IN POWER_REQUEST_TYPE Type);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PoCreatePowerRequest(
-  OUT PVOID *PowerRequest,
-  IN PDEVICE_OBJECT DeviceObject,
-  IN PCOUNTED_REASON_CONTEXT Context);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
diff --git a/reactos/include/xdk/potypes.h b/reactos/include/xdk/potypes.h
deleted file mode 100644 (file)
index 3caf825..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-/******************************************************************************
- *                            Power Management Support Types                  *
- ******************************************************************************/
-
-#ifndef _PO_DDK_
-#define _PO_DDK_
-
-#define PO_CB_SYSTEM_POWER_POLICY                0
-#define PO_CB_AC_STATUS                          1
-#define PO_CB_BUTTON_COLLISION                   2
-#define PO_CB_SYSTEM_STATE_LOCK                  3
-#define PO_CB_LID_SWITCH_STATE                   4
-#define PO_CB_PROCESSOR_POWER_POLICY             5
-
-/* Power States/Levels */
-typedef enum _SYSTEM_POWER_STATE {
-  PowerSystemUnspecified = 0,
-  PowerSystemWorking,
-  PowerSystemSleeping1,
-  PowerSystemSleeping2,
-  PowerSystemSleeping3,
-  PowerSystemHibernate,
-  PowerSystemShutdown,
-  PowerSystemMaximum
-} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
-
-#define POWER_SYSTEM_MAXIMUM PowerSystemMaximum
-
-typedef enum _POWER_INFORMATION_LEVEL {
-  SystemPowerPolicyAc,
-  SystemPowerPolicyDc,
-  VerifySystemPolicyAc,
-  VerifySystemPolicyDc,
-  SystemPowerCapabilities,
-  SystemBatteryState,
-  SystemPowerStateHandler,
-  ProcessorStateHandler,
-  SystemPowerPolicyCurrent,
-  AdministratorPowerPolicy,
-  SystemReserveHiberFile,
-  ProcessorInformation,
-  SystemPowerInformation,
-  ProcessorStateHandler2,
-  LastWakeTime,
-  LastSleepTime,
-  SystemExecutionState,
-  SystemPowerStateNotifyHandler,
-  ProcessorPowerPolicyAc,
-  ProcessorPowerPolicyDc,
-  VerifyProcessorPowerPolicyAc,
-  VerifyProcessorPowerPolicyDc,
-  ProcessorPowerPolicyCurrent,
-  SystemPowerStateLogging,
-  SystemPowerLoggingEntry,
-  SetPowerSettingValue,
-  NotifyUserPowerSetting,
-  PowerInformationLevelUnused0,
-  PowerInformationLevelUnused1,
-  SystemVideoState,
-  TraceApplicationPowerMessage,
-  TraceApplicationPowerMessageEnd,
-  ProcessorPerfStates,
-  ProcessorIdleStates,
-  ProcessorCap,
-  SystemWakeSource,
-  SystemHiberFileInformation,
-  TraceServicePowerMessage,
-  ProcessorLoad,
-  PowerShutdownNotification,
-  MonitorCapabilities,
-  SessionPowerInit,
-  SessionDisplayState,
-  PowerRequestCreate,
-  PowerRequestAction,
-  GetPowerRequestList,
-  ProcessorInformationEx,
-  NotifyUserModeLegacyPowerEvent,
-  GroupPark,
-  ProcessorIdleDomains,
-  WakeTimerList,
-  SystemHiberFileSize,
-  PowerInformationLevelMaximum
-} POWER_INFORMATION_LEVEL;
-
-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 enum _MONITOR_DISPLAY_STATE {
-  PowerMonitorOff = 0,
-  PowerMonitorOn,
-  PowerMonitorDim
-} MONITOR_DISPLAY_STATE, *PMONITOR_DISPLAY_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;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-typedef struct _SYSTEM_POWER_STATE_CONTEXT {
-  union {
-    struct {
-      ULONG Reserved1:8;
-      ULONG TargetSystemState:4;
-      ULONG EffectiveSystemState:4;
-      ULONG CurrentSystemState:4;
-      ULONG IgnoreHibernationPath:1;
-      ULONG PseudoTransition:1;
-      ULONG Reserved2:10;
-    } DUMMYSTRUCTNAME;
-    ULONG ContextAsUlong;
-  } DUMMYUNIONNAME;
-} SYSTEM_POWER_STATE_CONTEXT, *PSYSTEM_POWER_STATE_CONTEXT;
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-typedef struct _COUNTED_REASON_CONTEXT {
-  ULONG Version;
-  ULONG Flags;
-  union {
-    struct {
-      UNICODE_STRING ResourceFileName;
-      USHORT ResourceReasonId;
-      ULONG StringCount;
-      PUNICODE_STRING ReasonStrings;
-    } DUMMYSTRUCTNAME;
-    UNICODE_STRING SimpleString;
-  } DUMMYUNIONNAME;
-} COUNTED_REASON_CONTEXT, *PCOUNTED_REASON_CONTEXT;
-#endif
-
-#define IOCTL_QUERY_DEVICE_POWER_STATE  \
-        CTL_CODE(FILE_DEVICE_BATTERY, 0x0, METHOD_BUFFERED, FILE_READ_ACCESS)
-
-#define IOCTL_SET_DEVICE_WAKE           \
-        CTL_CODE(FILE_DEVICE_BATTERY, 0x1, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
-#define IOCTL_CANCEL_DEVICE_WAKE        \
-        CTL_CODE(FILE_DEVICE_BATTERY, 0x2, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
-#define ES_SYSTEM_REQUIRED                       0x00000001
-#define ES_DISPLAY_REQUIRED                      0x00000002
-#define ES_USER_PRESENT                          0x00000004
-#define ES_CONTINUOUS                            0x80000000
-
-typedef ULONG EXECUTION_STATE, *PEXECUTION_STATE;
-
-typedef enum {
-  LT_DONT_CARE,
-  LT_LOWEST_LATENCY
-} LATENCY_TIME;
-
-#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
-#define DIAGNOSTIC_REASON_VERSION                0
-#define DIAGNOSTIC_REASON_SIMPLE_STRING          0x00000001
-#define DIAGNOSTIC_REASON_DETAILED_STRING        0x00000002
-#define DIAGNOSTIC_REASON_NOT_SPECIFIED          0x80000000
-#define DIAGNOSTIC_REASON_INVALID_FLAGS          (~0x80000003)
-#endif
-
-#define POWER_REQUEST_CONTEXT_VERSION            0
-#define POWER_REQUEST_CONTEXT_SIMPLE_STRING      0x00000001
-#define POWER_REQUEST_CONTEXT_DETAILED_STRING    0x00000002
-
-#define PowerRequestMaximum                      3
-
-typedef enum _POWER_REQUEST_TYPE {
-  PowerRequestDisplayRequired,
-  PowerRequestSystemRequired,
-  PowerRequestAwayModeRequired
-} POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE;
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-#define PDCAP_D0_SUPPORTED                       0x00000001
-#define PDCAP_D1_SUPPORTED                       0x00000002
-#define PDCAP_D2_SUPPORTED                       0x00000004
-#define PDCAP_D3_SUPPORTED                       0x00000008
-#define PDCAP_WAKE_FROM_D0_SUPPORTED             0x00000010
-#define PDCAP_WAKE_FROM_D1_SUPPORTED             0x00000020
-#define PDCAP_WAKE_FROM_D2_SUPPORTED             0x00000040
-#define PDCAP_WAKE_FROM_D3_SUPPORTED             0x00000080
-#define PDCAP_WARM_EJECT_SUPPORTED               0x00000100
-
-typedef struct CM_Power_Data_s {
-  ULONG PD_Size;
-  DEVICE_POWER_STATE PD_MostRecentPowerState;
-  ULONG PD_Capabilities;
-  ULONG PD_D1Latency;
-  ULONG PD_D2Latency;
-  ULONG PD_D3Latency;
-  DEVICE_POWER_STATE PD_PowerStateMapping[PowerSystemMaximum];
-  SYSTEM_POWER_STATE PD_DeepestSystemWake;
-} CM_POWER_DATA, *PCM_POWER_DATA;
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-typedef enum _SYSTEM_POWER_CONDITION {
-  PoAc,
-  PoDc,
-  PoHot,
-  PoConditionMaximum
-} SYSTEM_POWER_CONDITION;
-
-typedef struct _SET_POWER_SETTING_VALUE {
-  ULONG Version;
-  GUID Guid;
-  SYSTEM_POWER_CONDITION PowerCondition;
-  ULONG DataLength;
-  UCHAR Data[ANYSIZE_ARRAY];
-} SET_POWER_SETTING_VALUE, *PSET_POWER_SETTING_VALUE;
-
-#define POWER_SETTING_VALUE_VERSION              (0x1)
-
-typedef struct _NOTIFY_USER_POWER_SETTING {
-  GUID Guid;
-} NOTIFY_USER_POWER_SETTING, *PNOTIFY_USER_POWER_SETTING;
-
-typedef struct _APPLICATIONLAUNCH_SETTING_VALUE {
-  LARGE_INTEGER ActivationTime;
-  ULONG Flags;
-  ULONG ButtonInstanceID;
-} APPLICATIONLAUNCH_SETTING_VALUE, *PAPPLICATIONLAUNCH_SETTING_VALUE;
-
-typedef enum _POWER_PLATFORM_ROLE {
-  PlatformRoleUnspecified = 0,
-  PlatformRoleDesktop,
-  PlatformRoleMobile,
-  PlatformRoleWorkstation,
-  PlatformRoleEnterpriseServer,
-  PlatformRoleSOHOServer,
-  PlatformRoleAppliancePC,
-  PlatformRolePerformanceServer,
-  PlatformRoleMaximum
-} POWER_PLATFORM_ROLE;
-
-#if (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_)
-typedef struct {
-  ULONG Granularity;
-  ULONG Capacity;
-} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_) */
-
-#endif /* !_PO_DDK_ */
-
-#define CORE_PARKING_POLICY_CHANGE_IDEAL         0
-#define CORE_PARKING_POLICY_CHANGE_SINGLE        1
-#define CORE_PARKING_POLICY_CHANGE_ROCKET        2
-#define CORE_PARKING_POLICY_CHANGE_MAX           CORE_PARKING_POLICY_CHANGE_ROCKET
-
-DEFINE_GUID(GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A );
-DEFINE_GUID(GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C );
-DEFINE_GUID(GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E );
-DEFINE_GUID(NO_SUBGROUP_GUID, 0xFEA3413E, 0x7E05, 0x4911, 0x9A, 0x71, 0x70, 0x03, 0x31, 0xF1, 0xC2, 0x94 );
-DEFINE_GUID(ALL_POWERSCHEMES_GUID, 0x68A1E95E, 0x13EA, 0x41E1, 0x80, 0x11, 0x0C, 0x49, 0x6C, 0xA4, 0x90, 0xB0 );
-DEFINE_GUID(GUID_POWERSCHEME_PERSONALITY, 0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7 );
-DEFINE_GUID(GUID_ACTIVE_POWERSCHEME, 0x31F9F286, 0x5084, 0x42FE, 0xB7, 0x20, 0x2B, 0x02, 0x64, 0x99, 0x37, 0x63 );
-DEFINE_GUID(GUID_VIDEO_SUBGROUP, 0x7516B95F, 0xF776, 0x4464, 0x8C, 0x53, 0x06, 0x16, 0x7F, 0x40, 0xCC, 0x99 );
-DEFINE_GUID(GUID_VIDEO_POWERDOWN_TIMEOUT, 0x3C0BC021, 0xC8A8, 0x4E07, 0xA9, 0x73, 0x6B, 0x14, 0xCB, 0xCB, 0x2B, 0x7E );
-DEFINE_GUID(GUID_VIDEO_ANNOYANCE_TIMEOUT, 0x82DBCF2D, 0xCD67, 0x40C5, 0xBF, 0xDC, 0x9F, 0x1A, 0x5C, 0xCD, 0x46, 0x63 );
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE, 0xEED904DF, 0xB142, 0x4183, 0xB1, 0x0B, 0x5A, 0x11, 0x97, 0xA3, 0x78, 0x64 );
-DEFINE_GUID(GUID_VIDEO_DIM_TIMEOUT, 0x17aaa29b, 0x8b43, 0x4b94, 0xaa, 0xfe, 0x35, 0xf6, 0x4d, 0xaa, 0xf1, 0xee);
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_POWERDOWN, 0x90959D22, 0xD6A1, 0x49B9, 0xAF, 0x93, 0xBC, 0xE8, 0x85, 0xAD, 0x33, 0x5B );
-DEFINE_GUID(GUID_MONITOR_POWER_ON, 0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA );
-DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS, 0xaded5e82L, 0xb909, 0x4619, 0x99, 0x49, 0xf5, 0xd7, 0x1d, 0xac, 0x0b, 0xcb);
-DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS, 0xf1fbfde2, 0xa960, 0x4165, 0x9f, 0x88, 0x50, 0x66, 0x79, 0x11, 0xce, 0x96);
-DEFINE_GUID(GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS, 0x8ffee2c6, 0x2d01, 0x46be, 0xad, 0xb9, 0x39, 0x8a, 0xdd, 0xc5, 0xb4, 0xff);
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS, 0xFBD9AA66, 0x9553, 0x4097, 0xBA, 0x44, 0xED, 0x6E, 0x9D, 0x65, 0xEA, 0xB8);
-DEFINE_GUID(GUID_SESSION_DISPLAY_STATE, 0x73A5E93A, 0x5BB1, 0x4F93, 0x89, 0x5B, 0xDB, 0xD0, 0xDA, 0x85, 0x59, 0x67 );
-DEFINE_GUID(GUID_CONSOLE_DISPLAY_STATE, 0x6fe69556, 0x704a, 0x47a0, 0x8f, 0x24, 0xc2, 0x8d, 0x93, 0x6f, 0xda, 0x47);
-DEFINE_GUID(GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23 );
-DEFINE_GUID(GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 0x5F, 0xBA, 0x8B, 0x14, 0x42 );
-DEFINE_GUID(GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E );
-DEFINE_GUID(GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63 );
-DEFINE_GUID(GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67 );
-DEFINE_GUID(GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 0xBE, 0x24, 0x2C, 0x8F, 0x20 );
-DEFINE_GUID(GUID_SLEEP_IDLE_THRESHOLD, 0x81cd32e0, 0x7833, 0x44f3, 0x87, 0x37, 0x70, 0x81, 0xf3, 0x8d, 0x1f, 0x70 );
-DEFINE_GUID(GUID_STANDBY_TIMEOUT, 0x29F6C1DB, 0x86DA, 0x48C5, 0x9F, 0xDB, 0xF2, 0xB6, 0x7B, 0x1F, 0x44, 0xDA );
-DEFINE_GUID(GUID_UNATTEND_SLEEP_TIMEOUT, 0x7bc4a2f9, 0xd8fc, 0x4469, 0xb0, 0x7b, 0x33, 0xeb, 0x78, 0x5a, 0xac, 0xa0 );
-DEFINE_GUID(GUID_HIBERNATE_TIMEOUT, 0x9D7815A6, 0x7EE4, 0x497E, 0x88, 0x88, 0x51, 0x5A, 0x05, 0xF0, 0x23, 0x64 );
-DEFINE_GUID(GUID_HIBERNATE_FASTS4_POLICY, 0x94AC6D29, 0x73CE, 0x41A6, 0x80, 0x9F, 0x63, 0x63, 0xBA, 0x21, 0xB4, 0x7E );
-DEFINE_GUID(GUID_CRITICAL_POWER_TRANSITION,  0xB7A27025, 0xE569, 0x46c2, 0xA5, 0x04, 0x2B, 0x96, 0xCA, 0xD2, 0x25, 0xA1);
-DEFINE_GUID(GUID_SYSTEM_AWAYMODE, 0x98A7F580, 0x01F7, 0x48AA, 0x9C, 0x0F, 0x44, 0x35, 0x2C, 0x29, 0xE5, 0xC0 );
-DEFINE_GUID(GUID_ALLOW_AWAYMODE, 0x25dfa149, 0x5dd1, 0x4736, 0xb5, 0xab, 0xe8, 0xa3, 0x7b, 0x5b, 0x81, 0x87 );
-DEFINE_GUID(GUID_ALLOW_STANDBY_STATES, 0xabfc2519, 0x3608, 0x4c2a, 0x94, 0xea, 0x17, 0x1b, 0x0e, 0xd5, 0x46, 0xab );
-DEFINE_GUID(GUID_ALLOW_RTC_WAKE, 0xBD3B718A, 0x0680, 0x4D9D, 0x8A, 0xB2, 0xE1, 0xD2, 0xB4, 0xAC, 0x80, 0x6D );
-DEFINE_GUID(GUID_ALLOW_SYSTEM_REQUIRED, 0xA4B195F5, 0x8225, 0x47D8, 0x80, 0x12, 0x9D, 0x41, 0x36, 0x97, 0x86, 0xE2 );
-DEFINE_GUID(GUID_SYSTEM_BUTTON_SUBGROUP, 0x4F971E89, 0xEEBD, 0x4455, 0xA8, 0xDE, 0x9E, 0x59, 0x04, 0x0E, 0x73, 0x47 );
-DEFINE_GUID(GUID_POWERBUTTON_ACTION, 0x7648EFA3, 0xDD9C, 0x4E3E, 0xB5, 0x66, 0x50, 0xF9, 0x29, 0x38, 0x62, 0x80 );
-DEFINE_GUID(GUID_POWERBUTTON_ACTION_FLAGS, 0x857E7FAC, 0x034B, 0x4704, 0xAB, 0xB1, 0xBC, 0xA5, 0x4A, 0xA3, 0x14, 0x78 );
-DEFINE_GUID(GUID_SLEEPBUTTON_ACTION, 0x96996BC0, 0xAD50, 0x47EC, 0x92, 0x3B, 0x6F, 0x41, 0x87, 0x4D, 0xD9, 0xEB );
-DEFINE_GUID(GUID_SLEEPBUTTON_ACTION_FLAGS, 0x2A160AB1, 0xB69D, 0x4743, 0xB7, 0x18, 0xBF, 0x14, 0x41, 0xD5, 0xE4, 0x93 );
-DEFINE_GUID(GUID_USERINTERFACEBUTTON_ACTION, 0xA7066653, 0x8D6C, 0x40A8, 0x91, 0x0E, 0xA1, 0xF5, 0x4B, 0x84, 0xC7, 0xE5 );
-DEFINE_GUID(GUID_LIDCLOSE_ACTION, 0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36 );
-DEFINE_GUID(GUID_LIDCLOSE_ACTION_FLAGS, 0x97E969AC, 0x0D6C, 0x4D08, 0x92, 0x7C, 0xD7, 0xBD, 0x7A, 0xD7, 0x85, 0x7B );
-DEFINE_GUID(GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4 );
-DEFINE_GUID(GUID_BATTERY_SUBGROUP, 0xE73A048D, 0xBF27, 0x4F12, 0x97, 0x31, 0x8B, 0x20, 0x76, 0xE8, 0x89, 0x1F );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_0, 0x637EA02F, 0xBBCB, 0x4015, 0x8E, 0x2C, 0xA1, 0xC7, 0xB9, 0xC0, 0xB5, 0x46 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_0, 0x9A66D8D7, 0x4FF7, 0x4EF9, 0xB5, 0xA2, 0x5A, 0x32, 0x6C, 0xA2, 0xA4, 0x69 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_0, 0x5dbb7c9f, 0x38e9, 0x40d2, 0x97, 0x49, 0x4f, 0x8a, 0x0e, 0x9f, 0x64, 0x0f );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_1, 0xD8742DCB, 0x3E6A, 0x4B3C, 0xB3, 0xFE, 0x37, 0x46, 0x23, 0xCD, 0xCF, 0x06 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_1, 0x8183BA9A, 0xE910, 0x48DA, 0x87, 0x69, 0x14, 0xAE, 0x6D, 0xC1, 0x17, 0x0A );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_1, 0xbcded951, 0x187b, 0x4d05, 0xbc, 0xcc, 0xf7, 0xe5, 0x19, 0x60, 0xc2, 0x58 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_2, 0x421CBA38, 0x1A8E, 0x4881, 0xAC, 0x89, 0xE3, 0x3A, 0x8B, 0x04, 0xEC, 0xE4 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_2, 0x07A07CA2, 0xADAF, 0x40D7, 0xB0, 0x77, 0x53, 0x3A, 0xAD, 0xED, 0x1B, 0xFA );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_2, 0x7fd2f0c4, 0xfeb7, 0x4da3, 0x81, 0x17, 0xe3, 0xfb, 0xed, 0xc4, 0x65, 0x82 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_3, 0x80472613, 0x9780, 0x455E, 0xB3, 0x08, 0x72, 0xD3, 0x00, 0x3C, 0xF2, 0xF8 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_3, 0x58AFD5A6, 0xC2DD, 0x47D2, 0x9F, 0xBF, 0xEF, 0x70, 0xCC, 0x5C, 0x59, 0x65 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_3, 0x73613ccf, 0xdbfa, 0x4279, 0x83, 0x56, 0x49, 0x35, 0xf6, 0xbf, 0x62, 0xf3 );
-DEFINE_GUID(GUID_PROCESSOR_SETTINGS_SUBGROUP, 0x54533251, 0x82BE, 0x4824, 0x96, 0xC1, 0x47, 0xB6, 0x0B, 0x74, 0x0D, 0x00 );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_POLICY, 0x57027304, 0x4AF6, 0x4104, 0x92, 0x60, 0xE3, 0xD9, 0x52, 0x48, 0xFC, 0x36 );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MAXIMUM, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xEC );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MINIMUM, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4C );
-DEFINE_GUID(GUID_PROCESSOR_ALLOW_THROTTLING, 0x3b04d4fd, 0x1cc7, 0x4f23, 0xab, 0x1c, 0xd1, 0x33, 0x78, 0x19, 0xc4, 0xbb );
-DEFINE_GUID(GUID_PROCESSOR_IDLESTATE_POLICY, 0x68f262a7, 0xf621, 0x4069, 0xb9, 0xa5, 0x48, 0x74, 0x16, 0x9b, 0xe2, 0x3c);
-DEFINE_GUID(GUID_PROCESSOR_PERFSTATE_POLICY, 0xBBDC3814, 0x18E9, 0x4463, 0x8A, 0x55, 0xD1, 0x97, 0x32, 0x7C, 0x45, 0xC0);
-DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_THRESHOLD, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5d );
-DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_THRESHOLD, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa6 );
-DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_POLICY, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x18);
-DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_POLICY, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc6);
-DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_TIME, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xaa);
-DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_TIME, 0xd8edeb9b, 0x95cf, 0x4f95, 0xa7, 0x3c, 0xb0, 0x61, 0x97, 0x36, 0x93, 0xc8);
-DEFINE_GUID(GUID_PROCESSOR_PERF_TIME_CHECK, 0x4d2b0152, 0x7d5c, 0x498b, 0x88, 0xe2, 0x34, 0x34, 0x53, 0x92, 0xa2, 0xc5);
-DEFINE_GUID(GUID_PROCESSOR_PERF_BOOST_POLICY, 0x45bcc044, 0xd885, 0x43e2, 0x86, 0x5, 0xee, 0xe, 0xc6, 0xe9, 0x6b, 0x59);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_ALLOW_SCALING, 0x6c2993b0, 0x8f48, 0x481f, 0xbc, 0xc6, 0x0, 0xdd, 0x27, 0x42, 0xaa, 0x6);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_DISABLE, 0x5d76a2ca, 0xe8c0, 0x402f, 0xa1, 0x33, 0x21, 0x58, 0x49, 0x2d, 0x58, 0xad);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_TIME_CHECK, 0xc4581c31, 0x89ab, 0x4597, 0x8e, 0x2b, 0x9c, 0x9c, 0xab, 0x44, 0xe, 0x6b);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD, 0x4b92d758, 0x5a24, 0x4851, 0xa4, 0x70, 0x81, 0x5d, 0x78, 0xae, 0xe1, 0x19);
-DEFINE_GUID(GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD, 0x7b224883, 0xb3cc, 0x4d79, 0x81, 0x9f, 0x83, 0x74, 0x15, 0x2c, 0xbe, 0x7c);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD, 0xdf142941, 0x20f3, 0x4edf, 0x9a, 0x4a, 0x9c, 0x83, 0xd3, 0xd7, 0x17, 0xd1 );
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD, 0x68dd2f27, 0xa4ce, 0x4e11, 0x84, 0x87, 0x37, 0x94, 0xe4, 0x13, 0x5d, 0xfa);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY, 0xc7be0679, 0x2817, 0x4d69, 0x9d, 0x02, 0x51, 0x9a, 0x53, 0x7e, 0xd0, 0xc6);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY, 0x71021b41, 0xc749, 0x4d21, 0xbe, 0x74, 0xa0, 0x0f, 0x33, 0x5d, 0x58, 0x2b);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_MAX_CORES, 0xea062031, 0x0e34, 0x4ff1, 0x9b, 0x6d, 0xeb, 0x10, 0x59, 0x33, 0x40, 0x28);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_MIN_CORES, 0x0cc5b647, 0xc1df, 0x4637, 0x89, 0x1a, 0xde, 0xc3, 0x5c, 0x31, 0x85, 0x83);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME, 0x2ddd5a84, 0x5a71, 0x437e, 0x91, 0x2a, 0xdb, 0x0b, 0x8c, 0x78, 0x87, 0x32);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME, 0xdfd10d17, 0xd5eb, 0x45dd, 0x87, 0x7a, 0x9a, 0x34, 0xdd, 0xd1, 0x5c, 0x82);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR, 0x8f7b45e3, 0xc393, 0x480a, 0x87, 0x8c, 0xf6, 0x7a, 0xc3, 0xd0, 0x70, 0x82);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD, 0x5b33697b, 0xe89d, 0x4d38, 0xaa, 0x46, 0x9e, 0x7d, 0xfb, 0x7c, 0xd2, 0xf9);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING, 0xe70867f1, 0xfa2f, 0x4f4e, 0xae, 0xa1, 0x4d, 0x8a, 0x0b, 0xa2, 0x3b, 0x20);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR, 0x1299023c, 0xbc28, 0x4f0a, 0x81, 0xec, 0xd3, 0x29, 0x5a, 0x8d, 0x81, 0x5d);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD, 0x9ac18e92, 0xaa3c, 0x4e27, 0xb3, 0x07, 0x01, 0xae, 0x37, 0x30, 0x71, 0x29);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING, 0x8809c2d8, 0xb155, 0x42d4, 0xbc, 0xda, 0x0d, 0x34, 0x56, 0x51, 0xb1, 0xdb);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD, 0x943c8cb6, 0x6f93, 0x4227, 0xad, 0x87, 0xe9, 0xa3, 0xfe, 0xec, 0x08, 0xd1);
-DEFINE_GUID(GUID_PROCESSOR_PARKING_CORE_OVERRIDE, 0xa55612aa, 0xf624, 0x42c6, 0xa4, 0x43, 0x73, 0x97, 0xd0, 0x64, 0xc0, 0x4f);
-DEFINE_GUID(GUID_PROCESSOR_PARKING_PERF_STATE, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2b);
-DEFINE_GUID(GUID_PROCESSOR_PERF_HISTORY, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x5f);
-DEFINE_GUID(GUID_SYSTEM_COOLING_POLICY, 0x94D3A615, 0xA899, 0x4AC5, 0xAE, 0x2B, 0xE4, 0xD8, 0xF6, 0x34, 0x36, 0x7F);
-DEFINE_GUID(GUID_LOCK_CONSOLE_ON_WAKE, 0x0E796BDB, 0x100D, 0x47D6, 0xA2, 0xD5, 0xF7, 0xD2, 0xDA, 0xA5, 0x1F, 0x51 );
-DEFINE_GUID(GUID_DEVICE_IDLE_POLICY, 0x4faab71a, 0x92e5, 0x4726, 0xb5, 0x31, 0x22, 0x45, 0x59, 0x67, 0x2d, 0x19 );
-DEFINE_GUID(GUID_ACDC_POWER_SOURCE, 0x5D3E9A59, 0xE9D5, 0x4B00, 0xA6, 0xBD, 0xFF, 0x34, 0xFF, 0x51, 0x65, 0x48 );
-DEFINE_GUID(GUID_LIDSWITCH_STATE_CHANGE,  0xBA3E0F4D, 0xB817, 0x4094, 0xA2, 0xD1, 0xD5, 0x63, 0x79, 0xE6, 0xA0, 0xF3 );
-DEFINE_GUID(GUID_BATTERY_PERCENTAGE_REMAINING, 0xA7AD8041, 0xB45A, 0x4CAE, 0x87, 0xA3, 0xEE, 0xCB, 0xB4, 0x68, 0xA9, 0xE1 );
-DEFINE_GUID(GUID_IDLE_BACKGROUND_TASK, 0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1 );
-DEFINE_GUID(GUID_BACKGROUND_TASK_NOTIFICATION, 0xCF23F240, 0x2A54, 0x48D8, 0xB1, 0x14, 0xDE, 0x15, 0x18, 0xFF, 0x05, 0x2E );
-DEFINE_GUID(GUID_APPLAUNCH_BUTTON, 0x1A689231, 0x7399, 0x4E9A, 0x8F, 0x99, 0xB7, 0x1F, 0x99, 0x9D, 0xB3, 0xFA );
-DEFINE_GUID(GUID_PCIEXPRESS_SETTINGS_SUBGROUP, 0x501a4d13, 0x42af,0x4429, 0x9f, 0xd1, 0xa8, 0x21, 0x8c, 0x26, 0x8e, 0x20 );
-DEFINE_GUID(GUID_PCIEXPRESS_ASPM_POLICY, 0xee12f906, 0xd277, 0x404b, 0xb6, 0xda, 0xe5, 0xfa, 0x1a, 0x57, 0x6d, 0xf5 );
-DEFINE_GUID(GUID_ENABLE_SWITCH_FORCED_SHUTDOWN, 0x833a6b62, 0xdfa4, 0x46d1, 0x82, 0xf8, 0xe0, 0x9e, 0x34, 0xd0, 0x29, 0xd6 );
-
-#define PERFSTATE_POLICY_CHANGE_IDEAL            0
-#define PERFSTATE_POLICY_CHANGE_SINGLE           1
-#define PERFSTATE_POLICY_CHANGE_ROCKET           2
-#define PERFSTATE_POLICY_CHANGE_MAX              PERFSTATE_POLICY_CHANGE_ROCKET
-
-#define PROCESSOR_PERF_BOOST_POLICY_DISABLED     0
-#define PROCESSOR_PERF_BOOST_POLICY_MAX          100
-
-#define POWER_DEVICE_IDLE_POLICY_PERFORMANCE     0
-#define POWER_DEVICE_IDLE_POLICY_CONSERVATIVE    1
-
-typedef VOID
-(NTAPI REQUEST_POWER_COMPLETE)(
-  IN struct _DEVICE_OBJECT *DeviceObject,
-  IN UCHAR MinorFunction,
-  IN POWER_STATE PowerState,
-  IN PVOID Context,
-  IN struct _IO_STATUS_BLOCK *IoStatus);
-typedef REQUEST_POWER_COMPLETE *PREQUEST_POWER_COMPLETE;
-
-typedef
-NTSTATUS
-(NTAPI POWER_SETTING_CALLBACK)(
-  IN LPCGUID SettingGuid,
-  IN PVOID Value,
-  IN ULONG ValueLength,
-  IN OUT PVOID Context OPTIONAL);
-typedef POWER_SETTING_CALLBACK *PPOWER_SETTING_CALLBACK;
-
-
diff --git a/reactos/include/xdk/ppc/ke.h b/reactos/include/xdk/ppc/ke.h
deleted file mode 100644 (file)
index b3a81bc..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-$if (_WDMDDK_)
-
-/* Interrupt request levels */
-#define PASSIVE_LEVEL                      0
-#define LOW_LEVEL                          0
-#define APC_LEVEL                          1
-#define DISPATCH_LEVEL                     2
-#define PROFILE_LEVEL                     27
-#define CLOCK1_LEVEL                      28
-#define CLOCK2_LEVEL                      28
-#define IPI_LEVEL                         29
-#define POWER_LEVEL                       30
-#define HIGH_LEVEL                        31
-
-//
-// Used to contain PFNs and PFN counts
-//
-typedef ULONG PFN_COUNT;
-typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
-typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
-
-
-typedef struct _KFLOATING_SAVE {
-  ULONG Dummy;
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
-
-typedef struct _KPCR_TIB {
-  PVOID ExceptionList;         /* 00 */
-  PVOID StackBase;             /* 04 */
-  PVOID StackLimit;            /* 08 */
-  PVOID SubSystemTib;          /* 0C */
-  _ANONYMOUS_UNION union {
-    PVOID FiberData;           /* 10 */
-    ULONG Version;             /* 10 */
-  } DUMMYUNIONNAME;
-  PVOID ArbitraryUserPointer;  /* 14 */
-  struct _KPCR_TIB *Self;       /* 18 */
-} KPCR_TIB, *PKPCR_TIB;         /* 1C */
-
-#define PCR_MINOR_VERSION 1
-#define PCR_MAJOR_VERSION 1
-
-typedef struct _KPCR {
-  KPCR_TIB Tib;                /* 00 */
-  struct _KPCR *Self;          /* 1C */
-  struct _KPRCB *Prcb;         /* 20 */
-  KIRQL Irql;                  /* 24 */
-  ULONG IRR;                   /* 28 */
-  ULONG IrrActive;             /* 2C */
-  ULONG IDR;                   /* 30 */
-  PVOID KdVersionBlock;        /* 34 */
-  PUSHORT IDT;                 /* 38 */
-  PUSHORT GDT;                 /* 3C */
-  struct _KTSS *TSS;           /* 40 */
-  USHORT MajorVersion;         /* 44 */
-  USHORT MinorVersion;         /* 46 */
-  KAFFINITY SetMember;         /* 48 */
-  ULONG StallScaleFactor;      /* 4C */
-  UCHAR SpareUnused;           /* 50 */
-  UCHAR Number;                /* 51 */
-} KPCR, *PKPCR;                /* 54 */
-
-#define KeGetPcr()                      PCR
-
-#define YieldProcessor() __asm__ __volatile__("nop");
-
-FORCEINLINE
-ULONG
-NTAPI
-KeGetCurrentProcessorNumber(VOID)
-{
-  ULONG Number;
-  __asm__ __volatile__ (
-    "lwz %0, %c1(12)\n"
-    : "=r" (Number)
-    : "i" (FIELD_OFFSET(KPCR, Number))
-  );
-  return Number;
-}
-
-NTHALAPI
-VOID
-FASTCALL
-KfLowerIrql(
-  IN KIRQL NewIrql);
-#define KeLowerIrql(a) KfLowerIrql(a)
-
-NTHALAPI
-KIRQL
-FASTCALL
-KfRaiseIrql(
-  IN KIRQL NewIrql);
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
-
-NTHALAPI
-KIRQL
-NTAPI
-KeRaiseIrqlToDpcLevel(VOID);
-
-NTHALAPI
-KIRQL
-NTAPI
-KeRaiseIrqlToSynchLevel(VOID);
-
-$endif
-
-
diff --git a/reactos/include/xdk/psfuncs.h b/reactos/include/xdk/psfuncs.h
deleted file mode 100644 (file)
index 48666e6..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-/******************************************************************************
- *                          Process Manager Functions                         *
- ******************************************************************************/
-$if (_WDMDDK_)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsWrapApcWow64Thread(
-  IN OUT PVOID *ApcContext,
-  IN OUT PVOID *ApcRoutine);
-
-/*
- * PEPROCESS
- * PsGetCurrentProcess(VOID)
- */
-#define PsGetCurrentProcess IoGetCurrentProcess
-
-#if !defined(_PSGETCURRENTTHREAD_)
-#define _PSGETCURRENTTHREAD_
-FORCEINLINE
-PETHREAD
-NTAPI
-PsGetCurrentThread(VOID)
-{
-  return (PETHREAD)KeGetCurrentThread();
-}
-#endif /* !_PSGETCURRENTTHREAD_ */
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtOpenProcess(
-  OUT PHANDLE ProcessHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN PCLIENT_ID ClientId OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-NtQueryInformationProcess(
-  IN HANDLE ProcessHandle,
-  IN PROCESSINFOCLASS ProcessInformationClass,
-  OUT PVOID ProcessInformation OPTIONAL,
-  IN ULONG ProcessInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
-$endif /* _NTDDK_ */
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-$if (_WDMDDK_)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsCreateSystemThread(
-  OUT PHANDLE ThreadHandle,
-  IN ULONG DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN HANDLE ProcessHandle OPTIONAL,
-  OUT PCLIENT_ID ClientId OPTIONAL,
-  IN PKSTART_ROUTINE StartRoutine,
-  IN PVOID StartContext OPTIONAL);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsTerminateSystemThread(
-  IN NTSTATUS ExitStatus);
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsSetCreateProcessNotifyRoutine(
-  IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
-  IN BOOLEAN Remove);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsSetCreateThreadNotifyRoutine(
-  IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsSetLoadImageNotifyRoutine(
-  IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
-
-NTKERNELAPI
-HANDLE
-NTAPI
-PsGetCurrentProcessId(VOID);
-
-NTKERNELAPI
-HANDLE
-NTAPI
-PsGetCurrentThreadId(VOID);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-PsGetVersion(
-  OUT PULONG MajorVersion OPTIONAL,
-  OUT PULONG MinorVersion OPTIONAL,
-  OUT PULONG BuildNumber OPTIONAL,
-  OUT PUNICODE_STRING CSDVersion OPTIONAL);
-$endif /* _NTDDK_ */
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-$if (_NTDDK_)
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTKERNELAPI
-HANDLE
-NTAPI
-PsGetProcessId(
-  IN PEPROCESS Process);
-
-NTKERNELAPI
-HANDLE
-NTAPI
-PsGetThreadId(
-  IN PETHREAD Thread);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsRemoveCreateThreadNotifyRoutine(
-  IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsRemoveLoadImageNotifyRoutine(
-  IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
-
-NTKERNELAPI
-LONGLONG
-NTAPI
-PsGetProcessCreateTimeQuadPart(
-  IN PEPROCESS Process);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-NTKERNELAPI
-HANDLE
-NTAPI
-PsGetThreadProcessId(
-  IN PETHREAD Thread);
-#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-PsSetCurrentThreadPrefetching(
-  IN BOOLEAN Prefetching);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-PsIsCurrentThreadPrefetching(VOID);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-PsSetCreateProcessNotifyRoutineEx(
-  IN PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
-  IN BOOLEAN Remove);
-#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
-$endif
diff --git a/reactos/include/xdk/pstypes.h b/reactos/include/xdk/pstypes.h
deleted file mode 100644 (file)
index adda1fb..0000000
+++ /dev/null
@@ -1,451 +0,0 @@
-/******************************************************************************
- *                           Process Manager Types                            *
- ******************************************************************************/
-$if (_WDMDDK_)
-
-#define QUOTA_LIMITS_HARDWS_MIN_ENABLE  0x00000001
-#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
-#define QUOTA_LIMITS_HARDWS_MAX_ENABLE  0x00000004
-#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008
-#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
-
-/* Thread Access Rights */
-#define THREAD_TERMINATE                 0x0001
-#define THREAD_SUSPEND_RESUME            0x0002
-#define THREAD_ALERT                     0x0004
-#define THREAD_GET_CONTEXT               0x0008
-#define THREAD_SET_CONTEXT               0x0010
-#define THREAD_SET_INFORMATION           0x0020
-#define THREAD_SET_LIMITED_INFORMATION   0x0400
-#define THREAD_QUERY_LIMITED_INFORMATION 0x0800
-
-#define PROCESS_DUP_HANDLE                 (0x0040)
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#define PROCESS_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
-#else
-#define PROCESS_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF)
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#define THREAD_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
-#else
-#define THREAD_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF)
-#endif
-
-#define LOW_PRIORITY                      0
-#define LOW_REALTIME_PRIORITY             16
-#define HIGH_PRIORITY                     31
-#define MAXIMUM_PRIORITY                  32
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-#define QUOTA_LIMITS_HARDWS_MIN_ENABLE  0x00000001
-#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
-#define QUOTA_LIMITS_HARDWS_MAX_ENABLE  0x00000004
-#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008
-#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
-
-typedef struct _QUOTA_LIMITS {
-  SIZE_T PagedPoolLimit;
-  SIZE_T NonPagedPoolLimit;
-  SIZE_T MinimumWorkingSetSize;
-  SIZE_T MaximumWorkingSetSize;
-  SIZE_T PagefileLimit;
-  LARGE_INTEGER TimeLimit;
-} QUOTA_LIMITS, *PQUOTA_LIMITS;
-
-typedef union _RATE_QUOTA_LIMIT {
-  ULONG RateData;
-  struct {
-    ULONG RatePercent:7;
-    ULONG Reserved0:25;
-  } DUMMYSTRUCTNAME;
-} RATE_QUOTA_LIMIT, *PRATE_QUOTA_LIMIT;
-
-typedef struct _QUOTA_LIMITS_EX {
-  SIZE_T PagedPoolLimit;
-  SIZE_T NonPagedPoolLimit;
-  SIZE_T MinimumWorkingSetSize;
-  SIZE_T MaximumWorkingSetSize;
-  SIZE_T PagefileLimit;
-  LARGE_INTEGER TimeLimit;
-  SIZE_T WorkingSetLimit;
-  SIZE_T Reserved2;
-  SIZE_T Reserved3;
-  SIZE_T Reserved4;
-  ULONG Flags;
-  RATE_QUOTA_LIMIT CpuRateLimit;
-} QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX;
-
-typedef struct _IO_COUNTERS {
-  ULONGLONG ReadOperationCount;
-  ULONGLONG WriteOperationCount;
-  ULONGLONG OtherOperationCount;
-  ULONGLONG ReadTransferCount;
-  ULONGLONG WriteTransferCount;
-  ULONGLONG OtherTransferCount;
-} IO_COUNTERS, *PIO_COUNTERS;
-
-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, *PVM_COUNTERS;
-
-typedef struct _VM_COUNTERS_EX {
-  SIZE_T PeakVirtualSize;
-  SIZE_T VirtualSize;
-  ULONG PageFaultCount;
-  SIZE_T PeakWorkingSetSize;
-  SIZE_T WorkingSetSize;
-  SIZE_T QuotaPeakPagedPoolUsage;
-  SIZE_T QuotaPagedPoolUsage;
-  SIZE_T QuotaPeakNonPagedPoolUsage;
-  SIZE_T QuotaNonPagedPoolUsage;
-  SIZE_T PagefileUsage;
-  SIZE_T PeakPagefileUsage;
-  SIZE_T PrivateUsage;
-} VM_COUNTERS_EX, *PVM_COUNTERS_EX;
-
-#define MAX_HW_COUNTERS 16
-#define THREAD_PROFILING_FLAG_DISPATCH  0x00000001
-
-typedef enum _HARDWARE_COUNTER_TYPE {
-  PMCCounter,
-  MaxHardwareCounterType
-} HARDWARE_COUNTER_TYPE, *PHARDWARE_COUNTER_TYPE;
-
-typedef struct _HARDWARE_COUNTER {
-  HARDWARE_COUNTER_TYPE Type;
-  ULONG Reserved;
-  ULONG64 Index;
-} HARDWARE_COUNTER, *PHARDWARE_COUNTER;
-
-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, *PPOOLED_USAGE_AND_LIMITS;
-
-typedef struct _PROCESS_ACCESS_TOKEN {
-  HANDLE Token;
-  HANDLE Thread;
-} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
-
-#define PROCESS_EXCEPTION_PORT_ALL_STATE_BITS     0x00000003UL
-#define PROCESS_EXCEPTION_PORT_ALL_STATE_FLAGS    ((ULONG_PTR)((1UL << PROCESS_EXCEPTION_PORT_ALL_STATE_BITS) - 1))
-
-typedef struct _PROCESS_EXCEPTION_PORT {
-  IN HANDLE ExceptionPortHandle;
-  IN OUT ULONG StateFlags;
-} PROCESS_EXCEPTION_PORT, *PPROCESS_EXCEPTION_PORT;
-
-typedef VOID
-(NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE)(
-  IN HANDLE ParentId,
-  IN HANDLE ProcessId,
-  IN BOOLEAN Create);
-
-typedef struct _PS_CREATE_NOTIFY_INFO {
-  IN SIZE_T Size;
-  union {
-    IN ULONG Flags;
-    struct {
-      IN ULONG FileOpenNameAvailable:1;
-      IN ULONG Reserved:31;
-    };
-  };
-  IN HANDLE ParentProcessId;
-  IN CLIENT_ID CreatingThreadId;
-  IN OUT struct _FILE_OBJECT *FileObject;
-  IN PCUNICODE_STRING ImageFileName;
-  IN PCUNICODE_STRING CommandLine OPTIONAL;
-  IN OUT NTSTATUS CreationStatus;
-} PS_CREATE_NOTIFY_INFO, *PPS_CREATE_NOTIFY_INFO;
-
-typedef VOID
-(NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE_EX)(
-  IN OUT PEPROCESS Process,
-  IN HANDLE ProcessId,
-  IN PPS_CREATE_NOTIFY_INFO CreateInfo OPTIONAL);
-
-typedef VOID
-(NTAPI *PCREATE_THREAD_NOTIFY_ROUTINE)(
-  IN HANDLE ProcessId,
-  IN HANDLE ThreadId,
-  IN BOOLEAN Create);
-
-#define IMAGE_ADDRESSING_MODE_32BIT       3
-
-typedef struct _IMAGE_INFO {
-  _ANONYMOUS_UNION union {
-    ULONG Properties;
-    _ANONYMOUS_STRUCT struct {
-      ULONG ImageAddressingMode:8;
-      ULONG SystemModeImage:1;
-      ULONG ImageMappedToAllPids:1;
-      ULONG ExtendedInfoPresent:1;
-      ULONG Reserved:21;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-  PVOID ImageBase;
-  ULONG ImageSelector;
-  SIZE_T ImageSize;
-  ULONG ImageSectionNumber;
-} IMAGE_INFO, *PIMAGE_INFO;
-
-typedef struct _IMAGE_INFO_EX {
-  SIZE_T Size;
-  IMAGE_INFO ImageInfo;
-  struct _FILE_OBJECT *FileObject;
-} IMAGE_INFO_EX, *PIMAGE_INFO_EX;
-
-typedef VOID
-(NTAPI *PLOAD_IMAGE_NOTIFY_ROUTINE)(
-  IN PUNICODE_STRING FullImageName,
-  IN HANDLE ProcessId,
-  IN PIMAGE_INFO ImageInfo);
-
-#define THREAD_CSWITCH_PMU_DISABLE  FALSE
-#define THREAD_CSWITCH_PMU_ENABLE   TRUE
-
-#define PROCESS_LUID_DOSDEVICES_ONLY 0x00000001
-
-#define PROCESS_HANDLE_TRACING_MAX_STACKS 16
-
-typedef struct _NT_TIB {
-  struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
-  PVOID StackBase;
-  PVOID StackLimit;
-  PVOID SubSystemTib;
-  _ANONYMOUS_UNION union {
-    PVOID FiberData;
-    ULONG Version;
-  } DUMMYUNIONNAME;
-  PVOID ArbitraryUserPointer;
-  struct _NT_TIB *Self;
-} NT_TIB, *PNT_TIB;
-
-typedef struct _NT_TIB32 {
-  ULONG ExceptionList;
-  ULONG StackBase;
-  ULONG StackLimit;
-  ULONG SubSystemTib;
-  __GNU_EXTENSION union {
-    ULONG FiberData;
-    ULONG Version;
-  };
-  ULONG ArbitraryUserPointer;
-  ULONG Self;
-} NT_TIB32,*PNT_TIB32;
-
-typedef struct _NT_TIB64 {
-  ULONG64 ExceptionList;
-  ULONG64 StackBase;
-  ULONG64 StackLimit;
-  ULONG64 SubSystemTib;
-  __GNU_EXTENSION union {
-    ULONG64 FiberData;
-    ULONG Version;
-  };
-  ULONG64 ArbitraryUserPointer;
-  ULONG64 Self;
-} NT_TIB64,*PNT_TIB64;
-
-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,
-  ProcessImageFileName,
-  ProcessLUIDDeviceMapsEnabled,
-  ProcessBreakOnTermination,
-  ProcessDebugObjectHandle,
-  ProcessDebugFlags,
-  ProcessHandleTracing,
-  ProcessIoPriority,
-  ProcessExecuteFlags,
-  ProcessTlsInformation,
-  ProcessCookie,
-  ProcessImageInformation,
-  ProcessCycleTime,
-  ProcessPagePriority,
-  ProcessInstrumentationCallback,
-  ProcessThreadStackAllocation,
-  ProcessWorkingSetWatchEx,
-  ProcessImageFileNameWin32,
-  ProcessImageFileMapping,
-  ProcessAffinityUpdateMode,
-  ProcessMemoryAllocationMode,
-  ProcessGroupInformation,
-  ProcessTokenVirtualizationEnabled,
-  ProcessConsoleHostProcess,
-  ProcessWindowInformation,
-  MaxProcessInfoClass
-} PROCESSINFOCLASS;
-
-typedef enum _THREADINFOCLASS {
-  ThreadBasicInformation,
-  ThreadTimes,
-  ThreadPriority,
-  ThreadBasePriority,
-  ThreadAffinityMask,
-  ThreadImpersonationToken,
-  ThreadDescriptorTableEntry,
-  ThreadEnableAlignmentFaultFixup,
-  ThreadEventPair_Reusable,
-  ThreadQuerySetWin32StartAddress,
-  ThreadZeroTlsCell,
-  ThreadPerformanceCount,
-  ThreadAmILastThread,
-  ThreadIdealProcessor,
-  ThreadPriorityBoost,
-  ThreadSetTlsArrayAddress,
-  ThreadIsIoPending,
-  ThreadHideFromDebugger,
-  ThreadBreakOnTermination,
-  ThreadSwitchLegacyState,
-  ThreadIsTerminated,
-  ThreadLastSystemCall,
-  ThreadIoPriority,
-  ThreadCycleTime,
-  ThreadPagePriority,
-  ThreadActualBasePriority,
-  ThreadTebInformation,
-  ThreadCSwitchMon,
-  ThreadCSwitchPmu,
-  ThreadWow64Context,
-  ThreadGroupInformation,
-  ThreadUmsInformation,
-  ThreadCounterProfiling,
-  ThreadIdealProcessorEx,
-  MaxThreadInfoClass
-} THREADINFOCLASS;
-
-typedef struct _PAGE_PRIORITY_INFORMATION {
-  ULONG PagePriority;
-} PAGE_PRIORITY_INFORMATION, *PPAGE_PRIORITY_INFORMATION;
-
-typedef struct _PROCESS_WS_WATCH_INFORMATION {
-  PVOID FaultingPc;
-  PVOID FaultingVa;
-} PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION;
-
-typedef struct _PROCESS_BASIC_INFORMATION {
-  NTSTATUS ExitStatus;
-  struct _PEB *PebBaseAddress;
-  ULONG_PTR AffinityMask;
-  KPRIORITY BasePriority;
-  ULONG_PTR UniqueProcessId;
-  ULONG_PTR InheritedFromUniqueProcessId;
-} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
-
-typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION {
-  SIZE_T Size;
-  PROCESS_BASIC_INFORMATION BasicInfo;
-  union {
-    ULONG Flags;
-    struct {
-      ULONG IsProtectedProcess:1;
-      ULONG IsWow64Process:1;
-      ULONG IsProcessDeleting:1;
-      ULONG IsCrossSessionCreate:1;
-      ULONG SpareBits:28;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-} PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION;
-
-typedef struct _PROCESS_DEVICEMAP_INFORMATION {
-  __GNU_EXTENSION union {
-    struct {
-      HANDLE DirectoryHandle;
-    } Set;
-    struct {
-      ULONG DriveMap;
-      UCHAR DriveType[32];
-    } Query;
-  };
-} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
-
-typedef struct _PROCESS_DEVICEMAP_INFORMATION_EX {
-  union {
-    struct {
-      HANDLE DirectoryHandle;
-    } Set;
-    struct {
-      ULONG DriveMap;
-      UCHAR DriveType[32];
-    } Query;
-  } DUMMYUNIONNAME;
-  ULONG Flags;
-} PROCESS_DEVICEMAP_INFORMATION_EX, *PPROCESS_DEVICEMAP_INFORMATION_EX;
-
-typedef struct _PROCESS_SESSION_INFORMATION {
-  ULONG SessionId;
-} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
-
-typedef struct _PROCESS_HANDLE_TRACING_ENABLE {
-  ULONG Flags;
-} PROCESS_HANDLE_TRACING_ENABLE, *PPROCESS_HANDLE_TRACING_ENABLE;
-
-typedef struct _PROCESS_HANDLE_TRACING_ENABLE_EX {
-  ULONG Flags;
-  ULONG TotalSlots;
-} PROCESS_HANDLE_TRACING_ENABLE_EX, *PPROCESS_HANDLE_TRACING_ENABLE_EX;
-
-typedef struct _PROCESS_HANDLE_TRACING_ENTRY {
-  HANDLE Handle;
-  CLIENT_ID ClientId;
-  ULONG Type;
-  PVOID Stacks[PROCESS_HANDLE_TRACING_MAX_STACKS];
-} PROCESS_HANDLE_TRACING_ENTRY, *PPROCESS_HANDLE_TRACING_ENTRY;
-
-typedef struct _PROCESS_HANDLE_TRACING_QUERY {
-  HANDLE Handle;
-  ULONG TotalTraces;
-  PROCESS_HANDLE_TRACING_ENTRY HandleTrace[1];
-} PROCESS_HANDLE_TRACING_QUERY, *PPROCESS_HANDLE_TRACING_QUERY;
-
-extern NTKERNELAPI PEPROCESS PsInitialSystemProcess;
-
-$endif /* _NTDDK_ */
-
diff --git a/reactos/include/xdk/rtlfuncs.h b/reactos/include/xdk/rtlfuncs.h
deleted file mode 100644 (file)
index a5302dc..0000000
+++ /dev/null
@@ -1,2259 +0,0 @@
-/******************************************************************************
- *                         Runtime Library Functions                          *
- ******************************************************************************/
-
-$if (_WDMDDK_)
-
-#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
-
-#define RTL_STATIC_LIST_HEAD(x) LIST_ENTRY x = { &x, &x }
-
-FORCEINLINE
-VOID
-InitializeListHead(
-  OUT PLIST_ENTRY ListHead)
-{
-  ListHead->Flink = ListHead->Blink = ListHead;
-}
-
-BOOLEAN
-FORCEINLINE
-IsListEmpty(
-  IN CONST LIST_ENTRY * ListHead)
-{
-  return (BOOLEAN)(ListHead->Flink == ListHead);
-}
-
-FORCEINLINE
-BOOLEAN
-RemoveEntryList(
-  IN PLIST_ENTRY Entry)
-{
-  PLIST_ENTRY OldFlink;
-  PLIST_ENTRY OldBlink;
-
-  OldFlink = Entry->Flink;
-  OldBlink = Entry->Blink;
-  OldFlink->Blink = OldBlink;
-  OldBlink->Flink = OldFlink;
-  return (BOOLEAN)(OldFlink == OldBlink);
-}
-
-FORCEINLINE
-PLIST_ENTRY
-RemoveHeadList(
-  IN OUT PLIST_ENTRY ListHead)
-{
-  PLIST_ENTRY Flink;
-  PLIST_ENTRY Entry;
-
-  Entry = ListHead->Flink;
-  Flink = Entry->Flink;
-  ListHead->Flink = Flink;
-  Flink->Blink = ListHead;
-  return Entry;
-}
-
-FORCEINLINE
-PLIST_ENTRY
-RemoveTailList(
-  IN OUT PLIST_ENTRY ListHead)
-{
-  PLIST_ENTRY Blink;
-  PLIST_ENTRY Entry;
-
-  Entry = ListHead->Blink;
-  Blink = Entry->Blink;
-  ListHead->Blink = Blink;
-  Blink->Flink = ListHead;
-  return Entry;
-}
-
-FORCEINLINE
-VOID
-InsertTailList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY Entry)
-{
-  PLIST_ENTRY OldBlink;
-  OldBlink = ListHead->Blink;
-  Entry->Flink = ListHead;
-  Entry->Blink = OldBlink;
-  OldBlink->Flink = Entry;
-  ListHead->Blink = Entry;
-}
-
-FORCEINLINE
-VOID
-InsertHeadList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY Entry)
-{
-  PLIST_ENTRY OldFlink;
-  OldFlink = ListHead->Flink;
-  Entry->Flink = OldFlink;
-  Entry->Blink = ListHead;
-  OldFlink->Blink = Entry;
-  ListHead->Flink = Entry;
-}
-
-FORCEINLINE
-VOID
-AppendTailList(
-  IN OUT PLIST_ENTRY ListHead,
-  IN OUT PLIST_ENTRY ListToAppend)
-{
-  PLIST_ENTRY ListEnd = ListHead->Blink;
-
-  ListHead->Blink->Flink = ListToAppend;
-  ListHead->Blink = ListToAppend->Blink;
-  ListToAppend->Blink->Flink = ListHead;
-  ListToAppend->Blink = ListEnd;
-}
-
-FORCEINLINE
-PSINGLE_LIST_ENTRY
-PopEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead)
-{
-  PSINGLE_LIST_ENTRY FirstEntry;
-  FirstEntry = ListHead->Next;
-  if (FirstEntry != NULL) {
-    ListHead->Next = FirstEntry->Next;
-  }
-  return FirstEntry;
-}
-
-FORCEINLINE
-VOID
-PushEntryList(
-  IN OUT PSINGLE_LIST_ENTRY ListHead,
-  IN OUT PSINGLE_LIST_ENTRY Entry)
-{
-  Entry->Next = ListHead->Next;
-  ListHead->Next = Entry;
-}
-
-#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
-
-NTSYSAPI
-VOID
-NTAPI
-RtlAssert(
-  IN PVOID FailedAssertion,
-  IN PVOID FileName,
-  IN ULONG LineNumber,
-  IN PSTR Message);
-
-/* VOID
- * RtlCopyMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN CONST VOID UNALIGNED *Source,
- *     IN SIZE_T Length)
- */
-#define RtlCopyMemory(Destination, Source, Length) \
-    memcpy(Destination, Source, Length)
-
-#define RtlCopyBytes RtlCopyMemory
-
-#if defined(_M_AMD64)
-NTSYSAPI
-VOID
-NTAPI
-RtlCopyMemoryNonTemporal(
-  VOID UNALIGNED *Destination,
-  CONST VOID UNALIGNED *Source,
-  SIZE_T Length);
-#else
-#define RtlCopyMemoryNonTemporal RtlCopyMemory
-#endif
-
-/* BOOLEAN
- * RtlEqualLuid(
- *     IN PLUID Luid1,
- *     IN PLUID Luid2)
- */
-#define RtlEqualLuid(Luid1, Luid2) \
-    (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
-
-/* ULONG
- * RtlEqualMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN CONST VOID UNALIGNED *Source,
- *     IN SIZE_T Length)
- */
-#define RtlEqualMemory(Destination, Source, Length) \
-    (!memcmp(Destination, Source, Length))
-
-/* VOID
- * RtlFillMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN SIZE_T Length,
- *     IN UCHAR Fill)
- */
-#define RtlFillMemory(Destination, Length, Fill) \
-    memset(Destination, Fill, Length)
-
-#define RtlFillBytes RtlFillMemory
-
-NTSYSAPI
-VOID
-NTAPI
-RtlFreeUnicodeString(
-  IN OUT PUNICODE_STRING UnicodeString);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlGUIDFromString(
-  IN PUNICODE_STRING GuidString,
-  OUT GUID *Guid);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlInitUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PCWSTR SourceString OPTIONAL);
-
-/* VOID
- * RtlMoveMemory(
- *    IN VOID UNALIGNED *Destination,
- *    IN CONST VOID UNALIGNED *Source,
- *    IN SIZE_T Length)
- */
-#define RtlMoveMemory(Destination, Source, Length) \
-    memmove(Destination, Source, Length)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlStringFromGUID(
-  IN REFGUID Guid,
-  OUT PUNICODE_STRING GuidString);
-
-/* VOID
- * RtlZeroMemory(
- *     IN VOID UNALIGNED *Destination,
- *     IN SIZE_T Length)
- */
-#define RtlZeroMemory(Destination, Length) \
-    memset(Destination, 0, Length)
-
-#define RtlZeroBytes RtlZeroMemory
-
-$endif
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-$if (_NTIFS_)
-NTSYSAPI
-PVOID
-NTAPI
-RtlAllocateHeap(
-  IN HANDLE HeapHandle,
-  IN ULONG Flags OPTIONAL,
-  IN SIZE_T Size);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlFreeHeap(
-  IN PVOID HeapHandle,
-  IN ULONG Flags OPTIONAL,
-  IN PVOID BaseAddress);
-
-$endif
-
-$if (_NTDDK_)
-
-#ifndef RTL_USE_AVL_TABLES
-
-NTSYSAPI
-VOID
-NTAPI
-RtlInitializeGenericTable(
-  OUT PRTL_GENERIC_TABLE Table,
-  IN PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine,
-  IN PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine,
-  IN PRTL_GENERIC_FREE_ROUTINE FreeRoutine,
-  IN PVOID TableContext OPTIONAL);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlInsertElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlInsertElementGenericTableFull(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL,
-  IN PVOID NodeOrParent,
-  IN TABLE_SEARCH_RESULT SearchResult);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlDeleteElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlLookupElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlLookupElementGenericTableFull(
-  IN PRTL_GENERIC_TABLE Table,
-  IN PVOID Buffer,
-  OUT PVOID *NodeOrParent,
-  OUT TABLE_SEARCH_RESULT *SearchResult);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlEnumerateGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN BOOLEAN Restart);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlEnumerateGenericTableWithoutSplaying(
-  IN PRTL_GENERIC_TABLE Table,
-  IN OUT PVOID *RestartKey);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlGetElementGenericTable(
-  IN PRTL_GENERIC_TABLE Table,
-  IN ULONG I);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlNumberGenericTableElements(
-  IN PRTL_GENERIC_TABLE Table);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlIsGenericTableEmpty(
-  IN PRTL_GENERIC_TABLE Table);
-
-#endif /* !RTL_USE_AVL_TABLES */
-
-#define RTL_STACK_WALKING_MODE_FRAMES_TO_SKIP_SHIFT     8
-
-NTSYSAPI
-PRTL_SPLAY_LINKS
-NTAPI
-RtlSplay(
-  IN OUT PRTL_SPLAY_LINKS Links);
-
-NTSYSAPI
-PRTL_SPLAY_LINKS
-NTAPI
-RtlDelete(
-  IN PRTL_SPLAY_LINKS Links);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlDeleteNoSplay(
-  IN PRTL_SPLAY_LINKS Links,
-  IN OUT PRTL_SPLAY_LINKS *Root);
-
-NTSYSAPI
-PRTL_SPLAY_LINKS
-NTAPI
-RtlSubtreeSuccessor(
-  IN PRTL_SPLAY_LINKS Links);
-
-NTSYSAPI
-PRTL_SPLAY_LINKS
-NTAPI
-RtlSubtreePredecessor(
-  IN PRTL_SPLAY_LINKS Links);
-
-NTSYSAPI
-PRTL_SPLAY_LINKS
-NTAPI
-RtlRealSuccessor(
-  IN PRTL_SPLAY_LINKS Links);
-
-NTSYSAPI
-PRTL_SPLAY_LINKS
-NTAPI
-RtlRealPredecessor(
-  IN PRTL_SPLAY_LINKS Links);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlPrefixUnicodeString(
-  IN PCUNICODE_STRING  String1,
-  IN PCUNICODE_STRING  String2,
-  IN BOOLEAN  CaseInSensitive);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlUpperString(
-  IN OUT PSTRING  DestinationString,
-  IN const PSTRING  SourceString);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlUpcaseUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PCUNICODE_STRING  SourceString,
-  IN BOOLEAN  AllocateDestinationString);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlMapGenericMask(
-  IN OUT PACCESS_MASK AccessMask,
-  IN PGENERIC_MAPPING GenericMapping);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlVolumeDeviceToDosName(
-  IN PVOID VolumeDeviceObject,
-  OUT PUNICODE_STRING DosName);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlGetVersion(
-  IN OUT PRTL_OSVERSIONINFOW lpVersionInformation);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlVerifyVersionInfo(
-  IN PRTL_OSVERSIONINFOEXW VersionInfo,
-  IN ULONG TypeMask,
-  IN ULONGLONG ConditionMask);
-
-NTSYSAPI
-LONG
-NTAPI
-RtlCompareString(
-  IN const PSTRING String1,
-  IN const PSTRING String2,
-  IN BOOLEAN CaseInSensitive);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlCopyString(
-  OUT PSTRING DestinationString,
-  IN const PSTRING SourceString OPTIONAL);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlEqualString(
-  IN const PSTRING String1,
-  IN const PSTRING String2,
-  IN BOOLEAN CaseInSensitive);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCharToInteger(
-  IN PCSZ String,
-  IN ULONG Base OPTIONAL,
-  OUT PULONG Value);
-
-NTSYSAPI
-CHAR
-NTAPI
-RtlUpperChar(
-  IN CHAR Character);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlWalkFrameChain(
-  OUT PVOID *Callers,
-  IN ULONG Count,
-  IN ULONG Flags);
-
-$endif
-
-$if (_WDMDDK_)
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlAreBitsClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG Length);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlAreBitsSet(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG Length);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlAnsiStringToUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PANSI_STRING SourceString,
-  IN BOOLEAN AllocateDestinationString);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlxAnsiStringToUnicodeSize(
-  IN PCANSI_STRING AnsiString);
-
-#define RtlAnsiStringToUnicodeSize(String) (               \
-  NLS_MB_CODE_PAGE_TAG ?                                   \
-  RtlxAnsiStringToUnicodeSize(String) :                    \
-  ((String)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR)   \
-)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlAppendUnicodeStringToString(
-  IN OUT PUNICODE_STRING Destination,
-  IN PCUNICODE_STRING Source);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlAppendUnicodeToString(
-  IN OUT PUNICODE_STRING Destination,
-  IN PCWSTR Source);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCheckRegistryKey(
-  IN ULONG RelativeTo,
-  IN PWSTR Path);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlClearAllBits(
-  IN PRTL_BITMAP BitMapHeader);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlClearBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG NumberToClear);
-
-NTSYSAPI
-SIZE_T
-NTAPI
-RtlCompareMemory(
-  IN CONST VOID *Source1,
-  IN CONST VOID *Source2,
-  IN SIZE_T Length);
-
-NTSYSAPI
-LONG
-NTAPI
-RtlCompareUnicodeString(
-  IN PCUNICODE_STRING String1,
-  IN PCUNICODE_STRING String2,
-  IN BOOLEAN CaseInSensitive);
-
-NTSYSAPI
-LONG
-NTAPI
-RtlCompareUnicodeStrings(
-  IN PCWCH String1,
-  IN SIZE_T String1Length,
-  IN PCWCH String2,
-  IN SIZE_T String2Length,
-  IN BOOLEAN CaseInSensitive);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlCopyUnicodeString(
-  IN OUT PUNICODE_STRING DestinationString,
-  IN PCUNICODE_STRING SourceString OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCreateRegistryKey(
-  IN ULONG RelativeTo,
-  IN PWSTR Path);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCreateSecurityDescriptor(
-  IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN ULONG Revision);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlDeleteRegistryValue(
-  IN ULONG RelativeTo,
-  IN PCWSTR Path,
-  IN PCWSTR ValueName);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlEqualUnicodeString(
-  IN CONST UNICODE_STRING *String1,
-  IN CONST UNICODE_STRING *String2,
-  IN BOOLEAN CaseInSensitive);
-
-#if !defined(_AMD64_) && !defined(_IA64_)
-NTSYSAPI
-LARGE_INTEGER
-NTAPI
-RtlExtendedIntegerMultiply(
-  IN LARGE_INTEGER Multiplicand,
-  IN LONG Multiplier);
-
-NTSYSAPI
-LARGE_INTEGER
-NTAPI
-RtlExtendedLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN ULONG Divisor,
-  OUT PULONG Remainder OPTIONAL);
-#endif
-
-#if defined(_X86_) || defined(_IA64_)
-NTSYSAPI
-LARGE_INTEGER
-NTAPI
-RtlExtendedMagicDivide(
-    IN LARGE_INTEGER Dividend,
-    IN LARGE_INTEGER MagicDivisor,
-    IN CCHAR  ShiftCount);
-#endif
-
-NTSYSAPI
-VOID
-NTAPI
-RtlFreeAnsiString(
-  IN PANSI_STRING AnsiString);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindClearBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindClearBitsAndSet(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindFirstRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  OUT PULONG StartingIndex);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindClearRuns(
-  IN PRTL_BITMAP BitMapHeader,
-  OUT PRTL_BITMAP_RUN RunArray,
-  IN ULONG SizeOfRunArray,
-  IN BOOLEAN LocateLongestRuns);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindLastBackwardRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG FromIndex,
-  OUT PULONG StartingRunIndex);
-
-NTSYSAPI
-CCHAR
-NTAPI
-RtlFindLeastSignificantBit(
-  IN ULONGLONG Set);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindLongestRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  OUT PULONG StartingIndex);
-
-NTSYSAPI
-CCHAR
-NTAPI
-RtlFindMostSignificantBit(
-  IN ULONGLONG Set);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindNextForwardRunClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG FromIndex,
-  OUT PULONG StartingRunIndex);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindSetBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlFindSetBitsAndClear(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG NumberToFind,
-  IN ULONG HintIndex);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlInitAnsiString(
-  IN OUT PANSI_STRING DestinationString,
-  IN PCSZ SourceString);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlInitializeBitMap(
-  IN PRTL_BITMAP BitMapHeader,
-  IN PULONG BitMapBuffer,
-  IN ULONG SizeOfBitMap);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlInitString(
-  IN OUT PSTRING DestinationString,
-  IN PCSZ SourceString);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlIntegerToUnicodeString(
-  IN ULONG Value,
-  IN ULONG Base OPTIONAL,
-  IN OUT PUNICODE_STRING String);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlInt64ToUnicodeString(
-  IN ULONGLONG Value,
-  IN ULONG Base OPTIONAL,
-  IN OUT PUNICODE_STRING String);
-
-#ifdef _WIN64
-#define RtlIntPtrToUnicodeString(Value, Base, String) \
-    RtlInt64ToUnicodeString(Value, Base, String)
-#else
-#define RtlIntPtrToUnicodeString(Value, Base, String) \
-    RtlIntegerToUnicodeString(Value, Base, String)
-#endif
-
-/* BOOLEAN
- * RtlIsZeroLuid(
- *     IN PLUID L1);
- */
-#define RtlIsZeroLuid(_L1) \
-    ((BOOLEAN) ((!(_L1)->LowPart) && (!(_L1)->HighPart)))
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlLengthSecurityDescriptor(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlNumberOfClearBits(
-  IN PRTL_BITMAP BitMapHeader);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlNumberOfSetBits(
-  IN PRTL_BITMAP BitMapHeader);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlQueryRegistryValues(
-  IN ULONG RelativeTo,
-  IN PCWSTR Path,
-  IN OUT PRTL_QUERY_REGISTRY_TABLE QueryTable,
-  IN PVOID Context OPTIONAL,
-  IN PVOID Environment OPTIONAL);
-
-#define SHORT_SIZE  (sizeof(USHORT))
-#define SHORT_MASK  (SHORT_SIZE - 1)
-#define LONG_SIZE (sizeof(LONG))
-#define LONGLONG_SIZE   (sizeof(LONGLONG))
-#define LONG_MASK (LONG_SIZE - 1)
-#define LONGLONG_MASK   (LONGLONG_SIZE - 1)
-#define LOWBYTE_MASK 0x00FF
-
-#define FIRSTBYTE(VALUE)  ((VALUE) & LOWBYTE_MASK)
-#define SECONDBYTE(VALUE) (((VALUE) >> 8) & LOWBYTE_MASK)
-#define THIRDBYTE(VALUE)  (((VALUE) >> 16) & LOWBYTE_MASK)
-#define FOURTHBYTE(VALUE) (((VALUE) >> 24) & LOWBYTE_MASK)
-
-NTSYSAPI
-VOID
-NTAPI
-RtlSetAllBits(
-  IN PRTL_BITMAP BitMapHeader);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlSetBits(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG StartingIndex,
-  IN ULONG NumberToSet);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlSetDaclSecurityDescriptor(
-  IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN BOOLEAN DaclPresent,
-  IN PACL Dacl OPTIONAL,
-  IN BOOLEAN DaclDefaulted OPTIONAL);
-
-#if defined(_AMD64_)
-
-/* VOID
- * RtlStoreUlong(
- *     IN PULONG Address,
- *     IN ULONG Value);
- */
-#define RtlStoreUlong(Address,Value) \
-    *(ULONG UNALIGNED *)(Address) = (Value)
-
-/* VOID
- * RtlStoreUlonglong(
- *     IN OUT PULONGLONG Address,
- *     ULONGLONG Value);
- */
-#define RtlStoreUlonglong(Address,Value) \
-    *(ULONGLONG UNALIGNED *)(Address) = (Value)
-
-/* VOID
- * RtlStoreUshort(
- *     IN PUSHORT Address,
- *     IN USHORT Value);
- */
-#define RtlStoreUshort(Address,Value) \
-    *(USHORT UNALIGNED *)(Address) = (Value)
-
-/* VOID
- * RtlRetrieveUshort(
- *     PUSHORT DestinationAddress,
- *    PUSHORT SourceAddress);
- */
-#define RtlRetrieveUshort(DestAddress,SrcAddress) \
-    *(USHORT UNALIGNED *)(DestAddress) = *(USHORT)(SrcAddress)
-
-/* VOID
- * RtlRetrieveUlong(
- *    PULONG DestinationAddress,
- *    PULONG SourceAddress);
- */
-#define RtlRetrieveUlong(DestAddress,SrcAddress) \
-    *(ULONG UNALIGNED *)(DestAddress) = *(PULONG)(SrcAddress)
-
-#else
-
-#define RtlStoreUlong(Address,Value)                      \
-    if ((ULONG_PTR)(Address) & LONG_MASK) { \
-        ((PUCHAR) (Address))[LONG_LEAST_SIGNIFICANT_BIT]    = (UCHAR)(FIRSTBYTE(Value)); \
-        ((PUCHAR) (Address))[LONG_3RD_MOST_SIGNIFICANT_BIT] = (UCHAR)(SECONDBYTE(Value)); \
-        ((PUCHAR) (Address))[LONG_2ND_MOST_SIGNIFICANT_BIT] = (UCHAR)(THIRDBYTE(Value)); \
-        ((PUCHAR) (Address))[LONG_MOST_SIGNIFICANT_BIT]     = (UCHAR)(FOURTHBYTE(Value)); \
-    } \
-    else { \
-        *((PULONG)(Address)) = (ULONG) (Value); \
-    }
-
-#define RtlStoreUlonglong(Address,Value) \
-    if ((ULONG_PTR)(Address) & LONGLONG_MASK) { \
-        RtlStoreUlong((ULONG_PTR)(Address), \
-                      (ULONGLONG)(Value) & 0xFFFFFFFF); \
-        RtlStoreUlong((ULONG_PTR)(Address)+sizeof(ULONG), \
-                      (ULONGLONG)(Value) >> 32); \
-    } else { \
-        *((PULONGLONG)(Address)) = (ULONGLONG)(Value); \
-    }
-
-#define RtlStoreUshort(Address,Value) \
-    if ((ULONG_PTR)(Address) & SHORT_MASK) { \
-        ((PUCHAR) (Address))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(Value)); \
-        ((PUCHAR) (Address))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(Value)); \
-    } \
-    else { \
-        *((PUSHORT) (Address)) = (USHORT)Value; \
-    }
-
-#define RtlRetrieveUshort(DestAddress,SrcAddress) \
-    if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
-    { \
-        ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
-        ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
-    } \
-    else \
-    { \
-        *((PUSHORT)(DestAddress))=*((PUSHORT)(SrcAddress)); \
-    }
-
-#define RtlRetrieveUlong(DestAddress,SrcAddress) \
-    if ((ULONG_PTR)(SrcAddress) & LONG_MASK) \
-    { \
-        ((PUCHAR)(DestAddress))[0]=((PUCHAR)(SrcAddress))[0]; \
-        ((PUCHAR)(DestAddress))[1]=((PUCHAR)(SrcAddress))[1]; \
-        ((PUCHAR)(DestAddress))[2]=((PUCHAR)(SrcAddress))[2]; \
-        ((PUCHAR)(DestAddress))[3]=((PUCHAR)(SrcAddress))[3]; \
-    } \
-    else \
-    { \
-        *((PULONG)(DestAddress))=*((PULONG)(SrcAddress)); \
-    }
-
-#endif /* defined(_AMD64_) */
-
-#ifdef _WIN64
-/* VOID
- * RtlStoreUlongPtr(
- *     IN OUT PULONG_PTR Address,
- *     IN ULONG_PTR Value);
- */
-#define RtlStoreUlongPtr(Address,Value) RtlStoreUlonglong(Address,Value)
-#else
-#define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value)
-#endif /* _WIN64 */
-
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlTimeFieldsToTime(
-  IN PTIME_FIELDS TimeFields,
-  IN PLARGE_INTEGER Time);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlTimeToTimeFields(
-  IN PLARGE_INTEGER Time,
-  IN PTIME_FIELDS TimeFields);
-
-NTSYSAPI
-ULONG
-FASTCALL
-RtlUlongByteSwap(
-  IN ULONG Source);
-
-NTSYSAPI
-ULONGLONG
-FASTCALL
-RtlUlonglongByteSwap(
-  IN ULONGLONG Source);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlUnicodeStringToAnsiString(
-  IN OUT PANSI_STRING DestinationString,
-  IN PCUNICODE_STRING SourceString,
-  IN BOOLEAN AllocateDestinationString);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlxUnicodeStringToAnsiSize(
-  IN PCUNICODE_STRING UnicodeString);
-
-#define RtlUnicodeStringToAnsiSize(String) (                  \
-    NLS_MB_CODE_PAGE_TAG ?                                    \
-    RtlxUnicodeStringToAnsiSize(String) :                     \
-    ((String)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
-)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlUnicodeStringToInteger(
-  IN PCUNICODE_STRING String,
-  IN ULONG Base OPTIONAL,
-  OUT PULONG Value);
-
-NTSYSAPI
-WCHAR
-NTAPI
-RtlUpcaseUnicodeChar(
-  IN WCHAR SourceCharacter);
-
-NTSYSAPI
-USHORT
-FASTCALL
-RtlUshortByteSwap(
-  IN USHORT Source);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlValidRelativeSecurityDescriptor(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptorInput,
-  IN ULONG SecurityDescriptorLength,
-  IN SECURITY_INFORMATION RequiredInformation);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlValidSecurityDescriptor(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlWriteRegistryValue(
-  IN ULONG RelativeTo,
-  IN PCWSTR Path,
-  IN PCWSTR ValueName,
-  IN ULONG ValueType,
-  IN PVOID ValueData,
-  IN ULONG ValueLength);
-
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-$if (_WDMDDK_)
-
-#if (NTDDI_VERSION >= NTDDI_WIN2KSP3)
-NTSYSAPI
-VOID
-FASTCALL
-RtlPrefetchMemoryNonTemporal(
-  IN PVOID Source,
-  IN SIZE_T Length);
-#endif
-
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-
-$if (_NTDDK_)
-
-NTSYSAPI
-VOID
-NTAPI
-RtlInitializeGenericTableAvl(
-  OUT PRTL_AVL_TABLE Table,
-  IN PRTL_AVL_COMPARE_ROUTINE CompareRoutine,
-  IN PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine,
-  IN PRTL_AVL_FREE_ROUTINE FreeRoutine,
-  IN PVOID TableContext OPTIONAL);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlInsertElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlInsertElementGenericTableFullAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  IN CLONG BufferSize,
-  OUT PBOOLEAN NewElement OPTIONAL,
-  IN PVOID NodeOrParent,
-  IN TABLE_SEARCH_RESULT SearchResult);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlDeleteElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlLookupElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlLookupElementGenericTableFullAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  OUT PVOID *NodeOrParent,
-  OUT TABLE_SEARCH_RESULT *SearchResult);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlEnumerateGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN BOOLEAN Restart);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlEnumerateGenericTableWithoutSplayingAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN OUT PVOID *RestartKey);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlLookupFirstMatchingElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN PVOID Buffer,
-  OUT PVOID *RestartKey);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlEnumerateGenericTableLikeADirectory(
-  IN PRTL_AVL_TABLE Table,
-  IN PRTL_AVL_MATCH_FUNCTION MatchFunction OPTIONAL,
-  IN PVOID MatchData OPTIONAL,
-  IN ULONG NextFlag,
-  IN OUT PVOID *RestartKey,
-  IN OUT PULONG DeleteCount,
-  IN PVOID Buffer);
-
-NTSYSAPI
-PVOID
-NTAPI
-RtlGetElementGenericTableAvl(
-  IN PRTL_AVL_TABLE Table,
-  IN ULONG I);
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlNumberGenericTableElementsAvl(
-  IN PRTL_AVL_TABLE Table);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlIsGenericTableEmptyAvl(
-  IN PRTL_AVL_TABLE Table);
-
-$endif
-
-$if (_WDMDDK_)
-
-NTSYSAPI
-VOID
-NTAPI
-RtlClearBit(
-  PRTL_BITMAP BitMapHeader,
-  ULONG BitNumber);
-
-NTSYSAPI
-WCHAR
-NTAPI
-RtlDowncaseUnicodeChar(
-  IN WCHAR SourceCharacter);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlSetBit(
-  PRTL_BITMAP BitMapHeader,
-  ULONG BitNumber);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlTestBit(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG BitNumber);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlHashUnicodeString(
-  IN CONST UNICODE_STRING *String,
-  IN BOOLEAN CaseInSensitive,
-  IN ULONG HashAlgorithm,
-  OUT PULONG HashValue);
-
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-$if (_NTDDK_)
-
-NTSYSAPI
-VOID
-NTAPI
-RtlRunOnceInitialize(
-  OUT PRTL_RUN_ONCE RunOnce);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlRunOnceExecuteOnce(
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN PRTL_RUN_ONCE_INIT_FN InitFn,
-  IN OUT PVOID Parameter OPTIONAL,
-  OUT PVOID *Context OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlRunOnceBeginInitialize(
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN ULONG Flags,
-  OUT PVOID *Context OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlRunOnceComplete(
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN ULONG Flags,
-  IN PVOID Context OPTIONAL);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlGetProductInfo(
-  IN ULONG OSMajorVersion,
-  IN ULONG OSMinorVersion,
-  IN ULONG SpMajorVersion,
-  IN ULONG SpMinorVersion,
-  OUT PULONG ReturnedProductType);
-
-$endif
-
-$if (_WDMDDK_)
-
-NTSYSAPI
-ULONG
-NTAPI
-RtlNumberOfSetBitsUlongPtr(
-  IN ULONG_PTR Target);
-
-NTSYSAPI
-ULONGLONG
-NTAPI
-RtlIoDecodeMemIoResource(
-  IN struct _IO_RESOURCE_DESCRIPTOR *Descriptor,
-  OUT PULONGLONG Alignment OPTIONAL,
-  OUT PULONGLONG MinimumAddress OPTIONAL,
-  OUT PULONGLONG MaximumAddress OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlIoEncodeMemIoResource(
-  IN struct _IO_RESOURCE_DESCRIPTOR *Descriptor,
-  IN UCHAR Type,
-  IN ULONGLONG Length,
-  IN ULONGLONG Alignment,
-  IN ULONGLONG MinimumAddress,
-  IN ULONGLONG MaximumAddress);
-
-NTSYSAPI
-ULONGLONG
-NTAPI
-RtlCmDecodeMemIoResource(
-  IN struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *Descriptor,
-  OUT PULONGLONG Start OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlFindClosestEncodableLength(
-  IN ULONGLONG SourceLength,
-  OUT PULONGLONG TargetLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlCmEncodeMemIoResource(
-  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
-  IN UCHAR Type,
-  IN ULONGLONG Length,
-  IN ULONGLONG Start);
-
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-$if (_NTDDK_)
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlCreateHashTable(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE *HashTable OPTIONAL,
-  IN ULONG Shift,
-  IN ULONG Flags);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlDeleteHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlInsertEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN PRTL_DYNAMIC_HASH_TABLE_ENTRY Entry,
-  IN ULONG_PTR Signature,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context OPTIONAL);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlRemoveEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN PRTL_DYNAMIC_HASH_TABLE_ENTRY Entry,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context OPTIONAL);
-
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
-NTAPI
-RtlLookupEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN ULONG_PTR Signature,
-  OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context OPTIONAL);
-
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
-NTAPI
-RtlGetNextEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlInitEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
-
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
-NTAPI
-RtlEnumerateEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlEndEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlInitWeakEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
-
-NTSYSAPI
-PRTL_DYNAMIC_HASH_TABLE_ENTRY
-NTAPI
-RtlWeaklyEnumerateEntryHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
-
-NTSYSAPI
-VOID
-NTAPI
-RtlEndWeakEnumerationHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable,
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlExpandHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable);
-
-NTSYSAPI
-BOOLEAN
-NTAPI
-RtlContractHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable);
-
-$endif
-
-$if (_WDMDDK_)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlUnicodeToUTF8N(
-  OUT PCHAR UTF8StringDestination,
-  IN ULONG UTF8StringMaxByteCount,
-  OUT PULONG UTF8StringActualByteCount,
-  IN PCWCH UnicodeStringSource,
-  IN ULONG UnicodeStringByteCount);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-RtlUTF8ToUnicodeN(
-  OUT PWSTR UnicodeStringDestination,
-  IN ULONG UnicodeStringMaxByteCount,
-  OUT PULONG UnicodeStringActualByteCount,
-  IN PCCH UTF8StringSource,
-  IN ULONG UTF8StringByteCount);
-
-NTSYSAPI
-ULONG64
-NTAPI
-RtlGetEnabledExtendedFeatures(
-  IN ULONG64 FeatureMask);
-
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-$if (_WDMDDK_)
-
-#if !defined(MIDL_PASS)
-/* inline funftions */
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlConvertLongToLargeInteger(
-  IN LONG SignedInteger)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = SignedInteger;
-  return ret;
-}
-
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlConvertUlongToLargeInteger(
-  IN ULONG UnsignedInteger)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = UnsignedInteger;
-  return ret;
-}
-
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerShiftLeft(
-  IN LARGE_INTEGER LargeInteger,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER Result;
-
-  Result.QuadPart = LargeInteger.QuadPart << ShiftCount;
-  return Result;
-}
-
-//DECLSPEC_DEPRECATED_DDK_WINXP
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerShiftRight(
-  IN LARGE_INTEGER LargeInteger,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER Result;
-
-  Result.QuadPart = (ULONG64)LargeInteger.QuadPart >> ShiftCount;
-  return Result;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-ULONG
-NTAPI_INLINE
-RtlEnlargedUnsignedDivide(
-  IN ULARGE_INTEGER Dividend,
-  IN ULONG Divisor,
-  IN OUT PULONG Remainder)
-{
-  if (Remainder)
-    *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
-  return (ULONG)(Dividend.QuadPart / Divisor);
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerNegate(
-  IN LARGE_INTEGER Subtrahend)
-{
-  LARGE_INTEGER Difference;
-
-  Difference.QuadPart = -Subtrahend.QuadPart;
-  return Difference;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerSubtract(
-  IN LARGE_INTEGER Minuend,
-  IN LARGE_INTEGER Subtrahend)
-{
-  LARGE_INTEGER Difference;
-
-  Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
-  return Difference;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlEnlargedUnsignedMultiply(
-  IN ULONG Multiplicand,
-  IN ULONG Multiplier)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier;
-  return ret;
-}
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlEnlargedIntegerMultiply(
-  IN LONG Multiplicand,
-  IN LONG Multiplier)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier;
-  return ret;
-}
-
-FORCEINLINE
-VOID
-RtlInitEmptyAnsiString(
-  OUT PANSI_STRING AnsiString,
-  IN PCHAR Buffer,
-  IN USHORT BufferSize)
-{
-  AnsiString->Length = 0;
-  AnsiString->MaximumLength = BufferSize;
-  AnsiString->Buffer = Buffer;
-}
-
-FORCEINLINE
-VOID
-RtlInitEmptyUnicodeString(
-  OUT PUNICODE_STRING UnicodeString,
-  IN PWSTR Buffer,
-  IN USHORT BufferSize)
-{
-  UnicodeString->Length = 0;
-  UnicodeString->MaximumLength = BufferSize;
-  UnicodeString->Buffer = Buffer;
-}
-$endif
-
-#if defined(_AMD64_) || defined(_IA64_)
-
-$if (_WDMDDK_)
-
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlExtendedIntegerMultiply(
-  IN LARGE_INTEGER Multiplicand,
-  IN LONG Multiplier)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = Multiplicand.QuadPart * Multiplier;
-  return ret;
-}
-
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlExtendedLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN ULONG Divisor,
-  OUT PULONG Remainder OPTIONAL)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = (ULONG64)Dividend.QuadPart / Divisor;
-  if (Remainder)
-    *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
-  return ret;
-}
-
-$endif
-
-$if (_NTDDK_)
-
-//DECLSPEC_DEPRECATED_DDK_WINXP
-FORCEINLINE
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN LARGE_INTEGER Divisor,
-  OUT PLARGE_INTEGER Remainder OPTIONAL)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = Dividend.QuadPart / Divisor.QuadPart;
-  if (Remainder)
-    Remainder->QuadPart = Dividend.QuadPart % Divisor.QuadPart;
-  return ret;
-}
-
-#else
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTSYSAPI
-LARGE_INTEGER
-NTAPI
-RtlLargeIntegerDivide(
-  IN LARGE_INTEGER Dividend,
-  IN LARGE_INTEGER Divisor,
-  OUT PLARGE_INTEGER Remainder OPTIONAL);
-#endif
-
-$endif
-
-#endif /* defined(_AMD64_) || defined(_IA64_) */
-
-$if (_WDMDDK_)
-
-#if defined(_AMD64_)
-
-#define MultiplyHigh __mulh
-#define UnsignedMultiplyHigh __umulh
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlExtendedMagicDivide(
-  IN LARGE_INTEGER Dividend,
-  IN LARGE_INTEGER MagicDivisor,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER ret;
-  ULONG64 ret64;
-  BOOLEAN Pos;
-  Pos = (Dividend.QuadPart >= 0);
-  ret64 = UnsignedMultiplyHigh(Pos ? Dividend.QuadPart : -Dividend.QuadPart,
-                               MagicDivisor.QuadPart);
-  ret64 >>= ShiftCount;
-  ret.QuadPart = Pos ? ret64 : -ret64;
-  return ret;
-}
-#endif
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerAdd(
-  IN LARGE_INTEGER Addend1,
-  IN LARGE_INTEGER Addend2)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
-  return ret;
-}
-
-/* VOID
- * RtlLargeIntegerAnd(
- *     IN OUT LARGE_INTEGER Result,
- *     IN LARGE_INTEGER Source,
- *     IN LARGE_INTEGER Mask);
- */
-#define RtlLargeIntegerAnd(Result, Source, Mask) \
-    Result.QuadPart = Source.QuadPart & Mask.QuadPart
-
-//DECLSPEC_DEPRECATED_DDK
-static __inline
-LARGE_INTEGER
-NTAPI_INLINE
-RtlLargeIntegerArithmeticShift(
-  IN LARGE_INTEGER LargeInteger,
-  IN CCHAR ShiftCount)
-{
-  LARGE_INTEGER ret;
-  ret.QuadPart = LargeInteger.QuadPart >> ShiftCount;
-  return ret;
-}
-
-/* BOOLEAN
- * RtlLargeIntegerEqualTo(
- *     IN LARGE_INTEGER  Operand1,
- *     IN LARGE_INTEGER  Operand2);
- */
-#define RtlLargeIntegerEqualTo(X,Y) \
-    (!(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)))
-
-FORCEINLINE
-PVOID
-RtlSecureZeroMemory(
-  OUT PVOID Pointer,
-  IN SIZE_T Size)
-{
-  volatile char* vptr = (volatile char*)Pointer;
-#if defined(_M_AMD64)
-  __stosb((PUCHAR)vptr, 0, Size);
-#else
-  char * endptr = (char *)vptr + Size;
-  while (vptr < endptr) {
-    *vptr = 0; vptr++;
-  }
-#endif
-   return Pointer;
-}
-
-#if defined(_M_AMD64)
-FORCEINLINE
-BOOLEAN
-RtlCheckBit(
-  IN PRTL_BITMAP BitMapHeader,
-  IN ULONG BitPosition)
-{
-  return BitTest64((LONG64 CONST*)BitMapHeader->Buffer, (LONG64)BitPosition);
-}
-#else
-#define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
-#endif /* defined(_M_AMD64) */
-
-#define RtlLargeIntegerGreaterThan(X,Y) (                              \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
-    ((X).HighPart > (Y).HighPart)                                      \
-)
-
-#define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) (                      \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
-    ((X).HighPart > (Y).HighPart)                                       \
-)
-
-#define RtlLargeIntegerNotEqualTo(X,Y) (                          \
-    (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \
-)
-
-#define RtlLargeIntegerLessThan(X,Y) (                                 \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
-    ((X).HighPart < (Y).HighPart)                                      \
-)
-
-#define RtlLargeIntegerLessThanOrEqualTo(X,Y) (                         \
-    (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
-    ((X).HighPart < (Y).HighPart)                                       \
-)
-
-#define RtlLargeIntegerGreaterThanZero(X) (       \
-    (((X).HighPart == 0) && ((X).LowPart > 0)) || \
-    ((X).HighPart > 0 )                           \
-)
-
-#define RtlLargeIntegerGreaterOrEqualToZero(X) ( (X).HighPart >= 0 )
-
-#define RtlLargeIntegerEqualToZero(X) ( !((X).LowPart | (X).HighPart) )
-
-#define RtlLargeIntegerNotEqualToZero(X) ( ((X).LowPart | (X).HighPart) )
-
-#define RtlLargeIntegerLessThanZero(X) ( ((X).HighPart < 0) )
-
-#define RtlLargeIntegerLessOrEqualToZero(X) ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )
-
-#endif /* !defined(MIDL_PASS) */
-
-/* Byte Swap Functions */
-#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037 || defined(__GNUC__))) || \
-    ((defined(_M_AMD64) || defined(_M_IA64)) \
-        && (_MSC_FULL_VER > 13009175 || defined(__GNUC__)))
-
-#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
-#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
-#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
-
-#endif
-
-#if DBG
-
-#define ASSERT(exp) \
-  (VOID)((!(exp)) ? \
-    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
-
-#define ASSERTMSG(msg, exp) \
-  (VOID)((!(exp)) ? \
-    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, msg ), FALSE : TRUE)
-
-#define RTL_SOFT_ASSERT(exp) \
-  (VOID)((!(exp)) ? \
-    DbgPrint("%s(%d): Soft assertion failed\n   Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
-
-#define RTL_SOFT_ASSERTMSG(msg, exp) \
-  (VOID)((!(exp)) ? \
-    DbgPrint("%s(%d): Soft assertion failed\n   Expression: %s\n   Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
-
-#define RTL_VERIFY(exp) ASSERT(exp)
-#define RTL_VERIFYMSG(msg, exp) ASSERTMSG(msg, exp)
-
-#define RTL_SOFT_VERIFY(exp) RTL_SOFT_ASSERT(exp)
-#define RTL_SOFT_VERIFYMSG(msg, exp) RTL_SOFT_ASSERTMSG(msg, exp)
-
-#if defined(_MSC_VER)
-
-#define NT_ASSERT(exp) \
-   ((!(exp)) ? \
-      (__annotation(L"Debug", L"AssertFail", L#exp), \
-       DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_ASSERTMSG(msg, exp) \
-   ((!(exp)) ? \
-      (__annotation(L"Debug", L"AssertFail", L##msg), \
-      DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_ASSERTMSGW(msg, exp) \
-    ((!(exp)) ? \
-        (__annotation(L"Debug", L"AssertFail", msg), \
-         DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_VERIFY     NT_ASSERT
-#define NT_VERIFYMSG  NT_ASSERTMSG
-#define NT_VERIFYMSGW NT_ASSERTMSGW
-
-#else
-
-/* GCC doesn't support __annotation (nor PDB) */
-#define NT_ASSERT(exp) \
-   (VOID)((!(exp)) ? (DbgRaiseAssertionFailure(), FALSE) : TRUE)
-
-#define NT_ASSERTMSG NT_ASSERT
-#define NT_ASSERTMSGW NT_ASSERT
-
-#endif
-
-#else /* !DBG */
-
-#define ASSERT(exp) ((VOID) 0)
-#define ASSERTMSG(msg, exp) ((VOID) 0)
-
-#define RTL_SOFT_ASSERT(exp) ((VOID) 0)
-#define RTL_SOFT_ASSERTMSG(msg, exp) ((VOID) 0)
-
-#define RTL_VERIFY(exp) ((exp) ? TRUE : FALSE)
-#define RTL_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
-
-#define RTL_SOFT_VERIFY(exp) ((exp) ? TRUE : FALSE)
-#define RTL_SOFT_VERIFYMSG(msg, exp) ((exp) ? TRUE : FALSE)
-
-#define NT_ASSERT(exp)          ((VOID)0)
-#define NT_ASSERTMSG(msg, exp)  ((VOID)0)
-#define NT_ASSERTMSGW(msg, exp) ((VOID)0)
-
-#define NT_VERIFY(_exp)           ((_exp) ? TRUE : FALSE)
-#define NT_VERIFYMSG(_msg, _exp ) ((_exp) ? TRUE : FALSE)
-#define NT_VERIFYMSGW(_msg, _exp) ((_exp) ? TRUE : FALSE)
-
-#endif /* DBG */
-
-#define InitializeListHead32(ListHead) (\
-    (ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead)))
-
-#if !defined(_WINBASE_)
-
-#if defined(_WIN64) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_NTOSP_))
-
-NTKERNELAPI
-VOID
-InitializeSListHead(
-  OUT PSLIST_HEADER SListHead);
-
-#else
-
-VOID
-FORCEINLINE
-InitializeSListHead(
-  OUT PSLIST_HEADER SListHead)
-{
-#if defined(_IA64_)
-  ULONG64 FeatureBits;
-#endif
-
-#if defined(_WIN64)
-  if (((ULONG_PTR)SListHead & 0xf) != 0) {
-    RtlRaiseStatus(STATUS_DATATYPE_MISALIGNMENT);
-  }
-#endif
-  RtlZeroMemory(SListHead, sizeof(SLIST_HEADER));
-#if defined(_IA64_)
-  FeatureBits = __getReg(CV_IA64_CPUID4);
-  if ((FeatureBits & KF_16BYTE_INSTR) != 0) {
-    SListHead->Header16.HeaderType = 1;
-    SListHead->Header16.Init = 1;
-  }
-#endif
-}
-
-#endif
-
-#if defined(_WIN64)
-
-#define InterlockedPopEntrySList(Head) \
-    ExpInterlockedPopEntrySList(Head)
-
-#define InterlockedPushEntrySList(Head, Entry) \
-    ExpInterlockedPushEntrySList(Head, Entry)
-
-#define InterlockedFlushSList(Head) \
-    ExpInterlockedFlushSList(Head)
-
-#define QueryDepthSList(Head) \
-    ExQueryDepthSList(Head)
-
-#else /* !defined(_WIN64) */
-
-NTKERNELAPI
-PSLIST_ENTRY
-FASTCALL
-InterlockedPopEntrySList(
-  IN PSLIST_HEADER ListHead);
-
-NTKERNELAPI
-PSLIST_ENTRY
-FASTCALL
-InterlockedPushEntrySList(
-  IN PSLIST_HEADER ListHead,
-  IN PSLIST_ENTRY ListEntry);
-
-#define InterlockedFlushSList(ListHead) \
-    ExInterlockedFlushSList(ListHead)
-
-#define QueryDepthSList(Head) \
-    ExQueryDepthSList(Head)
-
-#endif /* !defined(_WIN64) */
-
-#endif /* !defined(_WINBASE_) */
-
-#define RTL_CONTEXT_EX_OFFSET(ContextEx, Chunk) ((ContextEx)->Chunk.Offset)
-#define RTL_CONTEXT_EX_LENGTH(ContextEx, Chunk) ((ContextEx)->Chunk.Length)
-#define RTL_CONTEXT_EX_CHUNK(Base, Layout, Chunk)       \
-    ((PVOID)((PCHAR)(Base) + RTL_CONTEXT_EX_OFFSET(Layout, Chunk)))
-#define RTL_CONTEXT_OFFSET(Context, Chunk)              \
-    RTL_CONTEXT_EX_OFFSET((PCONTEXT_EX)(Context + 1), Chunk)
-#define RTL_CONTEXT_LENGTH(Context, Chunk)              \
-    RTL_CONTEXT_EX_LENGTH((PCONTEXT_EX)(Context + 1), Chunk)
-#define RTL_CONTEXT_CHUNK(Context, Chunk)               \
-    RTL_CONTEXT_EX_CHUNK((PCONTEXT_EX)(Context + 1),    \
-                         (PCONTEXT_EX)(Context + 1),    \
-                         Chunk)
-
-BOOLEAN
-RTLVERLIB_DDI(RtlIsNtDdiVersionAvailable)(
-  IN ULONG Version);
-
-BOOLEAN
-RTLVERLIB_DDI(RtlIsServicePackVersionInstalled)(
-  IN ULONG Version);
-
-#ifndef RtlIsNtDdiVersionAvailable
-#define RtlIsNtDdiVersionAvailable WdmlibRtlIsNtDdiVersionAvailable
-#endif
-
-#ifndef RtlIsServicePackVersionInstalled
-#define RtlIsServicePackVersionInstalled WdmlibRtlIsServicePackVersionInstalled
-#endif
-
-#define RtlInterlockedSetBits(Flags, Flag) \
-    InterlockedOr((PLONG)(Flags), Flag)
-
-#define RtlInterlockedAndBits(Flags, Flag) \
-    InterlockedAnd((PLONG)(Flags), Flag)
-
-#define RtlInterlockedClearBits(Flags, Flag) \
-    RtlInterlockedAndBits(Flags, ~(Flag))
-
-#define RtlInterlockedXorBits(Flags, Flag) \
-    InterlockedXor(Flags, Flag)
-
-#define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \
-    (VOID) RtlInterlockedSetBits(Flags, Flag)
-
-#define RtlInterlockedAndBitsDiscardReturn(Flags, Flag) \
-    (VOID) RtlInterlockedAndBits(Flags, Flag)
-
-#define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \
-    RtlInterlockedAndBitsDiscardReturn(Flags, ~(Flag))
-
-$endif
-
-$if (_NTDDK_)
-
-#ifdef RTL_USE_AVL_TABLES
-
-#define RtlInitializeGenericTable               RtlInitializeGenericTableAvl
-#define RtlInsertElementGenericTable            RtlInsertElementGenericTableAvl
-#define RtlInsertElementGenericTableFull        RtlInsertElementGenericTableFullAvl
-#define RtlDeleteElementGenericTable            RtlDeleteElementGenericTableAvl
-#define RtlLookupElementGenericTable            RtlLookupElementGenericTableAvl
-#define RtlLookupElementGenericTableFull        RtlLookupElementGenericTableFullAvl
-#define RtlEnumerateGenericTable                RtlEnumerateGenericTableAvl
-#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
-#define RtlGetElementGenericTable               RtlGetElementGenericTableAvl
-#define RtlNumberGenericTableElements           RtlNumberGenericTableElementsAvl
-#define RtlIsGenericTableEmpty                  RtlIsGenericTableEmptyAvl
-
-#endif /* RTL_USE_AVL_TABLES */
-
-#define RtlInitializeSplayLinks(Links) {    \
-  PRTL_SPLAY_LINKS _SplayLinks;            \
-  _SplayLinks = (PRTL_SPLAY_LINKS)(Links); \
-  _SplayLinks->Parent = _SplayLinks;   \
-  _SplayLinks->LeftChild = NULL;       \
-  _SplayLinks->RightChild = NULL;      \
-}
-
-#define RtlIsLeftChild(Links) \
-    (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
-
-#define RtlIsRightChild(Links) \
-    (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
-
-#define RtlRightChild(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->RightChild
-
-#define RtlIsRoot(Links) \
-    (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
-
-#define RtlLeftChild(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->LeftChild
-
-#define RtlParent(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->Parent
-
-#define RtlInsertAsLeftChild(ParentLinks,ChildLinks)    \
-    {                                                   \
-        PRTL_SPLAY_LINKS _SplayParent;                  \
-        PRTL_SPLAY_LINKS _SplayChild;                   \
-        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
-        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
-        _SplayParent->LeftChild = _SplayChild;          \
-        _SplayChild->Parent = _SplayParent;             \
-    }
-
-#define RtlInsertAsRightChild(ParentLinks,ChildLinks)   \
-    {                                                   \
-        PRTL_SPLAY_LINKS _SplayParent;                  \
-        PRTL_SPLAY_LINKS _SplayChild;                   \
-        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
-        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
-        _SplayParent->RightChild = _SplayChild;         \
-        _SplayChild->Parent = _SplayParent;             \
-    }
-
-#if !defined(MIDL_PASS)
-
-FORCEINLINE
-LUID
-NTAPI_INLINE
-RtlConvertLongToLuid(
-  IN LONG Val)
-{
-  LUID Luid;
-  LARGE_INTEGER Temp;
-
-  Temp.QuadPart = Val;
-  Luid.LowPart = Temp.u.LowPart;
-  Luid.HighPart = Temp.u.HighPart;
-  return Luid;
-}
-
-FORCEINLINE
-LUID
-NTAPI_INLINE
-RtlConvertUlongToLuid(
-  IN ULONG Val)
-{
-  LUID Luid;
-
-  Luid.LowPart = Val;
-  Luid.HighPart = 0;
-  return Luid;
-}
-
-#endif /* !defined(MIDL_PASS) */
-
-#if (defined(_M_AMD64) || defined(_M_IA64)) && !defined(_REALLY_GET_CALLERS_CALLER_)
-#define RtlGetCallersAddress(CallersAddress, CallersCaller) \
-    *CallersAddress = (PVOID)_ReturnAddress(); \
-    *CallersCaller = NULL;
-#else
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-NTSYSAPI
-VOID
-NTAPI
-RtlGetCallersAddress(
-  OUT PVOID *CallersAddress,
-  OUT PVOID *CallersCaller);
-#endif
-#endif
-
-#if !defined(MIDL_PASS) && !defined(SORTPP_PASS)
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-FORCEINLINE
-VOID
-NTAPI
-RtlInitHashTableContext(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
-{
-  Context->ChainHead = NULL;
-  Context->PrevLinkage = NULL;
-}
-
-FORCEINLINE
-VOID
-NTAPI
-RtlInitHashTableContextFromEnumerator(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context,
-  IN PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR Enumerator)
-{
-  Context->ChainHead = Enumerator->ChainHead;
-  Context->PrevLinkage = Enumerator->HashEntry.Linkage.Blink;
-}
-
-FORCEINLINE
-VOID
-NTAPI
-RtlReleaseHashTableContext(
-  IN OUT PRTL_DYNAMIC_HASH_TABLE_CONTEXT Context)
-{
-  UNREFERENCED_PARAMETER(Context);
-  return;
-}
-
-FORCEINLINE
-ULONG
-NTAPI
-RtlTotalBucketsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->TableSize;
-}
-
-FORCEINLINE
-ULONG
-NTAPI
-RtlNonEmptyBucketsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->NonEmptyBuckets;
-}
-
-FORCEINLINE
-ULONG
-NTAPI
-RtlEmptyBucketsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->TableSize - HashTable->NonEmptyBuckets;
-}
-
-FORCEINLINE
-ULONG
-NTAPI
-RtlTotalEntriesHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->NumEntries;
-}
-
-FORCEINLINE
-ULONG
-NTAPI
-RtlActiveEnumeratorsHashTable(
-  IN PRTL_DYNAMIC_HASH_TABLE HashTable)
-{
-  return HashTable->NumEnumerators;
-}
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#endif /* !defined(MIDL_PASS) && !defined(SORTPP_PASS) */
-
-$endif
diff --git a/reactos/include/xdk/rtltypes.h b/reactos/include/xdk/rtltypes.h
deleted file mode 100644 (file)
index ab74f70..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-/******************************************************************************
- *                           Runtime Library Types                            *
- ******************************************************************************/
-
-$if (_WDMDDK_)
-#define RTL_REGISTRY_ABSOLUTE             0
-#define RTL_REGISTRY_SERVICES             1
-#define RTL_REGISTRY_CONTROL              2
-#define RTL_REGISTRY_WINDOWS_NT           3
-#define RTL_REGISTRY_DEVICEMAP            4
-#define RTL_REGISTRY_USER                 5
-#define RTL_REGISTRY_MAXIMUM              6
-#define RTL_REGISTRY_HANDLE               0x40000000
-#define RTL_REGISTRY_OPTIONAL             0x80000000
-
-/* RTL_QUERY_REGISTRY_TABLE.Flags */
-#define RTL_QUERY_REGISTRY_SUBKEY         0x00000001
-#define RTL_QUERY_REGISTRY_TOPKEY         0x00000002
-#define RTL_QUERY_REGISTRY_REQUIRED       0x00000004
-#define RTL_QUERY_REGISTRY_NOVALUE        0x00000008
-#define RTL_QUERY_REGISTRY_NOEXPAND       0x00000010
-#define RTL_QUERY_REGISTRY_DIRECT         0x00000020
-#define RTL_QUERY_REGISTRY_DELETE         0x00000040
-
-#define HASH_STRING_ALGORITHM_DEFAULT     0
-#define HASH_STRING_ALGORITHM_X65599      1
-#define HASH_STRING_ALGORITHM_INVALID     0xffffffff
-
-typedef struct _RTL_BITMAP {
-  ULONG SizeOfBitMap;
-  PULONG Buffer;
-} RTL_BITMAP, *PRTL_BITMAP;
-
-typedef struct _RTL_BITMAP_RUN {
-  ULONG StartingIndex;
-  ULONG NumberOfBits;
-} RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
-
-typedef NTSTATUS
-(NTAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
-  IN PWSTR ValueName,
-  IN ULONG ValueType,
-  IN PVOID ValueData,
-  IN ULONG ValueLength,
-  IN PVOID Context,
-  IN PVOID EntryContext);
-
-typedef struct _RTL_QUERY_REGISTRY_TABLE {
-  PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
-  ULONG Flags;
-  PCWSTR Name;
-  PVOID EntryContext;
-  ULONG DefaultType;
-  PVOID DefaultData;
-  ULONG DefaultLength;
-} RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
-
-typedef struct _TIME_FIELDS {
-  CSHORT Year;
-  CSHORT Month;
-  CSHORT Day;
-  CSHORT Hour;
-  CSHORT Minute;
-  CSHORT Second;
-  CSHORT Milliseconds;
-  CSHORT Weekday;
-} TIME_FIELDS, *PTIME_FIELDS;
-
-/* Slist Header */
-#ifndef _SLIST_HEADER_
-#define _SLIST_HEADER_
-
-#if defined(_WIN64)
-
-typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
-  struct _SLIST_ENTRY *Next;
-} SLIST_ENTRY, *PSLIST_ENTRY;
-
-typedef struct _SLIST_ENTRY32 {
-  ULONG Next;
-} SLIST_ENTRY32, *PSLIST_ENTRY32;
-
-typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
-  struct {
-    ULONGLONG Alignment;
-    ULONGLONG Region;
-  } DUMMYSTRUCTNAME;
-  struct {
-    ULONGLONG Depth:16;
-    ULONGLONG Sequence:9;
-    ULONGLONG NextEntry:39;
-    ULONGLONG HeaderType:1;
-    ULONGLONG Init:1;
-    ULONGLONG Reserved:59;
-    ULONGLONG Region:3;
-  } Header8;
-  struct {
-    ULONGLONG Depth:16;
-    ULONGLONG Sequence:48;
-    ULONGLONG HeaderType:1;
-    ULONGLONG Init:1;
-    ULONGLONG Reserved:2;
-    ULONGLONG NextEntry:60;
-  } Header16;
-  struct {
-    ULONGLONG Depth:16;
-    ULONGLONG Sequence:48;
-    ULONGLONG HeaderType:1;
-    ULONGLONG Reserved:3;
-    ULONGLONG NextEntry:60;
-  } HeaderX64;
-} SLIST_HEADER, *PSLIST_HEADER;
-
-typedef union _SLIST_HEADER32 {
-  ULONGLONG Alignment;
-  struct {
-    SLIST_ENTRY32 Next;
-    USHORT Depth;
-    USHORT Sequence;
-  } DUMMYSTRUCTNAME;
-} SLIST_HEADER32, *PSLIST_HEADER32;
-
-#else
-
-#define SLIST_ENTRY SINGLE_LIST_ENTRY
-#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
-#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
-
-typedef SLIST_ENTRY SLIST_ENTRY32, *PSLIST_ENTRY32;
-
-typedef union _SLIST_HEADER {
-  ULONGLONG Alignment;
-  struct {
-    SLIST_ENTRY Next;
-    USHORT Depth;
-    USHORT Sequence;
-  } DUMMYSTRUCTNAME;
-} SLIST_HEADER, *PSLIST_HEADER;
-
-typedef SLIST_HEADER SLIST_HEADER32, *PSLIST_HEADER32;
-
-#endif /* defined(_WIN64) */
-
-#endif /* _SLIST_HEADER_ */
-
-/* MS definition is broken! */
-extern BOOLEAN NTSYSAPI NlsMbCodePageTag;
-extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag;
-#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
-#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
-
-#define SHORT_LEAST_SIGNIFICANT_BIT       0
-#define SHORT_MOST_SIGNIFICANT_BIT        1
-
-#define LONG_LEAST_SIGNIFICANT_BIT        0
-#define LONG_3RD_MOST_SIGNIFICANT_BIT     1
-#define LONG_2ND_MOST_SIGNIFICANT_BIT     2
-#define LONG_MOST_SIGNIFICANT_BIT         3
-
-#define RTLVERLIB_DDI(x) Wdmlib##x
-
-typedef BOOLEAN
-(*PFN_RTL_IS_NTDDI_VERSION_AVAILABLE)(
-  IN ULONG Version);
-
-typedef BOOLEAN
-(*PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(
-  IN ULONG Version);
-
-$endif
-
-$if (_NTDDK_)
-
-#ifndef _RTL_RUN_ONCE_DEF
-#define _RTL_RUN_ONCE_DEF
-
-#define RTL_RUN_ONCE_INIT {0}
-
-#define RTL_RUN_ONCE_CHECK_ONLY     0x00000001UL
-#define RTL_RUN_ONCE_ASYNC          0x00000002UL
-#define RTL_RUN_ONCE_INIT_FAILED    0x00000004UL
-
-#define RTL_RUN_ONCE_CTX_RESERVED_BITS 2
-
-#define RTL_HASH_ALLOCATED_HEADER            0x00000001
-
-#define RTL_HASH_RESERVED_SIGNATURE 0
-
-/* RtlVerifyVersionInfo() ComparisonType */
-
-#define VER_EQUAL                       1
-#define VER_GREATER                     2
-#define VER_GREATER_EQUAL               3
-#define VER_LESS                        4
-#define VER_LESS_EQUAL                  5
-#define VER_AND                         6
-#define VER_OR                          7
-
-#define VER_CONDITION_MASK              7
-#define VER_NUM_BITS_PER_CONDITION_MASK 3
-
-/* RtlVerifyVersionInfo() TypeMask */
-
-#define VER_MINORVERSION                  0x0000001
-#define VER_MAJORVERSION                  0x0000002
-#define VER_BUILDNUMBER                   0x0000004
-#define VER_PLATFORMID                    0x0000008
-#define VER_SERVICEPACKMINOR              0x0000010
-#define VER_SERVICEPACKMAJOR              0x0000020
-#define VER_SUITENAME                     0x0000040
-#define VER_PRODUCT_TYPE                  0x0000080
-
-#define VER_NT_WORKSTATION              0x0000001
-#define VER_NT_DOMAIN_CONTROLLER        0x0000002
-#define VER_NT_SERVER                   0x0000003
-
-#define VER_PLATFORM_WIN32s             0
-#define VER_PLATFORM_WIN32_WINDOWS      1
-#define VER_PLATFORM_WIN32_NT           2
-
-typedef union _RTL_RUN_ONCE {
-  PVOID Ptr;
-} RTL_RUN_ONCE, *PRTL_RUN_ONCE;
-
-typedef ULONG /* LOGICAL */
-(NTAPI *PRTL_RUN_ONCE_INIT_FN) (
-  IN OUT PRTL_RUN_ONCE RunOnce,
-  IN OUT PVOID Parameter OPTIONAL,
-  IN OUT PVOID *Context OPTIONAL);
-
-#endif /* _RTL_RUN_ONCE_DEF */
-
-typedef enum _TABLE_SEARCH_RESULT {
-  TableEmptyTree,
-  TableFoundNode,
-  TableInsertAsLeft,
-  TableInsertAsRight
-} TABLE_SEARCH_RESULT;
-
-typedef enum _RTL_GENERIC_COMPARE_RESULTS {
-  GenericLessThan,
-  GenericGreaterThan,
-  GenericEqual
-} RTL_GENERIC_COMPARE_RESULTS;
-
-// Forwarder
-struct _RTL_AVL_TABLE;
-
-typedef RTL_GENERIC_COMPARE_RESULTS
-(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN PVOID FirstStruct,
-  IN PVOID SecondStruct);
-
-typedef PVOID
-(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN CLONG ByteSize);
-
-typedef VOID
-(NTAPI *PRTL_AVL_FREE_ROUTINE) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN PVOID Buffer);
-
-typedef NTSTATUS
-(NTAPI *PRTL_AVL_MATCH_FUNCTION) (
-  IN struct _RTL_AVL_TABLE *Table,
-  IN PVOID UserData,
-  IN PVOID MatchData);
-
-typedef struct _RTL_BALANCED_LINKS {
-  struct _RTL_BALANCED_LINKS *Parent;
-  struct _RTL_BALANCED_LINKS *LeftChild;
-  struct _RTL_BALANCED_LINKS *RightChild;
-  CHAR Balance;
-  UCHAR Reserved[3];
-} RTL_BALANCED_LINKS, *PRTL_BALANCED_LINKS;
-
-typedef struct _RTL_AVL_TABLE {
-  RTL_BALANCED_LINKS BalancedRoot;
-  PVOID OrderedPointer;
-  ULONG WhichOrderedElement;
-  ULONG NumberGenericTableElements;
-  ULONG DepthOfTree;
-  PRTL_BALANCED_LINKS RestartKey;
-  ULONG DeleteCount;
-  PRTL_AVL_COMPARE_ROUTINE CompareRoutine;
-  PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
-  PRTL_AVL_FREE_ROUTINE FreeRoutine;
-  PVOID TableContext;
-} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
-
-#ifndef RTL_USE_AVL_TABLES
-
-struct _RTL_GENERIC_TABLE;
-
-typedef RTL_GENERIC_COMPARE_RESULTS
-(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
-  IN struct _RTL_GENERIC_TABLE *Table,
-  IN PVOID FirstStruct,
-  IN PVOID SecondStruct);
-
-typedef PVOID
-(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
-  IN struct _RTL_GENERIC_TABLE *Table,
-  IN CLONG ByteSize);
-
-typedef VOID
-(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
-  IN struct _RTL_GENERIC_TABLE *Table,
-  IN PVOID Buffer);
-
-typedef struct _RTL_SPLAY_LINKS {
-  struct _RTL_SPLAY_LINKS *Parent;
-  struct _RTL_SPLAY_LINKS *LeftChild;
-  struct _RTL_SPLAY_LINKS *RightChild;
-} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
-
-typedef struct _RTL_GENERIC_TABLE {
-  PRTL_SPLAY_LINKS TableRoot;
-  LIST_ENTRY InsertOrderList;
-  PLIST_ENTRY OrderedPointer;
-  ULONG WhichOrderedElement;
-  ULONG NumberGenericTableElements;
-  PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
-  PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
-  PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
-  PVOID TableContext;
-} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
-
-#endif /* !RTL_USE_AVL_TABLES */
-
-#ifdef RTL_USE_AVL_TABLES
-
-#undef PRTL_GENERIC_COMPARE_ROUTINE
-#undef RTL_GENERIC_COMPARE_ROUTINE
-#undef PRTL_GENERIC_ALLOCATE_ROUTINE
-#undef RTL_GENERIC_ALLOCATE_ROUTINE
-#undef PRTL_GENERIC_FREE_ROUTINE
-#undef RTL_GENERIC_FREE_ROUTINE
-#undef RTL_GENERIC_TABLE
-#undef PRTL_GENERIC_TABLE
-
-#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
-#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
-#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
-#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
-#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
-#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
-#define RTL_GENERIC_TABLE RTL_AVL_TABLE
-#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
-
-#endif /* RTL_USE_AVL_TABLES */
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE_ENTRY {
-  LIST_ENTRY Linkage;
-  ULONG_PTR Signature;
-} RTL_DYNAMIC_HASH_TABLE_ENTRY, *PRTL_DYNAMIC_HASH_TABLE_ENTRY;
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT {
-  PLIST_ENTRY ChainHead;
-  PLIST_ENTRY PrevLinkage;
-  ULONG_PTR Signature;
-} RTL_DYNAMIC_HASH_TABLE_CONTEXT, *PRTL_DYNAMIC_HASH_TABLE_CONTEXT;
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR {
-  RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry;
-  PLIST_ENTRY ChainHead;
-  ULONG BucketIndex;
-} RTL_DYNAMIC_HASH_TABLE_ENUMERATOR, *PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR;
-
-typedef struct _RTL_DYNAMIC_HASH_TABLE {
-  ULONG Flags;
-  ULONG Shift;
-  ULONG TableSize;
-  ULONG Pivot;
-  ULONG DivisorMask;
-  ULONG NumEntries;
-  ULONG NonEmptyBuckets;
-  ULONG NumEnumerators;
-  PVOID Directory;
-} RTL_DYNAMIC_HASH_TABLE, *PRTL_DYNAMIC_HASH_TABLE;
-
-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;
-
-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;
-
-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;
-
-#ifdef UNICODE
-typedef OSVERSIONINFOEXW OSVERSIONINFOEX;
-typedef POSVERSIONINFOEXW POSVERSIONINFOEX;
-typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX;
-typedef OSVERSIONINFOW OSVERSIONINFO;
-typedef POSVERSIONINFOW POSVERSIONINFO;
-typedef LPOSVERSIONINFOW LPOSVERSIONINFO;
-#else
-typedef OSVERSIONINFOEXA OSVERSIONINFOEX;
-typedef POSVERSIONINFOEXA POSVERSIONINFOEX;
-typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX;
-typedef OSVERSIONINFOA OSVERSIONINFO;
-typedef POSVERSIONINFOA POSVERSIONINFO;
-typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
-#endif /* UNICODE */
-
-#define HASH_ENTRY_KEY(x)    ((x)->Signature)
-
-$endif
diff --git a/reactos/include/xdk/sefuncs.h b/reactos/include/xdk/sefuncs.h
deleted file mode 100644 (file)
index 6c89220..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/******************************************************************************
- *                            Security Manager Functions                      *
- ******************************************************************************/
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-$if (_NTDDK_)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-SeSinglePrivilegeCheck(
-  IN LUID PrivilegeValue,
-  IN KPROCESSOR_MODE PreviousMode);
-$endif
-
-$if (_WDMDDK_)
-NTKERNELAPI
-BOOLEAN
-NTAPI
-SeAccessCheck(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
-  IN BOOLEAN SubjectContextLocked,
-  IN ACCESS_MASK DesiredAccess,
-  IN ACCESS_MASK PreviouslyGrantedAccess,
-  OUT PPRIVILEGE_SET *Privileges OPTIONAL,
-  IN PGENERIC_MAPPING GenericMapping,
-  IN KPROCESSOR_MODE AccessMode,
-  OUT PACCESS_MASK GrantedAccess,
-  OUT PNTSTATUS AccessStatus);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-SeAssignSecurity(
-  IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
-  IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
-  OUT PSECURITY_DESCRIPTOR *NewDescriptor,
-  IN BOOLEAN IsDirectoryObject,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
-  IN PGENERIC_MAPPING GenericMapping,
-  IN POOL_TYPE PoolType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-SeAssignSecurityEx(
-  IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
-  IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
-  OUT PSECURITY_DESCRIPTOR *NewDescriptor,
-  IN GUID *ObjectType OPTIONAL,
-  IN BOOLEAN IsDirectoryObject,
-  IN ULONG AutoInheritFlags,
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
-  IN PGENERIC_MAPPING GenericMapping,
-  IN POOL_TYPE PoolType);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-SeDeassignSecurity(
-  IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor);
-
-NTKERNELAPI
-BOOLEAN
-NTAPI
-SeValidSecurityDescriptor(
-  IN ULONG Length,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-NTKERNELAPI
-ULONG
-NTAPI
-SeObjectCreateSaclAccessBits(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeReleaseSubjectContext(
-  IN OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeUnlockSubjectContext(
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeCaptureSubjectContext(
-  OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
-
-NTKERNELAPI
-VOID
-NTAPI
-SeLockSubjectContext(
-  IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-$if (_WDMDDK_)
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-
-NTSTATUS
-NTAPI
-SeSetAuditParameter(
-  IN OUT PSE_ADT_PARAMETER_ARRAY AuditParameters,
-  IN SE_ADT_PARAMETER_TYPE Type,
-  IN ULONG Index,
-  IN PVOID Data);
-
-NTSTATUS
-NTAPI
-SeReportSecurityEvent(
-  IN ULONG Flags,
-  IN PUNICODE_STRING SourceName,
-  IN PSID UserSid OPTIONAL,
-  IN PSE_ADT_PARAMETER_ARRAY AuditParameters);
-
-#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTKERNELAPI
-ULONG
-NTAPI
-SeComputeAutoInheritByObjectType(
-  IN PVOID ObjectType,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL,
-  IN PSECURITY_DESCRIPTOR ParentSecurityDescriptor OPTIONAL);
-
-#ifdef SE_NTFS_WORLD_CACHE
-VOID
-NTAPI
-SeGetWorldRights(
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor,
-  IN PGENERIC_MAPPING GenericMapping,
-  OUT PACCESS_MASK GrantedAccess);
-#endif /* SE_NTFS_WORLD_CACHE */
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-$endif
diff --git a/reactos/include/xdk/setypes.h b/reactos/include/xdk/setypes.h
deleted file mode 100644 (file)
index 6892aee..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
-/******************************************************************************
- *                            Security Manager Types                          *
- ******************************************************************************/
-$if (_NTDDK_)
-#define SE_UNSOLICITED_INPUT_PRIVILEGE    6
-
-typedef enum _WELL_KNOWN_SID_TYPE {
-  WinNullSid = 0,
-  WinWorldSid = 1,
-  WinLocalSid = 2,
-  WinCreatorOwnerSid = 3,
-  WinCreatorGroupSid = 4,
-  WinCreatorOwnerServerSid = 5,
-  WinCreatorGroupServerSid = 6,
-  WinNtAuthoritySid = 7,
-  WinDialupSid = 8,
-  WinNetworkSid = 9,
-  WinBatchSid = 10,
-  WinInteractiveSid = 11,
-  WinServiceSid = 12,
-  WinAnonymousSid = 13,
-  WinProxySid = 14,
-  WinEnterpriseControllersSid = 15,
-  WinSelfSid = 16,
-  WinAuthenticatedUserSid = 17,
-  WinRestrictedCodeSid = 18,
-  WinTerminalServerSid = 19,
-  WinRemoteLogonIdSid = 20,
-  WinLogonIdsSid = 21,
-  WinLocalSystemSid = 22,
-  WinLocalServiceSid = 23,
-  WinNetworkServiceSid = 24,
-  WinBuiltinDomainSid = 25,
-  WinBuiltinAdministratorsSid = 26,
-  WinBuiltinUsersSid = 27,
-  WinBuiltinGuestsSid = 28,
-  WinBuiltinPowerUsersSid = 29,
-  WinBuiltinAccountOperatorsSid = 30,
-  WinBuiltinSystemOperatorsSid = 31,
-  WinBuiltinPrintOperatorsSid = 32,
-  WinBuiltinBackupOperatorsSid = 33,
-  WinBuiltinReplicatorSid = 34,
-  WinBuiltinPreWindows2000CompatibleAccessSid = 35,
-  WinBuiltinRemoteDesktopUsersSid = 36,
-  WinBuiltinNetworkConfigurationOperatorsSid = 37,
-  WinAccountAdministratorSid = 38,
-  WinAccountGuestSid = 39,
-  WinAccountKrbtgtSid = 40,
-  WinAccountDomainAdminsSid = 41,
-  WinAccountDomainUsersSid = 42,
-  WinAccountDomainGuestsSid = 43,
-  WinAccountComputersSid = 44,
-  WinAccountControllersSid = 45,
-  WinAccountCertAdminsSid = 46,
-  WinAccountSchemaAdminsSid = 47,
-  WinAccountEnterpriseAdminsSid = 48,
-  WinAccountPolicyAdminsSid = 49,
-  WinAccountRasAndIasServersSid = 50,
-  WinNTLMAuthenticationSid = 51,
-  WinDigestAuthenticationSid = 52,
-  WinSChannelAuthenticationSid = 53,
-  WinThisOrganizationSid = 54,
-  WinOtherOrganizationSid = 55,
-  WinBuiltinIncomingForestTrustBuildersSid = 56,
-  WinBuiltinPerfMonitoringUsersSid = 57,
-  WinBuiltinPerfLoggingUsersSid = 58,
-  WinBuiltinAuthorizationAccessSid = 59,
-  WinBuiltinTerminalServerLicenseServersSid = 60,
-  WinBuiltinDCOMUsersSid = 61,
-  WinBuiltinIUsersSid = 62,
-  WinIUserSid = 63,
-  WinBuiltinCryptoOperatorsSid = 64,
-  WinUntrustedLabelSid = 65,
-  WinLowLabelSid = 66,
-  WinMediumLabelSid = 67,
-  WinHighLabelSid = 68,
-  WinSystemLabelSid = 69,
-  WinWriteRestrictedCodeSid = 70,
-  WinCreatorOwnerRightsSid = 71,
-  WinCacheablePrincipalsGroupSid = 72,
-  WinNonCacheablePrincipalsGroupSid = 73,
-  WinEnterpriseReadonlyControllersSid = 74,
-  WinAccountReadonlyControllersSid = 75,
-  WinBuiltinEventLogReadersGroup = 76,
-  WinNewEnterpriseReadonlyControllersSid = 77,
-  WinBuiltinCertSvcDComAccessGroup = 78,
-  WinMediumPlusLabelSid = 79,
-  WinLocalLogonSid = 80,
-  WinConsoleLogonSid = 81,
-  WinThisOrganizationCertificateSid = 82,
-} WELL_KNOWN_SID_TYPE;
-$endif
-
-$if (_WDMDDK_)
-/* Simple types */
-typedef PVOID PSECURITY_DESCRIPTOR;
-typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION;
-typedef ULONG ACCESS_MASK, *PACCESS_MASK;
-typedef PVOID PACCESS_TOKEN;
-typedef PVOID PSID;
-
-#define DELETE                           0x00010000L
-#define READ_CONTROL                     0x00020000L
-#define WRITE_DAC                        0x00040000L
-#define WRITE_OWNER                      0x00080000L
-#define SYNCHRONIZE                      0x00100000L
-#define STANDARD_RIGHTS_REQUIRED         0x000F0000L
-#define STANDARD_RIGHTS_READ             READ_CONTROL
-#define STANDARD_RIGHTS_WRITE            READ_CONTROL
-#define STANDARD_RIGHTS_EXECUTE          READ_CONTROL
-#define STANDARD_RIGHTS_ALL              0x001F0000L
-#define SPECIFIC_RIGHTS_ALL              0x0000FFFFL
-#define ACCESS_SYSTEM_SECURITY           0x01000000L
-#define MAXIMUM_ALLOWED                  0x02000000L
-#define GENERIC_READ                     0x80000000L
-#define GENERIC_WRITE                    0x40000000L
-#define GENERIC_EXECUTE                  0x20000000L
-#define GENERIC_ALL                      0x10000000L
-
-typedef struct _GENERIC_MAPPING {
-  ACCESS_MASK GenericRead;
-  ACCESS_MASK GenericWrite;
-  ACCESS_MASK GenericExecute;
-  ACCESS_MASK GenericAll;
-} GENERIC_MAPPING, *PGENERIC_MAPPING;
-
-#define ACL_REVISION                      2
-#define ACL_REVISION_DS                   4
-
-#define ACL_REVISION1                     1
-#define ACL_REVISION2                     2
-#define ACL_REVISION3                     3
-#define ACL_REVISION4                     4
-#define MIN_ACL_REVISION                  ACL_REVISION2
-#define MAX_ACL_REVISION                  ACL_REVISION4
-
-typedef struct _ACL {
-  UCHAR AclRevision;
-  UCHAR Sbz1;
-  USHORT AclSize;
-  USHORT AceCount;
-  USHORT Sbz2;
-} ACL, *PACL;
-
-/* Current security descriptor revision value */
-#define SECURITY_DESCRIPTOR_REVISION     (1)
-#define SECURITY_DESCRIPTOR_REVISION1    (1)
-
-/* Privilege attributes */
-#define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L)
-#define SE_PRIVILEGE_ENABLED            (0x00000002L)
-#define SE_PRIVILEGE_REMOVED            (0X00000004L)
-#define SE_PRIVILEGE_USED_FOR_ACCESS    (0x80000000L)
-
-#define SE_PRIVILEGE_VALID_ATTRIBUTES   (SE_PRIVILEGE_ENABLED_BY_DEFAULT | \
-                                         SE_PRIVILEGE_ENABLED            | \
-                                         SE_PRIVILEGE_REMOVED            | \
-                                         SE_PRIVILEGE_USED_FOR_ACCESS)
-
-#include <pshpack4.h>
-typedef struct _LUID_AND_ATTRIBUTES {
-  LUID Luid;
-  ULONG Attributes;
-} LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
-#include <poppack.h>
-
-typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
-typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
-
-/* Privilege sets */
-#define PRIVILEGE_SET_ALL_NECESSARY (1)
-
-typedef struct _PRIVILEGE_SET {
-  ULONG PrivilegeCount;
-  ULONG Control;
-  LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
-} PRIVILEGE_SET,*PPRIVILEGE_SET;
-
-typedef enum _SECURITY_IMPERSONATION_LEVEL {
-  SecurityAnonymous,
-  SecurityIdentification,
-  SecurityImpersonation,
-  SecurityDelegation
-} SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL;
-
-#define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation
-#define SECURITY_MIN_IMPERSONATION_LEVEL SecurityAnonymous
-#define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation
-#define VALID_IMPERSONATION_LEVEL(Level) (((Level) >= SECURITY_MIN_IMPERSONATION_LEVEL) && ((Level) <= SECURITY_MAX_IMPERSONATION_LEVEL))
-
-#define SECURITY_DYNAMIC_TRACKING (TRUE)
-#define SECURITY_STATIC_TRACKING (FALSE)
-
-typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
-
-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;
-
-typedef struct _SE_IMPERSONATION_STATE {
-  PACCESS_TOKEN Token;
-  BOOLEAN CopyOnOpen;
-  BOOLEAN EffectiveOnly;
-  SECURITY_IMPERSONATION_LEVEL Level;
-} SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE;
-
-#define OWNER_SECURITY_INFORMATION       (0x00000001L)
-#define GROUP_SECURITY_INFORMATION       (0x00000002L)
-#define DACL_SECURITY_INFORMATION        (0x00000004L)
-#define SACL_SECURITY_INFORMATION        (0x00000008L)
-#define LABEL_SECURITY_INFORMATION       (0x00000010L)
-
-#define PROTECTED_DACL_SECURITY_INFORMATION     (0x80000000L)
-#define PROTECTED_SACL_SECURITY_INFORMATION     (0x40000000L)
-#define UNPROTECTED_DACL_SECURITY_INFORMATION   (0x20000000L)
-#define UNPROTECTED_SACL_SECURITY_INFORMATION   (0x10000000L)
-
-typedef enum _SECURITY_OPERATION_CODE {
-  SetSecurityDescriptor,
-  QuerySecurityDescriptor,
-  DeleteSecurityDescriptor,
-  AssignSecurityDescriptor
-} SECURITY_OPERATION_CODE, *PSECURITY_OPERATION_CODE;
-
-#define INITIAL_PRIVILEGE_COUNT           3
-
-typedef struct _INITIAL_PRIVILEGE_SET {
-  ULONG PrivilegeCount;
-  ULONG Control;
-  LUID_AND_ATTRIBUTES Privilege[INITIAL_PRIVILEGE_COUNT];
-} INITIAL_PRIVILEGE_SET, * PINITIAL_PRIVILEGE_SET;
-
-#define SE_MIN_WELL_KNOWN_PRIVILEGE         2
-#define SE_CREATE_TOKEN_PRIVILEGE           2
-#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE     3
-#define SE_LOCK_MEMORY_PRIVILEGE            4
-#define SE_INCREASE_QUOTA_PRIVILEGE         5
-#define SE_MACHINE_ACCOUNT_PRIVILEGE        6
-#define SE_TCB_PRIVILEGE                    7
-#define SE_SECURITY_PRIVILEGE               8
-#define SE_TAKE_OWNERSHIP_PRIVILEGE         9
-#define SE_LOAD_DRIVER_PRIVILEGE            10
-#define SE_SYSTEM_PROFILE_PRIVILEGE         11
-#define SE_SYSTEMTIME_PRIVILEGE             12
-#define SE_PROF_SINGLE_PROCESS_PRIVILEGE    13
-#define SE_INC_BASE_PRIORITY_PRIVILEGE      14
-#define SE_CREATE_PAGEFILE_PRIVILEGE        15
-#define SE_CREATE_PERMANENT_PRIVILEGE       16
-#define SE_BACKUP_PRIVILEGE                 17
-#define SE_RESTORE_PRIVILEGE                18
-#define SE_SHUTDOWN_PRIVILEGE               19
-#define SE_DEBUG_PRIVILEGE                  20
-#define SE_AUDIT_PRIVILEGE                  21
-#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE     22
-#define SE_CHANGE_NOTIFY_PRIVILEGE          23
-#define SE_REMOTE_SHUTDOWN_PRIVILEGE        24
-#define SE_UNDOCK_PRIVILEGE                 25
-#define SE_SYNC_AGENT_PRIVILEGE             26
-#define SE_ENABLE_DELEGATION_PRIVILEGE      27
-#define SE_MANAGE_VOLUME_PRIVILEGE          28
-#define SE_IMPERSONATE_PRIVILEGE            29
-#define SE_CREATE_GLOBAL_PRIVILEGE          30
-#define SE_TRUSTED_CREDMAN_ACCESS_PRIVILEGE 31
-#define SE_RELABEL_PRIVILEGE                32
-#define SE_INC_WORKING_SET_PRIVILEGE        33
-#define SE_TIME_ZONE_PRIVILEGE              34
-#define SE_CREATE_SYMBOLIC_LINK_PRIVILEGE   35
-#define SE_MAX_WELL_KNOWN_PRIVILEGE         SE_CREATE_SYMBOLIC_LINK_PRIVILEGE
-
-typedef struct _SECURITY_SUBJECT_CONTEXT {
-  PACCESS_TOKEN ClientToken;
-  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
-  PACCESS_TOKEN PrimaryToken;
-  PVOID ProcessAuditId;
-} SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
-
-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;
-
-typedef VOID
-(NTAPI *PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR)(
-  IN PVOID Vcb,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
-
-#ifndef _NTLSA_IFS_
-
-#ifndef _NTLSA_AUDIT_
-#define _NTLSA_AUDIT_
-
-#define SE_MAX_AUDIT_PARAMETERS 32
-#define SE_MAX_GENERIC_AUDIT_PARAMETERS 28
-
-#define SE_ADT_OBJECT_ONLY 0x1
-
-#define SE_ADT_PARAMETERS_SELF_RELATIVE    0x00000001
-#define SE_ADT_PARAMETERS_SEND_TO_LSA      0x00000002
-#define SE_ADT_PARAMETER_EXTENSIBLE_AUDIT  0x00000004
-#define SE_ADT_PARAMETER_GENERIC_AUDIT     0x00000008
-#define SE_ADT_PARAMETER_WRITE_SYNCHRONOUS 0x00000010
-
-#define LSAP_SE_ADT_PARAMETER_ARRAY_TRUE_SIZE(Parameters) \
-  ( sizeof(SE_ADT_PARAMETER_ARRAY) - sizeof(SE_ADT_PARAMETER_ARRAY_ENTRY) * \
-    (SE_MAX_AUDIT_PARAMETERS - Parameters->ParameterCount) )
-
-typedef enum _SE_ADT_PARAMETER_TYPE {
-  SeAdtParmTypeNone = 0,
-  SeAdtParmTypeString,
-  SeAdtParmTypeFileSpec,
-  SeAdtParmTypeUlong,
-  SeAdtParmTypeSid,
-  SeAdtParmTypeLogonId,
-  SeAdtParmTypeNoLogonId,
-  SeAdtParmTypeAccessMask,
-  SeAdtParmTypePrivs,
-  SeAdtParmTypeObjectTypes,
-  SeAdtParmTypeHexUlong,
-  SeAdtParmTypePtr,
-  SeAdtParmTypeTime,
-  SeAdtParmTypeGuid,
-  SeAdtParmTypeLuid,
-  SeAdtParmTypeHexInt64,
-  SeAdtParmTypeStringList,
-  SeAdtParmTypeSidList,
-  SeAdtParmTypeDuration,
-  SeAdtParmTypeUserAccountControl,
-  SeAdtParmTypeNoUac,
-  SeAdtParmTypeMessage,
-  SeAdtParmTypeDateTime,
-  SeAdtParmTypeSockAddr,
-  SeAdtParmTypeSD,
-  SeAdtParmTypeLogonHours,
-  SeAdtParmTypeLogonIdNoSid,
-  SeAdtParmTypeUlongNoConv,
-  SeAdtParmTypeSockAddrNoPort,
-  SeAdtParmTypeAccessReason
-} SE_ADT_PARAMETER_TYPE, *PSE_ADT_PARAMETER_TYPE;
-
-typedef struct _SE_ADT_OBJECT_TYPE {
-  GUID ObjectType;
-  USHORT Flags;
-  USHORT Level;
-  ACCESS_MASK AccessMask;
-} SE_ADT_OBJECT_TYPE, *PSE_ADT_OBJECT_TYPE;
-
-typedef struct _SE_ADT_PARAMETER_ARRAY_ENTRY {
-  SE_ADT_PARAMETER_TYPE Type;
-  ULONG Length;
-  ULONG_PTR Data[2];
-  PVOID Address;
-} SE_ADT_PARAMETER_ARRAY_ENTRY, *PSE_ADT_PARAMETER_ARRAY_ENTRY;
-
-typedef struct _SE_ADT_ACCESS_REASON {
-  ACCESS_MASK AccessMask;
-  ULONG AccessReasons[32];
-  ULONG ObjectTypeIndex;
-  ULONG AccessGranted;
-  PSECURITY_DESCRIPTOR SecurityDescriptor;
-} SE_ADT_ACCESS_REASON, *PSE_ADT_ACCESS_REASON;
-
-typedef struct _SE_ADT_PARAMETER_ARRAY {
-  ULONG CategoryId;
-  ULONG AuditId;
-  ULONG ParameterCount;
-  ULONG Length;
-  USHORT FlatSubCategoryId;
-  USHORT Type;
-  ULONG Flags;
-  SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[ SE_MAX_AUDIT_PARAMETERS ];
-} SE_ADT_PARAMETER_ARRAY, *PSE_ADT_PARAMETER_ARRAY;
-
-#endif /* !_NTLSA_AUDIT_ */
-#endif /* !_NTLSA_IFS_ */
-$endif
-
diff --git a/reactos/include/xdk/wdm.template.h b/reactos/include/xdk/wdm.template.h
deleted file mode 100644 (file)
index 1005bf1..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * wdm.h
- *
- * Windows NT WDM Driver Developer Kit
- *
- * This file is part of the ReactOS DDK package.
- *
- * Contributors:
- *   Amine Khaldi
- *   Timo Kreuzer (timo.kreuzer@reactos.org)
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-#pragma once
-
-#ifndef _WDMDDK_
-#define _WDMDDK_
-
-/* Included via ntddk.h? */
-#ifndef _NTDDK_
-#define _NTDDK_
-#define _WDM_INCLUDED_
-#define _DDK_DRIVER_
-#define NO_INTERLOCKED_INTRINSICS
-#endif /* _NTDDK_ */
-
-/* Dependencies */
-#define NT_INCLUDED
-#include <excpt.h>
-#include <ntdef.h>
-#include <ntstatus.h>
-#include <ntiologc.h>
-
-#ifndef GUID_DEFINED
-#include <guiddef.h>
-#endif
-
-#ifdef _MAC
-#ifndef _INC_STRING
-#include <string.h>
-#endif /* _INC_STRING */
-#else
-#include <string.h>
-#endif /* _MAC */
-
-#ifndef _KTMTYPES_
-typedef GUID UOW, *PUOW;
-#endif
-
-typedef GUID *PGUID;
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-#include <dpfilter.h>
-#endif
-
-#include "intrin.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(_NTHALDLL_) && !defined(_BLDR_)
-#define NTHALAPI DECLSPEC_IMPORT
-#else
-#define NTHALAPI
-#endif
-
-/* For ReactOS */
-#if !defined(_NTOSKRNL_) && !defined(_BLDR_)
-#define NTKERNELAPI DECLSPEC_IMPORT
-#else
-#define NTKERNELAPI
-#endif
-
-#if defined(_X86_) && !defined(_NTHAL_)
-#define _DECL_HAL_KE_IMPORT  DECLSPEC_IMPORT
-#elif defined(_X86_)
-#define _DECL_HAL_KE_IMPORT
-#else
-#define _DECL_HAL_KE_IMPORT NTKERNELAPI
-#endif
-
-#if defined(_WIN64)
-#define POINTER_ALIGNMENT DECLSPEC_ALIGN(8)
-#else
-#define POINTER_ALIGNMENT
-#endif
-
-/* Helper macro to enable gcc's extension.  */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
-#if defined(_MSC_VER)
-
-/* Disable some warnings */
-#pragma warning(disable:4115) /* Named type definition in parentheses */
-#pragma warning(disable:4201) /* Nameless unions and structs */
-#pragma warning(disable:4214) /* Bit fields of other types than int */
-#pragma warning(disable:4820) /* Padding added, due to alignemnet requirement */
-
-/* Indicate if #pragma alloc_text() is supported */
-#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)
-#define ALLOC_PRAGMA 1
-#endif
-
-/* Indicate if #pragma data_seg() is supported */
-#if defined(_M_IX86) || defined(_M_AMD64)
-#define ALLOC_DATA_PRAGMA 1
-#endif
-
-#endif
-
-/* Forward declarations */
-struct _IRP;
-struct _MDL;
-struct _KAPC;
-struct _KDPC;
-struct _FILE_OBJECT;
-struct _DMA_ADAPTER;
-struct _DEVICE_OBJECT;
-struct _DRIVER_OBJECT;
-struct _IO_STATUS_BLOCK;
-struct _DEVICE_DESCRIPTION;
-struct _SCATTER_GATHER_LIST;
-struct _DRIVE_LAYOUT_INFORMATION;
-struct _COMPRESSED_DATA_INFO;
-struct _IO_RESOURCE_DESCRIPTOR;
-
-/* Structures not exposed to drivers */
-typedef struct _OBJECT_TYPE *POBJECT_TYPE;
-typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
-typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
-typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
-typedef struct _EPROCESS *PEPROCESS;
-typedef struct _ETHREAD *PETHREAD;
-typedef struct _IO_TIMER *PIO_TIMER;
-typedef struct _KINTERRUPT *PKINTERRUPT;
-typedef struct _KPROCESS *PKPROCESS;
-typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
-typedef struct _CONTEXT *PCONTEXT;
-
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && ( defined(_NTDDK_) || defined(_NTDRIVER_) || defined(_NTOSP_))
-typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
-#elif defined(_WDM_INCLUDED_)
-typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
-#else
-typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; 
-#endif
-
-#ifndef DEFINE_GUIDEX
-#ifdef _MSC_VER
-#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
-#else
-#define DEFINE_GUIDEX(name) EXTERN_C const GUID name
-#endif
-#endif /* DEFINE_GUIDEX */
-
-#ifndef STATICGUIDOF
-#define STATICGUIDOF(guid) STATIC_##guid
-#endif
-
-/* GUID Comparison */
-#ifndef __IID_ALIGNED__
-#define __IID_ALIGNED__
-#ifdef __cplusplus
-inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
-{
-    return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) && 
-             (*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
-}
-#else
-#define IsEqualGUIDAligned(guid1, guid2) \
-           ( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
-             (*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
-#endif /* __cplusplus */
-#endif /* !__IID_ALIGNED__ */
-
-
-$define (_WDMDDK_)
-$include (interlocked.h)
-$include (rtltypes.h)
-$include (ketypes.h)
-$include (mmtypes.h)
-$include (extypes.h)
-$include (setypes.h)
-$include (potypes.h)
-$include (cmtypes.h)
-$include (iotypes.h)
-$include (obtypes.h)
-$include (pstypes.h)
-$include (wmitypes.h)
-
-#if defined(_M_IX86)
-$include(x86/ke.h)
-#elif defined(_M_AMD64)
-$include(amd64/ke.h)
-#elif defined(_M_IA64)
-$include(ia64/ke.h)
-#elif defined(_M_PPC)
-$include(ppc/ke.h)
-#elif defined(_M_MIPS)
-$include(mips/ke.h)
-#elif defined(_M_ARM)
-$include(arm/ke.h)
-#else
-#error Unknown Architecture
-#endif
-
-$include (rtlfuncs.h)
-$include (kefuncs.h)
-$include (mmfuncs.h)
-$include (sefuncs.h)
-$include (cmfuncs.h)
-$include (iofuncs.h)
-$include (pofuncs.h)
-$include (exfuncs.h)
-$include (obfuncs.h)
-$include (psfuncs.h)
-$include (wmifuncs.h)
-$include (kdfuncs.h)
-$include (halfuncs.h)
-$include (nttmapi.h)
-$include (zwfuncs.h)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_WDMDDK_ */
diff --git a/reactos/include/xdk/wmifuncs.h b/reactos/include/xdk/wmifuncs.h
deleted file mode 100644 (file)
index 6279a55..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/******************************************************************************
- *                          WMI Library Support Functions                     *
- ******************************************************************************/
-
-#ifdef RUN_WPP
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-NTSTATUS
-__cdecl
-WmiTraceMessage(
-  IN TRACEHANDLE LoggerHandle,
-  IN ULONG MessageFlags,
-  IN LPGUID MessageGuid,
-  IN USHORT MessageNumber,
-  IN ...);
-#endif
-#endif /* RUN_WPP */
-
- #if (NTDDI_VERSION >= NTDDI_WINXP)
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-WmiQueryTraceInformation(
-  IN TRACE_INFORMATION_CLASS TraceInformationClass,
-  OUT PVOID TraceInformation,
-  IN ULONG TraceInformationLength,
-  OUT PULONG RequiredLength OPTIONAL,
-  IN PVOID Buffer OPTIONAL);
-
-#if 0
-/* FIXME: Get va_list from where? */
-NTKERNELAPI
-NTSTATUS
-__cdecl
-WmiTraceMessageVa(
-  IN TRACEHANDLE LoggerHandle,
-  IN ULONG MessageFlags,
-  IN LPGUID MessageGuid,
-  IN USHORT MessageNumber,
-  IN va_list MessageArgList);
-#endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
-#ifndef TRACE_INFORMATION_CLASS_DEFINE
-
-#if (NTDDI_VERSION >= NTDDI_WINXP)
-NTKERNELAPI
-NTSTATUS
-NTAPI
-WmiQueryTraceInformation(
-  IN TRACE_INFORMATION_CLASS TraceInformationClass,
-  OUT PVOID TraceInformation,
-  IN ULONG TraceInformationLength,
-  OUT PULONG RequiredLength OPTIONAL,
-  IN PVOID Buffer OPTIONAL);
-#endif
-
-#define TRACE_INFORMATION_CLASS_DEFINE
-
-#endif /* TRACE_INFOPRMATION_CLASS_DEFINE */
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwRegister(
-  IN LPCGUID ProviderId,
-  IN PETWENABLECALLBACK EnableCallback OPTIONAL,
-  IN PVOID CallbackContext OPTIONAL,
-  OUT PREGHANDLE RegHandle);
-
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwUnregister(
-  IN REGHANDLE RegHandle);
-
-BOOLEAN
-NTKERNELAPI
-NTAPI
-EtwEventEnabled(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor);
-
-BOOLEAN
-NTKERNELAPI
-NTAPI
-EtwProviderEnabled(
-  IN REGHANDLE RegHandle,
-  IN UCHAR Level,
-  IN ULONGLONG Keyword);
-
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwActivityIdControl(
-  IN ULONG ControlCode,
-  IN OUT LPGUID ActivityId);
-
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwWrite(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR  UserData OPTIONAL);
-
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwWriteTransfer(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN LPCGUID RelatedActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
-
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwWriteString(
-  IN REGHANDLE RegHandle,
-  IN UCHAR Level,
-  IN ULONGLONG Keyword,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN PCWSTR String);
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-NTSTATUS
-NTKERNELAPI
-NTAPI
-EtwWriteEx(
-  IN REGHANDLE RegHandle,
-  IN PCEVENT_DESCRIPTOR EventDescriptor,
-  IN ULONG64 Filter,
-  IN ULONG Flags,
-  IN LPCGUID ActivityId OPTIONAL,
-  IN LPCGUID RelatedActivityId OPTIONAL,
-  IN ULONG UserDataCount,
-  IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
-#endif
-
-
-
diff --git a/reactos/include/xdk/wmitypes.h b/reactos/include/xdk/wmitypes.h
deleted file mode 100644 (file)
index c4fd0ba..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/******************************************************************************
- *                          WMI Library Support Types                         *
- ******************************************************************************/
-
-#ifdef RUN_WPP
-#include <evntrace.h>
-#include <stdarg.h>
-#endif
-
-#ifndef _TRACEHANDLE_DEFINED
-#define _TRACEHANDLE_DEFINED
-typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
-#endif
-
-#ifndef TRACE_INFORMATION_CLASS_DEFINE
-
-typedef struct _ETW_TRACE_SESSION_SETTINGS {
-  ULONG Version;
-  ULONG BufferSize;
-  ULONG MinimumBuffers;
-  ULONG MaximumBuffers;
-  ULONG LoggerMode;
-  ULONG FlushTimer;
-  ULONG FlushThreshold;
-  ULONG ClockType;
-} ETW_TRACE_SESSION_SETTINGS, *PETW_TRACE_SESSION_SETTINGS;
-
-typedef enum _TRACE_INFORMATION_CLASS {
-  TraceIdClass,
-  TraceHandleClass,
-  TraceEnableFlagsClass,
-  TraceEnableLevelClass,
-  GlobalLoggerHandleClass,
-  EventLoggerHandleClass,
-  AllLoggerHandlesClass,
-  TraceHandleByNameClass,
-  LoggerEventsLostClass,
-  TraceSessionSettingsClass,
-  LoggerEventsLoggedClass,
-  MaxTraceInformationClass
-} TRACE_INFORMATION_CLASS;
-
-#endif /* TRACE_INFORMATION_CLASS_DEFINE */
-
-#ifndef _ETW_KM_
-#define _ETW_KM_
-#endif
-
-#include <evntprov.h>
-
-typedef VOID
-(NTAPI *PETWENABLECALLBACK)(
-  IN LPCGUID SourceId,
-  IN ULONG ControlCode,
-  IN UCHAR Level,
-  IN ULONGLONG MatchAnyKeyword,
-  IN ULONGLONG MatchAllKeyword,
-  IN PEVENT_FILTER_DESCRIPTOR FilterData OPTIONAL,
-  IN OUT PVOID CallbackContext OPTIONAL);
-
-#define EVENT_WRITE_FLAG_NO_FAULTING             0x00000001
-
diff --git a/reactos/include/xdk/x86/ke.h b/reactos/include/xdk/x86/ke.h
deleted file mode 100644 (file)
index 19d4274..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-$if (_WDMDDK_)
-/** Kernel definitions for x86 **/
-
-/* Interrupt request levels */
-#define PASSIVE_LEVEL           0
-#define LOW_LEVEL               0
-#define APC_LEVEL               1
-#define DISPATCH_LEVEL          2
-#define CMCI_LEVEL              5
-#define PROFILE_LEVEL           27
-#define CLOCK1_LEVEL            28
-#define CLOCK2_LEVEL            28
-#define IPI_LEVEL               29
-#define POWER_LEVEL             30
-#define HIGH_LEVEL              31
-#define CLOCK_LEVEL             CLOCK2_LEVEL
-
-#define KIP0PCRADDRESS          0xffdff000
-#define KI_USER_SHARED_DATA     0xffdf0000
-#define SharedUserData          ((KUSER_SHARED_DATA * CONST)KI_USER_SHARED_DATA)
-
-#define PAGE_SIZE               0x1000
-#define PAGE_SHIFT              12L
-#define KeGetDcacheFillSize()   1L
-
-#define EFLAG_SIGN              0x8000
-#define EFLAG_ZERO              0x4000
-#define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
-
-#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-
-
-typedef struct _KFLOATING_SAVE {
-  ULONG ControlWord;
-  ULONG StatusWord;
-  ULONG ErrorOffset;
-  ULONG ErrorSelector;
-  ULONG DataOffset;
-  ULONG DataSelector;
-  ULONG Cr0NpxState;
-  ULONG Spare1;
-} KFLOATING_SAVE, *PKFLOATING_SAVE;
-
-extern NTKERNELAPI volatile KSYSTEM_TIME KeTickCount;
-
-#define YieldProcessor _mm_pause
-
-FORCEINLINE
-VOID
-KeMemoryBarrier(VOID)
-{
-  volatile LONG Barrier;
-#if defined(__GNUC__)
-  __asm__ __volatile__ ("xchg %%eax, %0" : : "m" (Barrier) : "%eax");
-#elif defined(_MSC_VER)
-  __asm xchg [Barrier], eax
-#endif
-}
-
-NTHALAPI
-KIRQL
-NTAPI
-KeGetCurrentIrql(VOID);
-
-NTHALAPI
-VOID
-FASTCALL
-KfLowerIrql(
-  IN KIRQL NewIrql);
-#define KeLowerIrql(a) KfLowerIrql(a)
-
-NTHALAPI
-KIRQL
-FASTCALL
-KfRaiseIrql(
-  IN KIRQL NewIrql);
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
-
-NTHALAPI
-KIRQL
-NTAPI
-KeRaiseIrqlToDpcLevel(VOID);
-
-NTHALAPI
-KIRQL
-NTAPI
-KeRaiseIrqlToSynchLevel(VOID);
-
-NTHALAPI
-KIRQL
-FASTCALL
-KfAcquireSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock);
-#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
-
-NTHALAPI
-VOID
-FASTCALL
-KfReleaseSpinLock(
-  IN OUT PKSPIN_LOCK SpinLock,
-  IN KIRQL NewIrql);
-#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b)
-
-NTKERNELAPI
-VOID
-FASTCALL
-KefAcquireSpinLockAtDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
-
-NTKERNELAPI
-VOID
-FASTCALL
-KefReleaseSpinLockFromDpcLevel(
-  IN OUT PKSPIN_LOCK SpinLock);
-#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
-
-NTSYSAPI
-PKTHREAD
-NTAPI
-KeGetCurrentThread(VOID);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeSaveFloatingPointState(
-  OUT PKFLOATING_SAVE FloatSave);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-KeRestoreFloatingPointState(
-  IN PKFLOATING_SAVE FloatSave);
-
-/* VOID
- * KeFlushIoBuffers(
- *   IN PMDL Mdl,
- *   IN BOOLEAN ReadOperation,
- *   IN BOOLEAN DmaOperation)
- */
-#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
-
-/* x86 and x64 performs a 0x2C interrupt */
-#define DbgRaiseAssertionFailure __int2c
-
-FORCEINLINE
-VOID
-_KeQueryTickCount(
-  OUT PLARGE_INTEGER CurrentCount)
-{
-  for (;;) {
-    CurrentCount->HighPart = KeTickCount.High1Time;
-    CurrentCount->LowPart = KeTickCount.LowPart;
-    if (CurrentCount->HighPart == KeTickCount.High2Time) break;
-    YieldProcessor();
-  }
-}
-#define KeQueryTickCount(CurrentCount) _KeQueryTickCount(CurrentCount)
-
-$endif /* _WDMDDK_ */
-$if (_NTDDK_)
-
-#define PAUSE_PROCESSOR YieldProcessor();
-
-#define KERNEL_STACK_SIZE                   12288
-#define KERNEL_LARGE_STACK_SIZE             61440
-#define KERNEL_LARGE_STACK_COMMIT           12288
-
-#define SIZE_OF_80387_REGISTERS   80
-
-#if !defined(RC_INVOKED)
-
-#define CONTEXT_i386               0x10000
-#define CONTEXT_i486               0x10000
-#define CONTEXT_CONTROL            (CONTEXT_i386|0x00000001L)
-#define CONTEXT_INTEGER            (CONTEXT_i386|0x00000002L)
-#define CONTEXT_SEGMENTS           (CONTEXT_i386|0x00000004L)
-#define CONTEXT_FLOATING_POINT     (CONTEXT_i386|0x00000008L)
-#define CONTEXT_DEBUG_REGISTERS    (CONTEXT_i386|0x00000010L)
-#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L)
-
-#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS)
-#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS |  \
-                     CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS |      \
-                     CONTEXT_EXTENDED_REGISTERS)
-
-#define CONTEXT_XSTATE          (CONTEXT_i386 | 0x00000040L)
-
-#endif /* !defined(RC_INVOKED) */
-
-typedef struct _FLOATING_SAVE_AREA {
-  ULONG ControlWord;
-  ULONG StatusWord;
-  ULONG TagWord;
-  ULONG ErrorOffset;
-  ULONG ErrorSelector;
-  ULONG DataOffset;
-  ULONG DataSelector;
-  UCHAR RegisterArea[SIZE_OF_80387_REGISTERS];
-  ULONG Cr0NpxState;
-} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
-
-#include "pshpack4.h"
-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[MAXIMUM_SUPPORTED_EXTENSION];
-} CONTEXT;
-#include "poppack.h"
-
-#define KeGetPcr()                      PCR
-
-#define PCR_MINOR_VERSION 1
-#define PCR_MAJOR_VERSION 1
-
-typedef struct _KPCR {
-  union {
-    NT_TIB NtTib;
-    struct {
-      struct _EXCEPTION_REGISTRATION_RECORD *Used_ExceptionList;
-      PVOID Used_StackBase;
-      PVOID Spare2;
-      PVOID TssCopy;
-      ULONG ContextSwitches;
-      KAFFINITY SetMemberCopy;
-      PVOID Used_Self;
-    };
-  };
-  struct _KPCR *SelfPcr;
-  struct _KPRCB *Prcb;
-  KIRQL Irql;
-  ULONG IRR;
-  ULONG IrrActive;
-  ULONG IDR;
-  PVOID KdVersionBlock;
-  struct _KIDTENTRY *IDT;
-  struct _KGDTENTRY *GDT;
-  struct _KTSS *TSS;
-  USHORT MajorVersion;
-  USHORT MinorVersion;
-  KAFFINITY SetMember;
-  ULONG StallScaleFactor;
-  UCHAR SpareUnused;
-  UCHAR Number;
-  UCHAR Spare0;
-  UCHAR SecondLevelCacheAssociativity;
-  ULONG VdmAlert;
-  ULONG KernelReserved[14];
-  ULONG SecondLevelCacheSize;
-  ULONG HalReserved[16];
-} KPCR, *PKPCR;
-
-FORCEINLINE
-ULONG
-KeGetCurrentProcessorNumber(VOID)
-{
-    return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number));
-}
-
-$endif /* _NTDDK_ */
-
-
-
-
diff --git a/reactos/include/xdk/x86/mm.h b/reactos/include/xdk/x86/mm.h
deleted file mode 100644 (file)
index d2cddd1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-$if (_NTDDK_)
-
-extern NTKERNELAPI PVOID MmHighestUserAddress;
-extern NTKERNELAPI PVOID MmSystemRangeStart;
-extern NTKERNELAPI ULONG MmUserProbeAddress;
-
-#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
-#define MM_SYSTEM_RANGE_START MmSystemRangeStart
-#if defined(_LOCAL_COPY_USER_PROBE_ADDRESS_)
-#define MM_USER_PROBE_ADDRESS _LOCAL_COPY_USER_PROBE_ADDRESS_
-extern ULONG _LOCAL_COPY_USER_PROBE_ADDRESS_;
-#else
-#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
-#endif
-#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
-#define MM_KSEG0_BASE       MM_SYSTEM_RANGE_START
-#define MM_SYSTEM_SPACE_END 0xFFFFFFFF
-#if !defined (_X86PAE_)
-#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0800000
-#else
-#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0C00000
-#endif
-
-$endif /* _NTDDK_ */
diff --git a/reactos/include/xdk/zwfuncs.h b/reactos/include/xdk/zwfuncs.h
deleted file mode 100644 (file)
index 3299df5..0000000
+++ /dev/null
@@ -1,820 +0,0 @@
-/******************************************************************************
- *                            ZwXxx Functions                                 *
- ******************************************************************************/
-
-$if (_WDMDDK_)
-
-/* Constants */
-#define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
-#define ZwCurrentProcess() NtCurrentProcess()
-#define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
-#define ZwCurrentThread() NtCurrentThread()
-
-$endif
-
-$if (_NTDDK_)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwAllocateLocallyUniqueId(
-  OUT PLUID Luid);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwTerminateProcess(
-  IN HANDLE ProcessHandle OPTIONAL,
-  IN NTSTATUS ExitStatus);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenProcess(
-  OUT PHANDLE ProcessHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN PCLIENT_ID ClientId OPTIONAL);
-
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
-
-$if (_NTDDK_)
-
-NTSTATUS
-NTAPI
-ZwCancelTimer(
-  IN HANDLE TimerHandle,
-  OUT PBOOLEAN CurrentState OPTIONAL);
-
-NTSTATUS
-NTAPI
-ZwCreateTimer(
-  OUT PHANDLE TimerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN TIMER_TYPE TimerType);
-
-NTSTATUS
-NTAPI
-ZwOpenTimer(
-  OUT PHANDLE TimerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetInformationThread(
-  IN HANDLE ThreadHandle,
-  IN THREADINFOCLASS ThreadInformationClass,
-  IN PVOID ThreadInformation,
-  IN ULONG ThreadInformationLength);
-
-NTSTATUS
-NTAPI
-ZwSetTimer(
-  IN HANDLE TimerHandle,
-  IN PLARGE_INTEGER DueTime,
-  IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL,
-  IN PVOID TimerContext OPTIONAL,
-  IN BOOLEAN ResumeTimer,
-  IN LONG Period OPTIONAL,
-  OUT PBOOLEAN PreviousState OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDisplayString(
-  IN PUNICODE_STRING String);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwPowerInformation(
-  IN POWER_INFORMATION_LEVEL PowerInformationLevel,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryVolumeInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID FsInformation,
-  IN ULONG Length,
-  IN FS_INFORMATION_CLASS FsInformationClass);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDeviceIoControlFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN ULONG IoControlCode,
-  IN PVOID InputBuffer OPTIONAL,
-  IN ULONG InputBufferLength,
-  OUT PVOID OutputBuffer OPTIONAL,
-  IN ULONG OutputBufferLength);
-
-$endif
-
-$if (_WDMDDK_)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwClose(
-  IN HANDLE Handle);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwCreateDirectoryObject(
-  OUT PHANDLE DirectoryHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwCreateFile(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PLARGE_INTEGER AllocationSize OPTIONAL,
-  IN ULONG FileAttributes,
-  IN ULONG ShareAccess,
-  IN ULONG CreateDisposition,
-  IN ULONG CreateOptions,
-  IN PVOID EaBuffer OPTIONAL,
-  IN ULONG EaLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwCreateKey(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN ULONG TitleIndex,
-  IN PUNICODE_STRING Class OPTIONAL,
-  IN ULONG CreateOptions,
-  OUT PULONG Disposition OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwCreateSection(
-  OUT PHANDLE SectionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PLARGE_INTEGER MaximumSize OPTIONAL,
-  IN ULONG SectionPageProtection,
-  IN ULONG AllocationAttributes,
-  IN HANDLE FileHandle OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDeleteKey(
-  IN HANDLE KeyHandle);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwDeleteValueKey(
-  IN HANDLE KeyHandle,
-  IN PUNICODE_STRING ValueName);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwEnumerateKey(
-  IN HANDLE KeyHandle,
-  IN ULONG Index,
-  IN KEY_INFORMATION_CLASS KeyInformationClass,
-  OUT PVOID KeyInformation OPTIONAL,
-  IN ULONG Length,
-  OUT PULONG ResultLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwEnumerateValueKey(
-  IN HANDLE KeyHandle,
-  IN ULONG Index,
-  IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
-  OUT PVOID KeyValueInformation OPTIONAL,
-  IN ULONG Length,
-  OUT PULONG ResultLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwFlushKey(
-  IN HANDLE KeyHandle);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwLoadDriver(
-  IN PUNICODE_STRING DriverServiceName);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwMakeTemporaryObject(
-  IN HANDLE Handle);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwMapViewOfSection(
-  IN HANDLE SectionHandle,
-  IN HANDLE ProcessHandle,
-  IN OUT PVOID *BaseAddress,
-  IN ULONG_PTR ZeroBits,
-  IN SIZE_T CommitSize,
-  IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
-  IN OUT PSIZE_T ViewSize,
-  IN SECTION_INHERIT InheritDisposition,
-  IN ULONG AllocationType,
-  IN ULONG Protect);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenFile(
-  OUT PHANDLE FileHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN ULONG ShareAccess,
-  IN ULONG OpenOptions);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenKey(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenSection(
-  OUT PHANDLE SectionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenSymbolicLinkObject(
-  OUT PHANDLE LinkHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID FileInformation,
-  IN ULONG Length,
-  IN FILE_INFORMATION_CLASS FileInformationClass);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryKey(
-  IN HANDLE KeyHandle,
-  IN KEY_INFORMATION_CLASS KeyInformationClass,
-  OUT PVOID KeyInformation OPTIONAL,
-  IN ULONG Length,
-  OUT PULONG ResultLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQuerySymbolicLinkObject(
-  IN HANDLE LinkHandle,
-  IN OUT PUNICODE_STRING LinkTarget,
-  OUT PULONG ReturnedLength OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryValueKey(
-  IN HANDLE KeyHandle,
-  IN PUNICODE_STRING ValueName,
-  IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
-  OUT PVOID KeyValueInformation OPTIONAL,
-  IN ULONG Length,
-  OUT PULONG ResultLength);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwReadFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID Buffer,
-  IN ULONG Length,
-  IN PLARGE_INTEGER ByteOffset OPTIONAL,
-  IN PULONG Key OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetInformationFile(
-  IN HANDLE FileHandle,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PVOID FileInformation,
-  IN ULONG Length,
-  IN FILE_INFORMATION_CLASS FileInformationClass);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetValueKey(
-  IN HANDLE KeyHandle,
-  IN PUNICODE_STRING ValueName,
-  IN ULONG TitleIndex OPTIONAL,
-  IN ULONG Type,
-  IN PVOID Data OPTIONAL,
-  IN ULONG DataSize);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwUnloadDriver(
-  IN PUNICODE_STRING DriverServiceName);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwUnmapViewOfSection(
-  IN HANDLE ProcessHandle,
-  IN PVOID BaseAddress OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwWriteFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN PVOID Buffer,
-  IN ULONG Length,
-  IN PLARGE_INTEGER ByteOffset OPTIONAL,
-  IN PULONG Key OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryFullAttributesFile(
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation);
-
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
-
-$if (_WDMDDK_)
-
-#if (NTDDI_VERSION >= NTDDI_WS03)
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwOpenEvent(
-  OUT PHANDLE EventHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes);
-#endif
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-
-NTSYSAPI
-NTSTATUS
-ZwCreateKeyTransacted(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN ULONG TitleIndex,
-  IN PUNICODE_STRING Class OPTIONAL,
-  IN ULONG CreateOptions,
-  IN HANDLE TransactionHandle,
-  OUT PULONG Disposition OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenKeyTransacted(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN HANDLE TransactionHandle);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwCreateTransactionManager(
-  OUT PHANDLE TmHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PUNICODE_STRING LogFileName OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG CommitStrength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwOpenTransactionManager(
-  OUT PHANDLE TmHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN PUNICODE_STRING LogFileName OPTIONAL,
-  IN LPGUID TmIdentity OPTIONAL,
-  IN ULONG OpenOptions OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwRollforwardTransactionManager(
-  IN HANDLE TransactionManagerHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwRecoverTransactionManager(
-  IN HANDLE TransactionManagerHandle);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwQueryInformationTransactionManager(
-  IN HANDLE TransactionManagerHandle,
-  IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
-  OUT PVOID TransactionManagerInformation,
-  IN ULONG TransactionManagerInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwSetInformationTransactionManager(
-  IN HANDLE TmHandle,
-  IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
-  IN PVOID TransactionManagerInformation,
-  IN ULONG TransactionManagerInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwEnumerateTransactionObject(
-  IN HANDLE RootObjectHandle OPTIONAL,
-  IN KTMOBJECT_TYPE QueryType,
-  IN OUT PKTMOBJECT_CURSOR ObjectCursor,
-  IN ULONG ObjectCursorLength,
-  OUT PULONG ReturnLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwCreateTransaction(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN LPGUID Uow OPTIONAL,
-  IN HANDLE TmHandle OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN ULONG IsolationLevel OPTIONAL,
-  IN ULONG IsolationFlags OPTIONAL,
-  IN PLARGE_INTEGER Timeout OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwOpenTransaction(
-  OUT PHANDLE TransactionHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN LPGUID Uow,
-  IN HANDLE TmHandle OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwQueryInformationTransaction(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  OUT PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength,
-  OUT PULONG ReturnLength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwSetInformationTransaction(
-  IN HANDLE TransactionHandle,
-  IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
-  IN PVOID TransactionInformation,
-  IN ULONG TransactionInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwCommitTransaction(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwRollbackTransaction(
-  IN HANDLE TransactionHandle,
-  IN BOOLEAN Wait);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwCreateResourceManager(
-  OUT PHANDLE ResourceManagerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE TmHandle,
-  IN LPGUID ResourceManagerGuid OPTIONAL,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN PUNICODE_STRING Description OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwOpenResourceManager(
-  OUT PHANDLE ResourceManagerHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE TmHandle,
-  IN LPGUID ResourceManagerGuid,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwRecoverResourceManager(
-  IN HANDLE ResourceManagerHandle);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwGetNotificationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  OUT PTRANSACTION_NOTIFICATION TransactionNotification,
-  IN ULONG NotificationLength,
-  IN PLARGE_INTEGER Timeout,
-  IN PULONG ReturnLength OPTIONAL,
-  IN ULONG Asynchronous,
-  IN ULONG_PTR AsynchronousContext OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwQueryInformationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
-  OUT PVOID ResourceManagerInformation,
-  IN ULONG ResourceManagerInformationLength,
-  IN PULONG ReturnLength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwSetInformationResourceManager(
-  IN HANDLE ResourceManagerHandle,
-  IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
-  IN PVOID ResourceManagerInformation,
-  IN ULONG ResourceManagerInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwCreateEnlistment(
-  OUT PHANDLE EnlistmentHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE ResourceManagerHandle,
-  IN HANDLE TransactionHandle,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-  IN ULONG CreateOptions OPTIONAL,
-  IN NOTIFICATION_MASK NotificationMask,
-  IN PVOID EnlistmentKey OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwOpenEnlistment(
-  OUT PHANDLE EnlistmentHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN HANDLE RmHandle,
-  IN LPGUID EnlistmentGuid,
-  IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwQueryInformationEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
-  OUT PVOID EnlistmentInformation,
-  IN ULONG EnlistmentInformationLength,
-  IN PULONG ReturnLength OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwSetInformationEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
-  IN PVOID EnlistmentInformation,
-  IN ULONG EnlistmentInformationLength);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwRecoverEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PVOID EnlistmentKey OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwPrePrepareEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwPrepareEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwCommitEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwRollbackEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwPrePrepareComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwPrepareComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwCommitComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwReadOnlyEnlistment(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwRollbackComplete(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-NTSYSCALLAPI
-NTSTATUS
-NTAPI
-ZwSinglePhaseReject(
-  IN HANDLE EnlistmentHandle,
-  IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-
-#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-$endif
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-
-$if (_NTDDK_)
-NTSTATUS
-NTAPI
-ZwSetTimerEx(
-  IN HANDLE TimerHandle,
-  IN TIMER_SET_INFORMATION_CLASS TimerSetInformationClass,
-  IN OUT PVOID TimerSetInformation,
-  IN ULONG TimerSetInformationLength);
-$endif
-
-$if (_WDMDDK_)
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenKeyEx(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN ULONG OpenOptions);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwOpenKeyTransactedEx(
-  OUT PHANDLE KeyHandle,
-  IN ACCESS_MASK DesiredAccess,
-  IN POBJECT_ATTRIBUTES ObjectAttributes,
-  IN ULONG OpenOptions,
-  IN HANDLE TransactionHandle);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwNotifyChangeMultipleKeys(
-  IN HANDLE MasterKeyHandle,
-  IN ULONG Count OPTIONAL,
-  IN OBJECT_ATTRIBUTES SubordinateObjects[] OPTIONAL,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  IN ULONG CompletionFilter,
-  IN BOOLEAN WatchTree,
-  OUT PVOID Buffer OPTIONAL,
-  IN ULONG BufferSize,
-  IN BOOLEAN Asynchronous);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwQueryMultipleValueKey(
-  IN HANDLE KeyHandle,
-  IN OUT PKEY_VALUE_ENTRY ValueEntries,
-  IN ULONG EntryCount,
-  OUT PVOID ValueBuffer,
-  IN OUT PULONG BufferLength,
-  OUT PULONG RequiredBufferLength OPTIONAL);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwRenameKey(
-  IN HANDLE KeyHandle,
-  IN PUNICODE_STRING NewName);
-
-NTSYSAPI
-NTSTATUS
-NTAPI
-ZwSetInformationKey(
-  IN HANDLE KeyHandle,
-  IN KEY_SET_INFORMATION_CLASS KeySetInformationClass,
-  IN PVOID KeySetInformation,
-  IN ULONG KeySetInformationLength);
-
-$endif
-
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
index 3b56d34..f1052ed 100644 (file)
@@ -19,6 +19,7 @@
 
 /* DDK/IFS/NDK Headers */
 #define _REALLY_GET_CALLERS_CALLER
 
 /* DDK/IFS/NDK Headers */
 #define _REALLY_GET_CALLERS_CALLER
+#define SINGLE_GROUP_LEGACY_API
 #include <excpt.h>
 #include <ntdef.h>
 #include <ntifs.h>
 #include <excpt.h>
 #include <ntdef.h>
 #include <ntifs.h>
index 8a9fd42..6a34924 100644 (file)
@@ -48,7 +48,7 @@ MemType[] =
     "LoaderXIPRom      "
 };
 
     "LoaderXIPRom      "
 };
 
-BOOLEAN Mm64BitPhysicalAddress = FALSE;
+PBOOLEAN Mm64BitPhysicalAddress = FALSE;
 ULONG MmReadClusterSize;
 //
 // 0 | 1 is on/off paging, 2 is undocumented
 ULONG MmReadClusterSize;
 //
 // 0 | 1 is on/off paging, 2 is undocumented
index 3bbdd8c..8dc8794 100644 (file)
@@ -2,9 +2,9 @@
 <!DOCTYPE group SYSTEM "../tools/rbuild/project.dtd">
 <group xmlns:xi="http://www.w3.org/2001/XInclude">
        <if property="ARCH" value="i386">
 <!DOCTYPE group SYSTEM "../tools/rbuild/project.dtd">
 <group xmlns:xi="http://www.w3.org/2001/XInclude">
        <if property="ARCH" value="i386">
-<directory name="ntvdm">
-       <xi:include href="ntvdm/ntvdm.rbuild" />
-</directory>
+               <directory name="ntvdm">
+                       <xi:include href="ntvdm/ntvdm.rbuild" />
+               </directory>
        </if>
 <directory name="win32">
        <xi:include href="win32/win32.rbuild" />
        </if>
 <directory name="win32">
        <xi:include href="win32/win32.rbuild" />
index 4bbbeb9..3eae2ac 100644 (file)
 #define _NO_COM
 
 /* DDK/NDK/SDK Headers */
 #define _NO_COM
 
 /* DDK/NDK/SDK Headers */
-#include <ntddk.h>
-#include <ntddmou.h>
-#include <ntifs.h>
-#include <tvout.h>
-#include <ntndk.h>
+#include <ddk/ntddk.h>
+#include <ddk/ntddmou.h>
+#include <ddk/ntifs.h>
+#include <ddk/tvout.h>
+#include <ndk/ntndk.h>
 
 /* Win32 Headers */
 /* FIXME: Defines in winbase.h that we need... */
 
 /* Win32 Headers */
 /* FIXME: Defines in winbase.h that we need... */