다음을 통해 공유


IoInitializeWorkItem 함수(wdm.h)

IoInitializeWorkItem 루틴은 호출자가 이미 할당한 작업 항목을 초기화합니다.

통사론

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

매개 변수

[in] IoObject

호출자의 드라이버 개체 또는 호출자의 디바이스 개체 중 하나에 대한 포인터입니다. 호출자가 나중에 작업 항목을 IoQueueWorkItem전달하면 IoObject 디바이스 개체를 가리킵니다.

[in] IoWorkItem

초기화할 IO_WORKITEM 구조체에 대한 포인터입니다.

반환 값

없음

발언

드라이버는 IO_WORKITEM 구조에 대해 자체 스토리지를 할당한 다음 IoInitializeWorkItem 호출하여 초기화합니다. 메모리는 페이지가 없는 풀에서 할당해야 합니다. IO_WORKITEM 구조를 보유하는 데 필요한 바이트 수를 확인하려면 IoSizeofWorkItem호출합니다.

IoInitializeWorkItem의해 초기화되는 IO_WORKITEM 구조체는 해제되기 전에 IoUninitializeWorkItem 초기화되지 않아야 합니다.

IoAllocateWorkItem관련된 루틴은 작업 항목을 할당하고 초기화합니다. 할당 및 초기화를 단일 호출로 결합하여 IoAllocateWorkItem 초기화만 수행하는 IoInitializeWorkItem보다 일부 드라이버에서 사용하는 것이 더 편리할 수 있습니다. 그러나 이전에 할당된 스토리지에서 작업 항목을 초기화해야 하는 드라이버에는 IoInitializeWorkItem 필요합니다.

예를 들어 드라이버는 작업 항목 풀에 스토리지 블록을 할당할 수 있습니다. 드라이버는 IoInitializeWorkItem 호출하여 작업 항목이 풀에서 할당될 때 작업 항목을 초기화할 수 있습니다. 드라이버는 IoUninitializeWorkItem 호출하여 풀에 반환되는 작업 항목을 초기화할 수 있습니다. 풀에 대한 초기 스토리지 할당 중에 드라이버는 IoSizeofWorkitem 호출하여 각 작업 항목에 할당할 스토리지의 양을 결정할 수 있습니다.

작업 항목에 대한 자세한 내용은 System Worker Threads참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준

참고 항목

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem