ChangerError 関数 (mcd.h)
ChangerError は 、デバイス固有のエラー処理を実行します。
構文
void ChangerError(
PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
NTSTATUS *Status,
BOOLEAN *Retry
);
パラメーター
DeviceObject
変更子を表すデバイス オブジェクトへのポインター。
Srb
失敗した操作の SCSI 要求ブロックへのポインター。
Status
システムによって設定されたSTATUS_XXX コードのアドレスを指定します。 変更子ミニクラス ドライバーは、状態を変更するか、そのままにすることができます。
Retry
要求を再試行するかどうかを示すフラグへのポインター。 changer ミニクラス ドライバーは、このフラグを設定することも、そのままにすることもできます。
戻り値
なし
解説
このルーチンは必須です。
SRB が SCSI 状態の CHECK CONDITION で失敗した場合、SCSI クラス ドライバーは、changer クラス ドライバーの ChangerClassError ルーチンを 呼び出します。 ChangerClassError は 、デバイスに依存しないエラー処理を実行し、changer ミニクラス ドライバーの ChangerError ルーチンを 呼び出します。
ChangerError は、まず Srb-SrbStatus> をSRB_STATUS_AUTOSENSE_VALIDでチェックして、センス データ バッファーが有効であることを確認します。 その場合は、Srb-SenseInfoBuffer> のセンス データをチェックして、より正確なSTATUS_XXX コードで *Status を更新するか、または changer クラス ドライバーに戻る前に Retry フラグを設定するかを判断します。 changer クラス ドライバーの再試行回数によって、SRB が実際に再試行されるかどうかが決まります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | mcd.h (Mcd.h、Ntddchgr.h を含む) |
IRQL | PASSIVE_LEVEL |