Função NetDfsGetInfo (lmdfs.h)
Recupera informações sobre uma raiz ou link do DFS (Sistema de Arquivos Distribuído) especificado em um namespace do DFS.
Sintaxe
NET_API_STATUS NET_API_FUNCTION NetDfsGetInfo(
[in] LPWSTR DfsEntryPath,
[in, optional] LPWSTR ServerName,
[in, optional] LPWSTR ShareName,
[in] DWORD Level,
[out] LPBYTE *Buffer
);
Parâmetros
[in] DfsEntryPath
Ponteiro para uma cadeia de caracteres que especifica o caminho UNC (Convenção de Nomenclatura Universal) de uma raiz ou link do DFS.
Para um link, a cadeia de caracteres pode estar em uma das duas formas. O primeiro formulário é o seguinte:
\\ Servername\DfsName\link_path
em que ServerName é o nome do servidor de destino raiz que hospeda o namespace dfs autônomo; DfsName é o nome do namespace do DFS; e link_path é um link do DFS.
O segundo formulário é o seguinte:
\\ Domainname\DomDfsname\link_path
em que DomainName é o nome do domínio que hospeda o namespace DFS baseado em domínio; DomDfsname é o nome do namespace do DFS; e link_path é um link do DFS.
Para uma raiz, a cadeia de caracteres pode estar em uma das duas formas:
\\ Servername\DfsName
ou
\\ Domainname\DomDfsname
em que os valores dos nomes são os mesmos descritos anteriormente.
Este parâmetro é necessário.
[in, optional] ServerName
No momento, esse parâmetro é ignorado e deve ser NULL.
[in, optional] ShareName
No momento, esse parâmetro é ignorado e deve ser NULL.
[in] Level
Especifica o nível de informações da solicitação. Esse parâmetro pode usar um dos valores a seguir.
1
Retornar o nome do link do DFS ou raiz do DFS. O parâmetro Buffer aponta para uma estrutura de DFS_INFO_1 .
2
Retornar o nome do link dfs raiz ou DFS, status e o número de destinos dfs. O parâmetro Buffer aponta para uma estrutura de DFS_INFO_2 .
3
Retornar o nome do link dfs ou dfs, status e informações de destino. O parâmetro Buffer aponta para uma estrutura de DFS_INFO_3 .
4
Retorne o nome do link dfs raiz ou DFS, status, GUID, tempo limite e informações de destino. O parâmetro Buffer aponta para uma estrutura de DFS_INFO_4 .
5
Retorne o nome, status, GUID, tempo limite, sinalizadores de propriedade, tamanho dos metadados e número de destinos para uma raiz dfs e todos os links na raiz. O parâmetro Buffer aponta para uma matriz de estruturas de DFS_INFO_5 .
6
Retorne o nome, status, GUID, tempo limite, sinalizadores de propriedade, tamanho dos metadados, informações de destino do DFS para uma raiz ou link e uma lista de destinos dfs. O parâmetro Buffer aponta para uma matriz de estruturas de DFS_INFO_6 .
7
Retornar o GUID do número de versão dos metadados do DFS. O parâmetro Buffer aponta para uma matriz de estruturas de DFS_INFO_7 .
8
Retorne o nome, status, GUID, tempo limite, sinalizadores de propriedade, tamanho dos metadados, número de destinos e descritores de segurança de ponto de nova análise de link para uma raiz DFS e todos os links na raiz. O parâmetro Buffer aponta para uma matriz de estruturas de DFS_INFO_8 .
9
Retorne o nome, status, GUID, tempo limite, sinalizadores de propriedade, tamanho dos metadados, informações de destino do DFS, descritores de segurança de ponto de nova análise de link e uma lista de destinos dfs para uma raiz ou link. O parâmetro Buffer aponta para uma matriz de estruturas de DFS_INFO_9 .
50
Retornar a versão e os recursos de metadados do DFS de um namespace DFS existente. O parâmetro Buffer aponta para uma estrutura de DFS_INFO_50 .
100
Retorne um comentário sobre a raiz do DFS ou o link do DFS. O parâmetro Buffer aponta para uma estrutura de DFS_INFO_100 .
150
Retorne o descritor de segurança para o ponto de nova análise do link do DFS. O parâmetro Buffer aponta para uma estrutura de DFS_INFO_150 .
[out] Buffer
Ponteiro para o endereço de um buffer que recebe as estruturas de informações solicitadas. O formato desses dados depende do valor do parâmetro Level . Esse buffer é alocado pelo sistema e deve ser liberado usando a função NetApiBufferFree . Para obter mais informações, consulte Buffers de função de gerenciamento de rede e Comprimentos de buffer de função de gerenciamento de rede.
Valor retornado
Se a função for bem-sucedida, o valor retornado será NERR_Success.
Se a função falhar, o valor retornado será um código de erro do sistema. Para obter uma lista de códigos de erro, consulte Códigos de erro do sistema.
Comentários
Nenhuma associação de grupo especial é necessária para usar a função NetDfsGetInfo .
Um aplicativo que chama a função NetDfsGetInfo pode indiretamente fazer com que o servidor namespace dfs local que atende a chamada de função execute uma sincronização completa dos metadados de namespace relacionados do emulador PDC master para esse domínio. Essa sincronização completa pode acontecer mesmo quando o modo de escalabilidade raiz está configurado para esse namespace. Para evitar esse efeito colateral, se a intenção for recuperar apenas o nome de caminho UNC físico usado por um computador cliente DFSN específico correspondente a um determinado caminho de namespace dfs, uma alternativa é usar a API do WDK ZwQueryInformationFile, passando FileNetworkPhysicalNameInformation como o parâmetro FileInformationClass e passando o endereço de uma estrutura de FILE_NETWORK_PHYSICAL_NAME_INFORMATION alocada pelo chamador como o parâmetro FileInformation . Consulte o WDK para obter mais informações sobre como chamar APIs do WDK.
Exemplos
O exemplo de código a seguir demonstra como recuperar informações sobre um link do DFS usando uma chamada para a função NetDfsGetInfo . O exemplo chama NetDfsGetInfo, especificando o nível de informações 3 (DFS_INFO_3). Se a chamada for bem-sucedida, o exemplo imprimirá informações sobre o link do DFS, incluindo o nome e status de cada destino referenciado pelo link. Por fim, o exemplo de código libera a memória alocada para o buffer de informações.
#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;
}
Requisitos
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | lmdfs.h (inclua LmDfs.h, Lm.h) |
Biblioteca | Netapi32.lib |
DLL | Netapi32.dll |
Confira também
Funções dfs (sistema de arquivos distribuído)