다음을 통해 공유


FltDeleteFileContext 함수(fltkernel.h)

FltDeleteFileContext 루틴은 지정된 미니필터 드라이버가 지정된 파일에 대해 설정한 파일 컨텍스트를 검색하고 삭제합니다.

구문

NTSTATUS FLTAPI FltDeleteFileContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *OldContext
);

매개 변수

[in] Instance

호출자에 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[in] FileObject

파일에 대한 파일 개체 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[out] OldContext

삭제된 컨텍스트의 주소를 수신하는 호출자가 할당한 변수에 대한 포인터입니다. 일치하는 컨텍스트가 없으면 이 변수는 NULL_CONTEXT 받습니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 이 매개 변수에 대한 자세한 내용은 다음 주의 섹션을 참조하세요.

반환 값

FltDeleteFileContext 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_NOT_FOUND 일치하는 컨텍스트를 찾을 수 없습니다. 오류 코드입니다.
STATUS_NOT_SUPPORTED 이 파일에는 파일 컨텍스트가 지원되지 않습니다. 오류 코드입니다.

설명

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

컨텍스트는 참조 계산되므로 일반적으로 미니필터 드라이버가 FltDeleteFileContext 또는 FltDeleteContext 와 같은 루틴을 호출하여 컨텍스트 명시적으로 삭제할 필요는 없습니다.

미니필터 드라이버는 FltDeleteFileContext 를 호출하여 FltSetFileContext를 호출하여 이전에 파일에 대해 설정한 파일 컨텍스트를 검색하고 삭제합니다.

입력 시 OldContext 매개 변수가 NULL 이고 일치하는 파일 컨텍스트가 발견되면 FltDeleteFileContextFltSetFileContext에 대한 미니필터 드라이버의 이전 호출에 의해 추가된 참조를 해제합니다. 삭제된 컨텍스트는 일반적으로 해당 컨텍스트에 미해결 참조가 없는 한 즉시 해제됩니다(예: 컨텍스트가 다른 스레드에서 계속 사용되고 있기 때문).

OldContext 매개 변수가 NULL이 아니고 일치하는 파일 컨텍스트가 발견되어 반환되는 경우 호출자는 FltSetFileContext에서 추가한 참조를 해제해야 합니다. 이 참조를 해제하려면 미니필터 드라이버는 필요한 정리를 수행한 후 가능한 한 빨리 삭제된 파일 컨텍스트에서 FltReleaseContext 를 호출해야 합니다.

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

지정된 파일에 대해 파일 컨텍스트가 지원되는지 여부를 확인하려면 FltSupportsFileContexts 또는 FltSupportsFileContextsEx를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
IRQL <= APC_LEVEL

추가 정보

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx