You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1842 lines
35 KiB
1842 lines
35 KiB
/*++
|
|
|
|
Copyright (c) 1999, 2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
prototyp.h
|
|
|
|
Abstract:
|
|
|
|
put all the prototypes in one header
|
|
|
|
Environment:
|
|
|
|
Kernel & user mode
|
|
|
|
Revision History:
|
|
|
|
2-25-00 : created
|
|
|
|
--*/
|
|
|
|
#ifndef __PROTOTYP_H__
|
|
#define __PROTOTYP_H__
|
|
|
|
#define FRAME_COUNT_WAIT 5
|
|
|
|
PUSBPORT_MINIPORT_DRIVER
|
|
USBPORT_FindMiniport(
|
|
PDRIVER_OBJECT DriverObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_Unload(
|
|
PDRIVER_OBJECT DriverObject
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_CreateDeviceObject(
|
|
PDRIVER_OBJECT DriverObject,
|
|
PUSBPORT_MINIPORT_DRIVER MiniportDriver,
|
|
OUT PDEVICE_OBJECT *DeviceObject,
|
|
PUNICODE_STRING DeviceNameUnicodeString
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_PnPAddDevice(
|
|
PDRIVER_OBJECT DriverObject,
|
|
PDEVICE_OBJECT PhysicalDeviceObject
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_Dispatch(
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_PdoPnPIrp(
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_FdoPnPIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CompleteIrp(
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PIRP Irp,
|
|
NTSTATUS ntStatus,
|
|
ULONG_PTR Information
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_DeferredStartDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_StopDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
BOOLEAN HardwarePresent
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_StartDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHC_RESOURCES HcResources
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_ValidateDeviceHandle(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
BOOLEAN ReferenceUrb
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_ValidatePipeHandle(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PUSBD_PIPE_HANDLE_I PipeHandle
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_SetUSBDError(
|
|
PURB Urb,
|
|
USBD_STATUS UsbdStatus
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_PassIrp(
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PIO_COMPLETION_ROUTINE CompletionRoutine,
|
|
PVOID Context,
|
|
BOOLEAN InvokeOnSuccess,
|
|
BOOLEAN InvokeOnError,
|
|
BOOLEAN InvokeOnCancel,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_SymbolicLink(
|
|
BOOLEAN CreateFlag,
|
|
PDEVICE_EXTENSION DevExt,
|
|
PDEVICE_OBJECT PhysicalDeviceObject,
|
|
LPGUID Guid
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_SetRegistryKeyValueForPdo(
|
|
PDEVICE_OBJECT PhysicalDeviceObject,
|
|
BOOLEAN SoftwareBranch,
|
|
ULONG Type,
|
|
PWCHAR KeyNameString,
|
|
ULONG KeyNameStringLength,
|
|
PVOID Data,
|
|
ULONG DataLength
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetRegistryKeyValueForPdo(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PhysicalDeviceObject,
|
|
BOOLEAN SoftwareBranch,
|
|
PWCHAR KeyNameString,
|
|
ULONG KeyNameStringLength,
|
|
PVOID Data,
|
|
ULONG DataLength
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CancelSplitTransfer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_TRANSFER_CONTEXT SplitTransfer
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_CreateRootHubPdo(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT *RootHubPdo
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_BusQueryBusTime(
|
|
PVOID BusContext,
|
|
PULONG CurrentFrame
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_BusSubmitIsoOutUrb(
|
|
PVOID BusContext,
|
|
PURB Urb
|
|
);
|
|
|
|
VOID
|
|
USBPORT_BusGetUSBDIVersion(
|
|
PVOID BusContext,
|
|
PUSBD_VERSION_INFORMATION VersionInformation,
|
|
PULONG HcdCapabilities
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_MakeRootHubPdoName(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUNICODE_STRING PdoNameUnicodeString,
|
|
ULONG Index
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_MakeHcdDeviceName(
|
|
PUNICODE_STRING DeviceNameUnicodeString,
|
|
ULONG Idx
|
|
);
|
|
|
|
PWCHAR
|
|
USBPORT_GetIdString(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
USHORT Vid,
|
|
USHORT Pid,
|
|
USHORT Rev
|
|
);
|
|
|
|
USBD_STATUS
|
|
USBPORT_AllocTransfer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PTRANSFER_URB Urb,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PIRP Irp,
|
|
PKEVENT CompleteEvent,
|
|
ULONG MillisecTimeout
|
|
);
|
|
|
|
VOID
|
|
USBPORT_QueueTransferUrb(
|
|
PTRANSFER_URB Urb
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FreeUsbAddress(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
USHORT DeviceAddress
|
|
);
|
|
|
|
USHORT
|
|
USBPORT_AllocateUsbAddress(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_SendCommand(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
|
PVOID Buffer,
|
|
ULONG BufferLength,
|
|
PULONG BytesReturned,
|
|
USBD_STATUS *UsbdStatus
|
|
);
|
|
|
|
USBD_STATUS
|
|
USBPORT_MiniportStatus_TO_USBDStatus(
|
|
USB_MINIPORT_STATUS mpStatus
|
|
);
|
|
#define MPSTATUS_TO_USBSTATUS(s) USBPORT_MiniportStatus_TO_USBDStatus((s))
|
|
|
|
NTSTATUS
|
|
USBPORT_MiniportStatus_TO_NtStatus(
|
|
USB_MINIPORT_STATUS mpStatus
|
|
);
|
|
#define MPSTATUS_TO_NTSTATUS(s) USBPORT_MiniportStatus_TO_NtStatus((s))
|
|
|
|
RHSTATUS
|
|
USBPORT_MiniportStatus_TO_RHStatus(
|
|
USB_MINIPORT_STATUS mpStatus
|
|
);
|
|
#define MPSTATUS_TO_RHSTATUS(s) USBPORT_MiniportStatus_TO_RHStatus((s))
|
|
|
|
USBD_STATUS
|
|
USBPORT_RHStatus_TO_USBDStatus(
|
|
USB_MINIPORT_STATUS rhStatus
|
|
);
|
|
#define RHSTATUS_TO_USBDSTATUS(s) USBPORT_RHStatus_TO_USBDStatus((s))
|
|
|
|
|
|
NTSTATUS
|
|
USBPORT_FdoDeviceControlIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_PdoDeviceControlIrp(
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_FdoInternalDeviceControlIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_PdoInternalDeviceControlIrp(
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
#ifdef DRM_SUPPORT
|
|
|
|
NTSTATUS
|
|
USBPORT_PdoSetContentId(
|
|
IN PIRP irp,
|
|
IN PKSP_DRMAUDIOSTREAM_CONTENTID pKsProperty,
|
|
IN PKSDRMAUDIOSTREAM_CONTENTID pvData
|
|
);
|
|
|
|
#endif
|
|
|
|
NTSTATUS
|
|
USBPORT_ProcessURB(
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp,
|
|
PURB Urb
|
|
);
|
|
|
|
VOID
|
|
USBPORT_TrackPendingRequest(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp,
|
|
BOOLEAN AddToList
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetConfigValue(
|
|
PWSTR ValueName,
|
|
ULONG ValueType,
|
|
PVOID ValueData,
|
|
ULONG ValueLength,
|
|
PVOID Context,
|
|
PVOID EntryContext
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CancelTransfer(
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CompleteTransfer(
|
|
PTRANSFER_URB Urb,
|
|
USBD_STATUS CompleteCode
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_InterruptService(
|
|
PKINTERRUPT Interrupt,
|
|
PVOID Context
|
|
);
|
|
|
|
VOID
|
|
USBPORT_HalFreeCommonBuffer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBPORT_COMMON_BUFFER CommonBuffer
|
|
);
|
|
|
|
PUSBPORT_COMMON_BUFFER
|
|
USBPORT_HalAllocateCommonBuffer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
ULONG NumberOfBytes
|
|
);
|
|
|
|
USB_MINIPORT_STATUS
|
|
USBPORTSVC_GetMiniportRegistryKeyValue(
|
|
PDEVICE_DATA DeviceData,
|
|
BOOLEAN SoftwareBranch,
|
|
PWCHAR KeyNameString,
|
|
ULONG KeyNameStringLength,
|
|
PVOID Data,
|
|
ULONG DataLength
|
|
);
|
|
|
|
USB_MINIPORT_STATUS
|
|
USBPORTSVC_ReadWriteConfigSpace(
|
|
PDEVICE_DATA DeviceData,
|
|
BOOLEAN Read,
|
|
PVOID Buffer,
|
|
ULONG Offset,
|
|
ULONG Length
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_InternalOpenInterface(
|
|
PURB Urb,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_CONFIG_HANDLE ConfigHandle,
|
|
PUSBD_INTERFACE_INFORMATION InterfaceInformation,
|
|
OUT PUSBD_INTERFACE_HANDLE_I *InterfaceHandle,
|
|
BOOLEAN SendSetInterfaceCommand
|
|
);
|
|
|
|
PUSBD_CONFIG_HANDLE
|
|
USBPORT_InitializeConfigurationHandle(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_SelectConfiguration(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp,
|
|
PURB Urb
|
|
);
|
|
|
|
VOID
|
|
USBPORT_InternalCloseConfiguration(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
ULONG Flags
|
|
);
|
|
|
|
PUSB_INTERFACE_DESCRIPTOR
|
|
USBPORT_InternalParseConfigurationDescriptor(
|
|
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
|
|
UCHAR InterfaceNumber,
|
|
UCHAR AlternateSetting,
|
|
PBOOLEAN HasAlternateSettings
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_OpenEndpoint(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_PIPE_HANDLE_I PipeHandle,
|
|
USBD_STATUS *UsbdStatus,
|
|
BOOLEAN IsDefaultPipe
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CloseEndpoint(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
ULONG
|
|
USBPORT_InternalGetInterfaceLength(
|
|
PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor,
|
|
PUCHAR End
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RootHub_EndpointWorker(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_RootHub_CreateDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RootHub_RemoveDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PdoDeviceObject
|
|
);
|
|
|
|
RHSTATUS
|
|
USBPORT_RootHub_Endpoint0(
|
|
PHCD_TRANSFER_CONTEXT Transfer
|
|
);
|
|
|
|
RHSTATUS
|
|
USBPORT_RootHub_Endpoint1(
|
|
PHCD_TRANSFER_CONTEXT Transfer
|
|
);
|
|
|
|
VOID
|
|
USBPORT_PollEndpoint(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
RHSTATUS
|
|
USBPORT_RootHub_ClassCommand(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
|
PUCHAR Buffer,
|
|
PULONG BufferLength
|
|
);
|
|
|
|
RHSTATUS
|
|
USBPORT_RootHub_StandardCommand(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
|
PUCHAR Buffer,
|
|
PULONG BufferLength
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_QueryCapabilities(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_CAPABILITIES DeviceCapabilities
|
|
);
|
|
|
|
VOID
|
|
USBPORT_AddDeviceHandle(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle
|
|
);
|
|
|
|
VOID
|
|
USBPORT_AddPipeHandle(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PUSBD_PIPE_HANDLE_I PipeHandle
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushCancelList(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SetEndpointState(
|
|
PHCD_ENDPOINT Endpoint,
|
|
MP_ENDPOINT_STATE State
|
|
);
|
|
|
|
MP_ENDPOINT_STATE
|
|
USBPORT_GetEndpointState(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_IsrDpc(
|
|
PKDPC Dpc,
|
|
PVOID DeferredContext,
|
|
PVOID SystemArgument1,
|
|
PVOID SystemArgument2
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DoneTransfer(
|
|
PHCD_TRANSFER_CONTEXT Transfer
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_CompleteIsoTransfer(
|
|
PDEVICE_DATA DeviceData,
|
|
PDEVICE_DATA EndpointData,
|
|
PTRANSFER_PARAMETERS TransferParameters,
|
|
PMINIPORT_ISO_TRANSFER IsoTransfer
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_RequestAsyncCallback(
|
|
PDEVICE_DATA DeviceData,
|
|
ULONG MilliSeconds,
|
|
PVOID Context,
|
|
ULONG ContextLength,
|
|
PMINIPORT_CALLBACK CallbackFunction
|
|
);
|
|
|
|
VOID
|
|
USBPORT_QueueDoneTransfer(
|
|
PHCD_TRANSFER_CONTEXT Transfer,
|
|
USBD_STATUS CompleteCode
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushDoneTransferList(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_CoreEndpointWorker(
|
|
PHCD_ENDPOINT Endpoint,
|
|
ULONG Flags
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetBusInterface(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetBusInterfaceHub(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushAllEndpoints(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserGetDriverVersion(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_DRIVER_VERSION_PARAMETERS Parameters
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_CreateUsbDevice(
|
|
PVOID BusContext,
|
|
PUSB_DEVICE_HANDLE *NewDeviceHandle,
|
|
PUSB_DEVICE_HANDLE HubDeviceHandle,
|
|
USHORT PortStatus,
|
|
USHORT PortNumber
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_RemoveUsbDevice(
|
|
PVOID BusContext,
|
|
PUSB_DEVICE_HANDLE DeviceHandle,
|
|
ULONG Flags
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_InitializeDevice(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_BusInterfaceReference(
|
|
PVOID BusContext
|
|
);
|
|
|
|
VOID
|
|
USBPORT_BusInterfaceDereference(
|
|
PVOID BusContext
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_CreateDevice(
|
|
PUSBD_DEVICE_HANDLE *DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE HubDeviceHandle,
|
|
USHORT PortStatus,
|
|
USHORT PortNumber
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_DeferIrpCompletion(
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PIRP Irp,
|
|
PVOID Context
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_InvalidateRootHub(
|
|
PDEVICE_DATA DeviceData
|
|
);
|
|
|
|
RHSTATUS
|
|
USBPORT_RootHub_PortRequest(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
|
PORT_OPERATION PortOperation
|
|
);
|
|
|
|
VOID
|
|
USBPORT_ComputeRootHubDeviceCaps(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushMapTransferList(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_FdoPowerIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_PdoPowerIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DmaEndpointWorker(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_CreateLegacyFdoSymbolicLink(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DpcWorker(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_TransferFlushDpc(
|
|
PKDPC Dpc,
|
|
PVOID DeferredContext,
|
|
PVOID SystemArgument1,
|
|
PVOID SystemArgument2
|
|
);
|
|
|
|
VOID
|
|
USBPORT_InvalidateController(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
USB_CONTROLLER_STATE ControllerState
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushPendingList(
|
|
PHCD_ENDPOINT Endpoint,
|
|
ULONG Count
|
|
);
|
|
|
|
ULONG
|
|
USBPORT_CalculateUsbBandwidth(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SurpriseRemoveDpc(
|
|
PKDPC Dpc,
|
|
PVOID DeferredContext,
|
|
PVOID SystemArgument1,
|
|
PVOID SystemArgument2
|
|
);
|
|
|
|
VOID
|
|
USBPORT_HcResetDpc(
|
|
PKDPC Dpc,
|
|
PVOID DeferredContext,
|
|
PVOID SystemArgument1,
|
|
PVOID SystemArgument2
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_CompleteTransfer(
|
|
PDEVICE_DATA DeviceData,
|
|
PDEVICE_DATA EndpointData,
|
|
PTRANSFER_PARAMETERS TransferParameters,
|
|
USBD_STATUS UsbdStatus,
|
|
ULONG BytesTransferred
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_InvalidateEndpoint(
|
|
PDEVICE_DATA DeviceData,
|
|
PENDPOINT_DATA EndpointData
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_InitializeUsbDevice(
|
|
PVOID BusContext,
|
|
PUSB_DEVICE_HANDLE DeviceHandle
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_GetUsbDescriptors(
|
|
PVOID BusContext,
|
|
PUSB_DEVICE_HANDLE DeviceHandle,
|
|
PUCHAR DeviceDescriptorBuffer,
|
|
PULONG DeviceDescriptorBufferLength,
|
|
PUCHAR ConfigDescriptorBuffer,
|
|
PULONG ConfigDescriptorBufferLength
|
|
);
|
|
|
|
VOID
|
|
USBPORT_QueuePendingUrbToEndpoint(
|
|
PHCD_ENDPOINT Endpoint,
|
|
PTRANSFER_URB Urb
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetUsbDescriptor(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
UCHAR DescriptorType,
|
|
PUCHAR DescriptorBuffer,
|
|
PULONG DescriptorBufferLength
|
|
);
|
|
|
|
VOID
|
|
USBPORT_Wait(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
ULONG Milliseconds
|
|
);
|
|
|
|
VOID
|
|
USBPORT_Worker(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_FindUrbInList(
|
|
PTRANSFER_URB Urb,
|
|
PLIST_ENTRY ListHead
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SignalWorker(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_LogEntry(
|
|
PDEVICE_DATA DeviceData,
|
|
ULONG Mask,
|
|
ULONG Sig,
|
|
ULONG_PTR Info1,
|
|
ULONG_PTR Info2,
|
|
ULONG_PTR Info3
|
|
);
|
|
|
|
VOID
|
|
USBPORT_QueuePendingTransferIrp(
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CancelPendingTransferIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP CancelIrp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_QueuePendingUrbToEndpoint(
|
|
PHCD_ENDPOINT Endpoint,
|
|
PTRANSFER_URB Urb
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CancelActiveTransferIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP CancelIrp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_InsertIrpInTable(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBPORT_IRP_TABLE IrpTable,
|
|
PIRP Irp
|
|
);
|
|
|
|
PIRP
|
|
USBPORT_RemoveIrpFromTable(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBPORT_IRP_TABLE IrpTable,
|
|
PIRP Irp
|
|
);
|
|
|
|
PIRP
|
|
USBPORT_RemovePendingTransferIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
PIRP
|
|
USBPORT_RemoveActiveTransferIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FreeIrpTable(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBPORT_IRP_TABLE BaseIrpTable
|
|
);
|
|
|
|
PUCHAR
|
|
USBPORTSVC_MapHwPhysicalToVirtual(
|
|
HW_32BIT_PHYSICAL_ADDRESS HwPhysicalAddress,
|
|
PDEVICE_DATA DeviceData,
|
|
PENDPOINT_DATA EndpointData
|
|
);
|
|
|
|
PURB
|
|
USBPORT_UrbFromIrp(
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushAbortList(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_AbortEndpoint(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint,
|
|
PIRP Irp
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_LazyCloseEndpoint(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_RemoveDevice(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
ULONG Flags
|
|
);
|
|
|
|
VOID
|
|
USBPORT_AbortAllTransfers(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_CreateWorkerThread(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
|
|
#define IEP_SIGNAL_WORKER 0x00000001
|
|
#define IEP_REQUEST_INTERRUPT 0x00000002
|
|
|
|
VOID
|
|
USBPORT_InvalidateEndpoint(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint,
|
|
ULONG IEPflags
|
|
);
|
|
|
|
VOID
|
|
USBPORT_TerminateWorkerThread(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushClosedEndpointList(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
PIRP
|
|
USBPORT_FindActiveTransferIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_ReadWriteConfigSpace(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
BOOLEAN Read,
|
|
PVOID Buffer,
|
|
ULONG Offset,
|
|
ULONG Length
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_UsbFdoUserIoctl(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp,
|
|
PULONG BytesReturned
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserSendOnePacket(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PPACKET_PARAMETERS PacketParameters
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_CreatePortFdoSymbolicLink(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
#define USBPORT_ReadConfigSpace(fdo, buffer, offset, length) \
|
|
USBPORT_ReadWriteConfigSpace((fdo), TRUE, (buffer), (offset), (length))
|
|
|
|
#define USBPORT_WriteConfigSpace(fdo, buffer, offset, length) \
|
|
USBPORT_ReadWriteConfigSpace((fdo), FALSE, (buffer), (offset), (length))
|
|
|
|
BOOLEAN
|
|
USBPORT_ValidateConfigurtionDescriptor(
|
|
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
|
|
USBD_STATUS *UsbdStatus
|
|
);
|
|
|
|
|
|
VOID
|
|
USBPORT_UserGetControllerInfo_0(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_CONTROLLER_INFO_0 ControllerInfo_0
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserRawResetPort(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PRAW_RESET_PORT_PARAMETERS Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_GetRootPortStatus(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PRAW_ROOTPORT_PARAMETERS Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserSetRootPortFeature(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PRAW_ROOTPORT_FEATURE Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserClearRootPortFeature(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PRAW_ROOTPORT_FEATURE Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_StartDM_Timer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
LONG MillisecondInterval
|
|
);
|
|
|
|
VOID
|
|
USBPORT_IsrDpcWorker(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
BOOLEAN HcInterrupt
|
|
);
|
|
|
|
VOID
|
|
USBPORT_InvalidateRootHub(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_HcQueueWakeDpc(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_HcWakeDpc(
|
|
PKDPC Dpc,
|
|
PVOID DeferredContext,
|
|
PVOID SystemArgument1,
|
|
PVOID SystemArgument2
|
|
);
|
|
|
|
VOID
|
|
USBPORT_StopDM_Timer(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_EndpointHasQueuedTransfers(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
USB_USER_ERROR_CODE
|
|
USBPORT_NtStatus_TO_UsbUserStatus(
|
|
NTSTATUS NtStatus
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserGetControllerKey(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_UNICODE_NAME ControllerKey
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserPassThru(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_PASS_THRU_PARAMETERS PassThru
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CancelPendingWakeIrp(
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PIRP CancelIrp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_TurnControllerOff(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_TurnControllerOn(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
PHC_POWER_STATE
|
|
USBPORT_GetHcPowerState(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHC_POWER_STATE_TABLE HcPowerStateTbl,
|
|
SYSTEM_POWER_STATE SystemState
|
|
);
|
|
|
|
VOID
|
|
USBPORT_ComputeHcPowerStates(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_CAPABILITIES HcDeviceCaps,
|
|
PHC_POWER_STATE_TABLE HcPowerStateTbl
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_RestoreUsbDevice(
|
|
PVOID BusContext,
|
|
PUSB_DEVICE_HANDLE OldDeviceHandle,
|
|
PUSB_DEVICE_HANDLE NewDeviceHandle
|
|
);
|
|
|
|
MP_ENDPOINT_STATUS
|
|
USBPORT_GetEndpointStatus(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_CloneDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE OldDeviceHandle,
|
|
PUSBD_DEVICE_HANDLE NewDeviceHandle
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SuspendController(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_NukeAllEndpoints(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RemoveDeviceHandle(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle
|
|
);
|
|
|
|
VOID
|
|
USBPORT_StopRootHubPdo(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_ResumeController(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserPowerInformation(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_POWER_INFO PowerInformation
|
|
);
|
|
|
|
PHCD_TRANSFER_CONTEXT
|
|
USBPORT_UnlinkTransfer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PTRANSFER_URB Urb
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserOpenRawDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_OPEN_RAW_DEVICE_PARAMETERS Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserCloseRawDevice(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_CLOSE_RAW_DEVICE_PARAMETERS Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserSendRawCommand(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_SEND_RAW_COMMAND_PARAMETERS Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_InitializeIsoTransfer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PTRANSFER_URB Urb,
|
|
PHCD_TRANSFER_CONTEXT Transfer
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_InTextmodeSetup(
|
|
VOID
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_IsCompanionController(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PBOOLEAN ReturnResult
|
|
);
|
|
|
|
USB_CONTROLLER_FLAVOR
|
|
USBPORT_GetHcFlavor(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
USHORT PciVendorId,
|
|
USHORT PciProductId,
|
|
UCHAR PciRevision
|
|
);
|
|
|
|
VOID
|
|
USBPORT_ClosePipe(
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_PIPE_HANDLE_I PipeHandle
|
|
);
|
|
|
|
PUSBD_INTERFACE_HANDLE_I
|
|
USBPORT_GetInterfaceHandle(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_CONFIG_HANDLE ConfigurationHandle,
|
|
UCHAR InterfaceNumber
|
|
);
|
|
|
|
USBD_STATUS
|
|
USBPORT_InitializeInterfaceInformation(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_INTERFACE_INFORMATION InterfaceInformation,
|
|
PUSBD_CONFIG_HANDLE ConfigHandle
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetBusInterfaceUSBDI(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PIRP Irp
|
|
);
|
|
|
|
PVOID
|
|
USBPORT_GetDeviceBusContext(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE DeviceHandle,
|
|
PVOID HubBusContext
|
|
);
|
|
|
|
PVOID
|
|
USBPORTBUSIF_GetDeviceBusContext(
|
|
IN PVOID HubBusContext,
|
|
IN PVOID DeviceHandle
|
|
);
|
|
|
|
ULONG
|
|
USBPORT_ComputeTotalBandwidth(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PVOID BusContext
|
|
);
|
|
|
|
USB_MINIPORT_STATUS
|
|
USBPORT_NtStatus_TO_MiniportStatus(
|
|
NTSTATUS NtStatus
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_AllocateBandwidthUSB11(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_AllocateBandwidthUSB20(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FreeBandwidthUSB11(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FreeBandwidthUSB20(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserGetBandwidthInformation(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_BANDWIDTH_INFO BandwidthInfo
|
|
);
|
|
|
|
PTRANSACTION_TRANSLATOR
|
|
USBPORT_GetTt(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE HubDeviceHandle,
|
|
PUSHORT PortNumber
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_InitializeTT(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE HubDeviceHandle,
|
|
USHORT Port
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_Wait(
|
|
PDEVICE_DATA DeviceData,
|
|
ULONG MillisecondsToWait
|
|
);
|
|
|
|
ULONG
|
|
USBPORT_GetDeviceCount(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserGetBusStatistics0(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_BUS_STATISTICS_0 BusStatistics0
|
|
);
|
|
|
|
ULONG
|
|
USBPORT_ComputeAllocatedBandwidth(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PVOID BusContext
|
|
);
|
|
|
|
VOID
|
|
USBPORT_EndpointTimeout(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_TimeoutAllEndpoints(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_LegacyGetUnicodeName(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp,
|
|
PULONG BytesReturned
|
|
);
|
|
|
|
USHORT
|
|
USBPORT_GetTtDeviceAddress(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE HubDeviceHandle
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetSymbolicName(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PUNICODE_STRING SymbolicNameUnicodeString
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserGetRootHubName(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PUSB_UNICODE_NAME RootHubName
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_BusQueryDeviceInformation(
|
|
PVOID BusContext,
|
|
PUSB_DEVICE_HANDLE DeviceHandle,
|
|
PVOID DeviceInformationBuffer,
|
|
ULONG DeviceInformationBufferLength,
|
|
PULONG LengthOfDataCopied
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_IdleNotificationRequest(
|
|
PDEVICE_OBJECT PdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CompletePdoWaitWake(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CompletePendingIdleIrp(
|
|
PDEVICE_OBJECT PdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushController(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SubmitHcWakeIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_RootHubEnabledForWake(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RestoreController(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_ErrorCompleteIsoTransfer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoiint,
|
|
PHCD_TRANSFER_CONTEXT Transfer
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_SelectiveSuspendEnabled(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
PIRP
|
|
USBPORT_FindUrbInIrpTable(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBPORT_IRP_TABLE IrpTable,
|
|
PTRANSFER_URB Urb,
|
|
PIRP InputIrp
|
|
);
|
|
|
|
PUSBD_DEVICE_HANDLE
|
|
USBPORT_GetDeviceHandle(
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
//VOID
|
|
//USBPORT_CancelHcWakeIrp(
|
|
// PDEVICE_OBJECT FdoDeviceObject
|
|
// );
|
|
|
|
VOID
|
|
USBPORT_DoneSplitTransfer(
|
|
PHCD_TRANSFER_CONTEXT SplitTransfer
|
|
);
|
|
|
|
VOID
|
|
USBPORT_AssertTransferUrb(
|
|
PTRANSFER_URB Urb
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SplitTransfer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint,
|
|
PHCD_TRANSFER_CONTEXT Transfer,
|
|
PLIST_ENTRY TransferList
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_InvalidateController(
|
|
PDEVICE_DATA DeviceData,
|
|
USB_CONTROLLER_STATE ControllerState
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_BugCheck(
|
|
PDEVICE_DATA DeviceData
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DbgAcquireSpinLock(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBPORT_SPIN_LOCK SpinLock,
|
|
PKIRQL OldIrql
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DbgReleaseSpinLock(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBPORT_SPIN_LOCK SpinLock,
|
|
KIRQL NewIrql
|
|
);
|
|
|
|
VOID
|
|
USBPORT_InitializeSpinLock (
|
|
PUSBPORT_SPIN_LOCK SpinLock,
|
|
LONG SigA,
|
|
LONG SigR
|
|
);
|
|
|
|
VOID
|
|
USBPORT_PowerFault(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUCHAR MessageText
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_GetControllerInformation(
|
|
PVOID BusContext,
|
|
PVOID ControllerInformationBuffer,
|
|
ULONG ControllerInformationBufferLength,
|
|
PULONG LengthOfDataCopied
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_ControllerSelectiveSuspend(
|
|
PVOID BusContext,
|
|
BOOLEAN Enable
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_GetRootHubSymbolicName(
|
|
PVOID BusContext,
|
|
PVOID HubSymNameBuffer,
|
|
ULONG HubSymNameBufferLength,
|
|
PULONG LengthOfDataCopied
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_GetExtendedHubInformation(
|
|
PVOID BusContext,
|
|
PDEVICE_OBJECT HubPhysicalDeviceObject,
|
|
PVOID HubInformationBuffer,
|
|
ULONG HubInformationBufferLength,
|
|
PULONG LengthOfDataCopied
|
|
);
|
|
|
|
VOID
|
|
USBPORT_BeginTransmitTriggerPacket(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_EndTransmitTriggerPacket(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_CatcTrap(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RebalanceEndpoint(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PLIST_ENTRY EndpointList
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetDefaultBIOS_X(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PULONG BiosX,
|
|
PULONG GlobalDisableSS,
|
|
PULONG GlobalDisableCCDetect,
|
|
PULONG EnIdleEndpointSupport
|
|
);
|
|
|
|
VOID
|
|
USBPORT_ApplyBIOS_X(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_CAPABILITIES DeviceCaps,
|
|
ULONG BiosX
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_InitializeHsHub(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBD_DEVICE_HANDLE HubDeviceHandle,
|
|
ULONG TtCount
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_InitailizeUsb2Hub(
|
|
PVOID BusContext,
|
|
PUSB_DEVICE_HANDLE HubDeviceHandle,
|
|
ULONG TtCount
|
|
);
|
|
|
|
VOID
|
|
USBPORTSVC_NotifyDoubleBuffer(
|
|
PDEVICE_DATA DeviceData,
|
|
PTRANSFER_PARAMETERS TransferParameters,
|
|
PVOID DbSystemAddress,
|
|
ULONG DbLength
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushAdapterDBs(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_TRANSFER_CONTEXT Transfer
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_IsDeviceHighSpeed(
|
|
PVOID BusContext
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UpdateAllocatedBw(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UpdateAllocatedBwTt(
|
|
PTRANSACTION_TRANSLATOR Tt
|
|
);
|
|
|
|
VOID
|
|
USBPORT_BadRequestFlush(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
BOOLEAN ForceFlush
|
|
);
|
|
|
|
VOID
|
|
USBPORTBUSIF_FlushTransfers(
|
|
PVOID BusContext,
|
|
PVOID DeviceHandle
|
|
);
|
|
|
|
USBD_STATUS
|
|
USBPORT_FlushIsoTransfer(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PTRANSFER_PARAMETERS TransferParameters,
|
|
PMINIPORT_ISO_TRANSFER IsoTransfer
|
|
);
|
|
|
|
USBPORT_OS_VERSION
|
|
USBPORT_DetectOSVersion(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DoSetPowerD0(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_QueuePowerWorkItem(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORTBUSIF_RootHubInitNotification(
|
|
PVOID BusContext,
|
|
PVOID CallBackContext,
|
|
PRH_INIT_CALLBACK CallbackRoutine
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SynchronizeControllersStart(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_SynchronizeControllersResume(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
PDEVICE_OBJECT
|
|
USBPORT_FindUSB2Controller(
|
|
PDEVICE_OBJECT CcFdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RegisterUSB2fdo(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RegisterUSB1fdo(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DeregisterUSB2fdo(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DeregisterUSB1fdo(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
PDEVICE_RELATIONS
|
|
USBPORT_FindCompanionControllers(
|
|
PDEVICE_OBJECT Usb2FdoDeviceObject,
|
|
BOOLEAN ReferenceObjects,
|
|
BOOLEAN ReturnFdo
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserSetRootPortFeature(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PRAW_ROOTPORT_FEATURE Parameters
|
|
);
|
|
|
|
VOID
|
|
USBPORT_UserClearRootPortFeature(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PUSBUSER_REQUEST_HEADER Header,
|
|
PRAW_ROOTPORT_FEATURE Parameters
|
|
);
|
|
|
|
ULONG
|
|
USBPORT_SelectOrdinal(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PHCD_ENDPOINT Endpoint
|
|
);
|
|
|
|
VOID
|
|
USBPORT_WriteHaction(
|
|
PDEVICE_OBJECT Usb2FdoDeviceObject,
|
|
ULONG Haction
|
|
);
|
|
|
|
USB_MINIPORT_STATUS
|
|
USBPORT_RootHub_PowerUsb2Port(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
USHORT Port
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_BusEnumLogEntry(
|
|
PVOID BusContext,
|
|
ULONG DriverTag,
|
|
ULONG EnumTag,
|
|
ULONG P1,
|
|
ULONG P2
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_ValidateRootPortApi(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
ULONG PortNumber
|
|
);
|
|
|
|
BOOLEAN
|
|
USBPORT_DCA_Enabled(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
USB_MINIPORT_STATUS
|
|
USBPORT_RootHub_PowerUsbCcPort(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
USHORT Port
|
|
);
|
|
|
|
USB_MINIPORT_STATUS
|
|
USBPORT_RootHub_PowerAndChirpAllCcPorts(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
#ifdef LOG_OCA_DATA
|
|
|
|
VOID
|
|
USBPORTBUSIF_SetDeviceHandleData(
|
|
PVOID BusContext,
|
|
PVOID DeviceHandle,
|
|
PDEVICE_OBJECT UsbDevicePdo
|
|
);
|
|
|
|
VOID
|
|
USBPORT_RecordOcaData(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
POCA_DATA OcaData,
|
|
PHCD_TRANSFER_CONTEXT Transfer,
|
|
PIRP Irp
|
|
);
|
|
#endif
|
|
|
|
RHSTATUS
|
|
USBPORT_RootHub_HubRequest(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PORT_OPERATION PortOperation
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_ProcessHcWakeIrp(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PIRP Irp
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_HcWakeIrp_Io_Completion(
|
|
PDEVICE_OBJECT DeviceObject,
|
|
PIRP Irp,
|
|
PVOID Context
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_HcWakeIrp_Po_Completion(
|
|
PDEVICE_OBJECT DeviceObject,
|
|
UCHAR MinorFunction,
|
|
POWER_STATE DeviceState,
|
|
PVOID Context,
|
|
PIO_STATUS_BLOCK IoStatus
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DisarmHcForWake(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_ArmHcForWake(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
VOID
|
|
USBPORT_FlushCahcedRegistryKeys(
|
|
PDEVICE_OBJECT FdoDeviceObject
|
|
);
|
|
|
|
NTSTATUS
|
|
USBPORT_GetCachedRegistryKeyValueForPdo(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT PhysicalDeviceObject,
|
|
BOOLEAN SoftwareBranch,
|
|
PWCHAR KeyNameString,
|
|
ULONG KeyNameStringLength,
|
|
PVOID Data,
|
|
ULONG DataLength
|
|
);
|
|
|
|
VOID
|
|
USBPORT_DoRootHubCallback(
|
|
PDEVICE_OBJECT FdoDeviceObject,
|
|
PDEVICE_OBJECT Usb2Fdo
|
|
);
|
|
|
|
#endif /* __PROTOTYP_H__ */
|