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

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

작업 항목에 대한 자세한 내용은 시스템 작업자 스레드를 참조하세요.

요구 사항

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

추가 정보

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem