IOCTL_CHANGER_GET_ELEMENT_STATUS IOCTL (ntddchgr.h)
Возвращает состояние всех элементов или состояние указанного числа элементов определенного типа.
Описание возможных типов элементов см. в разделе CHANGER_ELEMENT.
Основной код
Входной буфер
Буфер в Irp-AssociatedIrp.SystemBuffer> содержит CHANGER_READ_ELEMENT_STATUS данные, указывающие тип элемента и количество элементов, для которых возвращается состояние.
Если вызывающий объект задает элементу VolumeTagInfo CHANGER_READ_ELEMENT_STATUS значение TRUE, возвращаемое состояние элемента будет содержать сведения о теге тома.
Длина входного буфера
Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода указывает размер буфера параметров для входных данных в байтах, который должен иметь >значение = sizeof(CHANGER_READ_ELEMENT_STATUS).
Выходной буфер
Драйвер мини-класса средства изменения возвращает данные о состоянии элемента средства изменения в буфере по адресу Irp-AssociatedIrp.SystemBuffer>. Некоторые элементы типа ChangerDrive возвращают данные о продукте. Если устройство предоставляет сведения о продукте, драйвер мини-класса сообщит данные о состоянии элемента в структуре типа CHANGER_ELEMENT_STATUS_EX. Драйвер мини-класса задает ELEMENT_STATUS_PRODUCT_DATA в элементе Flags структуры, чтобы указать, что он содержит сведения о продукте. Для элементов всех типов, кроме ChangerDrive, драйвер сообщает данные о состоянии элемента в структуре типа CHANGER_ELEMENT_STATUS.
Длина выходного буфера
Parameters.DeviceIoControl.OutputBufferLength указывает размер буфера параметров для вывода в байтах. Для элементов типа ChangerDrive это значение должно иметь >значение = NumberOfElements * sizeof(CHANGER_ELEMENT_STATUS_EX). Для элементов всех остальных типов это значение должно быть >= NumberOfElements * sizeof(CHANGER_ELEMENT_STATUS).
Блок состояния
В поле Сведения задается количество возвращаемых байтов. Для поля Состояние задано значение STATUS_SUCCESS или, возможно, STATUS_BUFFER_TOO_SMALL, STATUS_INFO_LENGTH_MISMATCH, STATUS_INSUFFICIENT_RESOURCES, STATUS_INVALID_ELEMENT_ADDRESS или STATUS_INVALID_PARAMETER.
Требования
Требование | Значение |
---|---|
Заголовок | ntddchgr.h (включая Ntddchgr.h) |