다음을 통해 공유


WdfPdoInitAssignDeviceID 함수(wdfpdo.h)

[KMDF에만 적용]

WdfPdoInitAssignDeviceID 메서드는 자식 디바이스에 대한 디바이스 ID 업데이트합니다.

구문론

NTSTATUS WdfPdoInitAssignDeviceID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING DeviceID
);

매개 변수

[in] DeviceInit

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

[in] DeviceID

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

반환 값

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

반환 코드 설명
STATUS_INVALID_DEVICE_REQUEST
드라이버가 PDO 대신 FDO를 초기화합니다.
상태_불충분한_리소스
드라이버가 디바이스 ID 문자열을 저장할 공간을 할당할 수 없습니다.
 

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

비고

디바이스 ID는 일반적으로 디바이스에서 보고하는 하드웨어 ID 목록의 첫 번째 항목입니다. 디바이스 ID 및 하드웨어 ID에 대한 자세한 내용은 디바이스 ID 문자열 및 설치 프로그램에서 드라이버 선택하는 방법을참조하세요.

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

예시

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

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

status = WdfPdoInitAssignDeviceID(
                                  pDeviceInit,
                                  &deviceId
                                  );

요구 사항

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

참고하십시오

WdfPdoInitAddCompatibleID

WdfPdoInitAddHardwareID

WdfPdoInitAssignInstanceID