...
Владельцем раздела может выступать Администратор Рутокен (CKU_SO
), Пользователь Рутокен (CKU_USER
), а а также локальный пользователь (с идентификатором в пределах от 0x03 от 0x03 до 0x1E0x1F) с предварительно заданным функцией функцией C_EX_SetLocalPin()
PIN-кодом.
...
Code Block | ||
---|---|---|
| ||
CK_VOLUME_INFO_EXTENDED_PTR pVolumesInfo = NULL_PTR; // Указатель на массив структур с информацией о разделах CK_ULONG ulVolumesInfoSizeulVolumesInfoCount = 0; // Размер массива с информацией о разделах printf("\nGetting volumes info"); rv = pFunctionListEx->C_EX_GetVolumesInfo( aSlots[0], // Идентификатор слота с подключенным токеном NULL_PTR, // Указатель на буфермассив с возвращаемой информацией о разделах &ulVolumesInfoSizeulVolumesInfoCount); // Размер массива буфера pVolumesInfo = (CK_VOLUME_INFO_EXTENDED*)malloc(ulVolumesInfoSizeulVolumesInfoCount * sizeof(CK_VOLUME_INFO_EXTENDED)); memset(pVolumesInfo, 0, (ulVolumesInfoSizeulVolumesInfoCount * sizeof(CK_ULONG))); rv = pFunctionListEx->C_EX_GetVolumesInfo(aSlots[0], // Идентификатор слота с подключенным токеном pVolumesInfo, // Указатель на буфермассив с возвращаемой информацией о разделах &ulVolumesInfoSizeulVolumesInfoCount); // Размер буферамассива if (rv != CKR_OK) { printf(" -> Failed\n"); } else { printf(" -> OK\n"); for (i = 0; i < (int)ulVolumesInfoSizeulVolumesInfoCount; i++) { printf("\nPrinting volume %1.2d info:\n", (int)i+1); printf(" Volume id: %2.2d \n", pVolumesInfo[i].idVolume); // Идентификатор раздела printf(" Volume size: %d Mb \n", pVolumesInfo[i].ulVolumeSize); // Объем раздела printf(" Access mode: %2.2d \n", pVolumesInfo[i].accessMode); // Права доступа к разделу printf(" Volume owner: %2.2d \n", pVolumesInfo[i].volumeOwner); // Владелец раздела printf(" Flags: 0x%8.8X \n", pVolumesInfo[i].flags); // Флаги раздела } } |
...