다음을 통해 공유


디바이스 기본 사항 테스트를 선택 및 구성하는 방법

Windows 8용 WDK는 디바이스 기본 사항 테스트라는 테스트 집합을 포함하는 드라이버 테스트 프레임워크를 제공합니다. 디바이스 기본 사항 테스트는 Windows 및 WDK와 함께 제공되는 드라이버 및 드라이버 샘플을 테스트하기 위해 Microsoft 내부적으로 그리고 외부에서 하드웨어용 Windows 인증 프로그램의 일부로 사용되는 테스트 모음입니다. 개발 환경에서 테스트를 실행할 수 있습니다. 테스트를 실행할 때 Windows 인증 테스트에 사용되는 것과 동일한 매개 변수를 사용하거나 테스트 및 디버깅 요구 사항에 따라 런타임 매개 변수를 구성하고 사용자 지정할 수 있습니다.

디바이스 기본 사항 테스트에서 최대한 활용

디바이스 기본 사항 테스트를 최대한 활용하려면 기본 I/O 플러그 인에서 디바이스를 지원해야 합니다. 디바이스 유형이 지원되는지 확인하고 테스트에 대한 특정 요구 사항이 있는지 확인하려면 제공된 WDTF 단순 I/O 플러그 인을 참조 하세요. 디바이스 기본 사항 테스트에는 디바이스를 테스트하는 데 사용할 수 있는 유틸리티도 포함되어 지원되는지 확인합니다. 디바이스가 지원되지 않는 경우 WDTF 단순 I/O 플러그 인을 만들 수 있습니다. Visual Studio에서 자세한 내용은 WDTF 단순 I/O 작업 플러그 인을 사용하여 디바이스에 대한 I/O를 사용자 지정하는 방법을 참조하세요.

디바이스 기본 사항 테스트 정보

WDK는 기본 및 인증의 두 가지 구성으로 디바이스 기본 사항 테스트를 제공합니다. 두 구성 모두에서 테스트 매개 변수를 편집하여 대상 디바이스 또는 드라이버를 테스트하려는 방법에 따라 테스트 길이, 수행할 테스트 주기 수 및 기타 테스트 매개 변수를 변경할 수 있습니다. 기본 구성은 일반 드라이버 및 디바이스 테스트 및 디버깅을 위한 것입니다. 개발 주기의 초기 및 전체에서 기본 구성을 사용합니다. 기본 구성의 테스트에는 런타임이 짧은 것을 제외하고 Windows 인증 테스트에 사용되는 것과 동일한 설정이 있습니다. 인증 구성에서 테스트에는 Windows 인증 테스트에 사용되는 것과 동일한 설정이 있습니다. 인증 구성을 사용하여 하드웨어용 Windows 인증 프로그램의 디바이스 또는 드라이버를 테스트할 준비가 되었는지 확인합니다.

디바이스 기본 사항 테스트에는 다음 범주의 테스트가 포함됩니다.

런타임 테스트 매개 변수 설정

많은 디바이스 기본 사항 테스트에 대한 런타임 매개 변수를 편집할 수 있습니다. 드라이버 테스트 그룹 창에서 테스트 이름 옆에 있는 화살표(»)는 테스트에 변경할 수 있는 매개 변수가 있음을 나타냅니다. 화살표(»)를 선택하여 런타임 매개 변수를 표시합니다.

가장 유용한 매개 변수 중 하나는 테스트할 대상 디바이스를 지정하는 DQ입니다. 기본값(IsDevice)은 대상 컴퓨터의 모든 디바이스를 테스트합니다. DQ 매개 변수는 대상 디바이스를 식별하는 WDTF SDEL 쿼리를 사용합니다. 테스트를 위해 특정 디바이스를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

DeviceID='USB\ROOT_HUB\4&1CD5D022&0' 은 지정된 DeviceID를 사용하여 테스트할 디바이스만 선택합니다.

