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 |