Componentes de una DLL de configuración del servicio de vínculo integrado en Host Integration Server

El archivo DLL de configuración del servicio de vínculo (linkcfg) debe exportar las siguientes funciones.

Función exportada Propósito
CommandLineAdd Se llama desde LinkCfg para analizar la entrada de la línea de comandos.
ConfigureLinkService Se llama desde el administrador de SNA para agregar o modificar un servicio de vínculo.
ConfigureLinkServiceEx Se llama desde el Administrador de SNA para agregar o modificar un servicio de vínculo, devolviendo un búfer de configuración que se va a agregar al archivo de configuración.
DisplayHelpInfo Devuelve un búfer que contiene la sintaxis de la línea de comandos para este tipo de servicio de vínculo.
RemoveLinkService Se llama desde el administrador de SNA para quitar un servicio de vínculo.
RemoveAllLinkServices Se llama desde el programa de instalación para quitar todas las instancias de este servicio de vínculo.

El archivo DLL linkcfg.cpp de ejemplo se escribe en C++ mediante Microsoft Foundation Classes (MFC) y usa una sola hoja de propiedades con dos páginas de propiedades como se muestra a continuación:

  • La implementación de la página de propiedades de configuración de tarjeta está en los archivos cardcfg.cpp y cardcfg.h. Esta página de propiedades se refiere a la configuración de varias propiedades de hardware (interrupción, canal DMA y dirección de E/S, por ejemplo) del hardware del servicio de vínculo.

  • La implementación de la hoja de propiedades del modo de conexión está en los archivos mode.cpp y mode.h. Esta página de propiedades se refiere a la configuración de la información del modo (nombre del servicio de vínculo, título del servicio de vínculo, tipo de línea del Control de vínculo de datos sincrónico (SDLC), por ejemplo) para el servicio de vínculo.

    Las dos páginas de propiedades están vinculadas a la hoja de propiedades del servicio de vínculos en linkcfg.cpp dentro de la rutina ConfigureLS . Las rutinas ConfigureLinkService y ConfigureLinkServiceEx exportadas llaman a esta función en linkcfg.cpp. Un archivo DLL de configuración del servicio de vínculo real desarrollado a partir de estos orígenes puede requerir más páginas de propiedades en función de la información necesaria para configurar el archivo DLL del servicio de vínculo real.

    El archivo de include registry.h usado por linkcfg.cpp contiene una definición global de las entradas del Registro necesarias para el servicio de vínculo SDLC genérico de ejemplo. Los valores de esta estructura se modificarán para que contengan la información real especificada por el usuario. Esta estructura se agrega al Registro cuando se configura un nuevo servicio de vínculo y esta estructura se quita cuando se elimina un servicio de vínculo. Los valores del Registro que un desarrollador debe modificar incluyen la entrada Base del Registro de vínculos (LINKSERVICE se usa en el archivo de incluyeción de ejemplo), el nombre de la raíz del controlador de dispositivo (GenSdlc se usa en el archivo de incluyente y el código fuente de ejemplo) y varias configuraciones del registro de software y servicio adecuadas para el servicio de vínculo de destino.

    Varias de las funciones DLL del servicio de vínculo exportado usan un búfer de configuración, CONFIG_BUFFER estructura definida en linkcfg.h. El formato de cualquier CONFIG_BUFFER los desarrolladores debe coincidir con el formato de estructura de este archivo de ejemplo para los tres primeros parámetros. Otros parámetros pueden diferir para la versión de un desarrollador de la CONFIG_BUFFER estructura basada en el servicio de vínculo de destino.

    El archivo DLL de configuración del servicio de vínculo de ejemplo llama a un conjunto de funciones de utilidad general que no son específicas de ningún servicio de vínculo de destino. Estas funciones de utilidad se incluyen en la biblioteca lnktools (lnktool.cpp) que está vinculada como un archivo OBJ. Esta biblioteca lnktools incluye las siguientes funciones de utilidad que son útiles para desarrollar archivos DLL de configuración del servicio de vínculo.

