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