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) パスを指定する文字列へのポインター。

リンクの場合、文字列は 2 つの形式のいずれかで指定できます。 最初の形式は次のとおりです。

\\Servername\DfsName\link_path

ここで 、ServerName はスタンドアロン DFS 名前空間をホストするルート ターゲット サーバーの名前です。 DfsName は DFS 名前空間の名前です。と link_path は DFS リンクです。

2 番目の形式は次のとおりです。

\\Domainname\DomDfsname\link_path

ここで 、DomainName はドメイン ベースの DFS 名前空間をホストするドメインの名前です。 DomDfsname は DFS 名前空間の名前です。と link_path は DFS リンクです。

ルートの場合、文字列は次の 2 つの形式のいずれかで指定できます。

\\Servername\DfsName

or

\\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 関数を呼び出すアプリケーションによって、ローカル DFS 名前空間サーバーが関数呼び出しに間接的にサービスを提供し、そのドメインの PDC エミュレーター マスターから関連する名前空間メタデータの完全同期を実行する可能性があります。 この完全同期は、その名前空間に対してルート スケーラビリティ モードが構成されている場合でも発生する可能性があります。 この副作用を回避するために、意図が特定の DFS 名前空間パスに対応する特定の DFSN クライアント マシンで使用される物理 UNC パス名のみを取得する場合、代わりに WDK API ZwQueryInformationFile を使用し、 FileNetworkPhysicalNameInformationFileInformationClass パラメーターとして渡し、呼び出し元によって割り当てられた FILE_NETWORK_PHYSICAL_NAME_INFORMATION 構造体のアドレスを FileInformation パラメーターとして渡します。 WDK API の呼び出しの詳細については、WDK を参照してください。

次のコード サンプルは、 NetDfsGetInfo 関数の呼び出しを使用して DFS リンクに関する情報を取得する方法を示しています。 このサンプルでは、情報レベル 3 (DFS_INFO_3) を指定して NetDfsGetInfo を呼び出します。 呼び出しが成功した場合、サンプルは、リンクによって参照される各ターゲットの名前と状態など、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

ネットワーク管理機能

ネットワーク管理の概要