DQ 및 기타 런타임 매개 변수에 대한 자세한 내용은 디바이스 기본 사항 테스트 매개 변수를 참조하세요.

디바이스 기본 사항 테스트 매개 변수

매개 변수 설명

DQ

테스트에 사용해야 하는 디바이스 또는 디바이스를 식별합니다. DQ 매개 변수는 대상 디바이스를 식별하는 WDTFSDEL 쿼리를 사용합니다. 이 쿼리는 매우 유연할 수 있으며 단일 디바이스에서 시스템의 모든 디바이스에 이르기까지 다양한 디바이스를 표현하는 데 사용할 수 있습니다.

일반적인 예:

특정 INF 파일로 설치된 모든 디바이스를 테스트하려면 다음을 수행합니다.

INF::FileName=INF_File_Name

예를 들어 INF::OriginalInfFileName='KMDFTest.inf'

Inf::OriginalInFileName은 모든 INF와 함께 사용할 수 있습니다.

특정 디바이스 ID를 사용하여 디바이스를 테스트하려면 다음을 수행합니다.

DeviceId='DeviceId'

예를 들어 DeviceID='USB\ROOT_HUB\4&1CD5D022&0'

특정 인터페이스를 사용하여 디바이스를 테스트하려면 다음을 수행합니다.

인터페이스::InterfaceGUID

특정 드라이버 문자로 디바이스를 테스트하려면 다음을 수행합니다.

볼륨::D riverLetter='DriveLetter'

예를 들어 Volume::D riverLetter='c:\'

특정 드라이버로 디바이스를 테스트하려면 다음을 수행합니다.

DriverBinaryNames=mydriver.sys

여기서 KMDFTest.inf 는 드라이버를 설치하는 데 사용되는 inf입니다. 또한 KMDFTest.sys 드라이버를 사용하는 디바이스를 대상으로 하는 folloiwng을 사용할 수도 있습니다.

(DriverBinaryNames='KMDFTest.sys')이 작동합니다.

SDEL을 올바르게 설정한 후에는 테스트를 실행할 때 콘솔에 다음 출력이 표시됩니다.

WDTF_TARGETS : INFO : - Query("IsDevice AND ((Inf::OriginalInfFileName='KMDFTest.inf'))") WDTF_TARGETS : INFO : Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TEST: INFO : WARNING: 테스트에서 드라이버 검증 도구가 사용하도록 설정되어 있는지를 적용하지 않습니다. WDTF_TEST: INFO : DV가 Flag:=0x209bb WDTF_TEST 사용됨: INFO : DV가 이 devnode(UniqueTargetName):=KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGET: INFO : - GetInterface("Support") WDTF_TARGET 모든 드라이버에 대해 사용하도록 설정되었습니다. INFO : Target: DESKTOP-2OVFH3G WDTF_TARGETS : INFO : - Query("IsDevice") WDTF_TARGETS : INFO : Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGETS : INFO : - GetRelations("below-or-self/", "IsDevice") WDTF_TARGETS : INFO : TARGET: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGETS : INFO : - GetInterfacesIfExist("SimpleIOStressProc") WDTF_SIMPLE_IO : INFO : - Target:KMDFTest Device ROOT\SAMPLE\0000에 대한 간단한 IO 인터페이스가 없습니다. WDTF_SIMPLE_IO: INFO : - Target:KMDFTest 디바이스 ROOT\SAMPLE\0000 WDTF의 경우 ANY Simple IO 인터페이스를 사용합니다.

