Función NetDfsGetInfo (lmdfs.h)
Recupera información sobre una raíz o vínculo del sistema de archivos distribuido (DFS) especificado en un espacio de nombres DFS.
Sintaxis
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
Puntero a una cadena que especifica la ruta de acceso de convención de nomenclatura universal (UNC) de una raíz o vínculo DFS.
Para un vínculo, la cadena puede estar en una de las dos formas. El primer formulario es el siguiente:
\\Nombredeservidor\DfsName\link_path
donde ServerName es el nombre del servidor de destino raíz que hospeda el espacio de nombres DFS independiente; DfsName es el nombre del espacio de nombres DFS; y link_path es un vínculo DFS.
El segundo formulario es el siguiente:
\\Nombrededominio\DomDfsname\link_path
donde DomainName es el nombre del dominio que hospeda el espacio de nombres DFS basado en dominio; DomDfsname es el nombre del espacio de nombres DFS; y link_path es un vínculo DFS.
Para una raíz, la cadena puede tener una de estas dos formas:
\\Nombredeservidor\DfsName
o
\\Nombrededominio\DomDfsname
donde los valores de los nombres son los mismos que los descritos anteriormente.
Este parámetro es obligatorio.
[in, optional] ServerName
Este parámetro se omite actualmente y debe ser NULL.
[in, optional] ShareName
Este parámetro se omite actualmente y debe ser NULL.
[in] Level
Especifica el nivel de información de la solicitud. Este parámetro puede ser uno de los valores siguientes.
1
Devuelve el nombre del vínculo raíz dfs o DFS. El parámetro Buffer apunta a una estructura de DFS_INFO_1 .
2
Devuelve el nombre, el estado y el nombre del vínculo DFS raíz o DFS y el número de destinos DFS. El parámetro Buffer apunta a una estructura de DFS_INFO_2 .
3
Devuelve el nombre, el estado y la información de destino de la raíz DFS o del vínculo DFS. El parámetro Buffer apunta a una estructura de DFS_INFO_3 .
4
Devuelve el nombre del vínculo raíz DFS o DFS, el estado, el GUID, el tiempo de espera y la información de destino. El parámetro Buffer apunta a una estructura de DFS_INFO_4 .
5
Devuelve el nombre, el estado, el GUID, el tiempo de espera, las marcas de propiedad, el tamaño de los metadatos y el número de destinos de una raíz DFS y todos los vínculos de la raíz. El parámetro Buffer apunta a una matriz de estructuras de DFS_INFO_5 .
6
Devuelve el nombre, el estado, el GUID, el tiempo de espera, las marcas de propiedad, el tamaño de los metadatos, la información de destino DFS para una raíz o vínculo y una lista de destinos DFS. El parámetro Buffer apunta a una matriz de estructuras DFS_INFO_6 .
7
Devuelve el GUID de número de versión de los metadatos DFS. El parámetro Buffer apunta a una matriz de estructuras de DFS_INFO_7 .
8
Devuelve el nombre, el estado, el GUID, el tiempo de espera, las marcas de propiedad, el tamaño de los metadatos, el número de destinos y los descriptores de seguridad de punto de reanálisis de vínculos para una raíz DFS y todos los vínculos debajo de la raíz. El parámetro Buffer apunta a una matriz de estructuras de DFS_INFO_8 .
9
Devuelve el nombre, el estado, el GUID, el tiempo de espera, las marcas de propiedad, el tamaño de los metadatos, la información de destino DFS, los descriptores de seguridad de punto de análisis de vínculos y una lista de destinos DFS para una raíz o vínculo. El parámetro Buffer apunta a una matriz de estructuras de DFS_INFO_9 .
50
Devuelve la versión de metadatos DFS y las funcionalidades de un espacio de nombres DFS existente. El parámetro Buffer apunta a una estructura de DFS_INFO_50 .
100
Devuelve un comentario sobre el vínculo raíz de DFS o DFS. El parámetro Buffer apunta a una estructura de DFS_INFO_100 .
150
Devuelve el descriptor de seguridad del punto de reanálisis del vínculo DFS. El parámetro Buffer apunta a una estructura de DFS_INFO_150 .
[out] Buffer
Puntero a la dirección de un búfer que recibe las estructuras de información solicitadas. El formato de estos datos depende del valor del parámetro Level . El sistema asigna este búfer y se debe liberar mediante la función NetApiBufferFree . Para obtener más información, consulte Network Management Function Buffers (Búferes de funciones de administración de red) y Network Management Function Buffer Lengths (Longitudes de búfer de funciones de administración de red).
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es NERR_Success.
Si se produce un error en la función, el valor devuelto es un código de error del sistema. Para obtener una lista de códigos de error, consulte Códigos de error del sistema.
Comentarios
No se requiere ninguna pertenencia especial a grupos para usar la función NetDfsGetInfo .
Una aplicación que llama a la función NetDfsGetInfo puede provocar indirectamente que el servidor de espacio de nombres DFS local que atiende la llamada de función realice una sincronización completa de los metadatos de espacio de nombres relacionados del maestro del emulador de PDC para ese dominio. Esta sincronización completa podría producirse incluso cuando el modo de escalabilidad raíz está configurado para ese espacio de nombres. Para evitar este efecto secundario, si la intención es recuperar solo el nombre de ruta de acceso UNC físico usado por un equipo cliente DFSN específico correspondiente a una ruta de acceso de espacio de nombres DFS determinada, una alternativa es usar la API zwQueryInformationFile de WDK, pasar FileNetworkPhysicalNameInformation como parámetro FileInformationClass y pasar la dirección de una estructura de FILE_NETWORK_PHYSICAL_NAME_INFORMATION asignada por el autor de la llamada como el parámetro FileInformation . Consulte el WDK para obtener más información sobre cómo llamar a las API de WDK.
Ejemplos
En el ejemplo de código siguiente se muestra cómo recuperar información sobre un vínculo DFS mediante una llamada a la función NetDfsGetInfo . El ejemplo llama a NetDfsGetInfo, especificando el nivel de información 3 (DFS_INFO_3). Si la llamada se realiza correctamente, el ejemplo imprime información sobre el vínculo DFS, incluido el nombre y el estado de cada destino al que hace referencia el vínculo. Por último, el ejemplo de código libera la memoria asignada para el búfer de información.
#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 compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | lmdfs.h (include LmDfs.h, Lm.h) |
Library | Netapi32.lib |
Archivo DLL | Netapi32.dll |
Consulte también
Funciones del sistema de archivos distribuido (DFS)