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
동일한 필터 드라이버에서 만든 파일별 컨텍스트 구조를 구분하는 데 사용할 수 있는 필터 드라이버 할당 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항입니다.
반환 값
지정한 경우 OwnerId 및 InstanceId일치하는 첫 번째 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 |
참고 항목
FsRtlGetPerFileContextPointer
FsRtlInsertPerFileContext
레거시 파일 시스템 필터 드라이버