Función IoInitializeWorkItem (wdm.h)

La rutina IoInitializeWorkItem inicializa un elemento de trabajo que el autor de la llamada ya ha asignado.

Sintaxis

void IoInitializeWorkItem(
  [in] PVOID        IoObject,
  [in] PIO_WORKITEM IoWorkItem
);

Parámetros

[in] IoObject

Puntero al objeto de controlador del autor de la llamada o a uno de los objetos de dispositivo del autor de la llamada. Si el autor de la llamada pasará posteriormente el elemento de trabajo a IoQueueWorkItem, IoObject debe apuntar a un objeto de dispositivo.

[in] IoWorkItem

Puntero a la estructura IO_WORKITEM que se va a inicializar.

Valor devuelto

None

Observaciones

El controlador asigna su propio almacenamiento para una estructura de IO_WORKITEM y, a continuación, llama a IoInitializeWorkItem para inicializarlo. La memoria debe asignarse desde un grupo no paginado. Para determinar el número de bytes necesarios para contener una estructura de IO_WORKITEM , llame a IoSizeofWorkItem.

Una estructura de IO_WORKITEM inicializada por IoInitializeWorkItemdebe no inicializarse mediante IoUninitializeWorkItem antes de liberarla.

Una rutina relacionada, IoAllocateWorkItem, asigna e inicializa un elemento de trabajo. Al combinar la asignación y la inicialización en una sola llamada, IoAllocateWorkItem podría ser más conveniente para algunos controladores que usar que IoInitializeWorkItem, que solo inicializa. Sin embargo, los controladores que deben inicializar elementos de trabajo en el almacenamiento asignado anteriormente requieren IoInitializeWorkItem .

Por ejemplo, un controlador podría asignar un bloque de almacenamiento para un grupo de elementos de trabajo. El controlador puede llamar a IoInitializeWorkItem para inicializar un elemento de trabajo cuando se asigna el elemento de trabajo desde el grupo. El controlador puede llamar a IoUninitializeWorkItem para anular la inicialización del elemento de trabajo cuando se devuelve al grupo. Durante la asignación de almacenamiento inicial para el grupo, el controlador puede llamar a IoSizeofWorkitem para determinar la cantidad de almacenamiento que se va a asignar para cada elemento de trabajo.

Para obtener más información sobre los elementos de trabajo, vea Subprocesos de trabajo del sistema.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de Windows.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel

Consulte también

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem