Locking volume from kernel mode

Hi all,

I’m trying to lock and unlock a volume from my driver. I keep getting error
code c0000010: STATUS_INVALID_DEVICE_REQUEST

In my driver I have this code:

PAGED_CODE();

RtlInitUnicodeString(&VolumeName, L"\DosDevices\N <file:>
:“);
//RtlInitUnicodeString(&VolumeName, L”\??\N <file:>:“);
//RtlUnicodeStringPrintf(&VolumeName,
L”\DosDevices\%c<file:>:",
DriveLetter);

//KdPrint((FUNCTION_NAME “Full Volume Path: %s\n”, VolumeName.Buffer));

InitializeObjectAttributes(&oa,
&VolumeName,
OBJ_CASE_INSENSITIVE| OBJ_KERNEL_HANDLE,
NULL, NULL);

status = ZwOpenFile(&fileHandle,
SYNCHRONIZE,
&oa,
&ioStatusBlock,
FILE_SHARE_READ|FILE_SHARE_WRITE,
FILE_SYNCHRONOUS_IO_NONALERT);

if(!NT_SUCCESS(status)) {
KdPrint((FUNCTION_NAME “Could not open volume\n”));
return STATUS_UNSUCCESSFUL;
}

status = ZwFsControlFile(fileHandle, NULL, NULL, NULL,
&ioStatusBlock,
FSCTL_LOCK_VOLUME,
NULL,0, NULL,0);
if(!NT_SUCCESS(status)) {
KdPrint((FUNCTION_NAME “Could not lock volume - status: %x\n”, status));
return STATUS_UNSUCCESSFUL;
}

status = ZwFsControlFile(fileHandle, NULL, NULL, NULL,
&ioStatusBlock,
FSCTL_UNLOCK_VOLUME,
NULL,0, NULL,0);
if(!NT_SUCCESS(status)) {
KdPrint((FUNCTION_NAME “Could not unlock volume - status: %x\n”, status));
return STATUS_UNSUCCESSFUL;
}

Thanks,

Kelvin</file:></file:></file:>