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