WdfPdoInitAddHardwareID 함수(wdfpdo.h)

[KMDF에만 적용]

WdfPdoInitAddHardwareID 메서드는 자식 디바이스의 하드웨어 ID 목록에 하드웨어 ID를 추가합니다.

구문

NTSTATUS WdfPdoInitAddHardwareID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING HardwareID
);

매개 변수

[in] DeviceInit

WDFDEVICE_INIT 구조체에 대한 포인터입니다.

[in] HardwareID

하드웨어 ID 문자열을 포함하는 UNICODE_STRING 구조체에 대한 포인터입니다. 드라이버는 페이징된 풀에서 문자열의 버퍼를 할당할 수 있습니다.

반환 값

작업이 성공하면 메서드는 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_INVALID_DEVICE_REQUEST
드라이버가 PDO 대신 FDO를 초기화하고 있습니다.
STATUS_INSUFFICIENT_RESOURCES
드라이버가 하드웨어 ID 문자열을 저장할 공간을 할당할 수 없습니다.
 

메서드는 다른 NTSTATUS 값을 반환할 수도 있습니다.

설명

드라이버는 디바이스에 대해 하나 이상의 하드웨어 ID를 추가할 수 있습니다. 최상의 경기에서 최악의 경기까지 순서대로 추가해야 합니다. 프레임워크는 추가된 순서대로 ID를 PnP 관리자에 전달합니다. 하드웨어 ID에 대한 자세한 내용은 디바이스 식별 문자열 및설치 프로그램에서 드라이버를 선택하는 방법을 참조하세요.

드라이버는 WdfDeviceCreate를 호출하기 전에 WdfPdoInitAddHardwareID를 호출해야 합니다. WdfDeviceCreate 호출에 대한 자세한 내용은 프레임워크 디바이스 개체 만들기를 참조하세요.

예제

다음 코드 예제에서는 KbFiltr 샘플 드라이버에서 사용하는 하드웨어 ID를 보고합니다.

#define  KBFILTR_DEVICE_ID L"{A65C87F9-BE02-4ed9-92EC-012D416169FA}\\KeyboardFilter\0"
DECLARE_CONST_UNICODE_STRING(hardwareId, KBFILTR_DEVICE_ID);

status = WdfPdoInitAddHardwareID(
                                 pDeviceInit,
                                 &hardwareId
                                 );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfpdo.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 ChildDeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

추가 정보

WdfPdoInitAddCompatibleID

WdfPdoInitAssignDeviceID

WdfPdoInitAssignInstanceID