次の方法で共有


C28169

警告 C28169: ディスパッチ関数に _Dispatch_type_ 注釈がありません

コード分析ツールは、MajorFunction テーブルへの割り当ての右側に(有効な) _Dispatch_type_ 注釈がない場合に、この警告を報告します。 右側に _Dispatch_type_ 注釈を取り除くキャストがある場合、警告が発生することがあります。 右側は、適切な _Dispatch_type_ 注釈を持つ型DRIVER_DISPATCH型の関数である必要があります。

詳細については、「関数ロール型宣言を使用する」を参照してください。

の例

次の関数宣言は、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;