리소스 요구 사항 목록 수정
PnP 관리자가 새로 연결된 모든 디바이스의 드라이버가 로드되었는지 확인하면 디바이스의 하드웨어 요구 사항 목록을 디바이스의 드라이버 스택으로 보냅니다.
목록이 스택 아래로 이동함에 따라 프레임워크는 각 함수를 호출하고 드라이버의 EvtDeviceFilterRemoveResourceRequirements 콜백 함수를 호출하여 하드웨어 요구 사항 목록을 입력 인수로 전달합니다. 이 콜백 함수는 버스 드라이버가 지정했지만 함수 드라이버가 디바이스 작동에 필요하지 않다고 판단한 하드웨어 요구 사항 목록에서 하드웨어 리소스를 제거할 수 있습니다.
예를 들어 PCI 버스 드라이버는 PCI 사양에 따라 메모리 공간에 I/O 공간 리소스를 복제할 수 있습니다. I/O 공간 리소스를 사용하지 않고 디바이스가 작동할 수 있는 경우 디바이스의 함수 드라이버는 하드웨어 요구 사항 목록에서 I/O 공간 리소스를 제거할 수 있습니다.
요구 사항 목록에서 항목을 제거하려면 드라이버는 다음을 수행할 수 있습니다.
- 리소스 요구 사항 목록에서 논리 구성을 수정하려면 다음 메서드를 호출합니다.
- WdfIoResourceRequirementsListGetCount- 논리 구성 수를 가져옵니다.
- 논리 구성에 대한 액세스 권한을 얻으려면 WdfIoResourceRequirementsListGetIoResList입니다.
- 논리 구성을 제거하려면 WdfIoResourceRequirementsListRemove 및 WdfIoResourceRequirementsListRemoveByIoResList를 사용합니다.
- 다음 메서드를 호출하여 논리 구성 내에서 리소스 설명자를 수정합니다.
- WdfIoResourceListGetCount- 리소스 설명자 수를 가져옵니다.
- WdfIoResourceListGetDescriptor- 리소스 설명자에 대한 액세스 권한을 얻습니다.
- WdfIoResourceListRemove 및 WdfIoResourceListRemoveByDescriptor- 리소스 설명자를 제거합니다.
목록이 드라이버 스택을 백업할 때 프레임워크는 각 함수를 호출하고 드라이버의 EvtDeviceFilterAddResourceRequirements 콜백 함수를 호출하여 하드웨어 요구 사항 목록을 입력 인수로 전달합니다. 이 콜백 함수는 함수 드라이버가 디바이스를 작동시키는 데 필요한 추가 하드웨어 리소스를 추가할 수 있습니다.
하드웨어 요구 사항 목록에 항목을 추가하려면 드라이버에서 다음을 수행할 수 있습니다.
- 리소스 요구 사항 목록에서 논리 구성을 수정하려면 다음 메서드를 호출합니다.
- WdfIoResourceRequirementsListGetCount- 논리 구성 수를 가져옵니다.
- 논리 구성에 대한 액세스 권한을 얻으려면 WdfIoResourceRequirementsListGetIoResList입니다.
- WdfIoResourceListCreate- 새 논리 구성을 만듭니다.
- WdfIoResourceRequirementsListAppendIoResList 또는 WdfIoResourceRequirementsListInsertIoResList를 사용하여 새 논리 구성을 추가합니다.
- 다음 메서드를 호출하여 논리 구성 내에서 리소스 설명자를 수정합니다.
- WdfIoResourceListGetCount- 리소스 설명자 수를 가져옵니다.
- WdfIoResourceListGetDescriptor- 리소스 설명자에 대한 액세스 권한을 얻습니다.
- WdfIoResourceListAppendDescriptor 또는 WdfIoResourceListInsertDescriptor를 사용하여 리소스 설명자를 추가합니다.