7.1 設備管理
7.1 設備管理
7.1.1 概述
設備管理主要完成設備的插拔事件處理、枚舉設備、連接設備、斷開連接、獲取設備狀態、設置設備標簽、獲取設備信息、鎖定設備、解鎖設備和設備命令傳輸等操作。設備管理系列函數如表16所示:
表16 設備管理系列函數
| 函數名稱 | 功能 |
|---|---|
| SKF_WaitForDevEvent | 等待設備插拔事件 |
| SKF_CancelWaitForDevEvent | 取消等待設備插拔事件 |
| SKF_EnumDev | 枚舉設備 |
| SKF_ConnectDev | 連接設備 |
| SKF_DisconnectDev | 斷開連接 |
| SKF_GetDevState | 獲取設備狀態 |
| SKF_SetLabel | 設置設備標簽 |
| SKF_GetDevInfo | 獲取設備信息 |
| SKF_LockDev | 鎖定設備 |
| SKF_UnlockDev | 解鎖設備 |
| SKF_Transmit | 設備命令傳輸 |
7.1.2 等待設備插拔事件
原型 ULONG DEVAPI SKF_WaitForDevEvent(LPSTR szDevName,ULONG *pulDevNameLen, ULONG *pulEvent)
功能描述 該函數等待設備插入或者拔除事件。szDevName返回發生事件的設備名稱。
參數 szDevName [OUT] 發生事件的設備名稱。
pulDevNameLen [IN/OUT] 輸入/輸出參數,當輸入時表示緩沖區長度,輸出時表示設備名稱的有效長度,長度包含字符串結束符。
pulEvent [OUT]事件類型。1表示插入,2表示拔出。
返回值 SAR_OK: 成功。
其他: 錯誤碼。
7.1.3 取消等待設備插拔事件
原型 ULONG DEVAPI SKF_CancelWaitForDevEvent()
功能描述 該函數取消等待設備插入或者拔除事件。
參數
返回值 SAR_OK: 成功。
其他: 錯誤碼。
7.1.4 枚舉設備
原型 ULONG DEVAPI SKF_EnumDev(BOOL bPresent, LPSTR szNameList, ULONG *pulSize)
功能描述 獲得當前系統中的設備列表。
參數 bPresent [IN] 為TRUE表示取當前設備狀態為存在的設備列表。為FALSE表示取當前驅動支持的設備列表。
szNameList [OUT] 設備名稱列表。如果該參數為NULL,將由pulSize返回所需要的內存空間大小。每個設備的名稱以單個‘\0’結束,以雙‘\0’表示列表的結束。
pulSize [IN,OUT] 輸入時表示設備名稱列表的緩沖區長度,輸出時表示szNameList所占用的空間大小。
返回值 SAR_OK: 成功。
7.1.5 連接設備
原型 ULONG DEVAPI SKF_ConnectDev (LPSTR szName, DEVHANDLE *phDev)
功能描述 通過設備名稱連接設備,返回設備的句柄。
參數 szName [IN] 設備名稱。
phDev [OUT] 返回設備操作句柄。
返回值 SAR_OK: 成功。
7.1.6 斷開連接
原型 ULONG DEVAPI SKF_DisConnectDev (DEVHANDLE hDev)
功能描述 斷開一個已經連接的設備,并釋放句柄。
參數 hDev [IN] 連接設備時返回的設備句柄。
返回值 SAR_OK: 成功。
其他: 錯誤碼。
7.1.7 獲取設備狀態
原型 ULONG DEVAPI SKF_GetDevState(LPSTR szDevName, ULONG *pulDevState)
功能描述 獲取設備是否存在的狀態。
參數 szDevName [IN] 設備名稱。
pulDevState [OUT] 返回設備狀態。
返回值 SAR_OK: 成功。
7.1.8 設置設備標簽
原型 ULONG DEVAPI SKF_SetLabel (DEVHANDLE hDev, LPSTR szLabel)
功能描述 設置設備標簽。
參數 hDev [IN] 連接設備時返回的設備句柄。
szLabel [IN] 設備標簽字符串。該字符串應小于32字節。
返回值 SAR_OK: 成功。
7.1.9 獲取設備信息
原型 ULONG DEVAPI SKF_GetDevInfo (DEVHANDLE hDev, DEVINFO *pDevInfo)
功能描述 獲取設備的一些特征信息,包括設備標簽、廠商信息、支持的算法等。
參數 hDev [IN] 連接設備時返回的設備句柄。
pDevInfo [OUT] 返回設備信息。
返回值 SAR_OK: 成功。
7.1.10 鎖定設備
原型 ULONG DEVAPI SKF_LockDev (DEVHANDLE hDev, ULONG ulTimeOut)
功能描述 獲得設備的獨占使用權。
參數 hDev [IN] 連接設備時返回的設備句柄。
ulTimeOut [IN] 超時時間,單位為毫秒。如果為0xFFFFFFFF表示無限等待。
返回值 SAR_OK: 成功。
7.1.11 解鎖設備
原型 ULONG DEVAPI SKF_UnlockDev (DEVHANDLE hDev)
功能描述 釋放對設備的獨占使用權。
參數 hDev [IN] 連接設備時返回的設備句柄。
返回值 SAR_OK: 成功。
7.1.12 設備命令傳輸
原型 ULONG DEVAPI SKF_Transmit(DEVHANDLE hDev, BYTE* pbCommand, ULONG ulCommandLen,BYTE* pbData, ULONG* pulDataLen)
功能描述 將命令直接發送給設備,并返回結果。
參數 hDev [IN] 設備句柄。
pbCommand [IN] 設備命令。
ulCommandLen [IN] 命令長度。
pbData [OUT] 返回結果數據。
pulDataLen [IN,OUT] 輸入時表示結果數據緩沖區長度,輸出時表示結果數據實際長度。
返回值 SAR_OK: 成功。
其他: 錯誤碼。
GB/T 35291-2017 信息安全技術 智能密碼鑰匙應用接口規范
推薦文章: