Как получить размер тома в драйвере нижнего фильтра для Windows - PullRequest
0 голосов
/ 15 октября 2019

Получить размер тома в драйвере фильтра нижнего тома

Я пробовал NtQueryVolumeInformationFile, он завершается неудачно с c0000024 и такой же результат IRP_MJ_QUERY_INFORMATION. Попробуйте IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, результат будет c0000000e

Я делаю это в подпрограмме AddDevice.

KeInitializeEvent(&Event,NotificationEvent,FALSE);
pIrp=IoAllocateIrp(m_pHostDevice->StackSize,FALSE); 
pIrpStack=IoGetNextIrpStackLocation(pIrp);
pIrpStack->MajorFunction=IRP_MJ_DEVICE_CONTROL; 
pIrpStack->Parameters.DeviceIoControl.IoControlCode =
    IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS;
pIrpStack->Parameters.DeviceIoControl.OutputBufferLength =
    sizeof(Buffer);

pIrp->AssociatedIrp.SystemBuffer = Buffer;

KeInitializeEvent(&Event, SynchronizationEvent, FALSE);

IoSetCompletionRoutine(pIrp,
    CompleteRoutine,
    &Event,
    TRUE,
    TRUE,
    TRUE);

Status=IoCallDriver(m_pHostDevice,pIrp);
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);

Status=pIrp->IoStatus.Status;

IoFreeIrp(pIrp);

Кто знает, как получить информацию о томе тома (размер / размер кластера / размер сектора)?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...