PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE funzione di callback (ndis.h)

La funzione ProtocolSendNetBufferListsComplete completa un'operazione di invio avviata dal driver del protocollo con una chiamata all'oggetto Funzione NdisSendNetBufferLists .

Nota È necessario dichiarare la funzione usando il tipo di PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE . Per altre informazioni, vedere la sezione Esempi seguenti.
 

Sintassi

PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE ProtocolSendNetBufferListsComplete;

void ProtocolSendNetBufferListsComplete(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PNET_BUFFER_LIST NetBufferList,
  [in] ULONG SendCompleteFlags
)
{...}

Parametri

[in] ProtocolBindingContext

Handle in un'area di contesto allocata dal driver del protocollo per mantenere le informazioni sullo stato su un'associazione. Questo handle è stato passato a NDIS in una chiamata precedente a NdisOpenAdapterEx.

[in] NetBufferList

Puntatore a un elenco di strutture NET_BUFFER_LIST fornite dal driver di protocollo in una chiamata precedente a NdisSendNetBufferLists.

[in] SendCompleteFlags

Flag NDIS che possono essere combinati con un'operazione OR. Per cancellare tutti i flag, impostare questo membro su zero. Questa funzione supporta il flag NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL che; se impostato, indica che l'oggetto IRQL corrente è DISPATCH_LEVEL. Per altre informazioni su questo flag, vedere Dispatch IRQL Tracking.

Valore restituito

nessuno

Osservazioni

ProtocolSendNetBufferListsComplete è una funzione necessaria per i driver del protocollo. ProtocolSendNetBufferListsComplete esegue qualsiasi post-elaborazione necessaria per completare un'operazione di invio. Ad esempio, il driver del protocollo può notificare ai client che hanno richiesto il protocollo di inviare i dati di rete che l'operazione di invio è stata completata.

NDIS chiama ProtocolSendNetBufferListsComplete dopo che il driver miniport sottostante chiama il Funzione NdisMSendNetBufferListsComplete . Il completamento di un'operazione di invio implica in genere che il driver miniport sottostante ha trasmesso i dati di rete specificati. Tuttavia, un driver miniport può indicare che un'operazione di invio è stata completata non appena trasferisce i dati di rete alla scheda di interfaccia di rete.

Quando NDIS chiama ProtocolSendNetBufferListsComplete, il driver del protocollo recupera la proprietà di tutte le risorse associate alle strutture NET_BUFFER_LIST specificate dal parametro NetBufferLists .

NDIS invia sempre i dati di rete forniti dal protocollo al driver miniport sottostante nell'ordine determinato dal protocollo passato a NdisSendNetBufferLists. Tuttavia, il driver sottostante può completare le richieste di invio in qualsiasi ordine. Vale a dire, i driver di protocollo possono basarsi su NDIS per inviare i dati di rete in FIFO per il driver sottostante. Tuttavia, i driver di protocollo non possono basarsi sul driver sottostante per chiamare NdisMSendNetBufferListsComplete nello stesso ordine.

NDIS chiama ProtocolSendNetBufferListsComplete in IRQL<= DISPATCH_LEVEL.

Esempi

Per definire una funzione ProtocolSendNetBufferListsComplete , è prima necessario specificare una dichiarazione di funzione che identifica il tipo di funzione che si sta definendo. Windows fornisce un set di tipi di funzione per i driver. La dichiarazione di una funzione usando i tipi di funzione consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una funzione ProtocolSendNetBufferListsComplete denominata "MySendNetBufferListsComplete ", usare il tipo PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE , come illustrato in questo esempio di codice:

PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE MySendNetBufferListsComplete;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MySendNetBufferListsComplete(
    NDIS_HANDLE  ProtocolBindingContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  SendCompleteFlags
    )
  {...}

Il tipo di funzione PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations garantisce che vengano usate le annotazioni applicate al tipo di funzione PROTOCOL_SEND_NET_BUFFER_LISTS_COMPLETE nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver NDIS.

Per informazioni su Use_decl_annotations, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Windows
Intestazione ndis.h (includere Ndis.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

NET_BUFFER

NET_BUFFER_LIST

NdisMSendNetBufferListsComplete

NdisOpenAdapterEx

NdisSendNetBufferLists