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