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