RDF_SET_PROTOCOL

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

NTSTATUS (*ReaderFunction[RDF_SET_PROTOCOL])(
  PSMARTCARD_EXTENSION SmartcardExtension);

Parameters

  • SmartcardExtension
    Points to the smart card extension of the device. SmartcardExtension->MajorIoControlCode must be set to IOCTL_SMARTCARD_SET_PROTOCOL. SmartcardExtension->MinorIoControlCode contains 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.
    SCARD_PROTOCOL_OPTIMAL Do PTS selection.

    SmartcardExtension->IoRequest.ReplyBufferLength contains the length of the reply buffer. On output SmartcardExtension->IoRequest.ReplyBuffer receives the selected protocol, and SmartcardExtension->IoRequest.Information must be set to sizeof(ULONG).

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

Requirements

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

© 1992-2000 Microsoft Corporation. All rights reserved.