Compartilhar via


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 do dispositivo do chamador. Se o chamador passar mais tarde o item de trabalho para IoQueueWorkItem, IoObject deverá apontar para um objeto de dispositivo.

[in] IoWorkItem

Ponteiro para a estrutura de IO_WORKITEM a ser inicializada.

Valor de retorno

Nenhum

Observações

O driver aloca seu próprio armazenamento para uma estrutura de IO_WORKITEM e, em seguida, chama IoInitializeWorkItem para inicializá-la. 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 pelo IoInitializeWorkItem deve não ser inicializada por IoUninitializeWorkItem antes de ser liberada.

Uma rotina relacionada, IoAllocateWorkItem, aloca e inicializa um item de trabalho. Combinando 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 para o 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
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores do Windows.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL Qualquer nível

Consulte também

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem