Compartir a través de


Función IoInitializeWorkItem (wdm.h)

El IoInitializeWorkItem rutina 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

Ninguno

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 IO_WORKITEM inicializada por IoInitializeWorkItem debe no inicializarse 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 puede resultar más conveniente para algunos controladores 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 Valor
cliente mínimo admitido Disponible en Windows Vista y versiones posteriores de Windows.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel

Consulte también

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem