Elementi di lavoro di I/O NDIS

I driver possono accodare le funzioni di callback degli elementi di lavoro di I/O per un'esecuzione successiva. NDIS chiama la funzione di callback specificata dal driver in IRQL = PASSIVE_LEVEL. Ciò migliora le prestazioni del sistema consentendo alla funzione corrente di restituire immediatamente e il driver di eseguire il lavoro in un secondo momento in un IRQL inferiore.

NDIS 6.0 e versioni successive forniscono funzioni wrapper per le routine dell'elemento di lavoro IoAllocateWorkItem, IoFreeWorkItem e IoQueueWorkItem. Anziché la struttura IO_WORKITEM privata, NDIS usa la struttura NDIS_IO_WORKITEM privata.

I driver NDIS 6.0 chiamano la funzione NdisAllocateIoWorkItem per allocare un elemento di lavoro. I driver miniport NDIS passano NdisAllocateIoWorkItem l'handle dell'adattatore passato alla funzione MiniportInitializeEx . NdisAllocateIoWorkItem ottiene l'oggetto dispositivo associato all'handle e passa l'oggetto dispositivo alla routine IoAllocateWorkItem . I driver di filtro passano un handle di filtro.

Nota I driver di protocollo non possono usare NdisAllocateIoWorkItem perché NDIS non associa driver di protocollo a oggetti dispositivo.

I driver NDIS chiamano la funzione NdisQueueIoWorkItem per accodare gli elementi di lavoro. Gli elementi di lavoro NDIS usano il tipo di coda CriticalWorkQueue .

I driver NDIS devono chiamare la funzione NdisFreeIoWorkItem per liberare le risorse associate a un elemento di lavoro allocato da NdisAllocateIoWorkItem .

Thread di lavoro di sistema