Share via


Método ISCardISO7816::WriteRecord

[O método WriteRecord 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 WriteRecord constrói um comando APDU ( unidade de dados de protocolo de aplicativo ) que inicia uma das seguintes operações:

  • A gravação uma vez de um registro.
  • O OR lógico dos bytes de dados de um registro já presente no cartão com os bytes de dados do registro fornecido na APDU de comando.
  • O AND lógico dos bytes de dados de um registro já presente no cartão com os bytes de dados do registro fornecido na APDU de comando.

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

Observação

Ao usar o endereçamento de registro atual, o comando define o ponteiro de registro no registro atualizado com êxito.

 

Sintaxe

HRESULT WriteRecord(
  [in]      BYTE         byRecordId,
  [in]      BYTE         byRefCtrl,
  [in]      LPBYTEBUFFER pData,
  [in, out] LPSCARDCMD   *ppCmd
);

Parâmetros

byRecordId [in]

Identificação de registro. Esse é o valor P1:

P1 = '00' designa o registro atual.

P1 != '00' é o número do registro especificado.

byRefCtrl [in]

Codificação do controle de referência P2.

Valor Significado
EF atual
Posição do bit: 00000---
EF selecionado no momento.
ID de EF curta
Posição do bit: xxxxx---
Identificador EF curto.
Primeiro Registro
Posição do bit: -----000
Último Registro
Posição do bit: -----001
Próximo Registro
Posição do bit: -----010
Registro Anterior
Posição do bit: -----011
Registro nº em P1
Posição do bit: -----100

 

pData [in]

Ponteiro para o registro a ser gravado.

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 o 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. Se outro arquivo elementar estiver selecionado no momento da emissão desse comando, esse comando poderá ser processado sem a identificação do arquivo selecionado no momento.

Se o comando encapsulado se aplicar a um arquivo elementar linear fixo ou com estrutura cíclica, ele será anulado se o comprimento do registro for diferente do comprimento do registro existente. Se ele se aplicar a um arquivo elementar estruturado de variável linear, ele poderá ser realizado quando o comprimento do registro for diferente do comprimento do registro existente.

Se P2=xxxxx011 e o arquivo elementar for um arquivo cíclico, esse comando terá o mesmo comportamento que um comando construído usando AppendRecord.

Arquivos elementares sem uma estrutura de registro não podem ser gravados. O comando construído anula se aplicado a um arquivo elementar sem uma estrutura de registro.

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

AppendRecord

ISCardISO7816

ReadRecord

UpdateRecord