WORK_QUEUE_ITEM 구조체(wdm.h)
WORK_QUEUE_ITEM 구조는 시스템 작업 큐에 작업 항목을 게시하는 데 사용됩니다.
경고
이 구조체는 매우 주의해서 사용합니다. 다음 설명 섹션 을 참조하세요.
구문
typedef struct _WORK_QUEUE_ITEM {
LIST_ENTRY List;
PWORKER_THREAD_ROUTINE WorkerRoutine;
__volatile PVOID Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
멤버
List
이중으로 연결된 목록 구조입니다. 이 구조는 시스템 작업 큐에 작업 항목을 추가하는 데 사용됩니다.
WorkerRoutine
작업 항목이 큐에서 해제될 때 이 작업 항목을 처리하는 콜백 루틴에 대한 포인터입니다. 이 콜백 루틴은 다음과 같이 선언됩니다.
VOID
(*PWORKER_THREAD_ROUTINE)(
IN PVOID Parameter
);
매개 변수
매개 변수 멤버에 지정된 컨텍스트 정보 포인터입니다.
Parameter
WorkerRoutine 멤버에 지정된 콜백 루틴에 전달할 컨텍스트 정보에 대한 포인터입니다.
설명
WORK_QUEUE_ITEM 구조를 초기화하려면 ExInitializeWorkItem을 호출합니다.
초기화된 작업 항목을 시스템 작업 큐에 게시하려면 ExQueueWorkItem을 호출합니다.
ExInitializeWorkItem 및 ExQueueWorkItem은 지정된 작업 항목이 디바이스 개체 또는 디바이스 스택과 연결되지 않은 경우에만 사용할 수 있습니다. 다른 모든 경우에 드라이버는 IoAllocateWorkItem, IoFreeWorkItem 및 IoQueueWorkItem을 사용해야 합니다. 이러한 루틴만 작업 항목이 처리될 때까지 지정된 작업 항목과 연결된 디바이스 개체를 계속 사용할 수 있도록 하기 때문입니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h 포함) |