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 |