ChangerReinitializeUnit 函数 (mcd.h)
ChangerReinitializeUnit 使用 IOCTL 代码 IOCTL_CHANGER_REINITIALIZE_TRANSPORT处理设备控制 IRP 的设备特定方面。
语法
NTSTATUS ChangerReinitializeUnit(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
参数
[in] DeviceObject
指向表示更改器的设备对象的指针。
[in] Irp
指向 IRP 的指针。
返回值
如果 changer 支持重新调整传输元素,ChangerReinitializeUnit 将返回系统端口驱动程序返回的 STATUS_XXX 值,或以下值之一:
STATUS_SUCCESS
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
如果 changer 不支持重新调整传输元素,ChangerReinitializeUnit 将返回STATUS_INVALID_DEVICE_REQUEST。
言论
此例程是必需的。
ChangerReinitializeUnit 会导致更改程序重新调整其传输元素。 根据更改程序,这可能会将传输返回到“主页”位置。 changer 类驱动程序通常在更改程序打开或调用应用程序启动恢复作后调用 ChangerReinitializeUnit。 GET_CHANGER_PARAMETERS 的 Features0 中的CHANGER_DEVICE_REINITIALIZE_CAPABLE标志指示更改者的传输是否支持在这些情况下重新调整。
在调用 changerReinitializeUnit之前,changer 类驱动程序先检查 I/O 堆栈位置中的输入缓冲区长度。 Irp->SystemBuffer 指向指示要重新调整的元素的 CHANGER_ELEMENT 结构。
ChangerReinitializeUnit 生成具有 CDB 的 SRB 来定位传输元素并将其发送到系统端口驱动程序。
ChangerReinitializeUnit 将 I/O 状态块中的 信息 字段设置为在返回到 changer 类驱动程序之前 sizeof(CHANGER_ELEMENT)。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | mcd.h (包括 Mcd.h、Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |