Condividi tramite


EVT_PACKET_QUEUE_START funzione di callback (netpacketqueue.h)

Il EvtPacketQueueStart funzione di callback è un callback facoltativo implementato dal driver client per avviare il percorso dati per una coda di pacchetti.

Sintassi

EVT_PACKET_QUEUE_START EvtPacketQueueStart;

void EvtPacketQueueStart(
  [_In_] NETPACKETQUEUE PacketQueue
)
{...}

Parametri

[_In_] PacketQueue

Handle di una coda di pacchetti.

Valore restituito

Nessuno

Osservazioni

Questo è un callback facoltativo. Registrare questa funzione di callback nel callback EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE callback. Impostare il membro appropriato di una struttura di NET_PACKET_QUEUE_CONFIG dopo aver inizializzato la struttura con NET_PACKET_QUEUE_CONFIG_INIT, quindi chiamare NetTx(Rx)QueueCreate.

In questo callback, un driver client configura in genere le informazioni richieste dall'hardware per la trasmissione o la ricezione di pacchetti. Poiché questo callback non restituisce un valore e pertanto non deve avere esito negativo, i driver client devono eseguire azioni come l'allocazione delle risorse durante la creazione della coda. Pertanto, questo callback deve essere una funzione leggera che viene eseguita rapidamente.

I driver client non riceveranno chiamate a EVT_PACKET_QUEUE_ADVANCE, EVT_PACKET_QUEUE_CANCELo EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED fino a quando non viene restituito EvtPacketQueueStart. Inoltre, EvtPacketQueueStart viene chiamato nello stesso contesto di esecuzione o thread, come EvtPacketQueueAdvance, EvtPacketQueueCancele EvtPacketQueueSetNotificationEnabled, quindi i driver client non devono eseguire la sincronizzazione tra queste funzioni di callback per una singola istanza della coda.

All'avvio di una coda, NetAdapterCx garantisce che BeginIndex == NextIndex == 0 per tutti i buffer circolari della coda. Dopo l'avvio, il framework non legge o scrive NextIndex per i buffer circolari dei pacchetti, in modo che i driver client possano usarlo in base alle esigenze o scegliere di non usarlo affatto. beginIndex viene letto dal framework ma non viene modificato all'esterno di EvtPacketQueueStart.

Per altre info e un diagramma che mostra il modello di polling del percorso dati NetAdapterCx, vedere Trasmettere e ricevere code.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
versione minima di KMDF 1.27
versione minima di UMDF 2.33
intestazione netpacketqueue.h (include netadaptercx.h)
IRQL PASSIVE_LEVEL

Vedere anche

EVT_NET_ADAPTER_CREATE_RXQUEUE

EVT_NET_ADAPTER_CREATE_TXQUEUE

NetRxQueueCreare

NetTxQueueCreare

EVT_PACKET_QUEUE_ADVANCE

EVT_PACKET_QUEUE_CANCEL

EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED

EVT_PACKET_QUEUE_STOP