Windows2000/private/ntos/inc/pciintrf.h
2020-09-30 17:12:32 +02:00

131 lines
2.4 KiB
C

/*++
Module Name:
pciintrf.h
Abstract:
Contains interface GUIDs and structures for non-wdm modules that
interface directly with the PCI driver via the PNP QUERY_INTERFACE
mechanism.
Author:
Peter Johnston (peterj) November 1997
Revision History:
*/
#ifndef _PCIINTRF_
#define _PCIINTRF_
// CardBus
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);
#define PCI_CB_INTRF_VERSION 1
typedef
NTSTATUS
(*PCARDBUSADD)(
IN PDEVICE_OBJECT DeviceObject,
IN OUT PVOID * DeviceContext
);
typedef
NTSTATUS
(*PCARDBUSDELETE)(
IN PVOID DeviceContext
);
typedef
NTSTATUS
(*PCARDBUSPCIDISPATCH)(
IN PVOID DeviceContext,
IN PIRP Irp
);
typedef struct _PCI_CARDBUS_INTERFACE_PRIVATE {
// generic interface header
USHORT Size;
USHORT Version;
PVOID Context; // not actually used in this interface
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
// Pci data.
PDRIVER_OBJECT DriverObject; // returned ptr to PCI driver
// Pci-Cardbus private interfaces
PCARDBUSADD AddCardBus;
PCARDBUSDELETE DeleteCardBus;
PCARDBUSPCIDISPATCH DispatchPnp;
} PCI_CARDBUS_INTERFACE_PRIVATE, *PPCI_CARDBUS_INTERFACE_PRIVATE;
typedef
VOID
(*PPME_GET_INFORMATION) (
IN PDEVICE_OBJECT Pdo,
OUT PBOOLEAN PmeCapable,
OUT PBOOLEAN PmeStatus,
OUT PBOOLEAN PmeEnable
);
typedef
VOID
(*PPME_CLEAR_PME_STATUS) (
IN PDEVICE_OBJECT Pdo
);
typedef
VOID
(*PPME_SET_PME_ENABLE) (
IN PDEVICE_OBJECT Pdo,
IN BOOLEAN PmeEnable
);
typedef struct _PCI_PME_INTERFACE {
// generic interface header
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
// PME Signal interfaces
PPME_GET_INFORMATION GetPmeInformation;
PPME_CLEAR_PME_STATUS ClearPmeStatus;
PPME_SET_PME_ENABLE UpdateEnable;
} PCI_PME_INTERFACE, *PPCI_PME_INTERFACE;
// Some well-known interface versions supported by the PCI Bus Driver
#define PCI_PME_INTRF_STANDARD_VER 1
#endif // _PCIINTRF_