FsRtlRemovePerFileObjectContext 함수(ntifs.h)

"레거시" 파일 시스템 필터 드라이버의 경우 FsRtlRemovePerFileObjectContext 함수는 이전에 파일 개체와 연결된 파일 개체별 컨텍스트 목록에서 파일별 개체 컨텍스트 정보 구조의 연결을 해제합니다.

구문

PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlRemovePerFileObjectContext(
  [in]           PFILE_OBJECT FileObject,
  [in, optional] PVOID        OwnerId,
  [in, optional] PVOID        InstanceId
);

매개 변수

[in] FileObject

컨텍스트 정보를 제거할 파일 개체에 대한 포인터입니다.

[in, optional] OwnerId

파일별 개체 컨텍스트 구조의 소유 필터를 고유하게 식별하는 호출자 할당 변수에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다.

[in, optional] InstanceId

동일한 필터 드라이버에서 만든 파일별 개체 컨텍스트 구조를 구분하는 데 사용할 수 있는 호출자 할당 변수에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

FsRtlRemovePerFileObjectContext 는 찾은 첫 번째 일치하는 파일별 개체 컨텍스트에 대한 포인터를 연결 해제하고 반환합니다. 일치하는 항목이 없으면 FsRtlRemovePerFileObjectContextNULL을 반환합니다.

설명

"레거시" 파일 시스템 필터 드라이버는 FsRtlRemovePerFileObjectContext 를 호출하여 파일 개체와 연결된 파일별 개체 컨텍스트 목록에서 자체 파일별 개체 컨텍스트 구조를 연결 해제합니다. 이러한 모든 컨텍스트 구조는 이전에 FsRtlInsertPerFileObjectContext를 호출하여 파일 개체와 연결되어야 합니다.

FsRtlRemovePerFileObjectContext에 대한 호출이 성공하면 OwnerId(및 InstanceId(있는 경우)와 일치하는 첫 번째 파일별 개체 컨텍스트 구조가 연결되지 않고 반환된 포인터가 반환됩니다. 이 포인터는 필터 드라이버에서 연결되지 않은 컨텍스트 구조를 해제하는 데 사용할 수 있습니다.

참고FsRtlRemovePerFileObjectContext 는 발견된 파일별 개체별 첫 번째 컨텍스트 구조만 연결 해제합니다. 파일별 개체별 컨텍스트가 추가로 일치하는 경우 필터 드라이버는 FsRtlRemovePerFileObjectContext 를 모두 연결 해제하는 데 필요한 횟수만큼 호출해야 합니다.
 
파일별 개체 컨텍스트 구조를 초기화하려면 FsRtlInitPerFileObjectContext 매크로를 사용합니다.

초기화된 파일 개체별 컨텍스트 구조를 파일 개체와 연결하려면 FsRtlInsertPerFileObjectContext 함수를 사용합니다.

파일 개체와 연결된 파일별 개체 컨텍스트 구조를 검색하려면 FsRtlLookupPerFileObjectContext 함수를 사용합니다.

참고 레거시 필터 드라이버는 FsRtlRemovePerFileObjectContext 함수를 호출하여 IRP_MJ_CLOSE 완료하기 전에 컨텍스트 정보 구조의 연결을 해제하고 해제해야 합니다. 그렇지 않으면 해당 컨텍스트 구조에 할당된 메모리가 유출됩니다.
 
또한 파일 시스템 미니필터 드라이버는 FsRtlXxxPerFileObjectContext 함수를 사용하면 안 됩니다. 대신 적절한 FltXxx컨텍스트 함수를 사용할 수 있습니다. 자세한 내용은 FSRTL_PER_FILEOBJECT_CONTEXT 항목을 참조하세요.

요구 사항

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

추가 정보

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext