Funzione IoInitializeWorkItem (wdm.h)

La routine IoInitializeWorkItem inizializza un elemento di lavoro già allocato dal chiamante.

Sintassi

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

Parametri

[in] IoObject

Puntatore all'oggetto driver del chiamante o a uno degli oggetti dispositivo del chiamante. Se il chiamante passerà successivamente l'elemento di lavoro a IoQueueWorkItem, IoObject deve puntare a un oggetto dispositivo.

[in] IoWorkItem

Puntatore alla struttura IO_WORKITEM da inizializzare.

Valore restituito

nessuno

Osservazioni

Il driver alloca la propria risorsa di archiviazione per una struttura IO_WORKITEM e quindi chiama IoInitializeWorkItem per inizializzarlo. La memoria deve essere allocata dal pool non di pagina. Per determinare il numero di byte necessari per contenere una struttura IO_WORKITEM , chiamare IoSizeofWorkItem.

Una struttura IO_WORKITEM inizializzata da IoInitializeWorkItemdeve essere non inizializzata da IoUninitializeWorkItem prima che venga liberata.

Una routine correlata, IoAllocateWorkItem, alloca e inizializza un elemento di lavoro. Combinando l'allocazione e l'inizializzazione in una singola chiamata, IoAllocateWorkItem potrebbe risultare più conveniente per alcuni driver da usare rispetto a IoInitializeWorkItem, che esegue solo l'inizializzazione. Tuttavia, IoInitializeWorkItem è richiesto dai driver che devono inizializzare gli elementi di lavoro nell'archiviazione allocata in precedenza.

Ad esempio, un driver potrebbe allocare un blocco di archiviazione per un pool di elementi di lavoro. Il driver può chiamare IoInitializeWorkItem per inizializzare un elemento di lavoro quando l'elemento di lavoro viene allocato dal pool. Il driver può chiamare IoUninitializeWorkItem per annullare l'inizializzazione dell'elemento di lavoro quando viene restituito al pool. Durante l'allocazione di archiviazione iniziale per il pool, il driver può chiamare IoSizeofWorkitem per determinare la quantità di archiviazione da allocare per ogni elemento di lavoro.

Per altre informazioni sugli elementi di lavoro, vedere Thread di lavoro di sistema.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive di Windows.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualsiasi livello

Vedi anche

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem