- Remove duplicate definition of RTL_RANGE_LIST_SHARED_OK and
[reactos.git] / reactos / w32api / include / ddk / winddk.h
index 2625c81..8e82e7c 100644 (file)
@@ -31,8 +31,6 @@
 extern "C" {
 #endif
 
-#pragma pack(push,4)
-
 /*
 ** Definitions specific to this Device Driver Kit
 */
@@ -180,6 +178,9 @@ typedef struct _DRIVE_LAYOUT_INFORMATION_EX *PDRIVE_LAYOUT_INFORMATION_EX;
 #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
@@ -739,7 +740,6 @@ typedef VOID DDKAPI
   IN PVOID Context);
 
 
-
 /*
 ** System structures
 */
@@ -869,6 +869,13 @@ typedef struct _KDPC {
   PULONG_PTR  Lock;
 } KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;
 
+typedef struct _KDPC_DATA {
+  LIST_ENTRY  DpcListHead;
+  ULONG  DpcLock;
+  ULONG  DpcQueueDepth;
+  ULONG  DpcCount;
+} KDPC_DATA, *PKDPC_DATA;
+
 typedef struct _WAIT_CONTEXT_BLOCK {
   KDEVICE_QUEUE_ENTRY  WaitQueueEntry;
   struct _DRIVER_CONTROL  *DeviceRoutine;
@@ -1094,6 +1101,7 @@ typedef struct _EISA_MEMORY_TYPE {
   UCHAR  MoreEntries : 1;
 } EISA_MEMORY_TYPE, *PEISA_MEMORY_TYPE;
 
+#include <pshpack1.h>
 typedef struct _EISA_MEMORY_CONFIGURATION {
   EISA_MEMORY_TYPE  ConfigurationByte;
   UCHAR  DataSize;
@@ -1101,6 +1109,7 @@ typedef struct _EISA_MEMORY_CONFIGURATION {
   UCHAR  AddressHighByte;
   USHORT  MemorySize;
 } EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION;
+#include <poppack.h>
 
 typedef struct _EISA_IRQ_DESCRIPTOR {
   UCHAR  Interrupt : 4;
@@ -1134,6 +1143,7 @@ typedef struct _EISA_DMA_CONFIGURATION {
   DMA_CONFIGURATION_BYTE1  ConfigurationByte1;
 } EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION;
 
+#include <pshpack1.h>
 typedef struct _EISA_PORT_DESCRIPTOR {
   UCHAR  NumberPorts : 5;
   UCHAR  Reserved : 1;
@@ -1145,6 +1155,7 @@ typedef struct _EISA_PORT_CONFIGURATION {
   EISA_PORT_DESCRIPTOR  Configuration;
   USHORT  PortAddress;
 } EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION;
+#include <poppack.h>
 
 typedef struct _CM_EISA_FUNCTION_INFORMATION {
   ULONG  CompressedId;
@@ -1243,6 +1254,7 @@ typedef struct _PNP_BUS_INFORMATION {
   ULONG  BusNumber;
 } PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION;
 
+#include <pshpack1.h>
 typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
   UCHAR Type;
   UCHAR ShareDisposition;
@@ -1373,6 +1385,7 @@ typedef struct _CM_INT13_DRIVE_PARAMETER {
   USHORT  MaxHeads;
   USHORT  NumberDrives;
 } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER;
+#include <poppack.h>
 
 typedef struct _CM_KEYBOARD_DEVICE_DATA {
   USHORT  Version;
@@ -1711,8 +1724,7 @@ typedef struct _DEVICE_OBJECT {
   USHORT  Spare1;
   struct _DEVOBJ_EXTENSION  *DeviceObjectExtension;
   PVOID  Reserved;
-} DEVICE_OBJECT;
-typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
+} DEVICE_OBJECT, *PDEVICE_OBJECT;
 
 typedef enum _DEVICE_RELATION_TYPE {
   BusRelations,
@@ -1909,6 +1921,150 @@ typedef struct _DMA_ADAPTER {
   PDMA_OPERATIONS  DmaOperations;
 } DMA_ADAPTER;
 
+
+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;
+
+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_PARAMETERS {
+  union {
+    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;
+
+#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
+(DDKAPI *PARBITER_HANDLER)(
+  IN 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
+(DDKAPI *PTRANSLATE_RESOURCE_HANDLER)(
+  IN PVOID  Context,
+  IN PCM_PARTIAL_RESOURCE_DESCRIPTOR  Source,
+  IN RESOURCE_TRANSLATION_DIRECTION  Direction,
+  IN ULONG  AlternativesCount,
+  IN IO_RESOURCE_DESCRIPTOR  Alternatives[],
+  IN PDEVICE_OBJECT  PhysicalDeviceObject,
+  OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR  Target);
+
+typedef NTSTATUS
+(DDKAPI *PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER)(
+  IN PVOID  Context,
+  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 enum _FILE_INFORMATION_CLASS {
   FileDirectoryInformation = 1,
   FileFullDirectoryInformation,
@@ -1966,7 +2122,7 @@ typedef struct _FILE_NAME_INFORMATION {
   WCHAR  FileName[1];                                      
 } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;           
 
-typedef struct FILE_BASIC_INFORMATION {
+typedef struct _FILE_BASIC_INFORMATION {
   LARGE_INTEGER  CreationTime;
   LARGE_INTEGER  LastAccessTime;
   LARGE_INTEGER  LastWriteTime;
@@ -1998,7 +2154,7 @@ typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
 } FILE_ATTRIBUTE_TAG_INFORMATION, *PFILE_ATTRIBUTE_TAG_INFORMATION;
 
 typedef struct _FILE_DISPOSITION_INFORMATION {                  
-  BOOLEAN  DoDeleteFile;                                         
+  BOOLEAN  DeleteFile;                                         
 } FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION; 
                                                                 
 typedef struct _FILE_END_OF_FILE_INFORMATION {                  
@@ -2161,7 +2317,7 @@ typedef BOOLEAN DDKAPI
 typedef BOOLEAN DDKAPI
 (*PFAST_IO_UNLOCK_ALL_BY_KEY)(
   IN struct _FILE_OBJECT  *FileObject,
-  PVOID  ProcessId,
+  PEPROCESS  ProcessId,
   ULONG  Key,
   OUT PIO_STATUS_BLOCK  IoStatus,
   IN struct _DEVICE_OBJECT  *DeviceObject);
@@ -2442,6 +2598,7 @@ typedef struct _SECURITY_SUBJECT_CONTEXT {
   PVOID  ProcessAuditId;
 } SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
 
+#include <pshpack4.h>
 typedef struct _ACCESS_STATE {
   LUID  OperationID;
   BOOLEAN  SecurityEvaluated;
@@ -2464,6 +2621,7 @@ typedef struct _ACCESS_STATE {
   UNICODE_STRING  ObjectName;
   UNICODE_STRING  ObjectTypeName;
 } ACCESS_STATE, *PACCESS_STATE;
+#include <poppack.h>
 
 typedef struct _IO_SECURITY_CONTEXT {
   PSECURITY_QUALITY_OF_SERVICE  SecurityQos;
@@ -2522,6 +2680,7 @@ typedef struct _IO_CSQ {
   PVOID  ReservePointer;
 } IO_CSQ, *PIO_CSQ;
 
+#include <pshpack4.h>
 typedef struct _IO_STACK_LOCATION {
   UCHAR  MajorFunction;
   UCHAR  MinorFunction;
@@ -2662,6 +2821,7 @@ typedef struct _IO_STACK_LOCATION {
   PIO_COMPLETION_ROUTINE  CompletionRoutine;
   PVOID  Context;
 } IO_STACK_LOCATION, *PIO_STACK_LOCATION;
+#include <poppack.h>
 
 /* IO_STACK_LOCATION.Control */
 
@@ -2802,47 +2962,47 @@ typedef struct _PCI_COMMON_CONFIG {
       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;
+    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;
   UCHAR  DeviceSpecific[192];
 } PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
@@ -3098,6 +3258,11 @@ typedef struct _PAGED_LOOKASIDE_LIST {
   FAST_MUTEX  Obsoleted;
 } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
 
+typedef struct _PP_LOOKASIDE_LIST {
+   struct _GENERAL_LOOKASIDE *P;
+   struct _GENERAL_LOOKASIDE *L;
+} PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
+
 typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
 
 typedef VOID DDKAPI (*PCALLBACK_FUNCTION)(
@@ -3617,9 +3782,6 @@ typedef struct _DRIVER_VERIFIER_THUNK_PAIRS {
 #define RTL_RANGE_LIST_SHARED_OK          0x00000001
 #define RTL_RANGE_LIST_NULL_CONFLICT_OK   0x00000002
 
-#define RTL_RANGE_LIST_SHARED_OK          0x00000001
-#define RTL_RANGE_LIST_NULL_CONFLICT_OK   0x00000002
-
 #define RTL_RANGE_LIST_MERGE_IF_CONFLICT  RTL_RANGE_LIST_ADD_IF_CONFLICT
 
 typedef struct _RTL_RANGE {
@@ -3649,7 +3811,7 @@ typedef struct _RANGE_LIST_ITERATOR {
 } RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
 
 typedef BOOLEAN
-(*PRTL_CONFLICT_RANGE_CALLBACK)(
+(DDKAPI *PRTL_CONFLICT_RANGE_CALLBACK)(
   IN PVOID  Context,
   IN PRTL_RANGE  Range);
 
@@ -3720,31 +3882,31 @@ typedef struct _KPCR_TIB {
     DWORD  Version;             /* 10 */
   } DUMMYUNIONNAME;
   PVOID  ArbitraryUserPointer;  /* 14 */
-} KPCR_TIB, *PKPCR_TIB;         /* 18 */
+  struct _NT_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;          /* 18 */
-  struct _KPRCB  *PCRCB;        /* 1C */
-  KIRQL  Irql;                  /* 20 */
-  ULONG  IRR;                   /* 24 */
-  ULONG  IrrActive;             /* 28 */
-  ULONG  IDR;                   /* 2C */
-  PVOID  KdVersionBlock;        /* 30 */
-  PUSHORT  IDT;                 /* 34 */
-  PUSHORT  GDT;                 /* 38 */
-  struct _KTSS  *TSS;           /* 3C */
-  USHORT  MajorVersion;         /* 40 */
-  USHORT  MinorVersion;         /* 42 */
-  KAFFINITY  SetMember;         /* 44 */
-  ULONG  StallScaleFactor;      /* 48 */
-  UCHAR  DebugActive;           /* 4C */
-  UCHAR  ProcessorNumber;       /* 4D */
-  UCHAR  Reserved[2];           /* 4E */
-} KPCR, *PKPCR;                 /* 50 */
+  struct _KPCR  *Self;          /* 1C */
+  struct _KPRCB  *PCRCB;        /* 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 */
 
 typedef struct _KFLOATING_SAVE {
   ULONG  ControlWord;
@@ -4142,6 +4304,8 @@ RemoveTailList(
   return Entry;
 }
 
+#if !defined(_WINBASE_H) || _WIN32_WINNT < 0x0501
+
 NTOSAPI
 PSLIST_ENTRY
 DDKFASTAPI
@@ -4155,6 +4319,8 @@ InterlockedPushEntrySList(
   IN PSLIST_HEADER  ListHead,
   IN PSLIST_ENTRY  ListEntry);
 
+#endif
+
 /*
  * USHORT
  * QueryDepthSList(
@@ -4321,7 +4487,7 @@ RtlConvertUlongToLuid(
  */
 #ifndef RtlCopyMemory
 #define RtlCopyMemory(Destination, Source, Length) \
-  memcpy(Destination, Source, Length);
+  memcpy(Destination, Source, Length)
 #endif
 
 #ifndef RtlCopyBytes
@@ -4398,12 +4564,12 @@ RtlDeleteRegistryValue(
 /*
  * BOOLEAN
  * RtlEqualLuid( 
- *   IN LUID  Luid1,
- *   IN LUID  Luid2)
+ *   IN PLUID  Luid1,
+ *   IN PLUID  Luid2)
  */
-#define RtlEqualLuid(_Luid1, \
-                     _Luid2) \
-  ((Luid1.LowPart == Luid2.LowPart) && (Luid1.HighPart == Luid2.HighPart))
+#define RtlEqualLuid(Luid1, \
+                     Luid2) \
+  (((Luid1)->LowPart == (Luid2)->LowPart) && ((Luid1)->HighPart == (Luid2)->HighPart))
 
 /*
  * ULONG
@@ -5316,7 +5482,7 @@ ExInterlockedAddLargeStatistic(
 
 NTOSAPI
 ULONG
-DDKFASTAPI
+DDKAPI
 ExInterlockedAddUlong(
   IN PULONG  Addend,
   IN ULONG  Increment,
@@ -5339,7 +5505,7 @@ ExInterlockedFlushSList(
 
 NTOSAPI
 PLIST_ENTRY
-DDKFASTAPI
+DDKAPI
 ExInterlockedInsertHeadList(
   IN PLIST_ENTRY  ListHead,
   IN PLIST_ENTRY  ListEntry,
@@ -5347,7 +5513,7 @@ ExInterlockedInsertHeadList(
 
 NTOSAPI
 PLIST_ENTRY
-DDKFASTAPI
+DDKAPI
 ExInterlockedInsertTailList(
   IN PLIST_ENTRY  ListHead,
   IN PLIST_ENTRY  ListEntry,
@@ -5355,7 +5521,7 @@ ExInterlockedInsertTailList(
 
 NTOSAPI
 PSINGLE_LIST_ENTRY
-DDKFASTAPI
+DDKAPI
 ExInterlockedPopEntryList(
   IN PSINGLE_LIST_ENTRY  ListHead,
   IN PKSPIN_LOCK  Lock);
@@ -5372,7 +5538,7 @@ ExInterlockedPopEntryList(
 
 NTOSAPI
 PSINGLE_LIST_ENTRY
-DDKFASTAPI
+DDKAPI
 ExInterlockedPushEntryList(
   IN PSINGLE_LIST_ENTRY  ListHead,
   IN PSINGLE_LIST_ENTRY  ListEntry,
@@ -5392,7 +5558,7 @@ ExInterlockedPushEntryList(
 
 NTOSAPI
 PLIST_ENTRY
-DDKFASTAPI
+DDKAPI
 ExInterlockedRemoveHeadList(
   IN PLIST_ENTRY  ListHead,
   IN PKSPIN_LOCK  Lock);
@@ -6501,6 +6667,10 @@ IoOpenDeviceInterfaceRegistryKey(
   IN ACCESS_MASK  DesiredAccess,
   OUT PHANDLE  DeviceInterfaceKey);
 
+#define PLUGPLAY_REGKEY_DEVICE                            1
+#define PLUGPLAY_REGKEY_DRIVER                            2
+#define PLUGPLAY_REGKEY_CURRENT_HWPROFILE                 4
+
 NTOSAPI
 NTSTATUS
 DDKAPI
@@ -6636,6 +6806,16 @@ IoReleaseRemoveLockEx(
   IN PVOID  Tag,
   IN ULONG  RemlockSize);
 
+/*
+ * VOID
+ * IoReleaseRemoveLock(
+ *   IN PIO_REMOVE_LOCK  RemoveLock,
+ *   IN PVOID  Tag)
+ */
+#define IoReleaseRemoveLock(_RemoveLock, \
+                            _Tag) \
+  IoReleaseRemoveLockEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
+
 /*
  * VOID
  * IoReleaseRemoveLockAndWait(
@@ -6644,7 +6824,7 @@ IoReleaseRemoveLockEx(
  */
 #define IoReleaseRemoveLockAndWait(_RemoveLock, \
                                    _Tag) \
-  IoReleaseRemoveLockEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
+  IoReleaseRemoveLockAndWaitEx(_RemoveLock, _Tag, sizeof(IO_REMOVE_LOCK))
 
 NTOSAPI
 VOID
@@ -7114,14 +7294,11 @@ KeAcquireSpinLock(
   OUT PKIRQL  OldIrql);
 
 /* System Service Dispatch Table */
-typedef struct _SSDT {
-  ULONG  SysCallPtr;
-} SSDT, *PSSDT;
+typedef PVOID (NTAPI * SSDT)(VOID);
+typedef SSDT * PSSDT;
 
 /* System Service Parameters Table */
-typedef struct _SSPT {
-  ULONG  ParamBytes;
-} SSPT, *PSSPT;
+typedef UCHAR SSPT, * PSSPT;
 
 typedef struct _SSDT_ENTRY {
        PSSDT  SSDT;
@@ -8481,8 +8658,8 @@ DDKAPI
 NtCreateEvent(
   OUT PHANDLE  EventHandle,
   IN ACCESS_MASK  DesiredAccess,
-  IN POBJECT_ATTRIBUTES  ObjectAttributes,
-  IN BOOLEAN  ManualReset,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes  OPTIONAL,
+  IN EVENT_TYPE  EventType,
   IN BOOLEAN  InitialState);
 
 NTOSAPI
@@ -8491,8 +8668,8 @@ DDKAPI
 ZwCreateEvent(
   OUT PHANDLE  EventHandle,
   IN ACCESS_MASK  DesiredAccess,
-  IN POBJECT_ATTRIBUTES  ObjectAttributes,
-  IN BOOLEAN  ManualReset,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes  OPTIONAL,
+  IN EVENT_TYPE  EventType,
   IN BOOLEAN  InitialState);
 
 NTOSAPI
@@ -8765,14 +8942,14 @@ NTSTATUS
 DDKAPI
 NtSetEvent(
   IN HANDLE  EventHandle,
-  IN PULONG  NumberOfThreadsReleased);
+  OUT PLONG  PreviousState  OPTIONAL);
 
 NTOSAPI
 NTSTATUS
 DDKAPI
 ZwSetEvent(
   IN HANDLE  EventHandle,
-  IN PULONG  NumberOfThreadsReleased);
+  OUT PLONG  PreviousState  OPTIONAL);
 
 NTOSAPI
 NTSTATUS
@@ -9087,6 +9264,16 @@ DbgSetDebugFilterState(
   IN ULONG  Level,
   IN BOOLEAN  State);
 
+NTOSAPI
+BOOLEAN
+DDKAPI
+KeRosPrintAddress ( PVOID address );
+
+NTOSAPI
+VOID
+DDKAPI
+KeRosDumpStackFrames ( PULONG Frame, ULONG FrameCount );
+
 #ifdef DBG
 
 #define KdPrint(_x_) DbgPrint _x_
@@ -9108,8 +9295,6 @@ extern NTOSAPI PBOOLEAN KdDebuggerEnabled;
 #define KD_DEBUGGER_ENABLED     *KdDebuggerEnabled
 #define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent
 
-#pragma pack(pop)
-
 #ifdef __cplusplus
 }
 #endif