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 이고 일치하는 파일 컨텍스트가 발견되면 FltDeleteFileContext 는 FltSetFileContext에 대한 미니필터 드라이버의 이전 호출에 의해 추가된 참조를 해제합니다. 삭제된 컨텍스트는 일반적으로 해당 컨텍스트에 미해결 참조가 없는 한 즉시 해제됩니다(예: 컨텍스트가 다른 스레드에서 계속 사용되고 있기 때문).
OldContext 매개 변수가 NULL이 아니고 일치하는 파일 컨텍스트가 발견되어 반환되는 경우 호출자는 FltSetFileContext에서 추가한 참조를 해제해야 합니다. 이 참조를 해제하려면 미니필터 드라이버는 필요한 정리를 수행한 후 가능한 한 빨리 삭제된 파일 컨텍스트에서 FltReleaseContext 를 호출해야 합니다.
새 컨텍스트를 할당하려면 FltAllocateContext를 호출합니다.
지정된 파일에 대해 파일 컨텍스트가 지원되는지 여부를 확인하려면 FltSupportsFileContexts 또는 FltSupportsFileContextsEx를 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 |
대상 플랫폼 | 유니버설 |
헤더 | fltkernel.h(Fltkernel.h 포함) |
라이브러리 | FltMgr.lib |
IRQL | <= APC_LEVEL |