Função NdisAllocateIoWorkItem (ndis.h)

Os drivers NDIS chamam a função NdisAllocateIoWorkItem para alocar um item de trabalho. Para obter mais informações, consulte Itens de trabalho de E/S do NDIS.

Sintaxe

NDIS_HANDLE NdisAllocateIoWorkItem(
  [in] NDIS_HANDLE NdisObjectHandle
);

Parâmetros

[in] NdisObjectHandle

O identificador de um objeto NDIS associado a um objeto de dispositivo ou objeto de driver.

Retornar valor

Se NdisAllocateIoWorkItem alocar com êxito um item de trabalho, ele retornará um identificador para o item de trabalho. Se falhar, NdisAllocateIoWorkItem retornará NULL.

Comentários

Os drivers de miniporto NDIS passam NdisAllocateIoWorkItem em qualquer uma das duas alças: o identificador do adaptador que o NDIS passou para a função MiniportInitializeEx ou o identificador de driver de miniport que o NDIS retornou quando o driver de miniporto chamou NdisMRegisterMiniportDriver.

Os drivers de filtro NDIS podem passar NdisAllocateIoWorkItem o identificador do driver de filtro retornado pelo NDIS quando o driver de filtro chamado NdisFRegisterFilterDriver.

Drivers de miniporto NDIS e drivers de filtro também podem passar NdisAllocateIoWorkItem o identificador de dispositivo NDIS que o NDIS retornou quando o driver chamado NdisRegisterDeviceEx. NdisAllocateIoWorkItem obtém o objeto de dispositivo ou objeto de driver associado ao identificador e passa o objeto de dispositivo ou objeto driver para a função IoAllocateWorkItem .

Nota Os drivers de protocolo não podem usar NdisAllocateIoWorkItem porque o NDIS não associa drivers de protocolo a objetos de dispositivo ou objetos de driver.
 
Os drivers NDIS chamam a função NdisQueueIoWorkItem para enfileirar itens de trabalho. Depois que um driver chama NdisQueueIoWorkItem, o NDIS chama a função de retorno de chamada especificada pelo driver em IRQL = PASSIVE_LEVEL. Isso pode melhorar o desempenho do sistema, permitindo que a função atual termine imediatamente e o driver trabalhe mais tarde em um IRQL inferior.

Os drivers NDIS devem chamar a função NdisFreeIoWorkItem para liberar os recursos associados a um item de trabalho que NdisAllocateIoWorkItem alocou.

Os drivers podem chamar NdisFreeIoWorkItem na rotina de retorno de chamada que é passada para NdisQueueIoWorkItem.

Se um driver de miniporto usou o identificador que o NDIS passou para MiniportInitializeEx quando ele chamou NdisAllocateIoWorkItem, o item de trabalho deve ser liberado antes ou na chamada para a função MiniportHaltEx de drivers.

Se um driver de miniporto usou o identificador que NdisMRegisterMiniportDriver retornou quando o driver chamado NdisAllocateIoWorkItem, o driver deverá liberar o item de trabalho antes que o driver descarregue.

Em geral, um driver deve liberar o item de trabalho antes que o driver descarregue.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI Init_NdisAllocateIoWorkItem(ndis), Irql_Miscellaneous_Function(ndis)

Confira também

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

Itens de trabalho de E/S do NDIS

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx