ChangerClassSendSrbSynchronous 関数 (mcd.h)

ChangerClassSendSrbSynchronous ルーチンは、指定されたデバイスに SRB を同期的に送信します。

構文

NTSTATUS ChangerClassSendSrbSynchronous(
  [in] PDEVICE_OBJECT      DeviceObject,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               Buffer,
  [in] ULONG               BufferSize,
  [in] BOOLEAN             WriteToDevice
);

パラメーター

[in] DeviceObject

ターゲット デバイスの機能デバイス オブジェクトへのポインター。

[in] Srb

ターゲット デバイスに送信される部分的に初期化された SCSI 要求ブロック (SRB) へのポインター。

[in] Buffer

Srb-DataBuffer> が指すバッファーのアドレスを指定します。 ChangerClassSendSrbSynchronous は、このバッファーの MDL を作成し、SRB IRP のターゲット デバイス ドライバーに渡します。

[in] BufferSize

バッファーの長さをバイト単位で指定します。

[in] WriteToDevice

TRUE の場合は書き込み操作、FALSE の場合は読み取り操作を示します。

戻り値

SRB が正常に送信された場合はSTATUS_SUCCESS、SRB が失敗した場合、または何らかの理由で送信できない場合は、適切なエラー コードを返します。

注釈

Changer ミニクラス ドライバーは、Microsoft Windows XP 以降のオペレーティング システムでこのクラス ドライバー ルーチンを呼び出すことができます。 ミニクラス ドライバーは、 classpnp.sysライブラリ ルーチン ClassSendSrbSynchronous を直接呼び出す代わりに、このルーチンを使用してポート ドライバーに SRB を送信する必要があります。 classpnp.sys は Windows Driver Kit (WDK) に付属していますが、サポートされている API ではありません。このライブラリのルーチンを直接呼び出すドライバーは、今後のリリースでは正しく機能しない可能性があります。

ChangerClassSendSrbSynchronous は、部分的に初期化された SRB の初期化を完了し、ターゲットのデバイス オブジェクトに示されている値を使用して SRB のフラグを設定します。 ChangerClassSendSrbSynchronous は、SRB をターゲット デバイスに伝達し、IRP を送信し、IRP の完了を処理するために使用される IRP を作成します。

IRP が失敗し、センス要求データが IRP を再試行する必要があることを示している場合、 ChangerClassSendSrbSynchronous は IRP を再送信します。

要件

要件
対象プラットフォーム デスクトップ
Header mcd.h (Mcd.h、Ntddchgr.h を含む)
Library Mcd.lib

こちらもご覧ください

SCSI_REQUEST_BLOCK