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.
NTSTATUS 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. // _Dispatch_type_(IRP_MJ_SYSTEM_CONTROL) DRIVER_DISPATCH DispatchSystemControl;