PRJ_GET_DIRECTORY_ENUMERATION_CB 콜백 함수(projectedfslib.h)

공급자로부터 디렉터리 열거 정보를 요청합니다.

구문

PRJ_GET_DIRECTORY_ENUMERATION_CB PrjGetDirectoryEnumerationCb;

HRESULT PrjGetDirectoryEnumerationCb(
  [in]           const PRJ_CALLBACK_DATA *callbackData,
  [in]           const GUID *enumerationId,
  [in, optional] PCWSTR searchExpression,
  [in]           PRJ_DIR_ENTRY_BUFFER_HANDLE dirEntryBufferHandle
)
{...}

매개 변수

[in] callbackData

작업에 대한 정보입니다. 이 콜백을 구현하려면 다음 callbackData 멤버가 필요합니다.

FilePathName 열거할 디렉터리를 식별합니다.
VersionInfo 열거할 디렉터리에 대한 버전 정보를 제공합니다.
플래그 열거형에서 반환되는 내용을 제어하는 플래그입니다. 유효한 값은 다음과 같습니다.
PRJ_CB_DATA_FLAG_ENUM_RETURN_SINGLE_ENTRY 이 비트는 사용자가 열거형에서 하나의 항목만 요청하는 경우 설정됩니다. 공급자는 이를 힌트로 처리할 수 있으며 한 번에 하나의 항목을 보다 효율적으로 반환하는 열거형을 만들기 위해 둘 이상의 항목을 반환하도록 선택할 수 있습니다. 이러한 경우 ProjFS는 사용자에게 단일 항목을 반환하고 더 많은 항목이 필요한 경우에만 공급자를 호출합니다.
PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN 이 비트는 열거형이 디렉터리의 첫 번째 항목에서 시작하는 경우 설정됩니다. 열거 세션에 대한 이 콜백의 첫 번째 호출에서 공급자는 값에 관계없이 이 플래그를 집합으로 처리해야 합니다. 모든 열거형은 첫 번째 항목에서 시작해야 합니다. 이 콜백의 후속 호출 시 공급자는 이 값을 적용해야 합니다.
 

공급자는 콜백이 실행되는 동안에만 이 버퍼에 액세스할 수 있습니다. 작업을 보류하려고 하고 이 버퍼의 데이터가 필요한 경우 자체 복사본을 만들어야 합니다.

[in] enumerationId

이 열거형 세션의 식별자입니다.

[in, optional] searchExpression

검색 식을 지정하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 검색 식에는 와일드카드 문자가 포함될 수 있습니다. 공급자는 PrjDoesNameContainWildCards 함수를 사용하여 와일드카드가 searchExpression에 있는지 여부를 확인해야 하며 PrjFileNameMatch 함수를 사용하여 백업 저장소의 항목이 와일드카드를 포함하는 검색 식과 일치하는지 여부를 확인해야 합니다.

이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

  • 이 매개 변수가 NULL이 아닌 경우 공급자는 이름이 검색 식과 일치하는 디렉터리 항목만 반환해야 합니다.
  • 이 매개 변수가 NULL이면 공급자는 모든 디렉터리 항목을 반환해야 합니다.

공급자는 열거 세션에 대해 이 콜백의 첫 번째 호출에서 이 매개 변수의 값을 캡처하고 후속 호출에서 사용해야 하며, callbackDataFlags 멤버에 PRJ_CB_DATA_FLAG_ENUM_RESTART_SCAN 지정되지 않는 한 해당 호출에서 이 매개 변수를 무시해야 합니다. 이 경우 공급자는 searchExpression 값을 다시 캡처해야 합니다.

[in] dirEntryBufferHandle

공급자로부터 열거 결과를 받는 구조체에 대한 불투명 핸들입니다. 공급자는 PrjFillDirEntryBuffer 루틴을 사용하여 구조를 채웁니다.

반환 값

반환 코드 Description
S_OK
공급자가 dirEntryBufferHandle에 하나 이상의 항목을 추가했거나 공급자의 저장소에 searchExpression과 일치하는 항목이 없습니다.
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
공급자가 dirEntryBufferHandle에 추가하려고 시도한 첫 번째 파일 또는 디렉터리에 대해 PrjFillDirEntryBuffer 에서 이 오류를 수신했습니다.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
공급자는 나중에 작업을 완료하려고 합니다.
 

공급자가 작업에 실패하는 경우 적절한 HRESULT 오류 코드입니다.

설명

ProjFS는 PRJ_START_DIRECTORY_ENUMERATION_CB 호출한 후 이 콜백을 한 번 이상 호출합니다. 자세한 내용은 PRJ_START_DIRECTORY_ENUMERATION_CB 설명 섹션을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1809[데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 projectedfslib.h