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,RPC 将拒绝调用,除非 Length 设置为 0。 请注意,RPC 允许 长度 为 0,而 MyString 为非 NULL,RPC 会将 MyString 视为 0 长度的缓冲区分配。
言论
若要禁用此检查,IDL 可以包含参数、typedef 或指针类型的 [disable_consistency_check] 属性。 这将指示 RPC 不强制在缓冲区指针与参数或指针指向的缓冲区的相关变量之间实现一致性。
若要禁用整个 MIDL 编译的一致性检查(并禁用在所有情况下执行检查),可以使用 MIDL 命令行开关 /backward_compat maybenull_sizeis。 这要求 MIDL 编译的目标至少为“目标 NT60”。