IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES IOCTL (ntddstor.h)
此 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 请求用于向存储设备发送数据集管理请求。
主要代码
输入缓冲区
Irp->AssociatedIrp.SystemBuffer 的缓冲区包含 DEVICE_DSM_INPUT 结构。 根据此结构的 作 成员,输入缓冲区可能还包括参数块和数据集范围的块。 有关所有可能作的说明,请参阅 DEVICE_DSM_ACTION 说明。
输入缓冲区长度
参数.DeviceIoControl.InputBufferLength IRP 的 I/O 堆栈位置指示缓冲区的大小(以字节为单位),缓冲区的大小必须至少 (DEVICE_DSM_INPUT)。
输出缓冲区
根据DEVICE_DSM_INPUT 作 成员中设置的值,请求可能会在 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。
有关详细信息,请参阅 数据集管理概述。
要求
要求 | 价值 |
---|---|
标头 | ntddstor.h (包括 Ntddstor.h) |
IRQL | IRQL < DISPATCH_LEVEL(请参阅“备注”部分)。 |