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
);
Buffer
해제할 FSRTL_PER_STREAM_CONTEXT 구조체에 대한 포인터입니다.
설명
파일 시스템 필터 드라이버는 FSRTL_PER_STREAM_CONTEXT 구조를 사용하여 파일 스트림에 대한 컨텍스트 정보를 유지할 수 있습니다. 이 구조체는 드라이버 정의 스트림별 컨텍스트 구조에 있는 그대로 사용하거나 포함할 수 있습니다.
파일 시스템이 파일 스트림에 대한 스트림 컨텍스트 개체를 중단하는 경우 FsRtlTeardownPerStreamContexts를 호출해야 합니다. 그러면 파일 스트림과 연결된 모든 스트림별 컨텍스트 구조의 FreeCallback 루틴을 호출합니다.
FsRtlSupportsPerStreamContexts 매크로는 파일 시스템이 지정된 파일 스트림에 대한 스트림당 컨텍스트를 지원하는지 여부를 결정합니다.
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
매개 변수
FileObject [in]
PFILE_OBJECT
파일 스트림의 파일 개체에 대한 포인터입니다.
반환 값
부울
파일 시스템에서 파일 스트림에 대한 스트림별 컨텍스트를 지원하는 경우 FsRtlSupportsPerStreamContexts 매크로는 TRUE 를 반환하고, 그렇지 않으면 FALSE 를 반환합니다.
파일 시스템 필터 드라이버는 FsRtlSupportsPerStreamContexts 를 호출하여 기본 파일 시스템이 지정된 파일 개체가 나타내는 파일 스트림에 대한 스트림당 컨텍스트를 지원하는지 여부를 확인합니다. 파일 시스템은 일부 형식의 파일에 대해 스트림당 컨텍스트를 지원할 수 있지만 다른 형식은 지원하지 않을 수 있습니다. 예를 들어 NTFS 및 FAT는 현재 페이징 파일에 대한 스트림별 컨텍스트를 지원하지 않습니다.
자세한 내용은 레거시 파일 시스템 필터 드라이버에서 Per-Stream 컨텍스트 추적을 참조하세요.
요구 사항
| 지원되는 최소 클라이언트 | 이 구조는 Microsoft Windows XP 이상에서 사용할 수 있습니다. |
| 헤더 | ntifs.h(Ntifs.h 포함) |
참고 항목
FsRtlGetPerStreamContextPointer
피드백
다음에 대한 사용자 의견 제출 및 보기