Freigeben über


SRB_CLOSE_STREAM

Der Klassentreiber sendet diese Anforderung, um einen Stream zu schließen.

Rückgabewert

Der Minitreiber sollte eine der folgenden Optionen als status im SRB festlegen:

STATUS_SUCCESS
Gibt den erfolgreichen Abschluss des Befehls an.

STATUS_NOT_IMPLEMENTED
Gibt an, dass die Funktion vom Minitreiber nicht unterstützt wird.

STATUS_IO_DEVICE_ERROR
Gibt an, dass ein Hardwarefehler aufgetreten ist.

Kommentare

Der Klassentreiber stellt einen HW_STREAM_OBJECT Puffer in pSrb-StreamObject> bereit, wobei pSrb-StreamObject-StreamNumber>> auf die Nummer des zu schließenden Streams festgelegt ist. Der pSrb-Zeiger zeigt auf eine HW_STREAM_REQUEST_BLOCK-Struktur . StreamNumber entspricht dem Offset des Datenstroms innerhalb der HW_STREAM_DESCRIPTOR-Struktur , die der Minitreiber als Reaktion auf eine SRB_GET_STREAM_INFO-Anforderung bereitstellt.

Wenn der Minitreiber den Stream erfolgreich schließt, gibt der Minitreiber STATUS_SUCCESS zurück. Andernfalls wird ein entsprechender Fehler status zurückgegeben.

Wenn der befehl SRB_CLOSE_STREAM vom Minidriver empfangen wird, sollte die antwortierende Minitreiberroutine Folgendes ausführen:

  1. Geben Sie alle Ressourcen frei, die vom Minidriver beim Öffnen des Streams zugewiesen wurden.

  2. Beenden Sie den Verweis auf die Uhr, wenn eine Uhr für den Stream verwendet wurde.

  3. Setzen Sie den Streamstatus auf Beenden zurück.

Beachten Sie, dass ein Stream während des Streamings willkürlich geschlossen werden kann, wenn eine zugeordnete Benutzermodusanwendung abstürzt. Daher müssen Sie alle ausstehenden Ressourcen für den Stream freigeben, alle ausstehenden SRBs für den Stream abschließen und den Stream wieder in einen Ruhezustand versetzen.