共用方式為


廣告伺服器介面

使用自動句柄的應用程式伺服器端必須呼叫函式 RpcNsBindingExport,以便讓用戶端可以存取伺服器的繫結資訊。 自動系結句柄需要名稱服務在用戶端可存取的伺服器上執行。 Microsoft 名稱服務的實作,即 Microsoft 定位器,會管理自動控制代碼。 使用隱含和明確系結句柄的伺服器應用程式也可以公告其在名稱服務資料庫中的存在。

伺服器通常會呼叫下列執行時間函式:

/* auto handle server application (fragment) */
 
//interface header file that the MIDL compiler generates
#include "auto.h" 
 
void main(void)
{
    RpcUseProtseqEp(...);
    RpcServerRegisterIf(...);
    RpcServerInqBindings(...);
    RpcNsBindingExport(...);
    ...
}

此代碼段前兩個函式的呼叫類似於 Hello,World 範例。 這些函式可讓用戶端取得系結的相關信息。 呼叫 RpcServerInqBindingsRpcNsBindingExport ,將資訊放入名稱服務資料庫中。 RpcServerInqBindings 的呼叫 會將繫結向量填入有效的系結句柄,再將句柄匯出至名稱服務。 在伺服器程式將句柄匯出至資料庫之後,用戶端(或用戶端存根)可以呼叫 RpcNsBindingImportBegin,並 RpcNsBindingImportNext 以取得此資訊。 如需詳細資訊,請參閱 尋找伺服器主機系統

RpcServerInqBindings 的呼叫RpcNsBindingExport 及其相關數據結構如下所示:

RPC_BINDING_VECTOR * pBindingVector;
RPCSTATUS status;
 
status = RpcServerInqBindings(&pBindingVector);
 
status = RpcNsBindingExport(
                fNameSyntaxType,      // name syntax type 
                pszAutoEntryName,     // nsi entry name 
                autoh_ServerIfHandle, // if server handle
                pBindingVector,       // set in previous call 
                NULL);                // UUID vector

請注意,RpcServerInqBindings 參數 pBindingVector 是指向 RPC_BINDING_VECTOR指標的指標。 也請記住,每次呼叫 RpcNsBindingExport 後,都必須呼叫 RpcBindingVectorFree

若要從名稱服務資料庫移除導出的介面,伺服器會呼叫 RpcNsBindingUnexport,如下所示:

status = RpcNsBindingUnexport(
                fNameSyntaxType, 
                pszAutoEntryName,  
                auto_ServerIfHandle,
                NULL);              // unexport handles only

只有在永久移除服務時,才能使用 RpcNsBindingUnexport 函式。 當服務暫時停用時,就不應該使用它,例如當伺服器關閉以進行維護時。 伺服器程式可以向名稱服務資料庫註冊本身,但無法使用,因為伺服器暫時離線。 用戶端應用程式應該包含這類條件的例外狀況處理程序代碼。

如需名稱服務資料庫內容和格式的詳細資訊,請參閱 RPC Name Service Database

如果客戶端和伺服器程式都在 Windows 2000 下執行,應用程式就可以利用 Active Directory 服務。 執行客戶端和伺服器程式的電腦必須是 Windows 2000 網域的成員。

若要使用 Active Directory 服務公告其目前狀態,伺服器程式應該在網域系統管理員的安全性內容中執行。 如果是在網域使用者的環境中執行,則網域系統管理員必須修改 RPC 服務容器上的存取控制清單 (ACL)。 如需詳細資訊,請參閱 Active Directory 檔。