共用方式為


changerError 函式 (mcd.h)

ChangerError 會執行裝置特定的錯誤處理。

語法

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

參數

DeviceObject

代表變更器的裝置物件的指標。

Srb

失敗之作業的 SCSI 要求區塊指標。

Status

指定系統所設定之STATUS_XXX 程式代碼的位址。 changer miniclass 驅動程式可以變更狀態或保持原狀。

Retry

旗標的指標,指出是否要重試要求。 changer miniclass 驅動程式可以設定此旗標或保持原狀。

傳回值

備註

需要此例程。

如果 SRB 失敗且 SCSI 狀態為 CHECK CONDITION,SCSI 類別驅動程式會呼叫 changer 類別驅動程式的 ChangerClassError 例程。 ChangerClassError 會執行與裝置無關的錯誤處理,並呼叫 changer miniclass 驅動程式的 ChangerError 例程。

ChangerError 會先使用 SRB_STATUS_AUTOSENSE_VALID 檢查 Srb-SrbStatus>,以確定有意義的數據緩衝區有效。 如果是,它會檢查 Srb-SenseInfoBuffer >中的感知數據,以更精確的STATUS_XXX 程式代碼更新 *狀態,以及/或設定 Retry 旗標,然後再返回 changer 類別驅動程式。 changer 類別驅動程式的重試計數會決定是否實際重試 SRB。

規格需求

需求
目標平台 桌面
標頭 mcd.h (包括 Mcd.h、Ntddchgr.h)
IRQL PASSIVE_LEVEL