네이티브 권장 규칙 규칙 집합
권장 되는 기본 규칙 잠재적인 보안 허점 및 응용 프로그램 충돌을 포함 하 여 네이티브 코드에서 가장 중요 하 고 일반적인 문제에 초점을 맞춥니다.네이티브 프로젝트를 만든이 규칙 집합의 모든 사용자 정의 규칙 집합을 포함 해야 합니다.이 규칙 집합 Visual Studio Professional edition 및 더 높은 작동 하도록 설계 되었습니다.
규칙 |
설명 |
---|---|
초기화 되지 않은 메모리를 사용 하 여 |
|
Null 포인터를 역참조 함 |
|
검사 되지 않은 값은 사용할 수 |
|
반환 값이 무시 |
|
0에서 호출 종료 |
|
종료 없음 0 |
|
잘못 된 연결 |
|
Format 함수 문자열 인수가 없습니다. |
|
Format 함수에 정수 인수가 없습니다. |
|
Format 함수 포인터 인수가 없습니다. |
|
문자열 형식 함수 포인터 인수가 없습니다. |
|
초기화 되지 않은 메모리를 반환합니다. |
|
인덱스 버퍼 최대값을 초과 했습니다. |
|
인덱스 스택 버퍼 최대값을 초과 했습니다. |
|
잘못 된 HRESULT BOOL로 캐스팅 |
|
잘못 된 캐스팅 HRESULT BOOL |
|
잘못 된 HRESULT BOOL 컴파일러 삽입 캐스팅 |
|
NOT과 잘못 된 HRESULT 테스트 |
|
잘못 된 HRESULT 비교-1 |
|
잘못 된 HRESULT 배정-1 |
|
HRESULT 부울 값으로 잘못 사용 |
|
0이 아닌 상수에 논리-나 |
|
논리적으로 또는 0이 아닌 상수입니다. |
|
논리 0-부작용을 상실 하 고 |
|
강제로 로컬 해제 |
|
만들기 Null DACL |
|
릴리스되지 않은 주소 설명자 |
|
보호 되지 않은 Alloca 사용 |
|
사용 하 여 스레드를 종료 |
|
죽은 비트 코드-또는 제한 스위치 |
|
사용 하는 바이트 산술 연산 |
|
과도 한 스택 사용 |
|
루프에서 Alloca를 사용 하 여 |
|
캐스트에서 누락 된 괄호 |
|
포인터 역참조 무시 |
|
Format 함수에 Float 인수가 없습니다. |
|
불필요 한 인수 형식 함수 |
|
Format 함수에 Float 되지 않은 인수 |
|
Format 함수에 정수가 아닌 것 |
|
문자가 아닌 인수 형식 함수 |
|
잘못 된 문자열 캐스팅 |
|
잘못 된 오류가 호출 |
|
새 배열 스칼라 Delete 일치 하지 않습니다. |
|
새 스칼라 배열 Delete 일치 하지 않습니다. |
|
메모리 할당 할당 취소 일치 하지 않습니다. |
|
관계 우선 순위 비트 |
|
배정 테스트를 대체합니다. |
|
기본 배열의 새 스칼라 Delete 불일치 |
|
잘못 된 개체 인수 형식 함수 |
|
논리-또는 상수 |
|
0이 아닌 논리적으로 나 부작용의 손실 |
|
예비 테스트 |
|
논리로 상호 포함-및 False입니다 |
|
상호 배제를 통해 논리적으로 나 마찬가지입니다 |
|
비트 논리 부정-및 우선 순위 |
|
비트 논리 부정-또는 우선 순위 |
|
루프에서 최대 개수 |
|
루프 최소부터 아래로 계산 |
|
루프 본문이 실행 되지 않습니다 |
|
무한 루프 |
|
한 번만 실행 되는 루프 |
|
결과 shift 키를 더 큰 크기를 캐스팅 |
|
비트 필드를 부울 비교 |
|
Format 함수에 잘못 된 문자 문자열 인수 |
|
Format 함수에 잘못 된 와이드 문자 문자열 인수 |
|
일치 하지 않는 크기 및 개수 사용 |
|
잘못 된 가변 인수 함수 호출 |
|
Realloc 누수 |
|
예외 필터 상수가 잘못 되었습니다. |
|
예외 실행 루프 계속 |
|
비트-또는 우선 순위 |
|
보수 하지 않습니다 |
|
예외 계속 검색 |
|
쉼표를 무시합니다. |
|
문자열 비교 대신 문자열 복사 |
|
잠재 인수 형식이 일치 하지 않습니다 |
|
VirtualFree 잘못 된 플래그 |
|
VirtualFree 잘못 된 매개 변수 |
|
VirtualFree 잘못 된 크기 |
|
프로세스 핸들 누수 |
|
시스템 종료 정보를 누락 되었습니다. |
|
요소 수가 바이트-버퍼 오버런 수 |
|
포인터 크기 구분 |
|
읽기 오버런 |
|
쓰기 오버런 |
|
잘못 된 매개 변수 값 |
|
잘못 된 매개 변수 값 |
|
잘못 된 특성 속성 |
|
충돌 하는 특성 속성 값 |
|
참조는 Null 일 수 없습니다. |
|
Null 포인터 기능을 |
|
MustCheck Void에 |
|
버퍼 크기가 아닌 포인터 또는 배열 |
|
역참조 0에서 null 일치 하지 않습니다. |
|
상수를 쓰기 액세스 |
|
전제 조건에 사용 되는 반환 |
|
Null이 아닌 포인터를 종료 합니다. |
|
MustCheck 같아야 합니다 예 또는 아니요 |
|
버퍼 크기를 없이 요소 크기 |
|
배열 크기가 버퍼 크기를 초과합니다. |
|
포인터가 아닌 버퍼 크기 |
|
특성에 속성이 없는 |
|
올바른 크기의 버퍼를 읽을 수 없는 |
|
쓸 쓸 버퍼 크기 |
|
주석이 잘못 되었습니다. 'NeedsRelease' 속성의 값은 Yes 또는 No |
|
잘못 된 크기의 문자열을 역참조 |
|
크기 문자열 형식이 잘못 되었습니다. |
|
잘못 된 크기의 문자열 매개 변수 |
|
잘못 된 크기 문자열 위치에 연결할 수 없음 |
|
잘못 된 크기 문자열 버퍼 형식입니다. |
|
주석이 잘못 되었습니다. 'NeedsRelease' 속성이 void 형식의 값에 사용할 수 없습니다 |
|
인식할 수 없는 형식 문자열 스타일입니다. |
|
이 함수에 특성 주석 사용 하는 모든 해당 기존 __declspec 주석이 무효화 됩니다. |
|
크기 사양이 잘못 되었습니다: 식을 구문 분석할 수 없습니다 |
|
잘못 된 Deref = 또는 Notref =: 식을 구문 분석할 수 없습니다 |
|
값이 유효한 예/아니오/아마 값이 되었습니다. |
|
값은 문자열 값이 아닙니다. |
|
값에 숫자가 아닙니다. |
|
주석 오류 식 |
|
주석에 대 한 인수의 실제 수가 예상 되는 수의 주석 인수 맞지 않습니다. |
|
주석 오류에 대 한 주석 |
|
XML 로그 파일을 저장할 수 없습니다. |
|
경쟁 조건 |
|
연동된 작업 제대로 사용 실패 |
|
호출자가 잠금을 유지 하는 데 실패 |
|
호출자가 잠금을 해제 하지 못했습니다. |
|
호출자는 잠금을 유지 수 없습니다. |
|
잠금 해제 실패 |
|
취득 하거나 잠금을 보유 하도록 실패 |
|
Unheld 잠금을 해제 |
|
SAL 주석이 동시성 오류 |
|
식에이 호출 그렇지 않습니다. |
|
주석이 있는 매개 변수에 대 한 포인터 이어야 합니다. |
|
이 함수에는 함수 클래스 함수 클래스 정의에 사용 되는 형식 정의에서 일치 하지 않습니다. |
|
할당 되거나 전달 되는 함수는 _Function_class_ 주석 클래스 중 하나에 대 한 있어야 합니다. |
|
함수 포인터를 할당 하 고 함수 클래스 목록에 포함 되어 있지 않습니다 함수 클래스, 주석 처리 됩니다. |
|
실제 매개 변수의 형식과 정확히 일치 해야 합니다. |
|
Interlocked 함수를 통해 액세스할 수 있는 변수는 항상 Interlocked 함수를 통해 액세스 되어야 합니다. |
|
지역 변수는 Interlocked 함수를 통해 액세스합니다. |
|
함수를 호출할 수 있어야를 try / 블록을 제외한 |
|
가변 인수 대신 상수 (리터럴) 이어야 합니다. |
|
인수는 변수 대신 이어야 합니다. |
|
다른 함수를 대신 사용 하십시오. |
|
Error 주석 |
|
함수에서 호출 되지 해야를 try / 블록을 제외한 |
|
인수 (않는 포인터 포인터) 개체에 대 한 포인터를 필요로 하는 함수에 전달 되 고 |
|
NULL 포인터를 역참조 합니다.포인터가 다른 포인터와 같이 NULL 값을 포함 합니다. |
|
인수 값을 수 있습니다 및 포인터에서 값의 복사본을 찾을 수합니다 |
|
검사 해야 하는 값을 변수에 포함 |
|
요구 사항이 충족 되지 않습니다.(식이 true로 계산 되지 않습니다.) |
|
비정적 멤버에 대 한 잘못 된 참조 |
|
클래스 멤버에 대 한 모호한 참조입니다. |
|
_Success_ 또는 _on_failure_가 잘못 된 컨텍스트에 사용 되는 |
|
구조체를 왼쪽 피연산자가 포인트 '->' |
|
왼쪽된 피연산자가 구조체, 사용 '.' |
|
기호에 대 한 선언에 충돌 하는 선언이 있습니다. |
|
주석 __on_failure 컨텍스트에 대해 명시적인 사전 컨텍스트에서 수 없습니다. |
|
정적 컨텍스트 이름이 sal_context에 있어야 합니다. |
|
포인터 식에 대 한 주석 필요 합니다. |
|
_Use_decl_annotations_ 주석, 수정 되지 않은 상태로 이전 선언을 참조할 수 사용 해야 합니다. |
|
특성 매개 변수 이름은 p1... 있어야 9 페이지 |
|
Typefix에는 typefix가 매개 변수를 적용할 수 없습니다. |
|
CheckReturn 주석 사후 특정 함수 매개 변수에 대 한 조건에만 적용 됩니다. |
|
함수에 대 한 매개 변수를 주석 파일에서 찾은 일치 하지 |
|
함수 paramteer에 대 한 매개 변수를 주석 파일에서 찾은 일치 하지 |
|
열거형의 멤버에 대 한 주석 매개 변수를 주석으로 필요합니다. |
|
주석에 대 한 주석에 매개 변수에 정수 식이 필요합니다. |
|
문자열 식의 주석에 매개 변수에 필요 합니다. |
|
__yes, __no, 또는 __maybe에 대 한 주석 필요합니다. |
|
토큰/식별자에 대 한 주석에서 찾을 수 없습니다 매개 변수 |
|
주석 매개 변수를 필요로합니다. |
|
필수 매개 변수의 올바른 개수에서 찾을 수 없습니다. |
|
주석 (현재 선언)에 있는 PrimOp 될 수도 수 없습니다. |
|
주석을 PrimOp 수 없습니다 또한 (이전 선언을 참조 하십시오.) |
|
주석 매개 변수: 유형에서 주석을 사용할 수 없습니다 |
|
주석 매개 변수를 지원 하지 않습니다. |
|
매개 변수 형식 멤버가 있습니다. |
|
주석 배열에만 유효 |
|
전, 게시, 또는 deref 주석으로 적용 되지 |
|
전, 게시, 또는 deref 블록에 적용 |
|
식 __at 현재 함수에는 적용 되지 않습니다. |
|
함수를 주석으로 독립 실행형 수 없습니다. |
|
주석에 식에 사용할 수 없습니다. |
|
주석에서 매개 변수를 더 이상 지원 |
|
주석에서 매개 변수 값에 stringValue 및 longValue 하나 이상 있습니다.Paramn 사용 하 여 = xxx |
|
주석에서 매개 변수 값 이나 stringValue, longValue 또는 있습니다. 및 paramn = xxx.Paramn만을 사용 = xxx |
|
주석 매개 변수에 매개 변수 2가 있지만 없음 param1가 |
|
주석은 함수 매개 변수에 대 한 인식할 수 없습니다. |
|
함수 매개 변수를 좀 더에 대해 주석 처리 하는 실제 형식 보다 주석 역참조 |
|
주석 기능에 대해 구문 분석할 수 없는 매개 변수/외부 주석을 했습니다. |
|
주석 기능에 대 한 '이' 비-멤버 함수에 주석을 달아합니다 |
|
매개 변수가 주석 기능에 대 한 매개 변수의 형식이 일치 하지 않습니다. |
|
함수에 대 한 일관성 없는 주석: 이전 인스턴스 오류가 있습니다. |
|
함수에 대해 일관 되지 않은 주석:이 경우에 오류가 발생 했습니다. |
|
함수에 대 한 일관성 없는 주석: 매개 변수에이 인스턴스를 다른 주석 있습니다. |
|
함수에 대 한 일관성 없는 주석: 매개 변수에이 인스턴스를 다른 주석 있습니다. |
|
dynamic_cast < > ()에서 주석은 지원 되지 않습니다. |
|
함수는 주석 주석 내의 구문 오류를 찾을 수 |
|
내장 주석에 대해 조건부 주석에서 구문 오류를 찾을 수 |
|
결과 목록 값은 상수 여야 합니다. |
|
구문 오류는 주석에서 주석 함수를 찾을 수 있습니다. |
|
주석 기능에 대 한 매개 변수를 검사 하는 경우 함수 선언에 일관성이 없습니다. |
|
함수에 대 한 단서 함수 선언과 일치 하지 않습니다. |
|
_Macro_value_ 매개 변수가 null입니다. |
|
기호에 대 한의 '시작'에 일치 하는 '끝 없는' 발견 했습니다 |
|
기호에 대 한 '끝'을 시 키 지 않고 '시작' 찾을 |
|
형식 문자열에서 있어야 합니다. |
|
함수에 대 한 매개 변수를 구문 오류가 발생 했습니다. |
|
함수에 대 한 끝부분에 구문 오류가 발생 했습니다. |
|
구문 오류 _At_() 주석 (알 수 없는 매개 변수 이름)에서 함수에 대 한 |
|
구문 오류 (잘못 된 매개 변수 이름) _At_() 주석에서 함수에 대 한 |
|
함수: ReadableTo 또는 WritableTo 한 매개 변수로 제한-사양 |
|
주석 기능에 대 한 실제 매개 변수 개수 보다 더 많은 외부 참조가 포함 되어 있습니다. |
|
포스트 수준을 deref null/notnull에는 함수에 대 한 의미가 없습니다. |
|
식은 피연산자에 연산자를 호환 되지 않는 형식 |
|
첫 번째 함수 선언에 대 한 주석은 없습니다. |
|
주석에서 여분의 _Deref_ 연산자를 찾을 수 없습니다. |
|
주석에서 모호한 _Deref_ 연산자를 찾을 수 없습니다. |
|
잘못 배치 된 _Notref_ 연산자 토큰에 적용 하는 찾을 수 없습니다. |
|
토큰을 구문 분석 하는 동안 오류가 발견 되었습니다. |
|
매개 변수에서 주석이 퇴행 되 |
|
매개 변수에서 주석이 퇴행 되 |
|
주석 조건적으로 적용할 수 없는 경우를 설명 합니다. |
|
위치 (변수) 동적 값 조건에서 사용할 수 없습니다 주석에 대해 설명 합니다. |