次の方法で共有


SRB_CLOSE_STREAM

クラス ドライバーは、ストリームを閉じるためにこの要求を送信します。

戻り値

ミニドライバーは、SRB の状態として次のいずれかを設定する必要があります。

STATUS_SUCCESS
コマンドが正常に完了したことを示します。

STATUS_NOT_IMPLEMENTED
ミニドライバーで関数がサポートされていないことを示します。

STATUS_IO_DEVICE_ERROR
ハードウェア障害が発生したことを示します。

Comments

クラス ドライバーは、pSrb->StreamObject->StreamNumber を閉じるストリームの数に設定して、pSrb->StreamObjectHW_STREAM_OBJECT バッファーを提供します。 pSrb ポインターは、HW_STREAM_REQUEST_BLOCK 構造体を指します。 StreamNumber は、SRB_GET_STREAM_INFO 要求に応答してミニドライバーが提供する HW_STREAM_DESCRIPTOR 構造体内のストリームのオフセットに対応します。

ミニドライバーがストリームを正常に閉じると、ミニドライバーは STATUS_SUCCESS を返します。 成功しなかった場合は、適切なエラー状態を返します。

SRB_CLOSE_STREAM コマンドがミニドライバーによって受信されると、応答するミニドライバー ルーチンは次の処理を行う必要があります。

  1. ストリームが開かれたときにミニドライバーによって割り当てられたすべてのリソースを解放します。

  2. ストリームにクロックが使用された場合は、クロックの参照を停止します。

  3. ストリーム状態を [停止] にリセットします。

関連するユーザー モード アプリケーションがクラッシュした場合、ストリーミング中にストリームを任意に閉じる可能性があることに注意してください。 そのため、ストリームの未処理のリソースをすべて解放し、ストリームの保留中の SRB をすべて完了し、ストリームを休止状態に戻す必要があります。