SRB_CLOSE_STREAM
Il driver di classe invia questa richiesta per chiudere un flusso.
Valore restituito
Il minidriver deve impostare uno dei seguenti come stato in SRB:
STATUS_SUCCESS
Indica il completamento corretto del comando.
STATUS_NOT_IMPLEMENTED
Indica che la funzione non è supportata dal minidriver.
STATUS_IO_DEVICE_ERROR
Indica che si è verificato un errore hardware.
Commenti
Il driver di classe fornisce un buffer HW_STREAM_OBJECT in pSrb-StreamObject, con pSrb-StreamObject-StreamNumber>>> impostato sul numero del flusso da chiudere. Il puntatore pSrb punta a una struttura di HW_STREAM_REQUEST_BLOCK . StreamNumber corrisponde all'offset del flusso all'interno della struttura HW_STREAM_DESCRIPTOR fornita dal minidriver in risposta a una richiesta di SRB_GET_STREAM_INFO .
Se il minidriver chiude correttamente il flusso, il minidriver restituisce STATUS_SUCCESS. In caso contrario, restituisce uno stato di errore appropriato.
Quando il comando SRB_CLOSE_STREAM viene ricevuto dal minidriver, la routine di minidriver risponde deve:
Liberare qualsiasi risorsa allocata dal minidriver quando il flusso è stato aperto.
Arrestare il riferimento all'orologio se è stato usato un orologio per il flusso.
Reimpostare lo stato del flusso su Arresta.
Si noti che un flusso potrebbe essere chiuso arbitrariamente durante lo streaming se un'applicazione in modalità utente associata si arresta in modo anomalo. Pertanto, è necessario rilasciare tutte le risorse in sospeso per il flusso, completare tutti gli SRB in sospeso per il flusso e inserire il flusso in uno stato quiescente.