disable_consistency_check-Attribut
Leitet RPC an, um die Überprüfung der Korrelationskonsistenz nicht zu erzwingen.
interface interface-name
{
return-type function-name(
[[attribute-list,] disable_consistency_check] param-type param-name
}
Bei korrelierten Parametern erzwingt RPC, dass ein Nicht-Null-Puffer übergeben wird, wenn die Korrelationszählervariable ungleich NULL ist.
Beispiel
HRESULT PassString( [in] DWORD Length, [in, unique, string,
size_is( Length )]LPWSTR MyString );
Wenn MyString-NULL-ist, lehnt RPC den Aufruf ab, es sei denn, Die Länge ist auf 0 festgelegt. Beachten Sie, dass RPC zulässt, dass Length 0 sein kann, während MyString- nicht NULL ist, und RPC behandelt MyString- als 0-Länge-Pufferzuweisung.
Bemerkungen
Um diese Überprüfung zu deaktivieren, kann die IDL das Attribut [disable_consistency_check] für einen Parameter, einen Typedef oder einen Zeigertyp enthalten. Dadurch wird RPC so geleitet, dass die Konsistenz zwischen dem Pufferzeiger und der Korrelationsvariable für den Puffer, auf den der Parameter oder Zeiger verweist, nicht erzwungen wird.
Um die Konsistenzüberprüfung für eine gesamte MIDL-Kompilierung zu deaktivieren (und die Erzwingung der Überprüfung in allen Fällen zu deaktivieren), kann die BEFEHLSZEILENoption MIDL /backward_compat maybenull_sizeis verwendet werden. Dies erfordert, dass das Ziel der MIDL-Kompilierung mindestens "ziel NT60" ist.