|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.
NTSTATUS (*ReaderFunction[RDF_SET_PROTOCOL])( PSMARTCARD_EXTENSION SmartcardExtension );
|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.|
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.
This function returns an NTSTATUS value. Possible values are the following.
|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