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 운영 체제의 Windows Vista 이상 버전에서 사용할 수 있습니다. |
| 대상 플랫폼 | 유니버설 |
| 헤더 | ntifs.h(FltKernel.h, Ntifs.h 포함) |
| 라이브러리 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | <=APC_LEVEL |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기