FSRTL_PER_FILEOBJECT_CONTEXT 구조체(ntifs.h)

OS는 불투명 FSRTL_PER_FILEOBJECT_CONTEXT 구조를 사용하여 파일 개체에 대한 파일 시스템 필터 드라이버 정의 컨텍스트 정보 구조를 추적합니다.

구문

typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT {
  LIST_ENTRY Links;
  PVOID      OwnerId;
  PVOID      InstanceId;
} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;

멤버

Links

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

OwnerId

파일별 개체 컨텍스트 구조의 소유 필터를 고유하게 식별하는 필터 드라이버 할당 변수에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다. 필터 작성기는 필터의 디바이스 개체 또는 드라이버 개체의 주소와 같이 의미 있고 편리한 값을 선택해야 합니다. 이 멤버의 값은 NULL일 수 없습니다.

InstanceId

동일한 필터 드라이버에서 만든 파일별 개체 컨텍스트 구조를 구분하는 데 사용할 수 있는 필터 드라이버 할당 변수에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다. 필터 작성기는 파일 개체 자체의 주소와 같이 의미 있고 편리한 값을 선택해야 합니다. 이 멤버의 값은 NULL일 수 있습니다.

설명

파일 시스템 필터 드라이버는 불투명 FSRTL_PER_FILEOBJECT_CONTEXT 구조를 사용하여 파일 개체에 대한 컨텍스트 정보를 유지할 수 있습니다. 이 구조체는 있는 그대로 사용하거나 드라이버 정의 파일별 개체 컨텍스트 구조에 포함할 수 있습니다.

각 파일 개체에는 파일 개체당 하나의 컨텍스트 구조 목록이 연결되어 있을 수 있습니다. 이 목록의 각 멤버(즉, 파일별 특정 개체 컨텍스트 구조)는 필터 드라이버가 소유합니다. 필터 드라이버의 관점에서 각 필터 드라이버는 동일한 파일 개체에 대해 여러 파일별 개체 컨텍스트 구조를 연결할 수 있습니다.

각 필터 정의 파일별 개체 컨텍스트 구조에는 초기화된 FSRTL_PER_FILEOBJECT_CONTEXT 구조가 포함되어야 합니다. FSRTL_PER_FILEOBJECT_CONTEXT 구조체는 페이징 또는 비페이지 풀에서 할당할 수 있으며 FsRtlInitPerFileObjectContext 매크로를 사용하여 초기화해야 합니다.

파일 개체의 모든 컨텍스트 구조 목록에 FSRTL_PER_FILEOBJECT_CONTEXT 구조 또는 필터 정의 파일 개체별 컨텍스트 구조(초기화된 FSRTL_PER_FILEOBJECT_CONTEXT 구조 포함)를 삽입하려면 FsRtlInsertPerFileObjectContext 함수를 사용합니다.

FSRTL_PER_FILEOBJECT_CONTEXT 또는 파일 개체별 컨텍스트 구조가 파일 개체와 연결되면 FsRtlLookupPerFileObjectContext를 호출하여 검색하거나 FsRtlRemovePerFileObjectContext를 호출하여 제거할 수 있습니다(OwnerId 및 InstanceId 값 기준).

파일 시스템 미니필터 드라이버는 다음 함수를 사용하면 안 됩니다.

대신 미니필터는 다음 함수를 사용하여 컨텍스트 정보를 파일 개체와 연결할 수 있습니다.

파일 시스템 미니필터 드라이버는 FsRtlXxxPerFileObjectContext 함수를 사용하면 안 됩니다. 대신, 미니 필터는 FltXxx컨텍스트 함수를 사용하여 컨텍스트 정보를 파일 개체와 연결할 수 있습니다. 전체 목록은 FSRTL_PER_FILEOBJECT_CONTEXT 항목을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
머리글 ntifs.h(Fltkernel.h, Ntifs.h 포함)

추가 정보

DEVICE_OBJECT

DRIVER_OBJECT

FILE_OBJECT

FltAllocateContext

FltDeleteContext

FltDeleteStreamHandleContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext

FsRtlRemovePerFileObjectContext