컨텍스트에 대한 파일 시스템 지원
파일 컨텍스트(해당하는 경우), 스트림 컨텍스트 및 파일 개체(스트림 핸들) 컨텍스트를 지원하려면 파일 시스템에서 FSRTL_ADVANCED_FCB_HEADER 구조를 사용해야 합니다. 모든 Microsoft Windows 파일 시스템은 이 구조를 사용하며 모든 타사 파일 시스템 개발자도 이 구조를 사용하는 것이 좋습니다. 자세한 내용은 FsRtlSetupAdvancedHeader 및 FSRTL_ADVANCED_FCB_HEADER 참조하세요.
NTFS 및 FAT 파일 시스템은 페이징 파일, 미리 만들기 또는 사후 닫기 경로 또는 IRP_MJ_NETWORK_QUERY_OPEN 작업에 대한 파일, 스트림 또는 파일 개체 컨텍스트를 지원하지 않습니다.
미니필터 드라이버는 각각 FltSupportsStreamContexts 및 FltSupportsStreamHandleContexts 를 호출하여 파일 시스템이 지정된 파일 개체에 대한 스트림 컨텍스트 및 파일 개체 컨텍스트를 지원하는지 여부를 확인할 수 있습니다.
파일 컨텍스트는 Windows Vista 이상에서 사용할 수 있습니다.
파일당 단일 데이터 스트림만 지원하는 파일 시스템(예: FAT)의 경우 파일 컨텍스트는 스트림 컨텍스트와 동일합니다. 이러한 파일 시스템은 일반적으로 스트림 컨텍스트를 지원하지만 파일 컨텍스트는 지원하지 않습니다. 대신 필터 관리자는 스트림 컨텍스트에 대한 파일 시스템의 기존 지원을 사용하여 이 지원을 제공합니다. 이러한 파일 시스템에 연결된 미니필터 드라이버 인스턴스의 경우 FltSupportsFileContexts는 FALSE를 반환하고 FltSupportsFileContextsEx는 TRUE를 반환합니다(인스턴스 매개 변수에 유효한 NULL이 아닌 값이 전달되는 경우).
컨텍스트 형식이 파일에서 지원되지 않는 경우 미니필터는 해당 형식의 컨텍스트를 해당 파일에 연결할 수 없습니다.
파일 컨텍스트를 지원하려면 파일 시스템이 다음을 수행해야 합니다.
파일 컨텍스트 구조(일반적으로 FCB(파일 컨텍스트 블록))에 PVOID 형식의 FileContextSupportPointer 멤버를 포함합니다. 파일 시스템은 이 멤버를 NULL로 초기화해야 합니다.
FsRtlSetupAdvancedHeaderEx(FsRtlSetupAdvancedHeader 대신)를 사용하여 스트림 컨텍스트 구조를 초기화하고 FileContextSupportPointer 매개 변수에 대한 FileContextSupportPointer 멤버(해당 파일 컨텍스트 구조에 포함 됨)에 유효한 포인터를 전달합니다. 자세한 내용은 FsRtlSetupAdvancedHeaderEx 및 FSRTL_ADVANCED_FCB_HEADER 참조하세요.
FsRtlTeardownPerFileContexts를 호출하여 파일 시스템이 파일에 대한 파일 컨텍스트 구조를 삭제할 때 필터 및 미니필터 드라이버가 파일과 연결된 모든 파일 컨텍스트 구조를 해제합니다.