WBDI 드라이버에 대한 디바이스 인터페이스 만들기

디바이스 콜백 개체가 초기화되어 드라이버에 반환된 후 큐 설정 시 드라이버는 생체 인식 디바이스에 대한 디바이스 인터페이스 instance 만들어야 합니다.

특히 WBDI 드라이버는 IWDFDevice::CreateDeviceInterface를 호출하여 GUID_DEVINTERFACE_BIOMETRIC_READER 디바이스 인터페이스를 노출해야 합니다.

hr = m_FxDevice->CreateDeviceInterface(&GUID_DEVINTERFACE_BIOMETRIC_READER, NULL);

이 호출 다음에 IWDFDevice::AssignDeviceInterfaceState를 호출합니다.

hr = m_FxDevice->AssignDeviceInterfaceState(&GUID_DEVINTERFACE_BIOMETRIC_READER,
 NULL,
 TRUE);

레거시(비 WBDI) 생체 인식 스택에 기능을 노출하려는 WBDI 드라이버는 레거시 애플리케이션에 대한 다른 디바이스 인터페이스를 노출하고 레거시 스택을 설치하는 INX 파일에서 배타적 값이 0으로 설정되어 있는지 확인해야 합니다.

GUID_DEVINTERFACE_BIOMETRIC_READER 디바이스 인터페이스를 노출하면 WBF 서비스가 드라이버만 열거합니다. 배타적 모드가 설정되지 않은 경우 WBF는 디바이스를 열고 제어하려고 시도하지 않습니다.

또는 드라이버가 내부적으로 레거시 모드임을 감지한 다음 GUID_DEVINTERFACE_BIOMETRIC_READER 디바이스 인터페이스를 노출하지 않을 수 있습니다.