DF - PNP 제거 디바이스 테스트(개발 및 통합)
이 테스트에서는 EDT 필터 드라이버를 사용하여 IRP_MN_QUERY_REMOVE_DEVICE 및 IRP_MN_REMOVE_DEVICE가 대상 디바이스 스택으로 전송되는 원인을 보냅니다.
테스트는 대상 디바이스 스택에 상위 필터 드라이버를 설치하려고 시도합니다. 이렇게 하면 쿼리 제거 IRP가 생성됩니다.
이 쿼리 제거 IRP가 실패하면 테스트가 컴퓨터를 다시 시작하여 필터 드라이버를 디바이스 스택으로 가져옵니다. 제거 요청이 거부되지 않으면 디바이스 스택은 제거되고 디바이스 스택의 필터 드라이버로 다시 시작됩니다.
이 테스트는 설치 API를 사용하여 쿼리 제거 IRP를 디바이스 스택으로 보내도록 합니다. 필터 드라이버가 이 제거 요청에 실패하므로 제거 취소 IRP가 전송됩니다. 필터 드라이버는 제거 취소가 성공했다고 어설션합니다.
다음으로, 테스트 애플리케이션은 적절한 클래스 설치 관리자 및 등록된 공동 설치 관리자를 호출하여 디바이스를 비활성화 또는 활성화하고 디바이스를 제거 또는 다시 열거합니다. 이 테스트는 DICS_DISABLE, DICS_ENABLE, DICS_PROPCHANGE를 사용하여 DIF_PROPERTYCHANGE의 클래스 및 공동 설치 관리자 처리를 테스트합니다. IRP_MN_REMOVE_DEVICE를 수신하면 필터 드라이버는 하위 드라이버가 성공적으로 완료되었음을 어설션합니다.
이러한 각 단계에는 예비 제거 요청이 포함됩니다. 해당 요청이 거부되면 디바이스는 제거되지 않습니다. USB 카메라에서 비디오를 스트리밍하는 동안 또는 대상 디바이스가 부팅 또는 페이징 경로에 있는 경우와 같이 적절한 경우 제거 요청을 거부하도록 선택할 수 있습니다. 단순히 모든 제거 요청을 실패하는 것은 일반적으로 좋지 않습니다. 제거 IRP가 갑작스러운 제거 후에도 계속 실행되거나 디바이스 스택의 누군가가 시작 IRP에 실패하는 경우 모든 제거 요청을 실패해도 드라이버가 제거를 받지 못한다는 보장은 없습니다.
- 테스트 이진: Devfund_PnPDTest.dll
- 테스트 방법: PNPRemoveAndRestartDevice
EDT(고급 디바이스 테스트) 지원 비활성화 테스트는 DQ 매개 변수를 사용하여 지정된 디바이스에서 상위 필터로 테스트 필터 드라이버(msdmfilt.sys)를 제거합니다. 이 테스트 필터는 이 테스트 범주에서 실행 중인 테스트의 일부로 설치됩니다.
- 테스트 이진: Devfund_PnPDTest.dll
- 테스트 방법: DisableEnhancedDeviceTestingSupport
테스트 세부 정보
사양 |
|
플랫폼 |
|
지원되는 릴리스 |
|
예상 실행 시간(분) | 3 |
범주 | 시나리오 |
시간 제한(분) | 45 |
다시 부팅 필요 | false |
특별한 구성 필요 | true |
형식 | automatic |
추가 설명서
이 기능 영역의 테스트에는 다음 항목에서 찾을 수 있는 필수 조건, 설정, 문제 해결 정보를 포함한 추가 설명서가 있을 수 있습니다.
테스트 실행
테스트를 실행하기 전에 테스트 요구 사항: Device.Fundamentals 안정성 테스트 필수 구성 요소에 설명된 대로 테스트 설정을 완료합니다.
문제 해결
HLK 테스트 실패의 일반적인 문제 해결은 Windows HLK 테스트 실패 문제 해결을 참조하세요.
HLK 및 WDK의 Device Fundamentals 테스트와 관련된 문제 해결 정보는 Device.DevFund 추가 설명서를 참조하세요.
추가 정보
매개 변수
매개 변수 이름 | 매개 변수 설명 |
---|---|
DQ | 대상 디바이스를 식별하는 데 사용되는 WDTF SDEL 쿼리 - https://go.microsoft.com/fwlink/?LinkId=232678 |
Wpa2PskAesSsid | DUT 또는 자식 디바이스 중 하나가 WiFi 어댑터인 경우에만 필요합니다. 테스트에서 WiFi 어댑터를 테스트하는 데 사용할 수 있는 WPA2 AES WiFi 네트워크의 SSID를 제공합니다. 기본값은 ‘kitstestssid’입니다. |
Wpa2PskPassword | DUT 또는 자식 디바이스 중 하나가 WiFi 어댑터인 경우에만 필요합니다. Wpa2PskAesSsid 매개 변수를 사용하여 지정된 WPA2 AES WiFi 네트워크의 암호를 제공합니다. 기본값은 'password'입니다. |
WDTFREMOTESYSTEM | DUT 또는 자식 디바이스 중 하나가 IPv6 게이트웨이 주소가 없는 유선 NIC인 경우에만 필요합니다. 필요하다고 판단되면 테스트 NIC가 네트워크 I/O를 테스트하기 위해 ping할 수 있는 IPv6 주소를 제공합니다. 예: fe80::78b6:810:9c12:46cd |
DriverVerifierAdditionalDrivers | 드라이버 검증 도구를 사용하도록 설정해야 하는 추가 드라이버입니다. |
DriverVerifierExcludedFlags | 테스트 실행을 위해 수동으로 제외할 수 있는 드라이버 검증 도구 플래그의 자리 표시자 |
MultiDeviceHardwareIdSdelQueryHardwareID | 다중 디바이스 SDEL |
MultiDeviceInstanceIdSdelWDKDeviceID | DUT의 디바이스 ID |
DriverVerifierCustomizeConfiguration | 이 테스트에서 드라이버 검증 도구 설정을 자동으로 업데이트하도록 지정합니다. |
TestCycles | 테스트를 실행할 주기 수입니다. |
DoSimpleIO | True 또는 False PNP 작업을 수행하기 전후에 테스트 디바이스에서 SimpleIO(있는 경우)를 실행합니다. |
IOPeriod | SimpleIO(있는 경우)를 실행하는 데 걸리는 시간(분)입니다. |
DoConcurrentIO | True 또는 False WDTF 동시 IO 인터페이스를 사용하여 PNP 작업을 수행하는 동안 대상 디바이스 스택에 I/O 요청을 보냅니다. |