mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Widnows driver: use correct value for HiddenSectors field in structures to match read MBR disks
This commit is contained in:
@@ -1228,7 +1228,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
|
|||||||
outputBuffer->StartingOffset.QuadPart = BYTES_PER_MB; // Set offset to 1MB to emulate the partition offset on a real MBR disk
|
outputBuffer->StartingOffset.QuadPart = BYTES_PER_MB; // Set offset to 1MB to emulate the partition offset on a real MBR disk
|
||||||
outputBuffer->PartitionLength.QuadPart= Extension->DiskLength;
|
outputBuffer->PartitionLength.QuadPart= Extension->DiskLength;
|
||||||
outputBuffer->PartitionNumber = 1;
|
outputBuffer->PartitionNumber = 1;
|
||||||
outputBuffer->HiddenSectors = 0;
|
outputBuffer->HiddenSectors = BYTES_PER_MB / Extension->BytesPerSector;
|
||||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
Irp->IoStatus.Status = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = sizeof (PARTITION_INFORMATION);
|
Irp->IoStatus.Information = sizeof (PARTITION_INFORMATION);
|
||||||
}
|
}
|
||||||
@@ -1248,7 +1248,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
|
|||||||
outputBuffer->Mbr.PartitionType = Extension->PartitionType;
|
outputBuffer->Mbr.PartitionType = Extension->PartitionType;
|
||||||
outputBuffer->Mbr.BootIndicator = FALSE;
|
outputBuffer->Mbr.BootIndicator = FALSE;
|
||||||
outputBuffer->Mbr.RecognizedPartition = TRUE;
|
outputBuffer->Mbr.RecognizedPartition = TRUE;
|
||||||
outputBuffer->Mbr.HiddenSectors = 0;
|
outputBuffer->Mbr.HiddenSectors = BYTES_PER_MB / Extension->BytesPerSector;
|
||||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
Irp->IoStatus.Status = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = sizeof (PARTITION_INFORMATION_EX);
|
Irp->IoStatus.Information = sizeof (PARTITION_INFORMATION_EX);
|
||||||
}
|
}
|
||||||
@@ -1272,7 +1272,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
|
|||||||
outputBuffer->PartitionEntry->StartingOffset.QuadPart = BYTES_PER_MB; // Set offset to 1MB to emulate the partition offset on a real MBR disk
|
outputBuffer->PartitionEntry->StartingOffset.QuadPart = BYTES_PER_MB; // Set offset to 1MB to emulate the partition offset on a real MBR disk
|
||||||
outputBuffer->PartitionEntry->PartitionLength.QuadPart = Extension->DiskLength;
|
outputBuffer->PartitionEntry->PartitionLength.QuadPart = Extension->DiskLength;
|
||||||
outputBuffer->PartitionEntry->PartitionNumber = 1;
|
outputBuffer->PartitionEntry->PartitionNumber = 1;
|
||||||
outputBuffer->PartitionEntry->HiddenSectors = 0;
|
outputBuffer->PartitionEntry->HiddenSectors = BYTES_PER_MB / Extension->BytesPerSector;
|
||||||
|
|
||||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
Irp->IoStatus.Status = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = sizeof (DRIVE_LAYOUT_INFORMATION);
|
Irp->IoStatus.Information = sizeof (DRIVE_LAYOUT_INFORMATION);
|
||||||
@@ -1307,7 +1307,7 @@ NTSTATUS ProcessVolumeDeviceControlIrp (PDEVICE_OBJECT DeviceObject, PEXTENSION
|
|||||||
outputBuffer->PartitionEntry->StartingOffset.QuadPart = BYTES_PER_MB; // Set offset to 1MB to emulate the partition offset on a real MBR disk
|
outputBuffer->PartitionEntry->StartingOffset.QuadPart = BYTES_PER_MB; // Set offset to 1MB to emulate the partition offset on a real MBR disk
|
||||||
outputBuffer->PartitionEntry->PartitionLength.QuadPart = Extension->DiskLength;
|
outputBuffer->PartitionEntry->PartitionLength.QuadPart = Extension->DiskLength;
|
||||||
outputBuffer->PartitionEntry->PartitionNumber = 1;
|
outputBuffer->PartitionEntry->PartitionNumber = 1;
|
||||||
outputBuffer->PartitionEntry->Mbr.HiddenSectors = 0;
|
outputBuffer->PartitionEntry->Mbr.HiddenSectors = BYTES_PER_MB / Extension->BytesPerSector;
|
||||||
outputBuffer->PartitionEntry->Mbr.PartitionType = Extension->PartitionType;
|
outputBuffer->PartitionEntry->Mbr.PartitionType = Extension->PartitionType;
|
||||||
|
|
||||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
Irp->IoStatus.Status = STATUS_SUCCESS;
|
||||||
|
|||||||
Reference in New Issue
Block a user