openharmony 鸿蒙 capi-hid-ddk-api-h

2026-08-25 浏览 (1)

hid_ddk_api.h

Overview

Declares the HID DDK functions for accessing an input device from the host.

File to include: <hid/hid_ddk_api.h>

Library: libhid.z.so

System capability: SystemCapability.Driver.HID.Extension

Since: 11

Related module: HidDdk

Summary

Functions

NameDescription
int32_t OH_Hid_CreateDevice(Hid_Device *hidDevice, Hid_EventProperties *hidEventProperties)Creates a device.
int32_t OH_Hid_EmitEvent(int32_t deviceId, const Hid_EmitItem items[], uint16_t length)Sends an event list to a device.
int32_t OH_Hid_DestroyDevice(int32_t deviceId)Destroys a device.
int32_t OH_Hid_Init(void)Initializes an HID DDK.
int32_t OH_Hid_Release(void)Releases an HID DDK.
int32_t OH_Hid_Open(uint64_t deviceId, uint8_t interfaceIndex, Hid_DeviceHandle **dev)Opens the device specified by deviceId and interfaceIndex.
int32_t OH_Hid_Close(Hid_DeviceHandle **dev)Closes an HID device.
int32_t OH_Hid_Write(Hid_DeviceHandle *dev, uint8_t *data, uint32_t length, uint32_t *bytesWritten)Writes a report to an HID device.
int32_t OH_Hid_ReadTimeout(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, int timeout, uint32_t *bytesRead)Reads a report from the HID device within the specified timeout interval.
int32_t OH_Hid_Read(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, uint32_t *bytesRead)Reads a report from the HID device. The blocking mode (that is, blocking remains active until data can be read) is used by default. You can call OH_Hid_SetNonBlocking to change the mode.
int32_t OH_Hid_SetNonBlocking(Hid_DeviceHandle *dev, int nonBlock)Sets the device read mode to non-blocking mode.
int32_t OH_Hid_GetRawInfo(Hid_DeviceHandle *dev, Hid_RawDevInfo *rawDevInfo)Obtains the original device information.
int32_t OH_Hid_GetRawName(Hid_DeviceHandle *dev, char *data, uint32_t bufSize)Obtains the original device name.
int32_t OH_Hid_GetPhysicalAddress(Hid_DeviceHandle *dev, char *data, uint32_t bufSize)Obtains the physical address of the HID device.
int32_t OH_Hid_GetRawUniqueId(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize)Obtains the original unique identifier of a device.
int32_t OH_Hid_SendReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, const uint8_t *data, uint32_t length)Sends a report to the HID device.
int32_t OH_Hid_GetReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, uint8_t *data, uint32_t bufSize)Obtains a report from the HID device.
int32_t OH_Hid_GetReportDescriptor(Hid_DeviceHandle *dev, uint8_t *buf, uint32_t bufSize, uint32_t *bytesRead)Obtains the report descriptor of the HID device.

Function Description

OH_Hid_CreateDevice()

int32_t OH_Hid_CreateDevice(Hid_Device *hidDevice, Hid_EventProperties *hidEventProperties)

Description

Creates a device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 11

Parameters

NameDescription
Hid_Device *hidDevicePointer to the basic information about the device to create, including the device name, vendor ID, and product ID.
Hid_EventProperties *hidEventPropertiesPointer to the event properties related to the device to create, including the event type, key event properties, absolute coordinate event properties, and relative coordinate event properties.

Returns

TypeDescription
int32_tdeviceID (a non-negative number) if the API call is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_OPERATION: The hid_ddk service connection fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. The input hidDevice is a null pointer.
2. The input hidEventProperties is a null pointer. 3. The length of properties exceeds 7 characters. 4. The length of hidEventTypes exceeds 5 characters.
5. The length of hidKeys exceeds 100 characters. 6. The length of hidAbs exceeds 26 characters. 7. The length of hidRelBits exceeds 13 characters.
8. The length of hidMiscellaneous exceeds 6 characters.
HID_DDK_FAILURE: The number of devices reaches the maximum value 200.

OH_Hid_EmitEvent()

int32_t OH_Hid_EmitEvent(int32_t deviceId, const Hid_EmitItem items[], uint16_t length)

Description

Sends an event list to a device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 11

Parameters

NameDescription
int32_t deviceIdDevice ID.
itemsList of the events to send. The event information includes the event type (Hid_EventType), code (Hid_SynEvent, Hid_KeyCode, HidBtnCode, Hid_AbsAxes, Hid_RelAxes, or Hid_MscEvent), and value (depending on the actual device input).
uint16_t lengthLength of the event list (number of events to be sent at a time).

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The API call is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_OPERATION: The hid_ddk service connection fails or the caller is not the device creator.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. The device ID is less than 0.
2. The length of the input parameter length exceeds 7 characters. 3. The input parameter items is a null pointer.
HID_DDK_NULL_PTR: The input device is a null pointer.

