다음을 통해 공유


FsRtlRemovePerFileContext 함수(ntifs.h)

FsRtlRemovePerFileContext 루틴은 파일과 연결된 FSRTL_PER_FILE_CONTEXT 개체에 대한 포인터를 반환합니다. FsRtlRemovePerFileContext 연결된 드라이버 관련 컨텍스트 정보와 함께 해당 개체가 차지하는 목록에서 FSRTL_PER_FILE_CONTEXT 개체를 제거합니다.

통사론

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

매개 변수

[in] PerFileContextPointer

파일 컨텍스트를 추적하기 위해 FSRTL(파일 시스템 런타임 라이브러리) 패키지에서 사용하는 불투명 포인터에 대한 포인터입니다. 파일 개체에서 이 포인터를 가져오려면 FsRtlGetPerFileContextPointer 매크로를 사용합니다.

[in, optional] OwnerId

파일별 컨텍스트 구조의 소유자를 고유하게 식별하는 필터 드라이버 할당 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이지만 InstanceId NULL이 아닌 경우 NULL이 아닌 매개 변수여야 합니다.

[in, optional] InstanceId

동일한 필터 드라이버에서 만든 파일별 컨텍스트 구조를 구분하는 데 사용할 수 있는 필터 드라이버 할당 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항입니다.

반환 값

지정한 경우 OwnerIdInstanceId일치하는 첫 번째 FSRTL_PER_FILE_CONTEXT 대한 포인터입니다. 일치하는 항목이 없거나 시스템에서 파일 컨텍스트 정보를 지원하지 않는 경우 이 루틴은 NULL을 반환합니다.

발언

FsRtlRemovePerFileContext 찾은 첫 번째 일치하는 파일별 컨텍스트 구조만 제거합니다. 파일별 컨텍스트와 일치하는 추가 컨텍스트가 있는 경우 필터 드라이버는 FsRtlRemovePerFileContext를 모두 제거하는 데 필요한 횟수만큼 호출해야 합니다.

파일 시스템 필터 드라이버는 FSRTL_PER_FILE_CONTEXT 제거된 후 이 컨텍스트 정보에 사용되는 메모리를 해제해야 합니다.

파일이 열려 있는 동안 드라이버가 파일별 컨텍스트 정보를 삭제해야 하는 경우에만 드라이버에서 컨텍스트를 제거하려면 이 루틴을 사용합니다. FsRtlTeardownPerFileContexts사용하여 파일을 닫으면 컨텍스트가 제거됩니다.

FreeCallback 루틴 내에서 이 루틴을 사용하지 마세요. 파일 시스템은 해당 루틴이 호출되기 전에 목록에서 컨텍스트를 제거합니다.

IRP_CLOSE 처리기 내에서 이 루틴을 사용하지 마세요. 스트림이 삭제되면 알림이 표시되지 않습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 보편적
헤더 ntifs.h(FltKernel.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

참고 항목

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

레거시 파일 시스템 필터 드라이버 추적 Per-File 컨텍스트