Share via


HID(휴먼 인터페이스 디바이스)

HID(휴먼 인터페이스 디바이스) 기술 개요입니다.

HID(휴먼 인터페이스 디바이스)를 개발하려면 다음 헤더가 필요합니다.

프로그래밍 가이드는 HID(휴먼 인터페이스 디바이스)를 참조하세요.

Win32 HID 프로그래밍 API는 Win32 휴먼 인터페이스 디바이스 참조를 참조하세요.

이 섹션에는 인간 인터페이스 디바이스(또는 HID)와 관련된 프로그래밍 인터페이스가 포함되어 있습니다. 일반적으로 이러한 디바이스는 컴퓨터 시스템의 작동을 직접 제어하는 데 사용하는 디바이스입니다.

HIDClass 지원 루틴

사용자 모드 애플리케이션, 커널 모드 드라이버 및 HID 미니드라이버가 HIDClass 디바이스 설정 클래스에서 디바이스를 작동하는 데 사용하는 시스템 제공 루틴이 있습니다.

일반적으로 사용자 모드 애플리케이션은 HidD_Xxx 및 HidP_Xxx 루틴을 사용할 수 있습니다. 그러나 커널 모드 드라이버는 HidP_Xxx 루틴만 호출할 수 있습니다.

HID 미니 드라이버는 HidRegisterMinidriver 루틴만 사용합니다.

Windows 8.1 Microsoft는 HID 디바이스에 액세스하는 Windows 앱을 작성할 수 있는 새로운 Windows.Devices.HumanInterfaceDevice API를 도입했습니다.

헤더는 HID 미니드라이버에서 지원해야 하는 IOCTL을 정의합니다. HID 클래스 드라이버만 이러한 IOCTL을 HID 미니드라이버로 보냅니다. 사용자 모드 애플리케이션 및 기타 커널 모드 드라이버는 HIDClass 지원 루틴 및 HID 클래스 드라이버 IOCTL을 사용하여 HID 컬렉션과만 통신할 수 있습니다.

HID 미니 드라이버 IOCTL

HID 미니드라이버가 IOCTL 집합을 처리해야 합니다. HID 클래스 드라이버만 이러한 IOCTL을 HID 미니드라이버로 보냅니다. 사용자 모드 애플리케이션 및 기타 커널 모드 드라이버는 HIDClass 지원 루틴 및 HID 클래스 드라이버 IOCTL을 사용하여 HID 컬렉션과만 통신할 수 있습니다.

항목 설명
IOCTL_HID_ACTIVATE_DEVICE IOCTL_HID_ACTIVATE_DEVICE 요청은 HIDClass 디바이스를 활성화하여 I/O 작업을 준비합니다.
IOCTL_HID_DEACTIVATE_DEVICE IOCTL_HID_DEACTIVATE_DEVICE 요청은 HIDClass 디바이스를 비활성화하여 작업을 중지하고 모든 미해결 I/O 요청을 종료합니다.
IOCTL_HID_GET_DEVICE_ATTRIBUTES IOCTL_HID_GET_DEVICE_ATTRIBUTES 요청은 HID_DEVICE_ATTRIBUTES 구조에서 HIDClass 디바이스의 특성을 가져옵니다.
IOCTL_HID_GET_DEVICE_DESCRIPTOR IOCTL_HID_GET_DEVICE_DESCRIPTOR 요청은 HIDClass 디바이스의 HID 설명자를 가져옵니다.
IOCTL_HID_GET_REPORT_DESCRIPTOR IOCTL_HID_GET_REPORT_DESCRIPTOR 요청은 HIDClass 디바이스에 대한 보고서 설명자를 가져옵니다.
IOCTL_HID_GET_STRING IOCTL_HID_GET_STRING 요청은 최상위 컬렉션에 대한 제조업체 ID, 제품 ID 또는 일련 번호를 가져옵니다. 검색된 문자열은 사람이 읽을 수 있는 형식의 NULL로 끝나는 와이드 문자열입니다.
IOCTL_HID_READ_REPORT IOCTL_HID_READ_REPORT 요청은 HIDClass 디바이스에서 HID 클래스 드라이버의 버퍼로 입력 보고서를 전송합니다.
IOCTL_HID_WRITE_REPORT IOCTL_HID_WRITE_REPORT 요청은 HIDClass 디바이스에 HID 보고서를 보냅니다.
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR 제어 코드는 HIDClass 디바이스의 물리적 설명자를 가져옵니다.
IOCTL_UMDF_HID_GET_FEATURE IOCTL_UMDF_HID_GET_FEATURE 제어 코드는 HIDClass 디바이스에서 기능 보고서를 가져옵니다.
IOCTL_UMDF_HID_GET_INPUT_REPORT IOCTL_UMDF_HID_GET_INPUT_REPORT 제어 코드는 HIDClass 디바이스에서 입력 보고서를 반환합니다.
IOCTL_UMDF_HID_SET_FEATURE IOCTL_UMDF_HID_GET_FEATURE 제어 코드는 HIDClass 디바이스에 기능 보고서를 보냅니다.
IOCTL_UMDF_HID_SET_OUTPUT_REPORT IOCTL_UMDF_HID_SET_OUTPUT_REPORT 제어 코드는 출력 보고서를 최상위 컬렉션으로 보냅니다.

HID 클래스 드라이버 IOCTL

HID 클래스 드라이버는 최상위 컬렉션을 지원하기 위해 IOCTL을 처리합니다.

사용자 애플리케이션은 HIDD_XXX HIDClass 지원 루틴을 사용하여 HID 클래스 드라이버와 통신할 수 있지만 커널 모드 드라이버는 이 섹션에 설명된 해당 디바이스 제어 요청을 보내야 합니다.

입력 및 출력 매개 변수는 요청별로 다릅니다.

요청이 완료되면 I/O 상태 블록 멤버가 다음과 같이 설정됩니다.

Status 멤버는 처리하는 모든 요청에 대해 HID 클래스 드라이버에 의해 설정됩니다.

각 IOCTL에 대해 설명된 대로 정보 멤버는 클래스 드라이버 또는 하위 수준 드라이버에 의해 설정됩니다. 일반적으로 하위 수준 드라이버가 디바이스 간 또는 디바이스로 데이터를 전송하는 경우 하위 수준 드라이버는 정보를 전송된 바이트 수로 설정합니다. 그러나 HID 클래스 드라이버는 다른 값을 반환할 수 있습니다.

