Share via


NetDfsGetInfo 함수(lmdfs.h)

DFS 네임스페이스에서 지정된 DFS(분산 파일 시스템) 루트 또는 링크에 대한 정보를 검색합니다.

구문

NET_API_STATUS NET_API_FUNCTION NetDfsGetInfo(
  [in]           LPWSTR DfsEntryPath,
  [in, optional] LPWSTR ServerName,
  [in, optional] LPWSTR ShareName,
  [in]           DWORD  Level,
  [out]          LPBYTE *Buffer
);

매개 변수

[in] DfsEntryPath

DFS 루트 또는 링크의 UNC(범용 명명 규칙) 경로를 지정하는 문자열에 대한 포인터입니다.

링크의 경우 문자열은 두 가지 양식 중 하나일 수 있습니다. 첫 번째 양식은 다음과 같습니다.

\\Servername\DfsName\link_path

여기서 ServerName 은 독립 실행형 DFS 네임스페이스를 호스트하는 루트 대상 서버의 이름입니다. DfsName 은 DFS 네임스페이스의 이름입니다. 및 link_path DFS 링크입니다.

두 번째 양식은 다음과 같습니다.

\\Domainname\DomDfsname\link_path

여기서 DomainName 은 도메인 기반 DFS 네임스페이스를 호스트하는 도메인의 이름입니다. DomDfsname 은 DFS 네임스페이스의 이름입니다. 및 link_path DFS 링크입니다.

루트의 경우 문자열은 다음 두 가지 형식 중 하나일 수 있습니다.

\\Servername\DfsName

또는

\\Domainname\DomDfsname

여기서 이름의 값은 앞에서 설명한 값과 동일합니다.

이 매개 변수는 필수입니다.

[in, optional] ServerName

이 매개 변수는 현재 무시되며 NULL이어야 합니다.

[in, optional] ShareName

이 매개 변수는 현재 무시되며 NULL이어야 합니다.

[in] Level

요청의 정보 수준을 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

1

DFS 루트 또는 DFS 링크 이름을 반환합니다. Buffer 매개 변수는 DFS_INFO_1 구조를 가리킵니다.

2

DFS 루트 또는 DFS 링크 이름, 상태 및 DFS 대상 수를 반환합니다. Buffer 매개 변수는 DFS_INFO_2 구조를 가리킵니다.

3

DFS 루트 또는 DFS 링크 이름, 상태 및 대상 정보를 반환합니다. Buffer 매개 변수는 DFS_INFO_3 구조를 가리킵니다.

4

DFS 루트 또는 DFS 링크 이름, 상태, GUID, 제한 시간 및 대상 정보를 반환합니다. Buffer 매개 변수는 DFS_INFO_4 구조를 가리킵니다.

5

DFS 루트 및 루트 아래의 모든 링크에 대한 이름, 상태, GUID, 제한 시간, 속성 플래그, 메타데이터 크기 및 대상 수를 반환합니다. Buffer 매개 변수는 DFS_INFO_5 구조체의 배열을 가리킵니다.

6

이름, 상태, GUID, 제한 시간, 속성 플래그, 메타데이터 크기, 루트 또는 링크에 대한 DFS 대상 정보 및 DFS 대상 목록을 반환합니다. Buffer 매개 변수는 DFS_INFO_6 구조체의 배열을 가리킵니다.

7

DFS 메타데이터의 버전 번호 GUID 를 반환합니다. Buffer 매개 변수는 DFS_INFO_7 구조체의 배열을 가리킵니다.

8

DFS 루트 및 루트 아래의 모든 링크에 대한 이름, 상태, GUID, 제한 시간, 속성 플래그, 메타데이터 크기, 대상 수 및 링크 재분석 지점 보안 설명자를 반환합니다. Buffer 매개 변수는 DFS_INFO_8 구조체의 배열을 가리킵니다.

9

이름, 상태, GUID, 제한 시간, 속성 플래그, 메타데이터 크기, DFS 대상 정보, 링크 재분석 지점 보안 설명자 및 루트 또는 링크에 대한 DFS 대상 목록을 반환합니다. Buffer 매개 변수는 DFS_INFO_9 구조체의 배열을 가리킵니다.

50

기존 DFS 네임스페이스의 DFS 메타데이터 버전 및 기능을 반환합니다. Buffer 매개 변수는 DFS_INFO_50 구조를 가리킵니다.

100

DFS 루트 또는 DFS 링크에 대한 주석을 반환합니다. Buffer 매개 변수는 DFS_INFO_100 구조를 가리킵니다.

150

DFS 링크의 재분석 지점에 대한 보안 설명자를 반환합니다. Buffer 매개 변수는 DFS_INFO_150 구조를 가리킵니다.

