Condividi tramite


Funzione NdisAllocateIoWorkItem (ndis.h)

I driver NDIS chiamano la funzione NdisAllocateIoWorkItem per allocare un elemento di lavoro. Per altre informazioni, vedere Elementi di lavoro di I/O NDIS.

Sintassi

NDIS_HANDLE NdisAllocateIoWorkItem(
  [in] NDIS_HANDLE NdisObjectHandle
);

Parametri

[in] NdisObjectHandle

Handle di un oggetto NDIS associato a un oggetto dispositivo o a un oggetto driver.

Valore restituito

Se NdisAllocateIoWorkItem alloca correttamente un elemento di lavoro, restituisce un handle all'elemento di lavoro. Se ha esito negativo, NdisAllocateIoWorkItem restituisce NULL.

Commenti

I driver miniport NDIS passano NdisAllocateIoWorkItem uno dei due handle: l'handle dell'adattatore passato alla funzione MiniportInitializeEx o l'handle del driver miniport restituito da NDIS quando viene chiamato il driver miniport NdisMRegisterMiniportDriver.

I driver di filtro NDIS possono passare NdisAllocateIoWorkItem l'handle del driver di filtro restituito da NDIS quando il driver di filtro chiamato NdisFRegisterFilterDriver.

I driver miniport NDIS e i driver di filtro possono anche passare NdisAllocateIoWorkItem l'handle del dispositivo NDIS restituito quando il driver ha chiamato NdisRegisterDeviceEx. NdisAllocateIoWorkItem ottiene l'oggetto dispositivo o l'oggetto driver associato all'handle e passa l'oggetto dispositivo o l'oggetto driver alla funzione IoAllocateWorkItem .

Nota I driver di protocollo non possono usare NdisAllocateIoWorkItem perché NDIS non associa driver di protocollo a oggetti dispositivo o oggetti driver.
 
I driver NDIS chiamano la funzione NdisQueueIoWorkItem per accodare gli elementi di lavoro. Dopo che un driver chiama NdisQueueIoWorkItem, NDIS chiama la funzione di callback specificata dal driver in IRQL = PASSIVE_LEVEL. Ciò può migliorare le prestazioni del sistema consentendo alla funzione corrente di terminare immediatamente e il driver di eseguire il lavoro in un secondo momento in un IRQL inferiore.

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

I driver possono chiamare NdisFreeIoWorkItem nella routine di callback passata a NdisQueueIoWorkItem.

Se un driver miniport ha usato l'handle che NDIS ha passato a MiniportInitializeEx quando ha chiamato NdisAllocateIoWorkItem, l'elemento di lavoro deve essere liberato prima o nella chiamata alla funzione MiniportHaltEx driver.

Se un driver miniport ha usato l'handle restituito da NdisMRegisterMiniportDriver quando il driver ha chiamato NdisAllocateIoWorkItem, il driver deve liberare l'elemento di lavoro prima che il driver venga scaricato.

In generale, un driver deve liberare l'elemento di lavoro prima dello scaricamento del driver.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis.h (include Ndis.h)
Libreria Ndis.lib
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI Init_NdisAllocateIoWorkItem(ndis), Irql_Miscellaneous_Function(ndis)

Vedi anche

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

Elementi di lavoro di I/O NDIS

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx