[USBPORT]

Patch by Vadim Galyant:
- Improve variable naming
- Make more consistent use of constants

svn path=/trunk/; revision=75314
This commit is contained in:
Thomas Faber 2017-07-09 21:05:58 +00:00
parent 0e8444a310
commit 4c8e09598a
6 changed files with 71 additions and 54 deletions

View file

@ -9,7 +9,7 @@
ULONG ULONG
NTAPI NTAPI
USBPORT_DbgPrint(IN PVOID Context, USBPORT_DbgPrint(IN PVOID MiniPortExtension,
IN ULONG Level, IN ULONG Level,
IN PCH Format, IN PCH Format,
...) ...)
@ -20,7 +20,7 @@ USBPORT_DbgPrint(IN PVOID Context,
ULONG ULONG
NTAPI NTAPI
USBPORT_TestDebugBreak(IN PVOID Context) USBPORT_TestDebugBreak(IN PVOID MiniPortExtension)
{ {
DPRINT("USBPORT_TestDebugBreak: UNIMPLEMENTED. FIXME. \n"); DPRINT("USBPORT_TestDebugBreak: UNIMPLEMENTED. FIXME. \n");
return 0; return 0;
@ -28,7 +28,7 @@ USBPORT_TestDebugBreak(IN PVOID Context)
ULONG ULONG
NTAPI NTAPI
USBPORT_AssertFailure(PVOID Context, USBPORT_AssertFailure(PVOID MiniPortExtension,
PVOID FailedAssertion, PVOID FailedAssertion,
PVOID FileName, PVOID FileName,
ULONG LineNumber, ULONG LineNumber,
@ -41,7 +41,7 @@ USBPORT_AssertFailure(PVOID Context,
VOID VOID
NTAPI NTAPI
USBPORT_BugCheck(IN PVOID Context) USBPORT_BugCheck(IN PVOID MiniPortExtension)
{ {
DPRINT1("USBPORT_BugCheck: FIXME \n"); DPRINT1("USBPORT_BugCheck: FIXME \n");
//KeBugCheckEx(BUGCODE_USB_DRIVER, ...); //KeBugCheckEx(BUGCODE_USB_DRIVER, ...);
@ -50,15 +50,15 @@ USBPORT_BugCheck(IN PVOID Context)
ULONG ULONG
NTAPI NTAPI
USBPORT_LogEntry(IN PVOID BusContext, USBPORT_LogEntry(IN PVOID MiniPortExtension,
IN ULONG DriverTag, IN ULONG DriverTag,
IN ULONG EnumTag, IN ULONG EnumTag,
IN ULONG P1, IN ULONG P1,
IN ULONG P2, IN ULONG P2,
IN ULONG P3) IN ULONG P3)
{ {
DPRINT_MINIPORT("USBPORT_LogEntry: BusContext - %p, EnumTag - %lx, P1 - %lx, P2 - %lx, P3 - %lx\n", DPRINT_MINIPORT("USBPORT_LogEntry: MiniPortExtension - %p, EnumTag - %lx, P1 - %lx, P2 - %lx, P3 - %lx\n",
BusContext, MiniPortExtension,
EnumTag, EnumTag,
P1, P1,
P2, P2,

View file

@ -1372,7 +1372,7 @@ Exit:
if (!(FdoCommonExtension->PnpStateFlags & USBPORT_PNP_STATE_FAILED)) if (!(FdoCommonExtension->PnpStateFlags & USBPORT_PNP_STATE_FAILED))
{ {
USBPORT_InvalidateControllerHandler(FdoDevice, USBPORT_InvalidateControllerHandler(FdoDevice,
INVALIDATE_CONTROLLER_SURPRISE_REMOVE); USBPORT_INVALIDATE_CONTROLLER_SURPRISE_REMOVE);
} }
goto ForwardIrp; goto ForwardIrp;

View file

@ -907,7 +907,7 @@ USBPORT_RootHubCreateDevice(IN PDEVICE_OBJECT FdoDevice,
ULONG ULONG
NTAPI NTAPI
USBPORT_InvalidateRootHub(PVOID Context) USBPORT_InvalidateRootHub(PVOID MiniPortExtension)
{ {
PUSBPORT_DEVICE_EXTENSION FdoExtension; PUSBPORT_DEVICE_EXTENSION FdoExtension;
PDEVICE_OBJECT FdoDevice; PDEVICE_OBJECT FdoDevice;
@ -917,7 +917,7 @@ USBPORT_InvalidateRootHub(PVOID Context)
DPRINT("USBPORT_InvalidateRootHub ... \n"); DPRINT("USBPORT_InvalidateRootHub ... \n");
FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)Context - FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)MiniPortExtension -
sizeof(USBPORT_DEVICE_EXTENSION)); sizeof(USBPORT_DEVICE_EXTENSION));
FdoDevice = FdoExtension->CommonExtension.SelfDevice; FdoDevice = FdoExtension->CommonExtension.SelfDevice;

View file

@ -363,7 +363,7 @@ USBPORT_GetRegistryKeyValueFullInfo(IN PDEVICE_OBJECT FdoDevice,
MPSTATUS MPSTATUS
NTAPI NTAPI
USBPORT_GetMiniportRegistryKeyValue(IN PVOID Context, USBPORT_GetMiniportRegistryKeyValue(IN PVOID MiniPortExtension,
IN BOOL UseDriverKey, IN BOOL UseDriverKey,
IN PCWSTR SourceString, IN PCWSTR SourceString,
IN SIZE_T LengthStr, IN SIZE_T LengthStr,
@ -374,18 +374,15 @@ USBPORT_GetMiniportRegistryKeyValue(IN PVOID Context,
PDEVICE_OBJECT FdoDevice; PDEVICE_OBJECT FdoDevice;
NTSTATUS Status; NTSTATUS Status;
DPRINT("USBPORT_GetMiniportRegistryKeyValue: Context - %p, UseDriverKey - %x, SourceString - %S, LengthStr - %x, Buffer - %p, BufferLength - %x\n", DPRINT("USBPORT_GetMiniportRegistryKeyValue: MiniPortExtension - %p, UseDriverKey - %x, SourceString - %S, LengthStr - %x, Buffer - %p, BufferLength - %x\n",
Context, MiniPortExtension,
UseDriverKey, UseDriverKey,
SourceString, SourceString,
LengthStr, LengthStr,
Buffer, Buffer,
BufferLength); BufferLength);
//DbgBreakPoint(); FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)MiniPortExtension -
//FdoExtension->MiniPortExt = (PVOID)((ULONG_PTR)FdoExtension + sizeof(USBPORT_DEVICE_EXTENSION));
FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)Context -
sizeof(USBPORT_DEVICE_EXTENSION)); sizeof(USBPORT_DEVICE_EXTENSION));
FdoDevice = FdoExtension->CommonExtension.SelfDevice; FdoDevice = FdoExtension->CommonExtension.SelfDevice;
@ -449,7 +446,7 @@ USBPORT_GetSetConfigSpaceData(IN PDEVICE_OBJECT FdoDevice,
MPSTATUS MPSTATUS
NTAPI NTAPI
USBPORT_ReadWriteConfigSpace(IN PVOID Context, USBPORT_ReadWriteConfigSpace(IN PVOID MiniPortExtension,
IN BOOLEAN IsReadData, IN BOOLEAN IsReadData,
IN PVOID Buffer, IN PVOID Buffer,
IN ULONG Offset, IN ULONG Offset,
@ -462,7 +459,7 @@ USBPORT_ReadWriteConfigSpace(IN PVOID Context,
DPRINT("USBPORT_ReadWriteConfigSpace: ... \n"); DPRINT("USBPORT_ReadWriteConfigSpace: ... \n");
//FdoExtension->MiniPortExt = (PVOID)((ULONG_PTR)FdoExtension + sizeof(USBPORT_DEVICE_EXTENSION)); //FdoExtension->MiniPortExt = (PVOID)((ULONG_PTR)FdoExtension + sizeof(USBPORT_DEVICE_EXTENSION));
FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)Context - FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)MiniPortExtension -
sizeof(USBPORT_DEVICE_EXTENSION)); sizeof(USBPORT_DEVICE_EXTENSION));
FdoDevice = FdoExtension->CommonExtension.SelfDevice; FdoDevice = FdoExtension->CommonExtension.SelfDevice;
@ -536,7 +533,7 @@ USBPORT_USBDStatusToNtStatus(IN PURB Urb,
NTSTATUS NTSTATUS
NTAPI NTAPI
USBPORT_Wait(IN PVOID Context, USBPORT_Wait(IN PVOID MiniPortExtension,
IN ULONG Milliseconds) IN ULONG Milliseconds)
{ {
LARGE_INTEGER Interval = {{0, 0}}; LARGE_INTEGER Interval = {{0, 0}};
@ -640,15 +637,15 @@ USBPORT_InvalidateControllerHandler(IN PDEVICE_OBJECT FdoDevice,
switch (Type) switch (Type)
{ {
case INVALIDATE_CONTROLLER_RESET: case USBPORT_INVALIDATE_CONTROLLER_RESET:
DPRINT1("USBPORT_InvalidateControllerHandler: INVALIDATE_CONTROLLER_RESET UNIMPLEMENTED. FIXME. \n"); DPRINT1("USBPORT_InvalidateControllerHandler: INVALIDATE_CONTROLLER_RESET UNIMPLEMENTED. FIXME. \n");
break; break;
case INVALIDATE_CONTROLLER_SURPRISE_REMOVE: case USBPORT_INVALIDATE_CONTROLLER_SURPRISE_REMOVE:
DPRINT1("USBPORT_InvalidateControllerHandler: INVALIDATE_CONTROLLER_SURPRISE_REMOVE UNIMPLEMENTED. FIXME. \n"); DPRINT1("USBPORT_InvalidateControllerHandler: INVALIDATE_CONTROLLER_SURPRISE_REMOVE UNIMPLEMENTED. FIXME. \n");
break; break;
case INVALIDATE_CONTROLLER_SOFT_INTERRUPT: case USBPORT_INVALIDATE_CONTROLLER_SOFT_INTERRUPT:
if (InterlockedIncrement(&FdoExtension->IsrDpcCounter)) if (InterlockedIncrement(&FdoExtension->IsrDpcCounter))
{ {
InterlockedDecrement(&FdoExtension->IsrDpcCounter); InterlockedDecrement(&FdoExtension->IsrDpcCounter);
@ -663,7 +660,7 @@ USBPORT_InvalidateControllerHandler(IN PDEVICE_OBJECT FdoDevice,
ULONG ULONG
NTAPI NTAPI
USBPORT_InvalidateController(IN PVOID Context, USBPORT_InvalidateController(IN PVOID MiniPortExtension,
IN ULONG Type) IN ULONG Type)
{ {
PUSBPORT_DEVICE_EXTENSION FdoExtension; PUSBPORT_DEVICE_EXTENSION FdoExtension;
@ -672,7 +669,7 @@ USBPORT_InvalidateController(IN PVOID Context,
DPRINT("USBPORT_InvalidateController: Invalidate Type - %x\n", Type); DPRINT("USBPORT_InvalidateController: Invalidate Type - %x\n", Type);
//FdoExtension->MiniPortExt = (PVOID)((ULONG_PTR)FdoExtension + sizeof(USBPORT_DEVICE_EXTENSION)); //FdoExtension->MiniPortExt = (PVOID)((ULONG_PTR)FdoExtension + sizeof(USBPORT_DEVICE_EXTENSION));
FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)Context - FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)MiniPortExtension -
sizeof(USBPORT_DEVICE_EXTENSION)); sizeof(USBPORT_DEVICE_EXTENSION));
FdoDevice = FdoExtension->CommonExtension.SelfDevice; FdoDevice = FdoExtension->CommonExtension.SelfDevice;
@ -683,8 +680,8 @@ USBPORT_InvalidateController(IN PVOID Context,
ULONG ULONG
NTAPI NTAPI
USBPORT_NotifyDoubleBuffer(IN PVOID Context1, USBPORT_NotifyDoubleBuffer(IN PVOID MiniPortExtension,
IN PVOID Context2, IN PVOID MiniPortTransfer,
IN PVOID Buffer, IN PVOID Buffer,
IN SIZE_T Length) IN SIZE_T Length)
{ {
@ -2011,7 +2008,7 @@ USBPORT_AsyncTimerDpc(IN PRKDPC Dpc,
ULONG ULONG
NTAPI NTAPI
USBPORT_RequestAsyncCallback(IN PVOID Context, USBPORT_RequestAsyncCallback(IN PVOID MiniPortExtension,
IN ULONG TimerValue, IN ULONG TimerValue,
IN PVOID Buffer, IN PVOID Buffer,
IN SIZE_T Length, IN SIZE_T Length,
@ -2024,7 +2021,7 @@ USBPORT_RequestAsyncCallback(IN PVOID Context,
DPRINT("USBPORT_RequestAsyncCallback: ... \n"); DPRINT("USBPORT_RequestAsyncCallback: ... \n");
FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)Context - FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)MiniPortExtension -
sizeof(USBPORT_DEVICE_EXTENSION)); sizeof(USBPORT_DEVICE_EXTENSION));
FdoDevice = FdoExtension->CommonExtension.SelfDevice; FdoDevice = FdoExtension->CommonExtension.SelfDevice;
@ -2096,8 +2093,8 @@ USBPORT_GetMappedVirtualAddress(IN PVOID PhysicalAddress,
ULONG ULONG
NTAPI NTAPI
USBPORT_InvalidateEndpoint(IN PVOID Context1, USBPORT_InvalidateEndpoint(IN PVOID MiniPortExtension,
IN PVOID Context2) IN PVOID MiniPortEndpoint)
{ {
PUSBPORT_DEVICE_EXTENSION FdoExtension; PUSBPORT_DEVICE_EXTENSION FdoExtension;
PDEVICE_OBJECT FdoDevice; PDEVICE_OBJECT FdoDevice;
@ -2105,27 +2102,26 @@ USBPORT_InvalidateEndpoint(IN PVOID Context1,
DPRINT_CORE("USBPORT_InvalidateEndpoint: ... \n"); DPRINT_CORE("USBPORT_InvalidateEndpoint: ... \n");
FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)Context1 - FdoExtension = (PUSBPORT_DEVICE_EXTENSION)((ULONG_PTR)MiniPortExtension -
sizeof(USBPORT_DEVICE_EXTENSION)); sizeof(USBPORT_DEVICE_EXTENSION));
FdoDevice = FdoExtension->CommonExtension.SelfDevice; FdoDevice = FdoExtension->CommonExtension.SelfDevice;
Endpoint = (PUSBPORT_ENDPOINT)((ULONG_PTR)Context2 - if (!MiniPortEndpoint)
sizeof(USBPORT_ENDPOINT));
if (Context2)
{
USBPORT_InvalidateEndpointHandler(FdoDevice,
Endpoint,
INVALIDATE_ENDPOINT_ONLY);
}
else
{ {
USBPORT_InvalidateEndpointHandler(FdoDevice, USBPORT_InvalidateEndpointHandler(FdoDevice,
NULL, NULL,
INVALIDATE_ENDPOINT_ONLY); INVALIDATE_ENDPOINT_ONLY);
return 0;
} }
Endpoint = (PUSBPORT_ENDPOINT)((ULONG_PTR)MiniPortEndpoint -
sizeof(USBPORT_ENDPOINT));
USBPORT_InvalidateEndpointHandler(FdoDevice,
Endpoint,
INVALIDATE_ENDPOINT_ONLY);
return 0; return 0;
} }
@ -2698,7 +2694,7 @@ USBPORT_RegisterUSBPortDriver(IN PDRIVER_OBJECT DriverObject,
DPRINT("USBPORT_RegisterUSBPortDriver: sizeof(USBPORT_DEVICE_EXTENSION) - %x\n", DPRINT("USBPORT_RegisterUSBPortDriver: sizeof(USBPORT_DEVICE_EXTENSION) - %x\n",
sizeof(USBPORT_DEVICE_EXTENSION)); sizeof(USBPORT_DEVICE_EXTENSION));
if (Version < 100) // 100 - USB1.1; 200 - USB2.0 if (Version < USB10_MINIPORT_INTERFACE_VERSION)
{ {
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
} }

View file

@ -26,10 +26,6 @@
#define USBPORT_RECIPIENT_ROOT_HUB BMREQUEST_TO_DEVICE #define USBPORT_RECIPIENT_ROOT_HUB BMREQUEST_TO_DEVICE
#define USBPORT_RECIPIENT_ROOT_PORT BMREQUEST_TO_OTHER #define USBPORT_RECIPIENT_ROOT_PORT BMREQUEST_TO_OTHER
#define INVALIDATE_CONTROLLER_RESET 1
#define INVALIDATE_CONTROLLER_SURPRISE_REMOVE 2
#define INVALIDATE_CONTROLLER_SOFT_INTERRUPT 3
#define INVALIDATE_ENDPOINT_ONLY 0 #define INVALIDATE_ENDPOINT_ONLY 0
#define INVALIDATE_ENDPOINT_WORKER_THREAD 1 #define INVALIDATE_ENDPOINT_WORKER_THREAD 1
#define INVALIDATE_ENDPOINT_WORKER_DPC 2 #define INVALIDATE_ENDPOINT_WORKER_DPC 2
@ -414,7 +410,7 @@ USBPORT_USBDStatusToNtStatus(
NTSTATUS NTSTATUS
NTAPI NTAPI
USBPORT_Wait( USBPORT_Wait(
IN PVOID Context, IN PVOID MiniPortExtension,
IN ULONG Milliseconds); IN ULONG Milliseconds);
VOID VOID
@ -570,7 +566,7 @@ USBPORT_InvalidateControllerHandler(
ULONG ULONG
NTAPI NTAPI
USBPORT_DbgPrint( USBPORT_DbgPrint(
IN PVOID Context, IN PVOID MiniPortExtension,
IN ULONG Level, IN ULONG Level,
IN PCH Format, IN PCH Format,
...); ...);
@ -578,12 +574,12 @@ USBPORT_DbgPrint(
ULONG ULONG
NTAPI NTAPI
USBPORT_TestDebugBreak( USBPORT_TestDebugBreak(
IN PVOID Context); IN PVOID MiniPortExtension);
ULONG ULONG
NTAPI NTAPI
USBPORT_AssertFailure( USBPORT_AssertFailure(
PVOID Context, PVOID MiniPortExtension,
PVOID FailedAssertion, PVOID FailedAssertion,
PVOID FileName, PVOID FileName,
ULONG LineNumber, ULONG LineNumber,
@ -592,12 +588,12 @@ USBPORT_AssertFailure(
VOID VOID
NTAPI NTAPI
USBPORT_BugCheck( USBPORT_BugCheck(
IN PVOID Context); IN PVOID MiniPortExtension);
ULONG ULONG
NTAPI NTAPI
USBPORT_LogEntry( USBPORT_LogEntry(
IN PVOID BusContext, IN PVOID MiniPortExtension,
IN ULONG DriverTag, IN ULONG DriverTag,
IN ULONG EnumTag, IN ULONG EnumTag,
IN ULONG P1, IN ULONG P1,
@ -1090,7 +1086,7 @@ USBPORT_RootHubCreateDevice(
ULONG ULONG
NTAPI NTAPI
USBPORT_InvalidateRootHub( USBPORT_InvalidateRootHub(
PVOID Context); PVOID MiniPortExtension);
VOID VOID
NTAPI NTAPI

View file

@ -21,6 +21,21 @@
#define USBPORT_ENDPOINT_HALT 1 #define USBPORT_ENDPOINT_HALT 1
#define USBPORT_ENDPOINT_CONTROL 4 #define USBPORT_ENDPOINT_CONTROL 4
/* Interrupt Endpoint Poll Interval */
#define ENDPOINT_INTERRUPT_1ms 1
#define ENDPOINT_INTERRUPT_2ms 2
#define ENDPOINT_INTERRUPT_4ms 4
#define ENDPOINT_INTERRUPT_8ms 8
#define ENDPOINT_INTERRUPT_16ms 16
#define ENDPOINT_INTERRUPT_32ms 32
#define INTERRUPT_ENDPOINTs (ENDPOINT_INTERRUPT_32ms + \
ENDPOINT_INTERRUPT_16ms + \
ENDPOINT_INTERRUPT_8ms + \
ENDPOINT_INTERRUPT_4ms + \
ENDPOINT_INTERRUPT_2ms + \
ENDPOINT_INTERRUPT_1ms)
/* Types of resources. For USBPORT_RESOURCES::ResourcesTypes */ /* Types of resources. For USBPORT_RESOURCES::ResourcesTypes */
#define USBPORT_RESOURCES_PORT 1 #define USBPORT_RESOURCES_PORT 1
#define USBPORT_RESOURCES_INTERRUPT 2 #define USBPORT_RESOURCES_INTERRUPT 2
@ -405,6 +420,10 @@ typedef NTSTATUS
PVOID, PVOID,
ULONG); ULONG);
#define USBPORT_INVALIDATE_CONTROLLER_RESET 1
#define USBPORT_INVALIDATE_CONTROLLER_SURPRISE_REMOVE 2
#define USBPORT_INVALIDATE_CONTROLLER_SOFT_INTERRUPT 3
typedef ULONG typedef ULONG
(NTAPI *PUSBPORT_INVALIDATE_CONTROLLER)( (NTAPI *PUSBPORT_INVALIDATE_CONTROLLER)(
PVOID, PVOID,
@ -453,6 +472,9 @@ typedef VOID
#define USB_MINIPORT_FLAGS_NO_DMA 0x0100 #define USB_MINIPORT_FLAGS_NO_DMA 0x0100
#define USB_MINIPORT_FLAGS_WAKE_SUPPORT 0x0200 #define USB_MINIPORT_FLAGS_WAKE_SUPPORT 0x0200
#define TOTAL_USB11_BUS_BANDWIDTH 12000
#define TOTAL_USB20_BUS_BANDWIDTH 400000
typedef struct _USBPORT_REGISTRATION_PACKET { typedef struct _USBPORT_REGISTRATION_PACKET {
ULONG MiniPortVersion; ULONG MiniPortVersion;
ULONG MiniPortFlags; ULONG MiniPortFlags;
@ -545,6 +567,9 @@ typedef struct _USBPORT_REGISTRATION_PACKET {
ULONG Reserved5; ULONG Reserved5;
} USBPORT_REGISTRATION_PACKET, *PUSBPORT_REGISTRATION_PACKET; } USBPORT_REGISTRATION_PACKET, *PUSBPORT_REGISTRATION_PACKET;
#define USB10_MINIPORT_INTERFACE_VERSION 100
#define USB20_MINIPORT_INTERFACE_VERSION 200
typedef struct _USBPORT_MINIPORT_INTERFACE { typedef struct _USBPORT_MINIPORT_INTERFACE {
PDRIVER_OBJECT DriverObject; PDRIVER_OBJECT DriverObject;
LIST_ENTRY DriverLink; LIST_ENTRY DriverLink;