diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/Readme-CN.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/Readme-CN.md index 81b9ba0672c25d701a351b3b4785f0d193ca16b9..7e83a9819a1f07c89bf95c98208929576edc64b6 100644 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/Readme-CN.md @@ -10,55 +10,58 @@ - [DriverExtensionContext](js-apis-inner-application-driverExtensionContext.md) - C API - 模块 - - [BASE DDK](_base_ddk.md) - - [HID DDK](_hid_ddk.md) - - [SCSI Peripheral DDK](_s_c_s_i.md) - - [Serial DDK](_serial_ddk.md) - - [USB DDK](_usb_ddk.md) + - [BaseDdk](capi-baseddk.md) + - [HidDdk](capi-hidddk.md) + - [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + - [UsbDDK](capi-usbddk.md) + - [SerialDdk](capi-serialddk.md) - 头文件 - - [ddk_api.h](ddk_api.md) - - [ddk_types.h](ddk_types.md) - - [hid_ddk_api.h](hid__ddk__api_8h.md) - - [hid_ddk_types.h](hid__ddk__types_8h.md) - - [scsi_peripheral_api.h](scsi__peripheral__api_8h.md) - - [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - [usb_ddk_api.h](usb__ddk__api_8h.md) - - [usb_ddk_types.h](usb__ddk__types_8h.md) - - [usb_serial_api.h](usb__serial__ddk__api_8h.md) - - [usb_serial_types.h](usb__serial__ddk__types_8h.md) + - [ddk_api.h](capi-ddk-api-h.md) + - [ddk_types.h](capi-ddk-types-h.md) + - [hid_ddk_api.h](capi-hid-ddk-api-h.md) + - [hid_ddk_types.h](capi-hid-ddk-types-h.md) + - [scsi_peripheral_api.h](capi-scsi-peripheral-api-h.md) + - [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + - [usb_ddk_api.h](capi-usb-ddk-api-h.md) + - [usb_ddk_types.h](capi-usb-ddk-types-h.md) + - [usb_serial_api.h](capi-usb-serial-api-h.md) + - [usb_serial_types.h](capi-usb-serial-types-h.md) - 结构体 - - [DDK_Ashmem](_ddk_ashmem.md) - - [Hid_AbsAxesArray](_hid___abs_axes_array.md) - - [Hid_Device](_hid___device.md) - - [Hid_EmitItem](_hid___emit_item.md) - - [Hid_EventProperties](_hid___event_properties.md) - - [Hid_EventTypeArray](_hid___event_type_array.md) - - [Hid_KeyCodeArray](_hid___key_code_array.md) - - [Hid_MscEventArray](_hid___msc_event_array.md) - - [Hid_RawDevInfo](_hid___raw_dev_info.md) - - [Hid_RelAxesArray](_hid___rel_axes_array.md) - - [ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md) - - [ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md) - - [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) - - [ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md) - - [ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md) - - [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) - - [ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md) - - [ScsiPeripheral_Request](_scsi_peripheral___request.md) - - [ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md) - - [ScsiPeripheral_Response](_scsi_peripheral___response.md) - - [ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md) - - [ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md) - - [UsbConfigDescriptor](_usb_config_descriptor.md) - - [UsbControlRequestSetup](_usb_control_request_setup.md) - - [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) - - [UsbDdkEndpointDescriptor](_usb_ddk_endpoint_descriptor.md) - - [UsbDdkInterface](_usb_ddk_interface.md) - - [UsbDdkInterfaceDescriptor](_usb_ddk_interface_descriptor.md) - - [UsbDeviceDescriptor](_usb_device_descriptor.md) - - [UsbDeviceMemMap](_usb_device_mem_map.md) - - [UsbEndpointDescriptor](_usb_endpoint_descriptor.md) - - [UsbInterfaceDescriptor](_usb_interface_descriptor.md) - - [UsbRequestPipe](_usb_request_pipe.md) - - [Usb_DeviceArray](_usb_device_array.md) - - [UsbSerial_Params](_usb_serial___params.md) + - [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) + - [Hid_EmitItem](capi-hidddk-hid-emititem.md) + - [Hid_Device](capi-hidddk-hid-device.md) + - [Hid_EventTypeArray](capi-hidddk-hid-eventtypearray.md) + - [Hid_KeyCodeArray](capi-hidddk-hid-keycodearray.md) + - [Hid_AbsAxesArray](capi-hidddk-hid-absaxesarray.md) + - [Hid_RelAxesArray](capi-hidddk-hid-relaxesarray.md) + - [Hid_MscEventArray](capi-hidddk-hid-msceventarray.md) + - [Hid_EventProperties](capi-hidddk-hid-eventproperties.md) + - [Hid_RawDevInfo](capi-hidddk-hid-rawdevinfo.md) + - [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) + - [ScsiPeripheral_DeviceMemMap](capi-scsiperipheralddk-scsiperipheral-devicememmap.md) + - [ScsiPeripheral_IORequest](capi-scsiperipheralddk-scsiperipheral-iorequest.md) + - [ScsiPeripheral_Request](capi-scsiperipheralddk-scsiperipheral-request.md) + - [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) + - [ScsiPeripheral_TestUnitReadyRequest](capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md) + - [ScsiPeripheral_InquiryRequest](capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md) + - [ScsiPeripheral_InquiryInfo](capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md) + - [ScsiPeripheral_ReadCapacityRequest](capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md) + - [ScsiPeripheral_CapacityInfo](capi-scsiperipheralddk-scsiperipheral-capacityinfo.md) + - [ScsiPeripheral_RequestSenseRequest](capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md) + - [ScsiPeripheral_BasicSenseInfo](capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md) + - [ScsiPeripheral_VerifyRequest](capi-scsiperipheralddk-scsiperipheral-verifyrequest.md) + - [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) + - [UsbControlRequestSetup](capi-usbddk-usbcontrolrequestsetup.md) + - [UsbDeviceDescriptor](capi-usbddk-usbdevicedescriptor.md) + - [UsbConfigDescriptor](capi-usbddk-usbconfigdescriptor.md) + - [UsbInterfaceDescriptor](capi-usbddk-usbinterfacedescriptor.md) + - [UsbEndpointDescriptor](capi-usbddk-usbendpointdescriptor.md) + - [UsbDdkEndpointDescriptor](capi-usbddk-usbddkendpointdescriptor.md) + - [UsbDdkInterfaceDescriptor](capi-usbddk-usbddkinterfacedescriptor.md) + - [UsbDdkInterface](capi-usbddk-usbddkinterface.md) + - [UsbDdkConfigDescriptor](capi-usbddk-usbddkconfigdescriptor.md) + - [UsbRequestPipe](capi-usbddk-usbrequestpipe.md) + - [UsbDeviceMemMap](capi-usbddk-usbdevicememmap.md) + - [Usb_DeviceArray](capi-usbddk-usb-devicearray.md) + - [UsbSerial_Params](capi-serialddk-usbserial-params.md) + - [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_base_ddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_base_ddk.md deleted file mode 100644 index 8a2bb6b03881d0a487cbd4ef266e7399b83d8f08..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_base_ddk.md +++ /dev/null @@ -1,171 +0,0 @@ -# Base DDK - - -## 概述 - -提供基础API,包括创建共享内存、共享内存映射、取消共享内存映射、销毁共享内存。 - -**系统能力:** SystemCapability.Driver.DDK.Extension - -**起始版本:** - -12 - -## 汇总 - - -### 文件 - -| 名称 | 描述 | -| -------- | -------- | -| [ddk_api.h](ddk_api.md) | 声明主机侧访问输入设备的HID DDK接口。
引用文件:<base/ddk_api.h>
库: libddk_base.z.so | -| [ddk_types.h](ddk_types.md) | 提供HID DDK中的枚举变量与结构体定义。
引用文件:<base/ddk_types.h>
库: libddk_base.z.so | - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| [DDK_Ashmem](_ddk_ashmem.md) | 共享内存。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [DDK_RetCode](#ddk_retcode) | Base DDK 错误码定义。 | - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| [OH_DDK_CreateAshmem](#oh_ddk_createashmem) (const uint8_t *name, [DDK_Ashmem](_ddk_ashmem.md) \*\*ashmem) | 创建共享内存。 | -| [OH_DDK_MapAshmem](#oh_ddk_mapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem, const uint8_t ashmemMapType) | 共享内存映射。 | -| [OH_DDK_UnmapAshmem](#oh_ddk_unmapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 取消共享内存映射。 | -| [OH_DDK_DestroyAshmem](#oh_ddk_destroyashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 销毁共享内存。 | - - -## 枚举类型说明 - - -### DDK_RetCode - - -``` -enum DDK_RetCode -``` - -**描述:** - -Base DDK 错误码定义。 - -| 枚举值 | 描述 | -| -------- | -------- | -| DDK_SUCCESS | 操作成功。 | -| DDK_FAILED | 操作失败。 | -| DDK_INVALID_PARAMETER | 非法参数。 | -| DDK_INVALID_OPERATION | 非法操作。 | -| DDK_NULL_PTR | 空指针异常。 | - - -## 函数说明 - - -### OH_DDK_CreateAshmem() - - -``` -DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem); -``` - -**描述:** - -创建共享内存。 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| name | 指向要创建的共享内存的指针。 | -| size | 共享内存对应的缓冲区大小。 | -| ashmem | 指向创建的共享内存的指针。 | - -**返回:** - -- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 -- [DDK_INVALID_PARAMETER](#ddk_retcode) 表示入参name为空指针,size的大小为0或者入参ashmem为空指针。 -- [DDK_FAILURE](#ddk_retcode) 表示创建共享内存失败或者创建结构体DDK_Ashmem失败。 - - -### OH_DDK_MapAshmem() - - -``` -DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType); -``` - -**描述:** - -映射共享内存。 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| ashmem | 要映射的共享内存指针。 | -| ashmemMapType | 共享内存的保护权限值。 | - -**返回:** - -- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 -- [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 -- [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。 -- [DDK_INVALID_OPERATION](#ddk_retcode) 表示调用接口MapAshmem失败。 - - -### OH_DDK_UnmapAshmem() - - -``` -DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem); -``` - -**描述:** - -取消共享内存的映射。 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| ashmem | 要取消映射的共享内存指针。 | - -**返回:** - -- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 -- [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 -- [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。 - -### OH_DDK_DestroyAshmem() - - -``` -DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem); -``` - -**描述:** - -销毁创建的共享内存。 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| ashmem | 要销毁的共享内存指针。 | - -**返回:** - -- [DK_SUCCESS](#ddk_retcode) 表示调用接口成功。 -- [DDK_NULL_PTR](#ddk_retcode) 表示入参ashmem为空指针。 -- [DDK_FAILURE](#ddk_retcode) 表示共享内存的文件描述符无效。 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_ddk_ashmem.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_ddk_ashmem.md deleted file mode 100644 index 4b8cf310853a19232c3525be1f855a69c6d5eb3f..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_ddk_ashmem.md +++ /dev/null @@ -1,105 +0,0 @@ -# DDK_Ashmem - - -## 概述 - -共享内存结构体。 - -**起始版本:** - -12 - -**相关模块:** - -[Base DDK](_base_ddk.md) - -**所在头文件:** [ddk_types.h](ddk_types.md) - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [ashmemFd](#ashmemfd) | 共享内存的文件描述符。 | -| [address](#address) | 共享内存映射地址。 | -| [size](#size) | 数组长度。 | -| [offset](#offset) | 偏移量。 | -| [bufferLength](#bufferlength) | 实际使用的数组长度。 | -| [transferredLength](#transferredlength) | 传输数据的长度。 | - - -## 结构体成员变量说明 - - -### ashmemFd - - -~~~ -int32_t ashmemFd -~~~ - -**描述:** - -共享内存的文件描述符。 - - -### address - - -~~~ -const uint8_t * address -~~~ - -**描述:** - -共享内存映射地址。 - - -### size - - -~~~ -const uint32_t size -~~~ - -**描述:** - -数组长度。 - - -### offset - - -~~~ -uint32_t offset -~~~ - -**描述:** - -偏移量。 - - -### bufferLength - - -~~~ -uint32_t bufferLength -~~~ - -**描述:** - -实际使用的数组长度。 - - -### transferredLength - - -~~~ -uint32_t transferredLength -~~~ - -**描述:** - -传输数据的长度。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___abs_axes_array.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___abs_axes_array.md deleted file mode 100644 index d1161cf42b3fb5cef0ef694094990f560f68aa36..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___abs_axes_array.md +++ /dev/null @@ -1,23 +0,0 @@ -# Hid_AbsAxesArray - - -## 概述 - -绝对坐标属性数组。 - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [Hid_AbsAxes](_hid_ddk.md#hid_absaxes) \* [hidAbsAxes](_hid_ddk.md#hidabsaxes) | 绝对坐标属性编码 | -| uint16_t [length](_hid_ddk.md#length-35) | 数组长度 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___device.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___device.md deleted file mode 100644 index 7b280fe7ecc71c93e22a1f174a73866e21213e1f..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___device.md +++ /dev/null @@ -1,28 +0,0 @@ -# Hid_Device - - -## 概述 - -设备基本信息。 - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| const char \* [deviceName](_hid_ddk.md#devicename) | 设备名称 | -| uint16_t [vendorId](_hid_ddk.md#vendorid) | 厂商ID | -| uint16_t [productId](_hid_ddk.md#productid) | 产品ID | -| uint16_t [version](_hid_ddk.md#version) | 版本号 | -| uint16_t [bustype](_hid_ddk.md#bustype) | 总线类型 | -| [Hid_DeviceProp](_hid_ddk.md#hid_deviceprop) \* [properties](_hid_ddk.md#properties) | 设备特性 | -| uint16_t [propLength](_hid_ddk.md#proplength) | 设备特性数量 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___emit_item.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___emit_item.md deleted file mode 100644 index 126b2be0eca3d556617c3185609ae6f37dc90334..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___emit_item.md +++ /dev/null @@ -1,24 +0,0 @@ -# Hid_EmitItem - - -## 概述 - -事件信息。 - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint16_t [type](_hid_ddk.md#type) | 事件类型 | -| uint16_t [code](_hid_ddk.md#code) | 事件编码 | -| uint32_t [value](_hid_ddk.md#value) | 事件值 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___event_properties.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___event_properties.md deleted file mode 100644 index f77ae496080f37bf9c00b6a7f7463dcfb809acab..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___event_properties.md +++ /dev/null @@ -1,145 +0,0 @@ -# Hid_EventProperties - - -## 概述 - -设备关注事件属性。 - -**起始版本:** - -11 - -**相关模块:** - -[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [hidEventTypes](#hideventtypes) | 事件类型属性编码数组 | -| [hidKeys](#hidkeys) | 键值属性编码数组 | -| [hidAbs](#hidabs) | 绝对坐标属性数组 | -| [hidRelBits](#hidrelbits) | 相对坐标属性数组 | -| [hidMiscellaneous](#hidmiscellaneous) | 其它特殊事件属性编码数组 | -| [hidAbsMax](#hidabsmax) | 绝对坐标属性最大值 | -| [hidAbsMin](#hidabsmin) | 绝对坐标属性最小值 | -| [hidAbsFuzz](#hidabsfuzz) | 绝对坐标属性模糊值 | -| [hidAbsFlat](#hidabsflat) | 绝对坐标属性固定值 | - - -## 结构体成员变量说明 - - -### hidEventTypes - - -``` -struct Hid_EventTypeArray Hid_EventProperties::hidEventTypes -``` - -**描述:** - -事件类型属性编码数组 - - -### hidKeys - - -``` -struct Hid_KeyCodeArray Hid_EventProperties::hidKeys -``` - -**描述:** - -键值属性编码数组 - - -### hidAbs - - -``` -struct Hid_AbsAxesArray Hid_EventProperties::hidAbs -``` - -**描述:** - -绝对坐标属性数组 - - -### hidRelBits - - -``` -struct Hid_RelAxesArray Hid_EventProperties::hidRelBits -``` - -**描述:** - -相对坐标属性数组 - - -### hidMiscellaneous - - -``` -struct Hid_MscEventArray Hid_EventProperties::hidMiscellaneous -``` - -**描述:** - -其它特殊事件属性编码数组 - - -### hidAbsMax - - -``` -int32_t Hid_EventProperties::hidAbsMax[64] -``` - -**描述:** - -绝对坐标属性最大值 - - -### hidAbsMin - - -``` -int32_t Hid_EventProperties::hidAbsMin[64] -``` - -**描述:** - -绝对坐标属性最小值 - - -### hidAbsFuzz - - -``` -int32_t Hid_EventProperties::hidAbsFuzz[64] -``` - -**描述:** - -绝对坐标属性模糊值 - - -### hidAbsFlat - - -``` -int32_t Hid_EventProperties::hidAbsFlat[64] -``` - -**描述:** - -绝对坐标属性固定值 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___event_type_array.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___event_type_array.md deleted file mode 100644 index bc5ea01547441356159b954fb58e8ac87f9d114f..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___event_type_array.md +++ /dev/null @@ -1,23 +0,0 @@ -# Hid_EventTypeArray - - -## 概述 - -事件类型编码数组。 - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [Hid_EventType](_hid_ddk.md#hid_eventtype) \* [hidEventType](_hid_ddk.md#hideventtype) | 事件类型编码 | -| uint16_t [length](_hid_ddk.md#length-15) | 数组长度 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___key_code_array.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___key_code_array.md deleted file mode 100644 index b12b3e2aedbf3d361042a4939f4b6557f153dd10..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___key_code_array.md +++ /dev/null @@ -1,23 +0,0 @@ -# Hid_KeyCodeArray - - -## 概述 - -键值属性数组。 - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [Hid_KeyCode](_hid_ddk.md#hid_keycode) \* [hidKeyCode](_hid_ddk.md#hidkeycode) | 键值编码 | -| uint16_t [length](_hid_ddk.md#length-25) | 数组长度 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___msc_event_array.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___msc_event_array.md deleted file mode 100644 index db8e9e199e7a22b7bb4f44149f0627f0ad7b2aec..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___msc_event_array.md +++ /dev/null @@ -1,23 +0,0 @@ -# Hid_MscEventArray - - -## 概述 - -其它特殊事件属性数组。 - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [Hid_MscEvent](_hid_ddk.md#hid_mscevent) \* [hidMscEvent](_hid_ddk.md#hidmscevent) | 其它特殊事件属性编码 | -| uint16_t [length](_hid_ddk.md#length-55) | 数组长度 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___raw_dev_info.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___raw_dev_info.md deleted file mode 100644 index 8e156503659305284bdd9ca9e89ff78693d3cdad..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___raw_dev_info.md +++ /dev/null @@ -1,24 +0,0 @@ -# Hid_RawDevInfo - - -## 概述 - -原始设备信息定义。 - -**起始版本:** 18 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint32_t [busType](_hid_ddk.md#bustype) | 总线类型 | -| uint16_t [vendor](_hid_ddk.md#vendor) | 供应商ID | -| uint16_t [product](_hid_ddk.md#product) | 产品ID | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___rel_axes_array.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___rel_axes_array.md deleted file mode 100644 index 93923ca5e3581269c6b774c3321c1bddb5a363dc..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid___rel_axes_array.md +++ /dev/null @@ -1,23 +0,0 @@ -# Hid_RelAxesArray - - -## 概述 - -相对坐标属性数组。 - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - -**所在头文件:** [hid_ddk_types.h](hid__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [Hid_RelAxes](_hid_ddk.md#hid_relaxes) \* [hidRelAxes](_hid_ddk.md#hidrelaxes) | 相对坐标属性编码 | -| uint16_t [length](_hid_ddk.md#length-45) | 数组长度 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid_ddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid_ddk.md deleted file mode 100644 index d08b53d1758a8413ded3ae222141df777315c69f..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_hid_ddk.md +++ /dev/null @@ -1,1676 +0,0 @@ -# HID DDK - - -## 概述 - -提供HID DDK接口,包括创建设备、发送事件、销毁设备。 - -**系统能力:** SystemCapability.Driver.HID.Extension - -**起始版本:** 11 - - -## 汇总 - - -### 文件 - -| 名称 | 描述 | -| -------- | -------- | -| [hid_ddk_api.h](hid__ddk__api_8h.md) | 声明主机侧访问输入设备的HID DDK接口。
引用文件:<hid/hid_ddk_api.h>
库: libhid.z.so | -| [hid_ddk_types.h](hid__ddk__types_8h.md) | 提供HID DDK中的枚举变量与结构体定义。
引用文件:<hid/hid_ddk_types.h>
库: libhid.z.so | - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| struct  [Hid_EmitItem](_hid___emit_item.md) | 事件信息。 | -| struct  [Hid_Device](_hid___device.md) | 设备基本信息。 | -| struct  [Hid_EventTypeArray](_hid___event_type_array.md) | 事件类型编码数组。 | -| struct  [Hid_KeyCodeArray](_hid___key_code_array.md) | 键值属性数组。 | -| struct  [Hid_AbsAxesArray](_hid___abs_axes_array.md) | 绝对坐标属性数组。 | -| struct  [Hid_RelAxesArray](_hid___rel_axes_array.md) | 相对坐标属性数组。 | -| struct  [Hid_MscEventArray](_hid___msc_event_array.md) | 其它特殊事件属性数组。 | -| struct  [Hid_EventProperties](_hid___event_properties.md) | 设备关注事件属性。 | -| struct  [Hid_RawDevInfo](_hid___raw_dev_info.md) | 原始设备信息定义。 | - - -### 宏定义 - -| 名称 | 描述 | -| -------- | -------- | -| [HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)   (16 \* 1024 - 1) | 最大报告缓冲区大小。 | - - -### 类型定义 - -| 名称 | 描述 | -| -------- | -------- | -| typedef struct [Hid_EmitItem](_hid___emit_item.md) [Hid_EmitItem](#hid_emititem) | 事件信息。 | -| typedef struct [Hid_Device](_hid___device.md) [Hid_Device](#hid_device) | 设备基本信息。 | -| typedef struct [Hid_EventTypeArray](_hid___event_type_array.md) [Hid_EventTypeArray](#hid_eventtypearray) | 事件类型编码数组。 | -| typedef struct [Hid_KeyCodeArray](_hid___key_code_array.md) [Hid_KeyCodeArray](#hid_keycodearray) | 键值属性数组。 | -| typedef struct [Hid_AbsAxesArray](_hid___abs_axes_array.md) [Hid_AbsAxesArray](#hid_absaxesarray) | 绝对坐标属性数组。 | -| typedef struct [Hid_RelAxesArray](_hid___rel_axes_array.md) [Hid_RelAxesArray](#hid_relaxesarray) | 相对坐标属性数组。 | -| typedef struct [Hid_MscEventArray](_hid___msc_event_array.md) [Hid_MscEventArray](#hid_msceventarray) | 其它特殊事件属性数组。 | -| typedef struct [Hid_EventProperties](_hid___event_properties.md) [Hid_EventProperties](#hid_eventproperties) | 设备关注事件属性。 | -| typedef struct [Hid_DeviceHandle](#hid_devicehandle) [Hid_DeviceHandle](#hid_devicehandle) | 不透明的USB HID设备结构。 | -| typedef struct [Hid_RawDevInfo](_hid___raw_dev_info.md) [Hid_RawDevInfo](#hid_rawdevinfo) | 原始设备信息定义。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [Hid_DeviceProp](#hid_deviceprop) {
HID_PROP_POINTER = 0x00, HID_PROP_DIRECT = 0x01, HID_PROP_BUTTON_PAD = 0x02, HID_PROP_SEMI_MT = 0x03, HID_PROP_TOP_BUTTON_PAD = 0x04, HID_PROP_POINTING_STICK = 0x05, HID_PROP_ACCELEROMETER = 0x06
} | 输入设备特性定义。 | -| [Hid_EventType](#hid_eventtype) {
HID_EV_SYN = 0x00, HID_EV_KEY = 0x01, HID_EV_REL = 0x02, HID_EV_ABS = 0x03, HID_EV_MSC = 0x04
} | 事件类型。 | -| [Hid_SynEvent](#hid_synevent) { HID_SYN_REPORT = 0, HID_SYN_CONFIG = 1, HID_SYN_MT_REPORT = 2, HID_SYN_DROPPED = 3 } | 同步事件编码。 | -| [Hid_KeyCode](#hid_keycode) {
HID_KEY_A = 30, HID_KEY_B = 48, HID_KEY_C = 46, HID_KEY_D = 32, HID_KEY_E = 18, HID_KEY_F = 33, HID_KEY_G = 34, HID_KEY_H = 35, HID_KEY_I = 23, HID_KEY_J = 36, HID_KEY_K = 37, HID_KEY_L = 38, HID_KEY_M = 50, HID_KEY_N = 49, HID_KEY_O = 24, HID_KEY_P = 25, HID_KEY_Q = 16, HID_KEY_R = 19, HID_KEY_S = 31, HID_KEY_T = 20, HID_KEY_U = 22, HID_KEY_V = 47, HID_KEY_W = 17, HID_KEY_X = 45, HID_KEY_Y = 21, HID_KEY_Z = 44, HID_KEY_ESC = 1, HID_KEY_0 = 11, HID_KEY_1 = 2, HID_KEY_2 = 3, HID_KEY_3 = 4, HID_KEY_4 = 5, HID_KEY_5 = 6, HID_KEY_6 = 7, HID_KEY_7 = 8, HID_KEY_8 = 9, HID_KEY_9 = 10, HID_KEY_GRAVE = 41, HID_KEY_MINUS = 12, HID_KEY_EQUALS = 13, HID_KEY_BACKSPACE = 14, HID_KEY_LEFT_BRACKET = 26, HID_KEY_RIGHT_BRACKET = 27, HID_KEY_ENTER = 28, HID_KEY_LEFT_SHIFT = 42, HID_KEY_BACKSLASH = 43, HID_KEY_SEMICOLON = 39, HID_KEY_APOSTROPHE = 40, HID_KEY_SPACE = 57, HID_KEY_SLASH = 53, HID_KEY_COMMA = 51, HID_KEY_PERIOD = 52, HID_KEY_RIGHT_SHIFT = 54, HID_KEY_NUMPAD_0 = 82, HID_KEY_NUMPAD_1 = 79, HID_KEY_NUMPAD_2 = 80, HID_KEY_NUMPAD_3 = 81, HID_KEY_NUMPAD_4 = 75, HID_KEY_NUMPAD_5 = 76, HID_KEY_NUMPAD_6 = 77, HID_KEY_NUMPAD_7 = 71, HID_KEY_NUMPAD_8 = 72, HID_KEY_NUMPAD_9 = 73, HID_KEY_NUMPAD_DIVIDE = 70, HID_KEY_NUMPAD_MULTIPLY = 55, HID_KEY_NUMPAD_SUBTRACT = 74, HID_KEY_NUMPAD_ADD = 78, HID_KEY_NUMPAD_DOT = 83, HID_KEY_SYSRQ = 99, HID_KEY_DELETE = 111, HID_KEY_MUTE = 113, HID_KEY_VOLUME_DOWN = 114, HID_KEY_VOLUME_UP = 115, HID_KEY_BRIGHTNESS_DOWN = 224, HID_KEY_BRIGHTNESS_UP = 225, HID_BTN_0 = 0x100, HID_BTN_1 = 0x101, HID_BTN_2 = 0x102, HID_BTN_3 = 0x103, HID_BTN_4 = 0x104, HID_BTN_5 = 0x105, HID_BTN_6 = 0x106, HID_BTN_7 = 0x107, HID_BTN_8 = 0x108, HID_BTN_9 = 0x109, HID_BTN_LEFT = 0x110, HID_BTN_RIGHT = 0x111, HID_BTN_MIDDLE = 0x112, HID_BTN_SIDE = 0x113, HID_BTN_EXTRA = 0x114, HID_BTN_FORWARD = 0x115, HID_BTN_BACKWARD = 0x116, HID_BTN_TASK = 0x117, HID_BTN_TOOL_PEN = 0x140, HID_BTN_TOOL_RUBBER = 0x141, HID_BTN_TOOL_BRUSH = 0x142, HID_BTN_TOOL_PENCIL = 0x143, HID_BTN_TOOL_AIRBRUSH = 0x144, HID_BTN_TOOL_FINGER = 0x145, HID_BTN_TOOL_MOUSE = 0x146, HID_BTN_TOOL_LENS = 0x147, HID_BTN_TOOL_QUINT_TAP = 0x148, HID_BTN_STYLUS3 = 0x149, HID_BTN_TOUCH = 0x14a, HID_BTN_STYLUS = 0x14b, HID_BTN_STYLUS2 = 0x14c, HID_BTN_TOOL_DOUBLE_TAP = 0x14d, HID_BTN_TOOL_TRIPLE_TAP = 0x14e, HID_BTN_TOOL_QUAD_TAP = 0x14f, HID_BTN_WHEEL = 0x150
} | 键值编码。 | -| [Hid_AbsAxes](#hid_absaxes) {
HID_ABS_X = 0x00, HID_ABS_Y = 0x01, HID_ABS_Z = 0x02, HID_ABS_RX = 0x03, HID_ABS_RY = 0x04, HID_ABS_RZ = 0x05, HID_ABS_THROTTLE = 0x06, HID_ABS_RUDDER = 0x07, HID_ABS_WHEEL = 0x08, HID_ABS_GAS = 0x09, HID_ABS_BRAKE = 0x0a, HID_ABS_HAT0X = 0x10, HID_ABS_HAT0Y = 0x11, HID_ABS_HAT1X = 0x12, HID_ABS_HAT1Y = 0x13, HID_ABS_HAT2X = 0x14, HID_ABS_HAT2Y = 0x15, HID_ABS_HAT3X = 0x16, HID_ABS_HAT3Y = 0x17, HID_ABS_PRESSURE = 0x18, HID_ABS_DISTANCE = 0x19, HID_ABS_TILT_X = 0x1a, HID_ABS_TILT_Y = 0x1b, HID_ABS_TOOL_WIDTH = 0x1c, HID_ABS_VOLUME = 0x20, HID_ABS_MISC = 0x28
} | 绝对坐标编码。 | -| [Hid_RelAxes](#hid_relaxes) {
HID_REL_X = 0x00, HID_REL_Y = 0x01, HID_REL_Z = 0x02, HID_REL_RX = 0x03, HID_REL_RY = 0x04, HID_REL_RZ = 0x05, HID_REL_HWHEEL = 0x06, HID_REL_DIAL = 0x07, HID_REL_WHEEL = 0x08, HID_REL_MISC = 0x09, HID_REL_RESERVED = 0x0a, HID_REL_WHEEL_HI_RES = 0x0b, HID_REL_HWHEEL_HI_RES = 0x0c
} | 相对坐标编码。 | -| [Hid_MscEvent](#hid_mscevent) {
HID_MSC_SERIAL = 0x00, HID_MSC_PULSE_LED = 0x01, HID_MSC_GESTURE = 0x02, HID_MSC_RAW = 0x03, HID_MSC_SCAN = 0x04, HID_MSC_TIMESTAMP = 0x05
} | 不适合其它类型的输入事件编码。 | -| [Hid_DdkErrCode](#hid_ddkerrcode) {
HID_DDK_SUCCESS = 0, HID_DDK_NO_PERM = 201, HID_DDK_INVALID_PARAMETER = 401, HID_DDK_FAILURE = 27300001, HID_DDK_NULL_PTR = 27300002, HID_DDK_INVALID_OPERATION = 27300003, HID_DDK_TIMEOUT = 27300004, HID_DDK_INIT_ERROR = 27300005, HID_DDK_SERVICE_ERROR = 27300006, HID_DDK_MEMORY_ERROR = 27300007, HID_DDK_IO_ERROR = 27300008, HID_DDK_DEVICE_NOT_FOUND = 27300009
} | HID DDK错误码定义。 | -| [Hid_ReportType](#hid_reporttype) { HID_INPUT_REPORT = 0, HID_OUTPUT_REPORT = 1, HID_FEATURE_REPORT = 2 } | 报告(HID设备与主机之间交换的数据包)类型定义。 | - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| int32_t [OH_Hid_CreateDevice](#oh_hid_createdevice) ([Hid_Device](_hid___device.md) \*hidDevice, [Hid_EventProperties](_hid___event_properties.md) \*hidEventProperties) | 创建设备。 | -| int32_t [OH_Hid_EmitEvent](#oh_hid_emitevent) (int32_t deviceId, const [Hid_EmitItem](_hid___emit_item.md) items[], uint16_t length) | 向指定设备发送事件列表。 | -| int32_t [OH_Hid_DestroyDevice](#oh_hid_destroydevice) (int32_t deviceId) | 销毁设备。 | -| int32_t [OH_Hid_Init](#oh_hid_init) (void) | 初始化HID DDK。 | -| int32_t [OH_Hid_Release](#oh_hid_release) (void) | 释放HID DDK。 | -| int32_t [OH_Hid_Open](#oh_hid_open) (uint64_t deviceId, uint8_t interfaceIndex, [Hid_DeviceHandle](#hid_devicehandle) \*\*dev) | 打开deviceId和interfaceIndex指定的设备。 | -| int32_t [OH_Hid_Close](#oh_hid_close) ([Hid_DeviceHandle](#hid_devicehandle) \*\*dev) | 关闭设备。 | -| int32_t [OH_Hid_Write](#oh_hid_write) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, uint8_t \*data, uint32_t length, uint32_t \*bytesWritten) | 向设备写入报告。 | -| int32_t [OH_Hid_ReadTimeout](#oh_hid_readtimeout) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, uint8_t \*data, uint32_t bufSize, int timeout, uint32_t \*bytesRead) | 在指定的超时时间内从设备读取报告。 | -| int32_t [OH_Hid_Read](#oh_hid_read) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, uint8_t \*data, uint32_t bufSize, uint32_t \*bytesRead) | 从设备读取报告,默认为阻塞模式(阻塞等待直到有数据可读取),可以调用[OH_Hid_SetNonBlocking](#oh_hid_setnonblocking)改变模式。 | -| int32_t [OH_Hid_SetNonBlocking](#oh_hid_setnonblocking) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, int nonBlock) | 设置设备读取模式为非阻塞。 | -| int32_t [OH_Hid_GetRawInfo](#oh_hid_getrawinfo) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, [Hid_RawDevInfo](_hid___raw_dev_info.md) \*rawDevInfo) | 获取设备原始信息。 | -| int32_t [OH_Hid_GetRawName](#oh_hid_getrawname) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, char \*data, uint32_t bufSize) | 获取设备原始名称。 | -| int32_t [OH_Hid_GetPhysicalAddress](#oh_hid_getphysicaladdress) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, char \*data, uint32_t bufSize) | 获取设备物理地址。 | -| int32_t [OH_Hid_GetRawUniqueId](#oh_hid_getrawuniqueid) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, uint8_t \*data, uint32_t bufSize) | 获取设备原始唯一标识符。 | -| int32_t [OH_Hid_SendReport](#oh_hid_sendreport) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, [Hid_ReportType](#hid_reporttype) reportType, const uint8_t \*data, uint32_t length) | 向设备发送报告。 | -| int32_t [OH_Hid_GetReport](#oh_hid_getreport) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, [Hid_ReportType](#hid_reporttype) reportType, uint8_t \*data, uint32_t bufSize) | 获取设备报告。 | -| int32_t [OH_Hid_GetReportDescriptor](#oh_hid_getreportdescriptor) ([Hid_DeviceHandle](#hid_devicehandle) \*dev, uint8_t \*buf, uint32_t bufSize, uint32_t \*bytesRead) | 获取设备报告描述符。 | - - -### 变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint16_t [Hid_EmitItem::type](#type) | 事件类型。 | -| uint16_t [Hid_EmitItem::code](#code) | 事件编码。 | -| uint32_t [Hid_EmitItem::value](#value) | 事件值。 | -| const char \* [Hid_Device::deviceName](#devicename) | 设备名称。 | -| uint16_t [Hid_Device::vendorId](#vendorid) | 厂商ID。 | -| uint16_t [Hid_Device::productId](#productid) | 产品ID。 | -| uint16_t [Hid_Device::version](#version) | 版本号。 | -| uint16_t [Hid_Device::bustype](#bustype) | 总线类型。 | -| [Hid_DeviceProp](#hid_deviceprop) \* [Hid_Device::properties](#properties) | 设备特性。 | -| uint16_t [Hid_Device::propLength](#proplength) | 设备特性数量。 | -| [Hid_EventType](#hid_eventtype) \* [Hid_EventTypeArray::hidEventType](#hideventtype) | 事件类型编码。 | -| uint16_t [Hid_EventTypeArray::length](#length-15) | 数组长度。 | -| [Hid_KeyCode](#hid_keycode) \* [Hid_KeyCodeArray::hidKeyCode](#hidkeycode) | 键值编码。 | -| uint16_t [Hid_KeyCodeArray::length](#length-25) | 数组长度。 | -| [Hid_AbsAxes](#hid_absaxes) \* [Hid_AbsAxesArray::hidAbsAxes](#hidabsaxes) | 绝对坐标属性编码。 | -| uint16_t [Hid_AbsAxesArray::length](#length-35) | 数组长度。 | -| [Hid_RelAxes](#hid_relaxes) \* [Hid_RelAxesArray::hidRelAxes](#hidrelaxes) | 相对坐标属性编码。 | -| uint16_t [Hid_RelAxesArray::length](#length-45) | 数组长度。 | -| [Hid_MscEvent](#hid_mscevent) \* [Hid_MscEventArray::hidMscEvent](#hidmscevent) | 其它特殊事件属性编码。 | -| uint16_t [Hid_MscEventArray::length](#length-55) | 数组长度。 | -| struct [Hid_EventTypeArray](_hid___event_type_array.md)[Hid_EventProperties::hidEventTypes](#hideventtypes) | 事件类型属性编码数组。 | -| struct [Hid_KeyCodeArray](_hid___key_code_array.md)[Hid_EventProperties::hidKeys](#hidkeys) | 键值属性编码数组。 | -| struct [Hid_AbsAxesArray](_hid___abs_axes_array.md)[Hid_EventProperties::hidAbs](#hidabs) | 绝对坐标属性编码数组。 | -| struct [Hid_RelAxesArray](_hid___rel_axes_array.md)[Hid_EventProperties::hidRelBits](#hidrelbits) | 相对坐标属性编码数组。 | -| struct [Hid_MscEventArray](_hid___msc_event_array.md)[Hid_EventProperties::hidMiscellaneous](#hidmiscellaneous) | 其它特殊事件属性编码数组。 | -| int32_t [Hid_EventProperties::hidAbsMax](#hidabsmax) [64] | 绝对坐标属性最大值。 | -| int32_t [Hid_EventProperties::hidAbsMin](#hidabsmin) [64] | 绝对坐标属性最小值。 | -| int32_t [Hid_EventProperties::hidAbsFuzz](#hidabsfuzz) [64] | 绝对坐标属性模糊值。 | -| int32_t [Hid_EventProperties::hidAbsFlat](#hidabsflat) [64] | 绝对坐标属性固定值。 | -| uint32_t [Hid_RawDevInfo::busType](#bustype) | 总线类型。 | -| uint16_t [Hid_RawDevInfo::vendor](#vendor) | 供应商ID。 | -| uint16_t [Hid_RawDevInfo::product](#product) | 产品ID。 | - - -## 宏定义说明 - - -### HID_MAX_REPORT_BUFFER_SIZE - -``` -#define HID_MAX_REPORT_BUFFER_SIZE (16 * 1024 - 1) -``` - -**描述** - -最大报告缓冲区大小。 - -**起始版本:** 18 - - -## 类型定义说明 - - -### Hid_AbsAxesArray - -``` -typedef struct Hid_AbsAxesArray Hid_AbsAxesArray -``` - -**描述** - -绝对坐标属性数组。 - -**起始版本:** 11 - - -### Hid_Device - -``` -typedef struct Hid_Device Hid_Device -``` - -**描述** - -设备基本信息。 - -**起始版本:** 11 - - -### Hid_DeviceHandle - -``` -typedef struct Hid_DeviceHandle Hid_DeviceHandle -``` - -**描述** - -不透明的USB HID设备结构。 - -**起始版本:** 18 - - -### Hid_EmitItem - -``` -typedef struct Hid_EmitItem Hid_EmitItem -``` - -**描述** - -事件信息。 - -**起始版本:** 11 - - -### Hid_EventProperties - -``` -typedef struct Hid_EventProperties Hid_EventProperties -``` - -**描述** - -设备关注事件属性。 - -**起始版本:** 11 - - -### Hid_EventTypeArray - -``` -typedef struct Hid_EventTypeArray Hid_EventTypeArray -``` - -**描述** - -事件类型编码数组。 - -**起始版本:** 11 - - -### Hid_KeyCodeArray - -``` -typedef struct Hid_KeyCodeArray Hid_KeyCodeArray -``` - -**描述** - -键值属性数组。 - -**起始版本:** 11 - - -### Hid_MscEventArray - -``` -typedef struct Hid_MscEventArray Hid_MscEventArray -``` - -**描述** - -其它特殊事件属性数组。 - -**起始版本:** 11 - - -### Hid_RawDevInfo - -``` -typedef struct Hid_RawDevInfo Hid_RawDevInfo -``` - -**描述** - -原始设备信息定义。 - -**起始版本:** 18 - - -### Hid_RelAxesArray - -``` -typedef struct Hid_RelAxesArray Hid_RelAxesArray -``` - -**描述** - -相对坐标属性数组。 - -**起始版本:** 11 - - -## 枚举类型说明 - - -### Hid_AbsAxes - -``` -enum Hid_AbsAxes -``` - -**描述** - -绝对坐标编码。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_ABS_X | X轴。 | -| HID_ABS_Y | Y轴。 | -| HID_ABS_Z | Z轴。 | -| HID_ABS_RX | 右模拟摇杆的 X 轴。 | -| HID_ABS_RY | 右模拟摇杆的 Y 轴。 | -| HID_ABS_RZ | 右模拟摇杆的 Z 轴。 | -| HID_ABS_THROTTLE | 油门。 | -| HID_ABS_RUDDER | 舵。 | -| HID_ABS_WHEEL | 滚轮。 | -| HID_ABS_GAS | 气。 | -| HID_ABS_BRAKE | 制动。 | -| HID_ABS_HAT0X | HAT0X。 | -| HID_ABS_HAT0Y | HAT0Y。 | -| HID_ABS_HAT1X | HAT1X。 | -| HID_ABS_HAT1Y | HAT1Y。 | -| HID_ABS_HAT2X | HAT2X。 | -| HID_ABS_HAT2Y | HAT2Y。 | -| HID_ABS_HAT3X | HAT3X。 | -| HID_ABS_HAT3Y | HAT3Y。 | -| HID_ABS_PRESSURE | 压力。 | -| HID_ABS_DISTANCE | 距离。 | -| HID_ABS_TILT_X | X轴倾斜度。 | -| HID_ABS_TILT_Y | Y轴倾斜度。 | -| HID_ABS_TOOL_WIDTH | 触摸工具的宽度。 | -| HID_ABS_VOLUME | 音量。 | -| HID_ABS_MISC | 其它。 | - - -### Hid_DdkErrCode - -``` -enum Hid_DdkErrCode -``` - -**描述** - -HID DDK错误码定义。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_DDK_SUCCESS | 操作成功。 | -| HID_DDK_NO_PERM | 没有权限,从API 16起,取值由-6变更为201。 | -| HID_DDK_INVALID_PARAMETER | 非法参数,从API 16起,取值由-2变更为401。 | -| HID_DDK_FAILURE | 操作失败,从API 16起,取值由-1变更为27300001。 | -| HID_DDK_NULL_PTR | 空指针异常,从API 16起,取值由-4变更为27300002。 | -| HID_DDK_INVALID_OPERATION | 非法操作,从API 16起,取值由-3变更为27300003。 | -| HID_DDK_TIMEOUT | 超时,从API 16起,取值由-5变更为27300004。 | -| HID_DDK_INIT_ERROR | 初始化DDK失败或DDK未初始化。从API 16开始支持此枚举。 | -| HID_DDK_SERVICE_ERROR | 服务通信过程中错误,从API 16开始支持此枚举。 | -| HID_DDK_MEMORY_ERROR | 内存相关的错误,包括:内存数据拷贝失败、内存申请失败等,从API 16开始支持此枚举。 | -| HID_DDK_IO_ERROR | I/O操作失败,从API 16开始支持此枚举。 | -| HID_DDK_DEVICE_NOT_FOUND | 设备未找到,从API 16开始支持此枚举。 | - - -### Hid_DeviceProp - -``` -enum Hid_DeviceProp -``` - -**描述** - -输入设备特性定义。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_PROP_POINTER | 指针设备。 | -| HID_PROP_DIRECT | 直接输入设备。 | -| HID_PROP_BUTTON_PAD | 底部按键触摸设备。 | -| HID_PROP_SEMI_MT | 全多点触控设备。 | -| HID_PROP_TOP_BUTTON_PAD | 顶部软按键触摸设备。 | -| HID_PROP_POINTING_STICK | 指点杆设备。 | -| HID_PROP_ACCELEROMETER | 加速度传感器设备。 | - - -### Hid_EventType - -``` -enum Hid_EventType -``` - -**描述** - -事件类型。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_EV_SYN | 同步事件。 | -| HID_EV_KEY | 按键事件。 | -| HID_EV_REL | 相对坐标事件。 | -| HID_EV_ABS | 绝对坐标事件。 | -| HID_EV_MSC | 特殊事件。 | - - -### Hid_KeyCode - -``` -enum Hid_KeyCode -``` - -**描述** - -键值编码。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_KEY_A | 键A。 | -| HID_KEY_B | 键B。 | -| HID_KEY_C | 键C。| -| HID_KEY_D | 键D。 | -| HID_KEY_E | 键E。 | -| HID_KEY_F | 键F。 | -| HID_KEY_G | 键G。 | -| HID_KEY_H | 键H。 | -| HID_KEY_I | 键I。 | -| HID_KEY_J | 键J。 | -| HID_KEY_K | 键K。 | -| HID_KEY_L | 键L。 | -| HID_KEY_M | 键M。 | -| HID_KEY_N | 键N。| -| HID_KEY_O | 键O。 | -| HID_KEY_P | 键P。 | -| HID_KEY_Q | 键Q。 | -| HID_KEY_R | 键R。 | -| HID_KEY_S | 键S。 | -| HID_KEY_T | 键T。 | -| HID_KEY_U | 键U。 | -| HID_KEY_V | 键V。 | -| HID_KEY_W | 键W。 | -| HID_KEY_X | 键X。 | -| HID_KEY_Y | 键Y。 | -| HID_KEY_Z | 键Z。 | -| HID_KEY_ESC | 键ESC。 | -| HID_KEY_0 | 键0。 | -| HID_KEY_1 | 键1。 | -| HID_KEY_2 | 键2。 | -| HID_KEY_3 | 键3。 | -| HID_KEY_4 | 键4。 | -| HID_KEY_5 | 键5。 | -| HID_KEY_6 | 键6。 | -| HID_KEY_7 | 键7。 | -| HID_KEY_8 | 键8。 | -| HID_KEY_9 | 键9。 | -| HID_KEY_GRAVE | 键`。 | -| HID_KEY_MINUS | 键-。 | -| HID_KEY_EQUALS | 键=。 | -| HID_KEY_BACKSPACE | 键退格。 | -| HID_KEY_LEFT_BRACKET | 键[。 | -| HID_KEY_RIGHT_BRACKET | 键]。 | -| HID_KEY_ENTER | 键回车。 | -| HID_KEY_LEFT_SHIFT | 键左shift。 | -| HID_KEY_BACKSLASH | 键\。 | -| HID_KEY_SEMICOLON | 键;。 | -| HID_KEY_APOSTROPHE | 键'。 | -| HID_KEY_SPACE | 键空格。 | -| HID_KEY_SLASH | 键/。 | -| HID_KEY_COMMA | 键,。 | -| HID_KEY_PERIOD | 键.。 | -| HID_KEY_RIGHT_SHIFT | 键右shift。 | -| HID_KEY_NUMPAD_0 | 数字键0。 | -| HID_KEY_NUMPAD_1 | 数字键1。 | -| HID_KEY_NUMPAD_2 | 数字键2。 | -| HID_KEY_NUMPAD_3 | 数字键3。 | -| HID_KEY_NUMPAD_4 | 数字键4。 | -| HID_KEY_NUMPAD_5 | 数字键5。 | -| HID_KEY_NUMPAD_6 | 数字键6。 | -| HID_KEY_NUMPAD_7 | 数字键7。 | -| HID_KEY_NUMPAD_8 | 数字键8。 | -| HID_KEY_NUMPAD_9 | 数字键9。 | -| HID_KEY_NUMPAD_DIVIDE | 数字键/。 | -| HID_KEY_NUMPAD_MULTIPLY | 数字键\*。 | -| HID_KEY_NUMPAD_SUBTRACT | 数字键-。 | -| HID_KEY_NUMPAD_ADD | 数字键+。 | -| HID_KEY_NUMPAD_DOT | 数字键.。 | -| HID_KEY_SYSRQ | 键打印屏幕。 | -| HID_KEY_DELETE | 键删除。 | -| HID_KEY_MUTE | 键静音。 | -| HID_KEY_VOLUME_DOWN | 键音量-。 | -| HID_KEY_VOLUME_UP | 键音量+。 | -| HID_KEY_BRIGHTNESS_DOWN | 键亮度-。 | -| HID_KEY_BRIGHTNESS_UP | 键亮度+。 | -| HID_BTN_0 | 按钮0。| -| HID_BTN_1 | 按钮1。 | -| HID_BTN_2 | 按钮2。 | -| HID_BTN_3 | 按钮3。 | -| HID_BTN_4 | 按钮4。 | -| HID_BTN_5 | 按钮5。 | -| HID_BTN_6 | 按钮6。 | -| HID_BTN_7 | 按钮7。 | -| HID_BTN_8 | 按钮8。 | -| HID_BTN_9 | 按钮9。 | -| HID_BTN_LEFT | 鼠标按键左键。 | -| HID_BTN_RIGHT | 鼠标按键右键。 | -| HID_BTN_MIDDLE | 鼠标按键中键。 | -| HID_BTN_SIDE | 鼠标侧面按键。 | -| HID_BTN_EXTRA | 鼠标附加按键。 | -| HID_BTN_FORWARD | 鼠标向前按键。 | -| HID_BTN_BACKWARD | 鼠标向后按键。 | -| HID_BTN_TASK | 鼠标任务按键。 | -| HID_BTN_TOOL_PEN | 画笔。 | -| HID_BTN_TOOL_RUBBER | 橡皮擦。 | -| HID_BTN_TOOL_BRUSH | 笔刷。 | -| HID_BTN_TOOL_PENCIL | 钢笔。 | -| HID_BTN_TOOL_AIRBRUSH | 喷枪。 | -| HID_BTN_TOOL_FINGER | 手指。 | -| HID_BTN_TOOL_MOUSE | 鼠标。 | -| HID_BTN_TOOL_LENS | 镜头。 | -| HID_BTN_TOOL_QUINT_TAP | 五指触控。 | -| HID_BTN_STYLUS3 | 手写笔3。 | -| HID_BTN_TOUCH | 触摸。 | -| HID_BTN_STYLUS | 手写笔。 | -| HID_BTN_STYLUS2 | 手写笔2。 | -| HID_BTN_TOOL_DOUBLE_TAP | 二指触控。 | -| HID_BTN_TOOL_TRIPLE_TAP | 三指触控。 | -| HID_BTN_TOOL_QUAD_TAP | 四指触控。 | -| HID_BTN_WHEEL | 滚轮。 | - - -### Hid_MscEvent - -``` -enum Hid_MscEvent -``` - -**描述** - -不适合其它类型的输入事件编码。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_MSC_SERIAL | 序列号。 | -| HID_MSC_PULSE_LED | 脉冲。 | -| HID_MSC_GESTURE | 手势。 | -| HID_MSC_RAW | 开始事件。 | -| HID_MSC_SCAN | 扫描。 | -| HID_MSC_TIMESTAMP | 时间戳。 | - - -### Hid_RelAxes - -``` -enum Hid_RelAxes -``` - -**描述** - -相对坐标编码。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_REL_X | X轴。 | -| HID_REL_Y | Y轴。 | -| HID_REL_Z | Z轴。| -| HID_REL_RX | 右模拟摇杆的 X 轴。 | -| HID_REL_RY | 右模拟摇杆的 Y 轴。 | -| HID_REL_RZ | 右模拟摇杆的 Z 轴。 | -| HID_REL_HWHEEL | 水平滚轮。 | -| HID_REL_DIAL | 刻度。 | -| HID_REL_WHEEL | 滚轮。 | -| HID_REL_MISC | 其它。 | -| HID_REL_RESERVED | 预留。 | -| HID_REL_WHEEL_HI_RES | 高分辨率滚轮。 | -| HID_REL_HWHEEL_HI_RES | 高分辨率水平滚轮。 | - - -### Hid_ReportType - -``` -enum Hid_ReportType -``` - -**描述** - -报告(HID设备与主机之间交换的数据包)类型定义。 - -**起始版本:** 18 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_INPUT_REPORT | 输入报告。 | -| HID_OUTPUT_REPORT | 输出报告。 | -| HID_FEATURE_REPORT | 特性报告。 | - - -### Hid_SynEvent - -``` -enum Hid_SynEvent -``` - -**描述** - -同步事件编码。 - -**起始版本:** 11 - -| 枚举值 | 描述 | -| -------- | -------- | -| HID_SYN_REPORT | 表示一个事件的结束。 | -| HID_SYN_CONFIG | 表示配置同步。 | -| HID_SYN_MT_REPORT | 表示多点触摸的ABS数据包结束。 | -| HID_SYN_DROPPED | 表示该事件被丢弃。 | - - -## 函数说明 - - -### OH_Hid_Close() - -``` -int32_t OH_Hid_Close (Hid_DeviceHandle ** dev) -``` - -**描述** - -关闭设备。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_PARAMETER dev为空。 - - -### OH_Hid_CreateDevice() - -``` -int32_t OH_Hid_CreateDevice (Hid_Device * hidDevice, Hid_EventProperties * hidEventProperties) -``` - -**描述** - -创建设备。 - -**起始版本:** 11 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| hidDevice | 创建设备需要的基本信息,包括设备名、厂商ID、产品ID等。 | -| hidEventProperties | 创建的设备关注的事件,包括事件类型、按键事件属性、绝对坐标事件属性、相对坐标事件属性等。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- deviceID (一个非负的数字) 调用接口成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_OPERATION 连接hid_ddk服务失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能的原因:1. 入参hidDevice为空指针;2. 入参hidEventProperties为空指针;3. properties的长度超过7;4. hidEventTypes的长度超过5;5. hidKeys的长度超过100;6. hidAbs的长度超过26;7. hidRelBits的长度超过13;8. hidMiscellaneous的长度超过6。 - -- HID_DDK_FAILURE 设备数量达到最大值200。 - - -### OH_Hid_DestroyDevice() - -``` -int32_t OH_Hid_DestroyDevice (int32_t deviceId) -``` - -**描述** - -销毁设备。 - -**起始版本:** 11 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 调用接口成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_OPERATION 连接hid_ddk服务失败或者调用方不是设备的创建者。 - -- HID_DDK_NULL_PTR 对应设备不存在。 - - -### OH_Hid_EmitEvent() - -``` -int32_t OH_Hid_EmitEvent (int32_t deviceId, const Hid_EmitItem items[], uint16_t length) -``` - -**描述** - -向指定设备发送事件列表。 - -**起始版本:** 11 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID。 | -| items | 发送的事件列表,事件包括类型(取值来源事件类型Hid_EventType)、编码(取值来源同步事件编码Hid_SynEvent、键值编码Hid_KeyCode、按钮编码HidBtnCode、 绝对坐标编码Hid_AbsAxes、相对坐标编码Hid_RelAxes、其它类型的输入事件编码Hid_MscEvent)、值(根据实际设备输入决定)。 | -| length | 发送事件列表长度(一次发送事件个数)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 调用接口成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_OPERATION 连接hid_ddk服务失败或者调用方不是设备的创建者。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能的原因: 1. 设备ID小于0;2. 入参length长度超过7;3. 入参items为空指针。 - -- HID_DDK_NULL_PTR 对应设备的注入为空。 - -- HID_DDK_FAILURE 对应设备不存在。 - - -### OH_Hid_GetPhysicalAddress() - -``` -int32_t OH_Hid_GetPhysicalAddress (Hid_DeviceHandle * dev, char * data, uint32_t bufSize) -``` - -**描述** - -获取设备物理地址。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| data | 存放读取数据的缓冲区。 | -| bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR 内存数据拷贝失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_OPERATION 不支持此操作。 - - -### OH_Hid_GetRawInfo() - -``` -int32_t OH_Hid_GetRawInfo (Hid_DeviceHandle * dev, Hid_RawDevInfo * rawDevInfo) -``` - -**描述** - -获取设备原始信息。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| rawDevInfo | 设备原始信息,包含供应商ID、产品ID和总线类型。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. rawDevInfo为空。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_OPERATION 不支持此操作。 - - -### OH_Hid_GetRawName() - -``` -int32_t OH_Hid_GetRawName (Hid_DeviceHandle * dev, char * data, uint32_t bufSize) -``` - -**描述** - -获取设备原始名称。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| data | 存放读取数据的缓冲区。 | -| bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR 内存数据拷贝失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_OPERATION 不支持此操作。 - - -### OH_Hid_GetRawUniqueId() - -``` -int32_t OH_Hid_GetRawUniqueId (Hid_DeviceHandle * dev, uint8_t * data, uint32_t bufSize) -``` - -**描述** - -获取设备原始唯一标识符。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| data | 存放读取数据的缓冲区。 | -| bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR 内存数据拷贝失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_OPERATION 不支持此操作。 - - -### OH_Hid_GetReport() - -``` -int32_t OH_Hid_GetReport (Hid_DeviceHandle * dev, Hid_ReportType reportType, uint8_t * data, uint32_t bufSize) -``` - -**描述** - -获取设备报告。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| reportType | 报告类型。 | -| data | 存放读取数据的缓冲区。 | -| bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR 内存数据拷贝失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_OPERATION 不支持此操作。 - - -### OH_Hid_GetReportDescriptor() - -``` -int32_t OH_Hid_GetReportDescriptor (Hid_DeviceHandle * dev, uint8_t * buf, uint32_t bufSize, uint32_t * bytesRead) -``` - -**描述** - -获取设备报告描述符。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| buf | 存放描述符的缓冲区。 | -| bufSize | 缓冲区的字节大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | -| bytesRead | 读取的字节数。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. buf为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size);5. bytesRead为空。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR 内存数据拷贝失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_OPERATION 不支持此操作。 - - -### OH_Hid_Init() - -``` -int32_t OH_Hid_Init (void) -``` - -**描述** - -初始化HID DDK。 - -**起始版本:** 18 - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INIT_ERROR 初始化DDK失败。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - - -### OH_Hid_Open() - -``` -int32_t OH_Hid_Open (uint64_t deviceId, uint8_t interfaceIndex, Hid_DeviceHandle ** dev) -``` - -**描述** - -打开deviceId和interfaceIndex指定的设备。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 操作设备的ID。 | -| interfaceIndex | 接口索引,对应HID设备的接口。 | -| dev | 设备操作句柄。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR dev内存申请失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_PARAMETER dev为空。 - -- HID_DDK_DEVICE_NOT_FOUND 根据deviceId和interfaceIndex找不到设备。 - - -### OH_Hid_Read() - -``` -int32_t OH_Hid_Read (Hid_DeviceHandle * dev, uint8_t * data, uint32_t bufSize, uint32_t * bytesRead) -``` - -**描述** - -从设备读取报告,默认为阻塞模式(阻塞等待直到有数据可读取),可以调用[OH_Hid_SetNonBlocking](#oh_hid_setnonblocking)改变模式。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| data | 存放读取数据的缓冲区。 | -| bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | -| bytesRead | 读取的字节数。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size);5. bytesRead为空。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR 内存数据拷贝失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_TIMEOUT 读取超时。 - - -### OH_Hid_ReadTimeout() - -``` -int32_t OH_Hid_ReadTimeout (Hid_DeviceHandle * dev, uint8_t * data, uint32_t bufSize, int timeout, uint32_t * bytesRead) -``` - -**描述** - -在指定的超时时间内从设备读取报告。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| data | 存放读取数据的缓冲区。 | -| bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | -| timeout | 超时时间(毫秒)或-1表示阻塞等待。 | -| bytesRead | 读取的字节数。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size);5. bytesRead为空。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_MEMORY_ERROR 内存数据拷贝失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_TIMEOUT 读取超时。 - - -### OH_Hid_Release() - -``` -int32_t OH_Hid_Release (void) -``` - -**描述** - -释放HID DDK。 - -**起始版本:** 18 - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - - -### OH_Hid_SendReport() - -``` -int32_t OH_Hid_SendReport (Hid_DeviceHandle * dev, Hid_ReportType reportType, const uint8_t * data, uint32_t length) -``` - -**描述** - -向设备发送报告。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| reportType | 报告类型。 | -| data | 待发送的数据。 | -| length | 发送数据的字节长度,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. length为0;4. length超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - -- HID_DDK_INVALID_OPERATION 不支持此操作。 - - -### OH_Hid_SetNonBlocking() - -``` -int32_t OH_Hid_SetNonBlocking (Hid_DeviceHandle * dev, int nonBlock) -``` - -**描述** - -设置设备读取模式为非阻塞。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| nonBlock | 是否启用非阻塞模式读取数据。
- 1:启用非阻塞模式,调用[OH_Hid_Read](#oh_hid_read)接口时,如果设备有可读的数据,读取并返回HID_DDK_SUCCESS,如果设备没有数据可读,则返回HID_DDK_TIMEOUT。
- 0:禁用非阻塞模式。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. nonBlock不是1或0。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - - -### OH_Hid_Write() - -``` -int32_t OH_Hid_Write (Hid_DeviceHandle * dev, uint8_t * data, uint32_t length, uint32_t * bytesWritten) -``` - -**描述** - -向设备写入报告。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备操作句柄。 | -| data | 待写入的数据。 | -| length | 写入数据的字节长度,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size)。 | -| bytesWritten | 实际写入的数据字节数。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_HID - -**返回:** - -- HID_DDK_SUCCESS 操作成功。 - -- HID_DDK_NO_PERM 权限校验失败。 - -- HID_DDK_INVALID_PARAMETER 参数校验失败。可能原因:1. dev为空;2. data为空;3. length为0;4. length超过[HID_MAX_REPORT_BUFFER_SIZE](#hid_max_report_buffer_size);5. bytesWritten为空。 - -- HID_DDK_INIT_ERROR DDK未初始化。 - -- HID_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- HID_DDK_IO_ERROR I/O操作失败。 - - -## 变量说明 - - -### bustype - -``` -uint16_t Hid_Device::bustype -``` - -**描述** - -总线类型。 - - -### busType - -``` -uint32_t Hid_RawDevInfo::busType -``` - -**描述** - -总线类型。 - - -### code - -``` -uint16_t Hid_EmitItem::code -``` - -**描述** - -事件编码。 - - -### deviceName - -``` -const char* Hid_Device::deviceName -``` - -**描述** - -设备名称。 - - -### hidAbs - -``` -struct Hid_AbsAxesArray Hid_EventProperties::hidAbs -``` - -**描述** - -绝对坐标属性编码数组。 - - -### hidAbsAxes - -``` -Hid_AbsAxes* Hid_AbsAxesArray::hidAbsAxes -``` - -**描述** - -绝对坐标属性编码。 - - -### hidAbsFlat - -``` -int32_t Hid_EventProperties::hidAbsFlat[64] -``` - -**描述** - -绝对坐标属性固定值。 - - -### hidAbsFuzz - -``` -int32_t Hid_EventProperties::hidAbsFuzz[64] -``` - -**描述** - -绝对坐标属性模糊值。 - - -### hidAbsMax - -``` -int32_t Hid_EventProperties::hidAbsMax[64] -``` - -**描述** - -绝对坐标属性最大值。 - - -### hidAbsMin - -``` -int32_t Hid_EventProperties::hidAbsMin[64] -``` - -**描述** - -绝对坐标属性最小值。 - - -### hidEventType - -``` -Hid_EventType* Hid_EventTypeArray::hidEventType -``` - -**描述** - -事件类型编码。 - - -### hidEventTypes - -``` -struct Hid_EventTypeArray Hid_EventProperties::hidEventTypes -``` - -**描述** - -事件类型属性编码数组。 - - -### hidKeyCode - -``` -Hid_KeyCode* Hid_KeyCodeArray::hidKeyCode -``` - -**描述** - -键值编码。 - - -### hidKeys - -``` -struct Hid_KeyCodeArray Hid_EventProperties::hidKeys -``` - -**描述** - -键值属性编码数组。 - - -### hidMiscellaneous - -``` -struct Hid_MscEventArray Hid_EventProperties::hidMiscellaneous -``` - -**描述** - -其它特殊事件属性编码数组。 - - -### hidMscEvent - -``` -Hid_MscEvent* Hid_MscEventArray::hidMscEvent -``` - -**描述** - -其它特殊事件属性编码。 - - -### hidRelAxes - -``` -Hid_RelAxes* Hid_RelAxesArray::hidRelAxes -``` - -**描述** - -相对坐标属性编码。 - - -### hidRelBits - -``` -struct Hid_RelAxesArray Hid_EventProperties::hidRelBits -``` - -**描述** - -相对坐标属性编码数组。 - - -### length [1/5] - -``` -uint16_t Hid_EventTypeArray::length -``` - -**描述** - -数组长度。 - - -### length [2/5] - -``` -uint16_t Hid_KeyCodeArray::length -``` - -**描述** - -数组长度。 - - -### length [3/5] - -``` -uint16_t Hid_AbsAxesArray::length -``` - -**描述** - -数组长度。 - - -### length [4/5] - -``` -uint16_t Hid_RelAxesArray::length -``` - -**描述** - -数组长度。 - - -### length [5/5] - -``` -uint16_t Hid_MscEventArray::length -``` - -**描述** - -数组长度。 - - -### product - -``` -uint16_t Hid_RawDevInfo::product -``` - -**描述** - -产品ID。 - - -### productId - -``` -uint16_t Hid_Device::productId -``` - -**描述** - -产品ID。 - - -### properties - -``` -Hid_DeviceProp* Hid_Device::properties -``` - -**描述** - -设备特性。 - - -### propLength - -``` -uint16_t Hid_Device::propLength -``` - -**描述** - -设备特性数量。 - - -### type - -``` -uint16_t Hid_EmitItem::type -``` - -**描述** - -事件类型。 - - -### value - -``` -uint32_t Hid_EmitItem::value -``` - -**描述** - -事件值。 - - -### vendor - -``` -uint16_t Hid_RawDevInfo::vendor -``` - -**描述** - -供应商ID。 - - -### vendorId - -``` -uint16_t Hid_Device::vendorId -``` - -**描述** - -厂商ID。 - - -### version - -``` -uint16_t Hid_Device::version -``` - -**描述** - -版本号。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_s_c_s_i.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_s_c_s_i.md deleted file mode 100644 index e4b1b6e64e708349a11a306c95104f98a2ac1f0c..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_s_c_s_i.md +++ /dev/null @@ -1,1016 +0,0 @@ -# SCSI Peripheral DDK - - -## 概述 - -SCSI Peripheral DDK是为开发者提供专门用于开发SCSI设备驱动程序的套件, 提供了初始化DDK、释放DDK、打开关闭设备、读写设备等接口,并声明了SCSI Peripheral DDK API所需的宏、枚举变量和数据结构,用于在应用层进行SCSI设备驱动的开发。 - -**系统能力**:SystemCapability.Driver.SCSI.Extension - -**起始版本:** 18 - - -## 汇总 - - -### 文件 - -| 名称 | 描述 | -| -------- | -------- | -| [scsi_peripheral_api.h](scsi__peripheral__api_8h.md) | 声明用于主机侧访问SCSI设备的SCSI Peripheral DDK接口。 | -| [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) | 提供在SCSI Peripheral DDK(驱动开发工具包)API中使用的枚举变量、结构体和宏。 | - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| struct  [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) | 通过调用OH_ScsiPeripheral_CreateDeviceMemMap创建的设备内存映射。 使用该设备内存映射的缓冲区可以提供更好的性能。 | -| struct  [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) | 读/写操作的请求参数。 | -| struct  [ScsiPeripheral_Request](_scsi_peripheral___request.md) | 请求参数结构体。 | -| struct  [ScsiPeripheral_Response](_scsi_peripheral___response.md) | 响应参数结构体。 | -| struct  [ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md) | 命令(test unit ready)的请求结构体。 | -| struct  [ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md) | SCSI命令(inquiry)的请求结构体。 | -| struct  [ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md) | SCSI inquiry 数据。 | -| struct  [ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md) | SCSI命令(read capacity)的请求结构体。 | -| struct  [ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md) | SCSI read capacity 数据。 | -| struct  [ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md) | SCSI命令(request sense)的请求结构体。 | -| struct  [ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md) | sense data的基本信息。 | -| struct  [ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md) | SCSI命令(verify)的请求结构体。 | - - -### 宏定义 - -| 名称 | 描述 | -| -------- | -------- | -| [SCSIPERIPHERAL_MIN_DESCRIPTOR_FORMAT_SENSE](#scsiperipheral_min_descriptor_format_sense)   8 | sense data描述符格式长度最小值。 | -| [SCSIPERIPHERAL_MIN_FIXED_FORMAT_SENSE](#scsiperipheral_min_fixed_format_sense)   18 | sense data固定格式长度最小值。 | -| [SCSIPERIPHERAL_MAX_CMD_DESC_BLOCK_LEN](#scsiperipheral_max_cmd_desc_block_len)   16 | 命令描述符块的最大长度。 | -| [SCSIPERIPHERAL_MAX_SENSE_DATA_LEN](#scsiperipheral_max_sense_data_len)   252 | 在SCSI协议中,Sense Data(感应数据)的最大长度通常为252字节。 | -| [SCSIPERIPHERAL_VENDOR_ID_LEN](#scsiperipheral_vendor_id_len)   8 | vendor id的最大长度。 | -| [SCSIPERIPHERAL_PRODUCT_ID_LEN](#scsiperipheral_product_id_len)   18 | product id的最大长度。 | -| [SCSIPERIPHERAL_PRODUCT_REV_LEN](#scsiperipheral_product_rev_len)   4 | 产品版本的最大长度。 | - - -### 类型定义 - -| 名称 | 描述 | -| -------- | -------- | -| typedef struct [ScsiPeripheral_Device](#scsiperipheral_device) [ScsiPeripheral_Device](#scsiperipheral_device) | 不透明的SCSI设备结构体。 | -| typedef struct [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) [ScsiPeripheral_DeviceMemMap](#scsiperipheral_devicememmap) | 通过调用OH_ScsiPeripheral_CreateDeviceMemMap创建的设备内存映射。 使用该设备内存映射的缓冲区可以提供更好的性能。 | -| typedef struct [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) [ScsiPeripheral_IORequest](#scsiperipheral_iorequest) | 读/写操作的请求参数。 | -| typedef struct [ScsiPeripheral_Request](_scsi_peripheral___request.md) [ScsiPeripheral_Request](#scsiperipheral_request) | 请求参数结构体。 | -| typedef struct [ScsiPeripheral_Response](_scsi_peripheral___response.md) [ScsiPeripheral_Response](#scsiperipheral_response) | 响应参数结构体。 | -| typedef struct [ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md) [ScsiPeripheral_TestUnitReadyRequest](#scsiperipheral_testunitreadyrequest) | 命令(test unit ready)的请求结构体。 | -| typedef struct [ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md) [ScsiPeripheral_InquiryRequest](#scsiperipheral_inquiryrequest) | SCSI命令(inquiry)的请求结构体。 | -| typedef struct [ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md) [ScsiPeripheral_InquiryInfo](#scsiperipheral_inquiryinfo) | SCSI inquiry 数据。 | -| typedef struct [ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md) [ScsiPeripheral_ReadCapacityRequest](#scsiperipheral_readcapacityrequest) | SCSI命令(read capacity)的请求结构体。 | -| typedef struct [ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md) [ScsiPeripheral_CapacityInfo](#scsiperipheral_capacityinfo) | SCSI read capacity 数据。 | -| typedef struct [ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md) [ScsiPeripheral_RequestSenseRequest](#scsiperipheral_requestsenserequest) | SCSI命令(request sense)的请求结构体。 | -| typedef struct [ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md) [ScsiPeripheral_BasicSenseInfo](#scsiperipheral_basicsenseinfo) | sense data的基本信息。 | -| typedef struct [ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md) [ScsiPeripheral_VerifyRequest](#scsiperipheral_verifyrequest) | SCSI命令(verify)的请求结构体。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [ScsiPeripheral_DdkErrCode](#scsiperipheral_ddkerrcode) {
SCSIPERIPHERAL_DDK_NO_PERM = 201, SCSIPERIPHERAL_DDK_INVALID_PARAMETER = 401, SCSIPERIPHERAL_DDK_SUCCESS = 31700000, SCSIPERIPHERAL_DDK_MEMORY_ERROR = 31700001, SCSIPERIPHERAL_DDK_INVALID_OPERATION = 31700002, SCSIPERIPHERAL_DDK_IO_ERROR = 31700003, SCSIPERIPHERAL_DDK_TIMEOUT = 31700004, SCSIPERIPHERAL_DDK_INIT_ERROR = 31700005, SCSIPERIPHERAL_DDK_SERVICE_ERROR = 31700006, SCSIPERIPHERAL_DDK_DEVICE_NOT_FOUND = 31700007
} | SCSI Peripheral DDK错误码。 | -| [ScsiPeripheral_Status](#scsiperipheral_status) {
SCSIPERIPHERAL_STATUS_GOOD = 0x00, SCSIPERIPHERAL_STATUS_CHECK_CONDITION_NEEDED = 0x02, SCSIPERIPHERAL_STATUS_CONDITION_MET = 0x04, SCSIPERIPHERAL_STATUS_BUSY = 0x08, SCSIPERIPHERAL_STATUS_RESERVATION_CONFLICT = 0x18, SCSIPERIPHERAL_STATUS_TASK_SET_FULL = 0x28, SCSIPERIPHERAL_STATUS_ACA_ACTIVE = 0x30, SCSIPERIPHERAL_STATUS_TASK_ABORTED = 0x40
} | 定义用于响应的SCSI状态。 | - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| int32_t [OH_ScsiPeripheral_Init](#oh_scsiperipheral_init) (void) | 初始化SCSI Peripheral DDK。 | -| int32_t [OH_ScsiPeripheral_Release](#oh_scsiperipheral_release) (void) | 释放SCSI Peripheral DDK。 | -| int32_t [OH_ScsiPeripheral_Open](#oh_scsiperipheral_open) (uint64_t deviceId, uint8_t interfaceIndex, [ScsiPeripheral_Device](#scsiperipheral_device) \*\*dev) | 打开deviceId和interfaceIndex指定的SCSI设备。 | -| int32_t [OH_ScsiPeripheral_Close](#oh_scsiperipheral_close) ([ScsiPeripheral_Device](#scsiperipheral_device) \*\*dev) | 关闭SCSI设备。 | -| int32_t [OH_ScsiPeripheral_TestUnitReady](#oh_scsiperipheral_testunitready) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 检查逻辑单元是否已经准备好。 | -| int32_t [OH_ScsiPeripheral_Inquiry](#oh_scsiperipheral_inquiry) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md) \*request, [ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md) \*inquiryInfo, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 查询SCSI设备的基本信息。 | -| int32_t [OH_ScsiPeripheral_ReadCapacity10](#oh_scsiperipheral_readcapacity10) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md) \*request, [ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md) \*capacityInfo, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 获取SCSI设备的容量信息。 | -| int32_t [OH_ScsiPeripheral_RequestSense](#oh_scsiperipheral_requestsense) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 获取sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 | -| int32_t [OH_ScsiPeripheral_Read10](#oh_scsiperipheral_read10) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 从指定逻辑块读取数据。 | -| int32_t [OH_ScsiPeripheral_Write10](#oh_scsiperipheral_write10) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 写数据到设备的指定逻辑块。 | -| int32_t [OH_ScsiPeripheral_Verify10](#oh_scsiperipheral_verify10) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 校验指定逻辑块。 | -| int32_t [OH_ScsiPeripheral_SendRequestByCdb](#oh_scsiperipheral_sendrequestbycdb) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, [ScsiPeripheral_Request](_scsi_peripheral___request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 以CDB(Command Descriptor Block)方式发送SCSI命令。 | -| int32_t [OH_ScsiPeripheral_CreateDeviceMemMap](#oh_scsiperipheral_createdevicememmap) ([ScsiPeripheral_Device](#scsiperipheral_device) \*dev, size_t size, [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) \*\*devMmap) | 创建缓冲区。请在缓冲区使用完后,调用[OH_ScsiPeripheral_DestroyDeviceMemMap](#oh_scsiperipheral_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 | -| int32_t [OH_ScsiPeripheral_DestroyDeviceMemMap](#oh_scsiperipheral_destroydevicememmap) ([ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) \*devMmap) | 销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 | -| int32_t [OH_ScsiPeripheral_ParseBasicSenseInfo](#oh_scsiperipheral_parsebasicsenseinfo) (uint8_t \*senseData, uint8_t senseDataLen, [ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md) \*senseInfo) | 解析基本的sense data,包括Information、Command specific information、Sense key specific字段。 | - - -## 宏定义说明 - - -### SCSIPERIPHERAL_MAX_CMD_DESC_BLOCK_LEN - -``` -#define SCSIPERIPHERAL_MAX_CMD_DESC_BLOCK_LEN 16 -``` - -**描述** - -命令描述符块的最大长度。 - -**起始版本:** 18 - - -### SCSIPERIPHERAL_MAX_SENSE_DATA_LEN - -``` -#define SCSIPERIPHERAL_MAX_SENSE_DATA_LEN 252 -``` - -**描述** - -在SCSI协议中,Sense Data(感应数据)的最大长度通常为252字节。 - -**起始版本:** 18 - - -### SCSIPERIPHERAL_MIN_DESCRIPTOR_FORMAT_SENSE - -``` -#define SCSIPERIPHERAL_MIN_DESCRIPTOR_FORMAT_SENSE 8 -``` - -**描述** - -sense data描述符格式长度最小值。 - -**起始版本:** 18 - - -### SCSIPERIPHERAL_MIN_FIXED_FORMAT_SENSE - -``` -#define SCSIPERIPHERAL_MIN_FIXED_FORMAT_SENSE 18 -``` - -**描述** - -sense data固定格式长度最小值。 - -**起始版本:** 18 - - -### SCSIPERIPHERAL_PRODUCT_ID_LEN - -``` -#define SCSIPERIPHERAL_PRODUCT_ID_LEN 18 -``` - -**描述** - -product id的最大长度。 - -**起始版本:** 18 - - -### SCSIPERIPHERAL_PRODUCT_REV_LEN - -``` -#define SCSIPERIPHERAL_PRODUCT_REV_LEN 4 -``` - -**描述** - -产品版本的最大长度。 - -**起始版本:** 18 - - -### SCSIPERIPHERAL_VENDOR_ID_LEN - -``` -#define SCSIPERIPHERAL_VENDOR_ID_LEN 8 -``` - -**描述** - -vendor id的最大长度。 - -**起始版本:** 18 - - -## 类型定义说明 - - -### ScsiPeripheral_BasicSenseInfo - -``` -typedef struct ScsiPeripheral_BasicSenseInfo ScsiPeripheral_BasicSenseInfo -``` - -**描述** - -sense data的基本信息。 - -**起始版本:** 18 - - -### ScsiPeripheral_CapacityInfo - -``` -typedef struct ScsiPeripheral_CapacityInfo ScsiPeripheral_CapacityInfo -``` - -**描述** - -SCSI read capacity 数据。 - -**起始版本:** 18 - - -### ScsiPeripheral_Device - -``` -typedef struct ScsiPeripheral_Device ScsiPeripheral_Device -``` - -**描述** - -不透明的SCSI设备结构体。 - -**起始版本:** 18 - - -### ScsiPeripheral_DeviceMemMap - -``` -typedef struct ScsiPeripheral_DeviceMemMap ScsiPeripheral_DeviceMemMap -``` - -**描述** - -通过调用OH_ScsiPeripheral_CreateDeviceMemMap创建的设备内存映射。 使用该设备内存映射的缓冲区可以提供更好的性能。 - -**起始版本:** 18 - - -### ScsiPeripheral_InquiryInfo - -``` -typedef struct ScsiPeripheral_InquiryInfo ScsiPeripheral_InquiryInfo -``` - -**描述** - -SCSI inquiry 数据。 - -**起始版本:** 18 - - -### ScsiPeripheral_InquiryRequest - -``` -typedef struct ScsiPeripheral_InquiryRequest ScsiPeripheral_InquiryRequest -``` - -**描述** - -SCSI命令(inquiry)的请求结构体。 - -**起始版本:** 18 - - -### ScsiPeripheral_IORequest - -``` -typedef struct ScsiPeripheral_IORequest ScsiPeripheral_IORequest -``` - -**描述** - -读/写操作的请求参数。 - -**起始版本:** 18 - - -### ScsiPeripheral_ReadCapacityRequest - -``` -typedef struct ScsiPeripheral_ReadCapacityRequest ScsiPeripheral_ReadCapacityRequest -``` - -**描述** - -SCSI命令(read capacity)的请求结构体。 - -**起始版本:** 18 - - -### ScsiPeripheral_Request - -``` -typedef struct ScsiPeripheral_Request ScsiPeripheral_Request -``` - -**描述** - -请求参数结构体。 - -**起始版本:** 18 - - -### ScsiPeripheral_RequestSenseRequest - -``` -typedef struct ScsiPeripheral_RequestSenseRequest ScsiPeripheral_RequestSenseRequest -``` - -**描述** - -SCSI命令(request sense)的请求结构体。 - -**起始版本:** 18 - - -### ScsiPeripheral_Response - -``` -typedef struct ScsiPeripheral_Response ScsiPeripheral_Response -``` - -**描述** - -响应参数结构体。 - -**起始版本:** 18 - - -### ScsiPeripheral_TestUnitReadyRequest - -``` -typedef struct ScsiPeripheral_TestUnitReadyRequest ScsiPeripheral_TestUnitReadyRequest -``` - -**描述** - -命令(test unit ready)的请求结构体。 - -**起始版本:** 18 - - -### ScsiPeripheral_VerifyRequest - -``` -typedef struct ScsiPeripheral_VerifyRequest ScsiPeripheral_VerifyRequest -``` - -**描述** - -SCSI命令(verify)的请求结构体。 - -**起始版本:** 18 - - -## 枚举类型说明 - - -### ScsiPeripheral_DdkErrCode - -``` -enum ScsiPeripheral_DdkErrCode -``` - -**描述** - -SCSI Peripheral DDK错误码。 - -**起始版本:** 18 - -| 枚举值 | 描述 | -| -------- | -------- | -| SCSIPERIPHERAL_DDK_NO_PERM | 没有权限。 | -| SCSIPERIPHERAL_DDK_INVALID_PARAMETER | 非法参数。 | -| SCSIPERIPHERAL_DDK_SUCCESS | 操作成功。 | -| SCSIPERIPHERAL_DDK_MEMORY_ERROR | 与内存相关的错误,例如,内存不足、内存数据复制失败或内存申请失败。 | -| SCSIPERIPHERAL_DDK_INVALID_OPERATION | 非法操作。 | -| SCSIPERIPHERAL_DDK_IO_ERROR | 设备输入/输出操作失败。 | -| SCSIPERIPHERAL_DDK_TIMEOUT | 传输超时。 | -| SCSIPERIPHERAL_DDK_INIT_ERROR | DDK初始化错误,或者DDK未初始化。 | -| SCSIPERIPHERAL_DDK_SERVICE_ERROR | 与SCSI Peripheral DDK服务的通信失败。 | -| SCSIPERIPHERAL_DDK_DEVICE_NOT_FOUND | 设备未找到。 | - - -### ScsiPeripheral_Status - -``` -enum ScsiPeripheral_Status -``` - -**描述** - -定义用于响应的SCSI状态。 - -**起始版本:** 18 - -| 枚举值 | 描述 | -| -------- | -------- | -| SCSIPERIPHERAL_STATUS_GOOD | 正常状态。 | -| SCSIPERIPHERAL_STATUS_CHECK_CONDITION_NEEDED | 需要状态检查。 | -| SCSIPERIPHERAL_STATUS_CONDITION_MET | 条件满足。 | -| SCSIPERIPHERAL_STATUS_BUSY | 占用中。 | -| SCSIPERIPHERAL_STATUS_RESERVATION_CONFLICT | 资源保留冲突。 | -| SCSIPERIPHERAL_STATUS_TASK_SET_FULL | 任务集已满。 | -| SCSIPERIPHERAL_STATUS_ACA_ACTIVE | ACA活动状态。 | -| SCSIPERIPHERAL_STATUS_TASK_ABORTED | 任务已终止。 | - - -## 函数说明 - - -### OH_ScsiPeripheral_Close() - -``` -int32_t OH_ScsiPeripheral_Close (ScsiPeripheral_Device ** dev) -``` - -**描述** - -关闭SCSI设备。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - - -### OH_ScsiPeripheral_CreateDeviceMemMap() - -``` -int32_t OH_ScsiPeripheral_CreateDeviceMemMap (ScsiPeripheral_Device * dev, size_t size, ScsiPeripheral_DeviceMemMap ** devMmap ) -``` - -**描述** - -创建缓冲区。请在缓冲区使用完后,调用[OH_ScsiPeripheral_DestroyDeviceMemMap](#oh_scsiperipheral_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| size | 缓冲区的大小。 | -| devMmap | 创建的缓冲区通过该参数返回给调用者,详情参见[ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空或devMmap为空。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - - -### OH_ScsiPeripheral_DestroyDeviceMemMap() - -``` -int32_t OH_ScsiPeripheral_DestroyDeviceMemMap (ScsiPeripheral_DeviceMemMap * devMmap) -``` - -**描述** - -销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| devMmap | 待销毁的由**OH_ScsiPeripheral_CreateDeviceMemMa**创建的缓冲区,详情参见[ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER devMmap为空。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - - -### OH_ScsiPeripheral_Init() - -``` -int32_t OH_ScsiPeripheral_Init (void ) -``` - -**描述** - -初始化SCSI Peripheral DDK。 - -**起始版本:** 18 - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 初始化DDK失败。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - - -### OH_ScsiPeripheral_Inquiry() - -``` -int32_t OH_ScsiPeripheral_Inquiry (ScsiPeripheral_Device * dev, ScsiPeripheral_InquiryRequest * request, ScsiPeripheral_InquiryInfo * inquiryInfo, ScsiPeripheral_Response * response ) -``` - -**描述** - -查询SCSI设备的基本信息。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | inquiry命令的请求信息,详情参见[ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md)。 | -| inquiryInfo | inquiry命令返回的查询信息,详情参见[ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md)。 | -| response | inquiry命令返回的原始响应信息,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、 request为空、inquiryInfo 为空、inquiryInfo->data或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - - -### OH_ScsiPeripheral_Open() - -``` -int32_t OH_ScsiPeripheral_Open (uint64_t deviceId, uint8_t interfaceIndex, ScsiPeripheral_Device ** dev ) -``` - -**描述** - -打开deviceId和interfaceIndex指定的SCSI设备。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID,代表要操作的设备。 | -| interfaceIndex | 接口索引,对应SCSI设备的接口。 | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生IO错误。 - -- SCSIPERIPHERAL_DDK_DEVICE_NOT_FOUND 通过deviceId和interfaceIndex找不到设备。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -### OH_ScsiPeripheral_ParseBasicSenseInfo() - -``` -int32_t OH_ScsiPeripheral_ParseBasicSenseInfo (uint8_t * senseData, uint8_t senseDataLen, ScsiPeripheral_BasicSenseInfo * senseInfo ) -``` - -**描述** - -解析基本的sense data,包括Information、Command specific information、Sense key specific字段。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| senseData | 待解析的sense data。 | -| senseDataLen | sense data长度。 | -| senseInfo | 用于保存解析后的基本信息,详情参见[ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER senseData格式不是描述符或固定格式、senseDataLen小于SCSIPERIPHERAL_MIN_DESCRIPTOR_FORMAT_SENSE或者senseDataLen小于SCSIPERIPHERAL_MIN_FIXED_FORMAT_SENSE。 - - -### OH_ScsiPeripheral_Read10() - -``` -int32_t OH_ScsiPeripheral_Read10 (ScsiPeripheral_Device * dev, ScsiPeripheral_IORequest * request, ScsiPeripheral_Response * response ) -``` - -**描述** - -从指定逻辑块读取数据。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | read命令的请求信息,详情参见[ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md)。 | -| response | read命令返回的响应信息,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、 request为空、request->data或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - - -### OH_ScsiPeripheral_ReadCapacity10() - -``` -int32_t OH_ScsiPeripheral_ReadCapacity10 (ScsiPeripheral_Device * dev, ScsiPeripheral_ReadCapacityRequest * request, ScsiPeripheral_CapacityInfo * capacityInfo, ScsiPeripheral_Response * response ) -``` - -**描述** - -获取SCSI设备的容量信息。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | read capacity命令的请求信息,详情参见[ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md)。 | -| capacityInfo | read capacity命令返回的容量信息,详情参见[ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md)。 | -| response | read capacity命令返回的原始响应信息,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、 request为空、capacityInfo为空或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - - -### OH_ScsiPeripheral_Release() - -``` -int32_t OH_ScsiPeripheral_Release (void ) -``` - -**描述** - -释放SCSI Peripheral DDK。 - -**起始版本:** 18 - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - - -### OH_ScsiPeripheral_RequestSense() - -``` -int32_t OH_ScsiPeripheral_RequestSense (ScsiPeripheral_Device * dev, ScsiPeripheral_RequestSenseRequest * request, ScsiPeripheral_Response * response ) -``` - -**描述** - -获取sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | request sense命令的请求信息,详情参见[ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md)。 | -| response | request sense命令返回的响应信息,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、 request为空或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - - -### OH_ScsiPeripheral_SendRequestByCdb() - -``` -int32_t OH_ScsiPeripheral_SendRequestByCdb (ScsiPeripheral_Device * dev, ScsiPeripheral_Request * request, ScsiPeripheral_Response * response ) -``` - -**描述** - -以CDB(Command Descriptor Block)方式发送SCSI命令。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | 请求,详情参见[ScsiPeripheral_Request](_scsi_peripheral___request.md)。 | -| response | 响应,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、 request为空、request->data为空、request->cdbLength为0或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - - -### OH_ScsiPeripheral_TestUnitReady() - -``` -int32_t OH_ScsiPeripheral_TestUnitReady (ScsiPeripheral_Device * dev, ScsiPeripheral_TestUnitReadyRequest * request, ScsiPeripheral_Response * response ) -``` - -**描述** - -检查逻辑单元是否已经准备好。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | 逻辑单元检查命令(test unit ready)的请求信息,详情参见[ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md)。 | -| response | 逻辑单元检查命令(test unit ready)的响应信息,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、request为空或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - - -### OH_ScsiPeripheral_Verify10() - -``` -int32_t OH_ScsiPeripheral_Verify10 (ScsiPeripheral_Device * dev, ScsiPeripheral_VerifyRequest * request, ScsiPeripheral_Response * response ) -``` - -**描述** - -校验指定逻辑块。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | verify命令的请求信息,详情参见[ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md)。 | -| response | verify命令返回的响应信息,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、request为空或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 - - -### OH_ScsiPeripheral_Write10() - -``` -int32_t OH_ScsiPeripheral_Write10 (ScsiPeripheral_Device * dev, ScsiPeripheral_IORequest * request, ScsiPeripheral_Response * response ) -``` - -**描述** - -写数据到设备的指定逻辑块。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄,详情参见[ScsiPeripheral_Device](#scsiperipheral_device)。 | -| request | write命令的请求信息,详情参见[ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md)。 | -| response | write命令返回的响应信息,详情参见[ScsiPeripheral_Response](_scsi_peripheral___response.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL - -**返回:** - -- SCSIPERIPHERAL_DDK_SUCCESS 调用接口成功。 - -- SCSIPERIPHERAL_DDK_NO_PERM 权限校验失败。 - -- SCSIPERIPHERAL_DDK_INIT_ERROR 未初始化DDK。 - -- SCSIPERIPHERAL_DDK_INVALID_PARAMETER dev为空、 request为空、request->data为空或者response为空。 - -- SCSIPERIPHERAL_DDK_SERVICE_ERROR 与DDK服务通信失败。 - -- SCSIPERIPHERAL_DDK_MEMORY_ERROR 内存操作失败。 - -- SCSIPERIPHERAL_DDK_IO_ERROR DDK发生I/O错误。 - -- SCSIPERIPHERAL_DDK_TIMEOUT 传输超时。 - -- SCSIPERIPHERAL_DDK_INVALID_OPERATION 不支持该操作。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___basic_sense_info.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___basic_sense_info.md deleted file mode 100644 index 36883e43e3c37b638c621929ef7f4e8ff6c1f480..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___basic_sense_info.md +++ /dev/null @@ -1,96 +0,0 @@ -# ScsiPeripheral_BasicSenseInfo - - -## 概述 - -sense data的基本信息。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t [responseCode](#responsecode) | 响应码。 | -| bool [valid](#valid) | 信息有效标志位。 | -| uint64_t [information](#information) | Information字段。 | -| uint64_t [commandSpecific](#commandspecific) | Command-specific information字段。 | -| bool [sksv](#sksv) | Sense key specific字段的标志位。 | -| uint32_t [senseKeySpecific](#sensekeyspecific) | Sense key specific字段。 | - - -## 结构体成员变量说明 - - -### commandSpecific - -``` -uint64_t ScsiPeripheral_BasicSenseInfo::commandSpecific -``` - -**描述** - -Command-specific information字段。 - - -### information - -``` -uint64_t ScsiPeripheral_BasicSenseInfo::information -``` - -**描述** - -Information字段。 - - -### responseCode - -``` -uint8_t ScsiPeripheral_BasicSenseInfo::responseCode -``` - -**描述** - -响应码。 - - -### senseKeySpecific - -``` -uint32_t ScsiPeripheral_BasicSenseInfo::senseKeySpecific -``` - -**描述** - -Sense key specific字段。 - - -### sksv - -``` -bool ScsiPeripheral_BasicSenseInfo::sksv -``` - -**描述** - -Sense key specific字段的标志位。 - - -### valid - -``` -bool ScsiPeripheral_BasicSenseInfo::valid -``` - -**描述** - -信息有效标志位。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___capacity_info.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___capacity_info.md deleted file mode 100644 index dfca7b708ce9e3bd3f31b536db28c7aec5ef7151..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___capacity_info.md +++ /dev/null @@ -1,48 +0,0 @@ -# ScsiPeripheral_CapacityInfo - - -## 概述 - -SCSI read capacity 数据。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint32_t [lbAddress](#lbaddress) | 返回的逻辑单元地址。 | -| uint32_t [lbLength](#lblength) | 单个逻辑单元长度,单位:字节。 | - - -## 结构体成员变量说明 - - -### lbAddress - -``` -uint32_t ScsiPeripheral_CapacityInfo::lbAddress -``` - -**描述** - -返回的逻辑单元地址。 - - -### lbLength - -``` -uint32_t ScsiPeripheral_CapacityInfo::lbLength -``` - -**描述** - -单个逻辑单元长度,单位:字节。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___device_mem_map.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___device_mem_map.md deleted file mode 100644 index e506ebec7898e0f66f45dc56ba50047ab3c96845..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___device_mem_map.md +++ /dev/null @@ -1,84 +0,0 @@ -# ScsiPeripheral_DeviceMemMap - - -## 概述 - -通过调用OH_ScsiPeripheral_CreateDeviceMemMap创建的设备内存映射。 使用该设备内存映射的缓冲区可以提供更好的性能。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t \*const [address](#address) | 缓冲区地址。 | -| const size_t [size](#size) | 缓冲区大小。 | -| uint32_t [offset](#offset) | 已使用缓冲区的偏移量。默认值为0,表示没有偏移,缓冲区从指定地址开始。 | -| uint32_t [bufferLength](#bufferlength) | 已使用缓冲区的长度。默认情况下,该值等于缓冲区的大小,表示整个缓冲区都被使用。 | -| uint32_t [transferredLength](#transferredlength) | 传输数据的长度。 | - - -## 结构体成员变量说明 - - -### address - -``` -uint8_t* const ScsiPeripheral_DeviceMemMap::address -``` - -**描述** - -缓冲区地址。 - - -### bufferLength - -``` -uint32_t ScsiPeripheral_DeviceMemMap::bufferLength -``` - -**描述** - -已使用缓冲区的长度。默认情况下,该值等于缓冲区的大小,表示整个缓冲区都被使用。 - - -### offset - -``` -uint32_t ScsiPeripheral_DeviceMemMap::offset -``` - -**描述** - -已使用缓冲区的偏移量。默认值为0,表示没有偏移,缓冲区从指定地址开始。 - - -### size - -``` -const size_t ScsiPeripheral_DeviceMemMap::size -``` - -**描述** - -缓冲区大小。 - - -### transferredLength - -``` -uint32_t ScsiPeripheral_DeviceMemMap::transferredLength -``` - -**描述** - -传输数据的长度。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___i_o_request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___i_o_request.md deleted file mode 100644 index 7a205046ff12f6fdaca38e378445883a58a89d02..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___i_o_request.md +++ /dev/null @@ -1,108 +0,0 @@ -# ScsiPeripheral_IORequest - - -## 概述 - -读/写操作的请求参数。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint32_t [lbAddress](#lbaddress) | 逻辑块起始地址。 | -| uint16_t [transferLength](#transferlength) | 需要操作的连续逻辑块的数量。 | -| uint8_t [control](#control) | Control字段,用于指定一些控制信息。 | -| uint8_t [byte1](#byte1) | CDB的第一个字节。 | -| uint8_t [byte6](#byte6) | CDB的第六个字节。 | -| [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) \* [data](#data) | 数据传输的缓冲区。 | -| uint32_t [timeout](#timeout) | 超时时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### byte1 - -``` -uint8_t ScsiPeripheral_IORequest::byte1 -``` - -**描述** - -CDB的第一个字节。 - - -### byte6 - -``` -uint8_t ScsiPeripheral_IORequest::byte6 -``` - -**描述** - -CDB的第六个字节。 - - -### control - -``` -uint8_t ScsiPeripheral_IORequest::control -``` - -**描述** - -Control字段,用于指定一些控制信息。 - - -### data - -``` -ScsiPeripheral_DeviceMemMap* ScsiPeripheral_IORequest::data -``` - -**描述** - -数据传输的缓冲区。 - - -### lbAddress - -``` -uint32_t ScsiPeripheral_IORequest::lbAddress -``` - -**描述** - -逻辑块起始地址。 - - -### timeout - -``` -uint32_t ScsiPeripheral_IORequest::timeout -``` - -**描述** - -超时时间(单位:毫秒)。 - - -### transferLength - -``` -uint16_t ScsiPeripheral_IORequest::transferLength -``` - -**描述** - -需要操作的连续逻辑块的数量。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_info.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_info.md deleted file mode 100644 index 723890625a5c9f13ce1bef868c3ddab43ebbe25b..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_info.md +++ /dev/null @@ -1,84 +0,0 @@ -# ScsiPeripheral_InquiryInfo - - -## 概述 - -SCSI inquiry 数据。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t [deviceType](#devicetype) | 设备类型。 | -| char [idVendor](#idvendor) [[SCSIPERIPHERAL_VENDOR_ID_LEN](_s_c_s_i.md#scsiperipheral_vendor_id_len)+1] | 制造商 id。 | -| char [idProduct](#idproduct) [[SCSIPERIPHERAL_PRODUCT_ID_LEN](_s_c_s_i.md#scsiperipheral_product_id_len)+1] | 生产商 id。 | -| char [revProduct](#revproduct) [[SCSIPERIPHERAL_PRODUCT_REV_LEN](_s_c_s_i.md#scsiperipheral_product_rev_len)+1] | 产品版本。 | -| [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) \* [data](#data) | 所有的查询数据。 | - - -## 结构体成员变量说明 - - -### data - -``` -ScsiPeripheral_DeviceMemMap* ScsiPeripheral_InquiryInfo::data -``` - -**描述** - -所有的查询数据。 - - -### deviceType - -``` -uint8_t ScsiPeripheral_InquiryInfo::deviceType -``` - -**描述** - -设备类型。 - - -### idProduct - -``` -char ScsiPeripheral_InquiryInfo::idProduct[SCSIPERIPHERAL_PRODUCT_ID_LEN+1] -``` - -**描述** - -生产商 id。 - - -### idVendor - -``` -char ScsiPeripheral_InquiryInfo::idVendor[SCSIPERIPHERAL_VENDOR_ID_LEN+1] -``` - -**描述** - -制造商 id。 - - -### revProduct - -``` -char ScsiPeripheral_InquiryInfo::revProduct[SCSIPERIPHERAL_PRODUCT_REV_LEN+1] -``` - -**描述** - -产品版本。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_request.md deleted file mode 100644 index 1a6aa458da7d55d32175b2e7ec3663d41b9d6dd9..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_request.md +++ /dev/null @@ -1,84 +0,0 @@ -# ScsiPeripheral_InquiryRequest - - -## 概述 - -SCSI命令(inquiry)的请求结构体。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t [pageCode](#pagecode) | Page code字段。获取设备的某些特定类型的信息时使用。 当发出带有特定页面代码的 Inquiry 命令时,设备会返回与该页面代码相关的详细信息。 如果 page code 设置为 0x00,则表示请求的是标准的 Inquiry 数据,而非特定页面的数据。 | -| uint16_t [allocationLength](#allocationlength) | Allocation length字段,指定了请求方向发起者(通常是主机)为响应数据准备的缓冲区大小。 | -| uint8_t [control](#control) | Control字段,用于指定一些控制信息。 | -| uint8_t [byte1](#byte1) | CDB的第一个字节。 | -| uint32_t [timeout](#timeout) | 超时时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### allocationLength - -``` -uint16_t ScsiPeripheral_InquiryRequest::allocationLength -``` - -**描述** - -Allocation length字段,指定了请求方向发起者(通常是主机)为响应数据准备的缓冲区大小。 - - -### byte1 - -``` -uint8_t ScsiPeripheral_InquiryRequest::byte1 -``` - -**描述** - -CDB的第一个字节。 - - -### control - -``` -uint8_t ScsiPeripheral_InquiryRequest::control -``` - -**描述** - -Control字段,用于指定一些控制信息。 - - -### pageCode - -``` -uint8_t ScsiPeripheral_InquiryRequest::pageCode -``` - -**描述** - -Page code字段。获取设备的某些特定类型的信息时使用。 当发出带有特定页面代码的 Inquiry 命令时,设备会返回与该页面代码相关的详细信息。 如果 page code 设置为 0x00,则表示请求的是标准的 Inquiry 数据,而非特定页面的数据。 - - -### timeout - -``` -uint32_t ScsiPeripheral_InquiryRequest::timeout -``` - -**描述** - -超时时间(单位:毫秒)。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___read_capacity_request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___read_capacity_request.md deleted file mode 100644 index e58fa99411c1b4b2a356f26f6320dc82e5c3cfec..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___read_capacity_request.md +++ /dev/null @@ -1,72 +0,0 @@ -# ScsiPeripheral_ReadCapacityRequest - - -## 概述 - -SCSI命令(read capacity)的请求结构体。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint32_t [lbAddress](#lbaddress) | 逻辑单元地址。 | -| uint8_t [control](#control) | Control字段,用于指定一些控制信息。 | -| uint8_t [byte8](#byte8) | CDB的第八个字节。 | -| uint32_t [timeout](#timeout) | 超时时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### byte8 - -``` -uint8_t ScsiPeripheral_ReadCapacityRequest::byte8 -``` - -**描述** - -CDB的第八个字节。 - - -### control - -``` -uint8_t ScsiPeripheral_ReadCapacityRequest::control -``` - -**描述** - -Control字段,用于指定一些控制信息。 - - -### lbAddress - -``` -uint32_t ScsiPeripheral_ReadCapacityRequest::lbAddress -``` - -**描述** - -逻辑单元地址。 - - -### timeout - -``` -uint32_t ScsiPeripheral_ReadCapacityRequest::timeout -``` - -**描述** - -超时时间(单位:毫秒)。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___request.md deleted file mode 100644 index 34d9d84c12630e79a0bf9a242a6c97e61abcfe7f..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___request.md +++ /dev/null @@ -1,84 +0,0 @@ -# ScsiPeripheral_Request - - -## 概述 - -请求参数结构体。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t [commandDescriptorBlock](#commanddescriptorblock) [[SCSIPERIPHERAL_MAX_CMD_DESC_BLOCK_LEN](_s_c_s_i.md#scsiperipheral_max_cmd_desc_block_len)] | 命令描述符块。 | -| uint8_t [cdbLength](#cdblength) | 命令描述符块的长度。 | -| int8_t [dataTransferDirection](#datatransferdirection) | 数据传输方向。 | -| [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) \* [data](#data) | 数据传输的缓冲区。 | -| uint32_t [timeout](#timeout) | 超时时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### cdbLength - -``` -uint8_t ScsiPeripheral_Request::cdbLength -``` - -**描述** - -命令描述符块的长度。 - - -### commandDescriptorBlock - -``` -uint8_t ScsiPeripheral_Request::commandDescriptorBlock[SCSIPERIPHERAL_MAX_CMD_DESC_BLOCK_LEN] -``` - -**描述** - -命令描述符块。 - - -### data - -``` -ScsiPeripheral_DeviceMemMap* ScsiPeripheral_Request::data -``` - -**描述** - -数据传输的缓冲区。 - - -### dataTransferDirection - -``` -int8_t ScsiPeripheral_Request::dataTransferDirection -``` - -**描述** - -数据传输方向。 - - -### timeout - -``` -uint32_t ScsiPeripheral_Request::timeout -``` - -**描述** - -超时时间(单位:毫秒)。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___request_sense_request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___request_sense_request.md deleted file mode 100644 index 0820da1760c283fcd133addd67331f1985caca0a..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___request_sense_request.md +++ /dev/null @@ -1,72 +0,0 @@ -# ScsiPeripheral_RequestSenseRequest - - -## 概述 - -SCSI命令(request sense)的请求结构体。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t [allocationLength](#allocationlength) | Allocation length字段,指定了请求方向发起者(通常是主机)为响应数据准备的缓冲区大小。 | -| uint8_t [control](#control) | Control字段,用于指定一些控制信息。 | -| uint8_t [byte1](#byte1) | CDB的第一个字节。 | -| uint32_t [timeout](#timeout) | 超时时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### allocationLength - -``` -uint8_t ScsiPeripheral_RequestSenseRequest::allocationLength -``` - -**描述** - -Allocation length字段,指定了请求方向发起者(通常是主机)为响应数据准备的缓冲区大小。 - - -### byte1 - -``` -uint8_t ScsiPeripheral_RequestSenseRequest::byte1 -``` - -**描述** - -CDB的第一个字节。 - - -### control - -``` -uint8_t ScsiPeripheral_RequestSenseRequest::control -``` - -**描述** - -Control字段,用于指定一些控制信息。 - - -### timeout - -``` -uint32_t ScsiPeripheral_RequestSenseRequest::timeout -``` - -**描述** - -超时时间(单位:毫秒)。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___response.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___response.md deleted file mode 100644 index 5efe2ebbd9a413c276318f3276db2082b7aa1d25..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___response.md +++ /dev/null @@ -1,132 +0,0 @@ -# ScsiPeripheral_Response - - -## 概述 - -响应参数结构体。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t [senseData](#sensedata) [[SCSIPERIPHERAL_MAX_SENSE_DATA_LEN](_s_c_s_i.md#scsiperipheral_max_sense_data_len)] | sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 | -| [ScsiPeripheral_Status](_s_c_s_i.md#scsiperipheral_status) [status](#status) | 调用完成时的状态,例如良好(Good)、忙(Busy)。 | -| uint8_t [maskedStatus](#maskedstatus) | 在Linux的SCSI通用接口(SG)中,masked_status 字段用于存储经过处理后的SCSI状态, 以便应用程序可以更方便地读取和解析。 | -| uint8_t [msgStatus](#msgstatus) | 消息状态。 | -| uint8_t [sbLenWr](#sblenwr) | 指的是实际写入到 Sense Buffer(感应缓冲区)的字节数。 | -| uint16_t [hostStatus](#hoststatus) | 主机适配器状态。 例如:成功(0x00)、无法连接(0x01)、总线忙(0x02)、超时(0x03)。 | -| uint16_t [driverStatus](#driverstatus) | 驱动状态。 例如:成功(0x00)、设备或资源忙(0x01)。 | -| int32_t [resId](#resid) | 实际传输的数据长度差值,即未传输的字节数。 | -| uint32_t [duration](#duration) | 执行命令消耗的时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### driverStatus - -``` -uint16_t ScsiPeripheral_Response::driverStatus -``` - -**描述** - -驱动状态。 例如:成功(0x00)、设备或资源忙(0x01)。 - - -### duration - -``` -uint32_t ScsiPeripheral_Response::duration -``` - -**描述** - -执行命令消耗的时间(单位:毫秒)。 - - -### hostStatus - -``` -uint16_t ScsiPeripheral_Response::hostStatus -``` - -**描述** - -主机适配器状态。 例如:成功(0x00)、无法连接(0x01)、总线忙(0x02)、超时(0x03)。 - - -### maskedStatus - -``` -uint8_t ScsiPeripheral_Response::maskedStatus -``` - -**描述** - -在Linux的SCSI通用接口(SG)中,masked_status 字段用于存储经过处理后的SCSI状态, 以便应用程序可以更方便地读取和解析。 - - -### msgStatus - -``` -uint8_t ScsiPeripheral_Response::msgStatus -``` - -**描述** - -消息状态。 - - -### resId - -``` -int32_t ScsiPeripheral_Response::resId -``` - -**描述** - -实际传输的数据长度差值,即未传输的字节数。 - - -### sbLenWr - -``` -uint8_t ScsiPeripheral_Response::sbLenWr -``` - -**描述** - -指的是实际写入到 Sense Buffer(感应缓冲区)的字节数。 - - -### senseData - -``` -uint8_t ScsiPeripheral_Response::senseData[SCSIPERIPHERAL_MAX_SENSE_DATA_LEN] -``` - -**描述** - -sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 - - -### status - -``` -ScsiPeripheral_Status ScsiPeripheral_Response::status -``` - -**描述** - -调用完成时的状态,例如良好(Good)、忙(Busy)。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___test_unit_ready_request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___test_unit_ready_request.md deleted file mode 100644 index 291eef3d3d1e1cda22c73e613d0b716a5b93c913..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___test_unit_ready_request.md +++ /dev/null @@ -1,48 +0,0 @@ -# ScsiPeripheral_TestUnitReadyRequest - - -## 概述 - -命令(test unit ready)的请求结构体。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint8_t [control](#control) | Control字段,用于指定一些控制信息。 | -| uint32_t [timeout](#timeout) | 超时时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### control - -``` -uint8_t ScsiPeripheral_TestUnitReadyRequest::control -``` - -**描述** - -Control字段,用于指定一些控制信息。 - - -### timeout - -``` -uint32_t ScsiPeripheral_TestUnitReadyRequest::timeout -``` - -**描述** - -超时时间(单位:毫秒)。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___verify_request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___verify_request.md deleted file mode 100644 index 2a22eb41f0aa12e2d71646de1d17bc1bef640f81..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_scsi_peripheral___verify_request.md +++ /dev/null @@ -1,96 +0,0 @@ -# ScsiPeripheral_VerifyRequest - - -## 概述 - -SCSI命令(verify)的请求结构体。 - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - -**所在头文件:** [scsi_peripheral_types.h](scsi__peripheral__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint32_t [lbAddress](#lbaddress) | 起始逻辑块地址。 | -| uint16_t [verificationLength](#verificationlength) | 连续校验逻辑块的个数。 | -| uint8_t [control](#control) | Control字段,用于指定一些控制信息。 | -| uint8_t [byte1](#byte1) | CDB的第一个字节。 | -| uint8_t [byte6](#byte6) | CDB的第六个字节。 | -| uint32_t [timeout](#timeout) | 超时时间(单位:毫秒)。 | - - -## 结构体成员变量说明 - - -### byte1 - -``` -uint8_t ScsiPeripheral_VerifyRequest::byte1 -``` - -**描述** - -CDB的第一个字节。 - - -### byte6 - -``` -uint8_t ScsiPeripheral_VerifyRequest::byte6 -``` - -**描述** - -CDB的第六个字节。 - - -### control - -``` -uint8_t ScsiPeripheral_VerifyRequest::control -``` - -**描述** - -Control字段,用于指定一些控制信息。 - - -### lbAddress - -``` -uint32_t ScsiPeripheral_VerifyRequest::lbAddress -``` - -**描述** - -起始逻辑块地址。 - - -### timeout - -``` -uint32_t ScsiPeripheral_VerifyRequest::timeout -``` - -**描述** - -超时时间(单位:毫秒)。 - - -### verificationLength - -``` -uint16_t ScsiPeripheral_VerifyRequest::verificationLength -``` - -**描述** - -连续校验逻辑块的个数。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_serial_ddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_serial_ddk.md deleted file mode 100644 index d8042a90bd63d78c856ceaf81dd24444e924f600..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_serial_ddk.md +++ /dev/null @@ -1,670 +0,0 @@ -# USB Serial DDK - -## 概述 - -USB Serial DDK是为开发者提供的USB Serial DDK设备驱动程序开发套件,此模块提供USB Serial DDK接口,包括枚举类型和USB Serial DDK API使用的数据结构。 - -在工业用途场景以及一些老旧设备上,常会使用到串口通信,如:发卡机、身份证读卡器等。通过USB Serial DDK提供的接口,开发者可以开发非标外设扩展驱动,实现USB串口设备的扩展功能。 - -**系统能力:** SystemCapability.Driver.UsbSerial.Extension - -**起始版本:** 18 - - -## 汇总 - - -### 文件 - -| 名称 | 描述 | -| -------- | -------- | -| [usb_serial_api.h](usb__serial__ddk__api_8h.md) | 声明用于主机侧访问串口设备的USB Serial DDK接口。
引用文件:<serial/usb_serial_api.h>
库: libusb_serial.z.so | -| [usb_serial_types.h](usb__serial__ddk__types_8h.md) | 提供USB Serial DDK中的枚举变量、结构体定义与宏定义。
引用文件:<serial/usb_serial_types.h>
库: libusb_serial.z.so | - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| struct  [UsbSerial_Params](_usb_serial___params.md) | 定义USB Serial DDK使用的USB串口参数。 | - - -### 类型定义 - -| 名称 | 描述 | -| -------- | -------- | -| typedef struct [UsbSerial_DeviceHandle](#usbserial_devicehandle) [UsbSerial_DeviceHandle](#usbserial_devicehandle) | USB串口设备数据结构(不透明)。 | -| typedef struct [UsbSerial_Params](_usb_serial___params.md) \__attribute\__((aligned(8))) [UsbSerial_Params](_usb_serial___params.md) | USB Serial DDK使用的USB串口参数。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [UsbSerial_DdkRetCode](#usbserial_ddkretcode) {
USB_SERIAL_DDK_NO_PERM = 201, USB_SERIAL_DDK_INVALID_PARAMETER = 401, USB_SERIAL_DDK_SUCCESS = 31600000, USB_SERIAL_DDK_INVALID_OPERATION = 31600001, USB_SERIAL_DDK_INIT_ERROR = 31600002, USB_SERIAL_DDK_SERVICE_ERROR = 31600003, USB_SERIAL_DDK_MEMORY_ERROR = 31600004, USB_SERIAL_DDK_IO_ERROR = 31600005, USB_SERIAL_DDK_DEVICE_NOT_FOUND = 31600006
} | 定义USB Serial DDK使用的返回码。 | -| [UsbSerial_FlowControl](#usbserial_flowcontrol) { USB_SERIAL_NO_FLOW_CONTROL = 0, USB_SERIAL_SOFTWARE_FLOW_CONTROL = 1, USB_SERIAL_HARDWARE_FLOW_CONTROL = 2 } | 定义USB Serial DDK中的流量控制。 | -| [UsbSerial_Parity](#usbserial_parity) { USB_SERIAL_PARITY_NONE = 0, USB_SERIAL_PARITY_ODD = 1, USB_SERIAL_PARITY_EVEN = 2 } | 定义USB Serial DDK使用的校验参数枚举。 | - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| int32_t [OH_UsbSerial_Init](#oh_usbserial_init) (void) | 初始化USB Serial DDK。 | -| int32_t [OH_UsbSerial_Release](#oh_usbserial_release) (void) | 释放USB Serial DDK。 | -| int32_t [OH_UsbSerial_Open](#oh_usbserial_open) (uint64_t deviceId, uint8_t interfaceIndex, [UsbSerial_DeviceHandle](#usbserial_devicehandle) \*\*dev) | 通过deviceId和interfaceIndex打开USB串口设备。 | -| int32_t [OH_UsbSerial_Close](#oh_usbserial_close) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev) | 关闭USB串口设备。 | -| int32_t [OH_UsbSerial_Read](#oh_usbserial_read) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev, uint8_t \*buff, uint32_t bufferSize, uint32_t \*bytesRead) | 从USB串口设备读入数据到缓冲区。 | -| int32_t [OH_UsbSerial_Write](#oh_usbserial_write) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev, uint8_t \*buff, uint32_t bufferSize, uint32_t \*bytesWritten) | 将buff中的数据写入USB串口设备。 | -| int32_t [OH_UsbSerial_SetBaudRate](#oh_usbserial_setbaudrate) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev, uint32_t [baudRate](usb__serial__ddk__types_8h.md#baudrate)) | 设置USB串口设备的波特率。 如果USB串口设备的参数为默认值(数据位为8,停止位为1,数据传输无校验),则只需要调用该接口设置波特率。 | -| int32_t [OH_UsbSerial_SetParams](#oh_usbserial_setparams) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev, [UsbSerial_Params](_usb_serial___params.md) \*params) | 设置USB串口设备的参数。 如果USB串口设备的参数不为默认值(数据位默认为8,停止位默认为1,数据传输默认无校验),则需要调用该接口进行参数设置。 | -| int32_t [OH_UsbSerial_SetTimeout](#oh_usbserial_settimeout) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev, int timeout) | 设置读取USB串口设备上报数据的超时时间(毫秒)。 在不调用此函数的情况下,超时值默认为0,表示不管是否读取到数据都立即返回。如果需要等待一定的时间或者必须读取到数据,则调用该接口。 | -| int32_t [OH_UsbSerial_SetFlowControl](#oh_usbserial_setflowcontrol) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev, [UsbSerial_FlowControl](#usbserial_flowcontrol) flowControl) | 设置流控参数。 USB串口设备通信中的流控用于管理数据传输的速率,以确保发送方不会发送超过接收方处理能力的数据量。
如果USB串口设备实现了流控处理,则需要调用此接口。如果不调用此接口,默认为无流控。 | -| int32_t [OH_UsbSerial_Flush](#oh_usbserial_flush) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev) | 写入完成后清空输入和输出缓冲区。 在向USB串口设备发送数据时,可能会有大量数据缓冲在内核中等待发送。如果应用程序关闭文件描述符或者退出之前没有等待这些数据被实际发送出去,那么部分数据可能会丢失。调用该接口可以确保所有的数据都被发送完毕再继续执行后续操作。 | -| int32_t [OH_UsbSerial_FlushInput](#oh_usbserial_flushinput) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev) | 刷新输入缓冲区,缓冲区中的数据会被立刻清空。 在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 | -| int32_t [OH_UsbSerial_FlushOutput](#oh_usbserial_flushoutput) ([UsbSerial_DeviceHandle](#usbserial_devicehandle) \*dev) | 刷新输出缓冲区,缓冲区中的数据会被立刻清空。 在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 | - - -## 类型定义说明 - - -### UsbSerial_DeviceHandle - -``` -typedef struct UsbSerial_DeviceHandle UsbSerial_DeviceHandle -``` - -**描述** - -USB串口设备数据结构(不透明)。 - -**起始版本:** 18 - - -### UsbSerial_Params - -``` -typedef struct UsbSerial_Params \__attribute\__((aligned(8))) UsbSerial_Params -``` - -**描述** - -定义USB Serial DDK使用的USB串口参数。 - -**起始版本:** 18 - - -## 枚举类型说明 - - -### UsbSerial_DdkRetCode - -``` -enum UsbSerial_DdkRetCode -``` - -**描述** - -定义USB Serial DDK使用的返回码。 - -**起始版本:** 18 - -| 枚举值 | 描述 | -| -------- | -------- | -| USB_SERIAL_DDK_NO_PERM | 权限被拒绝。 | -| USB_SERIAL_DDK_INVALID_PARAMETER | 无效参数。 | -| USB_SERIAL_DDK_SUCCESS | 操作成功。 | -| USB_SERIAL_DDK_INVALID_OPERATION | 无效操作。 | -| USB_SERIAL_DDK_INIT_ERROR | 初始化失败。 | -| USB_SERIAL_DDK_SERVICE_ERROR | 服务错误。 | -| USB_SERIAL_DDK_MEMORY_ERROR | 内存相关错误,例如内存不足、内存数据复制失败或内存应用程序故障。 | -| USB_SERIAL_DDK_IO_ERROR | I/O 错误。 | -| USB_SERIAL_DDK_DEVICE_NOT_FOUND | 未找到设备。 | - - -### UsbSerial_FlowControl - -``` -enum UsbSerial_FlowControl -``` - -**描述** - -定义USB Serial DDK中的流量控制。 - -**起始版本:** 18 - -| 枚举值 | 描述 | -| -------- | -------- | -| USB_SERIAL_NO_FLOW_CONTROL | 无流量控制。 | -| USB_SERIAL_SOFTWARE_FLOW_CONTROL | 软件流控。 | -| USB_SERIAL_HARDWARE_FLOW_CONTROL | 硬件流控。 | - - -### UsbSerial_Parity - -``` -enum UsbSerial_Parity -``` - -**描述** - -定义USB Serial DDK使用的校验参数枚举。 - -**起始版本:** 18 - -| 枚举值 | 描述 | -| -------- | -------- | -| USB_SERIAL_PARITY_NONE | 无校验。 | -| USB_SERIAL_PARITY_ODD | 奇校验。 | -| USB_SERIAL_PARITY_EVEN | 偶校验。 | - - -## 函数说明 - - -### OH_UsbSerial_Close() - -``` -int32_t OH_UsbSerial_Close (UsbSerial_DeviceHandle * dev) -``` - -**描述** - -关闭USB串口设备。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:dev为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_Flush() - -``` -int32_t OH_UsbSerial_Flush (UsbSerial_DeviceHandle * dev) -``` - -**描述** - -写入完成后清空输入和输出缓冲区。 - -在向USB串口设备发送数据时,可能会有大量数据缓冲在内核中等待发送。如果应用程序关闭文件描述符或者退出之前没有等待这些数据被实际发送出去,那么部分数据可能会丢失。调用该接口可以确保所有的数据都被发送完毕再继续执行后续操作。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:dev为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_FlushInput() - -``` -int32_t OH_UsbSerial_FlushInput (UsbSerial_DeviceHandle * dev) -``` - -**描述** - -刷新输入缓冲区,缓冲区中的数据会被立刻清空。 在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。 - -调用该接口可以帮助清理这些异常状况,使通信恢复正常。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:dev为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_FlushOutput() - -``` -int32_t OH_UsbSerial_FlushOutput (UsbSerial_DeviceHandle * dev) -``` - -**描述** - -刷新输出缓冲区,缓冲区中的数据会被立刻清空。 在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。 - -调用该接口可以帮助清理这些异常状况,使通信恢复正常。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:dev为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_Init() - -``` -int32_t OH_UsbSerial_Init (void) -``` - -**描述** - -初始化USB Serial DDK。 - -**起始版本:** 18 - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INIT_ERROR 初始化DDK失败。 - - -### OH_UsbSerial_Open() - -``` -int32_t OH_UsbSerial_Open (uint64_t deviceId, uint8_t interfaceIndex, UsbSerial_DeviceHandle ** dev) -``` - -**描述** - -通过deviceId和interfaceIndex打开USB串口设备。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID,代表要操作的设备。 | -| interfaceIndex | 接口索引,对应USB协议中的[bInterfaceNumber](usb__ddk__types_8h.md#binterfacenumber)。 | -| dev | 设备句柄。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因为:dev为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_MEMORY_ERROR 内存不足。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_DEVICE_NOT_FOUND 找不到设备或接口。 - - -### OH_UsbSerial_Read() - -``` -int32_t OH_UsbSerial_Read (UsbSerial_DeviceHandle * dev, uint8_t * buff, uint32_t bufferSize, uint32_t * bytesRead) -``` - -**描述** - -从USB串口设备读入数据到缓冲区。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | -| buff | 保存从USB串口设备读取数据的缓冲区。 | -| bufferSize | 缓冲区的大小。 | -| bytesRead | 实际读取的字节数,如果设置了阻塞模式,则实际读取到的数据等于bufferSize后才会返回,
详见[OH_UsbSerial_SetTimeout](#oh_usbserial_settimeout)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:1. dev为空指针;2. buff为空指针;3. bufferSize等于0;4. bytesRead为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_MEMORY_ERROR buff地址无效。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_Release() - -``` -int32_t OH_UsbSerial_Release (void) -``` - -**描述** - -释放USB Serial DDK。 - -**起始版本:** 18 - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - - -### OH_UsbSerial_SetBaudRate() - -``` -int32_t OH_UsbSerial_SetBaudRate (UsbSerial_DeviceHandle * dev, uint32_t baudRate) -``` - -**描述** - -设置USB串口设备的波特率。 如果USB串口设备的参数为默认值(数据位为8,停止位为1,数据传输无校验),则只需要调用该接口设置波特率。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | -| baudRate | USB串口设备的波特率。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:dev为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_SetFlowControl() - -``` -int32_t OH_UsbSerial_SetFlowControl (UsbSerial_DeviceHandle * dev, UsbSerial_FlowControl flowControl) -``` - -**描述** - -设置流控参数。 USB串口设备通信中的流控用于管理数据传输的速率,以确保发送方不会发送超过接收方处理能力的数据量。 - -如果USB串口设备实现了流控处理,则需要调用此接口。如果不调用此接口,默认为无流控。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | -| flowControl | 流控方式,详见[UsbSerial_FlowControl](#usbserial_flowcontrol)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:dev为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_SetParams() - -``` -int32_t OH_UsbSerial_SetParams (UsbSerial_DeviceHandle * dev, UsbSerial_Params * params) -``` - -**描述** - -设置USB串口设备的参数。 如果USB串口设备的参数不为默认值(数据位默认为8,停止位默认为1,数据传输默认无校验),则需要调用该接口进行参数设置。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | -| params | 待设置的USB串口设备参数,详见[UsbSerial_Params](_usb_serial___params.md)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:1. dev为空指针;2. params为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_SetTimeout() - -``` -int32_t OH_UsbSerial_SetTimeout (UsbSerial_DeviceHandle * dev, int timeout) -``` - -**描述** - -设置读取USB串口设备上报数据的超时时间(毫秒)。 - -在不调用此函数的情况下,超时值默认为0,表示不管是否读取到数据都立即返回。如果需要等待一定的时间或者必须读取到数据,则调用该接口。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | -| timeout | 读取USB串口设备的超时时间,其取值范围为:
- (0, 25500]:以毫秒为单位的时间值,将其四舍五入为最接近的100毫秒后,作为实际的超时时间。 例如,输入12321,实际生效的超时时间为12300。
- 0:表示立即返回数据,不等待。
- -1:表示以阻塞方式读取数据,即读取数据时,只有读到指定长度的数据后才返回,详见[OH_UsbSerial_Read](#oh_usbserial_read)。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:1. dev为空指针;2. timeout <-1或timeout >25500。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 - - -### OH_UsbSerial_Write() - -``` -int32_t OH_UsbSerial_Write (UsbSerial_DeviceHandle * dev, uint8_t * buff, uint32_t bufferSize, uint32_t * bytesWritten) -``` - -**描述** - -将buff中的数据写入USB串口设备。 - -**起始版本:** 18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| dev | 设备句柄。 | -| buff | 写入USB串口设备数据的缓冲区。 | -| bufferSize | 缓冲区的大小。 | -| bytesWritten | 实际写入的字节数。 | - -**Permission:** - -ohos.permission.ACCESS_DDK_USB_SERIAL - -**返回:** - -- USB_SERIAL_DDK_SUCCESS 调用接口成功。 - -- USB_SERIAL_DDK_NO_PERM 权限校验失败。 - -- USB_SERIAL_DDK_INVALID_PARAMETER 参数检查失败。可能原因:1. dev为空指针;2. buff为空指针;3. bufferSize等于0;4. bytesWritten为空指针。 - -- USB_SERIAL_DDK_INIT_ERROR 未初始化DDK。 - -- USB_SERIAL_DDK_SERVICE_ERROR DDK服务通信失败。 - -- USB_SERIAL_DDK_IO_ERROR DDK发生I/O错误。 - -- USB_SERIAL_DDK_INVALID_OPERATION 无效操作。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_config_descriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_config_descriptor.md deleted file mode 100644 index c238b6160bcd0945cf624c8e9a36c10220dbe3e7..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_config_descriptor.md +++ /dev/null @@ -1,132 +0,0 @@ -# UsbConfigDescriptor - - -## 概述 - -标准配置描述符,对应USB协议中Standard Configuration Descriptor。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [bLength](#blength) | 该描述符的大小,单位为字节。 | -| [bDescriptorType](#bdescriptortype) | 描述符类型。 | -| [wTotalLength](#wtotallength) | 该配置描述符的总长度,包含配置、接口、端点和特定于类或供应商的描述符。 | -| [bNumInterfaces](#bnuminterfaces) | 该配置所支持的接口数量。 | -| [bConfigurationValue](#bconfigurationvalue) | 设置配置所需要的参数,用来选择当前配置。 | -| [iConfiguration](#iconfiguration) | 描述该配置的字符串描述符的索引。 | -| [bmAttributes](#bmattributes) | 配置属性,包含供电模式、远程唤醒等配置。 | -| [bMaxPower](#bmaxpower) | 总线供电的USB设备的最大功耗,以2mA为单位。 | - - -## 结构体成员变量说明 - - -### bConfigurationValue - - -``` -uint8_t UsbConfigDescriptor::bConfigurationValue -``` - -**描述:** - -设置配置所需要的参数,用来选择当前配置。 - - -### bDescriptorType - - -``` -uint8_t UsbConfigDescriptor::bDescriptorType -``` - -**描述:** - -描述符类型。 - - -### bLength - - -``` -uint8_t UsbConfigDescriptor::bLength -``` - -**描述:** - -该描述符的大小,单位为字节。 - - -### bmAttributes - - -``` -uint8_t UsbConfigDescriptor::bmAttributes -``` - -**描述:** - -配置属性,包含供电模式、远程唤醒等配置。 - - -### bMaxPower - - -``` -uint8_t UsbConfigDescriptor::bMaxPower -``` - -**描述:** - -总线供电的USB设备的最大功耗,以2mA为单位。 - - -### bNumInterfaces - - -``` -uint8_t UsbConfigDescriptor::bNumInterfaces -``` - -**描述:** - -该配置所支持的接口数量。 - - -### iConfiguration - - -``` -uint8_t UsbConfigDescriptor::iConfiguration -``` - -**描述:** - -描述该配置的字符串描述符的索引。 - - -### wTotalLength - - -``` -uint16_t UsbConfigDescriptor::wTotalLength -``` - -**描述:** - -该配置描述符的总长度,包含配置、接口、端点和特定于类或供应商的描述符。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_control_request_setup.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_control_request_setup.md deleted file mode 100644 index c1039ad5bcfc1e277b2433918877ae91d4f35963..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_control_request_setup.md +++ /dev/null @@ -1,93 +0,0 @@ -# UsbControlRequestSetup - - -## 概述 - -控制传输setup包,对应USB协议中的Setup Data。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [bmRequestType](#bmrequesttype) | 请求类型。 | -| [bRequest](#brequest) | 具体的请求,其代表的含义不一样。 | -| [wValue](#wvalue) | 具体的请求不同。 | -| [wIndex](#windex) | 具体的请求不同,其代表的含义不一样,通常用来传递索引或者偏移量。 | -| [wLength](#wlength) | 如果有数据阶段的传输,其代表传输的字节个数。 | - - -## 结构体成员变量说明 - - -### wIndex - - -``` -uint16_t UsbControlRequestSetup::wIndex -``` - -**描述:** - -具体的请求不同,其代表的含义不一样,通常用来传递索引或者偏移量。 - - -### wLength - - -``` -uint16_t UsbControlRequestSetup::wLength -``` - -**描述:** - -如果有数据阶段的传输,其代表传输的字节个数。 - - -### bRequest - - -``` -uint8_t UsbControlRequestSetup::bRequest -``` - -**描述:** - -具体的请求。 - - -### bmRequestType - - -``` -uint8_t UsbControlRequestSetup::bmRequestType -``` - -**描述:** - -请求类型。 - - -### wValue - - -``` -uint16_t UsbControlRequestSetup::wValue -``` - -**描述:** - -具体的请求不同,其代表的含义不一样。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk.md deleted file mode 100644 index a8b2fe7c0b5b82dc306e92ed99c043dc8996e85b..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk.md +++ /dev/null @@ -1,667 +0,0 @@ -# USB DDK - - -## 概述 - -提供USB DDK接口,包括主机侧打开和关闭接口、管道同步异步读写通信、控制传输、中断传输等。 - -**系统能力:** SystemCapability.Driver.USB.Extension - -**起始版本:** - -10 - -## 汇总 - - -### 文件 - -| 名称 | 描述 | -| -------- | -------- | -| [usb_ddk_api.h](usb__ddk__api_8h.md) | 声明用于主机侧访问设备的USB DDK接口。
引用文件:<usb/usb_ddk_api.h>
库: libusb_ndk.z.so| -| [usb_ddk_types.h](usb__ddk__types_8h.md) | 提供USB DDK中的枚举变量、结构体定义与宏定义。
引用文件:<usb/usb_ddk_types.h>
库: libusb_ndk.z.so| - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| [UsbControlRequestSetup](_usb_control_request_setup.md) | 控制传输setup包,对应USB协议中的Setup Data。 | -| [UsbDeviceDescriptor](_usb_device_descriptor.md) | 标准设备描述符,对应USB协议中Standard Device Descriptor。 | -| [UsbConfigDescriptor](_usb_config_descriptor.md) | 标准配置描述符,对应USB协议中Standard Configuration Descriptor。 | -| [UsbInterfaceDescriptor](_usb_interface_descriptor.md) | 标准接口描述符,对应USB协议中Standard Interface Descriptor。 | -| [UsbEndpointDescriptor](_usb_endpoint_descriptor.md) | 标准端点描述符,对应USB协议中Standard Endpoint Descriptor。 | -| [UsbDdkEndpointDescriptor](_usb_ddk_endpoint_descriptor.md) | 端点描述符。 | -| [UsbDdkInterfaceDescriptor](_usb_ddk_interface_descriptor.md) | 接口描述符。 | -| [UsbDdkInterface](_usb_ddk_interface.md) | USB接口,是特定接口下备用设置的集合。 | -| [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) | 配置描述符。 | -| [UsbRequestPipe](_usb_request_pipe.md) | 请求管道。 | -| [UsbDeviceMemMap](_usb_device_mem_map.md) | 设备内存映射,通过[OH_Usb_CreateDeviceMemMap()](#oh_usb_createdevicememmap)创建设备内存映射,使用内存映射后的缓冲区,获得更好的性能。 | -| [Usb_DeviceArray](_usb_device_array.md) | 设备ID清单,用于存放[OH_Usb_GetDevices()](#oh_usb_getdevices)接口获取到的设备ID列表和设备数量。 | - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [UsbDdkErrCode](#usbddkerrcode) {
USB_DDK_SUCCESS = 0, USB_DDK_NO_PERM = 201, USB_DDK_INVALID_PARAMETER = 401, USB_DDK_MEMORY_ERROR = 27400001,
USB_DDK_INVALID_OPERATION = 27400002, USB_DDK_IO_FAILED = 27400003, USB_DDK_TIMEOUT = 27400004
} | USB DDK 错误码定义。 | - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| [OH_Usb_Init](#oh_usb_init) (void) | 初始化DDK。 | -| [OH_Usb_Release](#oh_usb_release) (void) | 释放DDK。 | -| [OH_Usb_ReleaseResource](#oh_usb_releaseresource) (void) | 释放DDK。 | -| [OH_Usb_GetDeviceDescriptor](#oh_usb_getdevicedescriptor) (uint64_t deviceId, struct [UsbDeviceDescriptor](_usb_device_descriptor.md) \*desc) | 获取设备描述符。 | -| [OH_Usb_GetConfigDescriptor](#oh_usb_getconfigdescriptor) (uint64_t deviceId, uint8_t configIndex, struct [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) \*\*const config) | 获取配置描述符。请在描述符使用完后使用[OH_Usb_FreeConfigDescriptor()](#oh_usb_freeconfigdescriptor)释放描述符,否则会造成内存泄露。 | -| [OH_Usb_FreeConfigDescriptor](#oh_usb_freeconfigdescriptor) (const struct [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) \*const config) | 释放配置描述符,请在描述符使用完后释放描述符,否则会造成内存泄露。 | -| [OH_Usb_ClaimInterface](#oh_usb_claiminterface) (uint64_t deviceId, uint8_t interfaceIndex, uint64_t \*[interfaceHandle](usb__ddk__types_8h.md#interfacehandle)) | 声明接口。 | -| [OH_Usb_ReleaseInterface](#oh_usb_releaseinterface) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle)) | 释放接口。 | -| [OH_Usb_SelectInterfaceSetting](#oh_usb_selectinterfacesetting) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), uint8_t settingIndex) | 激活接口的备用设置。 | -| [OH_Usb_GetCurrentInterfaceSetting](#oh_usb_getcurrentinterfacesetting) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), uint8_t \*settingIndex) | 获取接口当前激活的备用设置。 | -| [OH_Usb_SendControlReadRequest](#oh_usb_sendcontrolreadrequest) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), const struct [UsbControlRequestSetup](_usb_control_request_setup.md) \*setup, uint32_t [timeout](usb__ddk__types_8h.md#timeout), uint8_t \*data, uint32_t \*dataLen) | 发送控制读请求,该接口为同步接口。 | -| [OH_Usb_SendControlWriteRequest](#oh_usb_sendcontrolwriterequest) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), const struct [UsbControlRequestSetup](_usb_control_request_setup.md) \*setup, uint32_t [timeout](usb__ddk__types_8h.md#timeout), const uint8_t \*data, uint32_t dataLen) | 发送控制写请求,该接口为同步接口。 | -| [OH_Usb_SendPipeRequest](#oh_usb_sendpiperequest) (const struct [UsbRequestPipe](_usb_request_pipe.md) \*pipe, [UsbDeviceMemMap](_usb_device_mem_map.md) \*devMmap) | 发送管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 | -| [OH_Usb_SendPipeRequestWithAshmem](#oh_usb_sendpiperequestwithashmem) (const struct [UsbRequestPipe](_usb_request_pipe.md) \*pipe, [DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 发送共享内存管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 | -| [OH_Usb_CreateDeviceMemMap](#oh_usb_createdevicememmap) (uint64_t deviceId, size_t size, [UsbDeviceMemMap](_usb_device_mem_map.md) \*\*devMmap) | 创建缓冲区。请在缓冲区使用完后,调用[OH_Usb_DestroyDeviceMemMap()](#oh_usb_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 | -| [OH_Usb_DestroyDeviceMemMap](#oh_usb_destroydevicememmap) ([UsbDeviceMemMap](_usb_device_mem_map.md) \*devMmap) | 销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 | -| [OH_Usb_GetDevices](#oh_usb_getdevices) ([Usb_DeviceArray](_usb_device_array.md) \*devices) | 获取USB设备ID列表。请保证传入的指针参数是有效的,申请设备的数量不要超过128个,在使用完结构之后,释放成员内存,否则造成资源泄露。获取到的USB设备ID,已通过驱动配置信息中的vid进行筛选过滤。 | - -#### 函数参数deviceId说明 - -设备ID(deviceId)的获取可通过外设查询接口queryDevices()查询。 -具体请查阅[扩展外设管理开发指导](../../device/driver/externaldevice-guidelines.md)。 - -#### 函数参数deviceId转换指导 - -通过外设查询接口queryDevices()获取到的deviceId,还需要通过数据转换,才能得到[OH_Usb_GetDeviceDescriptor](#oh_usb_getdevicedescriptor) 等函数的入参deviceId。 -

转换原理:提取queryDevices()获取到的deviceId的前32位作为C_API的deviceId。

-

以下代码仅供参考:

- - ~~~ -uint64_t JsDeviceIdToNative(uint64_t deviceId) -{ - uint32_t busNum = (uint32_t)(deviceId >> 48); - uint32_t devNum = (uint32_t)((deviceId & 0x0000FFFF00000000) >> 32); - return (((static_cast(busNum)) << 32) | devNum); -} -~~~ - -## 类型定义说明 - -### UsbDdkEndpointDescriptor - -``` -typedef struct UsbDdkEndpointDescriptor UsbDdkEndpointDescriptor -``` - -**描述** - -端点描述符。 - -**起始版本:** 10 - -### UsbDdkInterfaceDescriptor - -``` -typedef struct UsbDdkInterfaceDescriptor UsbDdkInterfaceDescriptor -``` - -**描述** - -接口描述符。 - -**起始版本:** 10 - -### UsbDdkInterface - -``` -typedef struct UsbDdkInterface UsbDdkInterface -``` - -**描述** - -USB接口。 - -**起始版本:** 10 - -### UsbDdkConfigDescriptor - -``` -typedef struct UsbDdkConfigDescriptor UsbDdkConfigDescriptor -``` - -**描述** - -配置描述符。 - -**起始版本:** 10 - -### UsbDeviceMemMap - -``` -typedef struct UsbDeviceMemMap UsbDeviceMemMap -``` - -**描述** - - 设备内存映射,通过[OH_Usb_CreateDeviceMemMap()](_usb_ddk.md#oh_usb_createdevicememmap)创建设备内存映射,使用内存映射后的缓冲区,获得更好的性能。 - -**起始版本:** 10 - -### Usb_DeviceArray - -``` -typedef struct Usb_DeviceArray usb_DeviceArray -``` - -**描述** - -设备ID清单,用于存放[OH_Usb_GetDevices()](_usb_ddk.md#oh_usb_getdevices)接口获取到的设备ID列表和设备数量。 - -**起始版本:** 10 - -## 枚举类型说明 - -### UsbDdkErrCode - - -``` -enum UsbDdkErrCode -``` - -**描述:** - -USB DDK 错误码定义。 - -**起始版本:** 10 - -| 枚举定义 | 值 | 描述 | -| -------- | -------- |-------- | -| USB_DDK_SUCCESS | 0 | 操作成功。 | -| USB_DDK_NO_PERM | 201 | 操作失败。 | -| USB_DDK_INVALID_PARAMETER | 401 | 非法参数。 | -| USB_DDK_MEMORY_ERROR | 27400001 | 内存相关的错误,包括:内存不足、内存数据拷贝失败、内存申请失败等。 | -| USB_DDK_INVALID_OPERATION | 27400002 | 非法操作。 | -| USB_DDK_IO_FAILED | 27400003 | 设备I/O操作失败。 | -| USB_DDK_TIMEOUT | 27400004 | 传输超时。 | - - -## 函数说明 - - -### OH_Usb_ClaimInterface() - - -``` -int32_t OH_Usb_ClaimInterface (uint64_t deviceId, uint8_t interfaceIndex, uint64_t * interfaceHandle) -``` - -**描述:** - -声明接口。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID,代表要操作的设备。 | -| interfaceIndex | 接口索引,对应USB协议中的[bInterfaceNumber](_usb_interface_descriptor.md#binterfacenumber)。 | -| interfaceHandle | 接口操作句柄,接口声明成功后,该参数将会被赋值。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参interfaceHandle为空指针。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):表示内存超过限制。 - -### OH_Usb_CreateDeviceMemMap() - - -``` -int32_t OH_Usb_CreateDeviceMemMap (uint64_t deviceId, size_t size, UsbDeviceMemMap ** devMmap) -``` - -**描述:** - -创建缓冲区。请在缓冲区使用完后,调用[OH_Usb_DestroyDeviceMemMap()](#oh_usb_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID,代表要创建缓冲区的设备。 | -| size | 缓冲区的大小。 | -| devMmap | 创建的缓冲区通过该参数返回给调用者。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参devMmap为空指针。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):表示mmap失败或者申请devMmap的内存空间失败。 - - -### OH_Usb_DestroyDeviceMemMap() - - -``` -void OH_Usb_DestroyDeviceMemMap (UsbDeviceMemMap * devMmap) -``` - -**描述:** - -销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| devMmap | 销毁由[OH_Usb_CreateDeviceMemMap()](#oh_usb_createdevicememmap)创建的缓冲区。 | - - -### OH_Usb_FreeConfigDescriptor() - - -``` -void OH_Usb_FreeConfigDescriptor (struct UsbDdkConfigDescriptor *const config) -``` - -**描述:** - -释放配置描述符,请在描述符使用完后释放描述符,否则会造成内存泄露。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| config | 配置描述符,通过[OH_Usb_GetConfigDescriptor()](#oh_usb_getconfigdescriptor)获得的配置描述符。 | - - -### OH_Usb_GetConfigDescriptor() - - -``` -int32_t OH_Usb_GetConfigDescriptor (uint64_t deviceId, uint8_t configIndex, struct UsbDdkConfigDescriptor **const config) -``` - -**描述:** - -获取配置描述符。请在描述符使用完后使用[OH_Usb_FreeConfigDescriptor()](#oh_usb_freeconfigdescriptor)释放描述符,否则会造成内存泄露。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID,代表要获取配置描述符的设备。 | -| configIndex | 配置id,对应USB协议中的[bConfigurationValue](_usb_config_descriptor.md#bconfigurationvalue)。 | -| config | 配置描述符,包含USB协议中定义的标准配置描述符,以及与其关联的接口描述符和端点描述符。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参config为空指针。 -- [USB_DDK_IO_FAILED](#usbddkerrcode):表示设备I/O操作失败。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):内存分配失败。 - - -### OH_Usb_GetCurrentInterfaceSetting() - - -``` -int32_t OH_Usb_GetCurrentInterfaceSetting (uint64_t interfaceHandle, uint8_t * settingIndex) -``` - -**描述:** - -获取接口当前激活的备用设置。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| interfaceHandle | 接口操作句柄,代表要操作的接口。 | -| settingIndex | 备用设置索引,对应USB协议中的[bAlternateSetting](_usb_interface_descriptor.md#balternatesetting)。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参settingIndex为空指针。 - - -### OH_Usb_GetDeviceDescriptor() - - -``` -int32_t OH_Usb_GetDeviceDescriptor (uint64_t deviceId, struct UsbDeviceDescriptor * desc) -``` - -**描述:** - -获取设备描述符。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| deviceId | 设备ID,代表要获取描述符的设备。 | -| desc | 设备描述符,详细定义请参考[UsbDeviceDescriptor](_usb_device_descriptor.md)。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):内存分配失败。 - -### OH_Usb_Init() - - -``` -int32_t OH_Usb_Init (void ) -``` - -**描述:** - -初始化DDK。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 - -### OH_Usb_Release() - - -``` -void OH_Usb_Release (void) -``` - -**描述:** - -释放DDK。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本:** 10 - -### OH_Usb_ReleaseResource() - -``` -int32_t OH_Usb_ReleaseResource (void) -``` - -**描述:** - -释放DDK。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:18 - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 - -### OH_Usb_ReleaseInterface() - -``` -int32_t OH_Usb_ReleaseInterface (uint64_t interfaceHandle) -``` - -**描述:** - -释放接口。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| interfaceHandle | 接口操作句柄,代表要释放的接口。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示参数错误。 - - -### OH_Usb_SelectInterfaceSetting() - - -``` -int32_t OH_Usb_SelectInterfaceSetting (uint64_t interfaceHandle, uint8_t settingIndex) -``` - -**描述:** - -激活接口的备用设置。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| interfaceHandle | 接口操作句柄,代表要操作的接口。 | -| settingIndex | 备用设置索引,对应USB协议中的[bAlternateSetting](_usb_interface_descriptor.md#balternatesetting)。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示参数错误。 - -### OH_Usb_SendControlReadRequest() - - -``` -int32_t OH_Usb_SendControlReadRequest (uint64_t interfaceHandle, const struct UsbControlRequestSetup * setup, uint32_t timeout, uint8_t * data, uint32_t * dataLen) -``` - -**描述:** - -发送控制读请求,该接口为同步接口。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| interfaceHandle | 接口操作句柄,代表要操作的接口。 | -| setup | 请求相关的参数,详细定义请参考 [UsbControlRequestSetup](_usb_control_request_setup.md)。 | -| timeout | 超时时间,单位为毫秒。 | -| data | 要传输的数据。 | -| dataLen | 表示data的数据长度,在函数返回后,表示实际读取到的数据的长度。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参setup、data或者dataLen为空指针,亦或datalen小于读取到的数据长度。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):表示拷贝读取数据的内存失败。 -- [USB_DDK_IO_FAILED](#usbddkerrcode):表示设备I/O操作失败。 -- [USB_DDK_TIMEOUT](#usbddkerrcode):表示请求超时。 - - -### OH_Usb_SendControlWriteRequest() - - -``` -int32_t OH_Usb_SendControlWriteRequest (uint64_t interfaceHandle, const struct UsbControlRequestSetup * setup, uint32_t timeout, const uint8_t * data, uint32_t dataLen) -``` - -**描述:** - -发送控制写请求,该接口为同步接口。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| interfaceHandle | 接口操作句柄,代表要操作的接口。 | -| setup | 请求相关的参数,详细定义请参考 [UsbControlRequestSetup](_usb_control_request_setup.md)。 | -| timeout | 超时时间,单位为毫秒。 | -| data | 要传输的数据。 | -| dataLen | 表示data的数据长度。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参setup或者data为空指针。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):表示拷贝读取数据的内存失败。 -- [USB_DDK_IO_FAILED](#usbddkerrcode):表示设备I/O操作失败。 -- [USB_DDK_TIMEOUT](#usbddkerrcode):表示请求超时。 - - -### OH_Usb_SendPipeRequest() - - -``` -int32_t OH_Usb_SendPipeRequest (const struct UsbRequestPipe * pipe, UsbDeviceMemMap * devMmap) -``` - -**描述:** - -发送管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:10 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| pipe | 要传输数据的管道信息。 | -| devMmap | 数据缓冲区,可以通过[OH_Usb_CreateDeviceMemMap()](#oh_usb_createdevicememmap)获得。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参pipe、devMmap或者devMmap的地址为空指针。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):表示拷贝读取数据的内存失败。 -- [USB_DDK_IO_FAILED](#usbddkerrcode):表示设备I/O操作失败。 -- [USB_DDK_TIMEOUT](#usbddkerrcode):表示请求超时。 - -### OH_Usb_SendPipeRequestWithAshmem() - - -``` -int32_t OH_Usb_SendPipeRequestWithAshmem(const struct UsbRequestPipe *pipe, DDK_Ashmem *ashmem) -``` - -**描述:** - -发送共享内存的管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:12 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| pipe | 要传输数据的管道信息。 | -| ashmem | 共享内存,可以通过[OH_DDK_CreateAshmem()](_base_ddk.md#oh_ddk_createashmem)获得。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示入参pipe、ashmem或者ashmem的地址为空指针。 -- [USB_DDK_MEMORY_ERROR](#usbddkerrcode):表示拷贝读取数据的内存失败。 -- [USB_DDK_IO_FAILED](#usbddkerrcode):表示设备I/O操作失败。 -- [USB_DDK_TIMEOUT](#usbddkerrcode):表示请求超时。 - -### OH_Usb_GetDevices() - - -``` -int32_t OH_Usb_GetDevices(struct Usb_DeviceArray *devices) -``` - -**描述:** - -获取USB设备ID列表。请保证传入的指针参数是有效的,申请设备的数量不要超过128个,在使用完结构之后,释放成员内存,否则造成资源泄露。获取到的USB设备ID,已通过驱动配置信息中的vid进行筛选过滤。 - -**需要权限**:ohos.permission.ACCESS_DDK_USB - -**起始版本**:18 - -**参数:** - -| 名称 | 描述 | -| -------- | -------- | -| devices | 已申请好的设备内存地址,用于存放获取到的设备ID列表及数量。 | - -**返回:** - -- [USB_DDK_SUCCESS](#usbddkerrcode):表示调用接口成功。 -- [USB_DDK_NO_PERM](#usbddkerrcode):表示权限校验失败。 -- [USB_DDK_INVALID_OPERATION](#usbddkerrcode):表示连接usb_ddk服务失败。 -- [USB_DDK_INVALID_PARAMETER](#usbddkerrcode):表示参数devices的地址为空指针。 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_config_descriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_config_descriptor.md deleted file mode 100644 index c2cf28ad5bd78b7b4a27c85986cebedd4d3dc6b1..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_config_descriptor.md +++ /dev/null @@ -1,80 +0,0 @@ -# UsbDdkConfigDescriptor - - -## 概述 - -配置描述符。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [configDescriptor](#configdescriptor) | 标准配置描述符。 | -| [interface](#interface) | 该配置所包含的接口。 | -| [extra](#extra) | 未做解析的描述符,包含特定于类或供应商的描述符。 | -| [extraLength](#extralength) | 未做解析的描述符长度。 | - - -## 结构体成员变量说明 - - -### configDescriptor - - -``` -struct UsbConfigDescriptor UsbDdkConfigDescriptor::configDescriptor -``` - -**描述:** - -标准配置描述符。 - - -### extra - - -``` -const uint8_t* UsbDdkConfigDescriptor::extra -``` - -**描述:** - -未做解析的描述符,包含特定于类或供应商的描述符。 - - -### extraLength - - -``` -uint32_t UsbDdkConfigDescriptor::extraLength -``` - -**描述:** - -未做解析的描述符长度。 - - -### interface - - -``` -struct UsbDdkInterface* UsbDdkConfigDescriptor::interface -``` - -**描述:** - -该配置所包含的接口。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_endpoint_descriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_endpoint_descriptor.md deleted file mode 100644 index 459138468e91becb9b54ed2d5130a4d05987fe5b..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_endpoint_descriptor.md +++ /dev/null @@ -1,67 +0,0 @@ -# UsbDdkEndpointDescriptor - - -## 概述 - -端点描述符。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [endpointDescriptor](#endpointdescriptor) | 标准端点描述符。 | -| [extra](#extra) | 未做解析的描述符,包含特定于类或供应商的描述符。 | -| [extraLength](#extralength) | 未做解析的描述符长度。 | - - -## 结构体成员变量说明 - - -### endpointDescriptor - - -``` -struct UsbEndpointDescriptor UsbDdkEndpointDescriptor::endpointDescriptor -``` - -**描述:** - -标准端点描述符。 - - -### extra - - -``` -const uint8_t* UsbDdkEndpointDescriptor::extra -``` - -**描述:** - -未做解析的描述符,包含特定于类或供应商的描述符。 - - -### extraLength - - -``` -uint32_t UsbDdkEndpointDescriptor::extraLength -``` - -**描述:** - -未做解析的描述符长度。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_interface.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_interface.md deleted file mode 100644 index 25daf93ed3851886c3363e68a722e8de3acb5491..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_interface.md +++ /dev/null @@ -1,54 +0,0 @@ -# UsbDdkInterface - - -## 概述 - -USB接口,是特定接口下备用设置的集合。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [numAltsetting](#numaltsetting) | 接口的备用设置数量。 | -| [altsetting](#altsetting) | 接口的备用设置。 | - - -## 结构体成员变量说明 - - -### altsetting - - -``` -struct UsbDdkInterfaceDescriptor* UsbDdkInterface::altsetting -``` - -**描述:** - -接口的备用设置。 - - -### numAltsetting - - -``` -uint8_t UsbDdkInterface::numAltsetting -``` - -**描述:** - -接口的备用设置数量。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_interface_descriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_interface_descriptor.md deleted file mode 100644 index 05a9dedf20a0e17810233aa4bd90a37a8fc72aef..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_ddk_interface_descriptor.md +++ /dev/null @@ -1,80 +0,0 @@ -# UsbDdkInterfaceDescriptor - - -## 概述 - -接口描述符。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [interfaceDescriptor](#interfacedescriptor) | 标准接口描述符。 | -| [endPoint](#endpoint) | 该接口所包含的端点描述符。 | -| [extra](#extra) | 未做解析的描述符,包含特定于类或供应商的描述符。 | -| [extraLength](#extralength) | 未做解析的描述符长度。 | - - -## 结构体成员变量说明 - - -### endPoint - - -``` -struct UsbDdkEndpointDescriptor* UsbDdkInterfaceDescriptor::endPoint -``` - -**描述:** - -该接口所包含的端点描述符。 - - -### extra - - -``` -const uint8_t* UsbDdkInterfaceDescriptor::extra -``` - -**描述:** - -未做解析的描述符,包含特定于类或供应商的描述符。 - - -### extraLength - - -``` -uint32_t UsbDdkInterfaceDescriptor::extraLength -``` - -**描述:** - -未做解析的描述符长度。 - - -### interfaceDescriptor - - -``` -struct UsbInterfaceDescriptor UsbDdkInterfaceDescriptor::interfaceDescriptor -``` - -**描述:** - -标准接口描述符。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_array.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_array.md deleted file mode 100644 index 17bce3fb30f6800d2295450c1ce622e744e36577..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_array.md +++ /dev/null @@ -1,51 +0,0 @@ -# Usb_DeviceArray - - -## 概述 - -设备ID清单,用于存放[OH_Usb_GetDevices()](_usb_ddk.md#oh_usb_getdevices)接口获取到的设备ID列表和设备数量。 - -**起始版本:** - -18 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [deviceIds](#deviceids) | 开发者申请好的设备数组首地址。 | -| [num](#num) | 实际返回的设备数量。 | - -## 结构体成员变量说明 - - -### deviceIds - - -``` -uint64_t* Usb_DeviceArray::deviceIds -``` - -**描述:** - -开发者申请好的设备数组首地址,申请的大小不超过128个设备ID。 -### num - - -``` -uint32_t Usb_DeviceArray::num -``` - -**描述:** - -实际返回的设备数量,根据数量遍历deviceIds获得设备ID。当该值为0时,表示不存在USB设备。 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_descriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_descriptor.md deleted file mode 100644 index 7c8e2617e2ebda4245d79a6b311b21d51508b74a..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_descriptor.md +++ /dev/null @@ -1,210 +0,0 @@ -# UsbDeviceDescriptor - - -## 概述 - -标准设备描述符,对应USB协议中Standard Device Descriptor。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [bLength](#blength) | 该描述符的大小,单位为字节。 | -| [bDescriptorType](#bdescriptortype) | 描述符类型。 | -| [bcdUSB](#bcdusb) | USB协议发布号。 | -| [bDeviceClass](#bdeviceclass) | 由USB标准化组织(USB-IF)分配的设备类代码。 | -| [bDeviceSubClass](#bdevicesubclass) | 由USB标准化组织(USB-IF)分配的子类代码,其值由[bDeviceClass](#bdeviceclass)的值限定。 | -| [bDeviceProtocol](#bdeviceprotocol) | 由USB标准化组织(USB-IF)分配的协议代码,其值由[bDeviceClass](#bdeviceclass)和[bDeviceSubClass](#bdevicesubclass)的值限定。 | -| [bMaxPacketSize0](#bmaxpacketsize0) | 端点零的最大包大小,只有8,16,32,64是合法的。 | -| [idVendor](#idvendor) | 由USB标准化组织(USB-IF)分配的厂商编号。 | -| [idProduct](#idproduct) | 由厂商分配的产品编号。 | -| [bcdDevice](#bcddevice) | 设备发布编号。 | -| [iManufacturer](#imanufacturer) | 描述厂商的字符串描述符的索引。 | -| [iProduct](#iproduct) | 描述产品的字符串描述符的索引。 | -| [iSerialNumber](#iserialnumber) | 描述设备序列号的字符串描述符的索引。 | -| [bNumConfigurations](#bnumconfigurations) | 配置数量。 | - - -## 结构体成员变量说明 - - -### bcdDevice - - -``` -uint16_t UsbDeviceDescriptor::bcdDevice -``` - -**描述:** - -设备发布编号。 - - -### bcdUSB - - -``` -uint16_t UsbDeviceDescriptor::bcdUSB -``` - -**描述:** - -USB协议发布号。 - - -### bDescriptorType - - -``` -uint8_t UsbDeviceDescriptor::bDescriptorType -``` - -**描述:** - -描述符类型。 - - -### bDeviceClass - - -``` -uint8_t UsbDeviceDescriptor::bDeviceClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的设备类代码。 - - -### bDeviceProtocol - - -``` -uint8_t UsbDeviceDescriptor::bDeviceProtocol -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的协议代码,其值由[bDeviceClass](#bdeviceclass)和[bDeviceSubClass](#bdevicesubclass)的值限定。 - - -### bDeviceSubClass - - -``` -uint8_t UsbDeviceDescriptor::bDeviceSubClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的子类代码,其值由[bDeviceClass](#bdeviceclass)的值限定。 - - -### bLength - - -``` -uint8_t UsbDeviceDescriptor::bLength -``` - -**描述:** - -该描述符的大小,单位为字节。 - - -### bMaxPacketSize0 - - -``` -uint8_t UsbDeviceDescriptor::bMaxPacketSize0 -``` - -**描述:** - -端点零的最大包大小,只有8、16、32、64是合法的。 - - -### bNumConfigurations - - -``` -uint8_t UsbDeviceDescriptor::bNumConfigurations -``` - -**描述:** - -配置数量。 - - -### idProduct - - -``` -uint16_t UsbDeviceDescriptor::idProduct -``` - -**描述:** - -由厂商分配的产品编号。 - - -### idVendor - - -``` -uint16_t UsbDeviceDescriptor::idVendor -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的厂商编号。 - - -### iManufacturer - - -``` -uint8_t UsbDeviceDescriptor::iManufacturer -``` - -**描述:** - -描述厂商的字符串描述符的索引。 - - -### iProduct - - -``` -uint8_t UsbDeviceDescriptor::iProduct -``` - -**描述:** - -描述产品的字符串描述符的索引。 - - -### iSerialNumber - - -``` -uint8_t UsbDeviceDescriptor::iSerialNumber -``` - -**描述:** - -描述设备序列号的字符串描述符的索引。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_mem_map.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_mem_map.md deleted file mode 100644 index 5757ea8b99b193bdfab1c5a5d7008fabab75779a..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_device_mem_map.md +++ /dev/null @@ -1,93 +0,0 @@ -# UsbDeviceMemMap - - -## 概述 - -设备内存映射,通过[OH_Usb_CreateDeviceMemMap()](_usb_ddk.md#oh_usb_createdevicememmap)创建设备内存映射,使用内存映射后的缓冲区,获得更好的性能。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [address](#address) | 映射后的缓冲区地址。 | -| [size](#size) | 缓冲区大小。 | -| [offset](#offset) | 所使用的缓冲区的偏移量,默认为0,表示没有偏移,从address开始。 | -| [bufferLength](#bufferlength) | 所使用的缓冲区的长度,默认等于size,表示使用全部的缓冲区。 | -| [transferedLength](#transferedlength) | 实际传输的数据的长度。 | - - -## 结构体成员变量说明 - - -### address - - -``` -uint8_t* const UsbDeviceMemMap::address -``` - -**描述:** - -映射后的缓冲区地址。 - - -### bufferLength - - -``` -uint32_t UsbDeviceMemMap::bufferLength -``` - -**描述:** - -所使用的缓冲区的长度,默认等于size,表示使用全部的缓冲区。 - - -### offset - - -``` -uint32_t UsbDeviceMemMap::offset -``` - -**描述:** - -所使用的缓冲区的偏移量,默认为0,表示没有偏移,从address开始。 - - -### size - - -``` -const size_t UsbDeviceMemMap::size -``` - -**描述:** - -缓冲区大小。 - - -### transferedLength - - -``` -uint32_t UsbDeviceMemMap::transferedLength -``` - -**描述:** - -实际传输的数据的长度。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_endpoint_descriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_endpoint_descriptor.md deleted file mode 100644 index cf719e41a1295c041795689bd881a4117175bb13..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_endpoint_descriptor.md +++ /dev/null @@ -1,132 +0,0 @@ -# UsbEndpointDescriptor - - -## 概述 - -标准端点描述符,对应USB协议中Standard Endpoint Descriptor。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [bLength](#blength) | 该描述符的大小,单位为字节。 | -| [bDescriptorType](#bdescriptortype) | 描述符类型。 | -| [bEndpointAddress](#bendpointaddress) | 端点地址,包含端点编号以及端点方向。 | -| [bmAttributes](#bmattributes) | 端点属性,包括传输类型、同步类型、使用类型。 | -| [wMaxPacketSize](#wmaxpacketsize) | 该端点所能承载的最大包的大小。 | -| [bInterval](#binterval) | 数据传输轮询端点的时间间隔。 | -| [bRefresh](#brefresh) | 用于音频类设备,同步反馈的速率。 | -| [bSynchAddress](#bsynchaddress) | 用于音频类设备,同步端点的地址。 | - - -## 结构体成员变量说明 - - -### bDescriptorType - - -``` -uint8_t UsbEndpointDescriptor::bDescriptorType -``` - -**描述:** - -描述符类型。 - - -### bEndpointAddress - - -``` -uint8_t UsbEndpointDescriptor::bEndpointAddress -``` - -**描述:** - -端点地址,包含端点编号以及端点方向。 - - -### bInterval - - -``` -uint8_t UsbEndpointDescriptor::bInterval -``` - -**描述:** - -数据传输轮询端点的时间间隔。 - - -### bLength - - -``` -uint8_t UsbEndpointDescriptor::bLength -``` - -**描述:** - -该描述符的大小,单位为字节。 - - -### bmAttributes - - -``` -uint8_t UsbEndpointDescriptor::bmAttributes -``` - -**描述:** - -端点属性,包括传输类型、同步类型、使用类型。 - - -### bRefresh - - -``` -uint8_t UsbEndpointDescriptor::bRefresh -``` - -**描述:** - -用于音频类设备,同步反馈的速率。 - - -### bSynchAddress - - -``` -uint8_t UsbEndpointDescriptor::bSynchAddress -``` - -**描述:** - -用于音频类设备,同步端点的地址。 - - -### wMaxPacketSize - - -``` -uint16_t UsbEndpointDescriptor::wMaxPacketSize -``` - -**描述:** - -该端点所能承载的最大包的大小。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_interface_descriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_interface_descriptor.md deleted file mode 100644 index 916c12e9c643e4a47e4b7196c5609ee4dcc8ee1a..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_interface_descriptor.md +++ /dev/null @@ -1,145 +0,0 @@ -# UsbInterfaceDescriptor - - -## 概述 - -标准接口描述符,对应USB协议中Standard Interface Descriptor。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [bLength](#blength) | 该描述符的大小,单位为字节。 | -| [bDescriptorType](#bdescriptortype) | 描述符类型。 | -| [bInterfaceNumber](#binterfacenumber) | 接口编号。 | -| [bAlternateSetting](#balternatesetting) | 用来选择该接口的备用配置的值。 | -| [bNumEndpoints](#bnumendpoints) | 该接口所使用的端点数量(不包括端点零)。 | -| [bInterfaceClass](#binterfaceclass) | 由USB标准化组织(USB-IF)分配的设备类代码。 | -| [bInterfaceSubClass](#binterfacesubclass) | 由USB标准化组织(USB-IF)分配的子类代码,其值由[bInterfaceClass](#binterfaceclass)的值限定。 | -| [bInterfaceProtocol](#binterfaceprotocol) | 由USB标准化组织(USB-IF)分配的协议代码,其值由[bInterfaceClass](#binterfaceclass)和[bInterfaceSubClass](#binterfacesubclass)的值限定。 | -| [iInterface](#iinterface) | 描述该接口的字符串描述符的索引。 | - - -## 结构体成员变量说明 - - -### bAlternateSetting - - -``` -uint8_t UsbInterfaceDescriptor::bAlternateSetting -``` - -**描述:** - -用来选择该接口的备用配置的值。 - - -### bDescriptorType - - -``` -uint8_t UsbInterfaceDescriptor::bDescriptorType -``` - -**描述:** - -描述符类型。 - - -### bInterfaceClass - - -``` -uint8_t UsbInterfaceDescriptor::bInterfaceClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的设备类代码。 - - -### bInterfaceNumber - - -``` -uint8_t UsbInterfaceDescriptor::bInterfaceNumber -``` - -**描述:** - -接口编号。 - - -### bInterfaceProtocol - - -``` -uint8_t UsbInterfaceDescriptor::bInterfaceProtocol -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的协议代码,其值由[bInterfaceClass](#binterfaceclass)和[bInterfaceSubClass](#binterfacesubclass)的值限定。 - - -### bInterfaceSubClass - - -``` -uint8_t UsbInterfaceDescriptor::bInterfaceSubClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的子类代码,其值由[bInterfaceClass](#binterfaceclass)的值限定。 - - -### bLength - - -``` -uint8_t UsbInterfaceDescriptor::bLength -``` - -**描述:** - -该描述符的大小,单位为字节。 - - -### bNumEndpoints - - -``` -uint8_t UsbInterfaceDescriptor::bNumEndpoints -``` - -**描述:** - -该接口所使用的端点数量(不包括端点零)。 - - -### iInterface - - -``` -uint8_t UsbInterfaceDescriptor::iInterface -``` - -**描述:** - -描述该接口的字符串描述符的索引。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_request_pipe.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_request_pipe.md deleted file mode 100644 index 84894d2a07628da07764020c1335d6942b000567..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_request_pipe.md +++ /dev/null @@ -1,67 +0,0 @@ -# UsbRequestPipe - - -## 概述 - -请求管道。 - -**起始版本:** - -10 - -**相关模块:** - -[USB DDK](_usb_ddk.md) - -**所在头文件:** [usb_ddk_types.h](usb__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [interfaceHandle](#interfacehandle) | 接口操作句柄。 | -| [endpoint](#endpoint) | 要通信的端点的地址。 | -| [timeout](#timeout) | 超时时间,单位是毫秒。 | - - -## 结构体成员变量说明 - - -### endpoint - - -``` -uint8_t UsbRequestPipe::endpoint -``` - -**描述:** - -要通信的端点的地址。 - - -### interfaceHandle - - -``` -uint64_t UsbRequestPipe::interfaceHandle -``` - -**描述:** - -接口操作句柄。 - - -### timeout - - -``` -uint32_t UsbRequestPipe::timeout -``` - -**描述:** - -超时时间,单位是毫秒。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_serial___params.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_serial___params.md deleted file mode 100644 index 26b698d0c36672745d1a30584e86e91570be1479..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/_usb_serial___params.md +++ /dev/null @@ -1,72 +0,0 @@ -# UsbSerial_Params - - -## 概述 - -定义USB Serial DDK使用的USB串口参数。 - -**起始版本:** 18 - -**相关模块:** [USB Serial DDK](_serial_ddk.md) - -**所在头文件:** [usb_serial_types.h](usb__serial__ddk__types_8h.md) - - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint32_t [baudRate](#baudrate) | 波特率。 | -| uint8_t [nDataBits](#ndatabits) | 数据传输位数。 | -| uint8_t [nStopBits](#nstopbits) | 数据停止位数。 | -| uint8_t [parity](#parity) | 校验参数设置。 | - - -## 结构体成员变量说明 - - -### baudRate - -``` -uint32_t UsbSerial_Params::baudRate -``` - -**描述** - -波特率。 - - -### nDataBits - -``` -uint8_t UsbSerial_Params::nDataBits -``` - -**描述** - -数据传输位数。 - - -### nStopBits - -``` -uint8_t UsbSerial_Params::nStopBits -``` - -**描述** - -数据停止位数。 - - -### parity - -``` -uint8_t UsbSerial_Params::parity -``` - -**描述** - -校验参数设置。 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-baseddk-ddk-ashmem.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-baseddk-ddk-ashmem.md new file mode 100644 index 0000000000000000000000000000000000000000..83972777b1e13a3305fffcd411a4bcf81479d6ee --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-baseddk-ddk-ashmem.md @@ -0,0 +1,26 @@ +# DDK_Ashmem + +## 概述 + +定义通过接口OH_DDK_CreateAshmem创建的共享内存,共享内存的缓冲区提供更好的性能。 + +**起始版本:** 12 + +**相关模块:** [BaseDdk](capi-baseddk.md) + +**所在头文件:** [ddk_types.h](capi-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| int32_t ashmemFd | 共享内存的文件描述符。 | +| const uint8_t* address | 缓存区地址。 | +| const uint32_t size | 缓存区大小。 | +| uint32_t offset | 已使用缓冲区的偏移量。默认值为0,表示没有偏移,缓冲区从指定地址开始。 | +| uint32_t bufferLength | 使用的缓冲区长度。默认情况下,该值等于size,表示使用整个缓冲区。 | +| uint32_t transferredLength | 传输数据的长度。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-baseddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-baseddk.md new file mode 100644 index 0000000000000000000000000000000000000000..de2155b7afd8f29ca41ff6b1b353e39e0fd33ba3 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-baseddk.md @@ -0,0 +1,13 @@ +# BaseDdk + +## 概述 + +提供BASE DDK接口,包括创建共享内存,映射共享内存,取消映射共享内存,以及摧毁共享内存。 + +**起始版本:** 12 +## 文件汇总 + +| 名称 | 描述 | +| -- | -- | +| [ddk_api.h](capi-ddk-api-h.md) | 声明主机侧访问的Base DDK接口。 | +| [ddk_types.h](capi-ddk-types-h.md) | 提供基础DDK接口所使用的Base DDK类型,宏定义,枚举值和数据结构。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-ddk-api-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-ddk-api-h.md new file mode 100644 index 0000000000000000000000000000000000000000..0551c50c2e3679a68163e770a52ad78b4dfa3578 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-ddk-api-h.md @@ -0,0 +1,133 @@ +# ddk_api.h + +## 概述 + +声明主机侧访问的Base DDK接口。 + +**引用文件:** + +**库:** libddk_base.z.so + +**系统能力:** SystemCapability.Driver.DDK.Extension + +**起始版本:** 12 + +**相关模块:** [BaseDdk](capi-baseddk.md) + +## 汇总 + +### 函数 + +| 名称 | 描述 | +| -- | -- | +| [DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem)](#oh_ddk_createashmem) | 创建共享内存。为了防止资源泄漏,通过调用OH_DDK_DestroyAshmem接口来销毁不再需要的共享内存。 | +| [DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType)](#oh_ddk_mapashmem) | 映射创建的共享内存到用户空间。通过调用OH_DDK_UnmapAshmem接口取消映射不需要的共享内存。 | +| [DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem)](#oh_ddk_unmapashmem) | 取消映射共享内存。 | +| [DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem)](#oh_ddk_destroyashmem) | 销毁共享内存。 | + +## 函数说明 + +### OH_DDK_CreateAshmem() + +``` +DDK_RetCode OH_DDK_CreateAshmem(const uint8_t *name, uint32_t size, DDK_Ashmem **ashmem) +``` + +**描述** + +创建共享内存。为了防止资源泄漏,通过调用OH_DDK_DestroyAshmem接口来销毁不再需要的共享内存。 + +**起始版本:** 12 + + +**参数:** + +| 参数项 | 描述 | +|---------------------------------------------------| -- | +| const uint8_t *name | 指向要创建的共享内存的指针。 | +| uint32_t size | 共享内存对应的缓冲区大小。 | +| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) **ashmem | 指向创建的共享内存的指针。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。
[DDK_INVALID_PARAMETER](capi-ddk-types-h.md#ddk_retcode) 入参name为空指针,size的大小为0或者入参ashmem是空指针。
[DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 创建共享内存失败或者创建结构体DDK_Ashmem失败。 | + +### OH_DDK_MapAshmem() + +``` +DDK_RetCode OH_DDK_MapAshmem(DDK_Ashmem *ashmem, const uint8_t ashmemMapType) +``` + +**描述** + +映射创建的共享内存到用户空间。通过调用OH_DDK_UnmapAshmem接口取消映射不需要的共享内存。 + +**起始版本:** 12 + + +**参数:** + +| 参数项 | 描述 | +|--------------------------------------------------| -- | +| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) *ashmem | 要映射的共享内存指针。 | +| const uint8_t ashmemMapType | 共享内存的保护权限值。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。
[DDK_NULL_PTR](capi-ddk-types-h.md#ddk_retcode) 入参ashmem为空指针。
[DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 共享内存的文件描述符无效。
[DDK_INVALID_OPERATION](capi-ddk-types-h.md#ddk_retcode) 调用接口MapAshmem失败. | + +### OH_DDK_UnmapAshmem() + +``` +DDK_RetCode OH_DDK_UnmapAshmem(DDK_Ashmem *ashmem) +``` + +**描述** + +取消映射共享内存。 + +**起始版本:** 12 + + +**参数:** + +| 参数项 | 描述 | +|--------------------------------------------------| -- | +| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) *ashmem | 要取消映射的共享内存指针。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。
[DDK_NULL_PTR](capi-ddk-types-h.md#ddk_retcode) 入参ashmem为空指针。
[DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 共享内存的文件描述符无效。 | + +### OH_DDK_DestroyAshmem() + +``` +DDK_RetCode OH_DDK_DestroyAshmem(DDK_Ashmem *ashmem) +``` + +**描述** + +销毁共享内存。 + +**起始版本:** 12 + + +**参数:** + +| 参数项 | 描述 | +|--------------------------------------------------| -- | +| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) *ashmem | 要销毁的共享内存指针。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| [DDK_RetCode](capi-ddk-types-h.md#ddk_retcode) | [DDK_SUCCESS](capi-ddk-types-h.md#ddk_retcode) 调用接口成功。
[DDK_NULL_PTR](capi-ddk-types-h.md#ddk_retcode) 入参ashmem为空指针。
[DDK_FAILURE](capi-ddk-types-h.md#ddk_retcode) 共享内存的文件描述符无效。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-ddk-types-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-ddk-types-h.md new file mode 100644 index 0000000000000000000000000000000000000000..562ac2284f102284365fa4e852f52cb451c3fb60 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-ddk-types-h.md @@ -0,0 +1,53 @@ +# ddk_types.h + +## 概述 + +提供基础DDK接口所使用的Base DDK类型,宏定义,枚举值和数据结构。 + +**引用文件:** + +**库:** libddk_base.z.so + +**系统能力:** SystemCapability.Driver.DDK.Extension + +**起始版本:** 12 + +**相关模块:** [BaseDdk](capi-baseddk.md) + +## 汇总 + +### 结构体 + +| 名称 | typedef关键字 | 描述 | +|------------------------------------------| -- | -- | +| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) | DDK_Ashmem | 定义通过接口OH_DDK_CreateAshmem创建的共享内存,共享内存的缓冲区提供更好的性能。 | + +### 枚举 + +| 名称 | typedef关键字 | 描述 | +| -- | -- | -- | +| [DDK_RetCode](#ddk_retcode) | DDK_RetCode | 枚举基本DDK中使用的错误代码。 | + +## 枚举类型说明 + +### DDK_RetCode + +``` +enum DDK_RetCode +``` + +**描述** + +枚举基本DDK中使用的错误代码。 + +**起始版本:** 12 + +| 枚举项 | 描述 | +| -- | -- | +| DDK_SUCCESS = 0 | 操作成功 | +| DDK_FAILURE = 28600001 | 操作失败 | +| DDK_INVALID_PARAMETER = 28600002 | 无效参数 | +| DDK_INVALID_OPERATION = 28600003 | 无效操作 | +| DDK_NULL_PTR = 28600004 | 空指针异常 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hid-ddk-api-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hid-ddk-api-h.md new file mode 100644 index 0000000000000000000000000000000000000000..df75a5b0912d7a5370803d941f956e69f7934779 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hid-ddk-api-h.md @@ -0,0 +1,548 @@ +# hid_ddk_api.h + +## 概述 + +声明主机侧访问输入设备的HID DDK接口。 + +**引用文件:** + +**库:** libhid.z.so + +**系统能力:** SystemCapability.Driver.HID.Extension + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +## 汇总 + +### 函数 + +| 名称 | 描述 | +| -- | -- | +| [int32_t OH_Hid_CreateDevice(Hid_Device *hidDevice, Hid_EventProperties *hidEventProperties)](#oh_hid_createdevice) | 创建设备。 | +| [int32_t OH_Hid_EmitEvent(int32_t deviceId, const Hid_EmitItem items[], uint16_t length)](#oh_hid_emitevent) | 向指定设备发送事件列表。 | +| [int32_t OH_Hid_DestroyDevice(int32_t deviceId)](#oh_hid_destroydevice) | 销毁设备。 | +| [int32_t OH_Hid_Init(void)](#oh_hid_init) | 初始化HID DDK。 | +| [int32_t OH_Hid_Release(void)](#oh_hid_release) | 释放HID DDK。 | +| [int32_t OH_Hid_Open(uint64_t deviceId, uint8_t interfaceIndex, Hid_DeviceHandle **dev)](#oh_hid_open) | 打开deviceId和interfaceIndex指定的设备。 | +| [int32_t OH_Hid_Close(Hid_DeviceHandle **dev)](#oh_hid_close) | 关闭设备。 | +| [int32_t OH_Hid_Write(Hid_DeviceHandle *dev, uint8_t *data, uint32_t length, uint32_t *bytesWritten)](#oh_hid_write) | 向设备写入报告。 | +| [int32_t OH_Hid_ReadTimeout(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, int timeout, uint32_t *bytesRead)](#oh_hid_readtimeout) | 在指定的超时时间内从设备读取报告。 | +| [int32_t OH_Hid_Read(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, uint32_t *bytesRead)](#oh_hid_read) | 从设备读取报告,默认为阻塞模式(阻塞等待直到有数据可读取),可以调用[OH_Hid_SetNonBlocking](capi-hid-ddk-api-h.md#oh_hid_setnonblocking)改变模式。 | +| [int32_t OH_Hid_SetNonBlocking(Hid_DeviceHandle *dev, int nonBlock)](#oh_hid_setnonblocking) | 设置设备读取模式为非阻塞。 | +| [int32_t OH_Hid_GetRawInfo(Hid_DeviceHandle *dev, Hid_RawDevInfo *rawDevInfo)](#oh_hid_getrawinfo) | 获取设备原始信息。 | +| [int32_t OH_Hid_GetRawName(Hid_DeviceHandle *dev, char *data, uint32_t bufSize)](#oh_hid_getrawname) | 获取设备原始名称。 | +| [int32_t OH_Hid_GetPhysicalAddress(Hid_DeviceHandle *dev, char *data, uint32_t bufSize)](#oh_hid_getphysicaladdress) | 获取设备物理地址。 | +| [int32_t OH_Hid_GetRawUniqueId(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize)](#oh_hid_getrawuniqueid) | 获取设备原始唯一标识符。 | +| [int32_t OH_Hid_SendReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, const uint8_t *data, uint32_t length)](#oh_hid_sendreport) | 向设备发送报告。 | +| [int32_t OH_Hid_GetReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, uint8_t *data, uint32_t bufSize)](#oh_hid_getreport) | 获取设备报告。 | +| [int32_t OH_Hid_GetReportDescriptor(Hid_DeviceHandle *dev, uint8_t *buf, uint32_t bufSize, uint32_t *bytesRead)](#oh_hid_getreportdescriptor) | 获取设备报告描述符。 | + +## 函数说明 + +### OH_Hid_CreateDevice() + +``` +int32_t OH_Hid_CreateDevice(Hid_Device *hidDevice, Hid_EventProperties *hidEventProperties) +``` + +**描述** + +创建设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 11 + + +**参数:** + +| 参数项 | 描述 | +|-------------------------------------------------------------------------------| -- | +| [Hid_Device](capi-hidddk-hid-device.md) *hidDevice | 创建设备需要的基本信息,包括设备名、厂商ID、产品ID等。 | +| [Hid_EventProperties](capi-hidddk-hid-eventproperties.md) *hidEventProperties | 创建的设备关注的事件,包括事件类型、按键事件属性、绝对坐标事件属性、相对坐标事件属性等。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | deviceID (一个非负的数字) 调用接口成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 连接hid_ddk服务失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能的原因:1. 入参hidDevice为空指针;
2. 入参hidEventProperties为空指针; 3. properties的长度超过7; 4. hidEventTypes的长度超过5;
5. hidKeys的长度超过100; 6. hidAbs的长度超过26; 7.hidRelBits的长度超过13;
8. hidMiscellaneous的长度超过6。
[HID_DDK_FAILURE](capi-hid-ddk-types-h.md#hid_ddkerrcode) 设备数量达到最大值200。 | + +### OH_Hid_EmitEvent() + +``` +int32_t OH_Hid_EmitEvent(int32_t deviceId, const Hid_EmitItem items[], uint16_t length) +``` + +**描述** + +向指定设备发送事件列表。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 11 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| int32_t deviceId | 设备ID。 | +| items | 发送的事件列表,事件包括类型(取值来源事件类型Hid_EventType)、编码(取值来源同步事件编码Hid_SynEvent、键值编码Hid_KeyCode、按钮编码HidBtnCode、绝对坐标编码Hid_AbsAxes、相对坐标编码Hid_RelAxes、其它类型的输入事件编码Hid_MscEvent)、值(根据实际设备输入决定)。 | +| uint16_t length | 发送事件列表长度(一次发送事件个数)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 调用接口成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 连接hid_ddk服务失败或者调用方不是设备的创建者。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能的原因: 1.设备ID小于0;
2.入参length长度超过7; 3.入参items为空指针。
[HID_DDK_NULL_PTR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 对应设备的注入为空。
[HID_DDK_FAILURE](capi-hid-ddk-types-h.md#hid_ddkerrcode) 对应设备不存在。 | + +### OH_Hid_DestroyDevice() + +``` +int32_t OH_Hid_DestroyDevice(int32_t deviceId) +``` + +**描述** + +销毁设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 11 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| int32_t deviceId | 设备ID。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 调用接口成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 连接hid_ddk服务失败或者调用方不是设备的创建者。
[HID_DDK_FAILURE](capi-hid-ddk-types-h.md#hid_ddkerrcode) 对应设备不存在。 | + +### OH_Hid_Init() + +``` +int32_t OH_Hid_Init(void) +``` + +**描述** + +初始化HID DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 初始化DDK失败。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。 | + +### OH_Hid_Release() + +``` +int32_t OH_Hid_Release(void) +``` + +**描述** + +释放HID DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。 | + +### OH_Hid_Open() + +``` +int32_t OH_Hid_Open(uint64_t deviceId, uint8_t interfaceIndex, Hid_DeviceHandle **dev) +``` + +**描述** + +打开deviceId和interfaceIndex指定的设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|----------------------------| -- | +| uint64_t deviceId | 操作设备的ID。 | +| uint8_t interfaceIndex | 接口索引,对应HID设备的接口。 | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) **dev | 设备操作句柄。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) dev内存申请失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) dev为空。
[HID_DDK_DEVICE_NOT_FOUND](capi-hid-ddk-types-h.md#hid_ddkerrcode) 根据deviceId和interfaceIndex找不到设备。 | + +### OH_Hid_Close() + +``` +int32_t OH_Hid_Close(Hid_DeviceHandle **dev) +``` + +**描述** + +关闭设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) **dev | 设备操作句柄。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) dev为空。 | + +### OH_Hid_Write() + +``` +int32_t OH_Hid_Write(Hid_DeviceHandle *dev, uint8_t *data, uint32_t length, uint32_t *bytesWritten) +``` + +**描述** + +向设备写入报告。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| uint8_t *data | 待写入的数据。 | +| uint32_t length | 写入数据的字节长度,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | +| uint32_t *bytesWritten | 实际写入的数据字节数。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. length为0;4. length超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size);
5. bytesWritten为空。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。 | + +### OH_Hid_ReadTimeout() + +``` +int32_t OH_Hid_ReadTimeout(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, int timeout, uint32_t *bytesRead) +``` + +**描述** + +在指定的超时时间内从设备读取报告。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| uint8_t *data | 存放读取数据的缓冲区。 | +| uint32_t bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | +| int timeout | 超时时间(毫秒)或-1表示阻塞等待。 | +| uint32_t *bytesRead | 读取的字节数。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size);
5. bytesRead为空。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 内存数据拷贝失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_TIMEOUT](capi-hid-ddk-types-h.md#hid_ddkerrcode) 读取超时。 | + +### OH_Hid_Read() + +``` +int32_t OH_Hid_Read(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize, uint32_t *bytesRead) +``` + +**描述** + +从设备读取报告,默认为阻塞模式(阻塞等待直到有数据可读取),可以调用[OH_Hid_SetNonBlocking](capi-hid-ddk-api-h.md#oh_hid_setnonblocking)改变模式。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| uint8_t *data | 存放读取数据的缓冲区。 | +| uint32_t bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | +| uint32_t *bytesRead | 读取的字节数。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size);
5.bytesRead为空。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 内存数据拷贝失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_TIMEOUT](capi-hid-ddk-types-h.md#hid_ddkerrcode) 读取超时。 | + +### OH_Hid_SetNonBlocking() + +``` +int32_t OH_Hid_SetNonBlocking(Hid_DeviceHandle *dev, int nonBlock) +``` + +**描述** + +设置设备读取模式为非阻塞。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| int nonBlock | 是否启用非阻塞模式读取数据。1: 启用非阻塞模式,调用[OH_Hid_Read](capi-hid-ddk-api-h.md#oh_hid_read)接口时,如果设备有可读的数据,读取并返回[HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode),
如果设备没有数据可读,则返回[HID_DDK_TIMEOUT](capi-hid-ddk-types-h.md#hid_ddkerrcode)。0: 禁用非阻塞模式。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. nonBlock不是1或0。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。 | + +### OH_Hid_GetRawInfo() + +``` +int32_t OH_Hid_GetRawInfo(Hid_DeviceHandle *dev, Hid_RawDevInfo *rawDevInfo) +``` + +**描述** + +获取设备原始信息。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|-------------------------------------------------------------| -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| [Hid_RawDevInfo](capi-hidddk-hid-rawdevinfo.md) *rawDevInfo | 设备原始信息,包含供应商ID、产品ID和总线类型。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. rawDevInfo为空。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 不支持此操作。 | + +### OH_Hid_GetRawName() + +``` +int32_t OH_Hid_GetRawName(Hid_DeviceHandle *dev, char *data, uint32_t bufSize) +``` + +**描述** + +获取设备原始名称。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| char *data | 存放读取数据的缓冲区。 | +| uint32_t bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 内存数据拷贝失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 不支持此操作。 | + +### OH_Hid_GetPhysicalAddress() + +``` +int32_t OH_Hid_GetPhysicalAddress(Hid_DeviceHandle *dev, char *data, uint32_t bufSize) +``` + +**描述** + +获取设备物理地址。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| char *data | 存放读取数据的缓冲区。 | +| uint32_t bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 内存数据拷贝失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 不支持此操作。 | + +### OH_Hid_GetRawUniqueId() + +``` +int32_t OH_Hid_GetRawUniqueId(Hid_DeviceHandle *dev, uint8_t *data, uint32_t bufSize) +``` + +**描述** + +获取设备原始唯一标识符。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| uint8_t *data | 存放读取数据的缓冲区。 | +| uint32_t bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 内存数据拷贝失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 不支持此操作。 | + +### OH_Hid_SendReport() + +``` +int32_t OH_Hid_SendReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, const uint8_t *data, uint32_t length) +``` + +**描述** + +向设备发送报告。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- |---------------------------------------------------------------------------------------------------| +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| [Hid_ReportType](capi-hid-ddk-types-h.md#hid_reporttype) reportType | 报告类型。 | +| const uint8_t *data | 待发送的数据。 | +| uint32_t length | 发送数据的字节长度,最大不超过 [HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. length为0;4. length超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 不支持此操作。 | + +### OH_Hid_GetReport() + +``` +int32_t OH_Hid_GetReport(Hid_DeviceHandle *dev, Hid_ReportType reportType, uint8_t *data, uint32_t bufSize) +``` + +**描述** + +获取设备报告。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| [Hid_ReportType](capi-hid-ddk-types-h.md#hid_reporttype) reportType | 报告类型。 | +| uint8_t *data | 存放读取数据的缓冲区。 | +| uint32_t bufSize | 存放读取数据的缓冲区大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. data为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 内存数据拷贝失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 不支持此操作。 | + +### OH_Hid_GetReportDescriptor() + +``` +int32_t OH_Hid_GetReportDescriptor(Hid_DeviceHandle *dev, uint8_t *buf, uint32_t bufSize, uint32_t *bytesRead) +``` + +**描述** + +获取设备报告描述符。 + +**需要权限:** ohos.permission.ACCESS_DDK_HID + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) *dev | 设备操作句柄。 | +| uint8_t *buf | 存放描述符的缓冲区。 | +| uint32_t bufSize | 缓冲区的字节大小,最大不超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size)。 | +| uint32_t *bytesRead | 读取的字节数。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [HID_DDK_SUCCESS](capi-hid-ddk-types-h.md#hid_ddkerrcode) 操作成功。
[HID_DDK_NO_PERM](capi-hid-ddk-types-h.md#hid_ddkerrcode) 权限校验失败。
[HID_DDK_INVALID_PARAMETER](capi-hid-ddk-types-h.md#hid_ddkerrcode) 参数校验失败。可能原因:1. dev为空;
2. buf为空;3. bufSize为0;4. bufSize超过[HID_MAX_REPORT_BUFFER_SIZE](capi-hid-ddk-types-h.md#hid_max_report_buffer_size);
5. bytesRead为空。
[HID_DDK_INIT_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) DDK未初始化。
[HID_DDK_SERVICE_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 与DDK服务通信失败。
[HID_DDK_MEMORY_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) 内存数据拷贝失败。
[HID_DDK_IO_ERROR](capi-hid-ddk-types-h.md#hid_ddkerrcode) I/O操作失败。
[HID_DDK_INVALID_OPERATION](capi-hid-ddk-types-h.md#hid_ddkerrcode) 不支持此操作。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hid-ddk-types-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hid-ddk-types-h.md new file mode 100644 index 0000000000000000000000000000000000000000..1a013080ce598eb936ef78c5f8ba42511c821fd6 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hid-ddk-types-h.md @@ -0,0 +1,388 @@ +# hid_ddk_types.h + +## 概述 + +提供HID DDK中的枚举变量与结构体定义。 + +**引用文件:** + +**库:** libhid.z.so + +**系统能力:** SystemCapability.Driver.HID.Extension + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +## 汇总 + +### 结构体 + +| 名称 | typedef关键字 | 描述 | +|-----------------------------------------------------------| -- | -- | +| [Hid_EmitItem](capi-hidddk-hid-emititem.md) | Hid_EmitItem | 事件信息。 | +| [Hid_Device](capi-hidddk-hid-device.md) | Hid_Device | 设备基本信息。 | +| [Hid_EventTypeArray](capi-hidddk-hid-eventtypearray.md) | Hid_EventTypeArray | 事件类型编码数组。 | +| [Hid_KeyCodeArray](capi-hidddk-hid-keycodearray.md) | Hid_KeyCodeArray | 键值属性数组。 | +| [Hid_AbsAxesArray](capi-hidddk-hid-absaxesarray.md) | Hid_AbsAxesArray | 绝对坐标属性数组。 | +| [Hid_RelAxesArray](capi-hidddk-hid-relaxesarray.md) | Hid_RelAxesArray | 相对坐标属性数组。 | +| [Hid_MscEventArray](capi-hidddk-hid-msceventarray.md) | Hid_MscEventArray | 其它特殊事件属性数组。 | +| [Hid_EventProperties](capi-hidddk-hid-eventproperties.md) | Hid_EventProperties | 设备关注事件属性。 | +| [Hid_RawDevInfo](capi-hidddk-hid-rawdevinfo.md) | Hid_RawDevInfo | 原始设备信息定义。 | +| [Hid_DeviceHandle](capi-hidddk-hid-devicehandle.md) | Hid_DeviceHandle | 不透明的USB HID设备结构。 | + +### 枚举 + +| 名称 | typedef关键字 | 描述 | +| -- | -- | -- | +| [Hid_DeviceProp](#hid_deviceprop) | Hid_DeviceProp | 输入设备特性定义。 | +| [Hid_EventType](#hid_eventtype) | Hid_EventType | 事件类型。 | +| [Hid_SynEvent](#hid_synevent) | Hid_SynEvent | 同步事件编码。 | +| [Hid_KeyCode](#hid_keycode) | Hid_KeyCode | 键值编码。 | +| [Hid_AbsAxes](#hid_absaxes) | Hid_AbsAxes | 绝对坐标编码。 | +| [Hid_RelAxes](#hid_relaxes) | Hid_RelAxes | 相对坐标编码。 | +| [Hid_MscEvent](#hid_mscevent) | Hid_MscEvent | 不适合其它类型的输入事件编码。 | +| [Hid_DdkErrCode](#hid_ddkerrcode) | Hid_DdkErrCode | HID DDK错误码定义。 | +| [Hid_ReportType](#hid_reporttype) | Hid_ReportType | 报告(HID设备与主机之间交换的数据包)类型定义。 | + +### 宏定义 + +| 名称 | 描述 | +| -- | -- | +| HID_MAX_REPORT_BUFFER_SIZE (16 * 1024 - 1) | 最大报告缓冲区大小。 | + +## 枚举类型说明 + +### Hid_DeviceProp + +``` +enum Hid_DeviceProp +``` + +**描述** + +输入设备特性定义。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_PROP_POINTER = 0x00 | 指针设备 | +| HID_PROP_DIRECT = 0x01 | 直接输入设备 | +| HID_PROP_BUTTON_PAD = 0x02 | 底部按键触摸设备 | +| HID_PROP_SEMI_MT = 0x03 | 全多点触控设备 | +| HID_PROP_TOP_BUTTON_PAD = 0x04 | 顶部软按键触摸设备 | +| HID_PROP_POINTING_STICK = 0x05 | 指点杆设备 | +| HID_PROP_ACCELEROMETER = 0x06 | 加速度传感器设备 | + +### Hid_EventType + +``` +enum Hid_EventType +``` + +**描述** + +事件类型。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_EV_SYN = 0x00 | 同步事件 | +| HID_EV_KEY = 0x01 | 按键事件 | +| HID_EV_REL = 0x02 | 相对坐标事件 | +| HID_EV_ABS = 0x03 | 绝对坐标事件 | +| HID_EV_MSC = 0x04 | 特殊事件 | + +### Hid_SynEvent + +``` +enum Hid_SynEvent +``` + +**描述** + +同步事件编码。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_SYN_REPORT = 0 | 表示一个事件的结束 | +| HID_SYN_CONFIG = 1 | 表示配置同步 | +| HID_SYN_MT_REPORT = 2 | 表示多点触摸的ABS数据包结束 | +| HID_SYN_DROPPED = 3 | 表示该事件被丢弃 | + +### Hid_KeyCode + +``` +enum Hid_KeyCode +``` + +**描述** + +键值编码。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_KEY_A = 30 | 键A | +| HID_KEY_B = 48 | 键B | +| HID_KEY_C = 46 | 键C | +| HID_KEY_D = 32 | 键D | +| HID_KEY_E = 18 | 键E | +| HID_KEY_F = 33 | 键F | +| HID_KEY_G = 34 | 键G | +| HID_KEY_H = 35 | 键H | +| HID_KEY_I = 23 | 键I | +| HID_KEY_J = 36 | 键J | +| HID_KEY_K = 37 | 键K | +| HID_KEY_L = 38 | 键L | +| HID_KEY_M = 50 | 键M | +| HID_KEY_N = 49 | 键N | +| HID_KEY_O = 24 | 键O | +| HID_KEY_P = 25 | 键P | +| HID_KEY_Q = 16 | 键Q | +| HID_KEY_R = 19 | 键R | +| HID_KEY_S = 31 | 键S | +| HID_KEY_T = 20 | 键T | +| HID_KEY_U = 22 | 键U | +| HID_KEY_V = 47 | 键V | +| HID_KEY_W = 17 | 键W | +| HID_KEY_X = 45 | 键X | +| HID_KEY_Y = 21 | 键Y | +| HID_KEY_Z = 44 | 键Z | +| HID_KEY_ESC = 1 | 键ESC | +| HID_KEY_0 = 11 | 键0 | +| HID_KEY_1 = 2 | 键1 | +| HID_KEY_2 = 3 | 键2 | +| HID_KEY_3 = 4 | 键3 | +| HID_KEY_4 = 5 | 键4 | +| HID_KEY_5 = 6 | 键5 | +| HID_KEY_6 = 7 | 键6 | +| HID_KEY_7 = 8 | 键7 | +| HID_KEY_8 = 9 | 键8 | +| HID_KEY_9 = 10 | 键9 | +| HID_KEY_GRAVE = 41 | 键` | +| HID_KEY_MINUS = 12 | 键- | +| HID_KEY_EQUALS = 13 | 键= | +| HID_KEY_BACKSPACE = 14 | 键退格 | +| HID_KEY_LEFT_BRACKET = 26 | 键[ | +| HID_KEY_RIGHT_BRACKET = 27 | 键] | +| HID_KEY_ENTER = 28 | 键回车 | +| HID_KEY_LEFT_SHIFT = 42 | 键左shift | +| HID_KEY_BACKSLASH = 43 | 键\ | +| HID_KEY_SEMICOLON = 39 | 键; | +| HID_KEY_APOSTROPHE = 40 | 键' | +| HID_KEY_SPACE = 57 | 键空格 | +| HID_KEY_SLASH = 53 | 键 | +| HID_KEY_COMMA = 51 | 键, | +| HID_KEY_PERIOD = 52 | 键. | +| HID_KEY_RIGHT_SHIFT = 54 | 键右shift | +| HID_KEY_NUMPAD_0 = 82 | 数字键0 | +| HID_KEY_NUMPAD_1 = 79 | 数字键1 | +| HID_KEY_NUMPAD_2 = 80 | 数字键2 | +| HID_KEY_NUMPAD_3 = 81 | 数字键3 | +| HID_KEY_NUMPAD_4 = 75 | 数字键4 | +| HID_KEY_NUMPAD_5 = 76 | 数字键5 | +| HID_KEY_NUMPAD_6 = 77 | 数字键6 | +| HID_KEY_NUMPAD_7 = 71 | 数字键7 | +| HID_KEY_NUMPAD_8 = 72 | 数字键8 | +| HID_KEY_NUMPAD_9 = 73 | 数字键9 | +| HID_KEY_NUMPAD_DIVIDE = 70 | 数字键 | +| HID_KEY_NUMPAD_MULTIPLY = 55 | 数字键 | +| HID_KEY_NUMPAD_SUBTRACT = 74 | 数字键- | +| HID_KEY_NUMPAD_ADD = 78 | 数字键+ | +| HID_KEY_NUMPAD_DOT = 83 | 数字键. | +| HID_KEY_SYSRQ = 99 | 键打印屏幕 | +| HID_KEY_DELETE = 111 | 键删除 | +| HID_KEY_MUTE = 113 | 键静音 | +| HID_KEY_VOLUME_DOWN = 114 | 键音量- | +| HID_KEY_VOLUME_UP = 115 | 键音量+ | +| HID_KEY_BRIGHTNESS_DOWN = 224 | 键亮度- | +| HID_KEY_BRIGHTNESS_UP = 225 | 键亮度+ | +| HID_BTN_0 = 0x100 | 按钮0 | +| HID_BTN_1 = 0x101 | 按钮1 | +| HID_BTN_2 = 0x102 | 按钮2 | +| HID_BTN_3 = 0x103 | 按钮3 | +| HID_BTN_4 = 0x104 | 按钮4 | +| HID_BTN_5 = 0x105 | 按钮5 | +| HID_BTN_6 = 0x106 | 按钮6 | +| HID_BTN_7 = 0x107 | 按钮7 | +| HID_BTN_8 = 0x108 | 按钮8 | +| HID_BTN_9 = 0x109 | 按钮9 | +| HID_BTN_LEFT = 0x110 | 鼠标按键左键 | +| HID_BTN_RIGHT = 0x111 | 鼠标按键右键 | +| HID_BTN_MIDDLE = 0x112 | 鼠标按键中键 | +| HID_BTN_SIDE = 0x113 | 鼠标侧面按键 | +| HID_BTN_EXTRA = 0x114 | 鼠标附加按键 | +| HID_BTN_FORWARD = 0x115 | 鼠标向前按键 | +| HID_BTN_BACKWARD = 0x116 | 鼠标向后按键 | +| HID_BTN_TASK = 0x117 | 鼠标任务按键 | +| HID_BTN_TOOL_PEN = 0x140 | 画笔 | +| HID_BTN_TOOL_RUBBER = 0x141 | 橡皮擦 | +| HID_BTN_TOOL_BRUSH = 0x142 | 笔刷 | +| HID_BTN_TOOL_PENCIL = 0x143 | 钢笔 | +| HID_BTN_TOOL_AIRBRUSH = 0x144 | 喷枪 | +| HID_BTN_TOOL_FINGER = 0x145 | 手指 | +| HID_BTN_TOOL_MOUSE = 0x146 | 鼠标 | +| HID_BTN_TOOL_LENS = 0x147 | 镜头 | +| HID_BTN_TOOL_QUINT_TAP = 0x148 | 五指触控 | +| HID_BTN_STYLUS3 = 0x149 | 手写笔3 | +| HID_BTN_TOUCH = 0x14a | 触摸 | +| HID_BTN_STYLUS = 0x14b | 手写笔 | +| HID_BTN_STYLUS2 = 0x14c | 手写笔2 | +| HID_BTN_TOOL_DOUBLE_TAP = 0x14d | 二指触控 | +| HID_BTN_TOOL_TRIPLE_TAP = 0x14e | 三指触控 | +| HID_BTN_TOOL_QUAD_TAP = 0x14f | 四指触控 | +| HID_BTN_WHEEL = 0x150 | 滚轮 | + +### Hid_AbsAxes + +``` +enum Hid_AbsAxes +``` + +**描述** + +绝对坐标编码。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_ABS_X = 0x00 | X轴 | +| HID_ABS_Y = 0x01 | Y轴 | +| HID_ABS_Z = 0x02 | Z轴 | +| HID_ABS_RX = 0x03 | 右模拟摇杆的 X 轴 | +| HID_ABS_RY = 0x04 | 右模拟摇杆的 Y 轴 | +| HID_ABS_RZ = 0x05 | 右模拟摇杆的 Z 轴 | +| HID_ABS_THROTTLE = 0x06 | 油门 | +| HID_ABS_RUDDER = 0x07 | 舵 | +| HID_ABS_WHEEL = 0x08 | 滚轮 | +| HID_ABS_GAS = 0x09 | 气 | +| HID_ABS_BRAKE = 0x0a | 制动 | +| HID_ABS_HAT0X = 0x10 | HAT0X | +| HID_ABS_HAT0Y = 0x11 | HAT0Y | +| HID_ABS_HAT1X = 0x12 | HAT1X | +| HID_ABS_HAT1Y = 0x13 | HAT1Y | +| HID_ABS_HAT2X = 0x14 | HAT2X | +| HID_ABS_HAT2Y = 0x15 | HAT2Y | +| HID_ABS_HAT3X = 0x16 | HAT3X | +| HID_ABS_HAT3Y = 0x17 | HAT3Y | +| HID_ABS_PRESSURE = 0x18 | 压力 | +| HID_ABS_DISTANCE = 0x19 | 距离 | +| HID_ABS_TILT_X = 0x1a | X轴倾斜度 | +| HID_ABS_TILT_Y = 0x1b | Y轴倾斜度 | +| HID_ABS_TOOL_WIDTH = 0x1c | 触摸工具的宽度 | +| HID_ABS_VOLUME = 0x20 | 音量 | +| HID_ABS_MISC = 0x28 | 其它 | + +### Hid_RelAxes + +``` +enum Hid_RelAxes +``` + +**描述** + +相对坐标编码。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_REL_X = 0x00 | X轴 | +| HID_REL_Y = 0x01 | Y轴 | +| HID_REL_Z = 0x02 | Z轴 | +| HID_REL_RX = 0x03 | 右模拟摇杆的 X 轴 | +| HID_REL_RY = 0x04 | 右模拟摇杆的 Y 轴 | +| HID_REL_RZ = 0x05 | 右模拟摇杆的 Z 轴 | +| HID_REL_HWHEEL = 0x06 | 水平滚轮 | +| HID_REL_DIAL = 0x07 | 刻度 | +| HID_REL_WHEEL = 0x08 | 滚轮 | +| HID_REL_MISC = 0x09 | 其它 | +| HID_REL_RESERVED = 0x0a | 预留 | +| HID_REL_WHEEL_HI_RES = 0x0b | 高分辨率滚轮 | +| HID_REL_HWHEEL_HI_RES = 0x0c | 高分辨率水平滚轮 | + +### Hid_MscEvent + +``` +enum Hid_MscEvent +``` + +**描述** + +不适合其它类型的输入事件编码。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_MSC_SERIAL = 0x00 | 序列号 | +| HID_MSC_PULSE_LED = 0x01 | 脉冲 | +| HID_MSC_GESTURE = 0x02 | 手势 | +| HID_MSC_RAW = 0x03 | 开始事件 | +| HID_MSC_SCAN = 0x04 | 扫描 | +| HID_MSC_TIMESTAMP = 0x05 | 时间戳 | + +### Hid_DdkErrCode + +``` +enum Hid_DdkErrCode +``` + +**描述** + +HID DDK错误码定义。 + +**起始版本:** 11 + +| 枚举项 | 描述 | +| -- | -- | +| HID_DDK_SUCCESS = 0 | 操作成功 | +| HID_DDK_NO_PERM = 201 | 没有权限,从API 16起,取值由-6变更为201 | +| HID_DDK_INVALID_PARAMETER = 401 | 非法参数,从API 16起,取值由-2变更为401 | +| HID_DDK_FAILURE = 27300001 | 操作失败,从API 16起,取值由-1变更为27300001 | +| HID_DDK_NULL_PTR = 27300002 | 空指针异常,从API 16起,取值由-4变更为27300002 | +| HID_DDK_INVALID_OPERATION = 27300003 | 非法操作,从API 16起,取值由-3变更为27300003 | +| HID_DDK_TIMEOUT = 27300004 | 超时,从API 16起,取值由-5变更为27300004 | +| HID_DDK_INIT_ERROR = 27300005 | 初始化DDK失败或DDK未初始化。,从API 16开始支持此枚举 | +| HID_DDK_SERVICE_ERROR = 27300006 | 服务通信过程中错误,从API 16开始支持此枚举 | +| HID_DDK_MEMORY_ERROR = 27300007 | 内存相关的错误,包括:内存数据拷贝失败、内存申请失败等,从API 16开始支持此枚举 | +| HID_DDK_IO_ERROR = 27300008 | I/O操作失败,从API 16开始支持此枚举 | +| HID_DDK_DEVICE_NOT_FOUND = 27300009 | 设备未找到,从API 16开始支持此枚举 | + +### Hid_ReportType + +``` +enum Hid_ReportType +``` + +**描述** + +报告(HID设备与主机之间交换的数据包)类型定义。 + +**起始版本:** 18 + +| 枚举项 | 描述 | +| -- | -- | +| HID_INPUT_REPORT = 0 | 输入报告 | +| HID_OUTPUT_REPORT = 1 | 输出报告 | +| HID_FEATURE_REPORT = 2 | 特性报告 | + + +### HID_MAX_REPORT_BUFFER_SIZE + +``` +HID_MAX_REPORT_BUFFER_SIZE (16 * 1024 - 1) +``` + +**描述** + +最大报告缓冲区大小。 + +**起始版本:** 18 diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-absaxesarray.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-absaxesarray.md new file mode 100644 index 0000000000000000000000000000000000000000..544e8bd77538d84734fb3857bd74364514f17488 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-absaxesarray.md @@ -0,0 +1,22 @@ +# Hid_AbsAxesArray + +## 概述 + +绝对坐标属性数组。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| Hid_AbsAxes* hidAbsAxes | 绝对坐标属性编码 | +| uint16_t length | 数组长度 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-device.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-device.md new file mode 100644 index 0000000000000000000000000000000000000000..2927114f3294cd4d1bb13c733976dff46287f0c1 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-device.md @@ -0,0 +1,27 @@ +# Hid_Device + +## 概述 + +设备基本信息。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| const char* deviceName | 设备名称 | +| uint16_t vendorId | 厂商ID | +| uint16_t productId | 产品ID | +| uint16_t version | 版本号 | +| uint16_t bustype | 总线类型 | +| Hid_DeviceProp* properties | 设备特性 | +| uint16_t propLength | 设备特性数量 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-devicehandle.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-devicehandle.md new file mode 100644 index 0000000000000000000000000000000000000000..8326e58a99a7ccc316121530268764cf57868c6d --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-devicehandle.md @@ -0,0 +1,12 @@ +# Hid_DeviceHandle + +## 概述 + +不透明的USB HID设备结构。 + +**起始版本:** 18 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-emititem.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-emititem.md new file mode 100644 index 0000000000000000000000000000000000000000..ed26836a258ad1a0b09e9b89f0addb94a605cd28 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-emititem.md @@ -0,0 +1,23 @@ +# Hid_EmitItem + +## 概述 + +事件信息。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint16_t type | 事件类型 | +| uint16_t code | 事件编码 | +| uint32_t value | 事件值 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventproperties.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventproperties.md new file mode 100644 index 0000000000000000000000000000000000000000..4445bd5ced2ef93861fc6a05f5db168101404513 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventproperties.md @@ -0,0 +1,29 @@ +# Hid_EventProperties + +## 概述 + +设备关注事件属性。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| struct Hid_EventTypeArray hidEventTypes | 事件类型属性编码数组 | +| struct Hid_KeyCodeArray hidKeys | 键值属性编码数组 | +| struct Hid_AbsAxesArray hidAbs | 绝对坐标属性编码数组 | +| struct Hid_RelAxesArray hidRelBits | 相对坐标属性编码数组 | +| struct Hid_MscEventArray hidMiscellaneous | 其它特殊事件属性编码数组 | +| int32_t hidAbsMax[64] | 绝对坐标属性最大值 | +| int32_t hidAbsMin[64] | 绝对坐标属性最小值 | +| int32_t hidAbsFuzz[64] | 绝对坐标属性模糊值 | +| int32_t hidAbsFlat[64] | 绝对坐标属性固定值 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventtypearray.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventtypearray.md new file mode 100644 index 0000000000000000000000000000000000000000..cb530b5ed63fc1670fd04ebc402421e400890046 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventtypearray.md @@ -0,0 +1,22 @@ +# Hid_EventTypeArray + +## 概述 + +事件类型编码数组。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| Hid_EventType* hidEventType | 事件类型编码 | +| uint16_t length | 数组长度 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-keycodearray.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-keycodearray.md new file mode 100644 index 0000000000000000000000000000000000000000..799e1f8320f2e5ac2e3be085828cece28de5d8dc --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-keycodearray.md @@ -0,0 +1,22 @@ +# Hid_KeyCodeArray + +## 概述 + +键值属性数组。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| Hid_KeyCode* hidKeyCode | 键值编码 | +| uint16_t length | 数组长度 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-msceventarray.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-msceventarray.md new file mode 100644 index 0000000000000000000000000000000000000000..373029bca299a08cf38339993378e3e99b77ba5f --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-msceventarray.md @@ -0,0 +1,22 @@ +# Hid_MscEventArray + +## 概述 + +其它特殊事件属性数组。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| Hid_MscEvent* hidMscEvent | 其它特殊事件属性编码 | +| uint16_t length | 数组长度 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-rawdevinfo.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-rawdevinfo.md new file mode 100644 index 0000000000000000000000000000000000000000..5081552de23a6a1497e67fe6e23fe2d0b321183e --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-rawdevinfo.md @@ -0,0 +1,23 @@ +# Hid_RawDevInfo + +## 概述 + +原始设备信息定义。 + +**起始版本:** 18 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint32_t busType | 总线类型 | +| uint16_t vendor | 供应商ID | +| uint16_t product | 产品ID | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-relaxesarray.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-relaxesarray.md new file mode 100644 index 0000000000000000000000000000000000000000..0f3abf4249cd6b7ceed9cc838f14600f7d760e29 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk-hid-relaxesarray.md @@ -0,0 +1,22 @@ +# Hid_RelAxesArray + +## 概述 + +相对坐标属性数组。 + +**起始版本:** 11 + +**相关模块:** [HidDdk](capi-hidddk.md) + +**所在头文件:** [hid_ddk_types.h](capi-hid-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| Hid_RelAxes* hidRelAxes | 相对坐标属性编码 | +| uint16_t length | 数组长度 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk.md new file mode 100644 index 0000000000000000000000000000000000000000..25f2e4a9c08706ad58121d829de7a17d3e009bf6 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-hidddk.md @@ -0,0 +1,15 @@ +# HidDdk + +## 概述 + +提供HID DDK接口,包括创建设备、发送事件、销毁设备。 + +**系统能力:** SystemCapability.Driver.HID.Extension + +**起始版本:** 11 +## 文件汇总 + +| 名称 | 描述 | +| -- | -- | +| [hid_ddk_api.h](capi-hid-ddk-api-h.md) | 声明主机侧访问输入设备的HID DDK接口。 | +| [hid_ddk_types.h](capi-hid-ddk-types-h.md) | 提供HID DDK中的枚举变量与结构体定义。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsi-peripheral-api-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsi-peripheral-api-h.md new file mode 100644 index 0000000000000000000000000000000000000000..81896c7346d3fb36702393e4b9f005733dc57759 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsi-peripheral-api-h.md @@ -0,0 +1,454 @@ +# scsi_peripheral_api.h + +## 概述 + +声明用于主机侧访问SCSI设备的SCSI Peripheral DDK接口。 + +**引用文件:** + +**系统能力:** SystemCapability.Driver.SCSI.Extension + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +## 汇总 + +### 函数 + +| 名称 | 描述 | +| -- | -- | +| [int32_t OH_ScsiPeripheral_Init(void)](#oh_scsiperipheral_init) | 初始化SCSI Peripheral DDK。 | +| [int32_t OH_ScsiPeripheral_Release(void)](#oh_scsiperipheral_release) | 释放SCSI Peripheral DDK。 | +| [int32_t OH_ScsiPeripheral_Open(uint64_t deviceId, uint8_t interfaceIndex, ScsiPeripheral_Device **dev)](#oh_scsiperipheral_open) | 打开deviceId和interfaceIndex指定的SCSI设备。 | +| [int32_t OH_ScsiPeripheral_Close(ScsiPeripheral_Device **dev)](#oh_scsiperipheral_close) | 关闭SCSI设备。 | +| [int32_t OH_ScsiPeripheral_TestUnitReady(ScsiPeripheral_Device *dev, ScsiPeripheral_TestUnitReadyRequest *request,ScsiPeripheral_Response *response)](#oh_scsiperipheral_testunitready) | 检查逻辑单元是否已经准备好。 | +| [int32_t OH_ScsiPeripheral_Inquiry(ScsiPeripheral_Device *dev, ScsiPeripheral_InquiryRequest *request,ScsiPeripheral_InquiryInfo *inquiryInfo, ScsiPeripheral_Response *response)](#oh_scsiperipheral_inquiry) | 查询SCSI设备的基本信息。 | +| [int32_t OH_ScsiPeripheral_ReadCapacity10(ScsiPeripheral_Device *dev, ScsiPeripheral_ReadCapacityRequest *request,ScsiPeripheral_CapacityInfo *capacityInfo, ScsiPeripheral_Response *response)](#oh_scsiperipheral_readcapacity10) | 获取SCSI设备的容量信息。 | +| [int32_t OH_ScsiPeripheral_RequestSense(ScsiPeripheral_Device *dev, ScsiPeripheral_RequestSenseRequest *request,ScsiPeripheral_Response *response)](#oh_scsiperipheral_requestsense) | 获取sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 | +| [int32_t OH_ScsiPeripheral_Read10(ScsiPeripheral_Device *dev, ScsiPeripheral_IORequest *request,ScsiPeripheral_Response *response)](#oh_scsiperipheral_read10) | 从指定逻辑块读取数据。 | +| [int32_t OH_ScsiPeripheral_Write10(ScsiPeripheral_Device *dev, ScsiPeripheral_IORequest *request,ScsiPeripheral_Response *response)](#oh_scsiperipheral_write10) | 写数据到设备的指定逻辑块。 | +| [int32_t OH_ScsiPeripheral_Verify10(ScsiPeripheral_Device *dev, ScsiPeripheral_VerifyRequest *request,ScsiPeripheral_Response *response)](#oh_scsiperipheral_verify10) | 校验指定逻辑块。 | +| [int32_t OH_ScsiPeripheral_SendRequestByCdb(ScsiPeripheral_Device *dev, ScsiPeripheral_Request *request,ScsiPeripheral_Response *response)](#oh_scsiperipheral_sendrequestbycdb) | 以CDB(Command Descriptor Block)方式发送SCSI命令。 | +| [int32_t OH_ScsiPeripheral_CreateDeviceMemMap(ScsiPeripheral_Device *dev, size_t size,ScsiPeripheral_DeviceMemMap **devMmap)](#oh_scsiperipheral_createdevicememmap) | 创建缓冲区。请在缓冲区使用完后,调用[OH_ScsiPeripheral_DestroyDeviceMemMap](capi-scsi-peripheral-api-h.md#oh_scsiperipheral_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 | +| [int32_t OH_ScsiPeripheral_DestroyDeviceMemMap(ScsiPeripheral_DeviceMemMap *devMmap)](#oh_scsiperipheral_destroydevicememmap) | 销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 | +| [int32_t OH_ScsiPeripheral_ParseBasicSenseInfo(uint8_t *senseData, uint8_t senseDataLen,ScsiPeripheral_BasicSenseInfo *senseInfo)](#oh_scsiperipheral_parsebasicsenseinfo) | 解析基本的sense data,包括Information、Command specific information、Sense key specific字段。 | + +## 函数说明 + +### OH_ScsiPeripheral_Init() + +``` +int32_t OH_ScsiPeripheral_Init(void) +``` + +**描述** + +初始化SCSI Peripheral DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 初始化DDK失败。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。 | + +### OH_ScsiPeripheral_Release() + +``` +int32_t OH_ScsiPeripheral_Release(void) +``` + +**描述** + +释放SCSI Peripheral DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。 | + +### OH_ScsiPeripheral_Open() + +``` +int32_t OH_ScsiPeripheral_Open(uint64_t deviceId, uint8_t interfaceIndex, ScsiPeripheral_Device **dev) +``` + +**描述** + +打开deviceId和interfaceIndex指定的SCSI设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|---------------------------------| -- | +| uint64_t deviceId | 设备ID,代表要操作的设备。 | +| uint8_t interfaceIndex | 接口索引,对应SCSI设备的接口。 | +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) **dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生IO错误。
[SCSIPERIPHERAL_DDK_DEVICE_NOT_FOUND](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 通过deviceId和interfaceIndex找不到设备。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_Close() + +``` +int32_t OH_ScsiPeripheral_Close(ScsiPeripheral_Device **dev) +``` + +**描述** + +关闭SCSI设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) **dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。 | + +### OH_ScsiPeripheral_TestUnitReady() + +``` +int32_t OH_ScsiPeripheral_TestUnitReady(ScsiPeripheral_Device *dev, ScsiPeripheral_TestUnitReadyRequest *request,ScsiPeripheral_Response *response) +``` + +**描述** + +检查逻辑单元是否已经准备好。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|---------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_TestUnitReadyRequest](capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md) *request | 逻辑单元检查命令(test unit ready)的请求信息,详情参见[ScsiPeripheral_TestUnitReadyRequest](capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | 逻辑单元检查命令(test unit ready)的响应信息,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、request为空或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_Inquiry() + +``` +int32_t OH_ScsiPeripheral_Inquiry(ScsiPeripheral_Device *dev, ScsiPeripheral_InquiryRequest *request,ScsiPeripheral_InquiryInfo *inquiryInfo, ScsiPeripheral_Response *response) +``` + +**描述** + +查询SCSI设备的基本信息。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_InquiryRequest](capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md) *request | inquiry命令的请求信息,详情参见[ScsiPeripheral_InquiryRequest](capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md)。 | +| [ScsiPeripheral_InquiryInfo](capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md) *inquiryInfo | inquiry命令返回的查询信息,详情参见[ScsiPeripheral_InquiryInfo](capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | inquiry命令返回的原始响应信息,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、 request为空、inquiryInfo 为空、inquiryInfo->data或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_ReadCapacity10() + +``` +int32_t OH_ScsiPeripheral_ReadCapacity10(ScsiPeripheral_Device *dev, ScsiPeripheral_ReadCapacityRequest *request,ScsiPeripheral_CapacityInfo *capacityInfo, ScsiPeripheral_Response *response) +``` + +**描述** + +获取SCSI设备的容量信息。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_ReadCapacityRequest](capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md) *request | read capacity命令的请求信息,详情参见[ScsiPeripheral_ReadCapacityRequest](capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md)。 | +| [ScsiPeripheral_CapacityInfo](capi-scsiperipheralddk-scsiperipheral-capacityinfo.md) *capacityInfo | read capacity命令返回的容量信息,详情参见[ScsiPeripheral_CapacityInfo](capi-scsiperipheralddk-scsiperipheral-capacityinfo.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | read capacity命令返回的原始响应信息,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、 request为空、capacityInfo为空或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_RequestSense() + +``` +int32_t OH_ScsiPeripheral_RequestSense(ScsiPeripheral_Device *dev, ScsiPeripheral_RequestSenseRequest *request,ScsiPeripheral_Response *response) +``` + +**描述** + +获取sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_RequestSenseRequest](capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md) *request | request sense命令的请求信息,详情参见[ScsiPeripheral_RequestSenseRequest](capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | request sense命令返回的响应信息,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、 request为空或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_Read10() + +``` +int32_t OH_ScsiPeripheral_Read10(ScsiPeripheral_Device *dev, ScsiPeripheral_IORequest *request,ScsiPeripheral_Response *response) +``` + +**描述** + +从指定逻辑块读取数据。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|-----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_IORequest](capi-scsiperipheralddk-scsiperipheral-iorequest.md) *request | read命令的请求信息,详情参见[ScsiPeripheral_IORequest](capi-scsiperipheralddk-scsiperipheral-iorequest.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | read命令返回的响应信息,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、 request为空、request->data或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_Write10() + +``` +int32_t OH_ScsiPeripheral_Write10(ScsiPeripheral_Device *dev, ScsiPeripheral_IORequest *request,ScsiPeripheral_Response *response) +``` + +**描述** + +写数据到设备的指定逻辑块。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|-----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_IORequest](capi-scsiperipheralddk-scsiperipheral-iorequest.md) *request | write命令的请求信息,详情参见[ScsiPeripheral_IORequest](capi-scsiperipheralddk-scsiperipheral-iorequest.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | write命令返回的响应信息,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、 request为空、request->data为空或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_Verify10() + +``` +int32_t OH_ScsiPeripheral_Verify10(ScsiPeripheral_Device *dev, ScsiPeripheral_VerifyRequest *request,ScsiPeripheral_Response *response) +``` + +**描述** + +校验指定逻辑块。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_VerifyRequest](capi-scsiperipheralddk-scsiperipheral-verifyrequest.md) *request | verify命令的请求信息,详情参见[ScsiPeripheral_VerifyRequest](capi-scsiperipheralddk-scsiperipheral-verifyrequest.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | verify命令返回的响应信息,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、request为空或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_SendRequestByCdb() + +``` +int32_t OH_ScsiPeripheral_SendRequestByCdb(ScsiPeripheral_Device *dev, ScsiPeripheral_Request *request,ScsiPeripheral_Response *response) +``` + +**描述** + +以CDB(Command Descriptor Block)方式发送SCSI命令。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| [ScsiPeripheral_Request](capi-scsiperipheralddk-scsiperipheral-request.md) *request | 请求,详情参见[ScsiPeripheral_Request](capi-scsiperipheralddk-scsiperipheral-request.md)。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) *response | 响应,详情参见[ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_NO_PERM](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 权限校验失败。
[SCSIPERIPHERAL_DDK_INIT_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 未初始化DDK。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空、 request为空、request->data为
空、request->cdbLength为0或者response为空。
[SCSIPERIPHERAL_DDK_SERVICE_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 与DDK服务通信失败。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。
[SCSIPERIPHERAL_DDK_IO_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) DDK发生I/O错误。
[SCSIPERIPHERAL_DDK_TIMEOUT](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 传输超时。
[SCSIPERIPHERAL_DDK_INVALID_OPERATION](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 不支持该操作。 | + +### OH_ScsiPeripheral_CreateDeviceMemMap() + +``` +int32_t OH_ScsiPeripheral_CreateDeviceMemMap(ScsiPeripheral_Device *dev, size_t size,ScsiPeripheral_DeviceMemMap **devMmap) +``` + +**描述** + +创建缓冲区。请在缓冲区使用完后,调用[OH_ScsiPeripheral_DestroyDeviceMemMap](capi-scsi-peripheral-api-h.md#oh_scsiperipheral_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) *dev | 设备句柄,详情参见[ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md)。 | +| size_t size | 缓冲区的大小。 | +| [ScsiPeripheral_DeviceMemMap](capi-scsiperipheralddk-scsiperipheral-devicememmap.md) **devMmap | 创建的缓冲区通过该参数返回给调用者,详情参见[ScsiPeripheral_DeviceMemMap](capi-scsiperipheralddk-scsiperipheral-devicememmap.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) dev为空或devMmap为空。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。 | + +### OH_ScsiPeripheral_DestroyDeviceMemMap() + +``` +int32_t OH_ScsiPeripheral_DestroyDeviceMemMap(ScsiPeripheral_DeviceMemMap *devMmap) +``` + +**描述** + +销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|-----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [ScsiPeripheral_DeviceMemMap](capi-scsiperipheralddk-scsiperipheral-devicememmap.md) *devMmap | 待销毁的由[OH_ScsiPeripheral_CreateDeviceMemMa](#oh_scsiperipheral_createdevicememmap)创建的缓冲区,详情参见[ScsiPeripheral_DeviceMemMap](capi-scsiperipheralddk-scsiperipheral-devicememmap.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) devMmap为空。
[SCSIPERIPHERAL_DDK_MEMORY_ERROR](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 内存操作失败。 | + +### OH_ScsiPeripheral_ParseBasicSenseInfo() + +``` +int32_t OH_ScsiPeripheral_ParseBasicSenseInfo(uint8_t *senseData, uint8_t senseDataLen,ScsiPeripheral_BasicSenseInfo *senseInfo) +``` + +**描述** + +解析基本的sense data,包括Information、Command specific information、Sense key specific字段。 + +**需要权限:** ohos.permission.ACCESS_DDK_SCSI_PERIPHERAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint8_t *senseData | 待解析的sense data。 | +| uint8_t senseDataLen | sense data长度。 | +| [ScsiPeripheral_BasicSenseInfo](capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md) *senseInfo | 用于保存解析后的基本信息,详情参见[ScsiPeripheral_BasicSenseInfo](capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [SCSIPERIPHERAL_DDK_SUCCESS](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) 调用接口成功。
[SCSIPERIPHERAL_DDK_INVALID_PARAMETER](capi-scsi-peripheral-types-h.md#scsiperipheral_ddkerrcode) senseData格式不是描述符或固定格式、senseDataLen小于
SCSIPERIPHERAL_MIN_DESCRIPTOR_FORMAT_SENSE或者senseDataLen小于SCSIPERIPHERAL_MIN_FIXED_FORMAT_SENSE。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsi-peripheral-types-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsi-peripheral-types-h.md new file mode 100644 index 0000000000000000000000000000000000000000..eda190ee868b24e13ba82d2c7400a65645ec720c --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsi-peripheral-types-h.md @@ -0,0 +1,94 @@ +# scsi_peripheral_types.h + +## 概述 + +提供在SCSI Peripheral DDK(驱动开发工具包)API中使用的枚举变量、结构体和宏。 + +**引用文件:** + +**库:** libscsi.z.so + +**系统能力:** SystemCapability.Driver.SCSI.Extension + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +## 汇总 + +### 结构体 + +| 名称 | typedef关键字 | 描述 | +|--------------------------------------------------------------------------------------| -- | -- | +| [ScsiPeripheral_DeviceMemMap](capi-scsiperipheralddk-scsiperipheral-devicememmap.md) | ScsiPeripheral_DeviceMemMap | 通过调用OH_ScsiPeripheral_CreateDeviceMemMap创建的设备内存映射。使用该设备内存映射的缓冲区可以提供更好的性能。 | +| [ScsiPeripheral_IORequest](capi-scsiperipheralddk-scsiperipheral-iorequest.md) | ScsiPeripheral_IORequest | 读/写操作的请求参数。 | +| [ScsiPeripheral_Request](capi-scsiperipheralddk-scsiperipheral-request.md) | ScsiPeripheral_Request | 请求参数结构体。 | +| [ScsiPeripheral_Response](capi-scsiperipheralddk-scsiperipheral-response.md) | ScsiPeripheral_Response | 响应参数结构体。 | +| [ScsiPeripheral_TestUnitReadyRequest](capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md) | ScsiPeripheral_TestUnitReadyRequest | 命令(test unit ready)的请求结构体。 | +| [ScsiPeripheral_InquiryRequest](capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md) | ScsiPeripheral_InquiryRequest | SCSI命令(inquiry)的请求结构体。 | +| [ScsiPeripheral_InquiryInfo](capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md) | ScsiPeripheral_InquiryInfo | SCSI inquiry 数据。 | +| [ScsiPeripheral_ReadCapacityRequest](capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md) | ScsiPeripheral_ReadCapacityRequest | SCSI命令(read capacity)的请求结构体。 | +| [ScsiPeripheral_CapacityInfo](capi-scsiperipheralddk-scsiperipheral-capacityinfo.md) | ScsiPeripheral_CapacityInfo | SCSI read capacity 数据。 | +| [ScsiPeripheral_RequestSenseRequest](capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md) | ScsiPeripheral_RequestSenseRequest | SCSI命令(request sense)的请求结构体。 | +| [ScsiPeripheral_BasicSenseInfo](capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md) | ScsiPeripheral_BasicSenseInfo | sense data的基本信息。 | +| [ScsiPeripheral_VerifyRequest](capi-scsiperipheralddk-scsiperipheral-verifyrequest.md) | ScsiPeripheral_VerifyRequest | SCSI命令(verify)的请求结构体。 | +| [ScsiPeripheral_Device](capi-scsiperipheralddk-scsiperipheral-device.md) | ScsiPeripheral_Device | 不透明的SCSI设备结构体。 | + +### 枚举 + +| 名称 | typedef关键字 | 描述 | +| -- | -- | -- | +| [ScsiPeripheral_DdkErrCode](#scsiperipheral_ddkerrcode) | ScsiPeripheral_DdkErrCode | SCSI Peripheral DDK错误码。 | +| [ScsiPeripheral_Status](#scsiperipheral_status) | ScsiPeripheral_Status | 定义用于响应的SCSI状态。 | + +## 枚举类型说明 + +### ScsiPeripheral_DdkErrCode + +``` +enum ScsiPeripheral_DdkErrCode +``` + +**描述** + +SCSI Peripheral DDK错误码。 + +**起始版本:** 18 + +| 枚举项 | 描述 | +| -- | -- | +| SCSIPERIPHERAL_DDK_NO_PERM = 201 | 没有权限。 | +| SCSIPERIPHERAL_DDK_INVALID_PARAMETER = 401 | 非法参数。 | +| SCSIPERIPHERAL_DDK_SUCCESS = 31700000 | 操作成功。 | +| SCSIPERIPHERAL_DDK_MEMORY_ERROR = 31700001 | 与内存相关的错误,例如,内存不足、内存数据复制失败或内存申请失败。 | +| SCSIPERIPHERAL_DDK_INVALID_OPERATION = 31700002 | 非法操作。 | +| SCSIPERIPHERAL_DDK_IO_ERROR = 31700003 | 设备输入/输出操作失败。 | +| SCSIPERIPHERAL_DDK_TIMEOUT = 31700004 | 传输超时。 | +| SCSIPERIPHERAL_DDK_INIT_ERROR = 31700005 | DDK初始化错误,或者DDK未初始化。 | +| SCSIPERIPHERAL_DDK_SERVICE_ERROR = 31700006 | 与SCSI Peripheral DDK服务的通信失败。 | +| SCSIPERIPHERAL_DDK_DEVICE_NOT_FOUND = 31700007 | 设备未找到。 | + +### ScsiPeripheral_Status + +``` +enum ScsiPeripheral_Status +``` + +**描述** + +定义用于响应的SCSI状态。 + +**起始版本:** 18 + +| 枚举项 | 描述 | +| -- | -- | +| SCSIPERIPHERAL_STATUS_GOOD = 0x00 | 正常状态。 | +| SCSIPERIPHERAL_STATUS_CHECK_CONDITION_NEEDED = 0x02 | 需要状态检查。 | +| SCSIPERIPHERAL_STATUS_CONDITION_MET = 0x04 | 条件满足。 | +| SCSIPERIPHERAL_STATUS_BUSY = 0x08 | 占用中。 | +| SCSIPERIPHERAL_STATUS_RESERVATION_CONFLICT = 0x18 | 资源保留冲突。 | +| SCSIPERIPHERAL_STATUS_TASK_SET_FULL = 0x28 | 任务集已满。 | +| SCSIPERIPHERAL_STATUS_ACA_ACTIVE = 0x30 | ACA活动状态。 | +| SCSIPERIPHERAL_STATUS_TASK_ABORTED = 0x40 | 任务已终止。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md new file mode 100644 index 0000000000000000000000000000000000000000..79dffcbc04a9660e0b15971dcc26c3a460dada6a --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md @@ -0,0 +1,26 @@ +# ScsiPeripheral_BasicSenseInfo + +## 概述 + +sense data的基本信息。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t responseCode | 响应码。 | +| bool valid | 信息有效标志位。 | +| uint64_t information | Information字段。 | +| uint64_t commandSpecific | Command-specific information字段。 | +| bool sksv | Sense key specific字段的标志位。 | +| uint32_t senseKeySpecific | Sense key specific字段。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-capacityinfo.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-capacityinfo.md new file mode 100644 index 0000000000000000000000000000000000000000..9ddd6e82587d82a5a1b886d5b6e286dbc88daf95 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-capacityinfo.md @@ -0,0 +1,22 @@ +# ScsiPeripheral_CapacityInfo + +## 概述 + +SCSI read capacity 数据。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint32_t lbAddress | 返回的逻辑单元地址。 | +| uint32_t lbLength | 单个逻辑单元长度,单位:字节。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-device.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-device.md new file mode 100644 index 0000000000000000000000000000000000000000..afc8ccfa7fd52db94bfc69c05588cd692db0ad83 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-device.md @@ -0,0 +1,12 @@ +# ScsiPeripheral_Device + +## 概述 + +不透明的SCSI设备结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-devicememmap.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-devicememmap.md new file mode 100644 index 0000000000000000000000000000000000000000..bb90282b2f9495666da6f6570fbdf0c1f4696a23 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-devicememmap.md @@ -0,0 +1,25 @@ +# ScsiPeripheral_DeviceMemMap + +## 概述 + +通过调用OH_ScsiPeripheral_CreateDeviceMemMap创建的设备内存映射。使用该设备内存映射的缓冲区可以提供更好的性能。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t* const address | 缓冲区地址。 | +| const size_t size | 缓冲区大小。 | +| uint32_t offset | 已使用缓冲区的偏移量。默认值为0,表示没有偏移,缓冲区从指定地址开始。 | +| uint32_t bufferLength | 已使用缓冲区的长度。默认情况下,该值等于缓冲区的大小,表示整个缓冲区都被使用。 | +| uint32_t transferredLength | 传输数据的长度。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md new file mode 100644 index 0000000000000000000000000000000000000000..8d582381f7c8856507fbb3e3e083c26da8557cdc --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md @@ -0,0 +1,25 @@ +# ScsiPeripheral_InquiryInfo + +## 概述 + +SCSI inquiry 数据。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t deviceType | 设备类型。 | +| char idVendor | 制造商 id。 | +| char idProduct | 生产商 id。 | +| char revProduct | 产品版本。 | +| ScsiPeripheral_DeviceMemMap* data | 所有的查询数据。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md new file mode 100644 index 0000000000000000000000000000000000000000..97351b4cbc72e0a1938b01da350688507df4fd8d --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md @@ -0,0 +1,25 @@ +# ScsiPeripheral_InquiryRequest + +## 概述 + +SCSI命令(inquiry)的请求结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t pageCode | Page code字段。获取设备的某些特定类型的信息时使用。当发出带有特定页面代码的 Inquiry 命令时,设备会返回与该页面代码相关的详细信息。如果 page code 设置为 0x00,则表示请求的是标准的 Inquiry 数据,而非特定页面的数据。 | +| uint16_t allocationLength | Allocation length字段,指定了请求方向发起者(通常是主机)为响应数据准备的缓冲区大小。 | +| uint8_t control | Control字段,用于指定一些控制信息。 | +| uint8_t byte1 | CDB的第一个字节。 | +| uint32_t timeout | 超时时间(单位: 毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-iorequest.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-iorequest.md new file mode 100644 index 0000000000000000000000000000000000000000..be2afe838cff7717be85f081046144122e6a8c42 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-iorequest.md @@ -0,0 +1,27 @@ +# ScsiPeripheral_IORequest + +## 概述 + +读/写操作的请求参数。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint32_t lbAddress | 逻辑块起始地址。 | +| uint16_t transferLength | 需要操作的连续逻辑块的数量。 | +| uint8_t control | Control字段,用于指定一些控制信息。 | +| uint8_t byte1 | CDB的第一个字节。 | +| uint8_t byte6 | CDB的第六个字节 | +| ScsiPeripheral_DeviceMemMap* data | 数据传输的缓冲区。 | +| uint32_t timeout | 超时时间(单位:毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md new file mode 100644 index 0000000000000000000000000000000000000000..1c1d90ba86a2007101bbb64c37acff2b4908ebed --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md @@ -0,0 +1,24 @@ +# ScsiPeripheral_ReadCapacityRequest + +## 概述 + +SCSI命令(read capacity)的请求结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint32_t lbAddress | 逻辑单元地址。 | +| uint8_t control | Control字段,用于指定一些控制信息。 | +| uint8_t byte8 | CDB的第八个字节。 | +| uint32_t timeout | 超时时间(单位: 毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-request.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-request.md new file mode 100644 index 0000000000000000000000000000000000000000..a15cad86203b9be4a15189268e21cdc166fe80fc --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-request.md @@ -0,0 +1,25 @@ +# ScsiPeripheral_Request + +## 概述 + +请求参数结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t commandDescriptorBlock[SCSIPERIPHERAL_MAX_CMD_DESC_BLOCK_LEN] | 命令描述符块。 | +| uint8_t cdbLength | 命令描述符块的长度。 | +| int8_t dataTransferDirection | 数据传输方向。 | +| ScsiPeripheral_DeviceMemMap* data | 数据传输的缓冲区。 | +| uint32_t timeout | 超时时间(单位:毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md new file mode 100644 index 0000000000000000000000000000000000000000..d3765232ed9375937b98e8d8902a8a7516c5e3e7 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md @@ -0,0 +1,24 @@ +# ScsiPeripheral_RequestSenseRequest + +## 概述 + +SCSI命令(request sense)的请求结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t allocationLength | Allocation length字段,指定了请求方向发起者(通常是主机)为响应数据准备的缓冲区大小。 | +| uint8_t control | Control字段,用于指定一些控制信息。 | +| uint8_t byte1 | CDB的第一个字节。 | +| uint32_t timeout | 超时时间(单位: 毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-response.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-response.md new file mode 100644 index 0000000000000000000000000000000000000000..3618ae71d3a1b6bf9722d215b3d0277e42fbb147 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-response.md @@ -0,0 +1,29 @@ +# ScsiPeripheral_Response + +## 概述 + +响应参数结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t senseData[SCSIPERIPHERAL_MAX_SENSE_DATA_LEN] | sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 | +| ScsiPeripheral_Status status | 调用完成时的状态,例如良好(Good)、忙(Busy)。 | +| uint8_t maskedStatus | 在Linux的SCSI通用接口(SG)中,masked_status 字段用于存储经过处理后的SCSI状态,以便应用程序可以更方便地读取和解析。 | +| uint8_t msgStatus | 消息状态。 | +| uint8_t sbLenWr | 指的是实际写入到 Sense Buffer(感应缓冲区)的字节数。 | +| uint16_t hostStatus | 主机适配器状态。 例如:成功(0x00)、无法连接(0x01)、总线忙(0x02)、超时(0x03)。 | +| uint16_t driverStatus | 驱动状态。 例如:成功(0x00)、设备或资源忙(0x01)。 | +| int32_t resId | 实际传输的数据长度差值,即未传输的字节数。 | +| uint32_t duration | 执行命令消耗的时间 (单位: 毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md new file mode 100644 index 0000000000000000000000000000000000000000..54c8da5824993fd5c6311da586942e53877d5728 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md @@ -0,0 +1,22 @@ +# ScsiPeripheral_TestUnitReadyRequest + +## 概述 + +命令(test unit ready)的请求结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t control | Control字段,用于指定一些控制信息。 | +| uint32_t timeout | 超时时间(单位: 毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-verifyrequest.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-verifyrequest.md new file mode 100644 index 0000000000000000000000000000000000000000..df9d4cfe08cc4fbea4897ca52ca970c2a6b500de --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-verifyrequest.md @@ -0,0 +1,26 @@ +# ScsiPeripheral_VerifyRequest + +## 概述 + +SCSI命令(verify)的请求结构体。 + +**起始版本:** 18 + +**相关模块:** [SCSIPeripheralDDK](capi-scsiperipheralddk.md) + +**所在头文件:** [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint32_t lbAddress | 起始逻辑块地址。 | +| uint16_t verificationLength | 连续校验逻辑块的个数。 | +| uint8_t control | Control字段,用于指定一些控制信息。 | +| uint8_t byte1 | CDB的第一个字节。 | +| uint8_t byte6 | CDB的第六个字节。 | +| uint32_t timeout | 超时时间(单位: 毫秒)。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk.md new file mode 100644 index 0000000000000000000000000000000000000000..4ddae8bce38f5506f0abdc4c747b2e6a933ee2c3 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-scsiperipheralddk.md @@ -0,0 +1,13 @@ +# SCSIPeripheralDDK + +## 概述 + +SCSI Peripheral DDK是为开发者提供专门用于开发SCSI设备驱动程序的套件,提供了初始化DDK、释放DDK、打开关闭设备、读写设备等接口,并声明了SCSI Peripheral DDK API所需的宏、枚举变量和数据结构,用于在应用层进行SCSI设备驱动的开发。 + +**起始版本:** 18 +## 文件汇总 + +| 名称 | 描述 | +| -- | -- | +| [scsi_peripheral_api.h](capi-scsi-peripheral-api-h.md) | 声明用于主机侧访问SCSI设备的SCSI Peripheral DDK接口。 | +| [scsi_peripheral_types.h](capi-scsi-peripheral-types-h.md) | 提供在SCSI Peripheral DDK(驱动开发工具包)API中使用的枚举变量、结构体和宏。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-devicehandle.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-devicehandle.md new file mode 100644 index 0000000000000000000000000000000000000000..65088e7d9801f41e457778465fea0ebbaec4421b --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-devicehandle.md @@ -0,0 +1,12 @@ +# UsbSerial_DeviceHandle + +## 概述 + +USB串口设备数据结构(不透明)。 + +**起始版本:** 18 + +**相关模块:** [SerialDdk](capi-serialddk.md) + +**所在头文件:** [usb_serial_types.h](capi-usb-serial-types-h.md) + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-params.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-params.md new file mode 100644 index 0000000000000000000000000000000000000000..46cd8e8fe029cf8f813f1d0964aa4553bd7b826e --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-params.md @@ -0,0 +1,24 @@ +# UsbSerial_Params + +## 概述 + +定义USB SERIAL DDK使用的USB串口参数. + +**起始版本:** 18 + +**相关模块:** [SerialDdk](capi-serialddk.md) + +**所在头文件:** [usb_serial_types.h](capi-usb-serial-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint32_t baudRate | 波特率。 | +| uint8_t nDataBits | 数据传输位数。 | +| uint8_t nStopBits | 数据停止位数。 | +| uint8_t parity | 校验参数设置。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk.md new file mode 100644 index 0000000000000000000000000000000000000000..c5788911ffa75474e93ed3bc59e2a8439261547d --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-serialddk.md @@ -0,0 +1,15 @@ +# SerialDdk + +## 概述 + +提供USB Serial DDK接口,包括枚举类型和USB Serial DDK API使用的数据结构。工业用途及一些老旧设备会使用到串口通信,如:发卡机、身份证读卡器等。通过构建USB Serial DDK,支持外设扩展驱动基于USB Serial DDK开发非标外设扩展驱动。 + +**系统能力:** SystemCapability.Driver.UsbSerial.Extension + +**起始版本:** 18 +## 文件汇总 + +| 名称 | 描述 | +| -- | -- | +| [usb_serial_api.h](capi-usb-serial-api-h.md) | 声明用于主机侧访问串口设备的USB Serial DDK接口。 | +| [usb_serial_types.h](capi-usb-serial-types-h.md) | 提供USB SERIAL DDK中的枚举变量、结构体定义与宏定义。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-ddk-api-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-ddk-api-h.md new file mode 100644 index 0000000000000000000000000000000000000000..fe6a08729427d49f6214821b690bd1fcc708e7fd --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-ddk-api-h.md @@ -0,0 +1,482 @@ +# usb_ddk_api.h + +## 概述 + +声明用于主机侧访问设备的USB DDK接口。 + +**引用文件:** + +**库:** libusb_ndk.z.so + +**系统能力:** SystemCapability.Driver.USB.Extension + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +## 汇总 + +### 函数 + +| 名称 | 描述 | +| -- | -- | +| [int32_t OH_Usb_Init(void)](#oh_usb_init) | 初始化DDK。 | +| [void OH_Usb_Release(void)](#oh_usb_release) | 释放DDK。 | +| [int32_t OH_Usb_ReleaseResource(void)](#oh_usb_releaseresource) | 释放DDK。 | +| [int32_t OH_Usb_GetDeviceDescriptor(uint64_t deviceId, struct UsbDeviceDescriptor *desc)](#oh_usb_getdevicedescriptor) | 获取设备描述符。 | +| [int32_t OH_Usb_GetConfigDescriptor(uint64_t deviceId, uint8_t configIndex, struct UsbDdkConfigDescriptor ** const config)](#oh_usb_getconfigdescriptor) | 获取配置描述符。请在描述符使用完后使用[OH_Usb_FreeConfigDescriptor](capi-usb-ddk-api-h.md#oh_usb_freeconfigdescriptor)释放描述符,否则会造成内存泄露。 | +| [void OH_Usb_FreeConfigDescriptor(const struct UsbDdkConfigDescriptor * const config)](#oh_usb_freeconfigdescriptor) | 释放配置描述符,请在描述符使用完后释放描述符,否则会造成内存泄露。 | +| [int32_t OH_Usb_ClaimInterface(uint64_t deviceId, uint8_t interfaceIndex, uint64_t *interfaceHandle)](#oh_usb_claiminterface) | 声明接口。 | +| [int32_t OH_Usb_ReleaseInterface(uint64_t interfaceHandle)](#oh_usb_releaseinterface) | 释放接口。 | +| [int32_t OH_Usb_SelectInterfaceSetting(uint64_t interfaceHandle, uint8_t settingIndex)](#oh_usb_selectinterfacesetting) | 激活接口的备用设置。 | +| [int32_t OH_Usb_GetCurrentInterfaceSetting(uint64_t interfaceHandle, uint8_t *settingIndex)](#oh_usb_getcurrentinterfacesetting) | 获取接口当前激活的备用设置。 | +| [int32_t OH_Usb_SendControlReadRequest(uint64_t interfaceHandle, const struct UsbControlRequestSetup *setup,uint32_t timeout, uint8_t *data, uint32_t *dataLen)](#oh_usb_sendcontrolreadrequest) | 发送控制读请求,该接口为同步接口。 | +| [int32_t OH_Usb_SendControlWriteRequest(uint64_t interfaceHandle, const struct UsbControlRequestSetup *setup,uint32_t timeout, const uint8_t *data, uint32_t dataLen)](#oh_usb_sendcontrolwriterequest) | 发送控制写请求,该接口为同步接口。 | +| [int32_t OH_Usb_SendPipeRequest(const struct UsbRequestPipe *pipe, UsbDeviceMemMap *devMmap)](#oh_usb_sendpiperequest) | 发送管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 | +| [int32_t OH_Usb_SendPipeRequestWithAshmem(const struct UsbRequestPipe *pipe, DDK_Ashmem *ashmem)](#oh_usb_sendpiperequestwithashmem) | 发送管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 | +| [int32_t OH_Usb_CreateDeviceMemMap(uint64_t deviceId, size_t size, UsbDeviceMemMap **devMmap)](#oh_usb_createdevicememmap) | 创建缓冲区。请在缓冲区使用完后,调用[OH_Usb_DestroyDeviceMemMap](capi-usb-ddk-api-h.md#oh_usb_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 | +| [void OH_Usb_DestroyDeviceMemMap(UsbDeviceMemMap *devMmap)](#oh_usb_destroydevicememmap) | 销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 | +| [int32_t OH_Usb_GetDevices(struct Usb_DeviceArray *devices)](#oh_usb_getdevices) | 获取USB设备ID列表。请保证传入的指针参数是有效的,申请设备的数量不要超过128个,在使用完结构之后,释放成员内存,否则造成资源泄露。获取到的USB设备ID,已通过驱动配置信息中的vid进行筛选过滤。 | + +## 函数说明 + +### OH_Usb_Init() + +``` +int32_t OH_Usb_Init(void) +``` + +**描述** + +初始化DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接 USB DDK 服务失败或内部错误。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 内存分配失败。 | + +### OH_Usb_Release() + +``` +void OH_Usb_Release(void) +``` + +**描述** + +释放DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + +### OH_Usb_ReleaseResource() + +``` +int32_t OH_Usb_ReleaseResource(void) +``` + +**描述** + +释放DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 18 + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接 USB DDK 服务失败。 | + +### OH_Usb_GetDeviceDescriptor() + +``` +int32_t OH_Usb_GetDeviceDescriptor(uint64_t deviceId, struct UsbDeviceDescriptor *desc) +``` + +**描述** + +获取设备描述符。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t deviceId | 设备ID,代表要获取描述符的设备。 | +| [struct UsbDeviceDescriptor](capi-usbddk-usbdevicedescriptor.md) *desc | 设备描述符,详细定义请参考[UsbDeviceDescriptor](capi-usbddk-usbdevicedescriptor.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接usb_ddk服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参desc为空指针。 | + +### OH_Usb_GetConfigDescriptor() + +``` +int32_t OH_Usb_GetConfigDescriptor(uint64_t deviceId, uint8_t configIndex, struct UsbDdkConfigDescriptor ** const config) +``` + +**描述** + +获取配置描述符。请在描述符使用完后使用[OH_Usb_FreeConfigDescriptor](capi-usb-ddk-api-h.md#oh_usb_freeconfigdescriptor)释放描述符,否则会造成内存泄露。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +|---------------------------------------------------| -- | +| uint64_t deviceId | 设备ID,代表要获取配置描述符的设备。 | +| uint8_t configIndex | 配置id,对应USB协议中的{@link bConfigurationValue}。 | +| struct [UsbDdkConfigDescriptor](capi-usbddk-usbddkconfigdescriptor.md) ** const config | 配置描述符,包含USB协议中定义的标准配置描述符,以及与其关联的接口描述符和端点描述符。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参config为空指针。
{@link USB_DDK_IO_FAILED} 数据IO异常。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 内存分配失败。 | + +### OH_Usb_FreeConfigDescriptor() + +``` +void OH_Usb_FreeConfigDescriptor(const struct UsbDdkConfigDescriptor * const config) +``` + +**描述** + +释放配置描述符,请在描述符使用完后释放描述符,否则会造成内存泄露。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| const struct [UsbDdkConfigDescriptor](capi-usbddk-usbddkconfigdescriptor.md) * const config | 配置描述符,通过[OH_Usb_GetConfigDescriptor](capi-usb-ddk-api-h.md#oh_usb_getconfigdescriptor)获得的配置描述符。 | + +### OH_Usb_ClaimInterface() + +``` +int32_t OH_Usb_ClaimInterface(uint64_t deviceId, uint8_t interfaceIndex, uint64_t *interfaceHandle) +``` + +**描述** + +声明接口。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t deviceId | 设备ID,代表要操作的设备。 | +| uint8_t interfaceIndex | 接口索引,对应USB协议中的[bInterfaceNumber](capi-usbddk-usbinterfacedescriptor.md)。 | +| uint64_t *interfaceHandle | 接口操作句柄,接口声明成功后,该参数将会被赋值。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参interfaceHandle为空指针。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 内存超出限制。 | + +### OH_Usb_ReleaseInterface() + +``` +int32_t OH_Usb_ReleaseInterface(uint64_t interfaceHandle) +``` + +**描述** + +释放接口。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t interfaceHandle | 接口操作句柄,代表要释放的接口。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 参数错误。 | + +### OH_Usb_SelectInterfaceSetting() + +``` +int32_t OH_Usb_SelectInterfaceSetting(uint64_t interfaceHandle, uint8_t settingIndex) +``` + +**描述** + +激活接口的备用设置。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t interfaceHandle | 接口操作句柄,代表要操作的接口。 | +| uint8_t settingIndex | 备用设置索引,对应USB协议中的{@link bAlternateSetting}。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 参数错误。 | + +### OH_Usb_GetCurrentInterfaceSetting() + +``` +int32_t OH_Usb_GetCurrentInterfaceSetting(uint64_t interfaceHandle, uint8_t *settingIndex) +``` + +**描述** + +获取接口当前激活的备用设置。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t interfaceHandle | 接口操作句柄,代表要操作的接口。 | +| uint8_t *settingIndex | 备用设置索引,对应USB协议中的{@link bAlternateSetting}。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参settingIndex为空指针。 | + +### OH_Usb_SendControlReadRequest() + +``` +int32_t OH_Usb_SendControlReadRequest(uint64_t interfaceHandle, const struct UsbControlRequestSetup *setup,uint32_t timeout, uint8_t *data, uint32_t *dataLen) +``` + +**描述** + +发送控制读请求,该接口为同步接口。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t interfaceHandle | 接口操作句柄,代表要操作的接口。 | +| [const struct UsbControlRequestSetup](capi-usbddk-usbcontrolrequestsetup.md) *setup | 请求相关的参数,详细定义请参考[UsbControlRequestSetup](capi-usbddk-usbcontrolrequestsetup.md)。 | +| uint32_t timeout | 超时时间,单位为毫秒。 | +| uint8_t *data | 要传输的数据。 | +| uint32_t *dataLen | 表示data的数据长度,在函数返回后,表示实际读取到的数据的长度。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
[USB_DDK_FAILED](capi-usb-ddk-types-h.md#usbddkerrcode) 权限校验失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参setup或者data或者dataLen为空指针,或者datalen小于读取到的数据长度。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 拷贝读取数据的内存失败。
USB_DDK_IO_FAILED 数据IO异常。
[USB_DDK_TIMEOUT](capi-usb-ddk-types-h.md#usbddkerrcode) 接口调用超时。 | + +### OH_Usb_SendControlWriteRequest() + +``` +int32_t OH_Usb_SendControlWriteRequest(uint64_t interfaceHandle, const struct UsbControlRequestSetup *setup,uint32_t timeout, const uint8_t *data, uint32_t dataLen) +``` + +**描述** + +发送控制写请求,该接口为同步接口。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t interfaceHandle | 接口操作句柄,代表要操作的接口。 | +| [const struct UsbControlRequestSetup](capi-usbddk-usbcontrolrequestsetup.md) *setup | 请求相关的参数,详细定义请参考[UsbControlRequestSetup](capi-usbddk-usbcontrolrequestsetup.md)。 | +| uint32_t timeout | 超时时间,单位为毫秒。 | +| const uint8_t *data | 要传输的数据。 | +| uint32_t dataLen | 表示data数据长度。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
[USB_DDK_FAILED](capi-usb-ddk-types-h.md#usbddkerrcode) 权限校验失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参setup或者data为空指针。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 内存拷贝失败。
USB_DDK_IO_FAILED 数据IO异常。
[USB_DDK_TIMEOUT](capi-usb-ddk-types-h.md#usbddkerrcode) 接口调用超时。 | + +### OH_Usb_SendPipeRequest() + +``` +int32_t OH_Usb_SendPipeRequest(const struct UsbRequestPipe *pipe, UsbDeviceMemMap *devMmap) +``` + +**描述** + +发送管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [const struct UsbRequestPipe](capi-usbddk-usbrequestpipe.md) *pipe | 要传输数据的管道信息。 | +| [UsbDeviceMemMap](capi-usbddk-usbdevicememmap.md) *devMmap | 数据缓冲区,可以通过[OH_Usb_CreateDeviceMemMap](capi-usb-ddk-api-h.md#oh_usb_createdevicememmap)获得。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参pipe为空指针或devMmap为空指针或devMmap的地址为空。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 读取数据的内存拷贝失败。
USB_DDK_IO_FAILED 数据 IO 异常。
[USB_DDK_TIMEOUT](capi-usb-ddk-types-h.md#usbddkerrcode) 接口超时。 | + +### OH_Usb_SendPipeRequestWithAshmem() + +``` +int32_t OH_Usb_SendPipeRequestWithAshmem(const struct UsbRequestPipe *pipe, DDK_Ashmem *ashmem) +``` + +**描述** + +发送管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 12 + + +**参数:** + +| 参数项 | 描述 | +|-------------------------------------------------------------| -- | +| [const struct UsbRequestPipe](capi-usbddk-usbrequestpipe.md) *pipe | 要传输数据的管道信息。 | +| [DDK_Ashmem](capi-baseddk-ddk-ashmem.md) *ashmem | 共享内存,可以通过 {@link OH_DDK_CreateAshmem}获得。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode)入参pipe为空指针或ashmem为空指针或ashmem的地址为空。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 读取数据的内存拷贝失败。
USB_DDK_IO_FAILED 数据 IO 异常。
[USB_DDK_TIMEOUT](capi-usb-ddk-types-h.md#usbddkerrcode) 接口超时。 | + +### OH_Usb_CreateDeviceMemMap() + +``` +int32_t OH_Usb_CreateDeviceMemMap(uint64_t deviceId, size_t size, UsbDeviceMemMap **devMmap) +``` + +**描述** + +创建缓冲区。请在缓冲区使用完后,调用[OH_Usb_DestroyDeviceMemMap](capi-usb-ddk-api-h.md#oh_usb_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| uint64_t deviceId | 设备ID,代表要创建缓冲区的设备。 | +| size_t size | 缓冲区的大小。 | +| [UsbDeviceMemMap](capi-usbddk-usbdevicememmap.md) **devMmap | 创建的缓冲区通过该参数返回给调用者。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode)调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参devMmap为空指针。
[USB_DDK_MEMORY_ERROR](capi-usb-ddk-types-h.md#usbddkerrcode) 内存映射失败或devMmap的内存分配失败。 | + +### OH_Usb_DestroyDeviceMemMap() + +``` +void OH_Usb_DestroyDeviceMemMap(UsbDeviceMemMap *devMmap) +``` + +**描述** + +销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 10 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbDeviceMemMap](capi-usbddk-usbdevicememmap.md) *devMmap | 销毁由[OH_Usb_CreateDeviceMemMap](capi-usb-ddk-api-h.md#oh_usb_createdevicememmap)创建的缓冲区。 | + +### OH_Usb_GetDevices() + +``` +int32_t OH_Usb_GetDevices(struct Usb_DeviceArray *devices) +``` + +**描述** + +获取USB设备ID列表。请保证传入的指针参数是有效的,申请设备的数量不要超过128个,在使用完结构之后,释放成员内存,否则造成资源泄露。获取到的USB设备ID,已通过驱动配置信息中的vid进行筛选过滤。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [struct Usb_DeviceArray](capi-usbddk-usb-devicearray.md) *devices | 已申请好的设备内存地址,用于存放获取到的设备ID列表及数量。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_DDK_SUCCESS](capi-usb-ddk-types-h.md#usbddkerrcode) 调用接口成功。
USB_DDK_NO_PERM 权限检查失败。
[USB_DDK_INVALID_OPERATION](capi-usb-ddk-types-h.md#usbddkerrcode) 连接USB DDK服务失败。
[USB_DDK_INVALID_PARAMETER](capi-usb-ddk-types-h.md#usbddkerrcode) 入参devices为空指针。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-ddk-types-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-ddk-types-h.md new file mode 100644 index 0000000000000000000000000000000000000000..5ca5f2e03920ead38ad5395857eb6f0d07334cdb --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-ddk-types-h.md @@ -0,0 +1,67 @@ +# usb_ddk_types.h + +## 概述 + +提供USB DDK中的枚举变量、结构体定义与宏定义。 + +**引用文件:** + +**库:** libusb_ndk.z.so + +**系统能力:** SystemCapability.Driver.USB.Extension + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +## 汇总 + +### 结构体 + +| 名称 | typedef关键字 | 描述 | +| -- | -- | -- | +| [UsbControlRequestSetup](capi-usbddk-usbcontrolrequestsetup.md) | __attribute__((aligned(8))) UsbControlRequestSetup | 控制传输setup包,对应USB协议中的Setup Data。 | +| [UsbDeviceDescriptor](capi-usbddk-usbdevicedescriptor.md) | __attribute__((aligned(8))) UsbDeviceDescriptor | 标准设备描述符,对应USB协议中Standard Device Descriptor。 | +| [UsbConfigDescriptor](capi-usbddk-usbconfigdescriptor.md) | __attribute__((packed)) UsbConfigDescriptor | 标准配置描述符,对应USB协议中Standard Configuration Descriptor。 | +| [UsbInterfaceDescriptor](capi-usbddk-usbinterfacedescriptor.md) | __attribute__((packed)) UsbInterfaceDescriptor | 标准接口描述符,对应USB协议中Standard Interface Descriptor。 | +| [UsbEndpointDescriptor](capi-usbddk-usbendpointdescriptor.md) | __attribute__((packed)) UsbEndpointDescriptor | 标准端点描述符,对应USB协议中Standard Endpoint Descriptor。 | +| [UsbDdkEndpointDescriptor](capi-usbddk-usbddkendpointdescriptor.md) | UsbDdkEndpointDescriptor | 端点描述符。 | +| [UsbDdkInterfaceDescriptor](capi-usbddk-usbddkinterfacedescriptor.md) | UsbDdkInterfaceDescriptor | 接口描述符。 | +| [UsbDdkInterface](capi-usbddk-usbddkinterface.md) | UsbDdkInterface | USB接口,是特定接口下备用设置的集合。 | +| [UsbDdkConfigDescriptor](capi-usbddk-usbddkconfigdescriptor.md) | UsbDdkConfigDescriptor | 配置描述符。 | +| [UsbRequestPipe](capi-usbddk-usbrequestpipe.md) | __attribute__((aligned(8))) UsbRequestPipe | 请求管道。 | +| [UsbDeviceMemMap](capi-usbddk-usbdevicememmap.md) | UsbDeviceMemMap | 设备内存映射,通过OH_Usb_CreateDeviceMemMap创建设备内存映射,使用内存映射后的缓冲区,获得更好的性能。 | +| [Usb_DeviceArray](capi-usbddk-usb-devicearray.md) | Usb_DeviceArray | 设备ID清单,用于存放OH_Usb_GetDevices接口获取到的设备ID列表和设备数量。 | + +### 枚举 + +| 名称 | typedef关键字 | 描述 | +| -- | -- | -- | +| [UsbDdkErrCode](#usbddkerrcode) | UsbDdkErrCode | USB DDK 错误码定义。 | + +## 枚举类型说明 + +### UsbDdkErrCode + +``` +enum UsbDdkErrCode +``` + +**描述** + +USB DDK 错误码定义。 + +**起始版本:** 10 + +| 枚举项 | 描述 | +| -- | -- | +| USB_DDK_SUCCESS = 0 | 操作成功。 | +| USB_DDK_FAILED = -1 | 操作失败。 | +| USB_DDK_INVALID_PARAMETER = -2 | 非法参数. | +| USB_DDK_MEMORY_ERROR = -3 | 内存相关的错误,包括:内存不足、内存数据拷贝失败、内存申请失败等。 | +| USB_DDK_INVALID_OPERATION = -4 | 非法操作。 | +| USB_DDK_NULL_PTR = -5 | 空指针异常。 | +| USB_DDK_DEVICE_BUSY = -6 | 设备忙。 | +| USB_DDK_TIMEOUT = -7 | 传输超时。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-serial-api-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-serial-api-h.md new file mode 100644 index 0000000000000000000000000000000000000000..8439a41c100677b0ec0bdfd33bb944200e886341 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-serial-api-h.md @@ -0,0 +1,388 @@ +# usb_serial_api.h + +## 概述 + +声明用于主机侧访问串口设备的USB Serial DDK接口。 + +**引用文件:** + +**库:** libusb_serial.z.so + +**系统能力:** SystemCapability.Driver.UsbSerial.Extension + +**起始版本:** 18 + +**相关模块:** [SerialDdk](capi-serialddk.md) + +## 汇总 + +### 函数 + +| 名称 | 描述 | +| -- | -- | +| [int32_t OH_UsbSerial_Init(void)](#oh_usbserial_init) | 初始化USB Serial DDK。 | +| [int32_t OH_UsbSerial_Release(void)](#oh_usbserial_release) | 释放USB Serial DDK。 | +| [int32_t OH_UsbSerial_Open(uint64_t deviceId, uint8_t interfaceIndex, UsbSerial_DeviceHandle **dev)](#oh_usbserial_open) | 通过deviceId和interfaceIndex打开USB串口设备。 | +| [int32_t OH_UsbSerial_Close(UsbSerial_DeviceHandle *dev)](#oh_usbserial_close) | 关闭USB串口设备。 | +| [int32_t OH_UsbSerial_Read(UsbSerial_DeviceHandle *dev, uint8_t *buff, uint32_t bufferSize, uint32_t *bytesRead)](#oh_usbserial_read) | 从USB串口设备读入数据到缓冲区。 | +| [int32_t OH_UsbSerial_Write(UsbSerial_DeviceHandle *dev, uint8_t *buff, uint32_t bufferSize, uint32_t *bytesWritten)](#oh_usbserial_write) | 将buff中的数据写入USB串口设备。 | +| [int32_t OH_UsbSerial_SetBaudRate(UsbSerial_DeviceHandle *dev, uint32_t baudRate)](#oh_usbserial_setbaudrate) | 设置USB串口设备的波特率。如果USB串口设备的参数为默认值(数据位为8,停止位为1,数据传输无校验),则只需要调用该接口设置波特率。 | +| [int32_t OH_UsbSerial_SetParams(UsbSerial_DeviceHandle *dev, UsbSerial_Params *params)](#oh_usbserial_setparams) | 设置USB串口设备的参数。如果USB串口设备的参数不为默认值(数据位默认为8,停止位默认为1,数据传输默认无校验),则需要调用该接口进行参数设置。 | +| [int32_t OH_UsbSerial_SetTimeout(UsbSerial_DeviceHandle *dev, int timeout)](#oh_usbserial_settimeout) | 设置读取USB串口设备上报数据的超时时间(毫秒)。在不调用此函数的情况下,超时值默认为0,表示不管是否读取到数据都立即返回。如果需要等待一定的时间或者必须读取到数据,则调用该接口。 | +| [int32_t OH_UsbSerial_SetFlowControl(UsbSerial_DeviceHandle *dev, UsbSerial_FlowControl flowControl)](#oh_usbserial_setflowcontrol) | 设置流控参数。USB串口设备通信中的流控用于管理数据传输的速率,以确保发送方不会发送超过接收方处理能力的数据量。
如果USB串口设备实现了流控处理,则需要调用此接口。如果不调用此接口,默认为无流控。 | +| [int32_t OH_UsbSerial_Flush(UsbSerial_DeviceHandle *dev)](#oh_usbserial_flush) | 写入完成后清空输入和输出缓冲区。在向USB串口设备发送数据时,可能会有大量数据缓冲在内核中等待发送。如果应用程序关闭文件描述符或者退出之前
没有等待这些数据被实际发送出去,那么部分数据可能会丢失。调用该接口可以确保所有的数据都被发送完毕再继续执行后续操作。 | +| [int32_t OH_UsbSerial_FlushInput(UsbSerial_DeviceHandle *dev)](#oh_usbserial_flushinput) | 刷新输入缓冲区,缓冲区中的数据会被立刻清空。在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 | +| [int32_t OH_UsbSerial_FlushOutput(UsbSerial_DeviceHandle *dev)](#oh_usbserial_flushoutput) | 刷新输出缓冲区,缓冲区中的数据会被立刻清空。在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 | + +## 函数说明 + +### OH_UsbSerial_Init() + +``` +int32_t OH_UsbSerial_Init(void) +``` + +**描述** + +初始化USB Serial DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + +**返回:** + +| 类型 | 说明 | +| -- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 初始化DDK失败。 | + +### OH_UsbSerial_Release() + +``` +int32_t OH_UsbSerial_Release(void) +``` + +**描述** + +释放USB Serial DDK。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。 | + +### OH_UsbSerial_Open() + +``` +int32_t OH_UsbSerial_Open(uint64_t deviceId, uint8_t interfaceIndex, UsbSerial_DeviceHandle **dev) +``` + +**描述** + +通过deviceId和interfaceIndex打开USB串口设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|----------------------------------|--------------------------------------------| +| uint64_t deviceId | 设备ID,代表要操作的设备。 | +| uint8_t interfaceIndex | 接口索引,对应USB协议中的[bInterfaceNumber](capi-usbddk-usbinterfacedescriptor.md)。 | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) **dev | 设备句柄。 | + +**返回:** + +| 类型 | 说明 | +| -- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因为:dev为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_MEMORY_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 内存不足。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_DEVICE_NOT_FOUND](capi-usb-serial-types-h.md#usbserial_ddkretcode) 找不到设备或接口。 | + +### OH_UsbSerial_Close() + +``` +int32_t OH_UsbSerial_Close(UsbSerial_DeviceHandle *dev) +``` + +**描述** + +关闭USB串口设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | + +**返回:** + +| 类型 | 说明 | +| -- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:dev为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_Read() + +``` +int32_t OH_UsbSerial_Read(UsbSerial_DeviceHandle *dev, uint8_t *buff, uint32_t bufferSize, uint32_t *bytesRead) +``` + +**描述** + +从USB串口设备读入数据到缓冲区。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | +| uint8_t *buff | 保存从USB串口设备读取数据的缓冲区。 | +| uint32_t bufferSize | 缓冲区的大小。 | +| uint32_t *bytesRead | 实际读取的字节数,如果设置了阻塞模式,则实际读取到的数据等于bufferSize后才会返回,
详见[OH_UsbSerial_SetTimeout](capi-usb-serial-api-h.md#oh_usbserial_settimeout)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:1. dev为空指针;
2. buff为空指针; 3. bufferSize等于0; 4. bytesRead为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_MEMORY_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) buff地址无效。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_Write() + +``` +int32_t OH_UsbSerial_Write(UsbSerial_DeviceHandle *dev, uint8_t *buff, uint32_t bufferSize, uint32_t *bytesWritten) +``` + +**描述** + +将buff中的数据写入USB串口设备。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | +| uint8_t *buff | 写入USB串口设备数据的缓冲区。 | +| uint32_t bufferSize | 缓冲区的大小。 | +| uint32_t *bytesWritten | 实际写入的字节数。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:1. dev为空指针;
2. buff为空指针; 3. bufferSize等于0; 4. bytesWritten为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_MEMORY_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) buff地址无效。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_SetBaudRate() + +``` +int32_t OH_UsbSerial_SetBaudRate(UsbSerial_DeviceHandle *dev, uint32_t baudRate) +``` + +**描述** + +设置USB串口设备的波特率。如果USB串口设备的参数为默认值(数据位为8,停止位为1,数据传输无校验),则只需要调用该接口设置波特率。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | +| uint32_t baudRate | USB串口设备的波特率。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode)参数检查失败。可能原因:dev为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_SetParams() + +``` +int32_t OH_UsbSerial_SetParams(UsbSerial_DeviceHandle *dev, UsbSerial_Params *params) +``` + +**描述** + +设置USB串口设备的参数。如果USB串口设备的参数不为默认值(数据位默认为8,停止位默认为1,数据传输默认无校验),则需要调用该接口进行参数设置。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|-------------------------------------------------------------------------| -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | +| [UsbSerial_Params](capi-serialddk-usbserial-params.md) *params | 待设置的USB串口设备参数,详见[UsbSerial_Params](capi-serialddk-usbserial-params.md)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:1. dev为空指针;
2. params为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_SetTimeout() + +``` +int32_t OH_UsbSerial_SetTimeout(UsbSerial_DeviceHandle *dev, int timeout) +``` + +**描述** + +设置读取USB串口设备上报数据的超时时间(毫秒)。在不调用此函数的情况下,超时值默认为0,表示不管是否读取到数据都立即返回。如果需要等待一定的时间或者必须读取到数据,则调用该接口。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | +| int timeout | 读取USB串口设备的超时时间,其取值范围为:- (0, 25500]:以毫秒为单位的时间值,将其四舍五入为最接近的100毫秒后,作为实际的超时时间。例如,输入12321,实际生效的超时时间为12300。- 0:表示立即返回数据,不等待。- -1:表示以阻塞方式读取数据,即读取数据时,只有读到指定长度的数据后才返回,详见[OH_UsbSerial_Read](capi-usb-serial-api-h.md#oh_usbserial_read)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:1. dev为空指针;
2. timeout < -1 or timeout > 25500.
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_SetFlowControl() + +``` +int32_t OH_UsbSerial_SetFlowControl(UsbSerial_DeviceHandle *dev, UsbSerial_FlowControl flowControl) +``` + +**描述** + +设置流控参数。USB串口设备通信中的流控用于管理数据传输的速率,以确保发送方不会发送超过接收方处理能力的数据量。
如果USB串口设备实现了流控处理,则需要调用此接口。如果不调用此接口,默认为无流控。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +|---------------------------------------------------------------------------------------| -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | +| [UsbSerial_FlowControl](capi-usb-serial-types-h.md#usbserial_flowcontrol) flowControl | 流控方式,详见[UsbSerial_FlowControl](capi-usb-serial-types-h.md#usbserial_flowcontrol)。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:dev为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_Flush() + +``` +int32_t OH_UsbSerial_Flush(UsbSerial_DeviceHandle *dev) +``` + +**描述** + +写入完成后清空输入和输出缓冲区。在向USB串口设备发送数据时,可能会有大量数据缓冲在内核中等待发送。如果应用程序关闭文件描述符或者退出之前
没有等待这些数据被实际发送出去,那么部分数据可能会丢失。调用该接口可以确保所有的数据都被发送完毕再继续执行后续操作。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:dev为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_FlushInput() + +``` +int32_t OH_UsbSerial_FlushInput(UsbSerial_DeviceHandle *dev) +``` + +**描述** + +刷新输入缓冲区,缓冲区中的数据会被立刻清空。在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:dev为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + +### OH_UsbSerial_FlushOutput() + +``` +int32_t OH_UsbSerial_FlushOutput(UsbSerial_DeviceHandle *dev) +``` + +**描述** + +刷新输出缓冲区,缓冲区中的数据会被立刻清空。在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 + +**需要权限:** ohos.permission.ACCESS_DDK_USB_SERIAL + +**起始版本:** 18 + + +**参数:** + +| 参数项 | 描述 | +| -- | -- | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) *dev | 设备句柄。 | + +**返回:** + +| 类型 | 说明 | +| -- | -- | +| int32_t | [USB_SERIAL_DDK_SUCCESS](capi-usb-serial-types-h.md#usbserial_ddkretcode) 调用接口成功。
[USB_SERIAL_DDK_NO_PERM](capi-usb-serial-types-h.md#usbserial_ddkretcode) 权限校验失败。
[USB_SERIAL_DDK_INVALID_PARAMETER](capi-usb-serial-types-h.md#usbserial_ddkretcode) 参数检查失败。可能原因:dev为空指针。
[USB_SERIAL_DDK_INIT_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) 未初始化DDK。
[USB_SERIAL_DDK_SERVICE_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK服务通信失败。
[USB_SERIAL_DDK_IO_ERROR](capi-usb-serial-types-h.md#usbserial_ddkretcode) DDK发生I/O错误。
[USB_SERIAL_DDK_INVALID_OPERATION](capi-usb-serial-types-h.md#usbserial_ddkretcode) 无效操作。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-serial-types-h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-serial-types-h.md new file mode 100644 index 0000000000000000000000000000000000000000..00df26f67aafefe493eda28e4484e1930b57fbda --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usb-serial-types-h.md @@ -0,0 +1,96 @@ +# usb_serial_types.h + +## 概述 + +提供USB SERIAL DDK中的枚举变量、结构体定义与宏定义。 + +**引用文件:** + +**库:** libusb_serial.z.so + +**系统能力:** SystemCapability.Driver.UsbSerial.Extension + +**起始版本:** 18 + +**相关模块:** [SerialDdk](capi-serialddk.md) + +## 汇总 + +### 结构体 + +| 名称 | typedef关键字 | 描述 | +| -- | -- | -- | +| [UsbSerial_Params](capi-serialddk-usbserial-params.md) | __attribute__((aligned(8))) UsbSerial_Params | 定义USB SERIAL DDK使用的USB串口参数. | +| [UsbSerial_DeviceHandle](capi-serialddk-usbserial-devicehandle.md) | UsbSerial_DeviceHandle | USB串口设备数据结构(不透明)。 | + +### 枚举 + +| 名称 | typedef关键字 | 描述 | +| -- | -- | -- | +| [UsbSerial_DdkRetCode](#usbserial_ddkretcode) | UsbSerial_DdkRetCode | 定义USB SERIAL DDK使用的返回码。 | +| [UsbSerial_FlowControl](#usbserial_flowcontrol) | UsbSerial_FlowControl | 定义USB SERIAL DDK中的流量控制。 | +| [UsbSerial_Parity](#usbserial_parity) | UsbSerial_Parity | 定义USB SERIAL DDK使用的校验参数枚举。 | + +## 枚举类型说明 + +### UsbSerial_DdkRetCode + +``` +enum UsbSerial_DdkRetCode +``` + +**描述** + +定义USB SERIAL DDK使用的返回码。 + +**起始版本:** 18 + +| 枚举项 | 描述 | +| -- | -- | +| USB_SERIAL_DDK_NO_PERM = 201 | 权限被拒绝。 | +| USB_SERIAL_DDK_INVALID_PARAMETER = 401 | 无效参数。 | +| USB_SERIAL_DDK_SUCCESS = 31600000 | 操作成功。 | +| USB_SERIAL_DDK_INVALID_OPERATION = 31600001 | 无效操作。 | +| USB_SERIAL_DDK_INIT_ERROR = 31600002 | 初始化失败。 | +| USB_SERIAL_DDK_SERVICE_ERROR = 31600003 | 服务错误。 | +| USB_SERIAL_DDK_MEMORY_ERROR = 31600004 | 内存相关错误,例如内存不足、内存数据复制失败或内存应用程序故障。 | +| USB_SERIAL_DDK_IO_ERROR = 31600005 | I/O 错误。 | +| USB_SERIAL_DDK_DEVICE_NOT_FOUND = 31600006 | 未找到设备。 | + +### UsbSerial_FlowControl + +``` +enum UsbSerial_FlowControl +``` + +**描述** + +定义USB SERIAL DDK中的流量控制。 + +**起始版本:** 18 + +| 枚举项 | 描述 | +| -- | -- | +| USB_SERIAL_NO_FLOW_CONTROL = 0 | 无流量控制。 | +| USB_SERIAL_SOFTWARE_FLOW_CONTROL = 1 | 软件流控。 | +| USB_SERIAL_HARDWARE_FLOW_CONTROL = 2 | 硬件流控。 | + +### UsbSerial_Parity + +``` +enum UsbSerial_Parity +``` + +**描述** + +定义USB SERIAL DDK使用的校验参数枚举。 + +**起始版本:** 18 + +| 枚举项 | 描述 | +| -- | -- | +| USB_SERIAL_PARITY_NONE = 0 | 无校验。 | +| USB_SERIAL_PARITY_ODD = 1 | 奇校验。 | +| USB_SERIAL_PARITY_EVEN = 2 | 偶校验。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usb-devicearray.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usb-devicearray.md new file mode 100644 index 0000000000000000000000000000000000000000..434a251caed3590f0b4594cc4cb111b231d8521f --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usb-devicearray.md @@ -0,0 +1,22 @@ +# Usb_DeviceArray + +## 概述 + +设备ID清单,用于存放OH_Usb_GetDevices接口获取到的设备ID列表和设备数量。 + +**起始版本:** 16 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint64_t* deviceIds | 开发者申请好的设备数组首地址,申请的大小不超过128个设备ID。 | +| uint32_t num | 实际返回的设备数量,根据数量遍历deviceIds获得设备ID。当该值为0时,表示不存在USB设备。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbconfigdescriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbconfigdescriptor.md new file mode 100644 index 0000000000000000000000000000000000000000..596e9a6d048d44519fdb163824dae14c9d688be3 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbconfigdescriptor.md @@ -0,0 +1,28 @@ +# UsbConfigDescriptor + +## 概述 + +标准配置描述符,对应USB协议中Standard Configuration Descriptor。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t bLength | 该描述符的大小,单位为字节。 | +| uint8_t bDescriptorType | 描述符类型。 | +| uint16_t wTotalLength | 该配置描述符的总长度,包含配置、接口、端点和特定于类或供应商的描述符。 | +| uint8_t bNumInterfaces | 该配置所支持的接口数量。 | +| uint8_t bConfigurationValue | 设置配置所需要的参数,用来选择当前配置。 | +| uint8_t iConfiguration | 描述该配置的字符串描述符的索引。 | +| uint8_t bmAttributes | 配置属性,包含供电模式,远程唤醒等配置。 | +| uint8_t bMaxPower | 总线供电的USB设备的最大功耗,以2mA为单位。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbcontrolrequestsetup.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbcontrolrequestsetup.md new file mode 100644 index 0000000000000000000000000000000000000000..761c4d22a715c8b7c28738d05beda91a087b5ebe --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbcontrolrequestsetup.md @@ -0,0 +1,25 @@ +# UsbControlRequestSetup + +## 概述 + +控制传输setup包,对应USB协议中的Setup Data。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t bmRequestType | 请求类型。 | +| uint8_t bRequest | 具体的请求。 | +| uint16_t wValue | 具体的请求不同,其代表的含义不一样。 | +| uint16_t wIndex | 具体的请求不同,其代表的含义不一样,通常用来传递索引或者偏移量。 | +| uint16_t wLength | 如果有数据阶段的传输,其代表传输的字节个数。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkconfigdescriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkconfigdescriptor.md new file mode 100644 index 0000000000000000000000000000000000000000..763216f846c49fd95de8bf504b7a1dde2604893f --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkconfigdescriptor.md @@ -0,0 +1,24 @@ +# UsbDdkConfigDescriptor + +## 概述 + +配置描述符。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| struct UsbConfigDescriptor configDescriptor | 标准配置描述符。 | +| struct UsbDdkInterface* interface | 该配置所包含的接口。 | +| uint8_t* extra | 未做解析的描述符,包含特定于类或供应商的描述符。 | +| uint32_t extraLength | 未做解析的描述符长度。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkendpointdescriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkendpointdescriptor.md new file mode 100644 index 0000000000000000000000000000000000000000..f0a2afc00da5dd93b833d5da72a213d95e547798 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkendpointdescriptor.md @@ -0,0 +1,23 @@ +# UsbDdkEndpointDescriptor + +## 概述 + +端点描述符。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| struct UsbEndpointDescriptor endpointDescriptor | 标准端点描述符。 | +| uint8_t* extra | 未做解析的描述符,包含特定于类或供应商的描述符。 | +| uint32_t extraLength | 未做解析的描述符长度。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterface.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterface.md new file mode 100644 index 0000000000000000000000000000000000000000..d0ba07808e3abe4a9b625304a7f6b4278fefa55b --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterface.md @@ -0,0 +1,22 @@ +# UsbDdkInterface + +## 概述 + +USB接口,是特定接口下备用设置的集合。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t numAltsetting | 接口的备用设置数量。 | +| struct UsbDdkInterfaceDescriptor* altsetting | 接口的备用设置。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterfacedescriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterfacedescriptor.md new file mode 100644 index 0000000000000000000000000000000000000000..0f5fe599244b321549a14f7ad919a453e9c70da0 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterfacedescriptor.md @@ -0,0 +1,24 @@ +# UsbDdkInterfaceDescriptor + +## 概述 + +接口描述符。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| struct UsbInterfaceDescriptor interfaceDescriptor | 标准接口描述符。 | +| struct UsbDdkEndpointDescriptor* endPoint | 该接口所包含的端点描述符。 | +| uint8_t* extra | 未做解析的描述符,包含特定于类或供应商的描述符。 | +| uint32_t extraLength | 未做解析的描述符长度。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicedescriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicedescriptor.md new file mode 100644 index 0000000000000000000000000000000000000000..c4c6edfad1a3df128733ff2a48225e77253ef68f --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicedescriptor.md @@ -0,0 +1,34 @@ +# UsbDeviceDescriptor + +## 概述 + +标准设备描述符,对应USB协议中Standard Device Descriptor。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t bLength | 该描述符的大小,单位为字节。 | +| uint8_t bDescriptorType | 描述符类型。 | +| uint16_t bcdUSB | USB协议发布号。 | +| uint8_t bDeviceClass | 由USB标准化组织(USB-IF)分配的设备类代码。 | +| uint8_t bDeviceSubClass | 由USB标准化组织(USB-IF)分配的子类代码,其值由{@link bDeviceClass}的值限定。 | +| uint8_t bDeviceProtocol | 由USB标准化组织(USB-IF)分配的协议代码,其值由{@link bDeviceClass}和{@link bDeviceSubClass}的值限定。 | +| uint8_t bMaxPacketSize0 | 端点零的最大包大小,只有8,16,32,64是合法的。 | +| uint16_t idVendor | 由USB标准化组织(USB-IF)分配的厂商编号。 | +| uint16_t idProduct | 由厂商分配的产品编号。 | +| uint16_t bcdDevice | 设备发布编号。 | +| uint8_t iManufacturer | 描述厂商的字符串描述符的索引。 | +| uint8_t iProduct | 描述产品的字符串描述符的索引。 | +| uint8_t iSerialNumber | 描述设备序列号的字符串描述符的索引。 | +| uint8_t bNumConfigurations | 配置数量。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicememmap.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicememmap.md new file mode 100644 index 0000000000000000000000000000000000000000..3048b951b8705f6609e77c41dfc4d09f3029c0f1 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicememmap.md @@ -0,0 +1,25 @@ +# UsbDeviceMemMap + +## 概述 + +设备内存映射,通过OH_Usb_CreateDeviceMemMap创建设备内存映射,使用内存映射后的缓冲区,获得更好的性能。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t* const address | 映射后的缓冲区地址。 | +| const size_t size | 缓冲区大小。 | +| uint32_t offset | 所使用的的缓冲区的偏移量,默认为0,表示没有偏移,从{@link address}开始。 | +| uint32_t bufferLength | 所使用的缓冲区的长度,默认等于{@link size},表示使用全部的缓冲区。 | +| uint32_t transferedLength | 实际传输的数据的长度。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbendpointdescriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbendpointdescriptor.md new file mode 100644 index 0000000000000000000000000000000000000000..db6a85e767061d6ddc09a8131985eb5df84133ac --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbendpointdescriptor.md @@ -0,0 +1,28 @@ +# UsbEndpointDescriptor + +## 概述 + +标准端点描述符,对应USB协议中Standard Endpoint Descriptor。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t bLength | 该描述符的大小,单位为字节。 | +| uint8_t bDescriptorType | 描述符类型。 | +| uint8_t bEndpointAddress | 端点地址,包含端点编号以及端点方向。 | +| uint8_t bmAttributes | 端点属性,包括传输类型、同步类型、使用类型。 | +| uint16_t wMaxPacketSize | 该端点所能承载的最大包的大小。 | +| uint8_t bInterval | 数据传输轮询端点的时间间隔。 | +| uint8_t bRefresh | 用于音频类设备,同步反馈的速率。 | +| uint8_t bSynchAddress | 用于音频类设备,同步端点的地址。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbinterfacedescriptor.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbinterfacedescriptor.md new file mode 100644 index 0000000000000000000000000000000000000000..ab53c78d951160df19086f476a21e5ea0c2459d6 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbinterfacedescriptor.md @@ -0,0 +1,29 @@ +# UsbInterfaceDescriptor + +## 概述 + +标准接口描述符,对应USB协议中Standard Interface Descriptor。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint8_t bLength | 该描述符的大小,单位为字节。 | +| uint8_t bDescriptorType | 描述符类型。 | +| uint8_t bInterfaceNumber | 接口编号。 | +| uint8_t bAlternateSetting | 用来选择该接口的备用配置的值。 | +| uint8_t bNumEndpoints | 该接口所使用的端点数量(不包括端点零)。 | +| uint8_t bInterfaceClass | 由USB标准化组织(USB-IF)分配的设备类代码。 | +| uint8_t bInterfaceSubClass | 由USB标准化组织(USB-IF)分配的子类代码,其值由{@link bInterfaceClass}的值限定。 | +| uint8_t bInterfaceProtocol | 由USB标准化组织(USB-IF)分配的协议代码,其值由{@link bInterfaceClass}和{@link bInterfaceSubClass}的值限定。 | +| uint8_t iInterface | 描述该接口的字符串描述符的索引。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbrequestpipe.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbrequestpipe.md new file mode 100644 index 0000000000000000000000000000000000000000..97feac7e368887692cf5f0d964b4c4c69cd87887 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk-usbrequestpipe.md @@ -0,0 +1,23 @@ +# UsbRequestPipe + +## 概述 + +请求管道。 + +**起始版本:** 10 + +**相关模块:** [UsbDDK](capi-usbddk.md) + +**所在头文件:** [usb_ddk_types.h](capi-usb-ddk-types-h.md) + +## 汇总 + +### 成员变量 + +| 名称 | 描述 | +| -- | -- | +| uint64_t interfaceHandle | 接口操作句柄。 | +| uint8_t endpoint | 要通信的端点的地址。 | +| uint32_t timeout | 超时时间,单位是毫秒。 | + + diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk.md new file mode 100644 index 0000000000000000000000000000000000000000..9bb48634f4596bd09b08d3903da60d239fc96732 --- /dev/null +++ b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/capi-usbddk.md @@ -0,0 +1,15 @@ +# UsbDDK + +## 概述 + +提供USB DDK接口,包括主机侧打开和关闭接口、管道同步异步读写通信、控制传输、中断传输等。 + +**系统能力:** SystemCapability.Driver.USB.Extension + +**起始版本:** 10 +## 文件汇总 + +| 名称 | 描述 | +| -- | -- | +| [usb_ddk_api.h](capi-usb-ddk-api-h.md) | 声明用于主机侧访问设备的USB DDK接口。 | +| [usb_ddk_types.h](capi-usb-ddk-types-h.md) | 提供USB DDK中的枚举变量、结构体定义与宏定义。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/ddk_api.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/ddk_api.md deleted file mode 100644 index 5682a7fde6243c140c764a08661782e9692b694b..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/ddk_api.md +++ /dev/null @@ -1,25 +0,0 @@ -# ddk_api.h - - -## 概述 - -声明主机侧访问设备的BASE DDK接口。 - -**系统能力:** SystemCapability.Driver.DDK.Extension - -**起始版本:** 12 - -**相关模块:** [Base DDK](_base_ddk.md) - - -## 汇总 - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| [OH_DDK_CreateAshmem](_base_ddk.md#oh_ddk_createashmem) (const uint8_t *name, [DDK_Ashmem](_ddk_ashmem.md) \*\*ashmem) | 创建共享内存。 | -| [OH_DDK_MapAshmem](_base_ddk.md#oh_ddk_mapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem),const uint8_t ashmemMapType | 共享内存映射。 | -| [OH_DDK_UnmapAshmem](_base_ddk.md#oh_ddk_unmapashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 取消共享内存映射。 | -| [OH_DDK_DestroyAshmem](_base_ddk.md#oh_ddk_destroyashmem) ([DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 销毁共享内存。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/ddk_types.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/ddk_types.md deleted file mode 100644 index 92eafd13cd5f932984110a6c634cf8a8a313ed90..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/ddk_types.md +++ /dev/null @@ -1,52 +0,0 @@ -# ddk_types.h - - -## 概述 - -提供Base DDK中的枚举变量、结构体定义。 - -**系统能力:** SystemCapability.Driver.DDK.Extension - -**起始版本:** 12 - -**相关模块:** [Base DDK](_base_ddk.md) - - -## 汇总 - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| [DDK_Ashmem](_ddk_ashmem.md) | 共享内存。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [DDK_RetCode](#ddk_retcode)  {
DDK_SUCCESS = 0,
DDK_FAILED = 28600001,
DDK_INVALID_PARAMETER = 28600002,
DDK_INVALID_OPERATION = 28600003,
DDK_NULL_PTR = 28600004
} | Base DDK 错误码定义。 | - - -## 枚举类型说明 - - -### DDK_RetCode - - -``` -enum DDK_RetCode -``` - -**描述:** - -Base DDK 错误码定义。 - -| 枚举值 | 描述 | -| -------- | -------- | -| DDK_SUCCESS | 操作成功。 | -| DDK_FAILED | 操作失败。 | -| DDK_INVALID_PARAMETER | 非法参数。 | -| DDK_INVALID_OPERATION | 非法操作。 | -| DDK_NULL_PTR | 空指针异常。 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/hid__ddk__api_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/hid__ddk__api_8h.md deleted file mode 100644 index 2484c2ab3dcce2f38da3db491404ac8c5d723ed2..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/hid__ddk__api_8h.md +++ /dev/null @@ -1,43 +0,0 @@ -# hid_ddk_api.h - - -## 概述 - -声明主机侧访问输入设备的HID DDK接口。 - -**引用文件:**<hid/hid_ddk_api.h> - -**库:** libhid.z.so - -**系统能力:** SystemCapability.Driver.HID.Extension - -**起始版本:** 11 - -**相关模块:**[HID DDk](_hid_ddk.md) - - -## 汇总 - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| int32_t [OH_Hid_CreateDevice](_hid_ddk.md#oh_hid_createdevice) ([Hid_Device](_hid___device.md) \*hidDevice, [Hid_EventProperties](_hid___event_properties.md) \*hidEventProperties) | 创建设备。 | -| int32_t [OH_Hid_EmitEvent](_hid_ddk.md#oh_hid_emitevent) (int32_t deviceId, const [Hid_EmitItem](_hid___emit_item.md) items[], uint16_t length) | 向指定设备发送事件列表。 | -| int32_t [OH_Hid_DestroyDevice](_hid_ddk.md#oh_hid_destroydevice) (int32_t deviceId) | 销毁设备。 | -| int32_t [OH_Hid_Init](_hid_ddk.md#oh_hid_init) (void) | 初始化HID DDK。 | -| int32_t [OH_Hid_Release](_hid_ddk.md#oh_hid_release) (void) | 释放HID DDK。 | -| int32_t [OH_Hid_Open](_hid_ddk.md#oh_hid_open) (uint64_t deviceId, uint8_t interfaceIndex, [Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*\*dev) | 打开deviceId和interfaceIndex指定的设备。 | -| int32_t [OH_Hid_Close](_hid_ddk.md#oh_hid_close) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*\*dev) | 关闭设备。 | -| int32_t [OH_Hid_Write](_hid_ddk.md#oh_hid_write) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, uint8_t \*data, uint32_t length, uint32_t \*bytesWritten) | 向设备写入报告。 | -| int32_t [OH_Hid_ReadTimeout](_hid_ddk.md#oh_hid_readtimeout) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, uint8_t \*data, uint32_t bufSize, int timeout, uint32_t \*bytesRead) | 在指定的超时时间内从设备读取报告。 | -| int32_t [OH_Hid_Read](_hid_ddk.md#oh_hid_read) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, uint8_t \*data, uint32_t bufSize, uint32_t \*bytesRead) | 从设备读取报告,默认为阻塞模式(阻塞等待直到有数据可读取),可以调用[OH_Hid_SetNonBlocking](_hid_ddk.md#oh_hid_setnonblocking)改变模式。 | -| int32_t [OH_Hid_SetNonBlocking](_hid_ddk.md#oh_hid_setnonblocking) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, int nonBlock) | 设置设备读取模式为非阻塞。 | -| int32_t [OH_Hid_GetRawInfo](_hid_ddk.md#oh_hid_getrawinfo) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, [Hid_RawDevInfo](_hid___raw_dev_info.md) \*rawDevInfo) | 获取设备原始信息。 | -| int32_t [OH_Hid_GetRawName](_hid_ddk.md#oh_hid_getrawname) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, char \*data, uint32_t bufSize) | 获取设备原始名称。 | -| int32_t [OH_Hid_GetPhysicalAddress](_hid_ddk.md#oh_hid_getphysicaladdress) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, char \*data, uint32_t bufSize) | 获取设备物理地址。 | -| int32_t [OH_Hid_GetRawUniqueId](_hid_ddk.md#oh_hid_getrawuniqueid) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, uint8_t \*data, uint32_t bufSize) | 获取设备原始唯一标识符。 | -| int32_t [OH_Hid_SendReport](_hid_ddk.md#oh_hid_sendreport) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, [Hid_ReportType](_hid_ddk.md#hid_reporttype) reportType, const uint8_t \*data, uint32_t length) | 向设备发送报告。 | -| int32_t [OH_Hid_GetReport](_hid_ddk.md#oh_hid_getreport) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, [Hid_ReportType](_hid_ddk.md#hid_reporttype) reportType, uint8_t \*data, uint32_t bufSize) | 获取设备报告。 | -| int32_t [OH_Hid_GetReportDescriptor](_hid_ddk.md#oh_hid_getreportdescriptor) ([Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) \*dev, uint8_t \*buf, uint32_t bufSize, uint32_t \*bytesRead) | 获取设备报告描述符。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/hid__ddk__types_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/hid__ddk__types_8h.md deleted file mode 100644 index 1972a196ddde37502bdfa2c46df20ca980df77d1..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/hid__ddk__types_8h.md +++ /dev/null @@ -1,72 +0,0 @@ -# hid_ddk_types.h - - -## 概述 - -提供HID DDK中的枚举变量与结构体定义。 - -**引用文件:**<hid/hid_ddk_types.h> - -**库:** libhid.z.so - -**系统能力:** SystemCapability.Driver.HID.Extension - -**起始版本:** 11 - -**相关模块:**[HID DDK](_hid_ddk.md) - - -## 汇总 - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| struct  [Hid_EmitItem](_hid___emit_item.md) | 事件信息。 | -| struct  [Hid_Device](_hid___device.md) | 设备基本信息。 | -| struct  [Hid_EventTypeArray](_hid___event_type_array.md) | 事件类型编码数组。 | -| struct  [Hid_KeyCodeArray](_hid___key_code_array.md) | 键值属性数组。 | -| struct  [Hid_AbsAxesArray](_hid___abs_axes_array.md) | 绝对坐标属性数组。 | -| struct  [Hid_RelAxesArray](_hid___rel_axes_array.md) | 相对坐标属性数组。 | -| struct  [Hid_MscEventArray](_hid___msc_event_array.md) | 其它特殊事件属性数组。 | -| struct  [Hid_EventProperties](_hid___event_properties.md) | 设备关注事件属性。 | -| struct  [Hid_RawDevInfo](_hid___raw_dev_info.md) | 原始设备信息定义。 | - - -### 宏定义 - -| 名称 | 描述 | -| -------- | -------- | -| [HID_MAX_REPORT_BUFFER_SIZE](_hid_ddk.md#hid_max_report_buffer_size)   (16 \* 1024 - 1) | 最大报告缓冲区大小。 | - - -### 类型定义 - -| 名称 | 描述 | -| -------- | -------- | -| typedef struct [Hid_EmitItem](_hid___emit_item.md) [Hid_EmitItem](_hid_ddk.md#hid_emititem) | 事件信息。 | -| typedef struct [Hid_Device](_hid___device.md) [Hid_Device](_hid_ddk.md#hid_device) | 设备基本信息。 | -| typedef struct [Hid_EventTypeArray](_hid___event_type_array.md) [Hid_EventTypeArray](_hid_ddk.md#hid_eventtypearray) | 事件类型编码数组。 | -| typedef struct [Hid_KeyCodeArray](_hid___key_code_array.md) [Hid_KeyCodeArray](_hid_ddk.md#hid_keycodearray) | 键值属性数组。 | -| typedef struct [Hid_AbsAxesArray](_hid___abs_axes_array.md) [Hid_AbsAxesArray](_hid_ddk.md#hid_absaxesarray) | 绝对坐标属性数组。 | -| typedef struct [Hid_RelAxesArray](_hid___rel_axes_array.md) [Hid_RelAxesArray](_hid_ddk.md#hid_relaxesarray) | 相对坐标属性数组。 | -| typedef struct [Hid_MscEventArray](_hid___msc_event_array.md) [Hid_MscEventArray](_hid_ddk.md#hid_msceventarray) | 其它特殊事件属性数组。 | -| typedef struct [Hid_EventProperties](_hid___event_properties.md) [Hid_EventProperties](_hid_ddk.md#hid_eventproperties) | 设备关注事件属性。 | -| typedef struct [Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) [Hid_DeviceHandle](_hid_ddk.md#hid_devicehandle) | 不透明的USB HID设备结构。 | -| typedef struct [Hid_RawDevInfo](_hid___raw_dev_info.md) [Hid_RawDevInfo](_hid_ddk.md#hid_rawdevinfo) | 原始设备信息定义。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [Hid_DeviceProp](_hid_ddk.md#hid_deviceprop) {
HID_PROP_POINTER = 0x00, HID_PROP_DIRECT = 0x01, HID_PROP_BUTTON_PAD = 0x02, HID_PROP_SEMI_MT = 0x03, HID_PROP_TOP_BUTTON_PAD = 0x04, HID_PROP_POINTING_STICK = 0x05, HID_PROP_ACCELEROMETER = 0x06
} | 输入设备特性定义。 | -| [Hid_EventType](_hid_ddk.md#hid_eventtype) {
HID_EV_SYN = 0x00, HID_EV_KEY = 0x01, HID_EV_REL = 0x02, HID_EV_ABS = 0x03, HID_EV_MSC = 0x04
} | 事件类型。 | -| [Hid_SynEvent](_hid_ddk.md#hid_synevent) { HID_SYN_REPORT = 0, HID_SYN_CONFIG = 1, HID_SYN_MT_REPORT = 2, HID_SYN_DROPPED = 3 } | 同步事件编码。 | -| [Hid_KeyCode](_hid_ddk.md#hid_keycode) {
HID_KEY_A = 30, HID_KEY_B = 48, HID_KEY_C = 46, HID_KEY_D = 32, HID_KEY_E = 18, HID_KEY_F = 33, HID_KEY_G = 34, HID_KEY_H = 35, HID_KEY_I = 23, HID_KEY_J = 36, HID_KEY_K = 37, HID_KEY_L = 38, HID_KEY_M = 50, HID_KEY_N = 49, HID_KEY_O = 24, HID_KEY_P = 25, HID_KEY_Q = 16, HID_KEY_R = 19, HID_KEY_S = 31, HID_KEY_T = 20, HID_KEY_U = 22, HID_KEY_V = 47, HID_KEY_W = 17, HID_KEY_X = 45, HID_KEY_Y = 21, HID_KEY_Z = 44, HID_KEY_ESC = 1, HID_KEY_0 = 11, HID_KEY_1 = 2, HID_KEY_2 = 3, HID_KEY_3 = 4, HID_KEY_4 = 5, HID_KEY_5 = 6, HID_KEY_6 = 7, HID_KEY_7 = 8, HID_KEY_8 = 9, HID_KEY_9 = 10, HID_KEY_GRAVE = 41, HID_KEY_MINUS = 12, HID_KEY_EQUALS = 13, HID_KEY_BACKSPACE = 14, HID_KEY_LEFT_BRACKET = 26, HID_KEY_RIGHT_BRACKET = 27, HID_KEY_ENTER = 28, HID_KEY_LEFT_SHIFT = 42, HID_KEY_BACKSLASH = 43, HID_KEY_SEMICOLON = 39, HID_KEY_APOSTROPHE = 40, HID_KEY_SPACE = 57, HID_KEY_SLASH = 53, HID_KEY_COMMA = 51, HID_KEY_PERIOD = 52, HID_KEY_RIGHT_SHIFT = 54, HID_KEY_NUMPAD_0 = 82, HID_KEY_NUMPAD_1 = 79, HID_KEY_NUMPAD_2 = 80, HID_KEY_NUMPAD_3 = 81, HID_KEY_NUMPAD_4 = 75, HID_KEY_NUMPAD_5 = 76, HID_KEY_NUMPAD_6 = 77, HID_KEY_NUMPAD_7 = 71, HID_KEY_NUMPAD_8 = 72, HID_KEY_NUMPAD_9 = 73, HID_KEY_NUMPAD_DIVIDE = 70, HID_KEY_NUMPAD_MULTIPLY = 55, HID_KEY_NUMPAD_SUBTRACT = 74, HID_KEY_NUMPAD_ADD = 78, HID_KEY_NUMPAD_DOT = 83, HID_KEY_SYSRQ = 99, HID_KEY_DELETE = 111, HID_KEY_MUTE = 113, HID_KEY_VOLUME_DOWN = 114, HID_KEY_VOLUME_UP = 115, HID_KEY_BRIGHTNESS_DOWN = 224, HID_KEY_BRIGHTNESS_UP = 225, HID_BTN_0 = 0x100, HID_BTN_1 = 0x101, HID_BTN_2 = 0x102, HID_BTN_3 = 0x103, HID_BTN_4 = 0x104, HID_BTN_5 = 0x105, HID_BTN_6 = 0x106, HID_BTN_7 = 0x107, HID_BTN_8 = 0x108, HID_BTN_9 = 0x109, HID_BTN_LEFT = 0x110, HID_BTN_RIGHT = 0x111, HID_BTN_MIDDLE = 0x112, HID_BTN_SIDE = 0x113, HID_BTN_EXTRA = 0x114, HID_BTN_FORWARD = 0x115, HID_BTN_BACKWARD = 0x116, HID_BTN_TASK = 0x117, HID_BTN_TOOL_PEN = 0x140, HID_BTN_TOOL_RUBBER = 0x141, HID_BTN_TOOL_BRUSH = 0x142, HID_BTN_TOOL_PENCIL = 0x143, HID_BTN_TOOL_AIRBRUSH = 0x144, HID_BTN_TOOL_FINGER = 0x145, HID_BTN_TOOL_MOUSE = 0x146, HID_BTN_TOOL_LENS = 0x147, HID_BTN_TOOL_QUINT_TAP = 0x148, HID_BTN_STYLUS3 = 0x149, HID_BTN_TOUCH = 0x14a, HID_BTN_STYLUS = 0x14b, HID_BTN_STYLUS2 = 0x14c, HID_BTN_TOOL_DOUBLE_TAP = 0x14d, HID_BTN_TOOL_TRIPLE_TAP = 0x14e, HID_BTN_TOOL_QUAD_TAP = 0x14f, HID_BTN_WHEEL = 0x150
} | 键值编码。 | -| [Hid_AbsAxes](_hid_ddk.md#hid_absaxes) {
HID_ABS_X = 0x00, HID_ABS_Y = 0x01, HID_ABS_Z = 0x02, HID_ABS_RX = 0x03, HID_ABS_RY = 0x04, HID_ABS_RZ = 0x05, HID_ABS_THROTTLE = 0x06, HID_ABS_RUDDER = 0x07, HID_ABS_WHEEL = 0x08, HID_ABS_GAS = 0x09, HID_ABS_BRAKE = 0x0a, HID_ABS_HAT0X = 0x10, HID_ABS_HAT0Y = 0x11, HID_ABS_HAT1X = 0x12, HID_ABS_HAT1Y = 0x13, HID_ABS_HAT2X = 0x14, HID_ABS_HAT2Y = 0x15, HID_ABS_HAT3X = 0x16, HID_ABS_HAT3Y = 0x17, HID_ABS_PRESSURE = 0x18, HID_ABS_DISTANCE = 0x19, HID_ABS_TILT_X = 0x1a, HID_ABS_TILT_Y = 0x1b, HID_ABS_TOOL_WIDTH = 0x1c, HID_ABS_VOLUME = 0x20, HID_ABS_MISC = 0x28
} | 绝对坐标编码。 | -| [Hid_RelAxes](_hid_ddk.md#hid_relaxes) {
HID_REL_X = 0x00, HID_REL_Y = 0x01, HID_REL_Z = 0x02, HID_REL_RX = 0x03, HID_REL_RY = 0x04, HID_REL_RZ = 0x05, HID_REL_HWHEEL = 0x06, HID_REL_DIAL = 0x07, HID_REL_WHEEL = 0x08, HID_REL_MISC = 0x09, HID_REL_RESERVED = 0x0a, HID_REL_WHEEL_HI_RES = 0x0b, HID_REL_HWHEEL_HI_RES = 0x0c
} | 相对坐标编码。 | -| [Hid_MscEvent](_hid_ddk.md#hid_mscevent) {
HID_MSC_SERIAL = 0x00, HID_MSC_PULSE_LED = 0x01, HID_MSC_GESTURE = 0x02, HID_MSC_RAW = 0x03, HID_MSC_SCAN = 0x04, HID_MSC_TIMESTAMP = 0x05
} | 不适合其它类型的输入事件编码。 | -| [Hid_DdkErrCode](_hid_ddk.md#hid_ddkerrcode) {
HID_DDK_SUCCESS = 0, HID_DDK_NO_PERM = 201, HID_DDK_INVALID_PARAMETER = 401, HID_DDK_FAILURE = 27300001, HID_DDK_NULL_PTR = 27300002, HID_DDK_INVALID_OPERATION = 27300003, HID_DDK_TIMEOUT = 27300004, HID_DDK_INIT_ERROR = 27300005, HID_DDK_SERVICE_ERROR = 27300006, HID_DDK_MEMORY_ERROR = 27300007, HID_DDK_IO_ERROR = 27300008, HID_DDK_DEVICE_NOT_FOUND = 27300009
} | HID DDK错误码定义。 | -| [Hid_ReportType](_hid_ddk.md#hid_reporttype) { HID_INPUT_REPORT = 0, HID_OUTPUT_REPORT = 1, HID_FEATURE_REPORT = 2 } | 报告(HID设备与主机之间交换的数据包)类型定义。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/scsi__peripheral__api_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/scsi__peripheral__api_8h.md deleted file mode 100644 index cbada0942a804df6fcc69c583764346d3e4e9a64..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/scsi__peripheral__api_8h.md +++ /dev/null @@ -1,40 +0,0 @@ -# scsi_peripheral_api.h - - -## 概述 - -声明用于主机侧访问SCSI设备的SCSI Peripheral DDK接口。 - -**引用文件:** <scsi_peripheral/scsi_peripheral_api.h> - -**库:** libscsi.z.so - -**系统能力:** SystemCapability.Driver.SCSI.Extension - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - - -## 汇总 - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| int32_t [OH_ScsiPeripheral_Init](_s_c_s_i.md#oh_scsiperipheral_init) (void) | 初始化SCSI Peripheral DDK。 | -| int32_t [OH_ScsiPeripheral_Release](_s_c_s_i.md#oh_scsiperipheral_release) (void) | 释放SCSI Peripheral DDK。 | -| int32_t [OH_ScsiPeripheral_Open](_s_c_s_i.md#oh_scsiperipheral_open) (uint64_t deviceId, uint8_t interfaceIndex, [ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*\*dev) | 打开deviceId和interfaceIndex指定的SCSI设备。 | -| int32_t [OH_ScsiPeripheral_Close](_s_c_s_i.md#oh_scsiperipheral_close) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*\*dev) | 关闭SCSI设备。 | -| int32_t [OH_ScsiPeripheral_TestUnitReady](_s_c_s_i.md#oh_scsiperipheral_testunitready) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 检查逻辑单元是否已经准备好。 | -| int32_t [OH_ScsiPeripheral_Inquiry](_s_c_s_i.md#oh_scsiperipheral_inquiry) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md) \*request, [ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md) \*inquiryInfo, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 查询SCSI设备的基本信息。 | -| int32_t [OH_ScsiPeripheral_ReadCapacity10](_s_c_s_i.md#oh_scsiperipheral_readcapacity10) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md) \*request, [ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md) \*capacityInfo, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 获取SCSI设备的容量信息。 | -| int32_t [OH_ScsiPeripheral_RequestSense](_s_c_s_i.md#oh_scsiperipheral_requestsense) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 获取sense data(SCSI设备返回给主机的信息,用于报告设备的状态、错误信息以及诊断信息)。 | -| int32_t [OH_ScsiPeripheral_Read10](_s_c_s_i.md#oh_scsiperipheral_read10) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 从指定逻辑块读取数据。 | -| int32_t [OH_ScsiPeripheral_Write10](_s_c_s_i.md#oh_scsiperipheral_write10) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 写数据到设备的指定逻辑块。 | -| int32_t [OH_ScsiPeripheral_Verify10](_s_c_s_i.md#oh_scsiperipheral_verify10) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 校验指定逻辑块。 | -| int32_t [OH_ScsiPeripheral_SendRequestByCdb](_s_c_s_i.md#oh_scsiperipheral_sendrequestbycdb) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, [ScsiPeripheral_Request](_scsi_peripheral___request.md) \*request, [ScsiPeripheral_Response](_scsi_peripheral___response.md) \*response) | 以CDB(Command Descriptor Block)方式发送SCSI命令。 | -| int32_t [OH_ScsiPeripheral_CreateDeviceMemMap](_s_c_s_i.md#oh_scsiperipheral_createdevicememmap) ([ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) \*dev, size_t size, [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) \*\*devMmap) | 创建缓冲区。请在缓冲区使用完后,调用[OH_ScsiPeripheral_DestroyDeviceMemMap](_s_c_s_i.md#oh_scsiperipheral_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 | -| int32_t [OH_ScsiPeripheral_DestroyDeviceMemMap](_s_c_s_i.md#oh_scsiperipheral_destroydevicememmap) ([ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) \*devMmap) | 销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 | -| int32_t [OH_ScsiPeripheral_ParseBasicSenseInfo](_s_c_s_i.md#oh_scsiperipheral_parsebasicsenseinfo) (uint8_t \*senseData, uint8_t senseDataLen, [ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md) \*senseInfo) | 解析基本的sense data,包括Information、Command specific information、Sense key specific字段。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/scsi__peripheral__types_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/scsi__peripheral__types_8h.md deleted file mode 100644 index 385747cfa9106d455602eff87ce17ac5b2d9f835..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/scsi__peripheral__types_8h.md +++ /dev/null @@ -1,77 +0,0 @@ -# scsi_peripheral_types.h - - -## 概述 - -提供在SCSI Peripheral DDK(驱动开发工具包)API中使用的枚举变量、结构体和宏。 - -**引用文件:** <scsi_peripheral/scsi_peripheral_types.h> - -**库:** libscsi.z.so - -**系统能力:** SystemCapability.Driver.SCSI.Extension - -**起始版本:** 18 - -**相关模块:**[SCSI Peripheral DDK](_s_c_s_i.md) - - -## 汇总 - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| struct  [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) | 通过调用[OH_ScsiPeripheral_CreateDeviceMemMap](_s_c_s_i.md#oh_scsiperipheral_createdevicememmap)创建的设备内存映射。 使用该设备内存映射的缓冲区可以提供更好的性能。 | -| struct  [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) | 读/写操作的请求参数。 | -| struct  [ScsiPeripheral_Request](_scsi_peripheral___request.md) | 请求参数结构体。 | -| struct  [ScsiPeripheral_Response](_scsi_peripheral___response.md) | 响应参数结构体。 | -| struct  [ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md) | 命令(test unit ready)的请求结构体。 | -| struct  [ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md) | SCSI命令(inquiry)的请求结构体。 | -| struct  [ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md) | SCSI inquiry 数据。 | -| struct  [ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md) | SCSI命令(read capacity)的请求结构体。 | -| struct  [ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md) | SCSI read capacity 数据。 | -| struct  [ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md) | SCSI命令(request sense)的请求结构体。 | -| struct  [ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md) | sense data的基本信息。 | -| struct  [ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md) | SCSI命令(verify)的请求结构体。 | - - -### 宏定义 - -| 名称 | 描述 | -| -------- | -------- | -| [SCSIPERIPHERAL_MIN_DESCRIPTOR_FORMAT_SENSE](_s_c_s_i.md#scsiperipheral_min_descriptor_format_sense)   8 | sense data描述符格式长度最小值。 | -| [SCSIPERIPHERAL_MIN_FIXED_FORMAT_SENSE](_s_c_s_i.md#scsiperipheral_min_fixed_format_sense)   18 | sense data固定格式长度最小值。 | -| [SCSIPERIPHERAL_MAX_CMD_DESC_BLOCK_LEN](_s_c_s_i.md#scsiperipheral_max_cmd_desc_block_len)   16 | 命令描述符块的最大长度。 | -| [SCSIPERIPHERAL_MAX_SENSE_DATA_LEN](_s_c_s_i.md#scsiperipheral_max_sense_data_len)   252 | 在SCSI协议中,Sense Data(感应数据)的最大长度通常为252字节。 | -| [SCSIPERIPHERAL_VENDOR_ID_LEN](_s_c_s_i.md#scsiperipheral_vendor_id_len)   8 | vendor id的最大长度。 | -| [SCSIPERIPHERAL_PRODUCT_ID_LEN](_s_c_s_i.md#scsiperipheral_product_id_len)   18 | product id的最大长度。 | -| [SCSIPERIPHERAL_PRODUCT_REV_LEN](_s_c_s_i.md#scsiperipheral_product_rev_len)   4 | 产品版本的最大长度。 | - - -### 类型定义 - -| 名称 | 描述 | -| -------- | -------- | -| typedef struct [ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) [ScsiPeripheral_Device](_s_c_s_i.md#scsiperipheral_device) | 不透明的SCSI设备结构体。 | -| typedef struct [ScsiPeripheral_DeviceMemMap](_scsi_peripheral___device_mem_map.md) [ScsiPeripheral_DeviceMemMap](_s_c_s_i.md#scsiperipheral_devicememmap) | 通过调用[OH_ScsiPeripheral_CreateDeviceMemMap](_s_c_s_i.md#oh_scsiperipheral_createdevicememmap)创建的设备内存映射。 使用该设备内存映射的缓冲区可以提供更好的性能。 | -| typedef struct [ScsiPeripheral_IORequest](_scsi_peripheral___i_o_request.md) [ScsiPeripheral_IORequest](_s_c_s_i.md#scsiperipheral_iorequest) | 读/写操作的请求参数。 | -| typedef struct [ScsiPeripheral_Request](_scsi_peripheral___request.md) [ScsiPeripheral_Request](_s_c_s_i.md#scsiperipheral_request) | 请求参数结构体。 | -| typedef struct [ScsiPeripheral_Response](_scsi_peripheral___response.md) [ScsiPeripheral_Response](_s_c_s_i.md#scsiperipheral_response) | 响应参数结构体。 | -| typedef struct [ScsiPeripheral_TestUnitReadyRequest](_scsi_peripheral___test_unit_ready_request.md) [ScsiPeripheral_TestUnitReadyRequest](_s_c_s_i.md#scsiperipheral_testunitreadyrequest) | 命令(test unit ready)的请求结构体。 | -| typedef struct [ScsiPeripheral_InquiryRequest](_scsi_peripheral___inquiry_request.md) [ScsiPeripheral_InquiryRequest](_s_c_s_i.md#scsiperipheral_inquiryrequest) | SCSI命令(inquiry)的请求结构体。 | -| typedef struct [ScsiPeripheral_InquiryInfo](_scsi_peripheral___inquiry_info.md) [ScsiPeripheral_InquiryInfo](_s_c_s_i.md#scsiperipheral_inquiryinfo) | SCSI inquiry 数据。 | -| typedef struct [ScsiPeripheral_ReadCapacityRequest](_scsi_peripheral___read_capacity_request.md) [ScsiPeripheral_ReadCapacityRequest](_s_c_s_i.md#scsiperipheral_readcapacityrequest) | SCSI命令(read capacity)的请求结构体。 | -| typedef struct [ScsiPeripheral_CapacityInfo](_scsi_peripheral___capacity_info.md) [ScsiPeripheral_CapacityInfo](_s_c_s_i.md#scsiperipheral_capacityinfo) | SCSI read capacity 数据。 | -| typedef struct [ScsiPeripheral_RequestSenseRequest](_scsi_peripheral___request_sense_request.md) [ScsiPeripheral_RequestSenseRequest](_s_c_s_i.md#scsiperipheral_requestsenserequest) | SCSI命令(request sense)的请求结构体。 | -| typedef struct [ScsiPeripheral_BasicSenseInfo](_scsi_peripheral___basic_sense_info.md) [ScsiPeripheral_BasicSenseInfo](_s_c_s_i.md#scsiperipheral_basicsenseinfo) | sense data的基本信息。 | -| typedef struct [ScsiPeripheral_VerifyRequest](_scsi_peripheral___verify_request.md) [ScsiPeripheral_VerifyRequest](_s_c_s_i.md#scsiperipheral_verifyrequest) | SCSI命令(verify)的请求结构体。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [ScsiPeripheral_DdkErrCode](_s_c_s_i.md#scsiperipheral_ddkerrcode) {
SCSIPERIPHERAL_DDK_NO_PERM = 201, SCSIPERIPHERAL_DDK_INVALID_PARAMETER = 401, SCSIPERIPHERAL_DDK_SUCCESS = 31700000, SCSIPERIPHERAL_DDK_MEMORY_ERROR = 31700001, SCSIPERIPHERAL_DDK_INVALID_OPERATION = 31700002, SCSIPERIPHERAL_DDK_IO_ERROR = 31700003, SCSIPERIPHERAL_DDK_TIMEOUT = 31700004, SCSIPERIPHERAL_DDK_INIT_ERROR = 31700005, SCSIPERIPHERAL_DDK_SERVICE_ERROR = 31700006, SCSIPERIPHERAL_DDK_DEVICE_NOT_FOUND = 31700007
} | SCSI Peripheral DDK错误码。 | -| [ScsiPeripheral_Status](_s_c_s_i.md#scsiperipheral_status) {
SCSIPERIPHERAL_STATUS_GOOD = 0x00, SCSIPERIPHERAL_STATUS_CHECK_CONDITION_NEEDED = 0x02, SCSIPERIPHERAL_STATUS_CONDITION_MET = 0x04, SCSIPERIPHERAL_STATUS_BUSY = 0x08, SCSIPERIPHERAL_STATUS_RESERVATION_CONFLICT = 0x18, SCSIPERIPHERAL_STATUS_TASK_SET_FULL = 0x28, SCSIPERIPHERAL_STATUS_ACA_ACTIVE = 0x30, SCSIPERIPHERAL_STATUS_TASK_ABORTED = 0x40
} | 定义用于响应的SCSI状态。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__ddk__api_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__ddk__api_8h.md deleted file mode 100644 index 0cfc3bdadbdc313d5db123f346777ef80ad4f2e0..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__ddk__api_8h.md +++ /dev/null @@ -1,42 +0,0 @@ -# usb_ddk_api.h - - -## 概述 - -声明用于主机侧访问设备的USB DDK接口。 - -**引用文件:** - -**库:** libusb_ndk.z.so - -**系统能力:** SystemCapability.Driver.USB.Extension - -**起始版本:** 10 - -**相关模块:** [USB DDK](_usb_ddk.md) - - -## 汇总 - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| [OH_Usb_Init](_usb_ddk.md#oh_usb_init) (void) | 初始化DDK。 | -| [OH_Usb_Release](_usb_ddk.md#oh_usb_release) (void) | 释放DDK。 | -| [OH_Usb_ReleaseResource](_usb_ddk.md#oh_usb_releaseresource) (void) | 释放DDK。 | -| [OH_Usb_GetDeviceDescriptor](_usb_ddk.md#oh_usb_getdevicedescriptor) (uint64_t deviceId, struct [UsbDeviceDescriptor](_usb_device_descriptor.md) \*desc) | 获取设备描述符。 | -| [OH_Usb_GetConfigDescriptor](_usb_ddk.md#oh_usb_getconfigdescriptor) (uint64_t deviceId, uint8_t configIndex, struct [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) \*\*const config) | 获取配置描述符。请在描述符使用完后使用[OH_Usb_FreeConfigDescriptor()](_usb_ddk.md#oh_usb_freeconfigdescriptor)释放描述符,否则会造成内存泄露。 | -| [OH_Usb_FreeConfigDescriptor](_usb_ddk.md#oh_usb_freeconfigdescriptor) (const struct [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) \*const config) | 释放配置描述符,请在描述符使用完后释放描述符,否则会造成内存泄露。 | -| [OH_Usb_ClaimInterface](_usb_ddk.md#oh_usb_claiminterface) (uint64_t deviceId, uint8_t interfaceIndex, uint64_t \*[interfaceHandle](usb__ddk__types_8h.md#interfacehandle)) | 声明接口。 | -| [OH_Usb_ReleaseInterface](_usb_ddk.md#oh_usb_releaseinterface) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle)) | 释放接口。 | -| [OH_Usb_SelectInterfaceSetting](_usb_ddk.md#oh_usb_selectinterfacesetting) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), uint8_t settingIndex) | 激活接口的备用设置。 | -| [OH_Usb_GetCurrentInterfaceSetting](_usb_ddk.md#oh_usb_getcurrentinterfacesetting) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), uint8_t \*settingIndex) | 获取接口当前激活的备用设置。 | -| [OH_Usb_SendControlReadRequest](_usb_ddk.md#oh_usb_sendcontrolreadrequest) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), const struct [UsbControlRequestSetup](_usb_control_request_setup.md) \*setup, uint32_t [timeout](usb__ddk__types_8h.md#timeout), uint8_t \*data, uint32_t \*dataLen) | 发送控制读请求,该接口为同步接口。 | -| [OH_Usb_SendControlWriteRequest](_usb_ddk.md#oh_usb_sendcontrolwriterequest) (uint64_t [interfaceHandle](usb__ddk__types_8h.md#interfacehandle), const struct [UsbControlRequestSetup](_usb_control_request_setup.md) \*setup, uint32_t [timeout](usb__ddk__types_8h.md#timeout), const uint8_t \*data, uint32_t dataLen) | 发送控制写请求,该接口为同步接口。 | -| [OH_Usb_SendPipeRequest](_usb_ddk.md#oh_usb_sendpiperequest) (const struct [UsbRequestPipe](_usb_request_pipe.md) \*pipe, [UsbDeviceMemMap](_usb_device_mem_map.md) \*devMmap) | 发送管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 | -| [OH_Usb_SendPipeRequestWithAshmem](_usb_ddk.md#oh_usb_sendpiperequestwithashmem) (const struct [UsbRequestPipe](_usb_request_pipe.md) \*pipe, [DDK_Ashmem](_ddk_ashmem.md) \*ashmem) | 发送共享内存的管道请求,该接口为同步接口。中断传输和批量传输都使用该接口发送请求。 | -| [OH_Usb_CreateDeviceMemMap](_usb_ddk.md#oh_usb_createdevicememmap) (uint64_t deviceId, size_t size, [UsbDeviceMemMap](_usb_device_mem_map.md) \*\*devMmap) | 创建缓冲区。请在缓冲区使用完后,调用[OH_Usb_DestroyDeviceMemMap()](_usb_ddk.md#oh_usb_destroydevicememmap)销毁缓冲区,否则会造成资源泄露。 | -| [OH_Usb_DestroyDeviceMemMap](_usb_ddk.md#oh_usb_destroydevicememmap) ([UsbDeviceMemMap](_usb_device_mem_map.md) \*devMmap) | 销毁缓冲区。请在缓冲区使用完后及时销毁缓冲区,否则会造成资源泄露。 | -| [OH_Usb_GetDevices](_usb_ddk.md#oh_usb_getdevices) ([Usb_DeviceArray](_usb_device_array.md) \*devices) | 获取USB设备ID列表。请保证传入的指针参数是有效的,申请设备的数量不要超过128个,在使用完结构之后,释放成员内存,否则造成资源泄露。获取到的USB设备ID,已通过驱动配置信息中的vid进行筛选过滤。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__ddk__types_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__ddk__types_8h.md deleted file mode 100644 index b7c5a0b3c09db362ee16fd755f24a2cc755128a3..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__ddk__types_8h.md +++ /dev/null @@ -1,620 +0,0 @@ -# usb_ddk_types.h - - -## 概述 - -提供USB DDK中的枚举变量、结构体定义与宏定义。 - -**引用文件:** - -**库:** libusb_ndk.z.so - -**系统能力:** SystemCapability.Driver.USB.Extension - -**起始版本:** 10 - -**相关模块:** [USB DDK](_usb_ddk.md) - - -## 汇总 - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| [UsbControlRequestSetup](_usb_control_request_setup.md) | 控制传输setup包,对应USB协议中的Setup Data。 | -| [UsbDeviceDescriptor](_usb_device_descriptor.md) | 标准设备描述符,对应USB协议中Standard Device Descriptor。 | -| [UsbConfigDescriptor](_usb_config_descriptor.md) | 标准配置描述符,对应USB协议中Standard Configuration Descriptor。 | -| [UsbInterfaceDescriptor](_usb_interface_descriptor.md) | 标准接口描述符,对应USB协议中Standard Interface Descriptor。 | -| [UsbEndpointDescriptor](_usb_endpoint_descriptor.md) | 标准端点描述符,对应USB协议中Standard Endpoint Descriptor。 | -| [UsbDdkEndpointDescriptor](_usb_ddk_endpoint_descriptor.md) | 端点描述符。 | -| [UsbDdkInterfaceDescriptor](_usb_ddk_interface_descriptor.md) | 接口描述符。 | -| [UsbDdkInterface](_usb_ddk_interface.md) | USB接口,是特定接口下备用设置的集合。 | -| [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) | 配置描述符。 | -| [UsbRequestPipe](_usb_request_pipe.md) | 请求管道。 | -| [UsbDeviceMemMap](_usb_device_mem_map.md) | 设备内存映射,通过[OH_Usb_CreateDeviceMemMap()](_usb_ddk.md#oh_usb_createdevicememmap)创建设备内存映射,使用内存映射后的缓冲区,获得更好的性能。 | -| [Usb_DeviceArray](_usb_device_array.md) | 设备ID清单,用于存放[OH_Usb_GetDevices()](_usb_ddk.md#oh_usb_getdevices)接口获取到的设备ID列表和设备数量。 | - - -### 类型定义 - -| 名称 | 描述 | -| -------- | -------- | -| typedef struct [UsbDdkEndpointDescriptor](_usb_ddk_endpoint_descriptor.md) [UsbDdkEndpointDescriptor](_usb_ddk.md#usbddkendpointdescriptor) | 端点描述符。 | -| typedef struct [UsbDdkInterfaceDescriptor](_usb_ddk_interface_descriptor.md) [UsbDdkInterfaceDescriptor](_usb_ddk.md#usbddkinterfacedescriptor) | 接口描述符。 | -| typedef struct [UsbDdkInterface](_usb_ddk_interface.md) [UsbDdkInterface](_usb_ddk.md#usbddkinterface) | USB接口。 | -| typedef struct [UsbDdkConfigDescriptor](_usb_ddk_config_descriptor.md) [UsbDdkConfigDescriptor](_usb_ddk.md#usbddkconfigdescriptor) | 配置描述符。 | -| typedef struct [UsbDeviceMemMap](_usb_device_mem_map.md) [UsbDeviceMemMap](_usb_ddk.md#usbdevicememmap) | 设备内存映射,通过[OH_Usb_CreateDeviceMemMap()](_usb_ddk.md#oh_usb_createdevicememmap)创建设备内存映射,使用内存映射后的缓冲区,获得更好的性能。 | -| typedef struct [Usb_DeviceArray](_usb_device_array.md) [Usb_DeviceArray](_usb_ddk.md#usb_devicearray) | 设备ID清单,用于存放[OH_Usb_GetDevices()](_usb_ddk.md#oh_usb_getdevices)接口获取到的设备ID列表和设备数量。 | - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [UsbDdkErrCode](_usb_ddk.md#usbddkerrcode) {
USB_DDK_SUCCESS = 0, USB_DDK_FAILED = -1, USB_DDK_INVALID_PARAMETER = -2, USB_DDK_MEMORY_ERROR = -3,
USB_DDK_INVALID_OPERATION = -4, USB_DDK_NULL_PTR = -5, USB_DDK_DEVICE_BUSY = -6, USB_DDK_TIMEOUT = -7
} | USB DDK 错误码定义。 | - - -### 变量 - -| 名称 | 描述 | -| -------- | -------- | -| [bmRequestType](#bmrequesttype) | 请求类型。 | -| [bRequest](#brequest) | 具体的请求。 | -| [wValue](#wvalue) | 具体的请求不同,其代表的含义不一样。 | -| [wIndex](#windex) | 具体的请求不同,其代表的含义不一样,通常用来传递索引或者偏移量。 | -| [wLength](#wlength) | 如果有数据阶段的传输,其代表传输的字节个数。 | -| [bLength](#blength) | 该描述符的大小,单位为字节。 | -| [bDescriptorType](#bdescriptortype) | 描述符类型。 | -| [bcdUSB](#bcdusb) | USB协议发布号。 | -| [bDeviceClass](#bdeviceclass) | 由USB标准化组织(USB-IF)分配的设备类代码。 | -| [bDeviceSubClass](#bdevicesubclass) | 由USB标准化组织(USB-IF)分配的子类代码,其值由[bDeviceClass](#bdeviceclass)的值限定。 | -| [bDeviceProtocol](#bdeviceprotocol) | 由USB标准化组织(USB-IF)分配的协议代码,其值由[bDeviceClass](#bdeviceclass)和[bDeviceSubClass](#bdevicesubclass)的值限定。 | -| [bMaxPacketSize0](#bmaxpacketsize0) | 端点零的最大包大小,只有8、16、32、64是合法的。 | -| [idVendor](#idvendor) | 由USB标准化组织(USB-IF)分配的厂商编号。 | -| [idProduct](#idproduct) | 由厂商分配的产品编号。 | -| [bcdDevice](#bcddevice) | 设备发布编号。 | -| [iManufacturer](#imanufacturer) | 描述厂商的字符串描述符的索引。 | -| [iProduct](#iproduct) | 描述产品的字符串描述符的索引。 | -| [iSerialNumber](#iserialnumber) | 描述设备序列号的字符串描述符的索引。 | -| [bNumConfigurations](#bnumconfigurations) | 配置数量。 | -| [wTotalLength](#wtotallength) | 该配置描述符的总长度,包含配置、接口、端点和特定于类或供应商的描述符。 | -| [bNumInterfaces](#bnuminterfaces) | 该配置所支持的接口数量。 | -| [bConfigurationValue](#bconfigurationvalue) | 设置配置所需要的参数,用来选择当前配置。 | -| [iConfiguration](#iconfiguration) | 描述该配置的字符串描述符的索引。 | -| [bmAttributes](#bmattributes) | 配置属性,包含供电模式、远程唤醒等配置。 | -| [bMaxPower](#bmaxpower) | 总线供电的USB设备的最大功耗,以2mA为单位。 | -| [bInterfaceNumber](#binterfacenumber) | 接口编号。 | -| [bAlternateSetting](#balternatesetting) | 用来选择该接口的备用配置的值。 | -| [bNumEndpoints](#bnumendpoints) | 该接口所使用的端点数量(不包括端点零)。 | -| [bInterfaceClass](#binterfaceclass) | 由USB标准化组织(USB-IF)分配的设备类代码。 | -| [bInterfaceSubClass](#binterfacesubclass) | 由USB标准化组织(USB-IF)分配的子类代码,其值由[bInterfaceClass](#binterfaceclass)的值限定。 | -| [bInterfaceProtocol](#binterfaceprotocol) | 由USB标准化组织(USB-IF)分配的协议代码,其值由[bInterfaceClass](#binterfaceclass)和[bInterfaceSubClass](#binterfacesubclass)的值限定。 | -| [iInterface](#iinterface) | 描述该接口的字符串描述符的索引。 | -| [bEndpointAddress](#bendpointaddress) | 端点地址,包含端点编号以及端点方向。 | -| [bmAttributes](#bmattributes) | 端点属性,包括传输类型、同步类型、使用类型。 | -| [wMaxPacketSize](#wmaxpacketsize) | 该端点所能承载的最大包的大小。 | -| [bInterval](#binterval) | 数据传输轮询端点的时间间隔。 | -| [bRefresh](#brefresh) | 用于音频类设备,同步反馈的速率。 | -| [bSynchAddress](#bsynchaddress) | 用于音频类设备,同步端点的地址。 | -| [interfaceHandle](#interfacehandle) | 接口操作句柄。 | -| [endpoint](#endpoint) | 要通信的端点的地址。 | -| [timeout](#timeout) | 超时时间,单位是毫秒。 | -| [deviceIds](#deviceids) | 开发者申请好的设备数组首地址。 | -| [num](#num) | 实际返回的设备数量。 | - - -## 变量说明 - - -### bAlternateSetting - - -``` -uint8_t bAlternateSetting -``` - -**描述:** - -用来选择该接口的备用配置的值。 - - -### bcdDevice - - -``` -uint16_t bcdDevice -``` - -**描述:** - -设备发布编号。 - - -### bcdUSB - - -``` -uint16_t bcdUSB -``` - -**描述:** - -USB协议发布号。 - - -### bConfigurationValue - - -``` -uint8_t bConfigurationValue -``` - -**描述:** - -设置配置所需要的参数,用来选择当前配置。 - - -### bDescriptorType - - -``` -uint8_t bDescriptorType -``` - -**描述:** - -描述符类型。 - - -### bDeviceClass - - -``` -uint8_t bDeviceClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的设备类代码。 - - -### bDeviceProtocol - - -``` -uint8_t bDeviceProtocol -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的协议代码,其值由[bDeviceClass](#bdeviceclass)和[bDeviceSubClass](#bdevicesubclass)的值限定。 - - -### bDeviceSubClass - - -``` -uint8_t bDeviceSubClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的子类代码,其值由[bDeviceClass](#bdeviceclass)的值限定。 - - -### bEndpointAddress - - -``` -uint8_t bEndpointAddress -``` - -**描述:** - -端点地址,包含端点编号以及端点方向。 - - -### bmAttributes - - -``` -uint8_t bmAttributes -``` - -**描述:** - -端点属性,包括传输类型、同步类型、使用类型。 - - -### bInterfaceClass - - -``` -uint8_t bInterfaceClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的设备类代码。 - - -### bInterfaceNumber - - -``` -uint8_t bInterfaceNumber -``` - -**描述:** - -接口编号。 - - -### bInterfaceProtocol - - -``` -uint8_t bInterfaceProtocol -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的协议代码,其值由[bInterfaceClass](#binterfaceclass)和[bInterfaceSubClass](#binterfacesubclass)的值限定。 - - -### bInterfaceSubClass - - -``` -uint8_t bInterfaceSubClass -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的子类代码,其值由[bInterfaceClass](#binterfaceclass)的值限定。 - - -### bInterval - - -``` -uint8_t bInterval -``` - -**描述:** - -数据传输轮询端点的时间间隔。 - - -### bLength - - -``` -uint8_t bLength -``` - -**描述:** - -该描述符的大小,单位为字节。 - - -### bmAttributes - - -``` -uint8_t bmAttributes -``` - -**描述:** - -配置属性,包含供电模式、远程唤醒等配置。 - - -### bMaxPacketSize0 - - -``` -uint8_t bMaxPacketSize0 -``` - -**描述:** - -端点零的最大包大小,只有8、16、32、64是合法的。 - - -### bMaxPower - - -``` -uint8_t bMaxPower -``` - -**描述:** - -总线供电的USB设备的最大功耗,以2mA为单位。 - - -### bNumConfigurations - - -``` -uint8_t bNumConfigurations -``` - -**描述:** - -配置数量。 - - -### bNumEndpoints - - -``` -uint8_t bNumEndpoints -``` - -**描述:** - -该接口所使用的端点数量(不包括端点零)。 - - -### bNumInterfaces - - -``` -uint8_t bNumInterfaces -``` - -**描述:** - -该配置所支持的接口数量。 - - -### bRefresh - - -``` -uint8_t bRefresh -``` - -**描述:** - -用于音频类设备,同步反馈的速率。 - - -### bSynchAddress - - -``` -uint8_t bSynchAddress -``` - -**描述:** - -用于音频类设备,同步端点的地址。 - - -### endpoint - - -``` -uint8_t endpoint -``` - -**描述:** - -要通信的端点的地址。 - - -### iConfiguration - - -``` -uint8_t iConfiguration -``` - -**描述:** - -描述该配置的字符串描述符的索引。 - - -### idProduct - - -``` -uint16_t idProduct -``` - -**描述:** - -由厂商分配的产品编号。 - - -### idVendor - - -``` -uint16_t idVendor -``` - -**描述:** - -由USB标准化组织(USB-IF)分配的厂商编号。 - - -### iInterface - - -``` -uint8_t iInterface -``` - -**描述:** - -描述该接口的字符串描述符的索引。 - - -### iManufacturer - - -``` -uint8_t iManufacturer -``` - -**描述:** - -描述厂商的字符串描述符的索引。 - - -### wIndex - - -``` -uint16_t wIndex -``` - -**描述:** - -具体的请求不同,其代表的含义不一样,通常用来传递索引或者偏移量。 - - -### interfaceHandle - - -``` -uint64_t interfaceHandle -``` - -**描述:** - -接口操作句柄。 - - -### iProduct - - -``` -uint8_t iProduct -``` - -**描述:** - -描述产品的字符串描述符的索引。 - - -### iSerialNumber - - -``` -uint8_t iSerialNumber -``` - -**描述:** - -描述设备序列号的字符串描述符的索引。 - - -### wLength - - -``` -uint16_t wLength -``` - -**描述:** - -如果有数据阶段的传输,其代表传输的字节个数。 - - -### bRequest - - -``` -uint8_t bRequest -``` - -**描述:** - -具体的请求。 - - -### bmRequestType - - -``` -uint8_t bmRequestType -``` - -**描述:** - -请求类型。 - - -### timeout - - -``` -uint32_t timeout -``` - -**描述:** - -超时时间,单位是毫秒。 - - -### wValue - - -``` -uint16_t wValue -``` - -**描述:** - -具体的请求不同,其代表的含义不一样。 - - -### wMaxPacketSize - - -``` -uint16_t wMaxPacketSize -``` - -**描述:** - -该端点所能承载的最大包的大小。 - - -### wTotalLength - - -``` -uint16_t wTotalLength -``` - -**描述:** - -该配置描述符的总长度,包含配置、接口、端点和特定于类或供应商的描述符。 - - -### deviceIds - -``` -uint64_t* deviceIds -``` - -**描述:** - -开发者申请好的设备数组首地址,申请的大小不超过128个设备ID。 -### num - - -``` -uint32_t num -``` - -**描述:** - -实际返回的设备数量,根据数量遍历deviceIds获得设备ID。当该值为0时,表示不存在USB设备。 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__serial__ddk__api_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__serial__ddk__api_8h.md deleted file mode 100644 index 5d280ec4eb1f3073a77710241ad71914e331b083..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__serial__ddk__api_8h.md +++ /dev/null @@ -1,38 +0,0 @@ -# usb_serial_api.h - - -## 概述 - -声明用于主机侧访问串口设备的USB Serial DDK接口。 - -**库:** libusb_serial.z.so - -**引用文件:**<serial/usb_serial_api.h> - -**系统能力:** SystemCapability.Driver.UsbSerial.Extension - -**起始版本:** 18 - -**相关模块:**[USB Serial DDK](_serial_ddk.md) - - -## 汇总 - - -### 函数 - -| 名称 | 描述 | -| -------- | -------- | -| int32_t [OH_UsbSerial_Init](_serial_ddk.md#oh_usbserial_init) (void) | 初始化USB Serial DDK。 | -| int32_t [OH_UsbSerial_Release](_serial_ddk.md#oh_usbserial_release) (void) | 释放USB Serial DDK。 | -| int32_t [OH_UsbSerial_Open](_serial_ddk.md#oh_usbserial_open) (uint64_t deviceId, uint8_t interfaceIndex, [UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*\*dev) | 通过deviceId和interfaceIndex打开USB串口设备。 | -| int32_t [OH_UsbSerial_Close](_serial_ddk.md#oh_usbserial_close) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev) | 关闭USB串口设备。 | -| int32_t [OH_UsbSerial_Read](_serial_ddk.md#oh_usbserial_read) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev, uint8_t \*buff, uint32_t bufferSize, uint32_t \*bytesRead) | 从USB串口设备读入数据到缓冲区。 | -| int32_t [OH_UsbSerial_Write](_serial_ddk.md#oh_usbserial_write) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev, uint8_t \*buff, uint32_t bufferSize, uint32_t \*bytesWritten) | 将buff中的数据写入USB串口设备。 | -| int32_t [OH_UsbSerial_SetBaudRate](_serial_ddk.md#oh_usbserial_setbaudrate) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev, uint32_t [baudRate](usb__serial__ddk__types_8h.md#baudrate)) | 设置USB串口设备的波特率。 如果USB串口设备的参数为默认值(数据位为8,停止位为1,数据传输无校验),则只需要调用该接口设置波特率。 | -| int32_t [OH_UsbSerial_SetParams](_serial_ddk.md#oh_usbserial_setparams) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev, [UsbSerial_Params](_usb_serial___params.md) \*params) | 设置USB串口设备的参数。 如果USB串口设备的参数不为默认值(数据位默认为8,停止位默认为1,数据传输默认无校验),则需要调用该接口进行参数设置。 | -| int32_t [OH_UsbSerial_SetTimeout](_serial_ddk.md#oh_usbserial_settimeout) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev, int timeout) | 设置读取USB串口设备上报数据的超时时间(毫秒)。 在不调用此函数的情况下,超时值默认为0,表示不管是否读取到数据都立即返回。如果需要等待一定的时间或者必须读取到数据,则调用该接口。 | -| int32_t [OH_UsbSerial_SetFlowControl](_serial_ddk.md#oh_usbserial_setflowcontrol) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev, [UsbSerial_FlowControl](_serial_ddk.md#usbserial_flowcontrol) flowControl) | 设置流控参数。 USB串口设备通信中的流控用于管理数据传输的速率,以确保发送方不会发送超过接收方处理能力的数据量。
如果USB串口设备实现了流控处理,则需要调用此接口。如果不调用此接口,默认为无流控。 | -| int32_t [OH_UsbSerial_Flush](_serial_ddk.md#oh_usbserial_flush) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev) | 写入完成后清空输入和输出缓冲区。 在向USB串口设备发送数据时,可能会有大量数据缓冲在内核中等待发送。如果应用程序关闭文件描述符或者退出之前没有等待这些数据被实际发送出去,那么部分数据可能会丢失。调用该接口可以确保所有的数据都被发送完毕再继续执行后续操作。 | -| int32_t [OH_UsbSerial_FlushInput](_serial_ddk.md#oh_usbserial_flushinput) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev) | 刷新输入缓冲区,缓冲区中的数据会被立刻清空。 在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 | -| int32_t [OH_UsbSerial_FlushOutput](_serial_ddk.md#oh_usbserial_flushoutput) ([UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) \*dev) | 刷新输出缓冲区,缓冲区中的数据会被立刻清空。 在和USB串口设备通信过程中,特别是在调试阶段,有时会遇到乱序的数据包或者其他异常情况。
调用该接口可以帮助清理这些异常状况,使通信恢复正常。 | diff --git a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__serial__ddk__types_8h.md b/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__serial__ddk__types_8h.md deleted file mode 100644 index 2f3327741a8596c19ff48fc4d526ddb47b6db7a8..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis-driverdevelopment-kit/usb__serial__ddk__types_8h.md +++ /dev/null @@ -1,100 +0,0 @@ -# usb_serial_types.h - - -## 概述 - -提供USB Serial DDK中的枚举变量、结构体定义与宏定义。 - -**库:** libusb_serial.z.so - -**引用文件:**<serial/usb_serial_types.h> - -**系统能力:** SystemCapability.Driver.UsbSerial.Extension - -**起始版本:** 18 - -**相关模块:**[USB Serial DDK](_serial_ddk.md) - - -## 汇总 - - -### 结构体 - -| 名称 | 描述 | -| -------- | -------- | -| struct  [UsbSerial_Params](_usb_serial___params.md) | 定义USB Serial DDK使用的USB串口参数。 | - - -### 类型定义 - -| 名称 | 描述 | -| -------- | -------- | -| typedef struct [UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) [UsbSerial_DeviceHandle](_serial_ddk.md#usbserial_devicehandle) | USB串口设备数据结构(不透明)。 | -| typedef struct [UsbSerial_Params](_usb_serial___params.md) \__attribute\__((aligned(8))) [UsbSerial_Params](_usb_serial___params.md) | USB Serial DDK使用的USB串口参数。 | - - -### 枚举 - -| 名称 | 描述 | -| -------- | -------- | -| [UsbSerial_DdkRetCode](_serial_ddk.md#usbserial_ddkretcode) {
USB_SERIAL_DDK_NO_PERM = 201, USB_SERIAL_DDK_INVALID_PARAMETER = 401, USB_SERIAL_DDK_SUCCESS = 31600000, USB_SERIAL_DDK_INVALID_OPERATION = 31600001, USB_SERIAL_DDK_INIT_ERROR = 31600002, USB_SERIAL_DDK_SERVICE_ERROR = 31600003, USB_SERIAL_DDK_MEMORY_ERROR = 31600004, USB_SERIAL_DDK_IO_ERROR = 31600005, USB_SERIAL_DDK_DEVICE_NOT_FOUND = 31600006
} | 定义USB Serial DDK使用的返回码。 | -| [UsbSerial_FlowControl](_serial_ddk.md#usbserial_flowcontrol) { USB_SERIAL_NO_FLOW_CONTROL = 0, USB_SERIAL_SOFTWARE_FLOW_CONTROL = 1, USB_SERIAL_HARDWARE_FLOW_CONTROL = 2 } | 定义USB Serial DDK中的流量控制。 | -| [UsbSerial_Parity](_serial_ddk.md#usbserial_parity) { USB_SERIAL_PARITY_NONE = 0, USB_SERIAL_PARITY_ODD = 1, USB_SERIAL_PARITY_EVEN = 2 } | 定义USB Serial DDK使用的校验参数枚举。 | - - -### 变量 - -| 名称 | 描述 | -| -------- | -------- | -| uint32_t [baudRate](#baudrate) | 波特率。 | -| uint8_t [nDataBits](#ndatabits) | 数据传输位数。 | -| uint8_t [nStopBits](#nstopbits) | 数据停止位数。 | -| uint8_t [parity](#parity) | 校验参数设置。 | - - -## 变量说明 - - -### baudRate - -``` -uint32_t baudRate -``` - -**描述** - -波特率。 - - -### nDataBits - -``` -uint8_t nDataBits -``` - -**描述** - -数据传输位数。 - - -### nStopBits - -``` -uint8_t nStopBits -``` - -**描述** - -数据停止位数。 - - -### parity - -``` -uint8_t parity -``` - -**描述** - -校验参数设置。 diff --git a/zh-cn/application-dev/website.md b/zh-cn/application-dev/website.md index 03fcadee253654dec903ef6823981134f07ed134..591289ba8955cce51d5b018c11b644547c5a3401 100644 --- a/zh-cn/application-dev/website.md +++ b/zh-cn/application-dev/website.md @@ -4182,58 +4182,61 @@ - [DriverExtensionContext](reference/apis-driverdevelopment-kit/js-apis-inner-application-driverExtensionContext.md) - C API - 模块 - - [BASE DDK](reference/apis-driverdevelopment-kit/_base_ddk.md) - - [HID DDK](reference/apis-driverdevelopment-kit/_hid_ddk.md) - - [SCSI Peripheral DDK](reference/apis-driverdevelopment-kit/_s_c_s_i.md) - - [Serial DDK](reference/apis-driverdevelopment-kit/_serial_ddk.md) - - [USB DDK](reference/apis-driverdevelopment-kit/_usb_ddk.md) + - [BaseDdk](reference/apis-driverdevelopment-kit/capi-baseddk.md) + - [HidDdk](reference/apis-driverdevelopment-kit/capi-hidddk.md) + - [SCSIPeripheralDDK](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk.md) + - [UsbDDK](reference/apis-driverdevelopment-kit/capi-usbddk.md) + - [SerialDdk](reference/apis-driverdevelopment-kit/capi-serialddk.md) - 头文件 - - [ddk_api.h](reference/apis-driverdevelopment-kit/ddk_api.md) - - [ddk_types.h](reference/apis-driverdevelopment-kit/ddk_types.md) - - [hid_ddk_api.h](reference/apis-driverdevelopment-kit/hid__ddk__api_8h.md) - - [hid_ddk_types.h](reference/apis-driverdevelopment-kit/hid__ddk__types_8h.md) - - [scsi_peripheral_api.h](reference/apis-driverdevelopment-kit/scsi__peripheral__api_8h.md) - - [scsi_peripheral_types.h](reference/apis-driverdevelopment-kit/scsi__peripheral__types_8h.md) - - [usb_ddk_api.h](reference/apis-driverdevelopment-kit/usb__ddk__api_8h.md) - - [usb_ddk_types.h](reference/apis-driverdevelopment-kit/usb__ddk__types_8h.md) - - [usb_serial_api.h](reference/apis-driverdevelopment-kit/usb__serial__ddk__api_8h.md) - - [usb_serial_types.h](reference/apis-driverdevelopment-kit/usb__serial__ddk__types_8h.md) + - [ddk_api.h](reference/apis-driverdevelopment-kit/capi-ddk-api-h.md) + - [ddk_types.h](reference/apis-driverdevelopment-kit/capi-ddk-types-h.md) + - [hid_ddk_api.h](reference/apis-driverdevelopment-kit/capi-hid-ddk-api-h.md) + - [hid_ddk_types.h](reference/apis-driverdevelopment-kit/capi-hid-ddk-types-h.md) + - [scsi_peripheral_api.h](reference/apis-driverdevelopment-kit/capi-scsi-peripheral-api-h.md) + - [scsi_peripheral_types.h](reference/apis-driverdevelopment-kit/capi-scsi-peripheral-types-h.md) + - [usb_ddk_api.h](reference/apis-driverdevelopment-kit/capi-usb-ddk-api-h.md) + - [usb_ddk_types.h](reference/apis-driverdevelopment-kit/capi-usb-ddk-types-h.md) + - [usb_serial_api.h](reference/apis-driverdevelopment-kit/capi-usb-serial-api-h.md) + - [usb_serial_types.h](reference/apis-driverdevelopment-kit/capi-usb-serial-types-h.md) - 结构体 - - [DDK_Ashmem](reference/apis-driverdevelopment-kit/_ddk_ashmem.md) - - [Hid_AbsAxesArray](reference/apis-driverdevelopment-kit/_hid___abs_axes_array.md) - - [Hid_Device](reference/apis-driverdevelopment-kit/_hid___device.md) - - [Hid_EmitItem](reference/apis-driverdevelopment-kit/_hid___emit_item.md) - - [Hid_EventProperties](reference/apis-driverdevelopment-kit/_hid___event_properties.md) - - [Hid_EventTypeArray](reference/apis-driverdevelopment-kit/_hid___event_type_array.md) - - [Hid_KeyCodeArray](reference/apis-driverdevelopment-kit/_hid___key_code_array.md) - - [Hid_MscEventArray](reference/apis-driverdevelopment-kit/_hid___msc_event_array.md) - - [Hid_RawDevInfo](reference/apis-driverdevelopment-kit/_hid___raw_dev_info.md) - - [Hid_RelAxesArray](reference/apis-driverdevelopment-kit/_hid___rel_axes_array.md) - - [ScsiPeripheral_BasicSenseInfo](reference/apis-driverdevelopment-kit/_scsi_peripheral___basic_sense_info.md) - - [ScsiPeripheral_CapacityInfo](reference/apis-driverdevelopment-kit/_scsi_peripheral___capacity_info.md) - - [ScsiPeripheral_DeviceMemMap](reference/apis-driverdevelopment-kit/_scsi_peripheral___device_mem_map.md) - - [ScsiPeripheral_InquiryInfo](reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_info.md) - - [ScsiPeripheral_InquiryRequest](reference/apis-driverdevelopment-kit/_scsi_peripheral___inquiry_request.md) - - [ScsiPeripheral_IORequest](reference/apis-driverdevelopment-kit/_scsi_peripheral___i_o_request.md) - - [ScsiPeripheral_ReadCapacityRequest](reference/apis-driverdevelopment-kit/_scsi_peripheral___read_capacity_request.md) - - [ScsiPeripheral_Request](reference/apis-driverdevelopment-kit/_scsi_peripheral___request.md) - - [ScsiPeripheral_RequestSenseRequest](reference/apis-driverdevelopment-kit/_scsi_peripheral___request_sense_request.md) - - [ScsiPeripheral_Response](reference/apis-driverdevelopment-kit/_scsi_peripheral___response.md) - - [ScsiPeripheral_TestUnitReadyRequest](reference/apis-driverdevelopment-kit/_scsi_peripheral___test_unit_ready_request.md) - - [ScsiPeripheral_VerifyRequest](reference/apis-driverdevelopment-kit/_scsi_peripheral___verify_request.md) - - [UsbConfigDescriptor](reference/apis-driverdevelopment-kit/_usb_config_descriptor.md) - - [UsbControlRequestSetup](reference/apis-driverdevelopment-kit/_usb_control_request_setup.md) - - [UsbDdkConfigDescriptor](reference/apis-driverdevelopment-kit/_usb_ddk_config_descriptor.md) - - [UsbDdkEndpointDescriptor](reference/apis-driverdevelopment-kit/_usb_ddk_endpoint_descriptor.md) - - [UsbDdkInterface](reference/apis-driverdevelopment-kit/_usb_ddk_interface.md) - - [UsbDdkInterfaceDescriptor](reference/apis-driverdevelopment-kit/_usb_ddk_interface_descriptor.md) - - [UsbDeviceDescriptor](reference/apis-driverdevelopment-kit/_usb_device_descriptor.md) - - [UsbDeviceMemMap](reference/apis-driverdevelopment-kit/_usb_device_mem_map.md) - - [UsbEndpointDescriptor](reference/apis-driverdevelopment-kit/_usb_endpoint_descriptor.md) - - [UsbInterfaceDescriptor](reference/apis-driverdevelopment-kit/_usb_interface_descriptor.md) - - [UsbRequestPipe](reference/apis-driverdevelopment-kit/_usb_request_pipe.md) - - [Usb_DeviceArray](reference/apis-driverdevelopment-kit/_usb_device_array.md) - - [UsbSerial_Params](reference/apis-driverdevelopment-kit/_usb_serial___params.md) + - [DDK_Ashmem](reference/apis-driverdevelopment-kit/capi-baseddk-ddk-ashmem.md) + - [Hid_EmitItem](reference/apis-driverdevelopment-kit/capi-hidddk-hid-emititem.md) + - [Hid_Device](reference/apis-driverdevelopment-kit/capi-hidddk-hid-device.md) + - [Hid_EventTypeArray](reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventtypearray.md) + - [Hid_KeyCodeArray](reference/apis-driverdevelopment-kit/capi-hidddk-hid-keycodearray.md) + - [Hid_AbsAxesArray](reference/apis-driverdevelopment-kit/capi-hidddk-hid-absaxesarray.md) + - [Hid_RelAxesArray](reference/apis-driverdevelopment-kit/capi-hidddk-hid-relaxesarray.md) + - [Hid_MscEventArray](reference/apis-driverdevelopment-kit/capi-hidddk-hid-msceventarray.md) + - [Hid_EventProperties](reference/apis-driverdevelopment-kit/capi-hidddk-hid-eventproperties.md) + - [Hid_RawDevInfo](reference/apis-driverdevelopment-kit/capi-hidddk-hid-rawdevinfo.md) + - [Hid_DeviceHandle](reference/apis-driverdevelopment-kit/capi-hidddk-hid-devicehandle.md) + - [ScsiPeripheral_DeviceMemMap](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-devicememmap.md) + - [ScsiPeripheral_IORequest](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-iorequest.md) + - [ScsiPeripheral_Request](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-request.md) + - [ScsiPeripheral_Response](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-response.md) + - [ScsiPeripheral_TestUnitReadyRequest](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-testunitreadyrequest.md) + - [ScsiPeripheral_InquiryRequest](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryrequest.md) + - [ScsiPeripheral_InquiryInfo](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-inquiryinfo.md) + - [ScsiPeripheral_ReadCapacityRequest](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-readcapacityrequest.md) + - [ScsiPeripheral_CapacityInfo](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-capacityinfo.md) + - [ScsiPeripheral_RequestSenseRequest](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-requestsenserequest.md) + - [ScsiPeripheral_BasicSenseInfo](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-basicsenseinfo.md) + - [ScsiPeripheral_VerifyRequest](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-verifyrequest.md) + - [ScsiPeripheral_Device](reference/apis-driverdevelopment-kit/capi-scsiperipheralddk-scsiperipheral-device.md) + - [UsbControlRequestSetup](reference/apis-driverdevelopment-kit/capi-usbddk-usbcontrolrequestsetup.md) + - [UsbDeviceDescriptor](reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicedescriptor.md) + - [UsbConfigDescriptor](reference/apis-driverdevelopment-kit/capi-usbddk-usbconfigdescriptor.md) + - [UsbInterfaceDescriptor](reference/apis-driverdevelopment-kit/capi-usbddk-usbinterfacedescriptor.md) + - [UsbEndpointDescriptor](reference/apis-driverdevelopment-kit/capi-usbddk-usbendpointdescriptor.md) + - [UsbDdkEndpointDescriptor](reference/apis-driverdevelopment-kit/capi-usbddk-usbddkendpointdescriptor.md) + - [UsbDdkInterfaceDescriptor](reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterfacedescriptor.md) + - [UsbDdkInterface](reference/apis-driverdevelopment-kit/capi-usbddk-usbddkinterface.md) + - [UsbDdkConfigDescriptor](reference/apis-driverdevelopment-kit/capi-usbddk-usbddkconfigdescriptor.md) + - [UsbRequestPipe](reference/apis-driverdevelopment-kit/capi-usbddk-usbrequestpipe.md) + - [UsbDeviceMemMap](reference/apis-driverdevelopment-kit/capi-usbddk-usbdevicememmap.md) + - [Usb_DeviceArray](reference/apis-driverdevelopment-kit/capi-usbddk-usb-devicearray.md) + - [UsbSerial_Params](reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-params.md) + - [UsbSerial_DeviceHandle](reference/apis-driverdevelopment-kit/capi-serialddk-usbserial-devicehandle.md) - Multimodal Awareness Kit(多模态融合感知服务) - ArkTS API - [@ohos.stationary (设备状态感知框架)](reference/apis-multimodalawareness-kit/js-apis-stationary.md)