Partilhar via


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.

Valor de retorno

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

Observações

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

Os drivers de filtro NDIS podem passar NdisAllocateIoWorkItem o identificador do driver de filtro que o NDIS retornou 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 do dispositivo ou objeto de driver para a função IoAllocateWorkItem.

Observação 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 alocado.

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

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

Se um driver de miniporto tiver usado o identificador que NdisMRegisterMiniportDriver retornado 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
de cliente com suporte mínimo Com suporte no NDIS 6.0 e posterior.
da 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)

Consulte também

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

Itens de trabalho de E/S do NDIS

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx