Share via


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

See Also

Reference

Smart Card Driver Functions
IOCTL_SMARTCARD_SET_PROTOCOL