다음을 통해 공유


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;