Função IoInitializeWorkItem (wdm.h)

A rotina IoInitializeWorkItem inicializa um item de trabalho que o chamador já alocou.

Sintaxe

void IoInitializeWorkItem(
  [in] PVOID        IoObject,
  [in] PIO_WORKITEM IoWorkItem
);

Parâmetros

[in] IoObject

Ponteiro para o objeto de driver do chamador ou para um dos objetos de dispositivo do chamador. Se o chamador passar posteriormente o item de trabalho para IoQueueWorkItem, IoObject deverá apontar para um objeto de dispositivo.

[in] IoWorkItem

Ponteiro para a estrutura IO_WORKITEM a ser inicializada.

Retornar valor

Nenhum

Comentários

O driver aloca seu próprio armazenamento para uma estrutura IO_WORKITEM e, em seguida, chama IoInitializeWorkItem para inicializá-lo. A memória deve ser alocada do pool nãopagado. Para determinar o número de bytes necessários para manter uma estrutura IO_WORKITEM , chame IoSizeofWorkItem.

Uma estrutura IO_WORKITEM inicializada por IoInitializeWorkItemdeve não ser inicializada por IoUninitializeWorkItem antes de ser liberada.

Uma rotina relacionada, IoAllocateWorkItem, aloca e inicializa um item de trabalho. Ao combinar alocação e inicialização em uma única chamada, IoAllocateWorkItem pode ser mais conveniente para alguns drivers usarem do que IoInitializeWorkItem, que faz apenas a inicialização. No entanto, IoInitializeWorkItem é exigido por drivers que devem inicializar itens de trabalho no armazenamento alocado anteriormente.

Por exemplo, um driver pode alocar um bloco de armazenamento para um pool de itens de trabalho. O driver pode chamar IoInitializeWorkItem para inicializar um item de trabalho quando o item de trabalho é alocado do pool. O driver pode chamar IoUninitializeWorkItem para não inicializar o item de trabalho quando ele é retornado ao pool. Durante a alocação de armazenamento inicial para o pool, o driver pode chamar IoSizeofWorkitem para determinar quanto armazenamento alocar para cada item de trabalho.

Para obter mais informações sobre itens de trabalho, consulte System Worker Threads.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores do Windows.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualquer nível

Confira também

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem