FltGetContextsEx 함수(fltkernel.h)
FltGetContextsEx 루틴은 현재 작업과 관련된 개체에 대한 미니필터 드라이버의 컨텍스트를 검색합니다.
구문
NTSTATUS FLTAPI FltGetContextsEx(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] FLT_CONTEXT_TYPE DesiredContexts,
[in] SIZE_T ContextsSize,
[out] PFLT_RELATED_CONTEXTS_EX Contexts
);
매개 변수
[in] FltObjects
현재 작업과 관련된 개체에 대한 불투명 포인터를 포함하는 FLT_RELATED_OBJECTS 구조체에 대한 포인터입니다. 자세한 내용은 설명 부분을 참조하십시오.
[in] DesiredContexts
검색할 컨텍스트의 형식을 식별합니다. 이 매개 변수는 다음 값의 비트 OR일 수 있습니다.
상수 | 값 |
---|---|
FLT_VOLUME_CONTEXT | 0x0001 |
FLT_INSTANCE_CONTEXT | 0x0002 |
FLT_FILE_CONTEXT | 0x0004 |
FLT_STREAM_CONTEXT | 0x0008 |
FLT_STREAMHANDLE_CONTEXT | 0x0010 |
FLT_TRANSACTION_CONTEXT | 0x0020 |
FLT_SECTION_CONTEXT | 020040 |
FLT_ALL_CONTEXTS | 모든 컨텍스트 값의 비트 OR |
[in] ContextsSize
컨텍스트가 가리키는 FLT_RELATED_CONTEXTS_EX 구조체의 크기(바이트) 입니다. sizeof(FLT_RELATED_CONTEXTS_EX)로 설정합니다.
[out] Contexts
요청된 컨텍스트를 수신하는 호출자가 할당한 FLT_RELATED_CONTEXTS 구조체에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL로 설정할 수 없습니다. FltMgr은 다음을 위해 구조체 멤버를 0으로 설정합니다.
- 호출자가 요청하지 않은 컨텍스트입니다.
- 호출자가 요청했지만 FltMgr을 찾을 수 없는 컨텍스트입니다.
반환 값
FltGetContextsEx는 성공적으로 완료되면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 다음 중 하나와 같은 상태 코드를 반환합니다.
코드 | 의미 |
---|---|
STATUS_INVALID_PARAMETER | 잘못된 컨텍스트 값이 입력되었습니다. |
설명
컨텍스트에 대한 자세한 내용은 미니필터 컨텍스트 정보를 참조하세요.
미니필터 드라이버는 FltGetContextsEx 를 호출하여 FLT_RELATED_OBJECTS 구조체의 개체에 대한 컨텍스트에 대한 포인터를 검색합니다. STATUS_SUCCESS 미니필터는 컨텍스트를 사용하기 전에 컨텍스트가 0이 아니라는 것을 검사 합니다.
다음 미니필터 드라이버 콜백 루틴 형식은 FltObjects 입력 매개 변수로 FLT_RELATED_OBJECTS 구조체에 대한 포인터를 받습니다.
- PFLT_PRE_OPERATION_CALLBACK
- PFLT_POST_OPERATION_CALLBACK
- PFLT_INSTANCE_SETUP_CALLBACK
- PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
- PFLT_INSTANCE_TEARDOWN_CALLBACK
FltGetContextsEx는 Contexts 매개 변수가 가리키는 FLT_RELATED_CONTEXTS_EX 구조에서 반환된 각 컨텍스트에 대한 참조 수를 증분합니다. 따라서 FltGetContextsEx에 대한 모든 성공적인 호출에 대해 호출자는 다음 중 하나를 수행해야 합니다.
- Contexts 매개 변수가 가리키는 전체 구조체에 대해 FltReleaseContextsEx를 호출합니다.
- 구조체에서 반환된 각 컨텍스트에 대해 FltReleaseContext 를 호출하고 구조체에서 반환된 각 컨텍스트 필드를 0으로 설정합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 |
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
추가 정보
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK