Partager via


ISCardCmd::BuildCmd, méthode

[La méthode BuildCmd peut être utilisée dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il n’est pas disponible pour une utilisation dans Windows Server 2003 avec Service Pack 1 (SP1) et versions ultérieures, Windows Vista, Windows Server 2008 et les versions ultérieures du système d’exploitation. Les modules de carte à puce offrent des fonctionnalités similaires.]

La méthode BuildCmd construit une unité de données de protocole d’application (APDU) de commande valide pour la transmission à un carte intelligent.

Syntaxe

HRESULT BuildCmd(
  [in] BYTE         byClassId,
  [in] BYTE         byInsId,
  [in] BYTE         byP1,
  [in] BYTE         byP2,
  [in] LPBYTEBUFFER pbyData,
  [in] LONG         *p1Le
);

Paramètres

byClassId [in]

Identificateur de classe de commande.

byInsId [in]

Identificateur d’instruction de commande.

byP1 [in]

Premier paramètre de la commande.

byP2 [in]

Deuxième paramètre de la commande.

pbyData [in]

Pointeur vers la partie données de la commande.

p1Le [in]

Pointeur vers un entier LONG contenant la longueur attendue des données retournées.

Valeur retournée

La méthode retourne l’une des valeurs possibles suivantes.

Code de retour Description
S_OK
Opération exécutée avec succès.
E_INVALIDARG
L’un des paramètres n’est pas valide.
E_POINTER
Un pointeur incorrect a été passé.
E_OUTOFMEMORY
Mémoire insuffisante.

 

Notes

Pour encapsuler la commande dans une autre commande, appelez Encapsuler.

Pour obtenir la liste de toutes les méthodes fournies par cette interface, consultez ISCardCmd.

En plus des codes d’erreur COM répertoriés ci-dessus, cette interface peut retourner un code d’erreur de carte intelligent si une fonction de carte intelligente a été appelée pour terminer la demande. Pour plus d’informations, consultez Valeurs de retour de carte à puce.

Exemples

L’exemple suivant montre comment construire une commande APDU. L’exemple suppose que pISCardCmd est un pointeur valide vers un instance de l’interface ISCardCmd et que pIByteRequest est un pointeur valide vers un instance de l’interface IByteBuffer initialisée avec un appel précédent à la méthode IByteBuffer:Initialize.

LONG       lLe = 0;
HRESULT    hr;

hr = pISCardCmd->BuildCmd(0x00,   // Some cards prefer 0xC0
                          0xa4,   // 'Select File'
                          0x00,
                          0x00,
                          pIByteRequest,
                          &lLe);
if (FAILED(hr))
{
    printf("Failed ISCardCmd::BuildCmd\n");
    // Take other error handling action as needed.
}

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
Fin de la prise en charge des clients
Windows XP
Fin de la prise en charge des serveurs
Windows Server 2003
En-tête
Scarddat.h
Bibliothèque de types
Scarddat.tlb
DLL
Scardssp.dll
IID
IID_ISCardCmd est défini comme D5778AE3-43DE-11D0-9171-00AA00C18068

Voir aussi

Encapsuler

ISCardCmd