IoInitializeWorkItem, fonction (wdm.h)
La routine IoInitializeWorkItem initialise un élément de travail que l’appelant a déjà alloué.
Syntaxe
void IoInitializeWorkItem(
[in] PVOID IoObject,
[in] PIO_WORKITEM IoWorkItem
);
Paramètres
[in] IoObject
Pointeur vers l’objet de pilote de l’appelant ou vers l’un des objets d’appareil de l’appelant. Si l’appelant passe ultérieurement l’élément de travail à IoQueueWorkItem, IoObject doit pointer vers un objet d’appareil.
[in] IoWorkItem
Pointeur vers la structure IO_WORKITEM à initialiser.
Valeur de retour
Aucun
Remarques
Le pilote alloue son propre stockage pour une structure IO_WORKITEM, puis appelle IoInitializeWorkItem pour l’initialiser. La mémoire doit être allouée à partir d’un pool non paginé. Pour déterminer le nombre d’octets nécessaires pour contenir une structure IO_WORKITEM, appelez IoSizeofWorkItem.
Une structure IO_WORKITEM initialisée par IoInitializeWorkItemdoit être non initialisée par IoUninitializeWorkItem avant sa libération.
Une routine associée, IoAllocateWorkItem, alloue et initialise un élément de travail. En combinant l’allocation et l’initialisation en un seul appel, IoAllocateWorkItem peut être plus pratique pour certains pilotes à utiliser que IoInitializeWorkItem, qui initialise uniquement. Toutefois, IoInitializeWorkItem est nécessaire par les pilotes qui doivent initialiser des éléments de travail dans le stockage précédemment alloué.
Par exemple, un pilote peut allouer un bloc de stockage pour un pool d’éléments de travail. Le pilote peut appeler IoInitializeWorkItem pour initialiser un élément de travail lorsque l’élément de travail est alloué à partir du pool. Le pilote peut appeler IoUninitializeWorkItem pour annuler l’initialisation de l’élément de travail lorsqu’il est retourné au pool. Pendant l’allocation de stockage initiale pour le pool, le pilote peut appeler IoSizeofWorkitem pour déterminer la quantité de stockage à allouer pour chaque élément de travail.
Pour plus d’informations sur les éléments de travail, consultez threads de travail système.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et versions ultérieures de Windows. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | N’importe quel niveau |