2016-07-25 4 views
1

UEFI의 프로토콜에 필터 드라이버를 추가하려고합니다. 즉, 계층에서 프로토콜을 사용하는 모든 사람이 결국 나를 통과하게됩니다.장치 경로에 드라이버 추가 UEFI

필자는 드라이버를 관련 장치 경로에 추가해야한다는 것을 알고 있습니다. 그것보다 더, 그것은 이미 장치에 연결된 핸들과 어떻게 작동합니까? (올바르게 이해했다면 BY_DRIVER | EXCLUSIVE를 사용하여 내 드라이버를 장치에 연결해야하며 내 드라이버를 장치 경로에 연결하고 ConnectController를 드라이버 핸들과 함께 사용하면 UEFI가 자동으로 지원 핸들을 연결해야합니다).

특정 프로토콜에 대해 필터 드라이버 (또는 다른 의미 계층 드라이버)로 작동하는 드라이버를 추가하는 방법을 알고 있다면 좋겠습니까?

어쨌든 실제로은 다른 도움말을 찾지 못했기 때문에 어떤 도움을 주시겠습니까?

답변

0

복잡하지 않습니다. 당신이해야 할 유일한 일은 가로 채기를 원하는 프로토콜을 다시 설치하는 것입니다.

의 예로 들어 EFI_PCI_IO_PROTOCOL을 보자

  1. 모든 PCI 장치가 핸들 데이터베이스에서 처리 수집 : LocateHandleBuffer()
  2. , HandleProtocol() 각 핸들을 원래의 PCI IO 인터페이스를 가져옵니다 당신이 할 수 있습니다로 어딘가에 기록 새로운 프로토콜 인터페이스에서 호출하십시오.
  3. gBS->ReinstallProtocolInterface으로 PCI IO 프로토콜을 다시 설치하십시오. 그러면 장치가 분리되고 이전 프로토콜 인터페이스가 새 프로토콜로 바뀝니다.