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 funzione NdisMCoIndicateReceiveNetBufferLists indica che il driver miniport ha ricevuto dati dalla rete.
Sintassi
void NdisMCoIndicateReceiveNetBufferLists(
[in] IN NDIS_HANDLE NdisVcHandle,
[in] IN PNET_BUFFER_LIST NetBufferLists,
[in] IN ULONG NumberOfNetBufferLists,
[in] IN ULONG CoReceiveFlags
);
Parametri
[in] NdisVcHandle
Handle che identifica una connessione virtuale (VC). Il driver miniport ha ottenuto questo handle come parametro di input per la relativa funzione MiniportCoCreateVc, quando un client configura una chiamata in uscita o quando il gestore chiamate ha creato un vc per un punto di accesso al servizio registrato dal client (SAP) per indicare una notifica di chiamata in ingresso su .
[in] NetBufferLists
Elenco collegato di strutture NET_BUFFER_LIST allocate dal driver miniport.
[in] NumberOfNetBufferLists
Numero di strutture NET_BUFFER_LIST incluse nell'elenco collegato di strutture specificate NetBufferLists.
[in] CoReceiveFlags
Flag che definiscono gli attributi per l'operazione di invio. I flag possono essere combinati con un'operazione OR bit per bit. Per cancellare tutti i flag, impostare questo parametro su zero. NdisMCoIndicateReceiveNetBufferLists supporta i flag seguenti:
NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL
Il runtime di integrazione corrente è DISPATCH_LEVEL. Per altre informazioni su questo flag, vedere Dispatch IRQL Tracking.
NDIS_RECEIVE_FLAGS_RESOURCES
Il driver miniport recupera la proprietà delle strutture di NET_BUFFER_LIST ed eventuali strutture NET_BUFFER collegate immediatamente dopo NdisMCoIndicateReceiveNetBufferLists restituisce.
Valore restituito
Nessuno
Osservazioni
Un driver miniport chiama in genere la funzione NdisMCoIndicateReceiveNetBufferLists dalla funzione MiniportInterruptDPC. Quando un driver miniport chiama NdisMCoIndicateReceiveNetBufferLists, specifica un elenco di strutture NET_BUFFER_LIST nel parametro NetBufferLists. NDIS passa quindi le strutture NET_BUFFER_LIST ai driver di protocollo associati.
I driver Miniport devono impostare il membro SourceHandle di ogni struttura NET_BUFFER_LIST sullo stesso valore del parametro NdisVcHandle in modo che NDIS possa restituire le strutture NET_BUFFER_LIST al driver miniport corretto.
Se un driver miniport chiama NdisMCoIndicateReceiveNetBufferLists e cancella il flag di NDIS_RECEIVE_FLAGS_RESOURCES nel parametro CoReceiveFlags, NDIS restituisce le strutture NET_BUFFER_LIST che NetBufferLists specificano al driver miniport funzione MiniportReturnNetBufferLists. In questo caso, il driver miniport non deve recuperare le strutture NET_BUFFER_LIST fino a quando NDIS non restituisce le strutture NET_BUFFER_LIST al driver miniport MiniportReturnNetBufferLists funzione.
Se un driver miniport chiama NdisMCoIndicateReceiveNetBufferLists e imposta il flag NDIS_RECEIVE_FLAGS_RESOURCES nel parametro CoReceiveFlags, il driver miniport deve riprendere immediatamente la proprietà delle strutture NET_BUFFER_LIST. In questo caso, NDIS non chiama la funzione MiniportReturnNetBufferLists del driver miniport per restituire le strutture di NET_BUFFER_LIST. Al contrario, NDIS restituisce le strutture NET_BUFFER_LIST al driver miniport quando NdisMCoIndicateReceiveNetBufferLists restituisce. Il driver miniport deve recuperare le strutture di NET_BUFFER_LIST immediatamente dopo NdisMCoIndicateReceiveNetBufferLists restituisce. Per recuperare le strutture NET_BUFFER_LIST, un driver miniport può chiamare il proprio funzione MiniportReturnNetBufferLists.
Se un driver miniport imposta il flag NDIS_RECEIVE_FLAGS_RESOURCES nel parametro CoReceiveFlags, i driver di protocollo devono copiare i dati di rete e rilasciare le strutture NET_BUFFER_LIST nel driver miniport. È consigliabile progettare i driver miniport con strutture di NET_BUFFER_LIST preallocate sufficienti per evitare la copia non necessaria.
Il chiamante di NdisMCoIndicateReceiveNetBufferLists deve inizializzare correttamente le strutture di NET_BUFFER_LIST, le strutture NET_BUFFER associate ed eventuali elenchi di descrittori di memoria associati.)