다음을 통해 공유


장치 기본 테스트를 선택하고 구성하는 방법

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

장치 기본 테스트 활용

장치 기본 테스트의 이점을 최대한 활용하려면 기본 I/O 플러그 인이 장치를 지원해야 합니다. 장치 유형이 지원되는지, 테스트를 위한 특정 요구 사항이 있는지 확인하려면 제공된 WDTF 단순 I/O 플러그 인을 참조하세요. 장치 기본 테스트에는 장치를 테스트하여 지원 여부를 확인할 수 있는 유틸리티도 포함되어 있습니다. 장치가 지원되지 않으면 Visual Studio에서 WDTF 단순 I/O 플러그 인을 만들 수 있습니다. 자세한 내용은 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 매개 변수는 대상 장치를 식별하는 WDTF SDEL 쿼리를 사용합니다. 이 쿼리는 매우 유연하며 단일 장치에서 시스템의 모든 장치에 이르기까지 개수에 상관없이 장치를 나타내는 데 사용할 수 있습니다.

일반적인 예:

특정 INF 파일을 사용하여 설치된 모든 장치 테스트:

INF::FileName=INF_File_Name

예: INF::OriginalInfFileName='%InfFileName%'

기본값입니다.

특정 장치 ID를 가진 장치 테스트:

DeviceId=’DeviceId

예: DeviceID=’USB\ROOT_HUB\4&1CD5D022&0’

특정 인터페이스를 가진 장치 테스트:

Interfaces::InterfaceGUID

특정 드라이버 문자를 가진 장치 테스트:

Volume::DriverLetter=’DriveLetter

예: Volume::DriverLetter=’c:\’

특정 드라이버를 가진 장치 테스트:

DriverBinaryNames=mydriver.sys

특정 장치 클래스를 가진 모든 장치 테스트:

예를 들면, Class=CDROM 은 클래스 CDROM의 모든 장치를 테스트합니다.

예를 들면, ClassGUID= {36fc9e60-c465-11cf-8056-444553540000}은 지정한 GUID와 일치하는 클래스 GUID를 가진 모든 장치를 테스트합니다. 여기서 GUID는 USB 클래스에 대한 것입니다.

DoPoolCheck

True 또는 False입니다. 풀 태그와 Lookaside 목록을 사용하여 드라이버의 페이징 및 비페이징 시스템 메모리 풀에 대한 사용을 모니터링합니다. 이 옵션은 또한 예외 처리에서의 오류를 나타내는 처리된 예외 개수의 변경 사항도 모니터링합니다.

ChangeBufferProtectionFlags

True 또는 False입니다. 테스트되는 장치로 전달되는 메모리 보호 플래그를 변경합니다. 메모리 보호 플래그는 액세스 권한 없음, 읽기 전용, 페이지 보호가 적용된 읽기 전용 간에 변경됩니다.

DoSimpleIO

True 또는 False입니다. PNP 작업 수행 전후에 테스트 장치에서 단순 I/O(찾은 경우)를 실행합니다.

DoConcurrentIO

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

FillZeroPageWithNull

True 또는 False입니다. 0으로 채워진 페이지를 매핑하고 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 네트워크의 암호를 입력합니다.

기본값: password

 

유틸리티 테스트

테스트 설명

WDTF 단순 I/O 플러그 인이 있는 장치 표시

매개 변수: 없음

드라이버 검증 도구를 사용하도록 설정된 장치 표시

매개 변수: 없음

장치 표시

매개 변수: 없음

 

드라이버 검증 도구

테스트 설명

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

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

매개 변수: 없음

드라이버 검증 도구 사용

이 테스트를 사용하여 테스트 컴퓨터에서 모든 장치 드라이버에 대해 드라이버 검증 도구를 사용하도록 설정할 수 있습니다.

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

 

관련 항목

Visual Studio를 사용하여 런타임에 드라이버를 테스트하는 방법

장치 기본 테스트

제공된 WDTF 단순 I/O 플러그 인

WDTF 단순 I/O 동작 플러그 인을 사용하여 장치에 대한 I/O를 사용자 지정하는 방법