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。 请注意,当 MyString 为非 NULL 时,RPC 将允许 Length 为 0,RPC 会将 MyString 视为 0 长度缓冲区分配。

备注

若要禁用此检查,IDL 可以包含参数、typedef 或指针类型的 [disable_consistency_check] 属性。 这会指示 RPC 不强制实施缓冲区指针与参数或指针指向的缓冲区的相关变量之间的一致性。

若要禁用整个 MIDL 编译 (的一致性检查,并在所有情况下都禁用检查) ,可以使用 MIDL 命令行开关 /backward_compat maybenull_sizeis 。 这要求 MIDL 编译的目标至少为 “目标 NT60”。