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