[XDK]
[reactos.git] / include / xdk / iotypes.h
index 7bb3484..e519bb9 100644 (file)
@@ -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_)