Método ISCardISO7816::WriteBinary

[O método WriteBinary 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 WriteBinary constrói um comando APDU ( unidade de dados de protocolo de aplicativo ) que grava valores binários em um arquivo elementar.

Dependendo dos atributos de arquivo, o comando executa uma das seguintes operações:

  • O OR lógico dos bits já presentes no cartão com os bits fornecidos na APDU de comando (o estado lógico apagado dos bits do arquivo é 0).
  • O AND lógico dos bits já presentes no cartão com os bits fornecidos na APDU de comando (o estado lógico apagado dos bits do arquivo é 1).
  • A gravação única no cartão dos bits dados na APDU de comando.

Quando nenhuma indicação é fornecida no byte de codificação de dados, o comportamento OR lógico se aplica.

Sintaxe

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

Parâmetros

byP1 [in]

Deslocamento para o local de gravação desde o início do arquivo binário (EF). Se b8=1 em P1, b7 e b6 de P1 forem definidos como zero (bits RFU), b5 a b1 de P1 serão um identificador EF curto e P2 será o deslocamento do primeiro byte a ser gravado em unidades de dados desde o início do arquivo. Se b8=0 em P1, então P1|| P2 é o deslocamento do primeiro byte a ser gravado em unidades de dados desde o início do arquivo.

byP2 [in]

Deslocamento para o local de gravação desde o início do arquivo binário (EF). Se b8=1 em P1, b7 e b6 de P1 forem definidos como zero (bits RFU), b5 a b1 de P1 serão um identificador EF curto e P2 será o deslocamento do primeiro byte a ser gravado em unidades de dados desde o início do arquivo. Se b8=0 em P1, então P1|| P2 é o deslocamento do primeiro byte a ser gravado em unidades de dados desde o início do arquivo.

pData [in]

Ponteiro para a cadeia de caracteres de unidades de dados a serem gravadas.

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

O comando encapsulado só poderá ser executado se a status de segurança do cartão inteligente atender aos atributos de segurança do arquivo elementar que está sendo processado.

Quando o comando contém um identificador elementar curto válido, ele define o arquivo como arquivo elementar atual.

Quando uma operação binária de gravação tiver sido aplicada a uma unidade de dados de um EF de gravação única, qualquer operação de gravação adicional referente a essa unidade de dados será anulada se o conteúdo da unidade de dados ou o indicador de estado apagado lógico (se houver) anexado a essa unidade de dados for diferente do estado lógico apagado.

Arquivos elementares sem uma estrutura transparente não podem ser gravados. O comando encapsulado será anulado se aplicado a um arquivo elementar sem uma estrutura transparente.

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

EraseBinary

ISCardISO7816

ReadBinary

UpdateBinary