/*++ Copyright (c) 2000 Microsoft Corporation Module Name: bulkpwr.h Abstract: Environment: Kernel mode Notes: Copyright (c) 2000 Microsoft Corporation. All Rights Reserved. --*/ #ifndef _BULKUSB_POWER_H #define _BULKUSB_POWER_H typedef struct _POWER_COMPLETION_CONTEXT { PDEVICE_OBJECT DeviceObject; PIRP SIrp; } POWER_COMPLETION_CONTEXT, *PPOWER_COMPLETION_CONTEXT; typedef struct _WORKER_THREAD_CONTEXT { PDEVICE_OBJECT DeviceObject; PIRP Irp; PIO_WORKITEM WorkItem; } WORKER_THREAD_CONTEXT, *PWORKER_THREAD_CONTEXT; NTSTATUS BulkUsb_DispatchPower( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleSystemQueryPower( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleSystemSetPower( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleDeviceQueryPower( PDEVICE_OBJECT DeviceObject, PIRP Irp ); NTSTATUS SysPoCompletionRoutine( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_EXTENSION DeviceExtension ); VOID SendDeviceIrp( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); VOID DevPoCompletionRoutine( IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PVOID Context, IN PIO_STATUS_BLOCK IoStatus ); NTSTATUS HandleDeviceSetPower( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS FinishDevPoUpIrp( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_EXTENSION DeviceExtension ); NTSTATUS SetDeviceFunctional( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_EXTENSION DeviceExtension ); NTSTATUS FinishDevPoDnIrp( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_EXTENSION DeviceExtension ); NTSTATUS HoldIoRequests( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); VOID HoldIoRequestsWorkerRoutine( IN PDEVICE_OBJECT DeviceObject, IN PVOID Context ); NTSTATUS QueueRequest( IN OUT PDEVICE_EXTENSION DeviceExtension, IN PIRP Irp ); VOID CancelQueued( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS WaitWakeCompletionRoutine( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_EXTENSION DeviceExtension ); NTSTATUS IssueWaitWake( IN PDEVICE_EXTENSION DeviceExtension ); VOID CancelWaitWake( IN PDEVICE_EXTENSION DeviceExtension ); VOID WaitWakeCallback( IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PVOID Context, IN PIO_STATUS_BLOCK IoStatus ); PCHAR PowerMinorFunctionString ( IN UCHAR MinorFunction ); #endif