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 类驱动程序通常在更改程序打开或调用应用程序启动恢复作后调用 ChangerReinitializeUnitGET_CHANGER_PARAMETERSFeatures0 中的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

另请参阅

、IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS