FltDeleteContext 함수(fltkernel.h)

FltDeleteContext 는 삭제를 위해 지정된 컨텍스트를 표시합니다.

구문

VOID FLTAPI FltDeleteContext(
  [in] PFLT_CONTEXT Context
);

매개 변수

[in] Context

삭제할 컨텍스트에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

반환 값

없음

설명

컨텍스트에 대한 자세한 내용은 미니필터 컨텍스트 정보를 참조하세요.

컨텍스트는 참조 횟수이므로 일반적으로 미니필터 드라이버가 명시적으로 컨텍스트를 삭제하기 위해 FltDeleteContext와 같은 루틴을 호출할 필요는 없습니다.

FltDeleteContext 는 삭제할 컨텍스트를 표시합니다. 컨텍스트는 일반적으로 현재 참조가 릴리스되는 즉시 해제됩니다(예: 컨텍스트가 다른 스레드에서 계속 사용 중이기 때문에)에 대한 미해결 참조가 없는 한.

FltDeleteContext를 사용하는 경우 다음 항목을 고려해야 합니다.

  • 미니필터 드라이버가 FltDeleteContext를 호출하는 경우 미니필터 드라이버에는 컨텍스트에 대한 참조가 이미 있어야 합니다. 그러나 미니필터 드라이버가 FltDeleteStreamHandleContext, FltDeleteStreamContext, FltDeleteInstanceContext 등을 호출하는 경우 미니필터 드라이버는 컨텍스트에 대한 참조가 필요하지 않습니다. 미니필터 드라이버가 FltDeleteContext를 호출한 후에도 컨텍스트에 대한 해당 참조는 여전히 유효합니다. 미니필터 드라이버는 FltReleaseContext 루틴을 호출하여 컨텍스트에 대한 참조를 해제해야 합니다.

  • FltDeleteContext 는 내부 필터 관리자 구조에서 컨텍스트를 제거합니다. 그런 다음 , FltGetContextsFltGetInstanceContext와 같은 컨텍스트를 가져오는 함수에 대한 추가 호출은 해당 컨텍스트를 찾을 수 없습니다. 그러나 컨텍스트 메모리는 컨텍스트에 대한 참조 수가 0으로 이동될 때까지 해제되지 않습니다.

다음 표에서 적절한 삭제 컨텍스트 루틴을 호출하여 컨텍스트를 삭제할 수도 있습니다.

컨텍스트 유형 Delete-Context 루틴
FLT_FILE_CONTEXT FltDeleteFileContext (Windows Vista 이상에만 해당)
FLT_INSTANCE_CONTEXT FltDeleteInstanceContext
FLT_SECTION_CONTEXT FltCloseSectionForDataScan(Windows 8 이상만 해당)
FLT_STREAM_CONTEXT FltDeleteStreamContext
FLT_STREAMHANDLE_CONTEXT FltDeleteStreamHandleContext
FLT_TRANSACTION_CONTEXT FltDeleteTransactionContext (Windows Vista 이상에만 해당)
FLT_VOLUME_CONTEXT FltDeleteVolumeContext

새 컨텍스트를 할당하려면 FltAllocateContext를 호출합니다.

컨텍스트에서 참조 수를 증가하려면 FltReferenceContext를 호출합니다.

컨텍스트에서 참조 수를 감소하려면 FltReleaseContext를 호출합니다.

형식에 FLT_SECTION_CONTEXT 섹션 컨텍스트는 FltDeleteContext를 사용하여 삭제하면 안 됩니다. 대신 FltReleaseContext 를 사용하여 섹션 컨텍스트의 할당을 취소합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

추가 정보

FltAllocateContext

FltCloseSectionForDataScan

FltDeleteFileContext

FltDeleteInstanceContext

FltDeleteStreamContext

FltDeleteStreamHandleContext

FltDeleteTransactionContext

FltDeleteVolumeContext

FltReferenceContext

FltReleaseContext