warning C28169: The dispatch function does not have any _Dispatch_type_ annotations

The Code Analysis tool reports this warning when the right-hand side of an assignment to the MajorFunction table has no (valid) _Dispatch_type_ annotations. The warning can sometimes occur if the right-hand side has a cast that strips off the _Dispatch_type_ annotation. The right-hand side should be a function of type DRIVER_DISPATCH type with the appropriate _Dispatch_type_ annotations.

For more information, see Using Function Role Type Declarations.


The following function declaration elicits this warning, if the function is used in a dispatch routine assignment for a MajorFunction.

DispatchSystemControl (
    PDEVICE_OBJECT  DeviceObject,
    PIRP            Irp

The following function declaration, used in the same way, does not elicit this warning.

// 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.
DRIVER_DISPATCH DispatchSystemControl;



Send comments about this topic to Microsoft

© 2014 Microsoft