Compartilhar via


Método ISCardISO7816::SelectFile

[O método SelectFile está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele não está disponível para uso no Windows Server 2003 com Service Pack 1 (SP1) e posterior, Windows Vista, Windows Server 2008 e versões subsequentes do sistema operacional. Os Módulos de Cartão Inteligente fornecem funcionalidade semelhante.]

O método SelectFile constrói um comando APDU ( unidade de dados de protocolo de aplicativo ) que define um arquivo elementar atual dentro de um canal lógico. Os comandos subsequentes podem se referir implicitamente ao arquivo atual por meio do canal lógico.

Selecionar um DF (diretório) no repositório de arquivos cartão , que pode ser a raiz (MF) do repositório de arquivos, torna-o o DF atual. Após essa seleção, um arquivo elementar atual implícito pode ser referenciado por meio desse canal lógico.

Selecionar um arquivo elementar define o arquivo selecionado e seu pai como arquivos atuais.

Após a resposta a ser redefinida, o MF é selecionado implicitamente por meio do canal lógico básico, a menos que especificado de forma diferente nos bytes históricos ou na cadeia de caracteres de dados inicial.

Sintaxe

HRESULT SelectFile(
  [in]      BYTE         byP1,
  [in]      BYTE         byP2,
  [in]      LPBYTEBUFFER pData,
  [in]      LONG         lBytesToRead,
  [in, out] LPSCARDCMD   *ppCmd
);

Parâmetros

byP1 [in]

Controle de seleção.

P1 (byte superior na palavra): 8 7 6 5 4 3 2 1 Significado
000000xx
Selecionar ID do Arquivo
00000000
EF, DF ou MF
00000001
DF filho
00000010
EF em DF
00000011
DF pai do DF atual

 

Quando P1=00, o cartão sabe por causa de uma codificação específica da ID do arquivo ou devido ao contexto de execução do comando se o arquivo a ser selecionado for o MF, um DF ou um EF.

Quando P1-P2=0000, se uma ID de arquivo for fornecida, ela será exclusiva nos seguintes ambientes:

  • Filhos imediatos do DF atual
  • DF pai
  • Filhos imediatos do DF pai

Se P1-P2=0000 e se o campo de dados estiver vazio ou igual a 3F00, selecione o MF.

Quando P1=04, o campo de dados é um nome DF, possivelmente truncado corretamente.

Quando houver suporte, os comandos sucessivos com o mesmo campo de dados devem selecionar DFs cujos nomes correspondem ao campo de dados (ou seja, começar com o campo de dados de comando). Se o cartão aceitar o comando com um campo de dados vazio, todos ou um subconjunto dos DFs poderão ser selecionados sucessivamente.

byP2 [in]

Controle de seleção.

pData [in]

Dados para operação, se necessário; else, NULL. Os tipos de dados que são passados nesse parâmetro incluem:

  • ID do arquivo
  • caminho do MF
  • caminho do DF atual
  • Nome do DF

lBytesToRead [in]

Vazio (ou seja, 0) ou comprimento máximo dos dados esperados em resposta.

ppCmd [in, out]

Na entrada, um ponteiro para um objeto de interface ISCardCmd ou NULL.

No retorno, ele é preenchido com o comando APDU construído por essa operação. Se ppCmd tiver sido definido como NULL, um objeto cartãoISCardCmd inteligente será criado internamente e retornado por meio do ponteiro ppCmd.

Valor retornado

O método retorna um dos valores possíveis a seguir.

Código de retorno Descrição
S_OK
Operação concluída com sucesso.
E_INVALIDARG
Parâmetro inválido.
E_POINTER
Um ponteiro inválido foi passado.
E_OUTOFMEMORY
Sem memória.

 

Comentários

A menos que especificado de outra forma, a execução correta do comando encapsulado modifica o status de segurança de acordo com as seguintes regras:

  • Quando o arquivo elementar atual é alterado ou quando não há nenhum arquivo elementar atual, a segurança status específica para um arquivo elementar atual antigo é perdida.
  • Quando o DF (diretório de armazenamento de arquivos) atual é descendente ou idêntico ao antigo DF atual, a segurança status específica para o antigo DF atual é perdida. A segurança status comum a todos os ancestrais comuns do DF anterior e novo atual é mantida.

Para obter uma lista de todos os métodos fornecidos por essa interface, consulte ISCardISO7816.

Além dos códigos de erro COM listados acima, essa interface poderá retornar um código de erro de cartão inteligente se uma função de cartão inteligente for chamada para concluir a solicitação. Para obter mais informações, consulte Valores retornados do cartão inteligente.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Fim do suporte ao cliente
Windows XP
Fim do suporte ao servidor
Windows Server 2003
Cabeçalho
Scardssp.h
Biblioteca de tipos
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID_ISCardISO7816 é definido como 53B6AA68-3F56-11D0-916B-00AA00C18068

Confira também

ISCardISO7816