ChangerGetElementStatus 函数 (mcd.h)
ChangerGetElementStatus 使用 IOCTL 代码 IOCTL_CHANGER_GET_ELEMENT_STATUS处理设备控制 IRP 的设备特定方面。
语法
NTSTATUS ChangerGetElementStatus(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
参数
[in] DeviceObject
指向表示更换器的设备对象的指针。
[in] Irp
指向 IRP 的指针。
返回值
ChangerGetElementStatus 返回由系统端口驱动程序返回的状态或以下值之一:
STATUS_SUCCESS
STATUS_INFO_LENGTH_MISMATCH
STATUS_INSUFFICIENT_RESOURCES
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_ELEMENT_ADDRESS
如果为不支持卷标记信息的变更程序设置了 VolumeTagInfo,则 ChangerGetElementStatus 将返回STATUS_INVALID_PARAMETER。
注解
此例程是必需的。
ChangerGetElementStatus 返回更改器中所有元素的状态和卷标记信息,或者返回特定类型特定数量的元素的状态。
更改器类驱动程序在调用 ChangerGetElementStatus 之前检查 I/O 堆栈位置中的输入和输出缓冲区长度。
Irp-SystemBuffer> 指向CHANGER_READ_ELEMENT_STATUS结构作为输入参数,该参数指示要报告其状态的元素以及是否报告卷标记信息。
ChangerGetElementStatus 首先使用 CDB 生成 SRB 以读取元素状态命令,并将其发送到系统端口驱动程序以检索更改程序元素的状态。 对于大多数元素类型,ChangerGetElementStatus 随后会在 Irp-AssociatedIrp.SystemBuffer> 处为其报告状态的每个元素填充CHANGER_ELEMENT_STATUS结构。 但是, ChangerDrive 类型的某些元素会返回产品信息数据。 如果设备提供产品信息,微型类驱动程序必须在 CHANGER_ELEMENT_STATUS_EX 类型的结构中报告元素状态数据,而不是使用CHANGER_ELEMENT_STATUS。 ChangerGetElementStatus 必须通过在结构的 Flags 成员中设置ELEMENT_STATUS_PRODUCT_DATA来指示存在产品信息。
ChangerGetElementStatus 将 I/O 状态块中的 “信息” 字段设置为返回到变更程序类驱动程序之前返回的字节数。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | mcd.h (包括 Mcd.h、Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |