다음을 통해 공유


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, IoFreeWorkItemIoQueueWorkItem을 사용해야 합니다. 이러한 루틴만 작업 항목이 처리될 때까지 지정된 작업 항목과 연결된 디바이스 개체를 계속 사용할 수 있도록 하기 때문입니다.

요구 사항

요구 사항
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h 포함)

추가 정보

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem