使用即插即用 I/O 请求访问 PCMCIA 属性内存

本部分介绍 PC 卡或卡总线卡驱动程序即插即用 I/O 请求访问属性内存。

驱动程序通常使用此方法初始化设备、配置设备或从设备获取信息。 如果可接受 I/O 开销,并且可以在 IRQL < 实例上完成访问,则驱动程序应使用此方法DISPATCH_LEVEL。

驱动程序只能在 IRQL < 运行时使用此方法DISPATCH_LEVEL。

驱动程序执行以下操作序列:

  • 创建并初始化新的 IRP_MJ_PNP 请求。

    驱动程序指定一个IRP_MN_READ_CONFIG或IRP_MN_WRITE_CONFIG次函数。

  • 获取下一个堆栈位置。

  • 设置新堆栈位置 中 Parameters.ReadWriteConfig 结构的以下成员:

    WhichSpace
    指定值PCCARD_ATTRIBUTE_MEMORY。

    缓冲区
    指向驱动程序为访问分配的分页内存缓冲区的指针。 对于写入操作,缓冲区包含要写入配置空间的数据。 对于读取操作,缓冲区是填充零的缓冲区。 请求完成后,此缓冲区保存从设备读取的属性内存的副本。

    抵消
    指定从读取或写入操作开始的属性内存基的 WORD 偏移量。

    长度
    指定驱动程序为请求分配的缓冲区的大小(以字节为单位)。

  • 设置完成例程。

  • 将请求向下发送到设备堆栈。