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 구조를 사용하여 파일 개체에 대한 컨텍스트 정보를 유지할 수 있습니다. 이 구조체는 as-is 사용하거나 드라이버 정의 파일 개체별 컨텍스트 구조에 포함할 수 있습니다.
각 파일 개체에는 파일 개체당 하나의 컨텍스트 구조 목록이 연결되어 있을 수 있습니다. 이 목록의 각 멤버(즉, 파일별 특정 개체 컨텍스트 구조)는 필터 드라이버가 소유합니다. 필터 드라이버의 관점에서 각 필터 드라이버는 동일한 파일 개체에 대해 여러 파일 개체별 컨텍스트 구조를 연결할 수 있습니다.
각 필터 정의 파일 개체별 컨텍스트 구조에는 초기화된 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값에 따라).
파일 시스템 미니 필터 드라이버는 다음 함수를 사용하면 안 됩니다.
- FsRtlInitPerFileObjectContext
- FsRtlInsertPerFileObjectContext
- FsRtllookupPerFileObjectContext
- FsRtlRemovePerFileObjectContext
대신 미니 필터는 다음 함수를 사용하여 컨텍스트 정보를 파일 개체와 연결할 수 있습니다.
- fltAllocateContext
- FltDeleteContext
- fltSetStreamHandleContext
- FltDeleteStreamHandleContext
- fltGetStreamHandleContext
- fltReleaseContext
파일 시스템 미니 필터 드라이버는 FsRtlXxxPerFileObjectContext 함수를 사용하면 안 됩니다. 대신 미니 필터는 FltXxxContext 함수를 사용하여 컨텍스트 정보를 파일 개체와 연결할 수 있습니다. 전체 목록은 FSRTL_PER_FILEOBJECT_CONTEXT 항목을 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
헤더 | ntifs.h(Fltkernel.h, Ntifs.h 포함) |
참고 항목
fltAllocateContext
fltGetStreamHandleContext
fltReleaseContext
fltSetStreamHandleContext
FsRtlInsertPerFileObjectContext
FsRtllookupPerFileObjectContext
FsRtlRemovePerFileObjectContext