スマート カードのコールバック パラメーター

IOCTL_SMARTCARD_IS_ABSENT および IOCTL_SMARTCARD_IS_PRESENT を除くすべての IOCTL 要求について、SmartcardDeviceControl (WDM) はコールバック ルーチンを呼び出す前に、SMARTCARD_EXTENSION 構造体の IoRequest メンバーを初期化します。 次の表は、SmartcardDeviceControl が実行する初期化の種類を示しています。

IoRequest のメンバー SmartcardDeviceControl によって実行される初期化

IoRequest.RequestBuffer

カードに送信されるユーザー データを、このメンバーが指すバッファーに格納します。

IoRequest.RequestBufferLength

このメンバーにユーザー バッファーの長さを格納します。

IoRequest.ReplyBuffer

スマート カードによって返されたデータを、このメンバーが指すバッファーに格納します。

IoRequest.ReplyBufferLength

応答バッファーのサイズをこのメンバーに格納します。

IoRequest.Information

このメンバーが指す変数に、カードから実際に受信したバイト数を格納します。

MajorIoControlCode

IOCTL 要求のメジャー I/O 制御コードをこのメンバーに格納します。

MinorIoControlCode

IOCTL 要求のマイナー I/O 制御コード (存在する場合) をこのメンバーに格納します。

SmartcardExtension->OsData が指す構造は、次の表に示すように設定されます。

メンバー 説明

CurrentIrp

IOCTL_SMARTCARD_IS_ABSENTIOCTL_SMARTCARD_IS_PRESENT を除くすべての制御要求において、要求元 IRP へのポインターを受け取ります。

NotificationIrp

IOCTL_SMARTCARD_IS_ABSENT と IOCTL_SMARTCARD_IS_PRESENT の制御要求において、要求元 IRP へのポインターを受け取ります。