다음을 통해 공유


FsRtlMupGetProviderInfoFromFileObject 함수(ntifs.h)

FsRtlMupGetProviderInfoFromFileObject 루틴은 원격 파일 시스템에 있는 파일에 대한 파일 개체에서 여러 UNC 공급자(MUP)에 등록된 네트워크 리렉터에 대한 정보를 가져옵니다.

통사론

NTSTATUS FsRtlMupGetProviderInfoFromFileObject(
  [in]      PFILE_OBJECT pFileObject,
  [in]      ULONG        Level,
  [out]     PVOID        pBuffer,
  [in, out] PULONG       pBufferSize
);

매개 변수

[in] pFileObject

원격 파일 시스템에 있는 파일의 파일 개체에 대한 포인터입니다.

[in] Level

FsRtlMupGetProviderInfoFromFileObject 루틴에서 반환되는 정보 수준입니다. 이 매개 변수의 가능한 값에 대한 자세한 내용은 설명 섹션을 참조하세요.

[out] pBuffer

FsRtlMupGetProviderInfoFromFileObject 루틴에서 반환되는 정보를 수신하는 버퍼에 대한 포인터입니다. 이 버퍼에 반환되는 데이터의 형식에 대한 자세한 내용은 설명 섹션을 참조하세요.

[in, out] pBufferSize

pBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)를 포함하는 ULONG 형식 변수에 대한 포인터입니다. 루틴이 성공하면 이 변수는 버퍼에 반환되는 데이터의 크기(바이트)를 받습니다.

반환 값

FsRtlMupGetProviderInfoFromFileObject 루틴은 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 묘사
STATUS_SUCCESS
pBuffer 매개 변수가 가리키는 버퍼에서 네트워크 리다이렉터에 대한 정보가 성공적으로 반환되었습니다.
STATUS_INVALID_PARAMETER
매개 변수 중 하나는 NULL 잘못되었거나 잘못된 값을 포함했습니다.
STATUS_OBJECT_NAME_NOT_FOUND
pFileObject 매개 변수가 가리키는 파일 개체가 완전히 열린 원격 파일 시스템 파일 개체에 해당하지 않습니다.
STATUS_BUFFER_TOO_SMALL
pBuffer 매개 변수가 가리키는 버퍼의 크기가 너무 작아서 데이터를 반환할 수 없습니다. 이 경우 pBufferSize 매개 변수가 가리키는 변수는 버퍼의 필요한 크기(바이트)를 받습니다.
STATUS_BUFFER_OVERFLOW
pBuffer 매개 변수가 가리키는 버퍼의 크기가 너무 작아서 모든 데이터를 반환할 수 없습니다. 버퍼에 맞는 데이터만 반환되었습니다. 이 경우 pBufferSize 매개 변수가 가리키는 변수는 버퍼의 필요한 크기(바이트)를 받습니다.

발언

파일 시스템 필터 드라이버는 FsRtlMupGetProviderInfoFromFileObject 루틴을 호출하여 원격 파일 시스템에 있는 파일에 대한 파일 개체에서 네트워크 리디렉션자에 대한 정보를 가져올 수 있습니다. FsRtlMupGetProviderInfoFromFileObject 루틴에서 반환되는 정보의 양은 Level 매개 변수의 값에 따라 달라집니다. Level 매개 변수가 1로 설정된 경우 FsRtlMupGetProviderInfoFromFileObject 루틴은 pBuffer 매개 변수가 가리키는 버퍼의 FSRTL_MUP_PROVIDER_INFO_LEVEL_1 구조를 반환합니다. FSRTL_MUP_PROVIDER_INFO_LEVEL_1 구조체는 다음과 같이 정의됩니다.

typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 {
  ULONG32  ProviderId;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1;

Level 매개 변수를 2로 설정하면 FsRtlMupGetProviderInfoFromFileObject 루틴은 pBuffer 매개 변수가 가리키는 버퍼의 FSRTL_MUP_PROVIDER_INFO_LEVEL_2 구조를 반환합니다. FSRTL_MUP_PROVIDER_INFO_LEVEL_2 구조체는 다음과 같이 정의됩니다.

typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 {
  ULONG32  ProviderId;
  UNICODE_STRING  ProviderName;
} FSRTL_MUP_PROVIDER_INFO_LEVEL_2, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_2;

파일 시스템 필터 드라이버는 문자열 비교를 수행할 필요 없이 공급자 식별자의 값을 다른 공급자 식별자의 값과 빠르게 비교할 수 있습니다.

네트워크 리디렉션자가 시스템에서 언로드된 다음 다시 시스템으로 다시 로드되는 경우 특정 네트워크 리디렉션자에 대한 UNC 공급자 식별자의 값은 동일하게 유지됩니다.

네트워크 리디렉터의 디바이스 이름에서 네트워크 리디렉터의 UNC 공급자 식별자를 가져오기 위해 파일 시스템 필터 드라이버는 FsRtlMupGetProviderIdFromName 루틴을 호출할 수 있습니다.

요구 사항

요구
지원되는 최소 클라이언트 FsRtlMupGetProviderInfoFromFileObject 함수는 Windows Vista입니다.
대상 플랫폼 보편적
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

참고 항목

FsRtlMupGetProviderIdFromName