항목 설명
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS 요청은 최상위 컬렉션에 대한 입력 보고서 큐의 크기를 가져옵니다.
IOCTL_GET_PHYSICAL_DESCRIPTOR IOCTL_GET_PHYSICAL_DESCRIPTOR 요청은 최상위 컬렉션의 물리적 설명자를 가져옵니다.
IOCTL_HID_DEVICERESET_NOTIFICATION IOCTL_HID_DEVICERESET_NOTIFICATION 요청은 HID 클라이언트 드라이버에서 HID 클래스 드라이버로 전송되어 디바이스 시작 초기화 이벤트를 기다립니다.
IOCTL_HID_DISABLE_SECURE_READ IOCTL_HID_DISABLE_SECURE_READ 요청은 HID 컬렉션에 대한 IOCTL_HID_ENABLE_SECURE_READ 요청을 취소합니다.
IOCTL_HID_ENABLE_SECURE_READ IOCTL_HID_ENABLE_SECURE_READ 요청은 HID 컬렉션의 열린 파일에 대해 보안 읽기를 사용하도록 설정합니다.
IOCTL_HID_ENABLE_WAKE_ON_SX IOCTL_HID_ENABLE_WAKE_ON_SX 요청은 디바이스가 시스템 절전 모드에서 해제될 수 있도록 요구 사항을 나타내는 데 사용됩니다.
IOCTL_HID_FLUSH_QUEUE IOCTL_HID_FLUSH_QUEUE 요청은 최상위 컬렉션의 입력 보고서 큐에서 분리되지 않은 모든 입력 보고서를 큐에서 제거합니다.
IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL_HID_GET_COLLECTION_DESCRIPTOR 요청은 디바이스 초기화 중에 실제 디바이스의 보고서 설명자에서 추출된 HID 클래스 드라이버가 최상위 컬렉션의 준비 데이터를 가져옵니다.
IOCTL_HID_GET_COLLECTION_INFORMATION IOCTL_HID_GET_COLLECTION_INFORMATION 요청은 최상위 컬렉션의 HID_COLLECTION_INFORMATION 구조를 가져옵니다.
IOCTL_HID_GET_DRIVER_CONFIG IOCTL_HID_GET_DRIVER_CONFIG 요청은 드라이버 구성을 검색합니다.
IOCTL_HID_GET_FEATURE IOCTL_HID_GET_FEATURE 요청은 최상위 컬렉션과 연결된 기능 보고서를 반환합니다.
IOCTL_HID_GET_HARDWARE_ID IOCTL_HID_GET_HARDWARE_ID 요청은 최상위 컬렉션의 플러그 앤 플레이 하드웨어 ID를 가져옵니다.
IOCTL_HID_GET_INDEXED_STRING IOCTL_HID_GET_INDEXED_STRING 요청은 최상위 컬렉션에서 지정된 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_INPUT_REPORT IOCTL_HID_GET_INPUT_REPORT 요청은 최상위 컬렉션에서 입력 보고서를 가져옵니다.
IOCTL_HID_GET_MANUFACTURER_STRING IOCTL_HID_GET_MANUFACTURER_STRING 요청은 디바이스 제조업체를 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR IOCTL_HID_GET_MS_GENRE_DESCRIPTOR 요청은 디바이스에 대한 장르 설명자를 검색하는 데 사용됩니다.
IOCTL_HID_GET_POLL_FREQUENCY_MSEC IOCTL_HID_GET_POLL_FREQUENCY_MSEC 요청은 최상위 컬렉션의 현재 폴링 빈도(밀리초)를 가져옵니다.
IOCTL_HID_GET_PRODUCT_STRING IOCTL_HID_GET_PRODUCT_STRING 요청은 제조업체의 제품을 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다. 검색된 문자열은 사람이 읽을 수 있는 형식의 NULL로 끝나는 와이드 문자열입니다. HIDClass 디바이스에 대한 일반적인 내용은 HID 컬렉션을 참조하세요.
IOCTL_HID_GET_SERIALNUMBER_STRING IOCTL_HID_GET_SERIALNUMBER_STRING 요청은 디바이스의 일련 번호를 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다.
IOCTL_HID_SET_DRIVER_CONFIG IOCTL_HID_SET_DRIVER_CONFIG 요청은 드라이버 구성을 설정합니다.
IOCTL_HID_SET_FEATURE IOCTL_HID_SET_FEATURE 요청은 기능 보고서를 최상위 컬렉션으로 보냅니다. HIDClass 디바이스에 대한 일반적인 내용은 HID 컬렉션을 참조하세요.
IOCTL_HID_SET_OUTPUT_REPORT IOCTL_HID_SET_OUTPUT_REPORT 요청은 출력 보고서를 최상위 컬렉션으로 보냅니다.
IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL_HID_SET_POLL_FREQUENCY_MSEC 요청은 최상위 컬렉션에 대한 폴링 빈도(밀리초)를 설정합니다. 폴링된 디바이스에서 불규칙하고 기회적인 읽기를 수행하는 사용자 모드 애플리케이션 또는 커널 모드 드라이버는 폴링 간격이 0이어야 합니다. 이러한 경우 IOCTL_HID_SET_POLL_FREQUENCY_MSEC 실제로 디바이스의 폴링 빈도를 변경하지 않습니다. 그러나 보고서 데이터를 읽을 때 부실하지 않으면 표시된 컬렉션에 대한 최신 보고서 데이터로 즉시 읽기가 완료됩니다. 보고서 데이터가 부실하면 폴링 간격의 만료를 기다리지 않고 즉시 새로 고쳐지고 새 데이터로 읽기가 완료됩니다. IRP에 제공된 폴링 간격의 값이 0이 아니면 = MIN_POLL_INTERVAL_MSEC 및 <= MAX_POLL_INTERVAL_MSEC.> 여러 최상위 컬렉션이 있는 경우 폴링이 제한될 수 있습니다. HIDClass 디바이스에 대한 일반적인 내용은 HID 컬렉션을 참조하세요.
IOCTL_HID_SET_S0_IDLE_TIMEOUT IOCTL_HID_SET_S0_IDLE_TIMEOUT 요청은 클라이언트가 HID 클래스 드라이버에 클라이언트의 기본 설정 유휴 시간 제한 값을 알리는 데 사용됩니다.
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS 요청은 최상위 컬렉션의 입력 보고서 큐에 대한 버퍼 수를 설정합니다. 각 입력 보고서 큐는 링 버퍼로 구현됩니다. 컬렉션이 드라이버에서 읽을 수 있는 것보다 더 빨리 HID 클래스 드라이버로 데이터를 전송하는 경우 일부 데이터가 손실될 수 있습니다. 이러한 유형의 손실을 방지하기 위해 IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS 요청을 사용하여 입력 보고서 큐에 포함된 버퍼 수를 조정할 수 있습니다. HID 클래스 드라이버에는 최소 두 개의 입력 버퍼가 필요합니다. HID 클래스 드라이버에서 지원하는 최대 입력 버퍼 수는 512개입니다. 기본 입력 버퍼 수는 32개입니다. HIDClass 디바이스에 대한 일반적인 내용은 HID 컬렉션을 참조하세요.

내부 시스템 사용을 위해 예약됨

이 섹션에서는 내부 시스템 사용을 위해 예약된 HIDClass 관련 루틴, 구조체, 열거형 형식 및 데이터 형식을 사전순으로 나열합니다.

  • DeviceObjectState
  • HID_DRIVER_CONFIG
  • HID_INTERFACE_HIDPARSE
  • HID_INTERFACE_NOTIFY_PNP
  • HIDD_CONFIGURATION
  • HidD_GetConfiguration
  • HidD_GetMsGenreDescriptor
  • HidD_SetConfiguration
  • HIDP_COLLECTION_DESC
  • HIDP_DEVICE_DESC
  • HidP_FreeCollectionDescription
  • HIDP_GETCOLDESC_DBG
  • HIDP_KEYBOARD_DIRECTION
  • HIDP_KEYBOARD_MODIFIER_STATE
  • HIDP_REPORT_IDS
  • HidP_SysPowerCaps
  • HidP_SysPowerEvent
  • HidP_TranslateUsageAndPagesToI8042ScanCodes
  • PHID_STATUS_CHANGE
  • PHIDP_INSERT_SCANCODES
  • PHIDP_REPORT_DESCRIPTOR

DeviceObjectState

DeviceObjectState 열거형 형식은 내부 시스템 사용을 위해 예약되어 있습니다.

enum DeviceObjectState {
  DeviceObjectStarted,
  DeviceObjectStopped,
  DeviceObjectRemoved
};

Hidclass.h에 선언된 헤더입니다.

HID_DRIVER_CONFIG

HID_DRIVER_CONFIG 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HID_DRIVER_CONFIG {
  ULONG  Size;
  ULONG  RingBufferSize;
} HID_DRIVER_CONFIG, *PHID_DRIVER_CONFIG;

Hidclass.h에 선언된 헤더입니다.

HID_INTERFACE_HIDPARSE

HID_INTERFACE_HIDPARSE 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HID_INTERFACE_HIDPARSE {
#ifndef __cplusplus
  INTERFACE;
#else
  INTERFACE  i;
#endif
  PHIDP_GETCAPS  HidpGetCaps;
} HID_INTERFACE_HIDPARSE, *PHID_INTERFACE_HIDPARSE;

Hidclass.h에 선언된 헤더입니다.

HID_INTERFACE_NOTIFY_PNP

HID_INTERFACE_NOTIFY_PNP 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HID_INTERFACE_NOTIFY_PNP {
#ifndef __cplusplus
  INTERFACE;
#else
  INTERFACE  i;
#endif
  PHID_STATUS_CHANGE  StatusChangeFn;
  PVOID CallbackContext;
} HID_INTERFACE_NOTIFY_PNP, *PHID_INTERFACE_NOTIFY_PNP;

Hidclass.h에 선언된 헤더입니다.

HIDD_CONFIGURATION

HIDD_CONFIGURATION 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HIDD_CONFIGURATION {
  PVOID  cookie;
  ULONG  size;
  ULONG  RingBufferSize;
} HIDD_CONFIGURATION, *PHIDD_CONFIGURATION;

Hidsdi.h에 선언된 헤더입니다.

HidD_GetConfiguration

HidD_GetConfiguration 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

BOOLEAN __stdcall
HidD_GetConfiguration(
    IN HANDLE  HidDeviceObject,
    OUT PHIDD_CONFIGURATION  Configuration,
    IN ULONG  ConfigurationLength
    );

Hidsdi.h에 선언된 헤더입니다.

HidD_GetMsGenreDescriptor

HidD_GetMsGenreDescriptor 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

BOOLEAN __stdcall
HidD_GetMsGenreDescriptor(
    IN HANDLE  HidDeviceObject,
    OUT PVOID  Buffer,
    IN ULONG  BufferLength
    );

Hidsdi.h에 선언된 헤더입니다.

HidD_SetConfiguration

HidD_SetConfiguration 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

