]> xenbits.xensource.com Git - pvdrivers/win/xenvbd.git/commitdiff
Refactor - hide default Pnp/Power function pointers
authorOwen Smith <owen.smith@citrix.com>
Tue, 27 Oct 2015 11:15:41 +0000 (11:15 +0000)
committerPaul Durrant <paul.durrant@citrix.com>
Fri, 30 Oct 2015 13:47:11 +0000 (13:47 +0000)
Signed-off-by: Owen Smith <owen.smith@citrix.com>
src/xenvbd/driver.c
src/xenvbd/driver.h
src/xenvbd/fdo.c
src/xenvbd/pdo.c

index 2a41c8c64ad73cac87e036a87f41be70a37e52e8..2f13ba658efcc841f66694ca713ee995a37d040a 100644 (file)
@@ -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;
     }
 
index d59f05326036e4365a03f7781a874ffa2f4a5da5..560dd4e972e664ee20be7f79b3be39058fd49cae 100644 (file)
@@ -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(
index 82b7fb68e2e44ce9a66f4219ee8752d6ee1c5594..724d8ea50684bd568e07f21b327cd26b5f37a161 100644 (file)
@@ -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;
     }
 
index 9387742b43ebfc2a263edd1e140614a4139d8780..c0447db07e9e1d7974bd63f73e90033603af20a6 100644 (file)
@@ -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);
     }