ISCardCmd::BuildCmd method
[The BuildCmd method is available for use in the operating systems specified in the Requirements section. It is not available for use in Windows Server 2003 with Service Pack 1 (SP1) and later, Windows Vista, Windows Server 2008, and subsequent versions of the operating system. The Smart Card Modules provide similar functionality.]
The BuildCmd method constructs a valid command application protocol data unit (APDU) for transmission to a smart card.
Syntax
HRESULT BuildCmd(
[in] BYTE byClassId,
[in] BYTE byInsId,
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pbyData,
[in] LONG *p1Le
);
Parameters
-
byClassId [in]
-
Command class identifier.
-
byInsId [in]
-
Command instruction identifier.
-
byP1 [in]
-
Command's first parameter.
-
byP2 [in]
-
Command's second parameter.
-
pbyData [in]
-
Pointer to the data portion of the command.
-
p1Le [in]
-
Pointer to a LONG integer containing the expected length of the returned data.
Return value
The method returns one of the following possible values.
Return code | Description |
---|---|
|
Operation completed successfully. |
|
One of the parameters is not valid. |
|
A bad pointer was passed in. |
|
Out of memory. |
Remarks
To encapsulate the command into another command, call Encapsulate.
For a list of all the methods provided by this interface, see ISCardCmd.
In addition to the COM error codes listed above, this interface may return a smart card error code if a smart card function was called to complete the request. For more information, see Smart Card Return Values.
Examples
The following example shows how to construct a command APDU. The example assumes that pISCardCmd is a valid pointer to an instance of the ISCardCmd interface and that pIByteRequest is a valid pointer to an instance of the IByteBuffer interface initialized with a previous call to the IByteBuffer::Initialize method.
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.
}
Requirements
Requirement | Value |
---|---|
Minimum supported client |
Windows XP [desktop apps only] |
Minimum supported server |
Windows Server 2003 [desktop apps only] |
End of client support |
Windows XP |
End of server support |
Windows Server 2003 |
Header |
|
Type library |
|
DLL |
|
IID |
IID_ISCardCmd is defined as D5778AE3-43DE-11D0-9171-00AA00C18068 |
See also