FSRTL_PER_FILE_CONTEXT 구조체(ntifs.h)

레거시 파일 시스템 필터 드라이버는 FSRTL_PER_FILE_CONTEXT 구조를 사용하여 드라이버 관련 컨텍스트 정보를 열린 파일에 연결할 수 있습니다.

구문

typedef struct _FSRTL_PER_FILE_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;

멤버

Links

동일한 파일과 연결된 모든 파일별 컨텍스트 구조 목록의 이 구조체에 대한 링크입니다. FsRtlInsertPerFileContext 는 이 멤버를 파일의 모든 파일별 컨텍스트 구조 목록에 삽입합니다.

OwnerId

파일별 컨텍스트 구조의 소유자를 고유하게 식별하는 필터 드라이버 할당 버퍼에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다. 필터 드라이버는 이 멤버를 NULL 이 아닌 값으로 설정해야 합니다.

InstanceId

동일한 필터 드라이버에서 만든 파일별 컨텍스트 구조를 구분하는 데 사용할 수 있는 필터 드라이버 할당 버퍼에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다. 필터 드라이버는 이 멤버를 NULL로 설정할 수 있습니다.

FreeCallback

파일별 컨텍스트 구조를 해제하는 콜백 루틴 에 대한 포인터입니다. 필터 드라이버는 이 멤버를 NULL 이 아닌 값으로 설정해야 합니다.

설명

컨텍스트 정보를 파일과 연결하기 위해 레거시 필터 드라이버는 먼저 FSRTL_PER_FILE_CONTEXT 구조를 할당하고 FsRtlInsertPerFileContext를 사용하여 초기화합니다. 그런 다음 드라이버는 FsRtlInsertPerFileContext 를 사용하여 해당 FSRTL_PER_FILE_CONTEXT 개체를 파일과 연결합니다. 시스템에서 파일의 파일 컨텍스트 개체를 중단하면 FsRtlTeardownPerFileContexts를 호출합니다. FsRtlTeardownPerFileContextsFSRTL_PER_FILE_CONTEXT 개체에 지정된 FreeCallback 루틴을 호출합니다. 해당 콜백은 드라이버별 컨텍스트 개체를 해제해야 합니다.

필터 작성기는 드라이버 개체 또는 디바이스 개체의 주소와 같이 의미 있고 편리한 OwnerID 값을 선택해야 합니다.

필터 작성기는 파일의 파일 컨텍스트 개체 주소와 같이 의미 있고 편리한 InstanceID 값을 선택해야 합니다. FsRtlGetPerFileContextPointer 매크로를 사용하여 파일 개체에서 해당 주소를 검색합니다.

FSRTL_PER_FILE_CONTEXT 구조체를 있는 그대로 사용하거나 드라이버 정의 파일별 컨텍스트 구조에 포함할 수 있습니다.

FSRTL_PER_FILE_CONTEXT 구조체는 페이징된 풀 또는 비페이지 풀에서 할당할 수 있습니다.

FsRtlInitPerFileContext 매크로는 FSRTL_PER_FILE_CONTEXT 구조를 초기화합니다.

매개 변수

FileContext

FSRTL_PER_FILE_CONTEXT

초기화할 FSRTL_PER_FILE_CONTEXT 개체입니다.

OwnerId

PVOID

파일별 컨텍스트 구조의 소유자를 고유하게 식별하는 필터 드라이버 할당 변수에 대한 포인터입니다. 형식은 필터 드라이버 관련입니다. 이 매개 변수에는 NULL 이 아닌 값이 있어야 합니다.

InstanceId

PVOID

파일별 컨텍스트 구조의 소유자를 고유하게 식별하는 필터 드라이버 할당 변수에 대한 포인터입니다. 형식은 필터 드라이버 관련입니다. 이 매개 변수에는 NULL 이 아닌 값이 있어야 합니다.

FreeCallback

PFREE_FUNCTION

파일별 컨텍스트 구조를 해제하는 콜백 루틴 에 대한 포인터입니다.

반환 값

VOID

없음

이 매크로는 FsRtlInsertPerFileContext를 호출하기 전에 사용해야 합니다.

필터 작성기는 드라이버 개체 또는 디바이스 개체의 주소와 같이 의미 있고 편리한 OwnerID 값을 선택해야 합니다.

필터 작성기는 파일의 파일 컨텍스트 개체 주소와 같이 의미 있고 편리한 InstanceID 값을 사용해야 합니다. FsRtlGetPerFileContextPointer 매크로를 사용하여 파일 개체에서 해당 주소를 검색합니다.

컨텍스트 개체를 사용하고 만드는 방법에 대한 자세한 내용은 레거시 파일 시스템 필터 드라이버에서 Per-File 컨텍스트 추적을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista부터 사용할 수 있습니다.
머리글 ntifs.h(Fltkernel.h, Ntifs.h 포함)

추가 정보

FsRtlGetPerFileContextPointer

FsRtlInitPerFileContext

FsRtlInsertPerFileContext

FsRtlTeardownPerFileContexts

PFREE_FUNCTION

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