次の方法で共有


プラグ アンド プレイの I/O 要求を使用して PCMCIA 属性メモリにアクセスする

このセクションでは、プラグ アンド プレイ I/O 要求を使用して、PC カードまたは Cardbus カード ドライバーが属性メモリにアクセスする方法について説明します。

ドライバーは、通常、このメソッドを使用して、デバイスの初期化、デバイスの構成、デバイスからの情報の取得を行います。 ドライバーは、I/O オーバーヘッドを承認でき、IRQL <DISPATCH_LEVEL でアクセスできる場合は、このメソッドを使用する必要があります。

ドライバーは、IRQL <= DISPTACH_LEVEL での実行中に、このメソッドを使用できます。

ドライバーは、次の一連の操作を実行します。

  • 新しい IRP_MJ_PNP 要求を作成して初期化します。

    ドライバーは、IRP_MN_READ_CONFIG または IRP_MN_WRITE_CONFIG マイナー関数のいずれかを指定します。

  • この次のスタックの場所を取得します。

  • Parameters.ReadWriteConfig 構造体の次のメンバーを新しいスタックの場所に設定します。

    WhichSpace
    PCCARD_ATTRIBUTE_MEMORY 値を指定します。

    Buffer
    ドライバーがアクセス用に割り当てることができる、ページ メモリ バッファーへのポインター。 書き込み操作では、構成領域に書き込むデータがバッファーに格納されます。 読み取り操作では、バッファーは 0 で塗りつぶされたバッファーです。 要求が完了すると、このバッファーには、デバイスから読み取られた属性メモリのコピーを保持します。

    Offset
    読み取りまたは書き込み操作が開始する属性メモリのベースから WORD オフセットを指定します。

    Length
    ドライバーが要求に割り当てるバッファーのサイズを、バイト単位で指定します。

  • 完了ルーチンを設定します。

  • 要求をデバイス スタックに送信します。