/*++ 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___