[BTRFS] Fix booting with runtime checks
[reactos.git] / drivers / parallel / parport / pdo.c
index 5af148c..0760ffa 100644 (file)
@@ -121,7 +121,7 @@ PdoWrite(IN PDEVICE_OBJECT DeviceObject,
         do
         {
             KeStallExecutionProcessor(10);
-            PortStatus = READ_PORT_UCHAR((PUCHAR)(FdoDeviceExtension->BaseAddress + 1));
+            PortStatus = READ_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 1));
             ulCount++;
         }
         while (ulCount < 500000 && !(PortStatus & LP_PBUSY));
@@ -138,15 +138,15 @@ PdoWrite(IN PDEVICE_OBJECT DeviceObject,
         }
 
         /* Write character */
-        WRITE_PORT_UCHAR((PUCHAR)FdoDeviceExtension->BaseAddress, Buffer[i]);
+        WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress), Buffer[i]);
 
         KeStallExecutionProcessor(10);
 
-        WRITE_PORT_UCHAR((PUCHAR)(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP | LP_PSTROBE));
+        WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP | LP_PSTROBE));
 
         KeStallExecutionProcessor(10);
 
-        WRITE_PORT_UCHAR((PUCHAR)(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP));
+        WRITE_PORT_UCHAR(UlongToPtr(FdoDeviceExtension->BaseAddress + 2), (LP_PSELECP | LP_PINITP));
     }
 
     Irp->IoStatus.Information = 0;
@@ -175,12 +175,25 @@ NTAPI
 PdoPower(IN PDEVICE_OBJECT DeviceObject,
          IN PIRP Irp)
 {
+    NTSTATUS Status;
+    PIO_STACK_LOCATION IoStack;
+
     DPRINT("PdoPower()\n");
 
-    Irp->IoStatus.Information = 0;
-    Irp->IoStatus.Status = STATUS_SUCCESS;
+    IoStack = IoGetCurrentIrpStackLocation(Irp);
+
+    switch (IoStack->MinorFunction)
+    {
+        case IRP_MN_SET_POWER:
+        case IRP_MN_QUERY_POWER:
+            Irp->IoStatus.Status = STATUS_SUCCESS;
+            break;
+    }
+
+    Status = Irp->IoStatus.Status;
+    PoStartNextPowerIrp(Irp);
     IoCompleteRequest(Irp, IO_NO_INCREMENT);
-    return STATUS_SUCCESS;
+    return Status;
 }
 
 /* EOF */