FILTER_CANCEL_SEND_NET_BUFFER_LISTS funzione di callback (ndis.h)

NDIS chiama la funzione FilterCancelSendNetBufferLists di un driver di filtro per annullare la trasmissione di tutte le strutture NET_BUFFER_LIST contrassegnate con un identificatore di annullamento specificato.

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

Sintassi

FILTER_CANCEL_SEND_NET_BUFFER_LISTS FilterCancelSendNetBufferLists;

void FilterCancelSendNetBufferLists(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PVOID CancelId
)
{...}

Parametri

[in] FilterModuleContext

Handle in un'area di contesto allocata dal driver di filtro nella funzione FilterAttach . Il driver di filtro usa questa area di contesto per mantenere le informazioni sullo stato per un modulo di filtro.

[in] CancelId

Identificatore di annullamento. Questo identificatore specifica le strutture NET_BUFFER_LIST annullate.

Valore restituito

nessuno

Osservazioni

La funzione FilterCancelSendNetBufferLists è facoltativa. Se un driver di filtro non filtra le richieste di invio, può impostare il punto di ingresso per questa funzione su NULL quando chiama l'oggetto Funzione NdisFRegisterFilterDriver .

Filtrare i driver che accoda NET_BUFFER_LIST strutture prima di inviare deve esportare una funzione FilterCancelSendNetBufferLists . La funzione FilterCancelSendNetBufferLists annulla la trasmissione in sospeso delle strutture di NET_BUFFER_LIST specificate.

Quando un driver NDIS overlying chiama l'oggetto NdisCancelSendNetBufferLists o La funzione NdisFCancelSendNetBufferLists chiama la funzione FilterCancelSendNetBufferLists dell'associazione.

La funzione FilterCancelSendNetBufferLists di un driver di filtro esegue le operazioni seguenti:

  1. Attraversa l'elenco delle strutture di NET_BUFFER_LIST in coda per il modulo di filtro specificato e chiama NDIS_GET_NET_BUFFER_LIST_CANCEL_ID macro per ottenere l'identificatore di annullamento per ogni struttura di NET_BUFFER_LIST in coda. Il driver di filtro confronta l'ID di annullamento che NDIS_GET_NET_BUFFER_LIST_CANCEL_ID restituisce con l'ID di annullamento passato a FilterCancelSendNetBufferLists.
  2. Rimuove dalla coda di invio (scollega) tutte le strutture NET_BUFFER_LIST i cui identificatori di annullamento corrispondono all'identificatore di annullamento specificato.
  3. Chiama l'oggetto Funzione NdisFSendNetBufferListsComplete per tutte le strutture NET_BUFFER_LIST non collegate per restituire le strutture. Il driver di filtro imposta il campo stato delle strutture NET_BUFFER_LIST su NDIS_STATUS_SEND_ABORTED.
  4. Chiama la funzione NdisFCancelSendNetBufferLists per passare la richiesta di invio annulla ai driver sottostanti.
NDIS chiama FilterCancelSendNetBufferLists in IRQL <= DISPATCH_LEVEL.

Esempi

Per definire una funzione FilterCancelSendNetBufferLists , è prima 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 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 FilterCancelSendNetBufferLists denominata "MyCancelSendNetBufferLists ", usare il tipo FILTER_CANCEL_SEND_NET_BUFFER_LISTS come illustrato in questo esempio di codice:

FILTER_CANCEL_SEND_NET_BUFFER_LISTS MyCancelSendNetBufferLists;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyCancelSendNetBufferLists(
    NDIS_HANDLE  FilterModuleContext,
    PVOID  CancelId
    )
  {...}

Il tipo di funzione FILTER_CANCEL_SEND_NET_BUFFER_LISTS è 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 FILTER_CANCEL_SEND_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 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

FilterAttach

NDIS_GET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER

NET_BUFFER_LIST

NdisCancelSendNetBufferLists

NdisFCancelSendNetBufferLists

NdisFRegisterFilterDriver

NdisFSendNetBufferListsComplete