VHF_CONFIG 구조체(vhf.h)
가상 HID 디바이스를 만들기 위해 VhfCreate 를 호출할 때 HID 원본 드라이버에서 제공하는 초기 구성 정보를 포함합니다.
구문
typedef struct _VHF_CONFIG {
ULONG Size;
PVOID VhfClientContext;
ULONG OperationContextSize;
#ifdef _KERNEL_MODE
PDEVICE_OBJECT DeviceObject;
#else
HANDLE FileHandle;
#endif
USHORT VendorID;
USHORT ProductID;
USHORT VersionNumber;
GUID ContainerID;
USHORT InstanceIDLength;
_Field_size_bytes_full_(InstanceIDLength)
PWSTR InstanceID;
USHORT ReportDescriptorLength;
_Field_size_full_(ReportDescriptorLength)
PUCHAR ReportDescriptor;
PEVT_VHF_READY_FOR_NEXT_READ_REPORT EvtVhfReadyForNextReadReport;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationGetFeature;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationSetFeature;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationWriteReport;
PEVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperationGetInputReport;
PEVT_VHF_CLEANUP EvtVhfCleanup;
USHORT HardwareIDsLength;
_Field_size_bytes_full_(HardwareIDsLength)
PWSTR HardwareIDs;
} VHF_CONFIG, *PVHF_CONFIG;
멤버
Size
필수 사항입니다. 이 구조체의 크기는 VHF_CONFIG_INIT 의해 초기화됩니다.
VhfClientContext
선택 사항입니다. VHF(Virtual HID Framework)가 해당 콜백 함수를 호출할 때 전달하는 HID 원본 드라이버 할당 메모리에 대한 불투명 포인터입니다.
OperationContextSize
선택 사항입니다. EvtVhfAsyncOperation에서 시작한 비동기 작업에 대해 VHF가 할당해야 하는 버퍼의 크기입니다. 0이 아닌 경우 VHF는 이 크기의 버퍼를 할당하고 새 작업을 시작하기 위해 EvtVhfAsyncOperation을 호출할 때마다 VhfOperationContext 매개 변수의 해당 버퍼에 포인터를 전달합니다.
DeviceObject
커널 모드 드라이버에 필요합니다. HID 원본 드라이버의 DEVICE_OBJECT 구조체에 대한 포인터입니다. WdfDeviceWdmGetDeviceObject를 호출하고 드라이버가 WdfDeviceCreate 호출에서 받은 WDFDEVICE 핸들을 전달하여 해당 포인터를 가져옵니다.
FileHandle
사용자 모드 드라이버에 필요합니다. WdfIoTargetWdmGetTargetFileHandle을 호출하여 가져온 파일 핸들입니다. WDFIOTARGET을 열려면 UMDF(사용자 모드) VHF 원본 드라이버는 OpenParams.Type이 WdfIoTargetOpenLocalTargetByFile로 설정된 WdfIoTargetOpen을 호출해야 합니다.
VendorID
선택 사항입니다. 만들 가상 HID 디바이스의 공급업체 ID입니다.
ProductID
선택 사항입니다. 만들 가상 HID 디바이스의 제품 ID입니다.
VersionNumber
선택 사항입니다. 만들 가상 HID 디바이스의 버전 번호입니다.
ContainerID
선택 사항입니다. 만들 가상 HID 디바이스의 컨테이너 ID입니다.
InstanceIDLength
InstanceID
ReportDescriptorLength
필수 사항입니다. ReportDescriptor가 가리키는 버퍼에 포함된 HID 보고서 설명자의 길이입니다.
ReportDescriptor
필수 사항입니다. HID 보고서 설명자를 포함하는 HID 원본 드라이버 할당 버퍼에 대한 포인터입니다.
EvtVhfReadyForNextReadReport
선택 사항입니다. EvtVhfReadyForNextReadReport 콜백에 대한 포인터입니다. HID 원본 드라이버는 HID 입력 보고서를 제출하기 위한 버퍼링 정책을 처리하려는 경우 이 콜백 함수를 구현하고 등록해야 합니다. 이 콜백을 지정하면 VHF는 해당 보고서를 버퍼링하지 않습니다. HID 원본 드라이버는 VHF가 EvtVhfReadyForNextReadReport를 호출할 때마다 VhfReadReportSubmit를 호출하여 하나의 보고서를 제출해야 합니다.
EvtVhfAsyncOperationGetFeature
선택 사항입니다. EvtVhfAsyncOperation 콜백에 대한 포인터입니다. HID 클래스 드라이버 쌍에서 최상위 컬렉션 과 연결된 HID 기능 보고서를 얻으려면 HID 원본 드라이버가 이 콜백 함수를 구현하고 등록해야 합니다. 드라이버는 보고서 설명자가 선언하는 경우에만 기능 보고서를 가져올 수 있습니다.
EvtVhfAsyncOperationSetFeature
선택 사항입니다. EvtVhfAsyncOperation 콜백에 대한 포인터입니다. HID 소스 드라이버는 최상위 컬렉션 과 연결된 HID 기능 보고서를 HID 클래스 드라이버 쌍으로 보내려면 이 콜백 함수를 구현하고 등록해야 합니다. 드라이버는 보고서 설명자가 선언하는 경우에만 기능 보고서를 설정할 수 있습니다.
EvtVhfAsyncOperationWriteReport
선택 사항입니다. EvtVhfAsyncOperation 콜백에 대한 포인터입니다. HID 소스 드라이버는 HID 출력 보고서를 지원하고 HID 클래스 드라이버 쌍으로 보내려면 이 콜백 함수를 구현하고 등록해야 합니다.
EvtVhfAsyncOperationGetInputReport
선택 사항입니다. EvtVhfAsyncOperation 콜백에 대한 포인터입니다. HID 원본 드라이버는 입력 보고서에 대한 주문형 쿼리를 지원하려는 경우 이 콜백 함수를 구현하고 등록해야 합니다.
EvtVhfCleanup
선택 사항입니다. EvtVhfCleanup 콜백에 대한 포인터입니다. HID 원본 드라이버는 가상 HID 디바이스에 할당된 리소스를 해제하려는 경우 이 콜백 함수를 구현하고 등록할 수 있습니다.
HardwareIDsLength
HardwareIDs
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
지원되는 최소 서버 | 지원되는 버전 없음 |
머리글 | vhf.h |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기