...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_GetVolumesInfo)(
CK_SLOT_ID slotID,
CK_VOLUME_INFO_EXTENDED_PTR pInfo,
CK_ULONG_PTR pulInfoCount
);
typedef struct CK_VOLUME_INFO_EXTENDED
{
CK_VOLUME_ID_EXTENDED idVolume;
CK_ULONG ulVolumeSize;
CK_ACCESS_MODE_EXTENDED accessMode;
CK_OWNER_EXTENDED volumeOwner;
CK_FLAGS flags;
} CK_VOLUME_INFO_EXTENDED;
|
...
slotID | [in] | идентификатор слота с подключенным токеном |
userType | [in] | владелец раздела, допустимые значения: CKU_USER – глобальный пользователь;тип пользователя, допустимое значение только |
pPin | [in] | PIN-код пользователя |
ulPinLen | [in] | длина PIN-кода пользователя |
idVolume | [in] | идентификатор раздела |
newAccessMode | [in] | новые флаги доступа к разделу |
bPermanent | [in] |
slotID | [in] | указатель на буфер |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
Пример
флаг режима измения атрибута: CK_TRUE – постоянное изменение атрибута доступа, действует вплоть до следующего изменения атрибутов; |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
Пример
Code Block | ||
---|---|---|
| ||
printf("\nChanging volume attributes");
rv = pFunctionListEx->C_EX_ChangeVolumeAttributes(aSlots[0], // Идентификатор слота с подключенным токеном
CKU_SO, // Владелец раздела
SO_PIN, // PIN-код владельца раздела
sizeof(SO_PIN), // Длина PIN-кода владельца раздела
VolumeRO, // Идентификатор раздела
ACCESS_MODE_RW, // Новые права доступа к разделу
CK_TRUE); // CK_TRUE - постоянное изменение атрибутов, CK_FALSE - временное изменение атрибутов | ||
Code Block | ||
| ||
CK_BYTE_PTR pInfo . . rv = pfGetFunctionListEx -> C_EX_FreeBuffer(pInfo); // очистка буфера, использующегося функцией C_EX_GetCertificateInfoText() if (rv != CKR_OK) // проверка результата printf("C_EX_FreeBuffer() -> failed Failed\n"); else printf("C_EX_FreeBuffer() -> OK \n"); |
Функции специального назначения
...