changerError 函数 (mcd.h)

ChangerError 执行特定于设备的错误处理。

语法

void ChangerError(
  PDEVICE_OBJECT      DeviceObject,
  PSCSI_REQUEST_BLOCK Srb,
  NTSTATUS            *Status,
  BOOLEAN             *Retry
);

参数

DeviceObject

指向表示更换器的设备对象的指针。

Srb

指向失败操作的 SCSI 请求块的指针。

Status

指定系统设置的 STATUS_XXX 代码的地址。 变更器微型类驱动程序可以更改状态或将其保留为原样。

Retry

指向指示是否重试请求的标志的指针。 变更器微型类驱动程序可以设置此标志,也可以将其保留为原样。

返回值

备注

此例程是必需的。

如果 SRB 失败,SCSI 状态为 CHECK CONDITION,则 SCSI 类驱动程序调用变更程序类驱动程序的 ChangerClassError 例程。 ChangerClassError 执行与设备无关的错误处理,并调用 changer miniclass 驱动程序的 ChangerError 例程。

ChangerError 首先使用 SRB_STATUS_AUTOSENSE_VALID 检查 Srb-SrbStatus>,以确保感知数据缓冲区有效。 如果是这样,它会检查 Srb-SenseInfoBuffer> 中的感知数据,以确定在返回到变更程序类驱动程序之前,是否使用更准确的STATUS_XXX 代码更新状态和/或设置重试标志。 变更器类驱动程序的重试计数确定是否实际重试 SRB。

要求

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