Получить размер тома в драйвере фильтра нижнего тома
Я пробовал 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);
Кто знает, как получить информацию о томе тома (размер / размер кластера / размер сектора)?
Спасибо