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