Composants d’une DLL de configuration de service de liaison intégré sur Host Integration Server

La DLL de configuration du service de liaison (linkcfg) doit exporter les fonctions suivantes.

Fonction exportée Objectif
CommandLineAdd Appelé à partir de LinkCfg pour analyser l’entrée de la ligne de commande.
ConfigureLinkService Appelée à partir du Gestionnaire SNA pour ajouter ou modifier un service de liaison.
ConfigureLinkServiceEx Appelée à partir du Gestionnaire SNA pour ajouter ou modifier un service de liaison, en retournant une mémoire tampon de configuration à ajouter au fichier de configuration.
DisplayHelpInfo Retourne une mémoire tampon qui contient la syntaxe de la ligne de commande pour ce type de service de liaison.
RemoveLinkService Appelée à partir du Gestionnaire SNA pour supprimer un service de liaison.
RemoveAllLinkServices Appelé à partir du programme d’installation pour supprimer toutes les instances de ce service de liaison.

L’exemple de DLL linkcfg. cpp est écrit en C++ à l’aide de la Microsoft Foundation Classes (MFC) et utilise une feuille de propriétés unique avec deux pages de propriétés comme suit :

  • L’implémentation de la page de propriétés configuration de la carte se trouve dans les fichiers cardcfg. cpp et cardcfg. h. Cette page de propriétés s’intéresse à la configuration de diverses propriétés matérielles (interruption, canal DMA et adresse d’e/s, par exemple) du matériel de service de liaison.

  • L’implémentation de la feuille de propriétés du mode de connexion se trouve dans les fichiers mode. cpp et mode. h. Cette page de propriétés s’intéresse à la configuration des informations de mode (nom du service de liaison, titre du service de liaison, type de ligne SDLC (Data Link Control) synchrone, par exemple) pour le service de liaison.

    Les deux pages de propriétés sont liées à la feuille de propriétés du service de liaison dans linkcfg. cpp au sein de la routine ConfigureLS . Cette fonction est appelée par les routines ConfigureLinkService et ConfigureLinkServiceEx exportées dans linkcfg. cpp. Une DLL de configuration de service de lien réelle développée à partir de ces sources peut nécessiter davantage de pages de propriétés en fonction des informations nécessaires à la configuration de la DLL du service de liaison réel.

    Le fichier include Registry. h utilisé par linkcfg. cpp contient une définition globale des entrées de Registre requises pour l’exemple de service de liaison SDLC générique. Les valeurs de cette structure seront modifiées pour contenir les informations réelles spécifiées par l’utilisateur. Cette structure est ajoutée au registre lorsqu’un nouveau service de liaison est configuré, et cette structure est supprimée lors de la suppression d’un service de liaison. Les valeurs de registre qu’un développeur doit modifier incluent l’entrée de base du registre de liens (LINKSERVICE est utilisé dans l’exemple de fichier include), le nom de la racine du pilote de périphérique (GenSdlc est utilisé dans l’exemple de fichier include et le code source), ainsi que divers paramètres de registre de service et de logiciel appropriés pour le service de liaison cible.

    Plusieurs des fonctions DLL du service de liaison exportées utilisent une mémoire tampon de configuration, la structure de CONFIG_BUFFER définie dans linkcfg. h. Le format de tout CONFIG_BUFFER utilisé par les développeurs doit correspondre au format de structure de cet exemple de fichier pour les trois premiers paramètres. D’autres paramètres peuvent différer pour la version du développeur de la structure CONFIG_BUFFER basée sur le service de liaison cible.

    L’exemple de DLL de configuration de service de liaison appelle un ensemble de fonctions utilitaires générales qui ne sont pas spécifiques à un service de liaison cible. Ces fonctions utilitaires sont incluses dans la bibliothèque lnktools (lnktool. cpp) qui est liée en tant que fichier OBJ. Cette bibliothèque lnktools comprend les fonctions utilitaires suivantes qui sont utiles pour développer des dll de configuration de service de liaison.

