Share via


Método ISCardISO7816::ManageChannel

[O método ManageChannel 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 ManageChannel constrói um comando APDU ( unidade de dados de protocolo de aplicativo ) que abre e fecha canais lógicos.

A função open abre um novo canal lógico diferente do básico. As opções são fornecidas para o cartão atribuir um número de canal lógico ou para que o número de canal lógico seja fornecido ao cartão.

A função close fecha explicitamente um canal lógico diferente do básico. Após o fechamento bem-sucedido, o canal lógico estará disponível para reutilidade.

Sintaxe

HRESULT ManageChannel(
  [in]      BYTE       byChannelState,
  [in]      BYTE       byChannel,
  [in, out] LPSCARDCMD *ppCmd
);

Parâmetros

byChannelState [in]

O bit b8 de P1 é usado para indicar a função aberta ou a função close; se b8 for 0, MANAGE CHANNEL deverá abrir um canal lógico e, se b8 for 1, MANAGE CHANNEL deverá fechar um canal lógico:

P1 = '00' para abrir

P1 = '80' para fechar

Outros valores são RFU

byChannel [in]

Para a função open (P1 = '00'), os bits b1 e b2 de P2 são usados para codificar o número de canal lógico da mesma maneira que no byte de classe, os outros bits de P2 são RFU.

Quando b1 e b2 de P2 forem NULL, o cartão atribuirá um número de canal lógico que será retornado nos bits b1 e b2 do campo de dados.

Quando b1 e/ou b2 de P2 não são NULL, eles codificam um número de canal lógico diferente do básico; em seguida, o cartão abrirá o número do canal lógico atribuído externamente.

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 usando o 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

Quando a função aberta é executada com êxito do canal lógico básico, o MF deve ser implicitamente selecionado como o DF atual e o status de segurança do novo canal lógico deve ser o mesmo que o canal lógico básico após o ATR. O status de segurança do novo canal lógico deve ser separado do de qualquer outro canal lógico.

Quando a função aberta for executada com êxito de um canal lógico, que não é o básico, o DF atual do canal lógico que emitiu o comando será selecionado como o DF atual. Além disso, a status de segurança para o novo canal lógico deve ser igual à status de segurança do canal lógico do qual a função aberta foi executada.

Após uma função de fechamento bem-sucedida, a status de segurança relacionada a esse canal lógico é perdida.

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 tiver sido chamada para concluir a solicitação. Para obter mais informações, consulte Valores retornados de 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