버그 검사 0x144: BUGCODE_USB3_DRIVER
BUGCODE_USB3_DRIVER 버그 검사 값은 0x00000144. 모든 USB 3 버그 검사에 사용되는 코드입니다. 매개 변수 1은 USB 3 버그 검사 형식을 지정하고 다른 매개 변수의 의미는 매개 변수 1에 따라 달라집니다.
중요
이 문서는 프로그래머용입니다. 컴퓨터를 사용하는 동안 파란색 화면 오류 코드를 받은 고객인 경우 블루 스크린 오류 문제 해결을 참조하세요.
BUGCODE_USB3_DRIVER 매개 변수
매개 변수 1 | 매개 변수 2 | 매개 변수 3 | 매개 변수 4 | 오류 원인 |
---|---|---|---|---|
0x1 |
선택 사항입니다. URB를 다시 전송하는 데 사용되는 IRP에 대한 포인터 |
URB에 대한 포인터 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버는 이전에 코어 스택으로 전송한 URB를 사용했습니다. |
0x2 |
부팅 디바이스에 대한 PDO(물리적 디바이스 개체)에 대한 포인터 |
예약됨 |
예약됨 |
부팅 또는 페이징 디바이스가 다시 열거에 실패했습니다. |
0x3 |
선택 사항입니다. URB를 보내는 데 사용되는 IRP에 대한 포인터 |
손상된 URB에 대한 포인터 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버가 손상된 URB를 코어 스택으로 보냈습니다. 이는 클라이언트 드라이버가 USBD_xxxUrbAllocate 를 사용하여 URB를 할당하지 않았거나 클라이언트 드라이버가 URB에 대한 버퍼 언더런을 했기 때문에 발생할 수 있습니다. |
0x800 |
정적 스트림 열기 요청이 전송된 IRQL |
Open Static Streams IRP에 대한 포인터 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
IRQL > PASSIVE 수준에서 정적 스트림 열기 요청이 전송되었습니다. |
0x801 |
Open Static Streams IRP에 대한 포인터 |
Open Static Streams URB에 대한 포인터 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버가 스트림 기능을 쿼리하기 전에 정적 스트림을 열려고 했습니다. 클라이언트 드라이버는 스트림 기능을 쿼리할 때까지 정적 스트림을 열 수 없습니다. 자세한 내용은 설명 부분을 참조하세요. |
0x802 |
클라이언트 드라이버가 열려고 시도한 정적 스트림 수 |
클라이언트 드라이버에 부여된 정적 스트림 수 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버가 잘못된 수의 정적 스트림을 열려고 했습니다. 스트림 수는 0일 수 없으며 쿼리 USB 기능 호출에서 클라이언트 드라이버에 반환된 값보다 클 수 없습니다. |
0x803 |
Open Static Streams IRP에 대한 포인터 |
Open Static Streams URB에 대한 포인터 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버가 이미 정적 스트림이 열려 있는 엔드포인트에 대한 정적 스트림을 열려고 했습니다. 정적 스트림을 열기 전에 클라이언트 드라이버는 이전에 연 정적 스트림을 닫아야 합니다. |
0x804 |
유출된 핸들 컨텍스트입니다. !usbanalyze -v를 실행하여 유출된 핸들 및 URL에 대한 정보를 가져옵니다. 클라이언트 드라이버에 대해 드라이버 검증 도구 를 사용하도록 설정해야 합니다. |
USBD_CreateHandle 전달된 디바이스 개체입니다. |
예약됨 |
클라이언트 드라이버는 이전에 USBD_CreateHandle 사용하여 만든 핸들을 닫는 것을 잊거나 할당된 URB를 해제하는 것을 잊어버렸습니다. |
0x805 |
정적 스트림 닫기 URB에 대한 WDFREQUEST 핸들 |
정적 스트림 닫기 URB에 대한 포인터 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버가 잘못된 상태(예: D0 Exit 처리 후)에서 정적 스트림 닫기 URB를 보냈습니다. |
0x806 |
IRP에 대한 포인터 |
URB에 대한 포인터 |
클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버가 연결된 MDL 기능을 쿼리하기 전에 연결된 MDL 을 보내려고 했습니다. 클라이언트 드라이버는 연결된 MDL 기능을 성공적으로 쿼리할 때까지 연결된 MDL 을 보낼 수 없습니다. 자세한 내용은 설명 부분을 참조하세요. |
0x807 |
연결된 MDL에 대한 포인터 |
URB에 대한 포인터 |
사용 가능한 경우 클라이언트 드라이버의 디바이스 개체에 대한 포인터 |
클라이언트 드라이버는 전달된 MDL의 바이트 수(MmGetMdlByteCount에서 반환됨)보다 긴 전송 버퍼 길이로 URB를 코어 스택에 보냈습니다. 자세한 내용은 설명 부분을 참조하세요. |
0x1001 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI 컨트롤러는 호스트 시스템 오류를 나타내는 HSE 비트를 어설션했습니다. |
0x1002 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI 컨트롤러는 호스트 컨트롤러 오류를 나타내는 HCE 비트를 어설션했습니다. |
0x1003 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI 중지 엔드포인트 명령은 처리되지 않은 완료 코드를 반환했습니다. |
0x1004 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI 엔드포인트 중지 명령이 실행된 후 xHCI 엔드포인트 상태가 컨텍스트 상태 오류를 수신했습니다. |
0x1005 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
제어 엔드포인트에서 중단을 지우려고 시도하는 동안 큐에서 제거 포인터를 설정하지 못했습니다. |
0x1006 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
제어 엔드포인트에서 중단을 지우는 동안 EP를 다시 설정하지 못했습니다. |
0x1007 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
복구를 다시 설정하는 동안 xHCI 컨트롤러의 초기화가 실패했습니다. |
0x1008 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
다시 설정하는 동안 xHCI 컨트롤러를 다시 시작하지 못했습니다. |
0x1009 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
명령 제한 시간이 중단된 후 xHCI 컨트롤러 명령을 완료하지 못했습니다. |
0x100A |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
엔드포인트 중지 완료 후 큐에 넣기 해제 포인터를 설정하는 동안 큐에서 제거 포인터를 설정하지 못했습니다. |
0x100B |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
다시 설정하는 동안 xHCI 컨트롤러의 중지가 실패했습니다. |
0x100C |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI 컨트롤러의 펌웨어는 지원되지 않습니다. 펌웨어가 업데이트되지 않으면 xHCI 드라이버가 이 컨트롤러에 로드되지 않습니다. |
0x100D |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러가 물리적으로 제거된 것으로 감지되었습니다. |
0x100E |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
드라이버는 스트림 사용 엔드포인트에서 오류를 검색합니다. |
0x100F |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI 컨트롤러의 펌웨어가 오래되었습니다. xHCI 드라이버는 이 컨트롤러로 계속 작동하지만 몇 가지 문제가 발생할 수 있습니다. 펌웨어 업데이트가 권장됩니다. |
0x1010 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
처리되지 않은 완료 코드로 완료된 전송 이벤트 TRB입니다. |
0x1011 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러는 이벤트 링이 가득 찼다고 보고했습니다. 이 경우 컨트롤러는 이벤트를 삭제하는 것으로도 알려져 있습니다. |
0x1012 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러가 명령을 순서대로 완료했습니다. |
0x1013 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
명령이 완료되지 않으면 컨트롤러에서 보고한 명령 링 큐에서 제거 포인터가 올바르지 않습니다. |
0x1014 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
슬롯을 사용하도록 설정한 후 컨트롤러는 잘못된 슬롯 ID를 제공했습니다. |
0x1015 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러가 BSR1을 사용하여 SetAddress 명령을 실패했습니다. 예기치 않은 일입니다. |
0x1016 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러가 usbdevice 재설정 중에 슬롯을 사용하도록 설정하지 못했습니다. 이것은 예기치 않은 일입니다. |
0x1017 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러가 엔드포인트를 구성 해제하는 엔드포인트 구성 명령에 실패했습니다. 그것은 예상치 못한 일입니다. |
0x1018 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러가 슬롯 사용 안 함 명령을 실패했습니다. 그것은 예상치 못한 일입니다. |
0x1019 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러가 USB 디바이스 재설정 명령에 실패했습니다. 그것은 예상치 못한 일입니다. |
0x101A |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
엔드포인트 재설정 후 큐에서 제거 포인터 설정 명령이 실패했습니다. |
0x101B |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI 다시 설정 엔드포인트 명령은 처리되지 않은 완료 코드를 반환했습니다. |
0x101C |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
xHCI용 D0Entry가 실패했습니다. |
0x101D |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
요청 취소 중에 Dequeue 포인터 설정 대신 엔드포인트 구성 명령을 사용하는 경우 스트림 엔드포인트를 일시적으로 삭제하고 두 개의 명령으로 추가하지 못했습니다. |
0x101E |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러는 컨트롤러에서 보류 중이 아닌 전송 완료를 표시했습니다. EventData == 1(Transfer Event TRB의 포인터를 역참조하면 버그 검사가 발생했을 수 있습니다.) |
0x101F |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러는 컨트롤러에서 보류 중이 아닌 전송 완료를 표시했습니다. EventData == 0(전송 이벤트 TRB의 논리적 주소가 일치하지 않음) |
0x1020 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
컨트롤러는 컨트롤러에서 보류 중이 아닌 전송 완료를 표시했습니다. EventData == 0(전송 이벤트 TRB의 논리적 주소가 일치하지 않음) 전송 이벤트 TRB가 중복될 수 있습니다(최근에 완료된 요청 근처 지점). |
0x1021 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
중지되지 않은 엔드포인트를 다시 설정하는 과정의 일부로 엔드포인트 구성 명령을 사용할 때 스트림 엔드포인트를 일시적으로 삭제하고 두 개의 명령으로 추가하지 못했습니다. |
0x1022 |
XHCI_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
동일한 엔드포인트를 삭제하고 추가하지 못했습니다(하나의 명령으로). |
0x3000 |
USBHUB3_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
허브 드라이버에서 잘못된 동작 허브를 성공적으로 다시 설정했습니다. |
0x3001 |
USBHUB3_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
허브 드라이버에서 잘못된 동작 허브를 성공적으로 다시 설정하지 못했습니다. |
0x3002 |
USBHUB3_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
허브 드라이버에서 작동하지 않는 SuperSpeed 허브를 사용하지 않도록 설정했습니다. |
0x3003 |
USBHUB3_LIVEDUMP_CONTEXT |
예약됨 |
예약됨 |
USB 디바이스가 열거에 실패했습니다. |
설명
USB 기능을 쿼리하려면 클라이언트 드라이버가 WdfUsbTargetDeviceQueryUsbCapability 또는 USBD_QueryUsbCapability
연결된 MDL을 보내려면 클라이언트 드라이버가 USBD_QueryUsbCapability 호출하고 URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL 또는 URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL 사용해야 합니다.