Función WSCWriteProviderOrder (sporder.h)
La función WSCWriteProviderOrder se usa para reordenar los proveedores de transporte disponibles. El orden de los protocolos determina la prioridad de un protocolo al enumerarse o seleccionarse para su uso.
Sintaxis
int WSCWriteProviderOrder(
[in] LPDWORD lpwdCatalogEntryId,
[in] DWORD dwNumberOfEntries
);
Parámetros
[in] lpwdCatalogEntryId
Puntero a una matriz de elementos CatalogEntryId que se encuentran en la estructura WSAPROTOCOL_INFO . El orden de los elementos CatalogEntryId es el nuevo orden de prioridad para los protocolos.
[in] dwNumberOfEntries
Número de elementos de la matriz lpwdCatalogEntryId .
Valor devuelto
La función devuelve ERROR_SUCCESS (cero) si la rutina se realiza correctamente. De lo contrario, devuelve un código de error específico.
Código de error | Significado |
---|---|
Uno o varios de los argumentos no son válidos, no se realizó ninguna acción. | |
Error irrecuperable. Este error se devuelve en varias condiciones, incluidos los siguientes: el usuario carece de los privilegios administrativos necesarios para escribir en el registro winsock o se produjo un error al abrir o escribir una entrada de catálogo. | |
No había suficiente memoria disponible. Este error se devuelve cuando no hay memoria suficiente para asignar una nueva entrada de catálogo. | |
|
La rutina puede devolver cualquier código de error del Registro. |
Comentarios
El orden en que los proveedores de servicios de transporte se instalan inicialmente rige el orden en el que se enumeran a través de WSCEnumProtocols en la interfaz del proveedor de servicios, o a través de WSAEnumProtocols en la interfaz de la aplicación. Lo más importante es que este orden también rige el orden en el que se consideran protocolos y proveedores de servicios cuando un cliente solicita la creación de un socket en función de su familia de direcciones, tipo e identificador de protocolo.
Windows Sockets 2 incluye una aplicación denominada Sporder.exe que permite reordenar el catálogo de protocolos instalados de forma interactiva después de que ya se hayan instalado los protocolos. Windows Sockets 2 también incluye un archivo DLL auxiliar, Sporder.dll que exporta esta interfaz de procedimientos para reordenar protocolos. Esta interfaz se puede importar mediante la vinculación con Sporder.lib.
Los siguientes son escenarios en los que la función WSCWriteProviderOrder podría producir un error:
- El parámetro dwNumberOfEntries no es igual al número de proveedores de servicios registrados.
- LpwdCatalogEntryId contiene un identificador de catálogo no válido.
- LpwdCatalogEntryId no contiene todos los identificadores de catálogo válidos exactamente una vez.
- La rutina no puede acceder al Registro por algún motivo (por ejemplo, permisos de usuario inadecuados).
- Otro proceso (o subproceso) está llamando actualmente a la función .
Si se ejecuta correctamente, WSCWriteProviderOrder intentará alertar a todas las aplicaciones interesadas que se hayan registrado para notificar el cambio mediante una llamada a WSAProviderConfigChange.
Un usuario que ha iniciado sesión como miembro del grupo Administradores solo puede llamar a la función WSCWriteProviderOrder . Si un usuario llama a WSCWriteProviderOrder que no es miembro del grupo Administradores, se producirá un error en la llamada de función y se devolverá WSANO_RECOVERY . En el caso de los equipos que se ejecutan en Windows Vista o Windows Server 2008, esta función también puede producir un error debido al control de cuentas de usuario (UAC). Si un usuario inicia sesión como miembro del grupo Administradores que no sea el administrador integrado, esta llamada producirá un error a menos que la aplicación se haya marcado en el archivo de manifiesto con un valor requestedExecutionLevel establecido en requireAdministrator. Si la aplicación en Windows Vista o Windows Server 2008 carece de este archivo de manifiesto, un usuario que ha iniciado sesión como miembro del grupo Administradores que no sea el administrador integrado debe ejecutar la aplicación en un shell mejorado como administrador integrado (administrador de RunAs) para que esta función se realice correctamente.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | sporder.h |
Library | Sporder.lib |
Archivo DLL | Ws2_32.dll |