다음을 통해 공유


C28139

경고 C28139: 인수가 형식과 정확히 일치해야 합니다.

추가 정보

일부 함수는 인수 형식에 대해 제한된 산술 연산을 허용하고 다른 함수는 그렇지 않습니다. 이는 일반적으로 열거형 형식이 열거형의 멤버를 전달하지 않았지만 다른 형식에도 사용될 수 있음을 나타냅니다.

함수 호출의 열거형 값이 함수 선언에서 매개 변수에 지정된 형식과 일치하지 않습니다. 이 오류는 매개 변수가 잘못 코딩되거나 누락되거나 순서가 잘못된 경우에 발생할 수 있습니다. C는 열거형 값을 서로 바꿔서 사용하고 정수 상수와 교환하여 사용할 수 있도록 허용하므로 오류를 인식하지 않고 잘못된 열거형 값을 함수에 전달하는 것은 드문 일이 아닙니다.

코드 분석 도구에서 이 오류를 보고하는 경우 WDK의 함수 설명서를 참조하세요. 일부 함수는 열거형 값만 허용하도록 코딩됩니다. 다른 항목에서는 ?: 연산자가 해당 형식의 값 중에서 선택하거나 비트 플래그가 열거형 값으로 인코딩되는 경우와 같이 열거형 형식의 멤버에 대한 산술 연산을 허용합니다. 경우에 따라 열거형 값과 상수가 결합될 수 있습니다.

예제

다음 코드 예제에서는 이 경고를 유도합니다.

....KeWaitForSingleObject(&MyMutex, UserRequest, UserRequest, false, NULL);

다음 코드 예제에서는 이 경고를 방지합니다.

....KeWaitForSingleObject(&MyMutex, UserRequest, UserMode, false, NULL);