/protocol 參數
/protocol參數會指定產生的存根支援哪一個線路通訊協定。
midl /protocol (dce | ndr64 | all)
-
Dce
-
產生的存根僅支援 DCE 通訊協定。
-
ndr64
-
產生的存根僅支援 Microsoft NDR64 通訊協定。
-
所有
-
產生的存根支援指定環境的所有可用通訊協定。
RPC 會根據嚴格的線路通訊協定來封送處理和取消封送處理資料,也稱為傳輸語法,其會定義資料線標記法,例如資料成員封送處理的順序、網路上的資料對齊方式、資料隨附的其他資訊等等。 Microsoft RPC 與 OSF DCE 的 NDR (網路資料表示) 通訊協定相容。 在 Windows XP 的 64 位版本中,Microsoft 引進了實驗性通訊協定 NDR64,其已針對傳輸 64 位資料進行優化。 NDR64 與 DCE 通訊協定不相容。
dce通訊協定與 OSF DCE 的 NDR 傳輸語法相容。 此通訊協定已針對傳輸 32 位資料進行優化。
目前只有在與/win64參數搭配使用時,才支援ndr64通訊協定。 如果只有 ndr64 用戶端嘗試連線到僅限 dce 的伺服器,反之亦然,呼叫會遭到拒絕,並RPC_S_UNSUPPORTED_TRANS_SYN。
所有選項都會建立可使用任何可用通訊協定的存根。 對於 32 位存根,目前唯一可用的通訊協定是 DCE。 針對 64 位存根,使用 /win64 參數建立,DCE 和 NDR64 皆可使用。
midl /protocol all /win64 filename.idl