IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES IOCTL (ntddstor.h)
Этот запрос IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES используется для отправки запроса на управление набором данных на устройство хранения.
Основной код
Входной буфер
Буфер в Irp-AssociatedIrp.SystemBuffer> содержит структуру DEVICE_DSM_INPUT. В зависимости от элемента Action этой структуры входной буфер может дополнительно включать блок параметров и блок диапазонов наборов данных. Описание всех возможных действий см. в DEVICE_DSM_ACTION Описания .
Длина входного буфера
Parameters.DeviceIoControl.InputBufferLength в расположении стека ввода-вывода IRP указывает размер буфера в байтах, который должен быть не менее sizeof(DEVICE_DSM_INPUT).
Выходной буфер
В зависимости от значения, заданного в элементе Action DEVICE_DSM_INPUT, запрос может возвращать данные в буфере по адресу Irp-AssociatedIrp.SystemBuffer>. Системный буфер будет содержать допустимые DEVICE_DSM_OUTPUT данные, если операция DSM возвращает выходные данные и Parameters.DeviceIoControl.OutputBufferLength> 0. В зависимости от действия выходной буфер может дополнительно включать выходной блок.
Длина выходного буфера
Длина выходного буфера в байтах, если таковой есть. Если выходные данные возвращаются, выходной буфер должен быть по крайней мере sizeof(DEVICE_DSM_OUTPUT).
Блок состояния
Для поля Состояние можно задать значение STATUS_SUCCESS или, возможно, STATUS_INVALID_DEVICE_REQUEST, STATUS_BUFFER_TOO_SMALL, STATUS_BUFFER_OVERFLOW или другое состояние ошибки.
Комментарии
Из-за требований к пулу памяти, предъявляемых стеком драйверов хранилища, завершение IRP, содержащего этот IOCTL, должно находиться на DISPATCH_LEVEL IRQL < .
Дополнительные сведения см. в статье Общие сведения об управлении наборами данных .
Требования
Требование | Значение |
---|---|
Заголовок | ntddstor.h (включая Ntddstor.h) |
IRQL | DISPATCH_LEVEL IRQL < (см. раздел "Примечания")) |