From 9c2f5ba4465749de0befdd92d100a96ff686c1c0 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 29 May 2010 00:30:18 +0000 Subject: [PATCH] [XDK] - Add some missing definitions. [DDK] - Update ntddk.h to reflect recent XDK changes. svn path=/branches/header-work/; revision=47392 --- include/ddk/ntddk.h | 124 ++++++++++++++++++++++++++++++++++++++++++ include/xdk/iotypes.h | 122 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 246 insertions(+) diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 29f5d6781ea..42abb01b941 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -1227,6 +1227,128 @@ typedef enum _BUS_DATA_TYPE { MaximumBusDataType } BUS_DATA_TYPE, *PBUS_DATA_TYPE; +/* Some Server 2003 DDK definitions */ +#define PCI_INT_ROUTE_INTRF_STANDARD_VER 1 + +typedef NTSTATUS +(NTAPI *PLEGACY_DEVICE_DETECTION_HANDLER)( + IN PVOID Context, + IN INTERFACE_TYPE LegacyBusType, + IN ULONG BusNumber, + IN ULONG SlotNumber, + OUT PDEVICE_OBJECT *PhysicalDeviceObject); + +typedef struct _ROUTING_TOKEN { + PVOID LinkNode; + ULONG StaticVector; + UCHAR Flags; +} ROUTING_TOKEN, *PROUTING_TOKEN; + +typedef NTSTATUS +(NTAPI *PGET_INTERRUPT_ROUTING)( + IN PDEVICE_OBJECT Pdo, + OUT ULONG *Bus, + OUT ULONG *PciSlot, + OUT UCHAR *InterruptLine, + OUT UCHAR *InterruptPin, + OUT UCHAR *ClassCode, + OUT UCHAR *SubClassCode, + OUT PDEVICE_OBJECT *ParentPdo, + OUT ROUTING_TOKEN *RoutingToken, + OUT UCHAR *Flags); + +typedef NTSTATUS +(NTAPI *PSET_INTERRUPT_ROUTING_TOKEN)( + IN PDEVICE_OBJECT Pdo, + IN PROUTING_TOKEN RoutingToken); + +typedef VOID +(NTAPI *PUPDATE_INTERRUPT_LINE)( + IN PDEVICE_OBJECT Pdo, + IN UCHAR LineRegister); + +typedef struct _INT_ROUTE_INTERFACE_STANDARD { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PGET_INTERRUPT_ROUTING GetInterruptRouting; + PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken; + PUPDATE_INTERRUPT_LINE UpdateInterruptLine; +} INT_ROUTE_INTERFACE_STANDARD, *PINT_ROUTE_INTERFACE_STANDARD; + +typedef struct _LEGACY_DEVICE_DETECTION_INTERFACE { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection; +} LEGACY_DEVICE_DETECTION_INTERFACE, *PLEGACY_DEVICE_DETECTION_INTERFACE; + +/* FIXME : These definitions don't exist in public headers */ + +#define PCI_CB_INTRF_VERSION 1 +#define PCI_PME_INTRF_STANDARD_VER 1 +#define PNP_LOCATION_INTERFACE_VERSION 1 + +DEFINE_GUID(GUID_PCI_CARDBUS_INTERFACE_PRIVATE, 0xcca82f31, 0x54d6, 0x11d1, 0x82, 0x24, 0x00, 0xa0, 0xc9, 0x32, 0x43, 0x85); +DEFINE_GUID(GUID_PCI_PME_INTERFACE, 0xaac7e6ac, 0xbb0b, 0x11d2, 0xb4, 0x84, 0x00, 0xc0, 0x4f, 0x72, 0xde, 0x8b); + +typedef NTSTATUS +(NTAPI *PCARDBUSADD)( + IN PDEVICE_OBJECT DeviceObject, + IN OUT PVOID *DeviceContext); + +typedef NTSTATUS +(NTAPI *PCARDBUSDELETE)( + IN PVOID DeviceContext); + +typedef NTSTATUS +(NTAPI *PCARDBUSPCIDISPATCH)( + IN PVOID DeviceContext, + IN PIRP Irp); + +typedef VOID +(NTAPI *PPME_SET_PME_ENABLE)( + IN PDEVICE_OBJECT Pdo, + IN BOOLEAN PmeEnable); + +typedef VOID +(NTAPI *PPME_CLEAR_PME_STATUS)( + IN PDEVICE_OBJECT Pdo); + +typedef VOID +(NTAPI *PPME_GET_INFORMATION)( + IN PDEVICE_OBJECT Pdo, + OUT PBOOLEAN PmeCapable, + OUT PBOOLEAN PmeStatus, + OUT PBOOLEAN PmeEnable); + +typedef struct _PCI_CARDBUS_INTERFACE_PRIVATE { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PDRIVER_OBJECT DriverObject; + PCARDBUSADD AddCardBus; + PCARDBUSDELETE DeleteCardBus; + PCARDBUSPCIDISPATCH DispatchPnp; +} PCI_CARDBUS_INTERFACE_PRIVATE, *PPCI_CARDBUS_INTERFACE_PRIVATE; + +typedef struct _PCI_PME_INTERFACE { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PPME_GET_INFORMATION GetPmeInformation; + PPME_CLEAR_PME_STATUS ClearPmeStatus; + PPME_SET_PME_ENABLE UpdateEnable; +} PCI_PME_INTERFACE, *PPCI_PME_INTERFACE; + /* Hardware Abstraction Layer Types */ typedef BOOLEAN @@ -3289,11 +3411,13 @@ ExFreeToZone( #define RESULT_POSITIVE 2 #endif +#if defined(_X86_) || defined(_IA64_) || defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) typedef enum _INTERLOCKED_RESULT { ResultNegative = RESULT_NEGATIVE, ResultZero = RESULT_ZERO, ResultPositive = RESULT_POSITIVE } INTERLOCKED_RESULT; +#endif #ifdef _X86_ diff --git a/include/xdk/iotypes.h b/include/xdk/iotypes.h index 7bb348470cc..e519bb9d837 100644 --- a/include/xdk/iotypes.h +++ b/include/xdk/iotypes.h @@ -4863,6 +4863,128 @@ typedef enum _BUS_DATA_TYPE { MaximumBusDataType } BUS_DATA_TYPE, *PBUS_DATA_TYPE; +/* Some Server 2003 DDK definitions */ +#define PCI_INT_ROUTE_INTRF_STANDARD_VER 1 + +typedef NTSTATUS +(NTAPI *PLEGACY_DEVICE_DETECTION_HANDLER)( + IN PVOID Context, + IN INTERFACE_TYPE LegacyBusType, + IN ULONG BusNumber, + IN ULONG SlotNumber, + OUT PDEVICE_OBJECT *PhysicalDeviceObject); + +typedef struct _ROUTING_TOKEN { + PVOID LinkNode; + ULONG StaticVector; + UCHAR Flags; +} ROUTING_TOKEN, *PROUTING_TOKEN; + +typedef NTSTATUS +(NTAPI *PGET_INTERRUPT_ROUTING)( + IN PDEVICE_OBJECT Pdo, + OUT ULONG *Bus, + OUT ULONG *PciSlot, + OUT UCHAR *InterruptLine, + OUT UCHAR *InterruptPin, + OUT UCHAR *ClassCode, + OUT UCHAR *SubClassCode, + OUT PDEVICE_OBJECT *ParentPdo, + OUT ROUTING_TOKEN *RoutingToken, + OUT UCHAR *Flags); + +typedef NTSTATUS +(NTAPI *PSET_INTERRUPT_ROUTING_TOKEN)( + IN PDEVICE_OBJECT Pdo, + IN PROUTING_TOKEN RoutingToken); + +typedef VOID +(NTAPI *PUPDATE_INTERRUPT_LINE)( + IN PDEVICE_OBJECT Pdo, + IN UCHAR LineRegister); + +typedef struct _INT_ROUTE_INTERFACE_STANDARD { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PGET_INTERRUPT_ROUTING GetInterruptRouting; + PSET_INTERRUPT_ROUTING_TOKEN SetInterruptRoutingToken; + PUPDATE_INTERRUPT_LINE UpdateInterruptLine; +} INT_ROUTE_INTERFACE_STANDARD, *PINT_ROUTE_INTERFACE_STANDARD; + +typedef struct _LEGACY_DEVICE_DETECTION_INTERFACE { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PLEGACY_DEVICE_DETECTION_HANDLER LegacyDeviceDetection; +} LEGACY_DEVICE_DETECTION_INTERFACE, *PLEGACY_DEVICE_DETECTION_INTERFACE; + +/* FIXME : These definitions don't exist in public headers */ + +#define PCI_CB_INTRF_VERSION 1 +#define PCI_PME_INTRF_STANDARD_VER 1 +#define PNP_LOCATION_INTERFACE_VERSION 1 + +DEFINE_GUID(GUID_PCI_CARDBUS_INTERFACE_PRIVATE, 0xcca82f31, 0x54d6, 0x11d1, 0x82, 0x24, 0x00, 0xa0, 0xc9, 0x32, 0x43, 0x85); +DEFINE_GUID(GUID_PCI_PME_INTERFACE, 0xaac7e6ac, 0xbb0b, 0x11d2, 0xb4, 0x84, 0x00, 0xc0, 0x4f, 0x72, 0xde, 0x8b); + +typedef NTSTATUS +(NTAPI *PCARDBUSADD)( + IN PDEVICE_OBJECT DeviceObject, + IN OUT PVOID *DeviceContext); + +typedef NTSTATUS +(NTAPI *PCARDBUSDELETE)( + IN PVOID DeviceContext); + +typedef NTSTATUS +(NTAPI *PCARDBUSPCIDISPATCH)( + IN PVOID DeviceContext, + IN PIRP Irp); + +typedef VOID +(NTAPI *PPME_SET_PME_ENABLE)( + IN PDEVICE_OBJECT Pdo, + IN BOOLEAN PmeEnable); + +typedef VOID +(NTAPI *PPME_CLEAR_PME_STATUS)( + IN PDEVICE_OBJECT Pdo); + +typedef VOID +(NTAPI *PPME_GET_INFORMATION)( + IN PDEVICE_OBJECT Pdo, + OUT PBOOLEAN PmeCapable, + OUT PBOOLEAN PmeStatus, + OUT PBOOLEAN PmeEnable); + +typedef struct _PCI_CARDBUS_INTERFACE_PRIVATE { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PDRIVER_OBJECT DriverObject; + PCARDBUSADD AddCardBus; + PCARDBUSDELETE DeleteCardBus; + PCARDBUSPCIDISPATCH DispatchPnp; +} PCI_CARDBUS_INTERFACE_PRIVATE, *PPCI_CARDBUS_INTERFACE_PRIVATE; + +typedef struct _PCI_PME_INTERFACE { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PPME_GET_INFORMATION GetPmeInformation; + PPME_CLEAR_PME_STATUS ClearPmeStatus; + PPME_SET_PME_ENABLE UpdateEnable; +} PCI_PME_INTERFACE, *PPCI_PME_INTERFACE; + $endif (_NTDDK_) $if (_NTIFS_) -- 2.17.1