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 |