PHW_RECEIVE_DEVICE_SRB コールバック関数 (strmini.h)
ミニドライバーによって提供されるルーチンは、デバイスの初期化やデバイス内のストリームの開きなど、ドライバー全体に適用されるクラス ドライバー要求を処理します。
構文
PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;
void PhwReceiveDeviceSrb(
[in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}
パラメーター
[in] SRB
ストリーム要求ブロックへのポインター。
戻り値
なし
解説
ミニドライバーは、そのHW_INITIALIZATION_DATA構造体の HwReceivePacket メンバーでこのルーチン を 指定します。 ミニドライバーは、 StreamClassRegisterMinidriver を呼び出して自身を登録するときに、この構造体をクラス ドライバーに渡します。
StrMiniReceiveDevicePacket は、デバイスの初期化やデバイス内のストリームの開きなど、ドライバー全体に適用されるクラス ドライバー要求を処理する必要があります。 クラス ドライバーは、ストリーム要求ブロックへのポインターの形式で情報を渡します。 クラス ドライバーは、ストリーム要求ブロック内のエントリの一部を入力します。 ミニドライバーは、ルーチンの完了時に、クラス ドライバーが処理を続行するために使用する追加情報を入力する必要があります。
要求の処理が完了すると、ミニドライバーは StreamClassDeviceNotification(DeviceRequestComplete, pSRB-HwDeviceExtension>, pSRB) を呼び出して、構造体をクラス ドライバーに渡します。
関連する SRB コードに関する情報については、「Stream クラス SRB リファレンス」を参照してください。
ミニドライバーは、要求の処理を完了すると、pSrb-Status> で操作の戻り状態を入力します。 ミニドライバーは、通常の正常な処理のためにSTATUS_SUCCESSを入力する必要があります。 ミニドライバーがその Command 値をサポートしていない場合は、pSrb-Status> を STATUS_NOT_IMPLEMENTED に設定する必要があります。 ミニドライバーによる要求の完了を妨げるデバイス ハードウェア エラーが発生した場合は、pSrb-Status> を STATUS_IO_DEVICE_ERROR に設定する必要があります。 特定の状況でルーチンが使用するその他のエラー コードは、上記の特定のコマンド コードと共に示されています。
クラス ドライバーは、読み取り要求と書き込み要求を StrMiniReceiveStreamDataPacket ルーチンに渡します。
ミニドライバーは、 StrMiniReceiveStreamControlPacket ルーチンを次のように登録します。クラス ドライバーがストリームを開くと、 SRB_OPEN_STREAM 要求ブロックがミニドライバーの StrMiniReceiveDevicePacket ルーチンに渡されます。 要求パケットの StreamObject メンバーは 、HW_STREAM_OBJECTを指します。 ミニドライバーは、StreamObject が指す構造体の ReceiveControlPacket メンバーをミニドライバーの StrMiniReceiveControlPacket ルーチンに設定します。
要求の処理が完了すると、ミニドライバーは StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB) を呼び出すことによって、構造体をクラス ドライバーに渡します。
関連する SRB コードに関する情報については、「Stream クラス SRB リファレンス」を参照してください。
ミニドライバーは、要求の処理を完了すると、pSrb-Status> で操作の戻り状態を入力します。 ミニドライバーは、通常の正常な処理のためにSTATUS_SUCCESSを入力する必要があります。 ミニドライバーがその Command 値をサポートしていない場合は、pSrb-Status> を STATUS_NOT_IMPLEMENTED に設定する必要があります。 ミニドライバーによる要求の完了を妨げるデバイス ハードウェア エラーが発生した場合は、pSrb-Status> を STATUS_IO_DEVICE_ERROR に設定する必要があります。 特定の状況でルーチンが使用するその他のエラー コードは、上記の特定のコマンド コードと共に示されています。
ストリーム クラス ドライバーは、ミニドライバーの StrMiniReceiveStreamDataPacket ルーチンを呼び出して、特定のストリームの読み取りと書き込みの要求を処理します。
ミニドライバーは、StrMiniReceiveStreamDataPacket ルーチンを次のように登録します。クラス ドライバーがストリームを開くと、ミニドライバーの StrMiniReceiveDevicePacket ルーチンにSRB_OPEN_STREAM要求ブロックが渡されます。 要求パケットの StreamObject は 、HW_STREAM_OBJECTを指します。 ミニドライバーは、pSrb-StreamObject> が指す構造体の ReceiveDataPacket メンバーをミニドライバーの StrMiniReceiveDataPacket ルーチンに設定します。
要求の処理が完了すると、ミニドライバーは StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB) を呼び出すことによって、構造体をクラス ドライバーに渡します。
関連する SRB コードに関する情報については、「Stream クラス SRB リファレンス」を参照してください。
ミニドライバーは、要求の処理を完了すると、pSrb-Status> で操作の戻り状態を入力します。 ミニドライバーは、通常の正常な処理のためにSTATUS_SUCCESSを入力する必要があります。 ミニドライバーがその Command 値をサポートしていない場合は、pSrb-Status> を STATUS_NOT_IMPLEMENTED に設定する必要があります。 ミニドライバーによる要求の完了を妨げるデバイス ハードウェア エラーが発生した場合は、pSrb-Status> を STATUS_IO_DEVICE_ERROR に設定する必要があります。 特定の状況でルーチンが使用するその他のエラー コードは、上記の特定のコマンド コードと共に示されています。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | strmini.h (Strmini.h を含む) |