참고 이 값은 DFS 링크가 Windows Server 2008 이상을 실행하는 서버에 있는 경우에만 기본적으로 지원됩니다.
 

[out] Buffer

요청된 정보 구조를 수신하는 버퍼의 주소에 대한 포인터입니다. 이 데이터의 형식은 Level 매개 변수의 값에 따라 달라집니다. 이 버퍼는 시스템에서 할당되며 NetApiBufferFree 함수를 사용하여 해제해야 합니다. 자세한 내용은 네트워크 관리 함수 버퍼 및 네트워크관리 함수 버퍼 길이를 참조하세요.

반환 값

함수가 성공하면 반환 값이 NERR_Success.

함수가 실패하면 반환 값은 시스템 오류 코드입니다. 오류 코드 목록은 시스템 오류 코드를 참조하세요.

설명

NetDfsGetInfo 함수를 사용하기 위해 특별한 그룹 멤버 자격이 필요하지 않습니다.

NetDfsGetInfo 함수를 호출하는 애플리케이션은 해당 도메인에 대한 PDC 에뮬레이터 master 관련 네임스페이스 메타데이터의 전체 동기화를 수행하기 위해 함수 호출을 서비스하는 로컬 DFS 네임스페이스 서버가 간접적으로 발생할 수 있습니다. 이 전체 동기화는 해당 네임스페이스에 대해 루트 확장성 모드가 구성된 경우에도 발생할 수 있습니다. 이 부작용을 방지하기 위해 지정된 DFS 네임스페이스 경로에 해당하는 특정 DFSN 클라이언트 컴퓨터에서 사용하는 물리적 UNC 경로 이름만 검색하려는 경우 한 가지 대안은 WDK API ZwQueryInformationFile을 사용하여 FileNetworkPhysicalNameInformationFileInformationClass 매개 변수로 전달하고 호출자가 할당한 FILE_NETWORK_PHYSICAL_NAME_INFORMATION 구조체의 주소를 FileInformation 매개 변수로 전달하는 것입니다. WDK API 호출에 대한 자세한 내용은 WDK를 참조하세요.

예제

다음 코드 샘플에서는 NetDfsGetInfo 함수 호출을 사용하여 DFS 링크에 대한 정보를 검색하는 방법을 보여 줍니다. 샘플은 NetDfsGetInfo를 호출하여 정보 수준 3(DFS_INFO_3)을 지정합니다. 호출이 성공하면 샘플은 링크에서 참조하는 각 대상의 이름 및 상태 포함하여 DFS 링크에 대한 정보를 출력합니다. 마지막으로 코드 샘플은 정보 버퍼에 할당된 메모리를 해제합니다.

#include <windows.h>
#include <lm.h>
#include <lmdfs.h>
#include <stdio.h>
#pragma comment(lib, "Netapi32.lib")

void wmain(int argc, wchar_t *argv[ ])
{
   PDFS_INFO_3 pData;
   PDFS_STORAGE_INFO ps;
   DWORD er = 0, tr = 0, res, j;

   //
   // Check command line arguments.
   //
   if (argc<2)
      wprintf(L"Syntax: %s DfsEntryPath\n", argv[0]);
   else
   {
      //
      // Call the NetDfsGetInfo function, specifying level 3.
      //
      res = NetDfsGetInfo(argv[1], NULL, NULL, 3, (LPBYTE *) &pData);
      //
      // If the call succeeds, print the data.
      //
      if(res==0)
      {
         printf("%-30S Storages: %u\nComment: %S\n", pData->EntryPath, pData->NumberOfStorages, pData->Comment);
         ps = pData->Storage;
         //
         // Loop through each target.
         //
         for(j = 1; j <= pData->NumberOfStorages;j++)
         {
            //
            // Print the status (Offline/Online) and the name 
            // of each target referenced by the DFS link.
            //
            printf("    %S  ", (ps->State == DFS_STORAGE_STATE_OFFLINE) ? TEXT("Offline"): TEXT("Online "));
            printf("\\\\%S\\%S\n", ps->ServerName, ps->ShareName);
            ps++;
         }
         //
         // Free the allocated memory.
         //
         NetApiBufferFree(pData);
      }
      else
         printf("Error: %u\n", res);
   }
   return;
}

요구 사항

   
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 lmdfs.h(LmDfs.h, Lm.h 포함)
라이브러리 Netapi32.lib
DLL Netapi32.dll

참고 항목

DFS_INFO_1

DFS_INFO_100

DFS_INFO_2

DFS_INFO_3

DFS_INFO_4

DFS_INFO_5

DFS_INFO_6

DFS_INFO_7

DFS(분산 파일 시스템) 함수

NetDfsEnum

네트워크 관리 함수

네트워크 관리 개요