- Properly stub FdoPower and PdoPower
CORE-11648
svn path=/trunk/; revision=71973
FdoPower(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
FdoPower(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
- DPRINT("FdoPower()\n");
+ PDEVICE_OBJECT LowerDevice;
- Irp->IoStatus.Information = 0;
- Irp->IoStatus.Status = STATUS_SUCCESS;
- IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ DPRINT("FdoPower()\n");
+ LowerDevice = ((PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->LowerDevice;
+ PoStartNextPowerIrp(Irp);
+ IoSkipCurrentIrpStackLocation(Irp);
+ return PoCallDriver(LowerDevice, Irp);;
PdoPower(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
PdoPower(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
+ NTSTATUS Status;
+ PIO_STACK_LOCATION IoStack;
+
- 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);
IoCompleteRequest(Irp, IO_NO_INCREMENT);