windows-nt/Source/XPSP1/NT/drivers/storage/ide/atapi/chanfdo.h
2020-09-26 16:20:57 +08:00

252 lines
4.3 KiB
C

/*++
Copyright (C) 1993-99 Microsoft Corporation
Module Name:
chanfdo.h
Abstract:
--*/
#if !defined (___chanfdo_h___)
#define ___chanfdo_h___
//
// work item
//
typedef struct _IDE_WORK_ITEM_CONTEXT {
PIO_WORKITEM WorkItem;
PIRP Irp;
} IDE_WORK_ITEM_CONTEXT, *PIDE_WORK_ITEM_CONTEXT;
NTSTATUS
ChannelAddDevice(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject
);
NTSTATUS
ChannelAddChannel(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject,
OUT PFDO_EXTENSION *FdoExtension
);
NTSTATUS
ChannelStartDevice (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
NTSTATUS
ChannelStartChannel (
PFDO_EXTENSION FdoExtension,
PCM_RESOURCE_LIST ResourceListToKeep
);
NTSTATUS
ChannelStartDeviceCompletionRoutine (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp,
IN OUT PVOID Context
);
NTSTATUS
ChannelCreateSymblicLinks (
PFDO_EXTENSION FdoExtension
);
NTSTATUS
ChannelDeleteSymblicLinks (
PFDO_EXTENSION FdoExtension
);
NTSTATUS
ChannelSurpriseRemoveDevice (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
NTSTATUS
ChannelRemoveDevice (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
NTSTATUS
ChannelRemoveDeviceCompletionRoutine (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
NTSTATUS
ChannelStopDevice (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
NTSTATUS
ChannelRemoveChannel (
PFDO_EXTENSION FdoExtension
);
NTSTATUS
ChannelStartDeviceCompletionRoutine (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
NTSTATUS
ChannelQueryDeviceRelations (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
NTSTATUS
ChannelQueryBusRelation (
IN PDEVICE_OBJECT DeviceObject,
IN PIDE_WORK_ITEM_CONTEXT workItemContext
);
PDEVICE_RELATIONS
ChannelBuildDeviceRelationList (
PFDO_EXTENSION FdoExtension
);
NTSTATUS
ChannelQueryId (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
NTSTATUS
ChannelQueryIdCompletionRoutine(
PDEVICE_OBJECT DeviceObject,
PIRP Irp,
PVOID Context
);
NTSTATUS
ChannelUsageNotification (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
NTSTATUS
ChannelUsageNotificationCompletionRoutine (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
NTSTATUS
ChannelDeviceIoControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
ChannelQueryBusMasterInterface (
PFDO_EXTENSION FdoExtension
);
VOID
ChannelQueryTransferModeInterface (
PFDO_EXTENSION FdoExtension
);
VOID
ChannelUnbindBusMasterParent (
PFDO_EXTENSION FdoExtension
);
VOID
ChannelQuerySyncAccessInterface (
PFDO_EXTENSION FdoExtension
);
VOID
ChannelQueryRequestProperResourceInterface (
PFDO_EXTENSION FdoExtension
);
__inline
VOID
ChannelEnableInterrupt (
IN PFDO_EXTENSION FdoExtension
);
__inline
VOID
ChannelDisableInterrupt (
IN PFDO_EXTENSION FdoExtension
);
NTSTATUS
ChannelGetIdentifyData (
PFDO_EXTENSION FdoExtension,
ULONG DeviceNumber,
PIDENTIFY_DATA IdentifyData
);
NTSTATUS
ChannelAcpiTransferModeSelect (
IN PVOID Context,
PPCIIDE_TRANSFER_MODE_SELECT XferMode
);
NTSTATUS
ChannelRestoreTiming (
IN PFDO_EXTENSION FdoExtension,
IN PSET_ACPI_TIMING_COMPLETION_ROUTINE CallerCompletionRoutine,
IN PVOID CallerContext
);
NTSTATUS
ChannelRestoreTimingCompletionRoutine (
IN PDEVICE_OBJECT DeviceObject,
IN NTSTATUS Status,
IN PVOID Context
);
NTSTATUS
ChannelFilterResourceRequirements (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
BOOLEAN
ChannelQueryPcmciaParent (
PFDO_EXTENSION FdoExtension
);
#ifdef IDE_FILTER_PROMISE_TECH_RESOURCES
NTSTATUS
ChannelFilterPromiseTechResourceRequirements (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
#endif // IDE_FILTER_PROMISE_TECH_RESOURCES
NTSTATUS
ChannelQueryPnPDeviceState (
IN PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp
);
#ifdef ENABLE_NATIVE_MODE
VOID
ChannelQueryInterruptInterface (
PFDO_EXTENSION FdoExtension
);
#endif
#endif // ___chanfdo_h___