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