Home | Info | Community | Development | myReactOS | Contact Us
[static]
Definition at line 789 of file pnproot.c.
Referenced by PnpRootPnpControl().
{ PPNPROOT_FDO_DEVICE_EXTENSION DeviceExtension; PIO_STACK_LOCATION IrpSp; NTSTATUS Status; DeviceExtension = (PPNPROOT_FDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension; Status = Irp->IoStatus.Status; IrpSp = IoGetCurrentIrpStackLocation(Irp); switch (IrpSp->MinorFunction) { case IRP_MN_QUERY_DEVICE_RELATIONS: DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS\n"); Status = PnpRootQueryDeviceRelations(DeviceObject, Irp); break; case IRP_MN_START_DEVICE: DPRINT("IRP_MJ_PNP / IRP_MN_START_DEVICE\n"); if (!IoForwardIrpSynchronously(DeviceExtension->Ldo, Irp)) Status = STATUS_UNSUCCESSFUL; else { Status = Irp->IoStatus.Status; if (NT_SUCCESS(Status)) DeviceExtension->State = dsStarted; } Irp->IoStatus.Status = Status; IoCompleteRequest(Irp, IO_NO_INCREMENT); return Status; case IRP_MN_STOP_DEVICE: DPRINT("IRP_MJ_PNP / IRP_MN_STOP_DEVICE\n"); /* Root device cannot be stopped */ Irp->IoStatus.Status = Status = STATUS_INVALID_DEVICE_REQUEST; IoCompleteRequest(Irp, IO_NO_INCREMENT); return Status; default: DPRINT("IRP_MJ_PNP / Unknown minor function 0x%lx\n", IrpSp->MinorFunction); break; } if (Status != STATUS_PENDING) { Irp->IoStatus.Status = Status; IoCompleteRequest(Irp, IO_NO_INCREMENT); } return Status; }