준비 데이터 가져오기
이 문서에서는 사용자 모드 애플리케이션 및 커널 모드 드라이버가 컬렉션의 HID 보고서를 설명하는 불투명 구조인 HID 컬렉션의 준비 데이터를 가져오는 방법을 설명합니다.
사용자 모드 애플리케이션
사용자 모드 애플리케이션은 준비된 데이터가 필요한 HIDClass 지원 루틴을 호출하기 전에 컬렉션의 준비 데이터를 가져와야 합니다. 애플리케이션은 디바이스에 열려 있는 파일이 있는 한 컬렉션의 준비 데이터에 대한 액세스를 유지해야 합니다.
HID 컬렉션에서 파일을 연 후 애플리케이션은 HidD_GetPreparsedData 호출하여 컬렉션의 준비 데이터를 루틴 할당 버퍼에 반환합니다.
애플리케이션이 컬렉션에 더 이상 액세스할 필요가 없는 경우 애플리케이션은 HidD_FreePreparsedData 호출해야 합니다.
커널 모드 드라이버
커널 모드 드라이버가 HID 컬렉션을 연 후 드라이버는 다음과 같은 방법으로 컬렉션의 준비 데이터를 가져옵니다.
컬렉션에서 준비한 데이터의 길이를 가져옵니다.
컬렉션의 준비 데이터를 가져옵니다.
준비된 데이터의 길이를 확인하기 위해 드라이버는 IOCTL_HID_GET_COLLECTION_INFORMATION 요청을 사용합니다. 이 요청은 HID_COLLECTION_INFORMATION 구조를 반환합니다. 이 구조체의 DescriptorSize 멤버는 컬렉션에서 준비한 데이터의 크기(바이트)를 지정합니다. 드라이버는 준비된 데이터를 저장하기 위해 적어도 이 크기의 페이지가 아닌 풀에서 버퍼를 할당해야 합니다.
준비 데이터에 대한 버퍼를 할당한 후 드라이버는 IOCTL_HID_GET_COLLECTION_DESCRIPTOR 요청을 사용하여 준비 데이터를 가져옵니다.
준비 데이터를 가져온 후 드라이버는 **HidP_**Xxx HID 지원 루틴과 함께 사용하여 HID 컬렉션의 기능에 대한 정보를 얻고 HID 보고서에서 제어 데이터를 추출할 수 있습니다.