)
{
PVFATFCB Fcb;
- PVFATCCB Ccb;
NTSTATUS Status;
DPRINT("VfatLockControl(IrpContext %x)\n", IrpContext);
assert(IrpContext);
- Ccb = (PVFATCCB)IrpContext->FileObject->FsContext2;
- Fcb = Ccb->pFcb;
+ Fcb = (PVFATFCB)IrpContext->FileObject->FsContext;
if (IrpContext->DeviceObject == VfatGlobalData->DeviceObject)
{
assert (DeviceObject);
assert (Irp);
-
- FsRtlEnterFileSystem();
IrpContext = VfatAllocateIrpContext(DeviceObject, Irp);
if (IrpContext == NULL)
{
}
else
{
+ if (KeGetCurrentIrql() <= PASSIVE_LEVEL)
+ {
+ FsRtlEnterFileSystem();
+ }
+ else
+ {
+ DPRINT1("Vfat is entered at irql = %d\n", KeGetCurrentIrql());
+ }
Status = VfatDispatchRequest (IrpContext);
+ if (KeGetCurrentIrql() <= PASSIVE_LEVEL)
+ {
+ FsRtlExitFileSystem();
+ }
}
- FsRtlExitFileSystem();
return Status;
}