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 |
Versione UMDF minima | 2.33 |
Intestazione | netpacketqueue.h (include netadaptercx.h) |
IRQL | PASSIVE_LEVEL |
Vedi anche
EVT_NET_ADAPTER_CREATE_RXQUEUE
EVT_NET_ADAPTER_CREATE_TXQUEUE