MD_GetHsmState
Retrieves the current state of the specified HSM.
Synopsis
#include <md.h> MD_RV MD_GetHsmState(uint32 hsmIndex, HsmState_t* pState, uint32* pErrorCode);
Input Requirements
The message dispatch library has been initialized via the MD_Initialize() function.
Input Parameters
| Parameter | Description | 
|---|---|
| hsmIndex | Zero based index of the HSM to query. When MD_Initialize () is invoked the message dispatch library assigns an index to each available HSM. | 
| pState | Pointer to a variable to hold the HSM state. The pointer must not be NULL. | 
| pErrorCode | Not used: always return zero. The pointer may be NULL. | 
Output Requirements
| Parameter | Description | 
|---|---|
| pState | When the function returns, pState points to a variable containing one of the following values. These values are defined in hsmstate.h | 
| Label | Value | Meaning | 
|---|---|---|
| S_NORMAL_OPERATION | 0x8000 | The HSM is operational. | 
| S_HSM_DISCONNECTED | 2 | No HSM detected. | 
| S_HSM_ERASED | 1 | HSM Decommissioned. | 
| S_TAMPER_RESPOND | 3 | HSM is in Tampered State. | 
NOTE Any other value indicates a non-operational HSM
| pErrorCode | Error code can be ignored. | 
The function returns the following codes:
| Function Code | Qualification | 
|---|---|
| MDR_OK | No error | 
| MDR_UNSUCCESSFUL | Error in operation. Operation failed. | 
| MDR_NOT_INITIALIZE | The message dispatch library was not previously initialized successfully | 
| MDR_INVALID_HSM_INDEX | HSM index was not in the range of accessible HSMs | 
