Reimpostazione dello stato nei codec AVStream
Per eliminare i dati del flusso e reimpostare lo stato di streaming, la pipeline di streaming multimediale invia MFT_MESSAGE_COMMAND_FLUSH a un MFT. Quando un MFT HW riceve un MFT_MESSAGE_COMMAND_FLUSH, MFT invia IOCTL_KS_RESET_STATE con un valore di KSRESET_BEGIN ai pin di input e di output. I minidriver devono sottoscrivere la notifica di reimpostazione specificando un callback AVStrMiniPinReset nel membro Reset di KSPIN_DISPATCH.
Quando il driver riceve questo IOCTL, deve eliminare tutti i puntatori clone in sospeso e reimpostare tutti gli stati interni precedenti. Dopo che il driver ha scaricato richieste di I/O in sospeso, riceve un altro IOCTL_KS_RESET_STATE con un valore di KSRESET_END.
A questo punto, il minidriver deve essere pronto per accettare un nuovo input dal flusso successivo.
Tenere presente che per il corretto funzionamento del ripristino, il minidriver deve specificare la connessione della topologia tra i pin di input e di output fornendo una matrice di tipo KSTOPOLOGY_CONNECTION nel membro Connections della struttura KSFILTER_DESCRIPTOR .
Viene inviato anche un IOCTL di reimpostazione nello scenario seguente. Quando il driver imposta il flag KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM su un'intestazione di flusso e sblocca il puntatore di flusso, KS scarica la coda, che genera una chiamata IOCTL_KS_RESET_STATE con un valore di KSRESET_END nel driver.
In questo caso, quando il driver riceve una richiesta finale senza una richiesta iniziale precedente, il driver deve impostare KSPIN. ResetState su KSRESET_END. Questo caso si applica solo ai pin di output.