📄 pdopower.c
字号:
#include "pch.h"
NTSTATUS
PptPdoPower(
IN PDEVICE_OBJECT Pdo,
IN PIRP Irp
)
{
PPDO_EXTENSION pdx = Pdo->DeviceExtension;
PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation( Irp );
NTSTATUS status;
ULONG_PTR info = Irp->IoStatus.Information;
POWER_STATE powerState = irpSp->Parameters.Power.State;
POWER_STATE_TYPE powerType = irpSp->Parameters.Power.Type;
UCHAR minorFunction = irpSp->MinorFunction;
switch( minorFunction ) {
case IRP_MN_QUERY_POWER:
status = STATUS_SUCCESS;
break;
case IRP_MN_SET_POWER:
switch( powerType ) {
case DevicePowerState:
PoSetPowerState( pdx->DeviceObject, powerType, powerState );
pdx->DeviceState = powerState.DeviceState;
status = STATUS_SUCCESS;
break;
case SystemPowerState:
status = STATUS_SUCCESS;
break;
default:
status = Irp->IoStatus.Status;
}
break;
default:
status = Irp->IoStatus.Status;
}
PoStartNextPowerIrp( Irp );
P4CompleteRequest( Irp, status, info );
DD((PCE)pdx,DDT,"PptPdoPower - minorFunction=%x, powerState=%x, powerType=%x, status=%x",minorFunction,powerState,powerType,status);
return status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -