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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de