RDF_SET_PROTOCOL (Windows Embedded CE 6.0)
1/6/2010
The RDF_SET_PROTOCOL callback function selects a transmission protocol for the currently inserted card. This callback function is mandatory.
Syntax
NTSTATUS (*ReaderFunction[RDF_SET_PROTOCOL])(
PSMARTCARD_EXTENSION SmartcardExtension
);
Parameters
SmartcardExtension
[in] Points to the smart card extension of the device. In this SMARTCARD_EXTENSION structure, the MajorIoControlCode member must be set to IOCTL_SMARTCARD_SET_PROTOCOL. The MinorIoControlCode member contains a mask of protocols combined with the bitwise OR operator that the caller accepts for further transmissions.Value Description SCARD_PROTOCOL_RAW
Selects raw protocol.
SCARD_PROTOCOL_T0
Selects the ISO T=0 protocol.
SCARD_PROTOCOL_T1
Selects the ISO T=1 protocol.
SCARD_PROTOCOL_DEFAULT
Do not do PTS selection even if the card only supports one protocol.
SCARD_PROTOCOL_OPTIMAL
Do PTS selection.
This structure's IoRequest member contains its own structure. The ReplyBufferLength member of this structure's IoRequest member contains the length of the reply buffer. On output, the ReplyBuffer member of this structure's IoRequest member receives the selected protocol, and the Information member of this structure's IoRequest member must be set to
sizeof(ULONG)
.
Return Value
This function returns an NTSTATUS value. Possible values are the following.
Value | Description |
---|---|
STATUS_SUCCESS |
A protocol was successfully selected. |
STATUS_NO_MEDIA |
No card is in the reader. |
STATUS_IO_TIMEOUT |
The request has timed out. |
STATUS_BUFFER_TOO_SMALL |
The user buffer is not large enough to hold a ULONG. |
STATUS_INVALID_DEVICE_STATE |
The reader is not in the correct state to select a protocol. This is the case when a card is inserted, but not reset. |
STATUS_INVALID_DEVICE_REQUEST |
The mask contains an unknown protocol. |
Remarks
The caller can supply a mask of protocols that it accepts. It is the driver's decision to select one protocol out of the mask. After the driver has selected a protocol, it must return the selected protocol in the ReplyBuffer member of the IoRequest member in the SMARCARD_EXTENSION structure.
Requirements
Header | smclib.h |
Windows Embedded CE | Windows CE 3.0 and later |