MINIPORT_RETURN_NET_BUFFER_LISTS funzione di callback (ndis.h)

NDIS chiama la funzione MiniportReturnNetBufferLists per restituire la proprietà delle strutture di NET_BUFFER_LIST , le strutture NET_BUFFER associate e tutti gli MDL collegati a un driver miniport.

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

Sintassi

MINIPORT_RETURN_NET_BUFFER_LISTS MiniportReturnNetBufferLists;

void MiniportReturnNetBufferLists(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PNET_BUFFER_LIST NetBufferLists,
  [in] ULONG ReturnFlags
)
{...}

Parametri

[in] MiniportAdapterContext

Handle per un'area di contesto allocata dal driver miniport nella funzione MiniportInitializeEx . Il driver miniport usa questa area di contesto per mantenere le informazioni sullo stato di un adattatore.

[in] NetBufferLists

Puntatore a un elenco collegato di strutture NET_BUFFER_LIST che NDIS torna al driver miniport. L'elenco collegato può contenere strutture NET_BUFFER_LIST da più chiamate precedenti all'oggetto Funzione NdisMIndicateReceiveNetBufferLists .

[in] ReturnFlags

Flag NDIS che possono essere combinati con un'operazione OR. Questa funzione supporta il flag NDIS_RETURN_FLAGS_DISPATCH_LEVEL che, se impostato, indica che l'IRQL corrente è DISPATCH_LEVEL. Per altre informazioni su questo flag, vedere Dispatch IRQL Tracking.For more information about this flag, see Dispatch IRQL Tracking.

Valore restituito

nessuno

Osservazioni

MiniportReturnNetBufferLists è una funzione obbligatoria per i driver miniport che indicano i dati di rete ricevuti con il Funzione NdisMIndicateReceiveNetBufferLists . Quando un driver eccessivamente chiama La funzione NdisReturnNetBufferLists , NDIS chiama la funzione MiniportReturnNetBufferLists del driver miniport che indica le strutture di NET_BUFFER_LIST specificate.

MiniportReturnNetBufferLists può preparare una struttura NET_BUFFER_LIST restituita da utilizzare in un'indicazione di ricezione successiva. Anche se MiniportReturnNetBufferLists può restituire le strutture NET_BUFFER_LIST a un pool (ad esempio, potrebbe chiamare la funzione NdisFreeNetBufferList ), può essere più efficiente riutilizzare le strutture senza restituirle al pool.

NDIS chiama MiniportReturnNetBufferLists in IRQL<= DISPATCH_LEVEL.

Esempi

Per definire una funzione MiniportReturnNetBufferLists , è innanzitutto necessario fornire 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 con i tipi di funzione consente di eseguire l'analisi del codice per i driver, l'SDV ( Static Driver Verifier ) e altri strumenti di verifica rilevano gli errori ed è un requisito per la scrittura dei driver per il sistema operativo Windows.

Ad esempio, per definire una funzione MiniportReturnNetBufferLists denominata "MyReturnNetBufferLists", usare il tipo MINIPORT_RETURN_NET_BUFFER_LISTS , come illustrato nell'esempio di codice seguente:

MINIPORT_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;

Implementare quindi la funzione come segue:

_Use_decl_annotations_
VOID
 MyReturnNetBufferLists(
    NDIS_HANDLE  MiniportAdapterContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  ReturnFlags
    )
  {...}

Il tipo di funzione MINIPORT_RETURN_NET_BUFFER_LISTS è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori quando si eseguono gli 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 utilizzate le annotazioni applicate al tipo di funzione MINIPORT_RETURN_NET_BUFFER_LISTS nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo di funzione per i driver NDIS.

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

Requisiti

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

Vedi anche

MiniportInitializeEx

NET_BUFFER

NET_BUFFER_LIST

NdisFreeNetBufferList

NdisMIndicateReceiveNetBufferLists

NdisReturnNetBufferLists