NDIS_PD_FLUSH_QUEUE funzione di callback (ndis.h)
La piattaforma PacketDirect (PD) chiama una funzione PD-support miniport driver PDFlushQueue per scaricare una coda specificata, assicurando che tutti gli elementi che non sono ancora in uno stato completo nella coda verranno completati imminentmente.
Sintassi
NDIS_PD_FLUSH_QUEUE NdisPdFlushQueue;
VOID() NdisPdFlushQueue(
[in, out] NDIS_PD_QUEUE *Queue
)
{...}
Parametri
[in, out] Queue
Coda da scaricare. Per altre informazioni, vedere la struttura NDIS_PD_QUEUE .
Valore restituito
Questa funzione di callback non restituisce un valore.
Commenti
Il chiamante è responsabile dell'attesa e dello svuotamento di tutte le richieste pubblicate in precedenza prima di chiudere la coda. Il chiamante non deve inviare ulteriori PD_BUFFER strutture alla coda dopo questa chiamata. Il caso d'uso principale per questa routine sta scaricando le code di ricezione- se non c'è traffico in ingresso, i buffer pubblicati si sederanno nella coda di ricezione in modo indefinito e questi devono essere scaricati prima che la coda possa essere chiusa. Lo stesso problema non esiste per le code di trasmissione in pratica perché le richieste di trasmissione non verranno pennate in modo indefinito. Tuttavia, i provider devono rispettare la chiamata di scaricamento per le code di trasmissione (questo potrebbe essere un'operazione senza operazioni se il provider sa che la richiesta di trasmissione in sospeso verrà completata molto presto, che è il caso tipico ad eccezione del controllo flusso L2).
Esempi
Per definire una funzione PDFlushQueue , è 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 PDFlushQueue denominata "MyPDFlushQueue", usare il tipo di NDIS_PD_FLUSH_QUEUE come illustrato in questo esempio di codice:
NDIS_PD_FLUSH_QUEUE MyPDFlushQueue;
Implementare quindi la funzione come indicato di seguito:
_Use_decl_annotations_
VOID
MyPDFlushQueue(
NDIS_PD_QUEUE* NdisPDQueue
)
{...}
Il tipo di funzione NDIS_PD_FLUSH_QUEUE è definito nel file di intestazione Ntddndis.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 NDIS_PD_FLUSH_QUEUE 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 | Windows 10 |
Server minimo supportato | Windows Server 2016 |
Piattaforma di destinazione | Windows |
Intestazione | ndis.h |
IRQL | <= DISPATCH_LEVEL |