Función de utilidad Propósito
AddPerfmonCounters Agregue contadores perfmon para este servicio de vínculo.
bCreateService Cree un servicio en un equipo.
bDeleteService Eliminar un servicio en un equipo.
bStopService Detenga un servicio que se ejecuta en un equipo.
CheckForExistingLinkService Compruebe si existe un servicio de vínculo de este tipo con este título.
ConvertHexStringToDWORD Convertir una cadena hexadecimal en un valor DWORD.
ExtractNextParameter Obtenga el siguiente parámetro de un búfer.
fAddRegistryEntry Agregue un nuevo valor del Registro al registro.
fCanWeAdministerRemoteBox Determine si el usuario tiene privilegios administrativos en el equipo remoto.
fConnectRegistry Conectar al registro de un equipo remoto y devolver un identificador al registro remoto.
fDisconnectRegistry Desconectarse del registro de un equipo remoto.
fFindAndReplaceString Busque y reemplace una subcadena dentro de una cadena.
fFindString Determinar si existe una cadena dentro de un búfer de cadena.
fFindStringInMultiSZ Busque una cadena en una lista REG_MULTI_SZ cadenas y devuelva una cadena completa.
fQueryRegistryValue Consultar un valor del Registro.
fRegistryKeyExists Compruebe si existe una clave del Registro.
fRemoveRegistryEntry Quite una clave del Registro.
fRemoveRegistryValue Quite un valor del Registro.
fStringCompare Determine si se comparan dos cadenas.
LoadStringResource Cargue una cadena desde el recurso de cadena.
ParseNextField Devuelve el siguiente campo de una cadena.
RemovePerfmonCounters Quite los contadores de Perfmon para este servicio de vínculo.
ReturnString Devuelve un puntero a una cadena de recursos de cadena.

El código fuente de ejemplo para un archivo DLL de configuración del servicio de vínculo SDLC genérico (linkcfg) incluye varias funciones que pueden ser útiles como código de ejemplo al desarrollar archivos DLL de configuración del servicio de vínculo para otro hardware. Las siguientes funciones se incluyen en el código fuente linkcfg.cpp que pueden ser de uso como ejemplos.

Función de utilidad Propósito
bDetectNetworkCard Detecte la tarjeta de red remota y devuelva el búfer de configuración de tarjeta para el servicio de vínculo SDLC genérico de ejemplo.
bLastGenericDFTLinkService Compruebe el último servicio de vínculo SDLC genérico para el servicio de vínculo SDLC genérico de ejemplo. Esta rutina se usa para determinar si se puede quitar el controlador de dispositivo GENSDLC (si existe).
ConfigurarLS La función de configuración del servicio de vínculo común utilizada por el servicio de vínculo SDLC genérico de ejemplo.
fAddAllRegistryValues Agregue todos los valores del Registro para el servicio de vínculo SDLC genérico de ejemplo.
fAddClassAndBindformRegistries Agregue las entradas del Registro de la clase y bindform para el servicio de vínculo SDLC genérico de ejemplo. Las entradas del Registro bindform y class solo pueden existir para el primer servicio de vínculo de este tipo.
fEnumerateEventLogSources Enumere el valor del Registro de orígenes del registro de registros de eventos para el servicio de vínculo SDLC genérico de ejemplo.
fRemoveAllRegistryValues Quite todos los valores del Registro para el servicio de vínculo SDLC genérico de ejemplo.
fReplaceAllRegistryValues Reemplace toda la información proporcionada por el usuario en los datos del Registro para el servicio de vínculo SDLC genérico de ejemplo.
fReplaceRegistryData Reemplace los datos del registro global para el servicio de vínculo SDLC genérico de ejemplo.
fReplaceRegistryKeyName Reemplace las cadenas de estructura del registro global por el nombre de la clave del Registro para el servicio de vínculo SDLC genérico de ejemplo.
fSetupGlobalValues Cree o actualice toda la información proporcionada por el usuario en la estructura de datos del Registro para el servicio de vínculo SDLC genérico de ejemplo.
InitializeGlobalStructure Inicialice los datos del servicio de vínculo contenidos en la estructura de datos global para el servicio de vínculo SDLC genérico de ejemplo.