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.