[PATCH] winebus.sys: Implement common IRP_MJ_POWER handling

Sebastian Lackner sebastian at fds-team.de
Tue Oct 4 21:49:21 CDT 2016


On 05.10.2016 02:23, Aric Stewart wrote:
> +NTSTATUS WINAPI common_power_dispatch(DEVICE_OBJECT *device, IRP *irp)
> +{
> +    IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation(irp);
> +    TRACE("Device entering power state %i\n", irpsp->Parameters.Power.State.DeviceState);

You are ignoring the MinorFunction parameter here. DeviceState is only valid for
IRP_MN_SET_POWER, but there are also other IRP_MJ_POWER requests. For those it
would be better to keep irp->IoStatus.u.Status set the original value, similar to
how its done in common_pnp_dispatch.

I would also suggest to add a TRACE with device and irp here (and to common_pnp_dispatch),
otherwise it is difficult to interpret the meaning of the logged values. The TRACE in
handle_IRP_MN_QUERY_ID could be removed then.

Regards,
Sebastian

> +    irp->IoStatus.u.Status = STATUS_SUCCESS;
> +    IoCompleteRequest(irp, IO_NO_INCREMENT);
> +    return STATUS_SUCCESS;
> +}
> +




More information about the wine-devel mailing list