FSRTL_PER_STREAM_CONTEXT 구조체(ntifs.h)
FSRTL_PER_STREAM_CONTEXT 구조에는 파일 시스템 필터 드라이버가 파일 스트림에 대해 유지 관리하는 컨텍스트 정보가 포함됩니다.
통사론
typedef struct _FSRTL_PER_STREAM_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
회원
Links
동일한 파일 스트림과 연결된 모든 스트림별 컨텍스트 구조 목록의 이 구조에 대한 링크입니다. FsRtlInsertPerStreamContext 이 멤버를 파일 스트림의 모든 스트림별 컨텍스트 구조 목록에 삽입합니다. 파일 개체에서 목록의 헤드에 대한 포인터를 얻으려면 FsRtlGetPerStreamContextPointer 매크로를 사용하고 결과를 PFSRTL_ADVANCED_FCB_HEADER 포인터로 캐스팅합니다. 목록 포인터는 파일 스트림에 대한 FCB(고급 파일 제어 블록) 헤더 구조의 FilterContexts 멤버입니다.
OwnerId
스트림별 컨텍스트 구조의 소유자를 고유하게 식별하는 필터 드라이버 할당 변수에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다. 필터 작성기는 드라이버 개체 또는 디바이스 개체의 주소와 같이 의미 있고 편리한 값을 선택해야 합니다. 필터 드라이버는 이 멤버를NULL 값으로 설정해야 합니다.
InstanceId
동일한 필터 드라이버에서 만든 스트림별 컨텍스트 구조를 구분하는 데 사용할 수 있는 필터 드라이버 할당 변수에 대한 포인터입니다. 이 변수의 형식은 필터 드라이버에 따라 다릅니다. 필터 작성기는 파일 스트림에 대한 스트림 컨텍스트 개체의 주소와 같이 의미 있고 편리한 값을 선택해야 합니다. 파일 개체에서 이 주소를 얻으려면 FsRtlGetPerStreamContextPointer 매크로를 사용합니다.)
이 멤버는 선택 사항이며 NULL
FreeCallback
스트림별 컨텍스트 구조를 해제하는 콜백 루틴에 대한 포인터입니다. 이 루틴 및 해당 매개 변수는 다음과 같이 정의됩니다.
VOID
(*PFREE_FUNCTION) (
IN PVOID Buffer
);
완충기
해제할 FSRTL_PER_STREAM_CONTEXT 구조체에 대한 포인터입니다.
발언
파일 시스템 필터 드라이버는 FSRTL_PER_STREAM_CONTEXT 구조를 사용하여 파일 스트림에 대한 컨텍스트 정보를 유지할 수 있습니다. 이 구조체는 드라이버 정의 스트림별 컨텍스트 구조에 있는 그대로 사용하거나 포함할 수 있습니다.
파일 시스템이 파일 스트림에 대한 스트림 컨텍스트 개체를 중단하는 경우 FsRtlTeardownPerStreamContexts호출해야 합니다. 그러면 파일 스트림과 연결된 모든 스트림별 컨텍스트 구조의 FreeCallback 루틴을 호출합니다.
FsRtlSupportsPerStreamContexts 매크로는 파일 시스템에서 지정된 파일 스트림에 대한 스트림별 컨텍스트를 지원하는지 여부를 결정합니다.
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
매개 변수
FileObject [in]
PFILE_OBJECT
파일 스트림의 파일 개체에 대한 포인터입니다.
반환 값
부울
파일 시스템에서 파일 스트림에 대한 스트림별 컨텍스트를 지원하는 경우
파일 시스템 필터 드라이버는 FsRtlSupportsPerStreamContexts 호출하여 기본 파일 시스템이 지정된 파일 개체가 나타내는 파일 스트림에 대한 스트림별 컨텍스트를 지원하는지 여부를 확인합니다. 파일 시스템은 일부 형식의 파일에 대해 스트림별 컨텍스트를 지원할 수 있지만 다른 형식의 파일은 지원하지 않을 수 있습니다. 예를 들어 NTFS 및 FAT는 현재 페이징 파일에 대한 스트림별 컨텍스트를 지원하지 않습니다.
자세한 내용은 레거시 파일 시스템 필터 드라이버
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | 이 구조는 Windows XP입니다. |
헤더 | ntifs.h(Ntifs.h 포함) |
참고 항목
FsRtlGetPerStreamContextPointer
FsRtlInsertPerStreamContext
FsRtlRemovePerStreamContext
FsRtlTeardownPerStreamContexts
레거시 파일 시스템 필터 드라이버