Fonction utilitaire Objectif
AddPerfmonCounters Ajoutez des compteurs PerfMon pour ce service de liaison.
bCreateService Créer un service sur un ordinateur.
bDeleteService Supprimer un service sur un ordinateur.
bStopService Arrêter un service qui s’exécute sur un ordinateur.
CheckForExistingLinkService Vérifiez si un service de liaison de ce type existe avec ce titre.
ConvertHexStringToDWORD Convertit une chaîne hexadécimale en valeur DWORD.
ExtractNextParameter Obtient le paramètre suivant à partir d’une mémoire tampon.
fAddRegistryEntry Ajoutez une nouvelle valeur de Registre au registre.
fCanWeAdministerRemoteBox Déterminez si l’utilisateur dispose de privilèges d’administrateur sur l’ordinateur distant.
fConnectRegistry Connecter au registre d’un ordinateur distant et renvoyer un descripteur au registre distant.
fDisconnectRegistry Déconnectez-vous du registre d’un ordinateur distant.
fFindAndReplaceString Rechercher et remplacer une sous-chaîne dans une chaîne.
fFindString Déterminez si une chaîne existe dans une mémoire tampon de chaîne.
fFindStringInMultiSZ Recherche une chaîne dans une liste de chaînes REG_MULTI_SZ et retourne la chaîne entière.
fQueryRegistryValue Interrogez une valeur à partir du Registre.
fRegistryKeyExists Testez si une clé de Registre existe.
fRemoveRegistryEntry Supprimer une clé de registre.
fRemoveRegistryValue Supprimer une valeur de registre.
fStringCompare Détermine si deux chaînes sont comparées.
LoadStringResource Charge une chaîne à partir de la ressource de type chaîne.
ParseNextField Retourne le champ suivant à partir d’une chaîne.
RemovePerfmonCounters Supprimez les compteurs PerfMon pour ce service de liaison.
ReturnString Retourne un pointeur vers une chaîne de ressource de chaîne.

L’exemple de code source pour une DLL de configuration de service de liaison SDLC générique (linkcfg) comprend plusieurs fonctions qui peuvent être utiles comme exemple de code lors du développement de dll de configuration de service de liaison pour un autre matériel. Les fonctions suivantes sont incluses dans le code source linkcfg. cpp qui peut être utilisé comme exemple.

Fonction utilitaire Objectif
bDetectNetworkCard Détectez la carte réseau distante et retournez la mémoire tampon des paramètres de carte pour l’exemple de service de liaison SDLC générique.
bLastGenericDFTLinkService Recherchez le dernier service de liaison SDLC générique pour l’exemple de service de liaison SDLC générique. Cette routine est utilisée pour déterminer si le pilote de périphérique GENSDLC (le cas échéant) peut être supprimé.
ConfigureLS Fonction de configuration du service de liaison commune utilisée par l’exemple de service de liaison SDLC générique.
fAddAllRegistryValues Ajoutez toutes les valeurs de Registre pour l’exemple de service de liaison SDLC générique.
fAddClassAndBindformRegistries Ajoutez les entrées de Registre Class et bindform pour l’exemple de service de liaison SDLC générique. Les entrées de Registre bindform et Class ne peuvent exister que pour le premier service de liaison de ce type.
fEnumerateEventLogSources Énumérez la valeur de registre des sources du journal des événements pour l’exemple de service de liaison SDLC générique.
fRemoveAllRegistryValues Supprimez toutes les valeurs de Registre pour l’exemple de service de liaison SDLC générique.
fReplaceAllRegistryValues Remplacez toutes les informations fournies par l’utilisateur dans les données du Registre pour l’exemple de service de lien générique SDLC.
fReplaceRegistryData Remplacez les données de Registre globales pour l’exemple de service de liaison SDLC générique.
fReplaceRegistryKeyName Remplacez les chaînes globales de la structure du Registre pour le nom de la clé de registre de l’exemple de service de liaison SDLC générique.
fSetupGlobalValues Crée ou met à jour toutes les informations fournies par l’utilisateur dans la structure des données de Registre pour l’exemple de service de liaison SDLC générique.
InitializeGlobalStructure Initialisez les données du service de liaison contenues dans la structure globale des données pour l’exemple de service de liaison SDLC générique.