disable_consistency_check 屬性
指示 RPC 不要強制執行相互關聯一致性檢查。
interface interface-name
{
return-type function-name(
[[attribute-list,] disable_consistency_check] param-type param-name
}
針對相互關聯的參數,RPC 會強制在相互關聯計數變數為非 Null 時傳遞非 Null 緩衝區。
例
HRESULT PassString( [in] DWORD Length, [in, unique, string,
size_is( Length )]LPWSTR MyString );
如果 MyStringNULL,除非 Length 設定為 0,否則 RPC 會拒絕呼叫。 請注意,RPC 會允許 Length 為 0,而 MyString 為非 NULL,RPC 會將 myString 視為 0 長度的緩衝區配置。
言論
若要停用這項檢查,IDL 可以包含參數、typedef 或指標類型的 [disable_consistency_check] 屬性。 這會將 RPC 導向至不強制執行緩衝區指標與參數或指標所指向之緩衝區的相互關聯變數之間的一致性。
若要停用整個 MIDL 編譯的一致性檢查(並停用在所有情況下強制執行檢查),可以使用 MIDL 命令行參數 /backward_compat maybenull_sizeis。 這需要 MIDL 編譯的目標至少為 「target NT60」。