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
);

parameters

[in] DfsEntryPath

指向指定通用命名约定 (UNC) DFS 根或链接路径的字符串的指针。

对于链接,字符串可以是两种形式之一。 第一种形式如下所示:

\\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 元数据的版本号 GUIDBuffer 参数指向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 函数的应用程序可能会间接导致为函数调用提供服务的本地 DFS 命名空间服务器从该域的 PDC 模拟器主机执行相关命名空间元数据的完全同步。 即使为该命名空间配置了根可伸缩性模式,也可能发生此完全同步。 为了避免这种副作用,如果目的只是检索特定 DFSN 客户端计算机使用的物理 UNC 路径名对应于给定的 DFS 命名空间路径,则一种替代方法是使用 WDK API ZwQueryInformationFile,传递 FileNetworkPhysicalNameInformation 作为 FileInformationClass 参数,并将调用方分配 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)
Library 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

网络管理功能

网络管理概述