disable_consistency_check-Attribut
Weist RPC an, keine Korrelationskonsistenzüberprüfung 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 Puffer ungleich NULL übergeben wird, wenn die Korrelationsanzahlvariable ungleich NULL ist.
Beispiel
HRESULT PassString( [in] DWORD Length, [in, unique, string,
size_is( Length )]LPWSTR MyString );
Wenn MyStringNULL ist, lehnt RPC den Aufruf ab, es sei denn, Length ist auf 0 festgelegt. Beachten Sie, dass die Länge von RPC 0 beträgt, während MyString nicht NULL ist, und RPC MyString als Pufferzuordnung mit 0 Längen behandelt.
Bemerkungen
Um diese Überprüfung zu deaktivieren, kann die IDL das [disable_consistency_check]-Attribut für einen Parameter, typedef oder einen Zeigertyp enthalten. Dadurch wird RPC anweisen, die Konsistenz zwischen dem Pufferzeiger und der Korrelationsvariablen für den Puffer, auf den der Parameter oder Zeiger verweist, nicht zu erzwingen.
Um die Konsistenzprüfung für eine gesamte MIDL-Kompilierung zu deaktivieren (und die Erzwingung der Überprüfung in allen Fällen zu deaktivieren), kann der MIDL-Befehlszeilenschalter /backward_compat maybenull_sizeis verwendet werden. Dies erfordert, dass das Ziel der MIDL-Kompilierung mindestens â€"Ziel NT60 ist.