Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een netwerkprogrammeerinterface of NPI definieert de interface tussen netwerkmodules die aan elkaar kunnen worden gekoppeld. Een clientmodule die is geregistreerd als client van een bepaalde NPI, kan alleen worden gekoppeld aan providermodules die zijn geregistreerd als providers van dezelfde NPI. Op dezelfde manier kan een providermodule die is geregistreerd als provider van een bepaalde NPI, alleen worden gekoppeld aan clientmodules die zijn geregistreerd als clients van dezelfde NPI.
Elke NPI definieert de volgende items:
Een NPI-id die de NPI uniek identificeert. Een netwerkmodule geeft een NPI-id op om de specifieke NPI aan te geven die wordt ondersteund wanneer de netwerkmodule zichzelf registreert bij de Netwerkmoduleregistrar (NMR). Een netwerkmodule kan meerdere NPI's ondersteunen door zich meerdere keren bij de NMR te registreren, één keer voor elke NPI die wordt ondersteund. De NMR start het koppelen van een clientmodule aan een providermodule alleen als beide dezelfde NPI ondersteunen.
Een optionele clientkenmerkenstructuur die de NPI-specifieke kenmerken van elke clientmodule aangeeft. Dergelijke NPI-specifieke kenmerken kunnen items bevatten, zoals welke versie (of versies) van de NPI die een clientmodule ondersteunt, of welke adresfamilie of welk protocol een clientmodule nodig heeft. Een providermodule kan de informatie in de clientkenmerkenstructuur van een clientmodule gebruiken om te bepalen of deze wordt gekoppeld aan de clientmodule. Als een NPI geen NPI-specifieke clientkenmerken definieert, is deze structuur niet vereist.
Een optionele providerkenmerkenstructuur die de NPI-specifieke kenmerken van elke providermodule aangeeft. Dergelijke NPI-specifieke kenmerken kunnen items bevatten, zoals welke versie (of versies) van de NPI die een providermodule ondersteunt, of welke adresfamilies of protocollen een providermodule ondersteunt. Een clientmodule kan de informatie in de clientkenmerkenstructuur van een providermodule gebruiken om te bepalen of deze wordt gekoppeld aan de providermodule. Als een NPI geen NPI-specifieke providerkenmerken definieert, is deze structuur niet vereist.
Nul of meer callback-functies voor clientmodules. Nadat een providermodule is gekoppeld aan een clientmodule, heeft de providermodule toegang tot de functionaliteit van de clientmodule door de callbackfuncties van de clientmodule aan te roepen.
Een of meer providermodulefuncties. Nadat een clientmodule is gekoppeld aan een providermodule, heeft de clientmodule toegang tot de functionaliteit van de providermodule door de functies van de providermodule aan te roepen.
Een clientverzendingstabelstructuur die functieaanwijzers bevat naar elk van de callback-functies van de clientmodule. Als een NPI geen callback-functies voor clientmodules definieert, is deze structuur niet vereist.
Een provider dispatch-tabelstructuur die functiepointers bevat voor elke providermodulefunctie.
Een clientmodule die ondersteuning biedt voor een bepaalde NPI maakt gebruik van de items die door de NPI zijn gedefinieerd om de clientzijde van de interface te implementeren. Op dezelfde manier gebruikt een providermodule die ondersteuning biedt voor een bepaalde NPI de items die door de NPI zijn gedefinieerd om de providerzijde van de interface te implementeren.
Alle items die door een NPI zijn gedefinieerd, zijn ondoorzichtig voor de NMR, met uitzondering van de NPI-id. De NMR gebruikt de NPI-id om te bepalen welke clientmodules moeten worden gekoppeld aan welke providermodules.