FsRtlSetupAdvancedHeaderEx2 매크로(ntifs.h)

FsRtlSetupAdvancedHeaderEx2 매크로는 파일 시스템에서 스트림 및 파일 컨텍스트에 사용할 FSRTL_ADVANCED_FCB_HEADER 구조를 초기화하는 데 사용됩니다.

구문

void FsRtlSetupAdvancedHeaderEx2(
   _advhdr,
   _fmutx,
   _fctxptr,
   _aepushlock
);

매개 변수

_advhdr

초기화할 FSRTL_ADVANCED_FCB_HEADER 구조체에 대한 포인터입니다.

_fmutx

특정 FSRTL_ADVANCED_FCB_HEADER 멤버에 대한 액세스를 동기화하는 데 사용할 초기화된 빠른 뮤텍스에 대한 포인터입니다. 빠른 뮤텍스는 비페이지 풀에서 할당되어야 합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 호출자는 기존 빠른 뮤텍스 개체를 사용하려는 경우 이 매개 변수를 NULL 로 설정해야 합니다. FastMutexNULL인 경우 호출자는 스트림 컨텍스트 개체에 포함된 FSRTL_ADVANCED_FCB_HEADER 구조체의 FastMutex 멤버를 명시적으로 설정하여 기존 빠른 뮤텍스를 가리킵니다. ( FsRtlSetupAdvancedHeaderEx2를 호출하기 전이나 후에 수행할 수 있습니다.)

_fctxptr

파일 컨텍스트를 추적하기 위해 FSRTL(파일 시스템 런타임 라이브러리)에서 사용하는 포인터 필드에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. FileContextSupportPointerNULL이 아닌 경우 FileContextSupportPointer는 구조를 만든 파일 시스템의 파일별 구조 내에 있는 PVOID 변수에 대한 포인터여야 합니다. 파일 시스템 드라이버가 파일 컨텍스트를 지원하지 않음을 나타내려면 호출자는 FileContextSupportPointerNULL로 설정해야 합니다.

_aepushlock

고급 헤더AePushLock 필드를 초기화하는 데 사용되는 불투명 구조체에 대한 포인터입니다. 이 함수의 호출자는 먼저 FsRtlAllocateAePushLock을 호출하고 FsRtlFreeAePushLock을 호출하여 메모리를 해제하여 이 필드의 메모리를 할당하고 초기화합니다. 자동 확장 푸시 잠금에 대한 자세한 내용은 FSRTL_ADVANCED_FCB_HEADER 참조하세요.

반환 값

없음

설명

파일 시스템은 FsRtlSetupAdvancedHeaderEx2 매크로를 사용하여 스트림 및 파일 컨텍스트에 사용할 FSRTL_ADVANCED_FCB_HEADER 구조를 초기화합니다.

고급 FCB 헤더 구조가 더 이상 필요하지 않은 경우 파일 시스템은 FsRtlTeardownPerStreamContexts 를 호출하여 연결된 모든 스트림 및 파일 컨텍스트 구조를 해제해야 합니다.

자세한 내용은 레거시 파일 시스템 필터 드라이버에서 Per-Stream 컨텍스트 추적을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 버전 20H2
머리글 ntifs.h

추가 정보

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAllocateAePushLock

FsRtlFreeAePushLock

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts