MCPcopy Create free account
hub / github.com/bobranten/Ext4Fsd / Ext2LockVcb

Function Ext2LockVcb

Ext4Fsd/fsctl.c:93–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

91}
92
93NTSTATUS
94Ext2LockVcb (IN PEXT2_VCB Vcb,
95 IN PFILE_OBJECT FileObject)
96{
97 NTSTATUS Status = STATUS_SUCCESS;
98
99 __try {
100
101 if (FlagOn(Vcb->Flags, VCB_VOLUME_LOCKED)) {
102 DEBUG(DL_INF, ( "Ext2LockVolume: Volume is already locked.\n"));
103 Status = STATUS_ACCESS_DENIED;
104 __leave;
105 }
106
107 if (Vcb->OpenHandleCount > (ULONG)(FileObject ? 1 : 0)) {
108 DEBUG(DL_INF, ( "Ext2LockVcb: There are still opened files.\n"));
109
110 Status = STATUS_ACCESS_DENIED;
111 __leave;
112 }
113
114 if (!Ext2IsHandleCountZero(Vcb)) {
115 DEBUG(DL_INF, ( "Ext2LockVcb: Thare are still opened files.\n"));
116
117 Status = STATUS_ACCESS_DENIED;
118 __leave;
119 }
120
121 SetLongFlag(Vcb->Flags, VCB_VOLUME_LOCKED);
122 Ext2SetVpbFlag(Vcb->Vpb, VPB_LOCKED);
123 Vcb->LockFile = FileObject;
124
125 DEBUG(DL_INF, ( "Ext2LockVcb: Volume locked.\n"));
126
127 } __finally {
128 // Nothing
129 }
130
131 return Status;
132}
133
134
135NTSTATUS

Callers 4

Ext2LockVolumeFunction · 0.85
Ext2PnpQueryRemoveFunction · 0.85
Ext2PnpRemoveFunction · 0.85
Ext2PnpSurpriseRemoveFunction · 0.85

Calls 2

Ext2IsHandleCountZeroFunction · 0.85
Ext2SetVpbFlagFunction · 0.85

Tested by

no test coverage detected