Top-Level和內嵌指標
若要瞭解如何在 Microsoft RPC 中配置指標及其相關聯的資料元素,您必須區分 最上層指標 和 內嵌指標。 參考不是最上層指標的所有指標集合也很有用。
最上層指標 是指定為函式原型中參數名稱的指標。 最上層指標及其參考一律會配置在伺服器上。
內嵌指標 是內嵌在資料結構中的指標,例如陣列、結構和等位。 當內嵌指標只將輸出寫入緩衝區,並在輸入時為 null 時,伺服器應用程式可以將其值變更為非 Null。 在此情況下,用戶端存根會為此資料配置新的記憶體。
如果在呼叫之前用戶端上的內嵌指標不是 Null,存根不會在傳回時配置用戶端上的記憶體。 相反地,存根會嘗試將與內嵌指標相關聯的記憶體寫入用戶端上與該指標相關聯的現有記憶體,並覆寫已經存在的資料。
注意
對於讀取或寫入緩衝區的資料,且未指定緩衝區大小,輸出長度必須小於或等於輸入長度。 偵測到溢位時,就會引發 RPC 例外狀況。 針對字串資料,輸出長度取決於檢查輸入字串的長度。 因此,輸出字串不能超過輸入字串的長度。 最佳做法指引是一律包含指定大小參數來指出緩衝區的大小,以避免發生此情況。
結合 指標和方向屬性中會討論內嵌的僅寫入指標。
非頂端層級指標一詞是指未在函式原型中指定為參數名稱的所有指標,包括內嵌指標和多個巢狀指標層級。