windows-nt/Source/XPSP1/NT/base/busdrv/acpi/driver/nt/bus.h
2020-09-26 16:20:57 +08:00

260 lines
6.4 KiB
C

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
bus.h
Abstract:
This module contains the bus dispatcher for the ACPI driver, NT version
Author:
Stephane Plante (splante)
Environment:
NT Kernel Model Driver only
--*/
#ifndef _BUS_H_
#define _BUS_H_
extern LIST_ENTRY AcpiUnresolvedEjectList;
#define CompareGuid(g1, g2) ( (g1) == (g2) \
? TRUE \
: RtlCompareMemory( (g1), (g2), sizeof(GUID) ) == sizeof(GUID) \
)
NTSTATUS
ACPIBusAndFilterIrpEject(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context,
IN BOOLEAN ProcessingFilterIrp
);
NTSTATUS
ACPIBusAndFilterIrpQueryCapabilities(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context,
IN BOOLEAN ProcessingFilterIrp
);
NTSTATUS
ACPIBusAndFilterIrpQueryEjectRelations(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN OUT PDEVICE_RELATIONS *PdeviceRelations
);
NTSTATUS
ACPIBusAndFilterIrpQueryPnpDeviceState(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context,
IN BOOLEAN ProcessingFilterIrp
);
NTSTATUS
ACPIBusAndFilterIrpSetLock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context,
IN BOOLEAN ProcessingFilterIrp
);
NTSTATUS
ACPIBusIrpCancelRemoveOrStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpDeviceUsageNotification(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpEject(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
ACPIBusAndFilterIrpEjectCancelRoutine(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
ACPIBusAndFilterIrpEjectComplete(
IN PDEVICE_EXTENSION DeviceExtension,
IN PIRP Irp OPTIONAL,
IN NTSTATUS Status
);
NTSTATUS
ACPIBusIrpQueryBusInformation(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryBusRelations(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN OUT PDEVICE_RELATIONS *PdeviceRelations
);
NTSTATUS
ACPIBusIrpQueryCapabilities(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryDeviceRelations(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryId(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryInterface(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryPnpDeviceState(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryPower(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryRemoveOrStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryResources(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryResourceRequirements(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpQueryTargetRelation(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN OUT PDEVICE_RELATIONS *PdeviceRelations
);
NTSTATUS
ACPIBusIrpRemoveDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpSetLock(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpSetDevicePower(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PIO_STACK_LOCATION IrpStack
);
NTSTATUS
ACPIBusIrpSetPower(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpSetSystemPower(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PIO_STACK_LOCATION IrpStack
);
NTSTATUS
ACPIBusIrpSetSystemPowerComplete(
IN PDEVICE_OBJECT DeviceObject,
IN UCHAR MinorFunction,
IN POWER_STATE PowerState,
IN PVOID Context,
IN PIO_STATUS_BLOCK IoStatus
);
NTSTATUS
ACPIBusIrpStartDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
ACPIBusIrpStartDeviceCompletion(
IN PDEVICE_EXTENSION DeviceExtension,
IN PVOID Context,
IN NTSTATUS Status
);
VOID
ACPIBusIrpStartDeviceWorker(
IN PVOID Context
);
NTSTATUS
ACPIBusIrpStopDevice(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpSurpriseRemoval(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
ACPIBusIrpUnhandled(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
SmashInterfaceQuery(
IN OUT PIRP Irp
);
#endif