/*++ Copyright (c) 2000 Microsoft Corporation Module Name: bulkpnp.h Abstract: Environment: Kernel mode Notes: Copyright (c) 2000 Microsoft Corporation. All Rights Reserved. --*/ #ifndef _BULKUSB_PNP_H #define _BULKUSB_PNP_H #define REMOTE_WAKEUP_MASK 0x20 NTSTATUS BulkUsb_DispatchPnP( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleStartDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleQueryStopDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleQueryRemoveDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleCancelRemoveDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleSurpriseRemoval( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleRemoveDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleCancelStopDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleStopDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS HandleQueryCapabilities( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS ReadandSelectDescriptors( IN PDEVICE_OBJECT DeviceObject ); NTSTATUS ConfigureDevice( IN PDEVICE_OBJECT DeviceObject ); NTSTATUS SelectInterfaces( IN PDEVICE_OBJECT DeviceObject, IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor ); NTSTATUS DeconfigureDevice( IN PDEVICE_OBJECT DeviceObject ); NTSTATUS CallUSBD( IN PDEVICE_OBJECT DeviceObject, IN PURB Urb ); VOID ProcessQueuedRequests( IN OUT PDEVICE_EXTENSION DeviceExtension ); NTSTATUS BulkUsb_GetRegistryDword( IN PWCHAR RegPath, IN PWCHAR ValueName, IN OUT PULONG Value ); NTSTATUS BulkUsb_DispatchClean( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); VOID DpcRoutine( IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); VOID IdleRequestWorkerRoutine( IN PDEVICE_OBJECT DeviceObject, IN PVOID Context ); NTSTATUS BulkUsb_AbortPipes( IN PDEVICE_OBJECT DeviceObject ); NTSTATUS IrpCompletionRoutine( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context ); NTSTATUS CanStopDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS CanRemoveDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); NTSTATUS ReleaseMemory( IN PDEVICE_OBJECT DeviceObject ); LONG BulkUsb_IoIncrement( IN OUT PDEVICE_EXTENSION DeviceExtension ); LONG BulkUsb_IoDecrement( IN OUT PDEVICE_EXTENSION DeviceExtension ); BOOLEAN CanDeviceSuspend( IN PDEVICE_EXTENSION DeviceExtension ); PCHAR PnPMinorFunctionString ( IN UCHAR MinorFunction ); #endif