mirror of
https://github.com/reactos/reactos.git
synced 2024-10-08 10:24:06 +00:00
[PCIIDEX]
- Handle IRP_MN_QUERY_REMOVE_DEVICE - Handle IRP_MN_QUERY_PNP_DEVICE_STATE to report that we are not disableable to the PnP manager so we don't get removed during driver installation svn path=/trunk/; revision=52028
This commit is contained in:
parent
200cdb6daf
commit
3d472cf72f
|
@ -402,7 +402,7 @@ PciIdeXFdoPnpDispatch(
|
||||||
{
|
{
|
||||||
ULONG MinorFunction;
|
ULONG MinorFunction;
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
ULONG_PTR Information = 0;
|
ULONG_PTR Information = Irp->IoStatus.Information;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
@ -419,6 +419,12 @@ PciIdeXFdoPnpDispatch(
|
||||||
Status = PciIdeXFdoStartDevice(DeviceObject, Irp);
|
Status = PciIdeXFdoStartDevice(DeviceObject, Irp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case IRP_MN_QUERY_REMOVE_DEVICE: /* 0x01 */
|
||||||
|
{
|
||||||
|
DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_REMOVE_DEVICE\n");
|
||||||
|
Status = STATUS_UNSUCCESSFUL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case IRP_MN_QUERY_DEVICE_RELATIONS: /* 0x07 */
|
case IRP_MN_QUERY_DEVICE_RELATIONS: /* 0x07 */
|
||||||
{
|
{
|
||||||
switch (Stack->Parameters.QueryDeviceRelations.Type)
|
switch (Stack->Parameters.QueryDeviceRelations.Type)
|
||||||
|
@ -441,6 +447,13 @@ PciIdeXFdoPnpDispatch(
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case IRP_MN_QUERY_PNP_DEVICE_STATE: /* 0x14 */
|
||||||
|
{
|
||||||
|
DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_PNP_DEVICE_STATE\n");
|
||||||
|
Information |= PNP_DEVICE_NOT_DISABLEABLE;
|
||||||
|
Status = STATUS_SUCCESS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: /* 0x0d */
|
case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: /* 0x0d */
|
||||||
{
|
{
|
||||||
DPRINT("IRP_MJ_PNP / IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
|
DPRINT("IRP_MJ_PNP / IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
|
||||||
|
|
|
@ -360,7 +360,7 @@ PciIdeXPdoPnpDispatch(
|
||||||
{
|
{
|
||||||
ULONG MinorFunction;
|
ULONG MinorFunction;
|
||||||
PIO_STACK_LOCATION Stack;
|
PIO_STACK_LOCATION Stack;
|
||||||
ULONG_PTR Information = 0;
|
ULONG_PTR Information = Irp->IoStatus.Information;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
Stack = IoGetCurrentIrpStackLocation(Irp);
|
Stack = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
@ -404,6 +404,12 @@ PciIdeXPdoPnpDispatch(
|
||||||
Status = STATUS_SUCCESS;
|
Status = STATUS_SUCCESS;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case IRP_MN_QUERY_REMOVE_DEVICE: /* 0x01 */
|
||||||
|
{
|
||||||
|
DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_REMOVE_DEVICE\n");
|
||||||
|
Status = STATUS_UNSUCCESSFUL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case IRP_MN_QUERY_DEVICE_RELATIONS: /* 0x07 */
|
case IRP_MN_QUERY_DEVICE_RELATIONS: /* 0x07 */
|
||||||
{
|
{
|
||||||
switch (Stack->Parameters.QueryDeviceRelations.Type)
|
switch (Stack->Parameters.QueryDeviceRelations.Type)
|
||||||
|
@ -485,6 +491,13 @@ PciIdeXPdoPnpDispatch(
|
||||||
Status = PciIdeXPdoQueryId(DeviceObject, Irp, &Information);
|
Status = PciIdeXPdoQueryId(DeviceObject, Irp, &Information);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case IRP_MN_QUERY_PNP_DEVICE_STATE: /* 0x14 */
|
||||||
|
{
|
||||||
|
DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_PNP_DEVICE_STATE\n");
|
||||||
|
Information |= PNP_DEVICE_NOT_DISABLEABLE;
|
||||||
|
Status = STATUS_SUCCESS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case IRP_MN_QUERY_BUS_INFORMATION: /* 0x15 */
|
case IRP_MN_QUERY_BUS_INFORMATION: /* 0x15 */
|
||||||
{
|
{
|
||||||
PPNP_BUS_INFORMATION BusInfo;
|
PPNP_BUS_INFORMATION BusInfo;
|
||||||
|
|
Loading…
Reference in a new issue