FltQueueGenericWorkItem 함수(fltkernel.h)
FltQueueGenericWorkItem 은 특정 I/O 작업과 연결되지 않은 작업 항목을 작업 큐에 게시합니다.
구문
NTSTATUS FLTAPI FltQueueGenericWorkItem(
[in] PFLT_GENERIC_WORKITEM FltWorkItem,
[in] PVOID FltObject,
[in] PFLT_GENERIC_WORKITEM_ROUTINE WorkerRoutine,
[in] WORK_QUEUE_TYPE QueueType,
[in, optional] PVOID Context
);
매개 변수
[in] FltWorkItem
작업 큐에 추가할 작업 항목에 대한 포인터입니다. FltAllocateGenericWorkItem을 호출하여 작업 항목을 할당해야 합니다.
[in] FltObject
호출자에 대한 불투명 필터(PFLT_FILTER) 또는 instance(PFLT_INSTANCE) 포인터입니다.
[in] WorkerRoutine
호출자가 제공한 작업자 루틴에 대한 포인터입니다. 이 루틴은 다음과 같이 선언됩니다.
typedef VOID
(*PFLT_GENERIC_WORKITEM_ROUTINE) (
_In_ PFLT_GENERIC_WORKITEM FltWorkItem,
_In_ PVOID FltObject,
_In_opt_ PVOID Context
);
FltWorkItem
제네릭 작업 항목 구조에 대한 불투명 포인터입니다.
FltObject
FltQueueGenericWorkItem의 FltObject 매개 변수로 전달된 불투명 필터 포인터입니다.
Context
FltQueueGenericWorkItem의 Context 매개 변수로 전달된 컨텍스트 정보 포인터입니다. 이 매개 변수는 선택적 요소입니다.
[in] QueueType
FltWorkItem이 가리키는 작업 항목을 삽입할 큐를 지정합니다. QueueType 은 다음 중 하나일 수 있습니다.
값 | 의미 |
---|---|
CriticalWorkQueue | 실시간 우선 순위 특성이 있는 시스템 스레드가 작업 항목을 처리하는 큐에 작업 항목을 삽입합니다. |
DelayedWorkQueue | 변수 우선 순위 특성이 있는 시스템 스레드가 작업 항목을 처리하는 큐에 작업 항목을 삽입합니다. |
QueueType 값 HyperCriticalWorkQueue는 시스템 사용을 위해 예약되어 있습니다.
[in, optional] Context
WorkerRoutine 매개 변수에 지정된 콜백 루틴의 Context 매개 변수로 전달될 호출자 정의 컨텍스트 정보에 대한 포인터입니다. 이 매개 변수는 선택적 요소입니다.
반환 값
FltQueueGenericWorkItem 은 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
미니필터 드라이버가 언로드되고 있습니다. 오류 코드입니다. |
설명
FltQueueGenericWorkItem 은 특정 I/O 작업과 연결되지 않은 작업 항목을 시스템 작업 큐에 삽입합니다. 지정된 WorkerRoutine 콜백 루틴은 IRQL PASSIVE_LEVEL 시스템 스레드의 컨텍스트에서 호출됩니다.
작업 항목을 할당하려면 FltAllocateGenericWorkItem을 호출합니다.
더 이상 필요하지 않은 작업 항목을 해제하려면 FltFreeGenericWorkItem을 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |