From: Owen Smith Date: Tue, 27 Oct 2015 11:15:41 +0000 (+0000) Subject: Refactor - hide default Pnp/Power function pointers X-Git-Tag: 8.2.0-rc1~49 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1aeef22dd05ecf46db7cedf6e9de79941de88b1a;p=pvdrivers%2Fwin%2Fxenvbd.git Refactor - hide default Pnp/Power function pointers Signed-off-by: Owen Smith --- 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); }