OH_Hid_DestroyDevice()

int32_t OH_Hid_DestroyDevice(int32_t deviceId)

Description

Destroys a device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 11

Parameters

NameDescription
int32_t deviceIdDevice ID.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The API call is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_OPERATION: The hid_ddk service connection fails or the caller is not the device creator.
HID_DDK_FAILURE: The corresponding device does not exist.

OH_Hid_Init()

int32_t OH_Hid_Init(void)

Description

Initializes an HID DDK.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INIT_ERROR: The DDK initialization fails.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.

OH_Hid_Release()

int32_t OH_Hid_Release(void)

Description

Releases an HID DDK.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.

OH_Hid_Open()

int32_t OH_Hid_Open(uint64_t deviceId, uint8_t interfaceIndex, Hid_DeviceHandle **dev)

Description

Opens the device specified by deviceId and interfaceIndex.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
uint64_t deviceIdDevice ID.
uint8_t interfaceIndexInterface index for the API of the HID device.
Hid_DeviceHandle **devDevice operation handle.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: Memory allocation for the device fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_PARAMETER: The dev parameter or *dev is null.
HID_DDK_DEVICE_NOT_FOUND: No device is found based on deviceId and interfaceIndex.

OH_Hid_Close()

int32_t OH_Hid_Close(Hid_DeviceHandle **dev)

Description

Closes an HID device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle **devDevice operation handle.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_PARAMETER: The dev parameter or *dev is null.

OH_Hid_Write()

int32_t OH_Hid_Write(Hid_DeviceHandle *dev, uint8_t *data, uint32_t length, uint32_t *bytesWritten)

Description

Writes a report to an HID device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
uint8_t *dataData to be written.
uint32_t lengthLength of data to be written. The maximum value is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.
uint32_t *bytesWrittenNumber of written bytes.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of length is 0; 4. The value of length exceeds HID_MAX_REPORT_BUFFER_SIZE.
5. bytesWritten is null.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_IO_ERROR: The I/O operation fails.

OH_Hid_ReadTimeout()

int32_t OH_Hid_ReadTimeout(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, int timeout, uint32_t *bytesRead)

Description

Reads a report from the HID device within the specified timeout interval.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
uint8_t *dataBuffer for storing the read data.
uint32_t bufSizeSize of the buffer for storing the read data. The maximum size is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.
int timeoutTimeout interval, in ms. The value -1 indicates block waiting.
uint32_t *bytesReadNumber of bytes to read.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of bufSize is 0. 4. The value of bufSize exceeds HID_MAX_REPORT_BUFFER_SIZE.
5. bytesRead is null.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: The memory data copy fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_TIMEOUT: The read operation times out.

OH_Hid_Read()

int32_t OH_Hid_Read(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, uint32_t *bytesRead)

Description

Reads a report from the HID device. The blocking mode (that is, blocking remains active until data can be read) is used by default. You can call OH_Hid_SetNonBlocking to change the mode.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
uint8_t *dataBuffer for storing the read data.
uint32_t bufSizeSize of the buffer for storing the read data. The maximum size is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.
uint32_t *bytesReadNumber of bytes to read.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of bufSize is 0. 4. The value of bufSize exceeds HID_MAX_REPORT_BUFFER_SIZE.
5. bytesRead is null.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: The memory data copy fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_TIMEOUT: The read operation times out.

OH_Hid_SetNonBlocking()

int32_t OH_Hid_SetNonBlocking(Hid_DeviceHandle *dev, int nonBlock)

Description

Sets the device read mode to non-blocking mode.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
int nonBlockWhether to enable the non-blocking mode for reading data. - 1: The non-blocking mode is enabled. When OH_Hid_Read is called, if the device has readable data, HID_DDK_SUCCESS is returned;
if the device has no readable data, HID_DDK_TIMEOUT is returned. - 0: The non-blocking mode is disabled.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. The value of nonBlock is not 1 or 0.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.

OH_Hid_GetRawInfo()

int32_t OH_Hid_GetRawInfo(Hid_DeviceHandle *dev, Hid_RawDevInfo *rawDevInfo)

Description

Obtains the original device information.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
Hid_RawDevInfo *rawDevInfoOriginal device information, including the vendor ID, product ID, and bus type.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. rawDevInfo is null.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_OPERATION: This operation is not supported.

OH_Hid_GetRawName()

