RDF_IOCTL_VENDOR (Optional)
The RDF_IOCTL_VENDOR callback function performs vendor-specific IOCTL operations.
NTSTATUS
(*ReaderFunction[RDF_IOCTL_VENDOR])(
PSMARTCARD_EXTENSION SmartcardExtension
);
Parameters
-
SmartcardExtension
-
Points to the smart card extension of the device.
Input Values
-
SmartcardExtension->MajorIoControlCode
-
Contains a vendor-specific IOCTL code. Refer to the macro SCARD_CTL_CODE in winsmcrd.h for information on how to define a vendor-specific IOCTL code. Note that the code must be between 2048 and 4095.
-
SmartcardExtension->IoRequest.RequestBuffer
-
Points to the user's input buffer.
-
SmartcardExtension->IoRequest.RequestBufferLength
-
The size of the user's input buffer.
-
SmartcardExtension->IoRequest.ReplyBuffer
-
Points to the user's output buffer.
-
SmartcardExtension->IoRequest.ReplyBufferLength
-
The size of the user's output buffer.
Output Values
-
SmartcardExtension->IoRequest.Information
-
Must be set to the number of bytes returned.
Return Values
This function returns an NTSTATUS value. The value returned depends upon the function performed, since RDF_IOCTL_VENDOR is a vendor-defined IOCTL call. 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's reply buffer is too small. |
STATUS_INVALID_DEVICE_REQUEST |
The request is not valid for this IOCTL. |
STATUS_PENDING |
The operation is pending. |