BOOLEAN __stdcall
HidD_SetConfiguration(
    IN HANDLE  HidDeviceObject,
    IN PHIDD_CONFIGURATION  Configuration,
    IN ULONG  ConfigurationLength
    );

Hidsdi.h에 선언된 헤더입니다.

HIDP_COLLECTION_DESC

HIDP_COLLECTION_DESC 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HIDP_COLLECTION_DESC {
  USAGE  UsagePage;
  USAGE  Usage;
  UCHAR  CollectionNumber;
  UCHAR  Reserved [15];
  USHORT  InputLength;
  USHORT  OutputLength;
  USHORT  FeatureLength;
  USHORT  PreparsedDataLength;
  PHIDP_PREPARSED_DATA  PreparsedData;
} HIDP_COLLECTION_DESC, *PHIDP_COLLECTION_DESC;

Hidpddi.h에 선언된 헤더입니다.

HIDP_DEVICE_DESC

HIDP_DEVICE_DESC 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HIDP_DEVICE_DESC {
  PHIDP_COLLECTION_DESC  CollectionDesc;
  ULONG  CollectionDescLength;
  PHIDP_REPORT_IDS  ReportIDs;
  ULONG  ReportIDsLength;
  HIDP_GETCOLDESC_DBG  Dbg;
} HIDP_DEVICE_DESC, *PHIDP_DEVICE_DESC;

Hidpddi.h에 선언된 헤더입니다.

HidP_FreeCollectionDescription

HidP_FreeCollectionDescription 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

VOID
HidP_FreeCollectionDescription(
    IN PHIDP_DEVICE_DESC  DeviceDescription
    );

Hidpddi.h에 선언된 헤더입니다.

HIDP_GETCOLDESC_DBG

HIDP_GETCOLDESC_DBG 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HIDP_GETCOLDESC_DBG {
  ULONG  BreakOffset;
  ULONG  ErrorCode;
  ULONG  Args[6];
} HIDP_GETCOLDESC_DBG, *PHIDP_GETCOLDESC_DBG;

Hidpddi.h에 선언된 헤더입니다.

HIDP_KEYBOARD_DIRECTION

HIDP_KEYBOARD_DIRECTION 열거형 형식은 내부 시스템 사용을 위해 예약되어 있습니다.

typedef enum _HIDP_KEYBOARD_DIRECTION {
 HidP_Keyboard_Break,
 HidP_Keyboard_Make
} HIDP_KEYBOARD_DIRECTION;

Hidpi.h에 선언된 헤더입니다.

HIDP_KEYBOARD_MODIFIER_STATE

HIDP_KEYBOARD_MODIFIER_STATE 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HIDP_KEYBOARD_MODIFIER_STATE {
  union {
    struct {
      ULONG  LeftControl: 1;
      ULONG  LeftShift: 1;
      ULONG  LeftAlt: 1;
      ULONG  LeftGUI: 1;
      ULONG  RightControl: 1;
      ULONG  RightShift: 1;
      ULONG  RightAlt: 1;
      ULONG  RigthGUI: 1;
      ULONG  CapsLock: 1;
      ULONG  ScollLock: 1;
      ULONG  NumLock: 1;
      ULONG  Reserved: 21;
    };
    ULONG ul;
  };
} HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;

Hidpi.h에 선언된 헤더입니다.

HIDP_REPORT_IDS

HIDP_REPORT_IDS 구조체는 내부 시스템 사용을 위해 예약되어 있습니다.

typedef struct _HIDP_REPORT_IDS {
  UCHAR  ReportID;
  UCHAR  CollectionNumber;
  USHORT  InputLength;
  USHORT  OutputLength;
  USHORT  FeatureLength;
} HIDP_REPORT_IDS, *PHIDP_REPORT_IDS;

Hidpddi.h에 선언된 헤더입니다.

HidP_SysPowerCaps

HidP_SysPowerCaps 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

NTSTATUS
HidP_SysPowerCaps(
    IN PHIDP_PREPARSED_DATA  Ppd,
    OUT PULONG  OutputBuffer
    );

Hidpddi.h에 선언된 헤더입니다.

HidP_SysPowerEvent

HidP_SysPowerEvent 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

NTSTATUS
HidP_SysPowerEvent(
    IN PCHAR  HidPacket,
    IN USHORT  HidPacketLength,
    IN PHIDP_PREPARSED_DATA  Ppd,
    OUT PULONG  OutputBuffer
    );

Hidpddi.h에 선언된 헤더입니다.

HidP_TranslateUsageAndPagesToI8042ScanCodes

HidP_TranslateUsageAndPagesToI8042ScanCodes 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

NTSTATUS __stdcall
  HidP_TranslateUsageAndPagesToI8042ScanCodes(
    IN PUSAGE_AND_PAGE  ChangedUsageList,
    IN ULONG  UsageListLength,
    IN HIDP_KEYBOARD_DIRECTION  KeyAction,
    IN OUT PHIDP_KEYBOARD_MODIFIER_STATE  ModifierState,
    IN PHIDP_INSERT_SCANCODES  InsertCodesProcedure,
    IN PVOID  InsertCodesContext
    );

Hidpi.h에 선언된 헤더입니다.

PHID_STATUS_CHANGE

PHID_STATUS_CHANGE 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

typedef VOID (*PHID_STATUS_CHANGE)(
    PVOID  Context,
    enum DeviceObjectState State
    );

Hidclass.h에 선언된 헤더입니다.

PHIDP_INSERT_SCANCODES

PHIDP_INSERT_SCANCODES 루틴은 내부 시스템 사용을 위해 예약되어 있습니다.

typedef BOOLEAN (*PHIDP_INSERT_SCANCODES)(
    IN PVOID  Context,
    IN PCHAR  NewScanCodes,
    IN ULONG  Length
    );

Hidpi.h에 선언된 헤더입니다.

PHIDP_REPORT_DESCRIPTOR

PHIDP_REPORT_DESCRIPTOR 데이터 형식은 내부 시스템 사용을 위해 예약되어 있습니다.

typedef PUCHAR  PHIDP_REPORT_DESCRIPTOR;

Hidpi.h에 선언된 헤더입니다.

콜백 함수

제목 설명
EVT_VHF_ASYNC_OPERATION HID 원본 드라이버는 HID 보고서를 가져와서 설정하는 4가지 비동기 작업 중 하나를 지원하려는 경우 이 이벤트 콜백을 구현합니다.
EVT_VHF_CLEANUP HID 원본 드라이버는 가상 HID 디바이스에 드라이버가 할당될 수 있는 사용 가능한 리소스에 대한 이 이벤트 콜백을 구현합니다.
EVT_VHF_READY_FOR_NEXT_READ_REPORT HID 원본 드라이버는 HID 입력 보고서에 버퍼링 체계를 사용하기 위해 이 이벤트 콜백 함수를 구현하고 다음 보고서를 VHF에 제출할 수 있을 때 알림을 받으려고 합니다.
PHIDP_GETCAPS HidP_GetCaps 루틴은 최상위 컬렉션의 HIDP_CAPS 구조를 반환합니다.
PI8042_ISR_WRITE_PORT PI8042_ISR_WRITE_PORT 형식의 콜백 루틴은 i8042 포트에 데이터를 씁니다. I8042prt는 이 콜백을 제공합니다.
PI8042_KEYBOARD_INITIALIZATION_ROUTINE PI8042_KEYBOARD_INITIALIZATION_ROUTINE 형식의 콜백 루틴은 I8042prt에서 키보드 디바이스의 기본 초기화를 보완합니다.
PI8042_KEYBOARD_ISR PI8042_KEYBOARD_ISR 형식의 콜백 루틴은 I8042prt 키보드 ISR의 작업을 사용자 지정합니다.
PI8042_MOUSE_ISR PI8042_MOUSE_ISR 형식의 콜백 루틴은 I8042prt 마우스 ISR의 작업을 사용자 지정합니다.
PI8042_QUEUE_PACKET PI8042_QUEUE_PACKET 형식의 콜백 루틴은 키보드 또는 마우스 디바이스의 ISR DPC에서 처리하기 위해 입력 데이터 패킷을 큐에 대기합니다. I8042prt는 이 콜백을 제공합니다.
PI8042_SYNCH_READ_PORT PI8042_SYNCH_READ_PORT 형식의 콜백 루틴은 i8042 포트에서 동기화된 읽기를 수행합니다. I8042prt는 이 콜백을 제공합니다.
PI8042_SYNCH_WRITE_PORT PI8042_SYNCH_READ_PORT 형식의 콜백 루틴은 i8042 포트에 동기화된 쓰기를 수행합니다. I8042prt는 이 루틴을 제공합니다.
PSERVICE_CALLBACK_ROUTINE 함수 드라이버는 ISR 디스패치 완료 루틴에서 클래스 서비스 콜백을 호출합니다. 클래스 서비스 콜백은 디바이스의 입력 데이터 버퍼에서 클래스 데이터 큐로 입력 데이터를 전송합니다.

