Compartilhar via


Função SCardGetReaderDeviceInstanceIdA (winscard.h)

A função SCardGetReaderDeviceInstanceId obtém o identificador da instância do dispositivo do leitor de cartão para o nome do leitor fornecido. Essa função não afeta o estado do leitor.

Sintaxe

LONG SCardGetReaderDeviceInstanceIdA(
  [in]            SCARDCONTEXT hContext,
  [in]            LPCSTR       szReaderName,
  [out, optional] LPSTR        szDeviceInstanceId,
  [in, out]       LPDWORD      pcchDeviceInstanceId
);

Parâmetros

[in] hContext

Identificador que identifica o contexto do gerenciador de recursos para a consulta. Você pode definir o contexto do gerenciador de recursos por uma chamada anterior para a função SCardEstablishContext. Esse parâmetro não pode ser NULL.

[in] szReaderName

Nome do leitor. Você pode obter esse valor chamando a função SCardListReaders.

[out, optional] szDeviceInstanceId

Buffer que recebe a ID da instância do dispositivo do leitor. Se esse valor for NULL, a função ignorará o comprimento do buffer fornecido no parâmetro cchDeviceInstanceId, gravará o comprimento do buffer que teria sido retornado se esse parâmetro não tivesse sido NULL para cchDeviceInstanceIde retornará um código de êxito.

[in, out] pcchDeviceInstanceId

Comprimento, em caracteres, do buffer szDeviceInstanceId do , incluindo o terminador de NULL . Se o comprimento do buffer for especificado como SCARD_AUTOALLOCATE, o parâmetro szDeviceInstanceId será convertido em um ponteiro para um ponteiro de bytes e receberá o endereço de um bloco de memória que contém a ID da instância. Esse bloco de memória deve ser desalocado com a função SCardFreeMemory.

Valor de retorno

Essa função retorna valores diferentes dependendo se ela é bem-sucedida ou falha.

Código de retorno Descrição
de sucesso do
SCARD_S_SUCCESS.
de falha do
Um código de erro. Para obter mais informações, consulte valores de retorno de cartão inteligente.

Observações

Essa função não é redirecionada. Chamar a função SCardGetReaderDeviceInstanceId quando dentro de uma sessão de Área de Trabalho Remota falha com o código de erro SCARD_E_READER_UNAVAILABLE.

Exemplos


LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";
WCHAR    szDeviceInstanceId[256];
DWORD    cchDeviceInstanceId = 256;

// Retrieve the reader's device instance ID.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderDeviceInstanceId (hContext,
                         szReaderName,
                         szDeviceInstanceId,
                         &cchDeviceInstanceId);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderDeviceInstanceId - %x\n", lReturn);
    // Take appropriate action.
}



Nota

O cabeçalho winscard.h define SCardGetReaderDeviceInstanceId como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8 [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2012 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winscard.h