Condividi tramite


MINIPORT_CANCEL_SEND funzione di callback (ndis.h)

NDIS chiama una funzione Miniport Driver MiniportCancelSend 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 MINIPORT_CANCEL_SEND . Per altre informazioni, vedere la sezione Esempi seguenti.
 

Sintassi

MINIPORT_CANCEL_SEND MiniportCancelSend;

void MiniportCancelSend(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID CancelId
)
{...}

Parametri

[in] MiniportAdapterContext

Handle in 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 su un adattatore.

[in] CancelId

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

Valore restituito

nessuno

Osservazioni

Driver miniport e driver intermedi che in coda inviano NET_BUFFER_LIST strutture esportano una funzione MiniportCancelSend . La funzione MiniportCancelSend annulla la trasmissione in sospeso delle strutture di NET_BUFFER_LIST specificate.

Quando un driver NDIS overlying chiama l'oggetto La funzione NdisCancelSendNetBufferLists chiama la funzione MiniportCancelSend del driver di livello inferiore appropriato nell'associazione. NDIS effettua questa chiamata solo se il driver di livello inferiore esporta una funzione MiniportCancelSend .

La funzione MiniportCancelSend di un driver miniport esegue le operazioni seguenti:

  1. Attraversa l'elenco delle strutture di NET_BUFFER_LIST in coda per l'adattatore specificato e chiama l'oggetto 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 miniport confronta l'identificatore di annullamento che NDIS_GET_NET_BUFFER_LIST_CANCEL_ID restituisce con l'identificatore di annullamento passato a MiniportCancelSend.
  2. Rimuove dalla coda di invio (un link) tutte le strutture NET_BUFFER_LIST i cui identificatori di annullamento corrispondono all'identificatore di annullamento specificato.
  3. Chiama l'oggetto Funzione NdisMSendNetBufferListsComplete per tutte le strutture NET_BUFFER_LIST scollegate per restituire le strutture . Il driver miniport imposta il campo di stato delle strutture di NET_BUFFER_LIST su NDIS_STATUS_SEND_ABORTED.
La funzione MiniportCancelSend di un driver intermedio esegue le operazioni seguenti:
  1. Esegue le operazioni nell'elenco precedente per la funzione MiniportCancelSend del driver miniport .
  2. Chiama l'oggetto Funzione NdisCancelSendNetBufferLists , specificando l'associazione mappata all'adattatore specificato nella chiamata a MiniportCancelSend.
NDIS chiama MiniportCancelSend all'Esempi Per definire una funzione MiniportCancelSend , è 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 di callback 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 MiniportCancelSend denominata "MyCancelSend ", usare il tipo di MINIPORT_CANCEL_SEND come illustrato in questo esempio di codice:

MINIPORT_CANCEL_SEND MyCancelSend;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyCancelSend(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  CancelId
    )
  {...}

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

MiniportInitializeEx

NDIS_GET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER

NET_BUFFER_LIST

NdisCancelSendNetBufferLists

NdisMSendNetBufferListsComplete