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 );
MyString が NULL の場合、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 である必要があります。