21,597
社区成员
发帖
与我相关
我的任务
分享
KeInitializeEvent(&WaitEvent1,NotificationEvent,FALSE);
NewIrp1 = IoBuildDeviceIoControlRequest(FSCTL_LOCK_VOLUME,
DevExt->FltDevObj,
NULL,
0,
NULL,
0,
FALSE,
&WaitEvent1,
&IoStatus);
if (NULL == NewIrp1) // can't create new irp
{
KdPrint(("xxxdiskg::xLoginOut2 %#x\n",status));
return status;
}
status = IoCallDriver(DevExt->FltDevObj, NewIrp1);
if (status == STATUS_PENDING)
{
status = KeWaitForSingleObject(&WaitEvent1, Executive, KernelMode, FALSE, NULL);
status = IoStatus.Status;
}
if (!NT_SUCCESS(status))
{
KdPrint(("xxxdiskg::xLoginOut3 %#x\n",status));
return status;
}