mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 19:08:26 -06:00
Windows: Implement workaround on Windows 10 to make VeraCrypt encrypted disks visible to Windows defragmenter
This commit is contained in:
@@ -72,6 +72,8 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
|
||||
Extension->IncursSeekPenalty = TRUE;
|
||||
Extension->TrimEnabled = FALSE;
|
||||
|
||||
Extension->DeviceNumber = (ULONG) -1;
|
||||
|
||||
RtlInitUnicodeString (&FullFileName, pwszMountVolume);
|
||||
InitializeObjectAttributes (&oaFileAttributes, &FullFileName, OBJ_CASE_INSENSITIVE | (forceAccessCheck ? OBJ_FORCE_ACCESS_CHECK : 0) | OBJ_KERNEL_HANDLE, NULL, NULL);
|
||||
KeInitializeEvent (&Extension->keVolumeEvent, NotificationEvent, FALSE);
|
||||
@@ -94,6 +96,7 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
|
||||
DISK_GEOMETRY_EX dg;
|
||||
STORAGE_PROPERTY_QUERY storagePropertyQuery = {0};
|
||||
byte* dgBuffer;
|
||||
STORAGE_DEVICE_NUMBER storageDeviceNumber;
|
||||
|
||||
ntStatus = IoGetDeviceObjectPointer (&FullFileName,
|
||||
FILE_READ_DATA | FILE_READ_ATTRIBUTES,
|
||||
@@ -147,6 +150,13 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject,
|
||||
|
||||
TCfree (dgBuffer);
|
||||
|
||||
if (NT_SUCCESS (TCSendHostDeviceIoControlRequest (DeviceObject, Extension,
|
||||
IOCTL_STORAGE_GET_DEVICE_NUMBER,
|
||||
(char*) &storageDeviceNumber, sizeof (storageDeviceNumber))))
|
||||
{
|
||||
Extension->DeviceNumber = storageDeviceNumber.DeviceNumber;
|
||||
}
|
||||
|
||||
lDiskLength.QuadPart = dg.DiskSize.QuadPart;
|
||||
Extension->HostBytesPerSector = dg.Geometry.BytesPerSector;
|
||||
Extension->HostBytesPerPhysicalSector = dg.Geometry.BytesPerSector;
|
||||
|
||||
Reference in New Issue
Block a user