EVT_PACKET_QUEUE_START funzione di callback (netpacketqueue.h)

La funzione di callback EvtPacketQueueStart è 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 per una coda di pacchetti.

Valore restituito

nessuno

Osservazioni

Si tratta di un callback facoltativo. Registrare questa funzione di callback nel callback EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE . Impostare il membro appropriato di una struttura 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 necessarie all'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_CANCEL o EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED finché evtPacketQueueStart non verrà restituito. Inoltre, EvtPacketQueueStart viene chiamato nello stesso contesto di esecuzione o thread, come EvtPacketQueueAdvance, EvtPacketQueueCancel e 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 cheBeginIndex 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, quindi i driver client possono 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, vedi Trasmettere e ricevere code.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.27
Intestazione netpacketqueue.h (include netadaptercx.h)
IRQL PASSIVE_LEVEL

Vedi anche

EVT_NET_ADAPTER_CREATE_RXQUEUE

EVT_NET_ADAPTER_CREATE_TXQUEUE

NetRxQueueCreate

NetTxQueueCreate

EVT_PACKET_QUEUE_ADVANCE

EVT_PACKET_QUEUE_CANCEL

EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED

EVT_PACKET_QUEUE_STOP