網路程式設計介面

網路程式設計介面或 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 識別碼來判斷哪些用戶端模組應該附加至哪個提供者模組。