Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет, изменился ли носитель на устройстве со съемным носителем, открытом вызывающей стороной для доступа на чтение или запись. Если доступ на чтение или запись к устройству не требуется, вызывающий объект может повысить производительность, открыв устройство с FILE_READ_ATTRIBUTES и отправивзапрос IOCTL_STORAGE_CHECK_VERIFY2 .
Дополнительные сведения см. в разделе Поддержка съемных носителей.
Основной код
Входной буфер
Нет.
Длина входного буфера
Нет.
Выходной буфер
При необходимости для дисков и компакт-дисков Irp-AssociatedIrp.SystemBuffer> указывает на буфер для получения количества изменений носителя. Драйвер заполняет этот буфер, только если параметр Parameters.DeviceIoControl.OutputBufferLength был ненулевым и возвращаемое значение STATUS_SUCCESS. Счетчик изменений носителя — это ULONG, указывающий, сколько раз изменялся носитель с момента запуска драйвера.
В противном случае этот запрос не имеет выходных данных.
Длина выходного буфера
При необходимости для дисков и компакт-дисков Parameters.DeviceIoControl.OutputBufferLength в расположении стека ввода-вывода IRP указывает размер буфера в байтах, который должен иметь >значение = sizeof(ULONG). Это поле равно нулю, если необязательный буфер не указан.
В противном случае этот запрос не имеет входных данных.
Блок состояния
Если драйвер диска или компакт-диска не указывает на изменение носителя, драйвер устанавливает для поля Состояние значение STATUS_SUCCESS. Кроме того, если был указан необязательный буфер изменения носителя, драйвер возвращает число изменений мультимедиа в буфере по адресу Irp-AssociatedIrp.SystemBuffer> и задает для поля Information значение sizeof(ULONG). Если необязательный буфер изменения носителя не указан, драйвер устанавливает значение Information равным нулю.
Если драйвер обнаруживает, что носитель изменился и том подключен (VPB_MOUNTED задан в VPB), он должен:
- Задайте для параметра Information значение 0.
- Задайте для свойства Состояние значение STATUS_VERIFY_REQUIRED.
- Установите флаг DO_VERIFY_VOLUME в DeviceObject.
- Вызовите IoCompleteRequest с входным IRP.
- Задайте для свойства Состояние значение STATUS_IO_DEVICE_ERROR.
- Задайте для параметра Information значение 0.
- Вызов ioCompleteRequest с помощью IRP.
Для драйвера ленты для поля Сведения задано значение ноль, а для поля Состояние задано значение STATUS_SUCCESS или, возможно, STATUS_VERIFY_REQUIRED.
Требования
| Требование | Значение |
|---|---|
| Заголовок | ntddstor.h (включая Ntddstor.h) |