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 콜백 함수에 오류가 발생하지 않으면 STATUS_SUCCESS 또는 NT_SUCCESS(상태)가 TRUE 다른 상태 값을 반환해야 합니다. 그렇지 않으면 NT_SUCCESS(상태)가 false 상태 값을 반환해야 합니다. STATUS_NOT_SUPPORTED 반환하지 마세요.
NT_SUCCESS(status)가 FALSE 경우 프레임워크는 드라이버의 EvtDeviceReleaseHardware 콜백 함수를 호출합니다.
이 콜백 함수의 반환 값에 대한 자세한 내용은 보고 디바이스 오류참조하세요.
발언
EvtDevicePrepareHardware 콜백 함수를 등록하려면 드라이버가 WdfDeviceInitSetPnpPowerEventCallbacks호출해야 합니다.
드라이버가 디바이스에 대한 EvtDevicePrepareHardware 콜백 함수를 등록한 경우 플러그 앤 플레이 관리자가 디바이스에 하드웨어 리소스를 할당한 후 디바이스가 초기화되지 않은 D0 상태를 입력한 후 프레임워크에서 함수를 호출합니다. (플러그 앤 플레이 관리자는 해당 디바이스의 자식 디바이스를 시작하기 전에 항상 부모 디바이스를 시작합니다.)
프레임워크는 드라이버의 EvtDeviceD0Entry 콜백 함수를 호출하기 전에 드라이버의 EvtDevicePrepareHardware 콜백 함수를 호출합니다.
EvtDevicePrepareHardware 콜백 함수는 ResourcesRaw 사용하여 디바이스의 원시 및 변환된 하드웨어 리소스에 액세스하고 수신하는 resourcesTranslated 핸들을. 콜백 함수는 WdfCmResourceListGetCount 호출하고 WdfCmResourceListGetDescriptor 리소스 목록을 트래버스할 수 있습니다. 이 콜백 함수는 리소스 목록을 수정할 수 없습니다.
리소스 목록 및 리소스가 표시되는 순서에 대한 자세한 내용은 원시 및 번역된 하드웨어 리소스 참조하세요.
일반적으로 드라이버의 EvtDevicePrepareHardware 콜백 함수는 필요한 경우 다음을 수행합니다.
- 드라이버가 디바이스에 할당된 메모리에 액세스할 수 있도록 실제 메모리 주소를 가상 주소에 매핑
- 디바이스의 수정 번호를 결정합니다.
- USB 디바이스 구성
- 다른 드라이버에서 드라이버 정의 인터페이스를 가져옵니다.
일반적으로 펌웨어 로드를 비롯한 다른 모든 하드웨어 초기화 작업은 디바이스가 작동(D0) 상태가 될 때마다 발생하므로 드라이버의 EvtDeviceD0Entry 콜백 함수에서 수행되어야 합니다.
ResourcesRaw 및 ResourcesTranslated 드라이버의 EvtDeviceReleaseHardware 콜백 함수가 반환될 때까지 EvtDevicePrepareHardware 콜백 함수가 수신하는 것을 처리합니다.
하드웨어 리소스에 대한 자세한 내용은 Framework-Based 드라이버 하드웨어 리소스를 참조하세요.
프레임워크가 이 콜백 함수를 호출하는 시기에 대한 자세한 내용은 PnP 및 Power Management 시나리오참조하세요.
이 콜백 함수를 제공하는 드라이버에 대한 자세한 내용은 함수 드라이버 PnP 및 전원 관리 지원참조하세요.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 보편적 |
최소 KMDF 버전 | 1.0 |
최소 UMDF 버전 | 2.0 |
헤더 | wdfdevice.h(Wdf.h 포함) |
IRQL | PASSIVE_LEVEL |