Microsoft Windows CE 3.0  

SmartcardT0Request

Important:
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 SmartcardT0Requestfunction copies data from the user buffer to the send buffer that the driver uses to transmit data to the reader.

NTSTATUS SmartcardT0Request(
PSMARTCARD_EXTENSION
SmartcardExtension
);

Parameters

SmartcardExtension
Points to the smart card extension of the device.

Return Values

SmartcardT0Requestreturns an NTSTATUS value. Possible values are the following.

Value Meaning
STATUS_SUCCESS Buffer successfully set up.
STATUS_BUFFER_OVERFLOW The internal buffer is too small to hold the data to send to the smart card. To fix this error, allocate a larger send buffer. See SmartcardInitializefor details.
STATUS_BUFFER_TOO_SMALL The user buffer is too small to hold the data.

Remarks

This function copies data from the user buffer to SmartcardExtension->SmartcardRequest.Bufferand adjusts SmartcardExtension->SmartcardRequest.BufferLengthto the number of bytes to be transmitted to the smart card. The driver then simply writes this buffer to the card and reads the bytes coming from the card into SmartcardExtension->SmartcardReply.Buffer, as described in SmartcardT0Reply .

If your driver needs to send header data to the reader before the actual T=0 data, you should set SmartcardExtension->SmartcardRequest.BufferLengthto the number of bytes you need for your header before you call this function.

A usual T=0 transmission can be done in the following way:

// Copy data from user buffer to
SmartcardExtension->SmartcardRequest.Buffer status =
SmartcardT0Request( SmartcardExtension ); if (status !=
STATUS_SUCCESS) return status; // Transmit
SmartcardExtension->SmartcardRequest.Buffer to smart card status
= DriverSendDataToSmartcard(); if (status != STATUS_SUCCESS) return
status; // Receive data from smart card into
SmartcardExtension->SmartcardReply.Buffer status =
DriverReceiveDataFromSmartcard(); if (status != STATUS_SUCCESS)
return status; // Copy data from
SmartcardExtension->SmartcardReply.Buffer back to user buffer //
and return to caller return SmartcardT0Reply( SmartcardExtension
);

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

© 2004 Microsoft Corporation. All rights reserved.