자세한 내용은 첨부 파일 구성 및 로그 파일을 참조하세요. WDTF_TARGETS : INFO : 대상: KMDFTest 디바이스 ROOT\SAMPLE\0000 WDTF_TEST : INFO : I/O 종료 테스트 WDTF_TEST 1 주기 수행 : INFO : I/O 종료 주기 #1 WDTF_SIMPLEIO_STRESS_PROC : INFO : - StartAsync(KMDFTest Device ROOT\SAMPLE\0000) WDTF_SIMPLEIO_STRESS_PROC : INFO: - WaitAsyncCompletion(KMDFTest Device ROOT\SAMPLE\0000) WDTF_SIMPLE_IO: INFO: - 대상: KMDFTest 디바이스 ROOT\SAMPLE\0000 간단한 IO 인터페이스를 찾을 수 없습니다. WDTF_SIMPLE_IO: INFO : - Target:KMDFTest 디바이스 ROOT\SAMPLE\0000 WDTF의 경우 ANY Simple IO 인터페이스를 사용합니다. WDTF_SIMPLE_IO : INFO : - Open(KMDFTest Device ROOT\SAMPLE\0000) count 1 WDTF_SUPPORT 시도 : INFO : - WaitForMinutes : 1 WDTF_SIMPLE_IO : INFO : - PerformIO(KMDFTest Device ROOT\SAMPLE\0000) Count 1 WDTF_SIMPLEIO_STRESS_PROC : INFO : - Terminate(KMDFTest Device ROOT\SAMPLE\0000) process

특정 디바이스 클래스의 모든 디바이스를 테스트하려면 다음을 수행합니다.

예를 들어 Class=CDROM은 클래스 CDROM 의 모든 디바이스를 테스트합니다.

예를 들어 ClassGUID= {36fc9e60-c465-11cf-8056-444553540000} 은 클래스 GUID가 지정된 GUID와 일치하는 모든 디바이스를 테스트합니다. 이 경우 GUID는 USB 클래스용입니다.

DoPoolCheck

True 또는 False 풀 태그 및 할당 준비 목록을 사용하여 드라이버의 페이징 및 비페이징 시스템 메모리 풀 사용을 모니터링합니다. 이 옵션은 처리된 예외의 개수 변화도 모니터링하는데, 이 개수는 예외 처리의 오류를 나타낼 수 있습니다.

ChangeBufferProtectionFlags

True 또는 False 테스트된 디바이스에 전달되는 버퍼의 메모리 보호 플래그를 변경합니다. 메모리 보호 플래그는 액세스 권한 없음, 읽기 전용, 페이지 보호를 사용하는 읽기 전용 사이에서 전환됩니다.

DoSimpleIO

True 또는 False PNP 작업을 수행하기 전과 후에 테스트 디바이스에서 SimpleI/O(있는 경우)를 실행합니다.

DoConcurrentIO

True 또는 False PnP 작업을 수행하는 동안 WDTF 동시 I/O 인터페이스를 사용하여 대상 디바이스 스택에 I/O 요청을 보냅니다.

FillZeroPageWithNull

True 또는 False 제로 페이지를 매핑한 후 NULL 값으로 채웁니다. 이 테스트는 포인터를 역참조하기 전에 포인터 참조를 확인하지 않는 드라이버를 식별합니다.

FuzzTestPeriod

퍼지 테스트 기간(분)입니다.

HPU

높은 프로세서 사용률을 지정합니다.

Impersonate

True 또는 False 관리자 권한 없이 사용자로 테스트를 실행합니다.

IOPeriod

I/O 기간을 분 단위로 지정합니다.

IOType

I/O 스트레스 테스트의 유형을 지정합니다. SimpleIOStressEx 또는 SimpleIOStressProc(별도의 프로세스의 I/O).

LPU

낮은 프로세서 사용률을 지정합니다.

MaxInBuffer

테스트가 FSCTL(또는 IOCTL 테스트의 경우 IOCTL)에서 드라이버에 전달하는 입력 버퍼의 최대 크기(바이트)를 지정합니다.

MinInBuffer

테스트가 FSCTL(또는 IOCTL 테스트의 경우 IOCTL)에서 드라이버에 전달하는 입력 버퍼의 최소 크기(바이트)를 지정합니다.

MaxOutBuffer

테스트가 FSCTL(또는 IOCTL 테스트의 경우 IOCTL)에서 드라이버에 전달하는 출력 버퍼의 최대 크기(바이트)를 지정합니다.

MinOutBuffer

