[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 3/8] Refactor - hide default Pnp/Power function pointers
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> --- src/xenvbd/driver.c | 32 +++++++++++++++++++++++++------- src/xenvbd/driver.h | 12 ++++++++++++ src/xenvbd/fdo.c | 14 +++++--------- src/xenvbd/pdo.c | 4 +--- 4 files changed, 43 insertions(+), 19 deletions(-) diff --git a/src/xenvbd/driver.c b/src/xenvbd/driver.c index 2a41c8c..2f13ba6 100644 --- a/src/xenvbd/driver.c +++ b/src/xenvbd/driver.c @@ -208,10 +208,28 @@ __DriverParseParameterKey( } //============================================================================= +static PDRIVER_DISPATCH StorPortDispatchPnp; +static PDRIVER_DISPATCH StorPortDispatchPower; +static PDRIVER_UNLOAD StorPortDriverUnload; + +NTSTATUS +DriverDispatchPnp( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp + ) +{ + return StorPortDispatchPnp(DeviceObject, Irp); +} + +NTSTATUS +DriverDispatchPower( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp + ) +{ + return StorPortDispatchPower(DeviceObject, Irp); +} -PDRIVER_DISPATCH StorPortDispatchPnp; -PDRIVER_DISPATCH StorPortDispatchPower; -PDRIVER_UNLOAD StorPortDriverUnload; //============================================================================= // Fdo Device Extension management static PXENVBD_FDO __XenvbdFdo; @@ -298,7 +316,7 @@ DriverMapPdo( } } KeReleaseSpinLock(&__XenvbdLock, Irql); - Status = StorPortDispatchPnp(DeviceObject, Irp); + Status = DriverDispatchPnp(DeviceObject, Irp); done: return Status; @@ -555,7 +573,7 @@ DispatchPnp( case IS_NULL: default: Warning("DeviceObject 0x%p is not FDO (0x%p) or a PDO\n", DeviceObject, __XenvbdFdo); - Status = StorPortDispatchPnp(DeviceObject, Irp); + Status = DriverDispatchPnp(DeviceObject, Irp); break; } @@ -589,13 +607,13 @@ DispatchPower( if (Pdo) { PdoDereference(Pdo); // drops Pdo reference } - Status = StorPortDispatchPower(DeviceObject, Irp); + Status = DriverDispatchPower(DeviceObject, Irp); break; case IS_NULL: default: Warning("DeviceObject 0x%p is not FDO (0x%p) or a PDO\n", DeviceObject, __XenvbdFdo); - Status = StorPortDispatchPower(DeviceObject, Irp); + Status = DriverDispatchPower(DeviceObject, Irp); break; } diff --git a/src/xenvbd/driver.h b/src/xenvbd/driver.h index d59f053..560dd4e 100644 --- a/src/xenvbd/driver.h +++ b/src/xenvbd/driver.h @@ -59,6 +59,18 @@ extern XENVBD_PARAMETERS DriverParameters; extern HANDLE DriverStatusKey; +extern NTSTATUS +DriverDispatchPnp( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp + ); + +extern NTSTATUS +DriverDispatchPower( + IN PDEVICE_OBJECT DeviceObject, + IN PIRP Irp + ); + // Fdo Device Extension management extern VOID DriverLinkFdo( diff --git a/src/xenvbd/fdo.c b/src/xenvbd/fdo.c index 82b7fb6..724d8ea 100644 --- a/src/xenvbd/fdo.c +++ b/src/xenvbd/fdo.c @@ -98,8 +98,6 @@ struct _XENVBD_FDO { LONG TotalSrbs; }; -extern PDRIVER_DISPATCH StorPortDispatchPower; - //============================================================================= static FORCEINLINE BOOLEAN __FdoSetDevicePowerState( @@ -1215,7 +1213,7 @@ FdoDevicePower( break; } FdoDereference(Fdo); - Status = StorPortDispatchPower(Fdo->DeviceObject, Irp); + Status = DriverDispatchPower(Fdo->DeviceObject, Irp); if (!NT_SUCCESS(Status)) { Warning("StorPort failed PowerIRP with %08x\n", Status); } @@ -1644,8 +1642,6 @@ FdoStartIo( //============================================================================= // PnP Handler -extern PDRIVER_DISPATCH StorPortDispatchPnp; - __checkReturn NTSTATUS FdoDispatchPnp( @@ -1699,7 +1695,7 @@ FdoDispatchPnp( break; } - Status = StorPortDispatchPnp(DeviceObject, Irp); + Status = DriverDispatchPnp(DeviceObject, Irp); if (!NT_SUCCESS(Status)) { Verbose("%02x:%s -> %08x\n", Minor, PnpMinorFunctionName(Minor), Status); } @@ -1847,7 +1843,7 @@ FdoMapDeviceObjectToPdo( ExFreePool(String); done: - Status = StorPortDispatchPnp(DeviceObject, Irp);; + Status = DriverDispatchPnp(DeviceObject, Irp);; if (!NT_SUCCESS(Status)) { Verbose("%02x:%s -> %08x\n", Minor, PnpMinorFunctionName(Minor), Status); } @@ -1876,7 +1872,7 @@ FdoDispatchPower( if (Fdo->DevicePowerThread == NULL) { Verbose("DevicePower IRP before DevicePowerThread ready\n"); FdoDereference(Fdo); - status = StorPortDispatchPower(DeviceObject, Irp); + status = DriverDispatchPower(DeviceObject, Irp); break; } @@ -1894,7 +1890,7 @@ FdoDispatchPower( case SystemPowerState: default: FdoDereference(Fdo); - status = StorPortDispatchPower(DeviceObject, Irp); + status = DriverDispatchPower(DeviceObject, Irp); break; } diff --git a/src/xenvbd/pdo.c b/src/xenvbd/pdo.c index 9387742..c0447db 100644 --- a/src/xenvbd/pdo.c +++ b/src/xenvbd/pdo.c @@ -2239,8 +2239,6 @@ PdoSrbPnp( //============================================================================= // PnP Handler -extern PDRIVER_DISPATCH StorPortDispatchPnp; - static FORCEINLINE VOID __PdoDeviceUsageNotification( __in PXENVBD_PDO Pdo, @@ -2419,7 +2417,7 @@ PdoDispatchPnp( break; } PdoDereference(Pdo); - Status = StorPortDispatchPnp(DeviceObject, Irp); + Status = DriverDispatchPnp(DeviceObject, Irp); if (!NT_SUCCESS(Status)) { Verbose("Target[%d] : %02x:%s -> %08x\n", TargetId, Minor, PnpMinorFunctionName(Minor), Status); } -- 1.9.4.msysgit.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |