次の方法で共有


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 である必要があります。