테스트가 FSCTL(또는 IOCTL 테스트의 경우 IOCTL)에서 드라이버에 전달하는 출력 버퍼의 최소 크기(바이트)를 지정합니다.

MaxRandomCalls

테스트에서 실행하는 최대 호출 수를 지정합니다.

MaxTailoredCalls

맞춤형 임의 테스트 중에 테스트에서 실행하는 최대 호출 수를 지정합니다.

MaxDeviceType

FSCTL(또는 IOCTL 테스트의 경우 IOCTL)에서 DeviceType 필드의 최대값을 지정합니다. 가능한 최대값은 65535입니다.

MinDeviceType

FSCTL(또는 IOCTL 테스트의 IOCTL)에서 DeviceType 필드의 최소값을 지정합니다. 가능한 최소값은 0입니다.

MaxFunctionCode

FSCTL(또는 IOCTL 테스트의 경우 IOCTL)에서 FunctionCode 필드의 최대값을 지정합니다. 가능한 최댓값은 4095입니다.

MinFunctionCode

FSCTL(또는 IOCTL 테스트의 IOCTL)에서 FunctionCode 필드의 최소값을 지정합니다. 가능한 최소값은 0입니다.

PU

프로세서 사용률 백분율을 지정합니다.

PingPongPeriod

탁구 기간을 분 단위로 지정합니다. 프로세서가 HPU(높음)와 낮은(LPU) 프로세서 사용률 수준을 번갈아 가며 사용하는 시간입니다.

ResumeDelay

머신이 절전 모드에서 다시 시작된 후 다음 I/O 주기가 시작되기 전의 지연 시간(초)입니다. 지연 시간은 디바이스가 작업 상태를 복원할 수 있도록 허용하는 데 필요합니다(네트워크 카드의 IP 주소 갱신 등).

TestCycles

수행할 테스트 주기(반복)의 수를 지정합니다.

WDTFREMOTESYSTEM

이 매개 변수는 테스트 중인 디바이스 또는 해당 자식 디바이스 중 하나가 IPv6 게이트웨이 주소가 없는 유선 네트워크 어댑터인 경우에만 필요합니다. 네트워크에서 이 매개 변수가 필요한 경우 테스트 네트워크 어댑터가 네트워크를 테스트하기 위해 ping할 수 있는 IPv6 주소를 제공해야 합니다.

예: fe80::78b6:810:9c12:46cd

Wpa2PskAesSsid

이 매개 변수는 테스트 중인 디바이스 또는 해당 자식 디바이스 중 하나가 WiFi 어댑터인 경우에만 필요합니다. 테스트에서 WiFi 어댑터를 테스트하는 데 사용할 수 있는 WPA2 AES WiFi 네트워크의 SSID를 제공합니다.

기본값: kitstestssid

Wpa2PskPassword

이 매개 변수는 테스트 중인 디바이스 또는 해당 자식 디바이스 중 하나가 WiFi 어댑터인 경우에만 필요합니다. Wpa2PskAesSsid 매개 변수를 사용하여 지정된 WPA2 AES WiFi 네트워크의 암호를 제공합니다.

기본값: 암호

유틸리티 테스트

테스트 설명

WDTF 단순 I/O 플러그 인이 있는 디바이스 표시

매개 변수: 없음

드라이버 검증 도구를 사용하도록 설정된 디바이스 표시

매개 변수: 없음

디바이스 표시

매개 변수: 없음

드라이버 검증 도구

테스트 설명

드라이버 검증 도구 사용 안 함

테스트 컴퓨터에서 드라이버 검증 도구를 사용하지 않도록 설정합니다.

매개 변수: 없음

드라이버 검증 도구 사용

이 테스트를 사용하여 테스트 컴퓨터에서 디바이스(또는 디바이스)의 모든 드라이버에 대해 드라이버 검증 도구를 사용하도록 설정할 수 있습니다.

매개 변수: - 드라이버 검증 도구 옵션을 참조 하세요.