I/O 컨트롤 코드

제목 설명
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS IOCTL IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS 요청은 최상위 컬렉션에 대한 입력 보고서 큐의 크기를 가져옵니다.
IOCTL_GET_PHYSICAL_DESCRIPTOR IOCTL IOCTL_GET_PHYSICAL_DESCRIPTOR 요청은 최상위 컬렉션의 물리적 설명자를 가져옵니다. 미니 드라이버의 경우 이 설명자는 HIDClass 디바이스의 설명자입니다.
IOCTL_HID_ACTIVATE_DEVICE IOCTL IOCTL_HID_ACTIVATE_DEVICE 요청은 HIDClass 디바이스를 활성화하여 I/O 작업을 준비합니다.
IOCTL_HID_DEACTIVATE_DEVICE IOCTL IOCTL_HID_DEACTIVATE_DEVICE 요청은 HIDClass 디바이스를 비활성화하여 작업을 중지하고 미해결 I/O 요청을 모두 종료합니다.
IOCTL_HID_DEVICERESET_NOTIFICATION IOCTL IOCTL_HID_DEVICERESET_NOTIFICATION 요청은 HID 클라이언트 드라이버에서 HID 클래스 드라이버로 전송되어 디바이스 시작 재설정 이벤트를 기다립니다.
IOCTL_HID_DISABLE_SECURE_READ IOCTL IOCTL_HID_DISABLE_SECURE_READ 요청은 HID 컬렉션에 대한 IOCTL_HID_ENABLE_SECURE_READ 요청을 취소합니다.
IOCTL_HID_ENABLE_SECURE_READ IOCTL IOCTL_HID_ENABLE_SECURE_READ 요청은 HID 컬렉션의 열린 파일에 대해 보안 읽기를 사용하도록 설정합니다.
IOCTL_HID_ENABLE_WAKE_ON_SX IOCTL IOCTL_HID_ENABLE_WAKE_ON_SX 요청은 디바이스가 시스템 절전 모드에서 해제될 수 있도록 요구 사항을 나타내는 데 사용됩니다.
IOCTL_HID_FLUSH_QUEUE IOCTL IOCTL_HID_FLUSH_QUEUE 요청은 최상위 컬렉션의 입력 보고서 큐에서 구분되지 않은 모든 입력 보고서를 큐에서 제거합니다.
IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL IOCTL_HID_GET_COLLECTION_DESCRIPTOR 요청은 디바이스 초기화 중에 HID 클래스 드라이버가 물리적 디바이스의 보고서 설명자에서 추출한 최상위 컬렉션의 준비 데이터를 가져옵니다.
IOCTL_HID_GET_COLLECTION_INFORMATION IOCTL IOCTL_HID_GET_COLLECTION_INFORMATION 요청은 최상위 컬렉션의 HID_COLLECTION_INFORMATION 구조를 가져옵니다.
IOCTL_HID_GET_DEVICE_ATTRIBUTES IOCTL IOCTL_HID_GET_DEVICE_ATTRIBUTES 요청은 HID_DEVICE_ATTRIBUTES 구조에서 HIDClass 디바이스의 특성을 가져옵니다.
IOCTL_HID_GET_DEVICE_DESCRIPTOR IOCTL IOCTL_HID_GET_DEVICE_DESCRIPTOR 요청은 HIDClass 디바이스의 HID 설명자를 가져옵니다.
IOCTL_HID_GET_DRIVER_CONFIG IOCTL IOCTL_HID_GET_DRIVER_CONFIG 요청은 드라이버 구성을 검색합니다.
IOCTL_HID_GET_FEATURE IOCTL IOCTL_HID_GET_FEATURE 요청은 최상위 컬렉션과 연결된 기능 보고서를 반환합니다.
IOCTL_HID_GET_HARDWARE_ID IOCTL IOCTL_HID_GET_HARDWARE_ID 요청은 최상위 컬렉션의 플러그 앤 플레이 하드웨어 ID를 가져옵니다.
IOCTL_HID_GET_INDEXED_STRING IOCTL IOCTL_HID_GET_INDEXED_STRING 요청은 최상위 컬렉션에서 지정된 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_INPUT_REPORT IOCTL IOCTL_HID_GET_INPUT_REPORT 요청은 최상위 컬렉션에서 입력 보고서를 가져옵니다.
IOCTL_HID_GET_MANUFACTURER_STRING IOCTL IOCTL_HID_GET_MANUFACTURER_STRING 요청은 디바이스 제조업체를 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR IOCTL IOCTL_HID_GET_MS_GENRE_DESCRIPTOR 요청은 디바이스에 대한 장르 설명자를 검색하는 데 사용됩니다.
IOCTL_HID_GET_POLL_FREQUENCY_MSEC IOCTL IOCTL_HID_GET_POLL_FREQUENCY_MSEC 요청은 최상위 컬렉션의 현재 폴링 빈도(밀리초)를 가져옵니다.
IOCTL_HID_GET_PRODUCT_STRING IOCTL IOCTL_HID_GET_PRODUCT_STRING 요청은 제조업체의 제품을 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다. 검색된 문자열은 사람이 읽을 수 있는 형식의 NULL로 끝나는 와이드 문자열입니다.
IOCTL_HID_GET_REPORT_DESCRIPTOR IOCTL IOCTL_HID_GET_REPORT_DESCRIPTOR 요청은 HIDClass 디바이스에 대한 보고서 설명자를 가져옵니다.
IOCTL_HID_GET_SERIALNUMBER_STRING IOCTL IOCTL_HID_GET_SERIALNUMBER_STRING 요청은 디바이스의 일련 번호를 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_STRING IOCTL IOCTL_HID_GET_STRING 요청은 최상위 컬렉션에 대한 제조업체 ID, 제품 ID 또는 일련 번호를 가져옵니다. 검색된 문자열은 사람이 읽을 수 있는 형식의 NULL로 끝나는 와이드 문자열입니다.
IOCTL_HID_READ_REPORT IOCTL IOCTL_HID_READ_REPORT 요청은 HIDClass 디바이스에서 HID 클래스 드라이버의 버퍼로 입력 보고서를 전송합니다.
IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST IOCTL IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST 제어 코드는 HIDClass가 HIDUSB와 같은 HID 미니 드라이버에 보내는 유휴 알림 요청 IRP의 IOCTL로, 버스 드라이버에 디바이스가 현재 유휴 상태임을 알릴 수 있습니다.
IOCTL_HID_SET_DRIVER_CONFIG IOCTL IOCTL_HID_SET_DRIVER_CONFIG 요청은 드라이버 구성을 설정합니다.
IOCTL_HID_SET_FEATURE IOCTL IOCTL_HID_SET_FEATURE 요청은 기능 보고서를 최상위 컬렉션으로 보냅니다.
IOCTL_HID_SET_OUTPUT_REPORT IOCTL IOCTL_HID_SET_OUTPUT_REPORT 요청은 출력 보고서를 최상위 컬렉션으로 보냅니다.
IOCTL_HID_SET_POLL_FREQUENCY_MSEC IOCTL IOCTL_HID_SET_POLL_FREQUENCY_MSEC 요청은 최상위 컬렉션에 대한 폴링 빈도(밀리초)를 설정합니다.
IOCTL_HID_SET_S0_IDLE_TIMEOUT IOCTL IOCTL_HID_SET_S0_IDLE_TIMEOUT 요청은 클라이언트가 HID 클래스 드라이버에 클라이언트의 기본 설정 유휴 시간 제한 값에 대해 알리는 데 사용됩니다.
IOCTL_HID_WRITE_REPORT IOCTL IOCTL_HID_WRITE_REPORT 요청은 HIDClass 디바이스에 HID 보고서를 보냅니다.
IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER IOCTL IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER 요청은 지원되지 않습니다.
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL IOCTL_INTERNAL_I8042_HOOK_KEYBOARD 요청은 다음을 수행합니다.
IOCTL_INTERNAL_I8042_HOOK_MOUSE IOCTL IOCTL_INTERNAL_I8042_HOOK_MOUSE 요청은 I8042prt 마우스 ISR에 ISR 콜백 루틴을 추가합니다.
IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION IOCTL IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION 요청은 키보드 인터럽트 개체에 대한 포인터를 전달합니다.
IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER IOCTL IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER 요청은 i8042 포트 컨트롤러에 데이터를 기록하여 키보드 디바이스의 작업을 제어합니다.
IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION IOCTL IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION 요청은 마우스 인터럽트 개체에 대한 포인터를 전달합니다.
IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER IOCTL IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER 요청은 i8042 포트 컨트롤러에 데이터를 기록하여 마우스 디바이스의 작업을 제어합니다.
IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL IOCTL_INTERNAL_KEYBOARD_CONNECT 요청은 Kbdclass 서비스를 키보드 디바이스에 연결합니다.
IOCTL_INTERNAL_KEYBOARD_DISCONNECT IOCTL IOCTL_INTERNAL_KEYBOARD_DISCONNECT 요청은 STATUS_NOT_IMPLEMENTED 상태 완료됩니다. 플러그 앤 플레이 키보드는 플러그 앤 플레이 관리자가 추가하거나 제거할 수 있습니다.
IOCTL_INTERNAL_MOUSE_CONNECT IOCTL IOCTL_INTERNAL_MOUSE_CONNECT 요청은 Mouclass 서비스를 마우스 디바이스에 연결합니다.
IOCTL_INTERNAL_MOUSE_DISCONNECT IOCTL IOCTL_INTERNAL_MOUSE_DISCONNECT 요청은 STATUS_NOT_IMPLEMENTED 오류 상태 Moufiltr에 의해 완료됩니다.
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS IOCTL IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS 요청은 최상위 컬렉션의 입력 보고서 큐에 대한 버퍼 수를 설정합니다.
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR IOCTL IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR 제어 코드는 HIDClass 디바이스의 물리적 설명자를 가져옵니다.
IOCTL_UMDF_HID_GET_FEATURE IOCTL IOCTL_UMDF_HID_GET_FEATURE 제어 코드는 HIDClass 디바이스에서 기능 보고서를 가져옵니다.
IOCTL_UMDF_HID_GET_INPUT_REPORT IOCTL IOCTL_UMDF_HID_GET_INPUT_REPORT 제어 코드는 HIDClass 디바이스에서 입력 보고서를 반환합니다.
IOCTL_UMDF_HID_SET_FEATURE IOCTL IOCTL_UMDF_HID_GET_FEATURE 제어 코드는 HIDClass 디바이스에 기능 보고서를 보냅니다.
IOCTL_UMDF_HID_SET_OUTPUT_REPORT IOCTL IOCTL_UMDF_HID_SET_OUTPUT_REPORT 제어 코드는 출력 보고서를 최상위 컬렉션으로 보냅니다.

IOCTLs

 
IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS 요청은 최상위 컬렉션에 대한 입력 보고서 큐의 크기를 가져옵니다.
IOCTL_GET_PHYSICAL_DESCRIPTOR

IOCTL_GET_PHYSICAL_DESCRIPTOR 요청은 최상위 컬렉션의 물리적 설명자를 가져옵니다. 미니 드라이버의 경우 이 설명자는 HIDClass 디바이스의 설명자입니다.
IOCTL_HID_ACTIVATE_DEVICE

IOCTL_HID_ACTIVATE_DEVICE 요청은 HIDClass 디바이스를 활성화하여 I/O 작업을 준비합니다.
IOCTL_HID_DEACTIVATE_DEVICE

IOCTL_HID_DEACTIVATE_DEVICE 요청은 HIDClass 디바이스를 비활성화하여 작업을 중지하고 모든 미해결 I/O 요청을 종료합니다.
IOCTL_HID_DEVICERESET_NOTIFICATION

IOCTL_HID_DEVICERESET_NOTIFICATION 요청은 HID 클라이언트 드라이버에서 HID 클래스 드라이버로 전송되어 디바이스 시작 초기화 이벤트를 기다립니다.
IOCTL_HID_DISABLE_SECURE_READ

IOCTL_HID_DISABLE_SECURE_READ 요청은 HID 컬렉션에 대한 IOCTL_HID_ENABLE_SECURE_READ 요청을 취소합니다.
IOCTL_HID_ENABLE_SECURE_READ

IOCTL_HID_ENABLE_SECURE_READ 요청은 HID 컬렉션의 열린 파일에 대해 보안 읽기를 사용하도록 설정합니다.
IOCTL_HID_ENABLE_WAKE_ON_SX

IOCTL_HID_ENABLE_WAKE_ON_SX 요청은 디바이스가 시스템 절전 모드에서 해제될 수 있도록 요구 사항을 나타내는 데 사용됩니다.
IOCTL_HID_FLUSH_QUEUE

IOCTL_HID_FLUSH_QUEUE 요청은 최상위 컬렉션의 입력 보고서 큐에서 분리되지 않은 모든 입력 보고서를 큐에서 제거합니다.
IOCTL_HID_GET_COLLECTION_DESCRIPTOR

IOCTL_HID_GET_COLLECTION_DESCRIPTOR 요청은 디바이스 초기화 중에 실제 디바이스의 보고서 설명자에서 추출된 HID 클래스 드라이버가 최상위 컬렉션의 준비 데이터를 가져옵니다.
IOCTL_HID_GET_COLLECTION_INFORMATION

IOCTL_HID_GET_COLLECTION_INFORMATION 요청은 최상위 컬렉션의 HID_COLLECTION_INFORMATION 구조를 가져옵니다.
IOCTL_HID_GET_DEVICE_ATTRIBUTES

IOCTL_HID_GET_DEVICE_ATTRIBUTES 요청은 HID_DEVICE_ATTRIBUTES 구조에서 HIDClass 디바이스의 특성을 가져옵니다.
IOCTL_HID_GET_DEVICE_DESCRIPTOR

IOCTL_HID_GET_DEVICE_DESCRIPTOR 요청은 HIDClass 디바이스의 HID 설명자를 가져옵니다.
IOCTL_HID_GET_DRIVER_CONFIG

IOCTL_HID_GET_DRIVER_CONFIG 요청은 드라이버 구성을 검색합니다.
IOCTL_HID_GET_FEATURE

IOCTL_HID_GET_FEATURE 요청은 최상위 컬렉션과 연결된 기능 보고서를 반환합니다.
IOCTL_HID_GET_HARDWARE_ID

IOCTL_HID_GET_HARDWARE_ID 요청은 최상위 컬렉션의 플러그 앤 플레이 하드웨어 ID를 가져옵니다.
IOCTL_HID_GET_INDEXED_STRING

IOCTL_HID_GET_INDEXED_STRING 요청은 최상위 컬렉션에서 지정된 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_INPUT_REPORT

IOCTL_HID_GET_INPUT_REPORT 요청은 최상위 컬렉션에서 입력 보고서를 가져옵니다.
IOCTL_HID_GET_MANUFACTURER_STRING

IOCTL_HID_GET_MANUFACTURER_STRING 요청은 디바이스 제조업체를 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_MS_GENRE_DESCRIPTOR

IOCTL_HID_GET_MS_GENRE_DESCRIPTOR 요청은 디바이스에 대한 장르 설명자를 검색하는 데 사용됩니다.
IOCTL_HID_GET_POLL_FREQUENCY_MSEC

IOCTL_HID_GET_POLL_FREQUENCY_MSEC 요청은 최상위 컬렉션의 현재 폴링 빈도(밀리초)를 가져옵니다.
IOCTL_HID_GET_PRODUCT_STRING

IOCTL_HID_GET_PRODUCT_STRING 요청은 제조업체의 제품을 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다. 검색된 문자열은 사람이 읽을 수 있는 형식의 NULL로 끝나는 와이드 문자열입니다.
IOCTL_HID_GET_REPORT_DESCRIPTOR

IOCTL_HID_GET_REPORT_DESCRIPTOR 요청은 HIDClass 디바이스에 대한 보고서 설명자를 가져옵니다.
IOCTL_HID_GET_SERIALNUMBER_STRING

IOCTL_HID_GET_SERIALNUMBER_STRING 요청은 디바이스의 일련 번호를 식별하는 최상위 컬렉션의 포함된 문자열을 가져옵니다.
IOCTL_HID_GET_STRING

IOCTL_HID_GET_STRING 요청은 최상위 컬렉션에 대한 제조업체 ID, 제품 ID 또는 일련 번호를 가져옵니다. 검색된 문자열은 사람이 읽을 수 있는 형식의 NULL로 끝나는 와이드 문자열입니다.
IOCTL_HID_READ_REPORT

IOCTL_HID_READ_REPORT 요청은 HIDClass 디바이스에서 HID 클래스 드라이버의 버퍼로 입력 보고서를 전송합니다.
IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST

IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST 제어 코드는 HIDClass가 HIDUSB와 같은 HID 미니 드라이버에 보내는 유휴 알림 요청 IRP의 IOCTL로, 버스 드라이버에 디바이스가 현재 유휴 상태임을 알릴 수 있습니다.
IOCTL_HID_SET_DRIVER_CONFIG

IOCTL_HID_SET_DRIVER_CONFIG 요청은 드라이버 구성을 설정합니다.
IOCTL_HID_SET_FEATURE

IOCTL_HID_SET_FEATURE 요청은 기능 보고서를 최상위 컬렉션으로 보냅니다.
IOCTL_HID_SET_OUTPUT_REPORT

IOCTL_HID_SET_OUTPUT_REPORT 요청은 출력 보고서를 최상위 컬렉션으로 보냅니다.
IOCTL_HID_SET_POLL_FREQUENCY_MSEC

IOCTL_HID_SET_POLL_FREQUENCY_MSEC 요청은 최상위 컬렉션에 대한 폴링 빈도(밀리초)를 설정합니다.
IOCTL_HID_SET_S0_IDLE_TIMEOUT

IOCTL_HID_SET_S0_IDLE_TIMEOUT 요청은 클라이언트가 HID 클래스 드라이버에 클라이언트의 기본 설정 유휴 시간 제한 값을 알리는 데 사용됩니다.
IOCTL_HID_WRITE_REPORT

IOCTL_HID_WRITE_REPORT 요청은 HIDClass 디바이스에 HID 보고서를 보냅니다.
IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER

IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER 요청은 지원되지 않습니다.
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD 요청은 다음을 수행합니다. I8042prt 키보드 초기화 루틴에 초기화 콜백 루틴 추가 I8042prt 키보드 ISR에 ISR 콜백 루틴 추가 초기화 및 ISR 콜백은 선택 사항이며 PS/2 스타일 키보드 디바이스에 대한 상위 수준 필터 드라이버에서 제공합니다. I8042prt는 IOCTL_INTERNAL_KEYBOARD_CONNECT 요청을 받은 후 키보드 디바이스 스택의 맨 위에 동기 IOCTL_INTERNAL_I8042_HOOK_KEYBOARD 요청을 보냅니다. Kbfiltr이 후크 키보드 요청을 수신하면 Kbfiltr은 다음 방법으로 요청을 필터링합니다. Kbfiltr에 전달된 상위 수준 정보를 저장합니다. 상위 수준 디바이스 개체의 컨텍스트, 초기화 콜백에 대한 포인터 및 ISR 콜백에 대한 포인터를 포함하는 자체 I8042prt의 컨텍스트 및 Kbfiltr ISR 콜백이 사용할 수 있는 콜백에 대한 포인터를 사용하여 상위 수준 정보 배치 이 요청 및 콜백에 대한 자세한 내용은 다음 topics:I8042prt 콜백 루틴Kbfiltr 콜백 루틴을 참조하세요.
IOCTL_INTERNAL_I8042_HOOK_MOUSE

IOCTL_INTERNAL_I8042_HOOK_MOUSE 요청은 I8042prt 마우스 ISR에 ISR 콜백 루틴을 추가합니다.
IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION

IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION 요청은 키보드 인터럽트 개체에 대한 포인터를 전달합니다.
IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER

IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER 요청은 키보드 디바이스의 작업을 제어하기 위해 i8042 포트 컨트롤러에 데이터를 씁니다.
IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION

IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION 요청은 마우스 인터럽트 개체에 대한 포인터를 전달합니다.
IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER

IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER 요청은 마우스 디바이스의 작업을 제어하기 위해 i8042 포트 컨트롤러에 데이터를 씁니다.
IOCTL_INTERNAL_KEYBOARD_CONNECT

IOCTL_INTERNAL_KEYBOARD_CONNECT 요청은 Kbdclass 서비스를 키보드 디바이스에 연결합니다.
IOCTL_INTERNAL_KEYBOARD_DISCONNECT

IOCTL_INTERNAL_KEYBOARD_DISCONNECT 요청은 STATUS_NOT_IMPLEMENTED 상태 완료됩니다. 플러그 앤 플레이 키보드는 플러그 앤 플레이 관리자가 추가하거나 제거할 수 있습니다.
IOCTL_INTERNAL_MOUSE_CONNECT

IOCTL_INTERNAL_MOUSE_CONNECT 요청은 Mouclass 서비스를 마우스 디바이스에 연결합니다.
IOCTL_INTERNAL_MOUSE_DISCONNECT

IOCTL_INTERNAL_MOUSE_DISCONNECT 요청은 STATUS_NOT_IMPLEMENTED 오류 상태 Moufiltr에 의해 완료됩니다.
IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS

IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS 요청은 최상위 컬렉션의 입력 보고서 큐에 대한 버퍼 수를 설정합니다.
IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR

IOCTL_UMDF_GET_PHYSICAL_DESCRIPTOR 제어 코드는 HIDClass 디바이스의 물리적 설명자를 가져옵니다.
IOCTL_UMDF_HID_GET_FEATURE

IOCTL_UMDF_HID_GET_FEATURE 제어 코드는 HIDClass 디바이스에서 기능 보고서를 가져옵니다.
IOCTL_UMDF_HID_GET_INPUT_REPORT

IOCTL_UMDF_HID_GET_INPUT_REPORT 제어 코드는 HIDClass 디바이스에서 입력 보고서를 반환합니다.
IOCTL_UMDF_HID_SET_FEATURE

IOCTL_UMDF_HID_GET_FEATURE 제어 코드는 HIDClass 디바이스에 기능 보고서를 보냅니다.
IOCTL_UMDF_HID_SET_OUTPUT_REPORT

IOCTL_UMDF_HID_SET_OUTPUT_REPORT 제어 코드는 출력 보고서를 최상위 컬렉션으로 보냅니다.

열거형

 
HIDP_REPORT_TYPE

HIDP_REPORT_TYPE 열거형 형식은 HID 보고서 형식을 지정하는 데 사용됩니다.
KEYBOARD_SCAN_STATE

KEYBOARD_SCAN_STATE 열거형 유형은 키보드에서 입력 바이트의 스캔 상태를 나타냅니다.
MOUSE_STATE

MOUSE_STATE 열거형 형식은 마우스에서 입력의 현재 상태를 식별합니다.

Functions

 
EVT_HIDSPICX_NOTIFY_POWERDOWN

자세한 정보: EVT_HIDSPICX_NOTIFY_POWERDOWN
EVT_HIDSPICX_RESETDEVICE

자세한 정보: EVT_HIDSPICX_RESETDEVICE
EVT_VHF_ASYNC_OPERATION

HID 원본 드라이버는 HID 보고서를 가져와서 설정하는 4가지 비동기 작업 중 하나를 지원하려는 경우 이 이벤트 콜백을 구현합니다.
EVT_VHF_CLEANUP

HID 원본 드라이버는 가상 HID 디바이스에 드라이버가 할당될 수 있는 사용 가능한 리소스에 대한 이 이벤트 콜백을 구현합니다.
EVT_VHF_READY_FOR_NEXT_READ_REPORT

HID 원본 드라이버는 HID 입력 보고서에 버퍼링 체계를 사용하기 위해 이 이벤트 콜백 함수를 구현하고 다음 보고서를 VHF에 제출할 수 있을 때 알림을 받으려고 합니다.
HidD_FlushQueue

HidD_FlushQueue 루틴은 최상위 컬렉션의 입력 큐에서 보류 중인 모든 입력 보고서를 삭제합니다.
HidD_FreePreparsedData

HidD_FreePreparsedData 루틴은 HID 클래스 드라이버가 최상위 컬렉션의 준비 데이터를 보유하기 위해 할당한 리소스를 해제합니다.
HidD_GetAttributes

HidD_GetAttributes 루틴은 지정된 최상위 컬렉션의 특성을 반환합니다.
HidD_GetFeature

HidD_GetFeature 루틴은 지정된 최상위 컬렉션에서 기능 보고서를 반환합니다.
HidD_GetHidGuid

HidD_GetHidGuid 루틴은 HIDClass 디바이스에 대한 디바이스 인터페이스GUID를 반환합니다.
HidD_GetIndexedString

HidD_GetIndexedString 루틴은 최상위 컬렉션에서 지정된 포함된 문자열을 반환합니다.
HidD_GetInputReport

HidD_GetInputReport 루틴은 최상위 컬렉션의 입력 보고서를 반환합니다.
HidD_GetManufacturerString

HidD_GetManufacturerString 루틴은 제조업체를 식별하는 최상위 컬렉션의 포함된 문자열을 반환합니다.
HidD_GetNumInputBuffers

HidD_GetNumInputBuffers 루틴은 HID 클래스 드라이버가 지정된 최상위 컬렉션의 입력 보고서를 큐에 대기시키는 데 사용하는 링 버퍼의 현재 크기(보고서 수)를 반환합니다.
HidD_GetPhysicalDescriptor

HidD_GetPhysicalDescriptor 루틴은 컬렉션의 물리적 디바이스를 식별하는 최상위 컬렉션의 포함된 문자열을 반환합니다.
HidD_GetPreparsedData

HidD_GetPreparsedData 루틴은 최상위 컬렉션의 준비 데이터를 반환합니다.
HidD_GetProductString

HidD_GetProductString 루틴은 제조업체의 제품을 식별하는 최상위 컬렉션의 포함된 문자열을 반환합니다.
HidD_GetSerialNumberString

HidD_GetSerialNumberString 루틴은 컬렉션의 물리적 디바이스의 일련 번호를 식별하는 최상위 컬렉션의 포함된 문자열을 반환합니다.
HidD_SetFeature

HidD_SetFeature 루틴은 기능 보고서를 최상위 컬렉션으로 보냅니다.
HidD_SetNumInputBuffers

HidD_SetNumInputBuffers 루틴은 HID 클래스 드라이버 링 버퍼가 지정된 최상위 컬렉션에 대해 보유할 수 있는 최대 입력 보고서 수를 설정합니다.
HidD_SetOutputReport

HidD_SetOutputReport 루틴은 출력 보고서를 최상위 컬렉션으로 보냅니다.
HidP_GetButtonArray

HidP_GetButtonArray 지정된 보고서에 대한 HIDP_BUTTON_ARRAY_DATA 구조의 배열을 반환합니다.
HidP_GetButtonCaps

HidP_GetButtonCaps 루틴은 지정된 유형의 HID 보고서에 대한 최상위 컬렉션의 모든 HID 컨트롤 단추를 설명하는 단추 기능 배열을 반환합니다.
HidP_GetButtons

HidP_GetButtons 매크로는 HHidP_GetUsages 함수의 니모닉 별칭입니다.
HidP_GetButtonsEx

HidP_GetButtonsEx 매크로는 HidP_GetUsagesEx 함수의 니모닉 별칭입니다.
HidP_GetCaps

HidP_GetCaps 루틴은 최상위 컬렉션의 HIDP_CAPS 구조를 반환합니다. 이 루틴은 hidpi.h에 있습니다.
HidP_GetCollectionDescription

지정된 보고서 설명자에 대한 컬렉션 설명 및 해당 보고서 ID 정보로 디바이스 설명 블록을 채웁니다.
HidP_GetData

HidP_GetData 루틴은 지정된 보고서에 대해 현재 ON(1)으로 설정된 모든 HID 컨트롤 단추의 데이터 인덱스를 식별하는 HIDP_DATA 구조의 배열과 모든 HID 컨트롤 값과 연결된 데이터 인덱스 및 데이터를 반환합니다.
HidP_GetExtendedAttributes

HidP_GetExtendedAttributes 루틴은 HID 컨트롤의 확장 특성을 반환합니다.
HidP_GetLinkCollectionNodes

HidP_GetLinkCollectionNodes 루틴은 최상위 컬렉션의 링크 컬렉션 배열을 반환합니다.
HidP_GetScaledUsageValue

HidP_GetScaledUsageValue 루틴은 HID 보고서에서 추출된 HID 컨트롤 값의 서명되고 크기가 조정된 결과를 반환합니다.
HidP_GetSpecificButtonCaps

HidP_GetSpecificButtonCaps 루틴은 지정된 선택 조건을 충족하는 최상위 컬렉션의 모든 HID 컨트롤 단추를 설명하는 단추 기능 배열을 반환합니다.
HidP_GetSpecificValueCaps

HidP_GetSpecificValueCaps 루틴은 지정된 선택 조건을 충족하는 모든 HID 컨트롤 값을 설명하는 값 기능 배열을 반환합니다.
HidP_GetUsages

HidP_GetUsages 루틴은 지정된 사용량 페이지에 있고 HID 보고서에서 ON으로 설정된 모든 HID 컨트롤 단추 사용량 목록을 반환합니다.
HidP_GetUsagesEx

HidP_GetUsagesEx 루틴은 HID 보고서에서 ON으로 설정된 모든 HID 컨트롤 단추 사용량 목록을 반환합니다.
HidP_GetUsageValue

HidP_GetUsageValue 루틴은 HID 보고서의 선택 조건과 일치하는 HID 컨트롤 값과 연결된 데이터를 추출합니다.
HidP_GetUsageValueArray

HidP_GetUsageValueArray 루틴은 HID 보고서에서 HID 컨트롤 사용량 값 배열과 연결된 데이터를 추출합니다.
HidP_GetValueCaps

HidP_GetValueCaps 루틴은 지정된 유형의 HID 보고서에 대한 최상위 컬렉션의 모든 HID 컨트롤 값을 설명하는 값 기능 배열을 반환합니다.
HidP_GetVersion

HidP_GetVersion 함수는 HID API 버전을 반환하는 헤더 전용 구현입니다.
HidP_InitializeReportForID

HidP_InitializeReportForID 루틴은 HID 보고서를 초기화합니다.
HidP_MaxDataListLength

HidP_MaxDataListLength 루틴은 지정된 유형의 HID 보고서 및 지정된 최상위 컬렉션에 대해 HidP_GetData 반환할 수 있는 최대 HIDP_DATA 구조체 수를 반환합니다.
HidP_MaxUsageListLength

HidP_MaxUsageListLength 루틴은 지정된 유형의 HID 보고서 및 지정된 최상위 컬렉션에 대해 HidP_GetUsages 반환할 수 있는 최대 HID 사용량을 반환합니다.
HidP_SetButtonArray

HidP_SetButtonArray 함수는 HIDP_BUTTON_ARRAY_DATA 구조체 배열을 통해 단추의 상태를 설정합니다.
HidP_SetButtons

HidP_SetButtons 매크로는 HidP_SetUsages 함수의 니모닉 별칭입니다.
HidP_SetData

HidP_SetData 루틴은 HID 보고서에서 지정된 HID 컨트롤 단추 집합과 값 사용량을 설정합니다.
HidP_SetScaledUsageValue

HidP_SetScaledUsageValue 루틴은 부호 있고 크기가 조정된 물리적 숫자를 HID 사용량의 논리적 값으로 변환하고 지정된 HID 보고서의 사용량 값을 설정합니다.
HidP_SetUsages

HidP_SetUsages 루틴은 HID 보고서에서 지정된 HID 컨트롤 단추 ON(1)을 설정합니다.
HidP_SetUsageValue

HidP_SetUsageValue 루틴은 지정된 HID 보고서에서 HID 컨트롤 값을 설정합니다.
HidP_SetUsageValueArray

HidP_SetUsageValueArray 루틴은 지정된 HID 보고서에서 HID 컨트롤 사용량 값 배열을 설정합니다.
HidP_TranslateUsagesToI8042ScanCodes

HidP_TranslateUsagesToI8042ScanCodes 루틴은 HID_USAGE_PAGE_KEYBOARD 사용 페이지의 HID 사용량 목록을 해당 PS/2 검사 코드(코드 집합 1 스캔)에 매핑합니다.
HidP_UnsetButtons

HidP_UnsetButtons 매크로는 HidP_UnsetUsages 함수의 니모닉 별칭입니다.
HidP_UnsetUsages

HidP_UnsetUsages 루틴은 HID 보고서에서 지정된 HID 컨트롤 단추 사용량 OFF(0)를 설정합니다.
HidP_UsageAndPageListDifference

HidP_UsageAndPageListDifference 함수는 두 가지 사용 목록 간의 차이를 반환합니다.
HidP_UsageListDifference

HidP_UsageListDifference 루틴은 두 HID 사용 배열 간의 차이점을 반환합니다.
HidRegisterMinidriver

HidRegisterMinidriver 루틴은 HID 클래스 드라이버에 등록하기 위해 초기화 중에 HID 미니드라이버에 의해 호출됩니다.
HIDSPICX_DEVICE_CONFIG_INIT

자세한 정보: HIDSPICX_DEVICE_CONFIG_INIT
HidSpiCxDeviceConfigure

자세한 정보: HidSpiCxDeviceConfigure
HidSpiCxDeviceInitConfig

자세한 정보: HidSpiCxDeviceInitConfig
HidSpiCxNotifyDeviceReset

자세한 정보: HidSpiCxNotifyDeviceReset
PHIDP_GETCAPS

HidP_GetCaps 루틴은 최상위 컬렉션의 HIDP_CAPS 구조를 반환합니다. 이 루틴은 hidclass.h에 있습니다.
PI8042_ISR_WRITE_PORT

PI8042_ISR_WRITE_PORT 형식의 콜백 루틴은 i8042 포트에 데이터를 씁니다. I8042prt는 이 콜백을 제공합니다.
PI8042_KEYBOARD_INITIALIZATION_ROUTINE

PI8042_KEYBOARD_INITIALIZATION_ROUTINE 형식의 콜백 루틴은 I8042prt에서 키보드 디바이스의 기본 초기화를 보완합니다.
PI8042_KEYBOARD_ISR

PI8042_KEYBOARD_ISR 형식의 콜백 루틴은 I8042prt 키보드 ISR의 작업을 사용자 지정합니다.
PI8042_MOUSE_ISR

PI8042_MOUSE_ISR 형식의 콜백 루틴은 I8042prt 마우스 ISR의 작업을 사용자 지정합니다.
PI8042_QUEUE_PACKET

PI8042_QUEUE_PACKET 형식의 콜백 루틴은 키보드 또는 마우스 디바이스의 ISR DPC에서 처리하기 위해 입력 데이터 패킷을 큐에 대기합니다. I8042prt는 이 콜백을 제공합니다.
PI8042_SYNCH_READ_PORT

PI8042_SYNCH_READ_PORT 형식의 콜백 루틴은 i8042 포트에서 동기화된 읽기를 수행합니다. I8042prt는 이 콜백을 제공합니다.
PI8042_SYNCH_WRITE_PORT

PI8042_SYNCH_READ_PORT 형식의 콜백 루틴은 i8042 포트에 동기화된 쓰기를 수행합니다. I8042prt는 이 루틴을 제공합니다.
PSERVICE_CALLBACK_ROUTINE

함수 드라이버는 ISR 디스패치 완료 루틴에서 클래스 서비스 콜백을 호출합니다. 클래스 서비스 콜백은 디바이스의 입력 데이터 버퍼에서 클래스 데이터 큐로 입력 데이터를 전송합니다.
VHF_CONFIG_INIT

VHF_CONFIG_INIT 함수를 사용하여 HID 원본 드라이버에서 할당한 VHF_CONFIG 구조체의 필요한 멤버를 초기화합니다.
VhfAsyncOperationComplete

HID 원본 드라이버는 이 메서드를 호출하여 비동기 작업의 결과를 설정합니다.
VhfCreate

HID 원본 드라이버는 이 메서드를 호출하여 가상 HID 디바이스를 만듭니다.
VhfDelete

HID 원본 디바이스 드라이버는 이 메서드를 호출하여 VHF 디바이스를 삭제합니다.
VhfReadReportSubmit

HID 소스 드라이버는 이 메서드를 호출하여 HID 읽기(입력) 보고서를 VHF(Virtual HID Framework)에 제출합니다.
VhfStart

HID 원본 드라이버는 이 메서드를 호출하여 가상 HID 디바이스를 시작합니다.

구조체

 
CONNECT_DATA

CONNECT_DATA Kbdclass 및 Mouclass가 키보드 또는 마우스 포트에 연결하는 데 사용하는 정보를 지정합니다.
HID_COLLECTION_INFORMATION

HID_COLLECTION_INFORMATION 구조체에는 최상위 컬렉션에 대한 일반 정보가 포함되어 있습니다.
HID_DESCRIPTOR

HID_DESCRIPTOR 구조체는 HIDClass 디바이스에 대한 HID 설명자를 나타냅니다.
HID_DEVICE_ATTRIBUTES

HID_DEVICE_ATTRIBUTES 구조에는 HIDClass 디바이스에 대한 정보가 포함됩니다.
HID_DEVICE_EXTENSION

HID_DEVICE_EXTENSION 구조체는 HIDClass 디바이스의 기능 디바이스 개체의 디바이스 확장에 대한 레이아웃으로 HID 미니드라이버에서 사용됩니다.
HID_MINIDRIVER_REGISTRATION

HID_MINIDRIVER_REGISTRATION 구조에는 미니드라이버가 클래스 드라이버에 등록할 때 HID 미니드라이버가 HID 클라이언트 드라이버에 전달하는 등록 정보가 포함됩니다.
HID_XFER_PACKET

hidclass.he의 HID_XFER_PACKET 구조체에는 HID 클래스 드라이버가 I/O 요청과 함께 사용하여 보고서를 얻거나 설정하는 HID 보고서에 대한 정보가 포함되어 있습니다.
HID_XFER_PACKET

vhf.h의 HID_XFER_PACKET 구조에는 HID 클래스 드라이버가 I/O 요청과 함께 사용하여 보고서를 얻거나 설정하는 HID 보고서에 대한 정보가 포함되어 있습니다.
HIDD_ATTRIBUTES

HIDD_ATTRIBUTES 구조에는 HIDClass 디바이스에 대한 공급업체 정보가 포함됩니다.
HIDP_BUTTON_ARRAY_DATA

HIDP_BUTTON_ARRAY_DATA 구조는 단추 배열에서 단일 단추에 대한 데이터를 얻거나 설정하는 데 사용됩니다.
HIDP_BUTTON_CAPS

HIDP_BUTTON_CAPS 구조에는 HID 컨트롤 단추 사용의 기능(또는 사용 범위와 연결된 단추 집합)에 대한 정보가 포함되어 있습니다.
HIDP_CAPS

HIDP_CAPS 구조에는 최상위 컬렉션의 기능에 대한 정보가 포함되어 있습니다.
HIDP_COLLECTION_DESC

최상위 컬렉션의 정보를 포함합니다. 이 구조체는 HidP_GetCollectionDescription 호출에 사용됩니다.
HIDP_DATA

HIDP_DATA 구조에는 HID 보고서의 HID 컨트롤 데이터 인덱스 및 값에 대한 정보가 포함됩니다.
HIDP_DEVICE_DESC

컬렉션 설명에 연결된 목록으로 채워진 디바이스 설명 블록을 포함합니다. 이 구조체는 HidP_GetCollectionDescription 사용됩니다.
HIDP_EXTENDED_ATTRIBUTES

HIDP_EXTENDED_ATTRIBUTES 구조체에는 HID 파서가 인식하지 못하는 HID 컨트롤에 대해 지정된 전역 항목에 대한 정보가 포함됩니다.
HIDP_GETCOLDESC_DBG

보고서 설명자를 구문 분석하는 데 실패했음을 나타내는 오류 코드가 포함되어 있습니다. 이 구조체는 HidP_GetCollectionDescription 호출에 사용됩니다.
HIDP_LINK_COLLECTION_NODE

HIDP_LINK_COLLECTION_NODE 구조에는 최상위 컬렉션의 링크 컬렉션 배열에 있는 링크 컬렉션에 대한 정보가 포함됩니다.
HIDP_REPORT_IDS

최상위 컬렉션에 대한 보고서 ID 정보를 포함합니다.
HIDP_UNKNOWN_TOKEN

HIDP_UNKNOWN_TOKEN 구조에는 HID 파서가 인식하지 못한 전역 항목에 대한 정보가 포함됩니다.
HIDP_VALUE_CAPS

HIDP_VALUE_CAPS 구조에는 HID 컨트롤 값 집합의 기능(단일 사용량 또는 사용 범위)을 설명하는 정보가 포함되어 있습니다.
HIDSPICX_DEVICE_CONFIG

자세한 정보: HIDSPICX_DEVICE_CONFIG
HIDSPICX_DRIVER_GLOBALS

자세한 정보: HIDSPICX_DRIVER_GLOBALS
HIDSPICX_REPORT

자세한 정보: HIDSPICX_REPORT
INTERNAL_I8042_HOOK_KEYBOARD

INTERNAL_I8042_HOOK_KEYBOARD I8042prt에서 키보드 초기화 및 키보드 ISR을 보완하는 선택적 콜백 루틴을 연결하는 데 사용됩니다. 콜백은 공급업체에서 제공하는 선택적 상위 수준 필터 드라이버에서 제공할 수 있습니다.
INTERNAL_I8042_HOOK_MOUSE

INTERNAL_I8042_HOOK_MOUSE 마우스 ISR의 작업을 보완하는 선택적 콜백 루틴을 연결하기 위해 I8042prt에서 사용됩니다. 콜백은 공급업체에서 제공하는 선택적 상위 수준 필터 드라이버에서 제공할 수 있습니다.
INTERNAL_I8042_START_INFORMATION

INTERNAL_I8042_START_INFORMATION 공급업체에서 제공하는 선택적 상위 수준 필터 디바이스 드라이버가 I8042prt ISR과 작업을 동기화하는 데 사용할 수 있는 인터럽트 개체를 지정합니다.
OUTPUT_PACKET

OUTPUT_PACKET I8042prt에서 키보드 또는 마우스 디바이스에 기록되는 데이터에 대한 정보를 포함합니다.
USAGE_AND_PAGE

USAGE_AND_PAGE 구조체는 HID 컨트롤의 사용 페이지 및 사용 ID를 지정합니다.
VHF_CONFIG

가상 HID 디바이스를 만들기 위해 VhfCreate를 호출할 때 HID 원본 드라이버에서 제공하는 초기 구성 정보를 포함합니다.