RDF_CARD_POWER (Mandatory)

The RDF_CARD_POWER callback function resets or powers down an inserted smart card.

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

Parameters

SmartcardExtension
Points to the smart card extension of the device.

Input Values

SmartcardExtension->MajorIoControlCode
Contains IOCTL_SMARTCARD_POWER.
SmartcardExtension->MinorIoControlCode
Contains one of the following minor codes, depending on the function to be performed.
Minor Code Meaning
SCARD_COLD_RESET Performs a cold reset of the card.
SCARD_WARM_RESET Performs a warm reset of the card.
SCARD_POWER_DOWN Switches off card power.

SmartcardExtension->IoRequest.ReplyBufferLength
Contains the length of the reply buffer.

Output Values

SmartcardExtension->IoRequest.ReplyBuffer
This buffer receives the ATR returned by the card. In addition, you must transfer the ATR to SmartcardExtension->CardCapabilities.ATR.Buffer to let the library parse the ATR.
SmartcardExtension->IoRequest.Information
Receives the actual length of the ATR. In addition you must transfer the length of the ATR to SmartcardExtension->CardCapabilities.ATR.Length.

Return Values

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

Value Meaning
STATUS_SUCCESS Function successfully executed.
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 the ATR.