Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ChangerQueryVolumeTags обрабатывает аспекты IRP, относящиеся к устройству, с кодом IOCTL IOCTL_CHANGER_QUERY_VOLUME_TAGS.
Синтаксис
NTSTATUS ChangerQueryVolumeTags(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Параметры
[in] DeviceObject
Указатель на объект устройства, представляющий средство изменения.
[in] Irp
Указатель на IRP.
Возвращаемое значение
Если метод изменения поддерживает получение сведений тега тома, ChangerQueryVolumeTags возвращает значение STATUS_XXX, возвращаемое драйвером системного порта или одним из следующих значений:
STATUS_SUCCESS
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INSUFFICIENT_RESOURCES
Если изменение не поддерживает получение сведений тега тома, changerQueryVolumeTags возвращает STATUS_INVALID_DEVICE_REQUEST.
Замечания
Эта подпрограмма объединяет функциональные возможности двух команд SCSI: SEND VOLUME TAGS и REQUEST VOLUME ELEMENT ADDRESS. Эта подпрограмма требуется.
ChangerQueryVolumeTags извлекает сведения тега тома для указанных элементов. Кроме того, его можно использовать для определения или очистки сведений тега тома, если изменение поддерживает эти операции. Флаг CHANGER_VOLUME_IDENTIFICATION в элементе Features0 структуры GET_CHANGER_PARAMETERS указывает, поддерживает ли меняющий эту функцию.
Драйвер класса changer проверяет длину входного и выходного буфера в расположении стека ввода-вывода перед вызовом ChangerQueryVolumeTags. Irp—>SystemBuffer указывает на структуру CHANGER_SEND_VOLUME_TAG_INFORMATION, которая указывает элементы, операцию выполнения и шаблон, указывающий идентификатор тома для поиска или задания.
ChangerQueryVolumeTags сначала проверяет код действия для неподдерживаемых операций и возвращает STATUS_INVALID_DEVICE_REQUEST для тех, кто он не поддерживает. Затем он создает SRB с CDB, чтобы указать адрес начального элемента для конкретного устройства и отправляет его в драйвер системного порта, передав шаблон идентификатора тома в качестве параметра. (Для изменения SCSI драйвер миникласса использует команду SCSI SEND VOLUME TAG.)
Если первый SRB успешно выполнен, ChangerQueryVolumeTags создает второй SRB с CDB для передачи результатов предыдущего SRB. (Для смены SCSI драйвер миникласса использует адрес элемента ТОМа запроса SCSI.)
ChangerQueryVolumeTags затем заполняет структуру READ_ELEMENT_ADDRESS_INFO в Irp—>AssociatedIrp.SystemBuffer, указывающее количество элементов, для которых были переданы сведения тега тома, и сведения для каждого элемента.
После заполнения системного буфера ChangerQueryVolumeTags задает поле Information в блоке состояния ввода-вывода число байтов, записанных в буфер, прежде чем вернуться к драйверу класса changer.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | mcd.h (включая Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |