IOCTL_SMARTCARD_IS_PRESENT IOCTL (winsmcrd.h)
The IOCTL_SMARTCARD_IS_PRESENT control code detects whether a smart card is currently detected. If a card is present, it returns immediately with STATUS_SUCCESS. If no smart card is detected, it subscribes to the smart card arrival event and is kept pending. Closing the file handle unsubscribes the event.
Major code
Input buffer
None.
Output buffer
None.
Status block
Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Possible error codes are:
Return Code | Description |
---|---|
STATUS_PENDING | This code is returned if the operation is waiting for the smart card to approach into the radio field. |
STATUS_DEVICE_BUSY | This code is returned if the operation is already waiting for the present event. |
STATUS_INVALID_DEVICE_STATE | This code is returned if the device cannot accept the request. |
STATUS_INVALID_PARAMETER | This code is returned when the input or output buffers are invalid. |
STATUS_DEVICE_POWERED_OFF | This code is returned when the proximity radio control is off. |
Remarks
The following actions are required when using this IOCTL:
-
The driver must support CancelIo on this pended IOCTL.
- It is a power-managed request. The pended IOCTL will keep the driver in a D0 power state.
- The driver must return STATUS_SUCCESS only for the supported type.
Requirements
Requirement | Value |
---|---|
Header | winsmcrd.h |