Fonction IoInitializeWorkItem (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 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
None
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 d’être libérée.
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 que IoInitializeWorkItem, qui effectue l’initialisation uniquement. Toutefois, IoInitializeWorkItem est requis par les pilotes qui doivent initialiser les é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 la 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions plus récentes de Windows. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | N’importe quel niveau |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour