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 원본 드라이버에서 제공하는 초기 구성 정보를 포함합니다.