Dela via


Nätverksprogrammeringsgränssnitt

Ett nätverksprogrammeringsgränssnitt, eller NPI, definierar gränssnittet mellan nätverksmoduler som kan kopplas till varandra. En klientmodul som är registrerad som klient för en viss NPI kan bara kopplas till providermoduler som är registrerade som leverantörer av samma NPI. På samma sätt kan en providermodul som är registrerad som leverantör av en viss NPI endast kopplas till klientmoduler som är registrerade som klienter för samma NPI.

Varje NPI definierar följande objekt:

  • En NPI-identifierare som unikt identifierar NPI:n. En nätverksmodul anger en NPI-identifierare som anger den specifika NPI som den stöder när nätverksmodulen registrerar sig med nätverksmodulregistratorn (NMR). En nätverksmodul kan stödja flera NPI:er genom att registrera sig med NMR flera gånger, en gång för varje NPI som den stöder. NMR initierar endast anslutning av en klientmodul till en providermodul om båda stöder samma NPI.

  • En valfri klientegenskaper struktur som anger NPI-specifika egenskaper för varje klientmodul. Sådana NPI-specifika egenskaper kan innehålla objekt som vilken version (eller vilka versioner) av NPI som en klientmodul stöder eller vilken adressfamilj eller vilket protokoll en klientmodul kräver. En providermodul kan använda informationen i klientmodulens klientegenskaper för att avgöra om den ska kopplas till klientmodulen. Om en NPI inte definierar några NPI-specifika klientegenskaper krävs inte den här strukturen.

  • En valfri provideregenskaper struktur som anger NPI-specifika egenskaper för varje providermodul. Sådana NPI-specifika egenskaper kan innehålla objekt som vilken version (eller vilka versioner) av NPI som en providermodul stöder eller som adresserar familjer eller protokoll som en providermodul stöder. En klientmodul kan använda informationen i en providermoduls klientegenskaper för att avgöra om den ska kopplas till providermodulen. Om en NPI inte definierar några NPI-specifika provideregenskaper krävs inte den här strukturen.

  • Noll eller fler återanropsfunktioner för klientmoduler. När en providermodul har anslutits till en klientmodul kan providermodulen komma åt klientmodulens funktioner genom att anropa klientmodulens återanropsfunktioner.

  • En eller flera leverantörsmodulfunktioner. När en klientmodul har anslutits till en providermodul kan klientmodulen komma åt providermodulens funktioner genom att anropa providermodulens funktioner.

  • En klientsändningstabell struktur som innehåller funktionspekare till var och en av klientmodulens återanropsfunktioner. Om en NPI inte definierar några återanropsfunktioner för klientmoduler krävs inte den här strukturen.

  • En provider dispatch-tabell struktur som innehåller funktionspekare till var och en av providermodulfunktionerna.

En klientmodul som stöder en viss NPI använder de objekt som definierats av NPI för att implementera klientsidan av gränssnittet. På samma sätt använder en providermodul som stöder en viss NPI de objekt som definierats av NPI för att implementera providersidan av gränssnittet.

Alla objekt som definieras av en NPI är ogenomskinliga för NMR förutom NPI-identifieraren. NMR använder NPI-identifieraren för att avgöra vilka klientmoduler som ska kopplas till vilka providermoduler.