버스 드라이버에서 디바이스 개체 만들기

버스 드라이버는 자식 디바이스가 부모 디바이스에 연결되어 있음을 발견할 때 프레임워크 디바이스 개체를 만들어야 합니다. 부모 디바이스는 일반적으로 버스이지만 각 함수에 별도의 드라이버 집합(예: 디지털 오디오 및 MIDI를 지원하는 사운드 카드)이 필요한 다기능 디바이스일 수도 있습니다. 버스 드라이버에서 만드는 디바이스 개체를 PDO(물리적 디바이스 개체)라고 합니다. 각 개체는 하드웨어(자식)와 다른 (부모)의 실제 연결을 나타내기 때문입니다.

버스에 연결된 디바이스를 식별하고 보고하는 프로세스를 버스 열거형이라고 합니다.

버스 열거에 대한 자세한 내용은 버스에서 디바이스 열거를 참조하세요.

버스 드라이버는 WDFDEVICE_INIT 구조에 정보를 저장하는 프레임워크 디바이스 개체 초기화 메서드 집합을 호출할 수 있습니다. 또한 버스 드라이버는 프레임워크 PDO 초기화 메서드를 호출할 수 있습니다.

열거된 자식 디바이스에 대한 프레임워크 디바이스 개체를 만드는 데는 일반적으로 다음 단계가 포함됩니다.

드라이버가 WdfPdoInitAllocate에서 가져온 WDFDEVICE_INIT 구조를 초기화하는 동안 오류가 발생하면 드라이버는 WdfDeviceCreate 대신 WdfDeviceInitFree를 호출해야 합니다.

버스 드라이버가 디바이스 개체를 만든 후 일반적으로 WdfDeviceSetPnpCapabilitiesWdfDeviceSetPowerCapabilities를 호출하여 디바이스의 플러그 앤 플레이 및 전원 기능을 보고합니다.

각 버스 드라이버는 버스 어댑터의 함수 드라이버이기도 합니다. 따라서 드라이버는 EvtDriverDeviceAdd 콜백 함수도 제공해야 합니다. 이 콜백 함수는 시스템의 각 버스 어댑터에 대한 FDO(기능 디바이스 개체)를 만듭니다. FDO를 만드는 방법에 대한 자세한 내용은 함수 드라이버에서 디바이스 개체 만들기를 참조하세요.