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;