WDF_INTERRUPT_CONFIG 结构

WDF_INTERRUPT_CONFIG结构主要包含了设备中断的配置信息。 


语法:

typedef struct _WDF_INTERRUPT_CONFIG {

  ULONG                     Size;

  WDFSPINLOCK               SpinLock;

  WDF_TRI_STATE             ShareVector;

  BOOLEAN                   FloatingSave;

  BOOLEAN                   AutomaticSerialization;

  PFN_WDF_INTERRUPT_ISR     EvtInterruptIsr;

  PFN_WDF_INTERRUPT_DPC     EvtInterruptDpc;

  PFN_WDF_INTERRUPT_ENABLE  EvtInterruptEnable;

  PFN_WDF_INTERRUPT_DISABLE EvtInterruptDisable;

} WDF_INTERRUPT_CONFIG, *PWDF_INTERRUPT_CONFIG;


成员:

Size

WDF_INTERRUPT_CONFG结构体大小,以字节为单位。

 

SpinLock

Framework自旋锁句柄对象,或者由之前调用WdfSpinLockCreate时获得,或者为NULL。如果这个参数为NULLFramework会使用内部的自旋锁对象。当驱动的EvtInterruptSynchronize 事件回调函数被调用钱并且驱动调用了WdfInterruptAcquireLock时,Framework会获取自旋锁。

 

ShareVector

WDF_TRI_STATE类型的值。如果这个值为WdfTrue,中断向量可以共享;如果为WdfFalse,则中断向量不可以共享。如果值是默认的WdfDefaultPnP(管理层)将会使用总线驱动的值。

 

FloatingSave

Boolean型变量。如果为TRUE,那么系统将会保存设备中断时处理区的浮点真真和MMX状态,相反则不保存。当EvtInterruptIsr 回调函数必须使用浮点指针或者MMX寄存器时,驱动代码必须设为TRUE。更多信息,查看Using Floating Point or MMX in a WDM Driver.

 

AutomaticSerialization

Boolean型变量。如果为TRUEFramework会同步执行此中断对象以及此中断之下的父类设备对象的EvtInterruptDpc 回调函数。

 

EvtInterruptIsr

驱动的EvtInterruptIsr 回调函数指针,不可以为NULL

 

EvtInterruptDpc

驱动的EvtInterruptDpc 回调函数指针,可以为NULL

 

EvtInterruptEnable

驱动的EvtInterruptEnable 回调函数指针,可以为NULL

 

EvtInterruptDisable

驱动的EvtInterruptDisable 回调函数指针,可以为NULL

 

备注:

WDF_INTERRUPT_CONFIG结构是WdfInterruptCreate接口的输入参数。

必须调用WDF_INTERRUPT_CONFIG_INIT来初始化WDF_INTERRUPT_CONFIG结构体,并且还要给其他(WDF_INTERRUPT_CONFIG_INIT)没有初始化的成员进行初始化。

如果父类的设备对象synchronization scope的值为WdfSynchronizationScopeNone设置AutomaticSerialization TRUE不会对父类的设备对象有影响。

如果父类的设备对象execution level 设置为WdfExecutionLevelPassive,设置AutomaticSerialization TRUE会引起WdfInterruptCreate 失败。

更多关于AutomaticSerialization 和驱动同步回调的内容,可以参考Synchronization Techniques for Framework-Based Drivers.

更多关于Framework层处理中断的内容,参考Handling Hardware Interrupts.

Note:

1.KMDF V1.0及之后版本;

头文件Wdfinterrupt.h。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值