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_SUCCESSを入力する必要があります。 ミニドライバーがそのコマンド値をサポートしていない場合は、pSrb ->状態STATUS_NOT_IMPLEMENTEDに設定する必要があります。 ミニドライバーによる要求の完了を妨げるデバイス ハードウェア エラーが発生した場合は、pSrb ->StatusSTATUS_IO_DEVICE_ERRORに設定する必要があります。 特定の状況でルーチンが使用するその他のエラー コードは、上記の特定のコマンド コードと共に示されています。
クラス ドライバーは、StrMiniReceiveStreamDataPacket ルーチンに読み取り要求と書き込み要求を渡します。
ミニドライバーは、次のように、StrMiniReceiveStreamControlPacket ルーチンを登録します。クラス ドライバーがストリームを開くと、ミニドライバーの StrMiniReceiveDevicePacket ルーチンに SRB_OPEN_STREAM 要求ブロックが渡されます。 StreamObject 要求パケットのメンバーは、HW_STREAM_OBJECTを指します。 ミニドライバーは、StreamObject が指す構造体の ReceiveControlPacket メンバーをミニドライバーの StrMiniReceiveControlPacket ルーチンに設定します。
要求の処理が完了すると、ミニドライバーは、StreamClassStreamNotification(StreamRequestComplete、pSRB->StreamObject、pSRB)を呼び出すことによって、構造体をクラス ドライバーに渡します。
関連する SRB コードについては、「Stream クラス SRB リファレンス」を参照してください。
ミニドライバーは、要求の処理を完了すると、pSrb ->状態操作の戻り状態を入力します。 ミニドライバーは、通常の正常な処理のためにSTATUS_SUCCESSを入力する必要があります。 ミニドライバーがそのコマンド値をサポートしていない場合は、pSrb ->状態STATUS_NOT_IMPLEMENTEDに設定する必要があります。 ミニドライバーによる要求の完了を妨げるデバイス ハードウェア エラーが発生した場合は、pSrb ->StatusSTATUS_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_SUCCESSを入力する必要があります。 ミニドライバーがそのコマンド値をサポートしていない場合は、pSrb ->状態STATUS_NOT_IMPLEMENTEDに設定する必要があります。 ミニドライバーによる要求の完了を妨げるデバイス ハードウェア エラーが発生した場合は、pSrb ->StatusSTATUS_IO_DEVICE_ERRORに設定する必要があります。 特定の状況でルーチンが使用するその他のエラー コードは、上記の特定のコマンド コードと共に示されています。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | strmini.h (Strmini.h を含む) |