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说明 。
输入缓冲区长度
IRP 的 I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示缓冲区的大小(以字节为单位),该缓冲区的大小必须至少为 (DEVICE_DSM_INPUT) 。
输出缓冲区
根据 DEVICE_DSM_INPUT 的 Action 成员中设置的值,请求可能会在 Irp-AssociatedIrp.SystemBuffer> 的缓冲区中返回数据。 如果 DSM 操作返回输出和 Parameters.DeviceIoControl.OutputBufferLength> 0,则系统缓冲区将包含有效的DEVICE_DSM_OUTPUT数据。 根据 操作,输出缓冲区可能另外包含输出块。
输出缓冲区长度
输出缓冲区的长度(以字节为单位),如果有。 如果返回输出,则输出缓冲区的大小 必须至少为 (DEVICE_DSM_OUTPUT) 。
状态块
“ 状态” 字段可以设置为STATUS_SUCCESS,也可以设置为STATUS_INVALID_DEVICE_REQUEST、STATUS_BUFFER_TOO_SMALL、STATUS_BUFFER_OVERFLOW或其他错误状态。
注解
由于存储驱动程序堆栈的内存池要求,包含此 IOCTL 的 IRP 的完成必须在 IRQL < DISPATCH_LEVEL。
有关详细信息,请参阅 数据集管理概述 。
要求
要求 | 值 |
---|---|
Header | ntddstor.h (包括 Ntddstor.h) |
IRQL | IRQL < DISPATCH_LEVEL (请参阅备注部分。) |