EVT_WDF_DEVICE_PREPARE_HARDWARE 콜백 함수(wdfdevice.h)

[KMDF 및 UMDF에 적용]

드라이버의 EvtDevicePrepareHardware 이벤트 콜백 함수는 드라이버에서 디바이스에 액세스할 수 있도록 하는 데 필요한 모든 작업을 수행합니다.

구문

EVT_WDF_DEVICE_PREPARE_HARDWARE EvtWdfDevicePrepareHardware;

NTSTATUS EvtWdfDevicePrepareHardware(
  [in] WDFDEVICE Device,
  [in] WDFCMRESLIST ResourcesRaw,
  [in] WDFCMRESLIST ResourcesTranslated
)
{...}

매개 변수

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

[in] ResourcesRaw

플러그 앤 플레이 관리자가 디바이스에 할당한 원시 하드웨어 리소스를 식별하는 프레임워크 리소스 목록 개체에 대한 핸들입니다.

[in] ResourcesTranslated

플러그 앤 플레이 관리자가 디바이스에 할당한 변환된 하드웨어 리소스를 식별하는 프레임워크 리소스 목록 개체에 대한 핸들입니다.

반환 값

EvtDevicePrepareHardware 콜백 함수에 오류가 발생하지 않으면 NT_SUCCESS(상태)이 TRUESTATUS_SUCCESS 또는 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(상태)이 FALSE와 같은 상태 값을 반환해야 합니다. STATUS_NOT_SUPPORTED 반환하지 마세요.

NT_SUCCESS(상태)이 FALSE와 같으면 프레임워크는 드라이버의 EvtDeviceReleaseHardware 콜백 함수를 호출합니다.

이 콜백 함수의 반환 값에 대한 자세한 내용은 보고 디바이스 오류를 참조하세요.

설명

EvtDevicePrepareHardware 콜백 함수를 등록하려면 드라이버가 WdfDeviceInitSetPnpPowerEventCallbacks를 호출해야 합니다.

드라이버가 디바이스에 대해 EvtDevicePrepareHardware 콜백 함수를 등록한 경우 프레임워크는 플러그 앤 플레이 관리자가 디바이스에 하드웨어 리소스를 할당한 후 디바이스가 초기화되지 않은 D0 상태가 된 후 함수를 호출합니다. (플러그 앤 플레이 관리자는 해당 디바이스의 자식 디바이스를 시작하기 전에 항상 부모 디바이스를 시작합니다.)

프레임워크는 드라이버의 EvtDeviceD0Entry 콜백 함수를 호출하기 전에 드라이버의 EvtDevicePrepareHardware 콜백 함수를 호출합니다.

EvtDevicePrepareHardware 콜백 함수는 수신하는 ResourcesRawResourcesTranslated 핸들을 사용하여 디바이스의 원시 및 번역된 하드웨어 리소스에 액세스합니다. 콜백 함수는 WdfCmResourceListGetCountWdfCmResourceListGetDescriptor 를 호출하여 리소스 목록을 트래버스할 수 있습니다. 이 콜백 함수는 리소스 목록을 수정할 수 없습니다.

리소스 목록 및 리소스가 표시되는 순서에 대한 자세한 내용은 원시 및 번역된 하드웨어 리소스를 참조하세요.

일반적으로 드라이버의 EvtDevicePrepareHardware 콜백 함수는 필요한 경우 다음을 수행합니다.

  • 드라이버가 디바이스에 할당된 메모리에 액세스할 수 있도록 실제 메모리 주소를 가상 주소에 매핑합니다.
  • 디바이스의 수정 번호 결정
  • USB 디바이스 구성
  • 다른 드라이버에서 드라이버 정의 인터페이스를 가져옵니다.
필요에 따라 드라이버의 EvtDevicePrepareHardware 콜백 함수는 작업 항목을 큐에 대기하여 다른 시간 집약적인 구성 작업을 완료할 수 있습니다. 이러한 작업에 작업 항목을 사용하면 디바이스의 시작 시간이 시스템 부팅 시간을 증가시키지 않도록 할 수 있습니다. 자세한 내용은 프레임워크 작업 항목 사용을 참조하세요.

일반적으로 펌웨어 로드를 비롯한 다른 모든 하드웨어 초기화 작업은 디바이스가 작동(D0) 상태가 될 때마다 발생하므로 드라이버의 EvtDeviceD0Entry 콜백 함수에서 수행되어야 합니다.

EvtDevicePrepareHardware 콜백 함수가 수신하는 ResourcesRawResourcesTranslated 핸들은 드라이버의 EvtDeviceReleaseHardware 콜백 함수가 반환될 때까지 유효한 상태를 유지합니다.

하드웨어 리소스에 대한 자세한 내용은 Framework-Based 드라이버용 하드웨어 리소스를 참조하세요.

프레임워크가 이 콜백 함수를 호출하는 경우에 대한 자세한 내용은 PnP 및 전원 관리 시나리오를 참조하세요.

이 콜백 함수를 제공하는 드라이버에 대한 자세한 내용은 함수 드라이버에서 PnP 및 전원 관리 지원을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfdevice.h(Wdf.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

EvtDeviceReleaseHardware