RpcNsMgmtHandleSetExpAge 函式 (rpcnsi.h)
RpcNsMgmtHandleSetExpAge函式會針對名稱服務資料的本機複本設定名稱服務控制碼的到期期限。
語法
RPC_STATUS RpcNsMgmtHandleSetExpAge(
RPC_NS_HANDLE NsHandle,
unsigned long ExpirationAge
);
參數
NsHandle
設定到期期限的名稱服務控制碼。 名稱服務控制碼會從名稱服務開始作業傳回。
ExpirationAge
整數值,以秒為單位,使用指定的 NsHandle 參數,設定所有下一個常式所讀取之本機名稱服務資料的到期期限。
到期期限為 0 會導致立即更新本機名稱服務資料。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
|
名稱服務無法使用。 |
備註
RpcNsMgmtHandleSetExpAge函式會為指定的名稱服務控制碼 (NsHandle) 設定控制碼到期期限。 到期期限是來自名稱服務屬性的本機資料複本可以存在的時間量,然後屬性的應用程式要求需要更新本機複本。 當應用程式開始執行時,RPC 執行時間程式庫會指定預設到期時間為兩小時。 預設值為應用程式的全域。 控制碼到期期限僅適用于特定名稱服務控制碼,並暫時覆寫目前的全域到期期限。
控制碼到期期限是由指標下一個作業獨佔使用, (從名稱服務屬性讀取資料) 。 下一個作業通常會從尋找應用程式所要求的屬性資料的本機複本開始。 如果沒有本機複本,下一個作業會從 name-service 資料庫建立一個具有全新屬性資料的作業。 如果本機複本已經存在,作業會比較其實際存留期與應用程式所使用的到期期限 (,在此情況下,這是名稱服務控制碼) 的到期期限設定。 如果實際存留期超過控制碼到期期限,作業會自動嘗試以全新的屬性資料更新本機複本。 如果無法更新,舊的本機資料仍會就地運作,而下一個作業會失敗,並傳回RPC_S_NAME_SERVICE_UNAVAILABLE狀態碼。
控制碼到期期限的範圍是下一個作業的單一系列。 RpcNsMgmtHandleSetExpAge函式會在下列內容中運作:
- 開始作業會建立名稱服務控制碼。
- 對 RpcNsMgmtHandleSetExpAge函式的呼叫會建立控制碼的到期期限。
- 名稱服務控制碼的一系列下一個作業會使用控制碼到期期限。
- 名稱服務控制碼的完成作業會刪除控制碼及其到期期限。
- 當您必須一律取得精確的名稱服務資料時。
例如,在更新設定檔的管理作業期間,您可能需要一律看到設定檔的目前內容。 在此情況下,在開始查詢設定檔之前,您的應用程式應該呼叫 RpcNsMgmtHandleSetExpAge 函式,並為 ExpirationAge 參數指定 0。
- 使用預設到期期限的要求失敗時,您的應用程式必須重試作業。
例如,使用名稱服務匯入作業的用戶端應用程式應該先嘗試使用應用程式的預設到期期限來取得系結。 不過,有時候匯入下一個作業不會傳回任何系結控制碼或數目不足。 在此情況下,用戶端可以重試匯入作業,並在 RpcNsBindingImportBegin 呼叫之後包含 RpcNsMgmtHandleSetExpAge 呼叫,並為 ExpirationAge 參數指定 0。 當用戶端再次呼叫 import-next 函式時,小型控制碼到期期限會導致匯入下一個作業更新本機屬性資料。
需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcnsi.h (包含 Rpc.h) |
程式庫 | Rpcns4.lib |
Dll | Rpcns4.dll |