#pragma once #include #include #include #include PVOID InternalCreateUsbDevice(UCHAR DeviceNumber, ULONG Port, PUSB_DEVICE Parent, BOOLEAN Hub); VOID USB_BUSIFFN InterfaceReference(PVOID BusContext); VOID USB_BUSIFFN InterfaceDereference(PVOID BusContext); NTSTATUS USB_BUSIFFN CreateUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE *NewDevice, PUSB_DEVICE_HANDLE HubDeviceHandle, USHORT PortStatus, USHORT PortNumber); NTSTATUS USB_BUSIFFN InitializeUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle); NTSTATUS USB_BUSIFFN GetUsbDescriptors(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle, PUCHAR DeviceDescriptorBuffer, PULONG DeviceDescriptorBufferLength, PUCHAR ConfigDescriptorBuffer, PULONG ConfigDescriptorBufferLength); NTSTATUS USB_BUSIFFN RemoveUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle, ULONG Flags); NTSTATUS USB_BUSIFFN RestoreUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE OldDeviceHandle, PUSB_DEVICE_HANDLE NewDeviceHandle); NTSTATUS USB_BUSIFFN GetPortHackFlags(PVOID BusContext, PULONG Flags); NTSTATUS USB_BUSIFFN QueryDeviceInformation(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle, PVOID DeviceInformationBuffer, ULONG DeviceInformationBufferLength, PULONG LengthReturned); NTSTATUS USB_BUSIFFN GetControllerInformation(PVOID BusContext, PVOID ControllerInformationBuffer, ULONG ControllerInformationBufferLength, PULONG LengthReturned); NTSTATUS USB_BUSIFFN ControllerSelectiveSuspend(PVOID BusContext, BOOLEAN Enable); NTSTATUS USB_BUSIFFN GetExtendedHubInformation(PVOID BusContext, PDEVICE_OBJECT HubPhysicalDeviceObject, PVOID HubInformationBuffer, ULONG HubInformationBufferLength, PULONG LengthReturned); NTSTATUS USB_BUSIFFN GetRootHubSymbolicName(PVOID BusContext, PVOID HubSymNameBuffer, ULONG HubSymNameBufferLength, PULONG HubSymNameActualLength); PVOID USB_BUSIFFN GetDeviceBusContext(PVOID HubBusContext, PVOID DeviceHandle); NTSTATUS USB_BUSIFFN Initialize20Hub(PVOID BusContext, PUSB_DEVICE_HANDLE HubDeviceHandle, ULONG TtCount); NTSTATUS USB_BUSIFFN RootHubInitNotification(PVOID BusContext, PVOID CallbackContext, PRH_INIT_CALLBACK CallbackRoutine); VOID USB_BUSIFFN FlushTransfers(PVOID BusContext, PVOID DeviceHandle); VOID USB_BUSIFFN SetDeviceHandleData(PVOID BusContext, PVOID DeviceHandle, PDEVICE_OBJECT UsbDevicePdo); VOID USB_BUSIFFN GetUSBDIVersion(PVOID BusContext, PUSBD_VERSION_INFORMATION VersionInformation, PULONG HcdCapabilites); NTSTATUS USB_BUSIFFN QueryBusTime(PVOID BusContext, PULONG CurrentFrame); NTSTATUS USB_BUSIFFN SubmitIsoOutUrb(PVOID BusContext, PURB Urb); NTSTATUS USB_BUSIFFN QueryBusInformation(PVOID BusContext, ULONG Level, PVOID BusInformationBuffer, PULONG BusInformationBufferLength, PULONG BusInformationActualLength); BOOLEAN USB_BUSIFFN IsDeviceHighSpeed(PVOID BusCOntext); NTSTATUS USB_BUSIFFN EnumLogEntry(PVOID BusContext, ULONG DriverTag, ULONG EnumTag, ULONG P1, ULONG P2);