Поделиться через


C28169

предупреждение C28169: функция dispatch не имеет заметок _Dispatch_type_

Средство анализа кода выводит это предупреждение, если в правой части назначения таблицы MajorFunction нет (допустимых) _Dispatch_type_ заметок. Иногда предупреждение может возникать, если на правой стороне есть приведение, которое удаляет заметку _Dispatch_type_ . Справа должна быть функция типа DRIVER_DISPATCH типа с соответствующими заметками _Dispatch_type_ .

Дополнительные сведения см. в разделе Использование объявлений типов ролей функции.

Пример

Следующее объявление функции выдает это предупреждение, если функция используется в назначении подпрограммы диспетчеризации для MajorFunction.

NTSTATUS
DispatchSystemControl (
    PDEVICE_OBJECT  DeviceObject,
    PIRP            Irp
    );

Следующее объявление функции, используемое таким же образом, не вызывает это предупреждение.

// 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;