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之前,changer 类驱动程序先检查 I/O 堆栈位置中的输入和输出缓冲区长度。

Irp->SystemBuffer 指向 CHANGER_READ_ELEMENT_STATUS 结构作为输入参数,指示要报告状态的元素以及是否报告卷标记信息。

ChangerGetElementStatus 首先生成具有 CDB 的 SRB 来读取元素状态命令,并将其发送到系统端口驱动程序,以检索更改程序元素的状态。 对于大多数元素类型,ChangerGetElementStatus 然后在 Irp处填充 CHANGER_ELEMENT_STATUS 结构 ->AssociatedIrp.SystemBuffer,用于报告其状态的每个元素。 但是,ChangerDrive 类型的某些元素 返回产品信息数据。 如果设备提供产品信息,微型类驱动程序必须报告 CHANGER_ELEMENT_STATUS_EX 类型的元素状态数据,而不是使用CHANGER_ELEMENT_STATUS。 ChangerGetElementStatus 必须通过在结构的 标志 成员中设置ELEMENT_STATUS_PRODUCT_DATA来指示产品信息是否存在。

ChangerGetElementStatus 将 I/O 状态块中的 信息 字段设置为返回到 changer 类驱动程序之前返回的字节数。

要求

要求 价值
目标平台 桌面
标头 mcd.h (包括 Mcd.h、Ntddchgr.h)
IRQL PASSIVE_LEVEL

另请参阅

CHANGER_ELEMENT

CHANGER_ELEMENT_LIST

CHANGER_ELEMENT_STATUS

CHANGER_ELEMENT_STATUS_EX

CHANGER_READ_ELEMENT_STATUS

ChangerGetStatus

ChangerInitializeElementStatus

ChangerQueryVolumeTags

IOCTL_CHANGER_GET_ELEMENT_STATUS