KsInvalidStreamPointer 규칙(ks)
KsInvalidStreamPointer 규칙은 KS 미니포트 드라이버가 유효한 KS Stream 포인터를 함수 인수로 제공하는지 확인합니다. 일반적인 위반은 잘못된 포인터 처리 또는 잘못된 메모리 사용으로 인한 포인터 손상으로 인해 발생합니다.
유효한 스트림 포인터는 선행 또는 후행 에지 스트림 포인터 또는 KsStreamPointerClone을 통해 복제된 스트림 포인터입니다. 자세한 내용은 선행 및 후행 Edge 스트림 포인터를 참조하세요.
또한 이 규칙은 KsStreamPointerDelete 가 복제되지 않은 스트림 포인터를 삭제하는 데 사용되지 않은지 확인합니다.
드라이버 모델: KS
버그 검사: 버그 검사 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION(0x0008100C) 규칙으로 발견된 버그 검사
예제
다음 코드는 이 규칙을 위반합니다.
PKKSSTREAM_POINTER StreamPointer = KsPinGetLeadingEdgeStreamPointer (Pin, KSSTREAM_POINTER_STATE_UNLOCKED);
//
// ERROR: KsStreamPointerDelete can only be called on clone stream pointers.
//
KsStreamPointerDelete (StreamPointer);
또한 이 코드는 규칙을 위반합니다.
KsStreamPointerDelete (NULL);
테스트 방법
| 런타임 시 |
|---|
이 규칙을 확인하려면 명령 프롬프트 창을 엽니다. 드라이버 검증 도구 명령을 입력하고 /domain ks를 지정합니다. 예를 들면 다음과 같습니다. 자세한 내용은 드라이버 검증 도구를 참조하세요. |
verifier /domain ks [options] /driveryourdriver<>
| 런타임 시 |
|---|
드라이버 검증 도구를 실행하고 DDI 준수 확인 옵션을 선택합니다. |
적용 대상
KsStreamPointerDelete
KsStreamPointerAdvance
KsStreamPointerAdvanceOffsetsAndUnlock
KsStreamPointerCancelTimeout
KsStreamPointerGetIrp
KsStreamPointerGetMdl
KsStreamPointerGetNextClone
KsStreamPointerLock
KsStreamPointerScheduleTimeout
KsStreamPointerSetStatusCode
KsStreamPointerUnlock