Microsoft Windows CE 3.0  


This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The RDF_SET_PROTOCOLcallback function selects a transmission protocol for the currently inserted card. This callback function is mandatory.



Points to the smart card extension of the device. SmartcardExtension->MajorIoControlCodemust be set to IOCTL_SMARTCARD_SET_PROTOCOL. SmartcardExtension->MinorIoControlCodecontains a mask of protocols combined with the bitwise OR operator that the caller accepts for further transmissions:
Value Meaning
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.

SmartcardExtension->IoRequest.ReplyBufferLengthcontains the length of the reply buffer. On output SmartcardExtension->IoRequest.ReplyBufferreceives the selected protocol, and SmartcardExtension->IoRequest.Informationmust be set to sizeof(ULONG).


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 SmartcardExtension->IoRequest.ReplyBuffer.

Return Values

This function returns an NTSTATUS value. Possible values are the following.

Value Meaning
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.


Runs on Versions Defined in Include Link to
Windows CE OS 3.0 and later      
Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

 Last updated on Tuesday, July 13, 2004

© 2004 Microsoft Corporation. All rights reserved.