Compartir a través de


Método ITpmVirtualSmartCardManager::CreateVirtualSmartCard (tpmvscmgr.h)

Crea una tarjeta inteligente virtual de TPM con los parámetros especificados.

Sintaxis

HRESULT CreateVirtualSmartCard(
  [in]           LPCWSTR                                   pszFriendlyName,
  [in]           BYTE                                      bAdminAlgId,
  [in]           const BYTE                                *pbAdminKey,
  [in]           DWORD                                     cbAdminKey,
  [in, optional] const BYTE                                *pbAdminKcv,
  [in]           DWORD                                     cbAdminKcv,
  [in, optional] const BYTE                                *pbPuk,
  [in]           DWORD                                     cbPuk,
  [in]           const BYTE                                *pbPin,
  [in]           DWORD                                     cbPin,
  [in]           BOOL                                      fGenerate,
  [in, optional] ITpmVirtualSmartCardManagerStatusCallback *pStatusCallback,
  [out]          LPWSTR                                    *ppszInstanceId,
  [out]          BOOL                                      *pfNeedReboot
);

Parámetros

[in] pszFriendlyName

Nombre para mostrar del nodo lector de tarjetas inteligentes. Esto se muestra en el Administrador de dispositivos, pero no es el nombre del lector como lo ve el administrador de recursos de tarjeta inteligente (SCRM).

[in] bAdminAlgId

Identificador de algoritmo de la clave de administración. Actualmente, para trabajar con el minidriver GIDS de la bandeja de entrada, este valor debe ser VSC_DEFAULT_ADMIN_ALGORITHM_ID (triple DES de 3 claves con el método de relleno ISO/IEC 9797 2 en modo de encadenamiento CBC).

[in] pbAdminKey

Puntero a una matriz de bytes que contiene la clave de administración de la tarjeta inteligente virtual que se va a crear.

[in] cbAdminKey

Tamaño, en bytes, de la matriz de bytes a la que apunta el parámetro pbAdminKey .

[in, optional] pbAdminKcv

Puntero a una matriz de bytes que contiene el valor de comprobación de claves de la clave de administración. El valor de comprobación de claves se define como los tres primeros bytes del BLOB de salida cuando se usa la clave de administración para cifrar un bloque de ceros. Si no se proporciona el valor de comprobación de claves, no habrá ninguna comprobación de integridad para la clave de administración.

[in] cbAdminKcv

Tamaño, en bytes, de la matriz de bytes a la que apunta el parámetro pbAdminKcv .

[in, optional] pbPuk

Puntero a una matriz de bytes que contiene el valor de clave de desbloqueo de PIN (PUK) de la tarjeta inteligente virtual. Normalmente es una secuencia de caracteres ASCII con una longitud mínima de 8 caracteres. Si no se proporciona la PUK, la tarjeta inteligente virtual se creará sin un rol puk y, en su lugar, usará el restablecimiento del PIN basado en desafíos o respuestas mediante el rol de administrador.

[in] cbPuk

Tamaño, en bytes, de la matriz de bytes a la que apunta el parámetro pbPuk .

[in] pbPin

Puntero a una matriz de bytes que contiene el valor pin de la tarjeta inteligente virtual. Normalmente es una secuencia de caracteres ASCII con una longitud de 8 caracteres como mínimo y 127 caracteres como máximo.

[in] cbPin

Tamaño, en bytes, de la matriz de bytes a la que apunta el parámetro pbPin .

[in] fGenerate

Indica si la tarjeta inteligente virtual debe aprovisionarse con todos los archivos necesarios requeridos por el CSP base y el KSP de tarjeta inteligente.

[in, optional] pStatusCallback

Puntero a una interfaz ITpmVirtualSmartCardManagerStatusCallback . El administrador de tarjetas inteligentes virtuales de TPM usa esta interfaz de devolución de llamada para comunicar el progreso o error durante la creación de tarjetas inteligentes virtuales. Si el parámetro pStatusCallback es NULL, no se notifica ningún progreso al cliente antes de que se complete la operación.

[out] ppszInstanceId

Puntero a un puntero a un búfer Unicode para recibir el identificador de instancia de la tarjeta inteligente virtual creada.

[out] pfNeedReboot

Puntero a un valor booleano para recibir si la operación solicitada necesita reiniciar el equipo.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK.

Si se produce un error en el método, devuelve un código de error win32.

Comentarios

Cuando el método se realiza correctamente, el parámetro ppszInstanceId apunta al búfer Unicode que contiene el identificador de instancia del lector de tarjetas inteligentes virtuales de TPM recién creado. Cuando haya terminado de usar el búfer, el autor de la llamada debe liberar el búfer en el cliente mediante una llamada a la función CoTaskMemFree , como se indica en las reglas de administración de memoria COM.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado tpmvscmgr.h
Library Vscmgr.lib

Consulte también

ITpmVirtualSmartCardManager