Параметры обратного вызова смарт-карты
Для всех запросов IOCTL, кроме IOCTL_SMARTCARD_IS_ABSENT и IOCTL_SMARTCARD_IS_PRESENT, SmartcardDeviceControl (WDM) инициализирует элемент IoRequestструктуры SMARTCARD_EXTENSION перед вызовом процедуры обратного вызова. В следующей таблице указаны типы инициализации, которые выполняет SmartcardDeviceControl .
Член IoRequest | Инициализация, выполненная SmartcardDeviceControl |
---|---|
IoRequest.RequestBuffer |
Хранит пользовательские данные для отправки в карта в буфере, на который указывает этот элемент. |
IoRequest.RequestBufferLength |
Сохраняет длину буфера пользователя в этом элементе. |
IoRequest.ReplyBuffer |
Хранит данные, возвращаемые смарт-карта, в буфере, на который указывает этот элемент. |
IoRequest.ReplyBufferLength |
Сохраняет размер буфера ответов в этом элементе. |
IoRequest.Information |
Сохраняет количество байтов, фактически полученных от карта, в переменной, на которую указывает этот элемент. |
MajorIoControlCode |
Хранит основной код элемента управления вводом-выводом запроса IOCTL в этом элементе. |
MinorIoControlCode |
Сохраняет дополнительный код элемента управления вводом-выводом (при наличии) запроса IOCTL в этом элементе. |
Структура, на которую указывает SmartcardExtension-OsData>, настроена, как описано в следующей таблице.
Член | Описание |
---|---|
CurrentIrp |
Получает указатель на запрашивающую IRP для каждого запроса элемента управления, кроме IOCTL_SMARTCARD_IS_ABSENT и IOCTL_SMARTCARD_IS_PRESENT. |
NotificationIrp |
Получает указатель на запрашивающую IRP для запроса IOCTL_SMARTCARD_IS_ABSENT или IOCTL_SMARTCARD_IS_PRESENT управления. |