attribut disable_consistency_check
Indique à RPC de ne pas appliquer la vérification de la cohérence de corrélation.
interface interface-name
{
return-type function-name(
[[attribute-list,] disable_consistency_check] param-type param-name
}
Pour les paramètres corrélés, RPC applique qu’une mémoire tampon non null est passée lorsque la variable de nombre de corrélations n’est pas null.
Exemple
HRESULT PassString( [in] DWORD Length, [in, unique, string,
size_is( Length )]LPWSTR MyString );
Si MyString a la valeur NULL, RPC rejette l’appel, sauf si Longueur est définie sur 0. Notez que RPC permet à Length d’être 0 alors que MyString n’a pas la valeur NULL, et RPC traite MyString comme une allocation de mémoire tampon de longueur 0.
Notes
Pour désactiver cette vérification, l’IDL peut contenir l’attribut [disable_consistency_check] sur un paramètre, un typedef ou un type pointeur. Cela indique à RPC de ne pas appliquer la cohérence entre le pointeur de mémoire tampon et la variable de corrélation pour la mémoire tampon pointée par le paramètre ou le pointeur.
Pour désactiver la vérification de cohérence pour une compilation MIDL entière (et désactiver l’application de la vérification dans tous les cas), le commutateur de ligne de commande MIDL /backward_compat maybenull_sizeis peut être utilisé. Cela nécessite que la cible de la compilation MIDL soit au moins NT60 cible.