For all IOCTL requests except IOCTL_SMARTCARD_IS_ABSENT and IOCTL_SMARTCARD_IS_PRESENT, SmartcardDeviceControl (WDM) initializes the IoRequest member of the SMARTCARD_EXTENSION structure before it calls a callback routine. The following table indicates the sorts of initialization that SmartcardDeviceControl performs.
| IoRequest 的成员 | SmartcardDeviceControl 执行的初始化 |
|---|---|
IoRequest.RequestBuffer |
存储要发送到此成员指向的缓冲区中的卡片的用户数据。 |
IoRequest.RequestBufferLength |
将用户缓冲区的长度存储在此成员中。 |
IoRequest.ReplyBuffer |
将智能卡返回的数据存储在此成员指向的缓冲区中。 |
IoRequest.ReplyBufferLength |
在此成员中存储回复缓冲区的大小。 |
IoRequest.Information |
存储从此成员指向的变量中实际从卡接收的字节数。 |
MajorIoControlCode |
在此成员中存储 IOCTL 请求的主要 I/O 控制代码。 |
MinorIoControlCode |
在此成员中存储 IOCTL 请求的次要 I/O 控制代码(如果有)。 |
The structure pointed to by SmartcardExtension->OsData is set up as described in the following table.
| Member | Description |
|---|---|
CurrentIrp |
Receives a pointer to the requesting IRP for every control request except IOCTL_SMARTCARD_IS_ABSENT and IOCTL_SMARTCARD_IS_PRESENT. |
NotificationIrp |
接收指向IOCTL_SMARTCARD_IS_ABSENT或IOCTL_SMARTCARD_IS_PRESENT控制请求的请求 IRP 的指针。 |