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