# IDeviceIoService ## **Overview** **Related Modules:** [Core](Core.md) **Description:** Defines the driver service. When a driver releases services to user-level applications, the service interface must inherit this structure and implements the **Dispatch** function in the structure. **Since:** 1.0 ## **Summary** ## Data Fields

Variable Name

Description

object

struct HdfObject 

Open )(struct HdfDeviceIoClient *client)

int32_t(* 

Called when the driver service is enabled by a user-level application.

Dispatch )(struct HdfDeviceIoClient *client, int cmdId, struct HdfSBuf *data, struct HdfSBuf *reply)

int32_t(* 

Called when the driver service is invoked by a user-level application.

Release )(struct HdfDeviceIoClient *client)

void(* 

Called when the driver service is released by a user-level application.

## **Details** ## **Field Documentation** ## Dispatch ``` int32_t(* IDeviceIoService::Dispatch) (struct [HdfDeviceIoClient](HdfDeviceIoClient.md) *client, int cmdId, struct [HdfSBuf](HdfSBuf.md) *data, struct [HdfSBuf](HdfSBuf.md) *reply) ``` **Description:** Called when the driver service is invoked by a user-level application. **Parameters:**

Name

Description

client Indicates the pointer to the client object of the service.
cmdId Indicates the command word of the service interface.
data Indicates the pointer to the data passed by the invoker.
reply Indicates the pointer to the data that needs to be returned to the invoker.
**Returns:** Returns **0** if the operation is successful; returns a negative value otherwise. ## object ``` struct [HdfObject](HdfObject.md) IDeviceIoService::object ``` **Description:** Driver service object ID ## Open ``` int32_t(* IDeviceIoService::Open) (struct [HdfDeviceIoClient](HdfDeviceIoClient.md) *client) ``` **Description:** Called when the driver service is enabled by a user-level application. **Parameters:**

Name

Description

client Indicates the pointer to the client object of the service.
**Returns:** Returns **0** if the operation is successful; returns a negative value otherwise. ## Release ``` void(* IDeviceIoService::Release) (struct [HdfDeviceIoClient](HdfDeviceIoClient.md) *client) ``` **Description:** Called when the driver service is released by a user-level application. **Parameters:**

Name

Description

client Indicates the pointer to the client object of the service.