Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La figura seguente illustra un'operazione di invio CoNDIS di base, che prevede un driver di protocollo, NDIS e un driver miniport.
Come illustrato nella figura precedente, i driver di protocollo chiamano la funzioneNdisCoSendNetBufferLists per inviare le strutture NET_BUFFER_LIST su una connessione virtuale (VC). NDIS chiama quindi il driver miniport MiniportCoSendNetBufferLists funzione per inoltrare le strutture NET_BUFFER_LIST a un driver miniport sottostante.
Tutte le operazioni di invio basate su NET_BUFFER sono asincrone. Pertanto, il driver miniport chiama sempre la funzione NdisMCoSendNetBufferListsComplete e fornisce un codice di stato appropriato al termine dell'invio dei dati. Il driver miniport può completare l'operazione di invio per ogni struttura NET_BUFFER_LIST indipendente da altre strutture NET_BUFFER_LIST. NDIS chiama la funzione ProtocolCoSendNetBufferListsComplete ogni volta che il driver Miniport chiama NdisMCoSendNetBufferListsComplete.
I driver di protocollo possono recuperare la proprietà delle strutture di NET_BUFFER_LIST e di tutte le strutture e i dati associati non appena NDIS chiama la funzione ProtocolCoSendNetBufferListsComplete del driver di protocollo.
Il driver miniport o NDIS può restituire le strutture NET_BUFFER_LIST in qualsiasi ordine. Tuttavia, i driver di protocollo garantiscono che l'elenco delle strutture NET_BUFFER associate a ogni struttura NET_BUFFER_LIST non sia stata modificata.
I driver dei protocolli impostano il membro SourceHandle nella struttura NET_BUFFER_LIST allo stesso valore del parametro NdisVcHandle di NdisCoSendNetBufferLists. NDIS usa il membro SourceHandle per restituire le strutture di NET_BUFFER_LIST al driver di protocollo che ha inviato le strutture NET_BUFFER_LIST.
Anche i driver intermedi impostano il membro SourceHandle nella struttura NET_BUFFER_LIST al valore NdisVcHandle. Se un driver intermedio inoltra una richiesta di invio, il driver deve salvare il valore di SourceHandle fornito dal driver superiore prima di scrivere nel membro SourceHandle. Quando NDIS restituisce una struttura NET_BUFFER_LIST inoltrata al driver intermedio, il driver intermedio deve ripristinare il SourceHandle salvato.
I driver di protocollo possono annullare l'invio di richieste usando gli stessi meccanismi dei driver senza connessione. Per altre informazioni sull'annullamento delle richieste di invio, vedere Annullamento di un'operazione di invio.