VfPowerVerifyIrpStackDownward
VOID __stdcall VfPowerVerifyIrpStackDownward(
_IOV_REQUEST_PACKET *IovPacket,
_DEVICE_OBJECT *DeviceObject,
_IO_STACK_LOCATION *IrpLastSp,
_IO_STACK_LOCATION *IrpSp,
_IOV_STACK_LOCATION *RequestHeadLocationData,
_IOV_STACK_LOCATION *StackLocationData,
VOID *CallerAddress){
const VOID *v8;
int v10;
_IOV_STACK_LOCATION v11;
_DRIVER_OBJECT *DriverObject;
VOID *v13;
v8 = *(const VOID **)IovPacket;
v10 = *(_DWORD *)(*(_QWORD *)IovPacket + 48i64);
v11 = RequestHeadLocationData[24];
if( *(_DWORD *)(*((_QWORD *)IovPacket + 30) + 56i64) == 3 )
ViErrorReport1(529, CallerAddress, *(const VOID **)IovPacket);
DriverObject = DeviceObject->DriverObject;
if( (VOID(__fastcall *)(_DEVICE_OBJECT *, _IRP *))DriverObject->MajorFunction[22] == IopInvalidDeviceRequest )
{
RequestHeadLocationData[1] |= 0x1000000u;
LODWORD(v13) = VfGetPristineDriverInit(DriverObject);
ViErrorReport1(543, v13, v8);
StackLocationData[1] |= 0x80000000;
}
if( IrpLastSp && v10 < 0 )
{
if( v10 == -1073741637 )
{
if( v11 != -1073741637 )
ViErrorReport1(538, CallerAddress, v8);
}
else if( (RequestHeadLocationData[1] & 0x2000000) == 0 )
{
ViErrorReport1(537, CallerAddress, v8);
RequestHeadLocationData[1] |= 0x2000000u;
}
}
}Referenced by:
No references.