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

Cria uma cartão inteligente virtual do TPM com os parâmetros fornecidos.

Sintaxe

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

Nome de exibição do nó de leitor de cartão inteligente. Isso é mostrado no Gerenciador de Dispositivos, mas não é o nome do leitor, como visto pelo SCRM (Smart cartão Resource Manager).

[in] bAdminAlgId

Identificador de algoritmo da chave de administração. Atualmente, para trabalhar com o minidriver GIDS da caixa de entrada, esse valor deve ser VSC_DEFAULT_ADMIN_ALGORITHM_ID (DES triplo de três chaves com o método de preenchimento ISO/IEC 9797 2 no modo de encadeamento CBC).

[in] pbAdminKey

Ponteiro para uma matriz de bytes que contém a chave de administrador da cartão inteligente virtual a ser criada.

[in] cbAdminKey

Tamanho, em bytes, da matriz de bytes apontada pelo parâmetro pbAdminKey .

[in, optional] pbAdminKcv

Ponteiro para uma matriz de bytes que contém a chave marcar valor da chave de administrador. O valor marcar chave é definido como os três primeiros bytes do BLOB de saída ao usar a chave de administração para criptografar um bloco de zeros. Se a chave marcar valor não for fornecida, não haverá nenhuma marcar de integridade para a chave de administrador.

[in] cbAdminKcv

Tamanho, em bytes, da matriz de bytes apontada pelo parâmetro pbAdminKcv .

[in, optional] pbPuk

Ponteiro para uma matriz de bytes que contém o valor de PUK (chave de desbloqueio de PIN) do cartão inteligente virtual. Geralmente, é uma sequência de caracteres ASCII com um comprimento mínimo de 8 caracteres. Se o PUK não for fornecido, o cartão inteligente virtual será criado sem uma função PUK e, em vez disso, usará a redefinição de PIN baseada em desafio/resposta por meio da função de administrador.

[in] cbPuk

Tamanho, em bytes, da matriz de bytes apontada pelo parâmetro pbPuk .

[in] pbPin

Ponteiro para uma matriz de bytes que contém o valor pin do cartão inteligente virtual. Geralmente, é uma sequência de caracteres ASCII com um comprimento mínimo de 8 caracteres e máximo de 127 caracteres.

[in] cbPin

Tamanho, em bytes, da matriz de bytes apontada pelo parâmetro pbPin .

[in] fGenerate

Indica se o cartão inteligente virtual precisa ser provisionado com todos os arquivos necessários exigidos pelo CSP base e pelo KSP de cartão inteligente.

[in, optional] pStatusCallback

Ponteiro para uma interface ITpmVirtualSmartCardManagerStatusCallback . O gerenciador de cartão inteligente virtual do TPM usa essa interface de retorno de chamada para comunicar o progresso ou o erro durante a criação de cartão inteligentes virtuais. Se o parâmetro pStatusCallback for NULL, nenhum progresso será relatado ao cliente antes da conclusão da operação.

[out] ppszInstanceId

Ponteiro para um ponteiro para um buffer Unicode para receber a ID da instância do cartão inteligente virtual criado.

[out] pfNeedReboot

Ponteiro para um valor booliano para receber se a operação solicitada precisa reinicializar o computador.

Retornar valor

Se o método for bem-sucedido, ele retornará S_OK.

Se o método falhar, ele retornará um código de erro Win32.

Comentários

Quando o método é bem-sucedido, o parâmetro ppszInstanceId aponta para o buffer Unicode que contém o identificador de instância do leitor de cartão inteligente virtual do TPM recém-criado. Quando você terminar de usar o buffer, o chamador precisará liberar o buffer no cliente chamando a função CoTaskMemFree , conforme indicado nas regras de gerenciamento de memória COM.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho tpmvscmgr.h
Biblioteca Vscmgr.lib

Confira também

ITpmVirtualSmartCardManager