網路程式設計介面(NPI)定義了可以彼此連結的網路模組 之間的介面。 用戶端模組 註冊為特定 NPI 的用戶端後,只能附加至註冊為相同 NPI 提供者的 提供者模組。 同樣地,註冊為特定 NPI 提供者的提供者模組只能附加至註冊為相同 NPI 用戶端的用戶端模組。
每個 NPI 都會定義下列項目:
可唯一識別 NPI 的 NPI 識別碼。 網路模組會指定 NPI 識別碼,以指出當網路模組向網路模塊註冊器 (NMR) 註冊自己時所支援的特定 NPI。 網路模組可以藉由多次向 NMR 註冊,每次註冊對應一個 NPI,以支援多個 NPI。 只有在兩者都支援相同的 NPI 時,NMR 才會起始將用戶端模組附加至提供者模組。
選擇性 用戶端特性 結構,指定每個用戶端模組的 NPI 特定特性。 這類 NPI 特定特性可能包含專案,例如用戶端模組支援的 NPI 版本或版本,或用戶端模組所需的位址系列或通訊協定。 提供者模組可以使用用戶端模組用戶端特性結構中包含的信息,判斷其是否會附加至客戶端模組。 如果 NPI 未定義任何 NPI 特定的用戶端特性,則不需要此結構。
選擇性 提供者特性 結構,指定每個提供者模組的 NPI 特定特性。 這類 NPI 特定特性可能包括提供者模組所支援的 NPI 版本或位址系列、通訊協定等項目。 用戶端模組可以使用提供者模組用戶端特性結構中包含的信息,判斷其是否會附加至提供者模組。 如果 NPI 未定義任何 NPI 特定的提供者特性,則不需要此結構。
零個或多個用戶端模組回呼函式。 在提供者模組成功附加至用戶端模組之後,提供者模組可以藉由呼叫用戶端模組的回呼函式來存取用戶端模組的功能。
提供者模組的一個或多個函式。 用戶端模組成功附加至提供者模組之後,用戶端模組可以藉由呼叫提供者模組的函式來存取提供者模組的功能。
用戶端分派表 資料結構,其中包含指向每個用戶端模組回呼函式的函式指標。 如果 NPI 未定義任何用戶端模組回呼函式,則不需要此結構。
提供者分派表 結構,其中包含指向提供者每個模組函式的函式指標。
支援特定 NPI 的用戶端模組會使用 NPI 所定義的項目來實作 介面的用戶端。 同樣地,支援特定 NPI 的提供者模組會使用 NPI 所定義的項目來實作介面的提供者端。
NPI 所定義的所有項目對於 NMR 都是不可見的,唯獨 NPI 識別碼除外。 NMR 會使用 NPI 識別符來判斷哪些用戶端模組應該附加至哪個提供者模組。