mirror of
https://github.com/reactos/reactos.git
synced 2024-07-11 07:05:12 +00:00
[USBOHCI]
- Fix regressions introduced by libusb svn path=/trunk/; revision=55913
This commit is contained in:
parent
bf426aafef
commit
c131df4a4c
|
@ -32,7 +32,7 @@ VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
StatusChangeWorkItemRoutine(PVOID Context);
|
StatusChangeWorkItemRoutine(PVOID Context);
|
||||||
|
|
||||||
class CUSBHardwareDevice : public IUSBHardwareDevice
|
class CUSBHardwareDevice : public IOHCIHardwareDevice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
||||||
|
@ -125,6 +125,7 @@ CUSBHardwareDevice::QueryInterface(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::Initialize(
|
CUSBHardwareDevice::Initialize(
|
||||||
PDRIVER_OBJECT DriverObject,
|
PDRIVER_OBJECT DriverObject,
|
||||||
PDEVICE_OBJECT FunctionalDeviceObject,
|
PDEVICE_OBJECT FunctionalDeviceObject,
|
||||||
|
@ -135,6 +136,7 @@ CUSBHardwareDevice::Initialize(
|
||||||
PCI_COMMON_CONFIG PciConfig;
|
PCI_COMMON_CONFIG PciConfig;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
ULONG BytesRead;
|
ULONG BytesRead;
|
||||||
|
PUSBQUEUE Queue;
|
||||||
|
|
||||||
DPRINT("CUSBHardwareDevice::Initialize\n");
|
DPRINT("CUSBHardwareDevice::Initialize\n");
|
||||||
|
|
||||||
|
@ -151,13 +153,19 @@ CUSBHardwareDevice::Initialize(
|
||||||
//
|
//
|
||||||
// Create the UsbQueue class that will handle the Asynchronous and Periodic Schedules
|
// Create the UsbQueue class that will handle the Asynchronous and Periodic Schedules
|
||||||
//
|
//
|
||||||
Status = CreateUSBQueue((PUSBQUEUE*)&m_UsbQueue);
|
Status = CreateUSBQueue(&Queue);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
DPRINT1("Failed to create UsbQueue!\n");
|
DPRINT1("Failed to create UsbQueue!\n");
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get ohci queue
|
||||||
|
m_UsbQueue = POHCIQUEUE(Queue);
|
||||||
|
|
||||||
|
// sanity check
|
||||||
|
ASSERT(m_UsbQueue);
|
||||||
|
|
||||||
//
|
//
|
||||||
// store device objects
|
// store device objects
|
||||||
//
|
//
|
||||||
|
@ -205,6 +213,7 @@ CUSBHardwareDevice::Initialize(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::PnpStart(
|
CUSBHardwareDevice::PnpStart(
|
||||||
PCM_RESOURCE_LIST RawResources,
|
PCM_RESOURCE_LIST RawResources,
|
||||||
PCM_RESOURCE_LIST TranslatedResources)
|
PCM_RESOURCE_LIST TranslatedResources)
|
||||||
|
@ -351,7 +360,7 @@ CUSBHardwareDevice::PnpStart(
|
||||||
//
|
//
|
||||||
// Initialize the UsbQueue now that we have an AdapterObject.
|
// Initialize the UsbQueue now that we have an AdapterObject.
|
||||||
//
|
//
|
||||||
Status = m_UsbQueue->Initialize(PUSBHARDWAREDEVICE(this), m_Adapter, m_MemoryManager, NULL);
|
Status = m_UsbQueue->Initialize(this, m_Adapter, m_MemoryManager, NULL);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
DPRINT1("Failed to Initialize the UsbQueue\n");
|
DPRINT1("Failed to Initialize the UsbQueue\n");
|
||||||
|
@ -383,6 +392,7 @@ CUSBHardwareDevice::PnpStart(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::PnpStop(void)
|
CUSBHardwareDevice::PnpStop(void)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED
|
||||||
|
@ -390,6 +400,7 @@ CUSBHardwareDevice::PnpStop(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetDeviceDetails(
|
CUSBHardwareDevice::GetDeviceDetails(
|
||||||
OUT OPTIONAL PUSHORT VendorId,
|
OUT OPTIONAL PUSHORT VendorId,
|
||||||
OUT OPTIONAL PUSHORT DeviceId,
|
OUT OPTIONAL PUSHORT DeviceId,
|
||||||
|
@ -431,7 +442,9 @@ CUSBHardwareDevice::GetDeviceDetails(
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS CUSBHardwareDevice::GetDMA(
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
|
CUSBHardwareDevice::GetDMA(
|
||||||
OUT struct IDMAMemoryManager **OutDMAMemoryManager)
|
OUT struct IDMAMemoryManager **OutDMAMemoryManager)
|
||||||
{
|
{
|
||||||
if (!m_MemoryManager)
|
if (!m_MemoryManager)
|
||||||
|
@ -441,6 +454,7 @@ NTSTATUS CUSBHardwareDevice::GetDMA(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetUSBQueue(
|
CUSBHardwareDevice::GetUSBQueue(
|
||||||
OUT struct IUSBQueue **OutUsbQueue)
|
OUT struct IUSBQueue **OutUsbQueue)
|
||||||
{
|
{
|
||||||
|
@ -636,6 +650,7 @@ CUSBHardwareDevice::AllocateEndpointDescriptor(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetBulkHeadEndpointDescriptor(
|
CUSBHardwareDevice::GetBulkHeadEndpointDescriptor(
|
||||||
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
||||||
{
|
{
|
||||||
|
@ -643,6 +658,7 @@ CUSBHardwareDevice::GetBulkHeadEndpointDescriptor(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetInterruptEndpointDescriptors(
|
CUSBHardwareDevice::GetInterruptEndpointDescriptors(
|
||||||
struct _OHCI_ENDPOINT_DESCRIPTOR *** OutDescriptor)
|
struct _OHCI_ENDPOINT_DESCRIPTOR *** OutDescriptor)
|
||||||
{
|
{
|
||||||
|
@ -650,6 +666,7 @@ CUSBHardwareDevice::GetInterruptEndpointDescriptors(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetIsochronousHeadEndpointDescriptor(
|
CUSBHardwareDevice::GetIsochronousHeadEndpointDescriptor(
|
||||||
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
||||||
{
|
{
|
||||||
|
@ -657,6 +674,7 @@ CUSBHardwareDevice::GetIsochronousHeadEndpointDescriptor(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::HeadEndpointDescriptorModified(
|
CUSBHardwareDevice::HeadEndpointDescriptorModified(
|
||||||
ULONG Type)
|
ULONG Type)
|
||||||
{
|
{
|
||||||
|
@ -677,6 +695,7 @@ CUSBHardwareDevice::HeadEndpointDescriptorModified(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetControlHeadEndpointDescriptor(
|
CUSBHardwareDevice::GetControlHeadEndpointDescriptor(
|
||||||
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
||||||
{
|
{
|
||||||
|
@ -1009,6 +1028,7 @@ CUSBHardwareDevice::StopController(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::ResetPort(
|
CUSBHardwareDevice::ResetPort(
|
||||||
IN ULONG PortIndex)
|
IN ULONG PortIndex)
|
||||||
{
|
{
|
||||||
|
@ -1018,6 +1038,7 @@ CUSBHardwareDevice::ResetPort(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetPortStatus(
|
CUSBHardwareDevice::GetPortStatus(
|
||||||
ULONG PortId,
|
ULONG PortId,
|
||||||
OUT USHORT *PortStatus,
|
OUT USHORT *PortStatus,
|
||||||
|
@ -1080,6 +1101,7 @@ CUSBHardwareDevice::GetPortStatus(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::ClearPortStatus(
|
CUSBHardwareDevice::ClearPortStatus(
|
||||||
ULONG PortId,
|
ULONG PortId,
|
||||||
ULONG Status)
|
ULONG Status)
|
||||||
|
@ -1154,6 +1176,7 @@ CUSBHardwareDevice::ClearPortStatus(
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::SetPortFeature(
|
CUSBHardwareDevice::SetPortFeature(
|
||||||
ULONG PortId,
|
ULONG PortId,
|
||||||
ULONG Feature)
|
ULONG Feature)
|
||||||
|
@ -1244,6 +1267,7 @@ CUSBHardwareDevice::SetPortFeature(
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::SetStatusChangeEndpointCallBack(
|
CUSBHardwareDevice::SetStatusChangeEndpointCallBack(
|
||||||
PVOID CallBack,
|
PVOID CallBack,
|
||||||
PVOID Context)
|
PVOID Context)
|
||||||
|
@ -1253,6 +1277,7 @@ CUSBHardwareDevice::SetStatusChangeEndpointCallBack(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBHardwareDevice::GetCurrentFrameNumber(
|
CUSBHardwareDevice::GetCurrentFrameNumber(
|
||||||
PULONG FrameNumber)
|
PULONG FrameNumber)
|
||||||
{
|
{
|
||||||
|
@ -1548,6 +1573,7 @@ StatusChangeWorkItemRoutine(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateUSBHardware(
|
CreateUSBHardware(
|
||||||
PUSBHARDWAREDEVICE *OutHardware)
|
PUSBHARDWAREDEVICE *OutHardware)
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include "usbohci.h"
|
#include "usbohci.h"
|
||||||
#include "hardware.h"
|
#include "hardware.h"
|
||||||
|
|
||||||
class CUSBQueue : public IUSBQueue
|
class CUSBQueue : public IOHCIQueue
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
||||||
|
@ -86,17 +86,25 @@ CUSBQueue::QueryInterface(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::Initialize(
|
CUSBQueue::Initialize(
|
||||||
IN PUSBHARDWAREDEVICE Hardware,
|
IN PUSBHARDWAREDEVICE Hardware,
|
||||||
IN PDMA_ADAPTER AdapterObject,
|
IN PDMA_ADAPTER AdapterObject,
|
||||||
IN PDMAMEMORYMANAGER MemManager,
|
IN PDMAMEMORYMANAGER MemManager,
|
||||||
IN OPTIONAL PKSPIN_LOCK Lock)
|
IN OPTIONAL PKSPIN_LOCK Lock)
|
||||||
{
|
{
|
||||||
|
if (!Hardware)
|
||||||
|
{
|
||||||
|
// WTF
|
||||||
|
DPRINT1("[USBOHCI] Failed to initialize queue\n");
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// store hardware
|
// store hardware
|
||||||
//
|
//
|
||||||
m_Hardware = POHCIHARDWAREDEVICE(Hardware);
|
m_Hardware = POHCIHARDWAREDEVICE(Hardware);
|
||||||
|
ASSERT(m_Hardware);
|
||||||
|
|
||||||
//
|
//
|
||||||
// get bulk endpoint descriptor
|
// get bulk endpoint descriptor
|
||||||
|
@ -288,6 +296,7 @@ CUSBQueue::AddEndpointDescriptor(
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::AddUSBRequest(
|
CUSBQueue::AddUSBRequest(
|
||||||
IUSBRequest * Req)
|
IUSBRequest * Req)
|
||||||
{
|
{
|
||||||
|
@ -337,6 +346,7 @@ CUSBQueue::AddUSBRequest(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::CreateUSBRequest(
|
CUSBQueue::CreateUSBRequest(
|
||||||
IUSBRequest **OutRequest)
|
IUSBRequest **OutRequest)
|
||||||
{
|
{
|
||||||
|
@ -696,6 +706,7 @@ CUSBQueue::PrintEndpointList(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::TransferDescriptorCompletionCallback(
|
CUSBQueue::TransferDescriptorCompletionCallback(
|
||||||
ULONG TransferDescriptorLogicalAddress)
|
ULONG TransferDescriptorLogicalAddress)
|
||||||
{
|
{
|
||||||
|
@ -860,6 +871,7 @@ CUSBQueue::FindInterruptEndpointDescriptor(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBQueue::AbortDevicePipe(
|
CUSBQueue::AbortDevicePipe(
|
||||||
IN UCHAR DeviceAddress,
|
IN UCHAR DeviceAddress,
|
||||||
IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor)
|
IN PUSB_ENDPOINT_DESCRIPTOR EndpointDescriptor)
|
||||||
|
@ -973,6 +985,7 @@ CUSBQueue::AbortDevicePipe(
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateUSBQueue(
|
CreateUSBQueue(
|
||||||
PUSBQUEUE *OutUsbQueue)
|
PUSBQUEUE *OutUsbQueue)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include "usbohci.h"
|
#include "usbohci.h"
|
||||||
#include "hardware.h"
|
#include "hardware.h"
|
||||||
|
|
||||||
class CUSBRequest : public IUSBRequest
|
class CUSBRequest : public IOHCIRequest
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
|
||||||
|
@ -157,6 +157,7 @@ CUSBRequest::QueryInterface(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::InitializeWithSetupPacket(
|
CUSBRequest::InitializeWithSetupPacket(
|
||||||
IN PDMAMEMORYMANAGER DmaManager,
|
IN PDMAMEMORYMANAGER DmaManager,
|
||||||
IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
|
||||||
|
@ -212,6 +213,7 @@ CUSBRequest::InitializeWithSetupPacket(
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::InitializeWithIrp(
|
CUSBRequest::InitializeWithIrp(
|
||||||
IN PDMAMEMORYMANAGER DmaManager,
|
IN PDMAMEMORYMANAGER DmaManager,
|
||||||
IN struct IUSBDevice* Device,
|
IN struct IUSBDevice* Device,
|
||||||
|
@ -422,6 +424,7 @@ CUSBRequest::InitializeWithIrp(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::IsRequestComplete()
|
CUSBRequest::IsRequestComplete()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
@ -443,6 +446,7 @@ CUSBRequest::IsRequestComplete()
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
ULONG
|
ULONG
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetTransferType()
|
CUSBRequest::GetTransferType()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
@ -483,6 +487,7 @@ CUSBRequest::GetMaxPacketSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
UCHAR
|
UCHAR
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetInterval()
|
CUSBRequest::GetInterval()
|
||||||
{
|
{
|
||||||
ASSERT(m_EndpointDescriptor);
|
ASSERT(m_EndpointDescriptor);
|
||||||
|
@ -568,6 +573,7 @@ CUSBRequest::InternalGetPidDirection()
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
UCHAR
|
UCHAR
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetDeviceAddress()
|
CUSBRequest::GetDeviceAddress()
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION IoStack;
|
PIO_STACK_LOCATION IoStack;
|
||||||
|
@ -1560,12 +1566,14 @@ CUSBRequest::BuildControlTransferDescriptor(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetEndpointDescriptor(
|
CUSBRequest::GetEndpointDescriptor(
|
||||||
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
struct _OHCI_ENDPOINT_DESCRIPTOR ** OutDescriptor)
|
||||||
{
|
{
|
||||||
ULONG TransferType;
|
ULONG TransferType;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// get transfer type
|
// get transfer type
|
||||||
//
|
//
|
||||||
|
@ -1592,6 +1600,8 @@ CUSBRequest::GetEndpointDescriptor(
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (NT_SUCCESS(Status))
|
if (NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
@ -1613,6 +1623,7 @@ CUSBRequest::GetEndpointDescriptor(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::GetResultStatus(
|
CUSBRequest::GetResultStatus(
|
||||||
OUT OPTIONAL NTSTATUS * NtStatusCode,
|
OUT OPTIONAL NTSTATUS * NtStatusCode,
|
||||||
OUT OPTIONAL PULONG UrbStatusCode)
|
OUT OPTIONAL PULONG UrbStatusCode)
|
||||||
|
@ -1646,6 +1657,7 @@ CUSBRequest::GetResultStatus(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::FreeEndpointDescriptor(
|
CUSBRequest::FreeEndpointDescriptor(
|
||||||
struct _OHCI_ENDPOINT_DESCRIPTOR * OutDescriptor)
|
struct _OHCI_ENDPOINT_DESCRIPTOR * OutDescriptor)
|
||||||
{
|
{
|
||||||
|
@ -1878,12 +1890,10 @@ CUSBRequest::CheckError(
|
||||||
TransferDescriptor = (POHCI_GENERAL_TD)TransferDescriptor->NextLogicalDescriptor;
|
TransferDescriptor = (POHCI_GENERAL_TD)TransferDescriptor->NextLogicalDescriptor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
STDMETHODCALLTYPE
|
||||||
CUSBRequest::CompletionCallback()
|
CUSBRequest::CompletionCallback()
|
||||||
{
|
{
|
||||||
PIO_STACK_LOCATION IoStack;
|
PIO_STACK_LOCATION IoStack;
|
||||||
|
@ -1943,20 +1953,9 @@ CUSBRequest::CompletionCallback()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
//-----------------------------------------------------------------------------------------
|
|
||||||
BOOLEAN
|
|
||||||
CUSBRequest::IsQueueHeadComplete(
|
|
||||||
struct _QUEUE_HEAD * QueueHead)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
InternalCreateUSBRequest(
|
InternalCreateUSBRequest(
|
||||||
PUSBREQUEST *OutRequest)
|
PUSBREQUEST *OutRequest)
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,20 +59,23 @@ extern
|
||||||
(VOID)((!(exp)) ? \
|
(VOID)((!(exp)) ? \
|
||||||
RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
|
RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
|
||||||
//
|
//
|
||||||
// hardware.cpp
|
// hardware.cpp
|
||||||
//
|
//
|
||||||
NTSTATUS CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
|
NTSTATUS NTAPI CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
|
||||||
|
|
||||||
//
|
//
|
||||||
// usb_queue.cpp
|
// usb_queue.cpp
|
||||||
//
|
//
|
||||||
NTSTATUS CreateUSBQueue(PUSBQUEUE *OutUsbQueue);
|
NTSTATUS NTAPI CreateUSBQueue(PUSBQUEUE *OutUsbQueue);
|
||||||
|
|
||||||
//
|
//
|
||||||
// usb_request.cpp
|
// usb_request.cpp
|
||||||
//
|
//
|
||||||
NTSTATUS InternalCreateUSBRequest(PUSBREQUEST *OutRequest);
|
NTSTATUS NTAPI InternalCreateUSBRequest(PUSBREQUEST *OutRequest);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -747,6 +747,7 @@ CHCDController::SetSymbolicLink(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateHCDController(
|
CreateHCDController(
|
||||||
PHCDCONTROLLER *OutHcdController)
|
PHCDCONTROLLER *OutHcdController)
|
||||||
{
|
{
|
||||||
|
|
|
@ -3718,6 +3718,7 @@ CHubController::CreatePDO(
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateHubController(
|
CreateHubController(
|
||||||
PHUBCONTROLLER *OutHcdController)
|
PHUBCONTROLLER *OutHcdController)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
//
|
//
|
||||||
DRIVER_ADD_DEVICE USBLIB_AddDevice;
|
DRIVER_ADD_DEVICE USBLIB_AddDevice;
|
||||||
|
|
||||||
|
extern
|
||||||
|
"C"
|
||||||
|
{
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
USBLIB_AddDevice(
|
USBLIB_AddDevice(
|
||||||
|
@ -54,7 +57,11 @@ USBLIB_AddDevice(
|
||||||
return Status;
|
return Status;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extern
|
||||||
|
"C"
|
||||||
|
{
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
USBLIB_Dispatch(
|
USBLIB_Dispatch(
|
||||||
|
@ -121,3 +128,4 @@ USBLIB_Dispatch(
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
}
|
|
@ -66,35 +66,31 @@ typedef struct
|
||||||
RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
|
RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
|
||||||
|
|
||||||
// hcd_controller.cpp
|
// hcd_controller.cpp
|
||||||
NTSTATUS CreateHCDController(PHCDCONTROLLER *HcdController);
|
extern "C"
|
||||||
|
{
|
||||||
|
NTSTATUS NTAPI CreateHCDController(PHCDCONTROLLER *HcdController);
|
||||||
|
|
||||||
// hardware.cpp
|
// hardware.cpp
|
||||||
NTSTATUS CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
|
NTSTATUS NTAPI CreateUSBHardware(PUSBHARDWAREDEVICE *OutHardware);
|
||||||
|
|
||||||
// misc.cpp
|
// misc.cpp
|
||||||
NTSTATUS NTAPI SyncForwardIrp(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
NTSTATUS NTAPI SyncForwardIrp(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||||
NTSTATUS NTAPI GetBusInterface(PDEVICE_OBJECT DeviceObject, PBUS_INTERFACE_STANDARD busInterface);
|
NTSTATUS NTAPI GetBusInterface(PDEVICE_OBJECT DeviceObject, PBUS_INTERFACE_STANDARD busInterface);
|
||||||
|
|
||||||
// root_hub_controller.cpp
|
// root_hub_controller.cpp
|
||||||
NTSTATUS CreateHubController(PHUBCONTROLLER * OutHubController);
|
NTSTATUS NTAPI CreateHubController(PHUBCONTROLLER * OutHubController);
|
||||||
|
|
||||||
// memory_manager.cpp
|
// memory_manager.cpp
|
||||||
NTSTATUS CreateDMAMemoryManager(PDMAMEMORYMANAGER *OutMemoryManager);
|
NTSTATUS NTAPI CreateDMAMemoryManager(PDMAMEMORYMANAGER *OutMemoryManager);
|
||||||
|
|
||||||
|
|
||||||
// usb_device.cpp
|
// usb_device.cpp
|
||||||
NTSTATUS CreateUSBDevice(PUSBDEVICE *OutDevice);
|
NTSTATUS NTAPI CreateUSBDevice(PUSBDEVICE *OutDevice);
|
||||||
|
|
||||||
// usb_queue.cpp
|
|
||||||
NTSTATUS CreateUSBQueue(PUSBQUEUE *OutUsbQueue);
|
|
||||||
|
|
||||||
// usb_request.cpp
|
|
||||||
NTSTATUS InternalCreateUSBRequest(PUSBREQUEST *OutRequest);
|
|
||||||
|
|
||||||
// libusb.cpp
|
// libusb.cpp
|
||||||
NTSTATUS NTAPI USBLIB_AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT PhysicalDeviceObject);
|
NTSTATUS NTAPI USBLIB_AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_OBJECT PhysicalDeviceObject);
|
||||||
NTSTATUS NTAPI USBLIB_Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
NTSTATUS NTAPI USBLIB_Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -335,6 +335,7 @@ CDMAMemoryManager::Release(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateDMAMemoryManager(
|
CreateDMAMemoryManager(
|
||||||
PDMAMEMORYMANAGER *OutMemoryManager)
|
PDMAMEMORYMANAGER *OutMemoryManager)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1183,6 +1183,7 @@ CUSBDevice::AbortPipe(
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
CreateUSBDevice(
|
CreateUSBDevice(
|
||||||
PUSBDEVICE *OutDevice)
|
PUSBDEVICE *OutDevice)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue