IOCTL_CHANGER_GET_ELEMENT_STATUS IOCTL (ntddchgr.h)
返回所有元素的状态或指定数量的特定类型的元素的状态。
有关可能元素类型的说明,请参阅 CHANGER_ELEMENT。
主要代码
输入缓冲区
Irp-AssociatedIrp.SystemBuffer> 处的缓冲区包含CHANGER_READ_ELEMENT_STATUS数据,该数据指示元素类型和要为其返回状态的元素数。
如果调用方将 CHANGER_READ_ELEMENT_STATUS 的 VolumeTagInfo 成员设置为 TRUE,则返回的元素状态将包含卷标记信息。
输入缓冲区长度
I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示输入的参数缓冲区的大小(以字节为单位),该缓冲区必须为 >= sizeof (CHANGER_READ_ELEMENT_STATUS) 。
输出缓冲区
changer 微型类驱动程序在 Irp-AssociatedIrp.SystemBuffer> 的缓冲区中返回 changer 元素状态数据。 ChangerDrive 类型的某些元素返回产品信息数据。 如果设备提供产品信息,微型类驱动程序将在 CHANGER_ELEMENT_STATUS_EX 类型的结构中报告元素状态数据。 微类驱动程序在 结构的 Flags 成员中设置ELEMENT_STATUS_PRODUCT_DATA,以指示它包含产品信息数据。 对于 除 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。
要求
要求 | 值 |
---|---|
Header | ntddchgr.h (包括 Ntddchgr.h) |