mirror of
https://github.com/reactos/reactos.git
synced 2024-06-28 08:51:29 +00:00
[HALX86] Restore Windows compatibility on reporting device IDs
And forwarding IRPs from FDO to PDO This along with8aff2c9de7
reverts the commit74b889b397
This commit is contained in:
parent
f91efe1502
commit
8248f02ff4
|
@ -561,10 +561,6 @@ HalpQueryIdFdo(IN PDEVICE_OBJECT DeviceObject,
|
||||||
switch (IdType)
|
switch (IdType)
|
||||||
{
|
{
|
||||||
case BusQueryDeviceID:
|
case BusQueryDeviceID:
|
||||||
/* HACK */
|
|
||||||
Id = L"Root\\ACPI_HAL";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BusQueryHardwareIDs:
|
case BusQueryHardwareIDs:
|
||||||
|
|
||||||
/* This is our hardware ID */
|
/* This is our hardware ID */
|
||||||
|
@ -676,11 +672,26 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
|
||||||
default:
|
default:
|
||||||
|
|
||||||
DPRINT("Other IRP: %lx\n", Minor);
|
DPRINT("Other IRP: %lx\n", Minor);
|
||||||
Status = Irp->IoStatus.Status;
|
Status = STATUS_NOT_SUPPORTED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Nowhere for the IRP to go since we also own the PDO */
|
/* What happpened? */
|
||||||
|
if ((NT_SUCCESS(Status)) || (Status == STATUS_NOT_SUPPORTED))
|
||||||
|
{
|
||||||
|
/* Set the IRP status, unless this isn't understood */
|
||||||
|
if (Status != STATUS_NOT_SUPPORTED)
|
||||||
|
{
|
||||||
|
Irp->IoStatus.Status = Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pass it on */
|
||||||
|
IoSkipCurrentIrpStackLocation(Irp);
|
||||||
|
return IoCallDriver(FdoExtension->AttachedDeviceObject, Irp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Otherwise, we failed, so set the status and complete the request */
|
||||||
|
DPRINT1("IRP failed with status: %lx\n", Status);
|
||||||
Irp->IoStatus.Status = Status;
|
Irp->IoStatus.Status = Status;
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||||
return Status;
|
return Status;
|
||||||
|
|
|
@ -559,10 +559,6 @@ HalpQueryIdFdo(IN PDEVICE_OBJECT DeviceObject,
|
||||||
switch (IdType)
|
switch (IdType)
|
||||||
{
|
{
|
||||||
case BusQueryDeviceID:
|
case BusQueryDeviceID:
|
||||||
/* HACK */
|
|
||||||
Id = L"Root\\PCI_HAL";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BusQueryHardwareIDs:
|
case BusQueryHardwareIDs:
|
||||||
|
|
||||||
/* This is our hardware ID */
|
/* This is our hardware ID */
|
||||||
|
@ -673,11 +669,26 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
|
||||||
default:
|
default:
|
||||||
|
|
||||||
DPRINT("Other IRP: %lx\n", Minor);
|
DPRINT("Other IRP: %lx\n", Minor);
|
||||||
Status = Irp->IoStatus.Status;
|
Status = STATUS_NOT_SUPPORTED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Nowhere for the IRP to go since we also own the PDO */
|
/* What happpened? */
|
||||||
|
if ((NT_SUCCESS(Status)) || (Status == STATUS_NOT_SUPPORTED))
|
||||||
|
{
|
||||||
|
/* Set the IRP status, unless this isn't understood */
|
||||||
|
if (Status != STATUS_NOT_SUPPORTED)
|
||||||
|
{
|
||||||
|
Irp->IoStatus.Status = Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pass it on */
|
||||||
|
IoSkipCurrentIrpStackLocation(Irp);
|
||||||
|
return IoCallDriver(FdoExtension->AttachedDeviceObject, Irp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Otherwise, we failed, so set the status and complete the request */
|
||||||
|
DPRINT1("IRP failed with status: %lx\n", Status);
|
||||||
Irp->IoStatus.Status = Status;
|
Irp->IoStatus.Status = Status;
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||||
return Status;
|
return Status;
|
||||||
|
|
Loading…
Reference in a new issue