int32_t OH_Hid_GetRawName(Hid_DeviceHandle *dev, char *data, uint32_t bufSize)

Description

Obtains the original device name.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
char *dataBuffer for storing the read data.
uint32_t bufSizeSize of the buffer for storing the read data. The maximum size is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of bufSize is 0. 4. The value of bufSize exceeds HID_MAX_REPORT_BUFFER_SIZE.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: The memory data copy fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_OPERATION: This operation is not supported.

OH_Hid_GetPhysicalAddress()

int32_t OH_Hid_GetPhysicalAddress(Hid_DeviceHandle *dev, char *data, uint32_t bufSize)

Description

Obtains the physical address of the HID device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
char *dataBuffer for storing the read data.
uint32_t bufSizeSize of the buffer for storing the read data. The maximum size is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of bufSize is 0. 4. The value of bufSize exceeds HID_MAX_REPORT_BUFFER_SIZE.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: The memory data copy fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_OPERATION: This operation is not supported.

OH_Hid_GetRawUniqueId()

int32_t OH_Hid_GetRawUniqueId(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize)

Description

Obtains the original unique identifier of a device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
uint8_t *dataBuffer for storing the read data.
uint32_t bufSizeSize of the buffer for storing the read data. The maximum size is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of bufSize is 0. 4. The value of bufSize exceeds HID_MAX_REPORT_BUFFER_SIZE.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: The memory data copy fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_OPERATION: This operation is not supported.

OH_Hid_SendReport()

int32_t OH_Hid_SendReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, const uint8_t *data, uint32_t length)

Description

Sends a report to the HID device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
Hid_ReportType reportTypeReport type.
const uint8_t *dataData to be sent.
uint32_t lengthLength of the data to be sent, in bytes. The maximum value is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of length is 0; 4. The value of length exceeds HID_MAX_REPORT_BUFFER_SIZE.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_OPERATION: This operation is not supported.

OH_Hid_GetReport()

int32_t OH_Hid_GetReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, uint8_t *data, uint32_t bufSize)

Description

Obtains a report from the HID device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
Hid_ReportType reportTypeReport type.
uint8_t *dataBuffer for storing the read data.
uint32_t bufSizeSize of the buffer for storing the read data. The maximum size is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. data is null. 3. The value of bufSize is 0. 4. The value of bufSize exceeds HID_MAX_REPORT_BUFFER_SIZE.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: The memory data copy fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_OPERATION: This operation is not supported.

OH_Hid_GetReportDescriptor()

int32_t OH_Hid_GetReportDescriptor(Hid_DeviceHandle *dev, uint8_t *buf, uint32_t bufSize, uint32_t *bytesRead)

Description

Obtains the report descriptor of the HID device.

Required permissions: ohos.permission.ACCESS_DDK_HID

Since: 18

Parameters

NameDescription
Hid_DeviceHandle *devDevice operation handle.
uint8_t *bufBuffer for storing descriptors.
uint32_t bufSizeSize of the buffer, in bytes. The maximum value is HID_MAX_REPORT_BUFFER_SIZE. Otherwise, the parameter verification fails.
uint32_t *bytesReadNumber of bytes to read.

Returns

TypeDescription
int32_tHID_DDK_SUCCESS: The operation is successful.
HID_DDK_NO_PERM: The permission verification fails.
HID_DDK_INVALID_PARAMETER: The parameter check fails. Possible causes: 1. dev is null.
2. buf is null. 3. The value of bufSize is 0. 4. The value of bufSize exceeds HID_MAX_REPORT_BUFFER_SIZE.
5. bytesRead is null.
HID_DDK_INIT_ERROR: The DDK is not initialized.
HID_DDK_SERVICE_ERROR: Communication with the DDK server fails.
HID_DDK_MEMORY_ERROR: The memory data copy fails.
HID_DDK_IO_ERROR: The I/O operation fails.
HID_DDK_INVALID_OPERATION: This operation is not supported.

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 capi-scsiperipheralddk-scsiperipheral-request

openharmony 鸿蒙 capi-usbddk-usbconfigdescriptor

openharmony 鸿蒙 capi-hidddk

openharmony 鸿蒙 capi-usbddk

openharmony 鸿蒙 capi-hidddk-hid-absaxesarray

openharmony 鸿蒙 capi-scsiperipheralddk-scsiperipheral-response

openharmony 鸿蒙 capi-scsi-peripheral-api-h

openharmony 鸿蒙 capi-hidddk-hid-relaxesarray

openharmony 鸿蒙 js-apis-driver-deviceManager

openharmony 鸿蒙 capi-hidddk-hid-eventtypearray

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/DWddeHu8