Función SetAddrInfoExA (ws2tcpip.h)
La función SetAddrInfoEx registra o anula el registro de un nombre, un nombre de servicio y direcciones asociadas con un proveedor de espacios de nombres específico.
Sintaxis
INT WSAAPI SetAddrInfoExA(
[in] PCSTR pName,
[in] PCSTR pServiceName,
[in, out] SOCKET_ADDRESS *pAddresses,
[in] DWORD dwAddressCount,
[in, optional] LPBLOB lpBlob,
[in] DWORD dwFlags,
[in] DWORD dwNameSpace,
[in, optional] LPGUID lpNspId,
[in, optional] timeval *timeout,
[in, optional] LPOVERLAPPED lpOverlapped,
[in, optional] LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
[out, optional] LPHANDLE lpNameHandle
);
Parámetros
[in] pName
Puntero a un cadena terminada en NULLque contiene un nombre bajo el que se van a registrar o anular el registro de direcciones. Interpretación de este parámetro específico del proveedor de espacios de nombres.
[in] pServiceName
Puntero a un opcionalcadena terminada en NULL que contiene el nombre del servicio asociado al nombre que se está registrando. La interpretación de este parámetro es específica del proveedor de espacios de nombres.
[in, out] pAddresses
Puntero a una lista opcional de direcciones para registrarse con el proveedor de espacios de nombres.
[in] dwAddressCount
Número de direcciones pasadas en parámetro pAddresses. Si este parámetro es cero, el parámetro pName se anula del registro del proveedor de espacios de nombres.
[in, optional] lpBlob
Puntero opcional a los datos que se usan para establecer información de espacio de nombres específica del proveedor asociada al parámetro pName más allá de una lista de direcciones. Cualquier información que no se pueda pasar en el parámetro pAddresses se puede pasar en el parámetro lpBlob. El formato de esta información es específico del proveedor de espacios de nombres.
[in] dwFlags
Conjunto de marcas que controlan cómo se van a registrar los parámetros pName y pServiceName con el proveedor de espacios de nombres. La interpretación de esta información es específica del proveedor de espacios de nombres.
[in] dwNameSpace
Identificador de espacio de nombres que determina con qué proveedor de espacios de nombres se va a registrar esta información. Si se pasa un identificador de espacio de nombres específico, solo se registrará esta información con los proveedores de espacios de nombres que admiten el espacio de nombres especificado. Al especificar NS_ALL se registrará la información con todos los proveedores de espacios de nombres instalados y activos.
Las opciones del parámetro dwNameSpace de
[in, optional] lpNspId
Puntero a un GUID opcional de un proveedor de espacio de nombres específico con el que registrar esta información en en caso de que varios proveedores de espacios de nombres estén registrados en un único espacio de nombres, como NS_DNS. Si se pasa el GUID de un proveedor de espacio de nombres específico, la información que se registra solo con el proveedor de espacios de nombres especificado. Se puede llamar a la función WSAEnumNameSpaceProviders para recuperar el GUID de un proveedor de espacios de nombres.
[in, optional] timeout
Parámetro opcional que indica el tiempo, en milisegundos, para esperar una respuesta del proveedor de espacios de nombres antes de anular la llamada. Este parámetro está reservado actualmente y debe establecerse en NULL, ya que no se admite una opción de tiempo de espera de .
[in, optional] lpOverlapped
Puntero opcional a una estructura superpuesta utilizada para la operación asincrónica. Este parámetro está reservado actualmente y debe establecerse en NULL, ya que no se admiten operaciones asincrónicas.
[in, optional] lpCompletionRoutine
Puntero opcional a una función que se va a invocar tras completarse correctamente para las operaciones asincrónicas. Este parámetro está reservado actualmente y debe establecerse en NULL, ya que no se admiten operaciones asincrónicas.
[out, optional] lpNameHandle
Puntero opcional que solo se usa para operaciones asincrónicas. Este parámetro está reservado actualmente y debe establecerse en NULL, ya que no se admiten operaciones asincrónicas.
Valor devuelto
Si se ejecuta correctamente, SetAddrInfoEx devuelve NO_ERROR (0). Error devuelve un código de error que no es cero de Windows Sockets, como se encuentra en los códigos de error de Windows Sockets .
Código de error | Significado |
---|---|
Se debe realizar una llamada de WSAStartup correcta |
|
Error temporal en la resolución de nombres. | |
Se proporcionó un parámetro no válido. Este error se devuelve si alguno de los parámetros reservados no es NULL. | |
No hay suficiente espacio de búfer disponible. | |
Error irrecuperable en la resolución de nombres. | |
Error de asignación de memoria. |
Observaciones
La función SetAddrInfoEx proporciona un método independiente del protocolo para registrar o anular el registro de un nombre y una o varias direcciones con un proveedor de espacios de nombres. El NS_EMAIL proveedor de espacios de nombres en Windows Vista y versiones posteriores admite el registro y la desregistración de direcciones. Los proveedores de espacios de nombres predeterminados NS_DNS, NS_PNRPNAME y NS_PNRPNAME no admiten actualmente el registro de nombres.
Si se llama a la función
Cuando se define o _UNICODE UNICODE, se define SetAddrInfoEx en SetAddrInfoExW, la versión Unicode de esta función. Los parámetros de cadena se definen en el tipo de datos PWSTR.
Cuando no se define o _UNICODE UNICODE, SetAddrInfoEx se define en SetAddrInfoExA, la versión ANSI de esta función. Los parámetros de cadena son del tipo de datos PCSTR.
La información registrada con un proveedor de espacios de nombres se puede devolver llamando a las funcionesgetAddrInfoEx
En Windows Vista y versiones posteriores, cuando se llama a SetAddrInfoEx desde un servicio, si la operación es el resultado de un proceso de usuario que llama al servicio, el servicio debe suplantar al usuario. Esto es para permitir que se apliquen correctamente los compartimientos de seguridad y enrutamiento.
Nota
El encabezado ws2tcpip.h define SetAddrInfoEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 8.1, Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
ws2tcpip.h |
biblioteca de |
Ws2_32.lib |
DLL de |
Ws2_32.dll |