C28169
avertissement C28169 : La fonction dispatch n’a pas d’annotations _Dispatch_type_
L’outil Analyse du code signale cet avertissement lorsque le côté droit d’une affectation à la table MajorFunction n’a pas d’annotations (valides) _Dispatch_type_ . L’avertissement peut parfois se produire si le côté droit a un cast qui supprime l’annotation _Dispatch_type_ . Le côté droit doit être une fonction de type DRIVER_DISPATCH type avec les annotations _Dispatch_type_ appropriées.
Pour plus d’informations, consultez Utilisation des déclarations de type de rôle de fonction.
Exemple
La déclaration de fonction suivante déclenche cet avertissement, si la fonction est utilisée dans une affectation de routine de répartition pour une fonction MajorFunction.
NTSTATUS
DispatchSystemControl (
PDEVICE_OBJECT DeviceObject,
PIRP Irp
);
La déclaration de fonction suivante, utilisée de la même manière, ne déclenche pas cet avertissement.
// Function: DispatchSystemControl
// This is an example of a fully annotated declaration.
// IRP_MJ_SYSTEM_CONTROL is the type of IRP handled by this function.
// Multiple _Dispatch_type_ lines are acceptable if the function handles more than 1 IRP type.
//
_Dispatch_type_(IRP_MJ_SYSTEM_CONTROL)
DRIVER_DISPATCH DispatchSystemControl;