- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
紫金支点wosa-xfs培训
XFS概要;XFS的基础知识;第一部分;一、背景;核心成员;WOSA/XFS的基本特点;二、XFS概要;2.1 体系结构;2.2 体系结构;2.3 SP的主要功能;2.4 设计要支持解决复杂问题;三、API 和 SPI 概要;3.1 API结构;3.2一个典型的API使用样例 ;四、设备分类(XFS2.0);设备分类(XFS3.0);五、架构和实现问题 ;5.1 XFS Manager ;5.2 Service Provider (SP)封装;5.3异步、同步和即时函数 ;5.3.1 异步函数处理过程;5.3.2 同步函数处理过程;5.3.3 即时函数;5.4 API函数处理分类;5.5 建立和关闭会晤(Session);对应SP的处理:
执行指定的版本(应用和XFS Manager请求时指定的SPI版本参数)
取得配置信息
异步地建立与在配置信息中指定的服务的会晤
当请求完成时,发送一个执行完成的消息(WFS_OPEN_COMPLETE),给应用(如果是WFSAsyncOpen调用)或给XFS Manager(如果是WFSOpen调用) ;关闭会晤(Session)
XFS Manager调用SP的WFPClose 函数
SP把请求放入延后队列,并立即返回给Manager。注意此时服务句柄, hService,不再有效
同时SP处理这个被延后的关闭请求,一旦必要,便与服务(设备)通信完成这个请求
执行关闭前应用提交的请求
如果hService 相同的服务被应用锁定,SP自动解锁服务
服务清除它的管理信息 ;5.6 配置信息;5.6.1 配置注册表的结构;5.6.2 配置注册表的结构;5.6.3 配置注册表的结构;5.6.4 XFS Manager键 ;5.6.5 强制要求的键值;5.7 独占访问;5.7.1 三种XFS请求类型;5.7.2 独立设备的加锁策略;Service state: LOCK_PENDING
所有在延后队列中未决的加锁请求前的请求按FIFO方式处理。在处理结束后,处理加锁队列。
当一个加锁请求被允许后:
服务状态变为LOCKED。
其他来自相同“属主”的未决的加锁请求也给与允许(属主相同是指来自同一个工作站的同一个应用的同一个服务句柄)。 ;Service state: LOCKED
按如下方式处理到达的请求(除加锁请求外):
非延后的的请求在到达后便进行处理。
非WFPExecute请求的延后请求放到延后队列中。
来自加锁请求属主的WFPExecute请求放到延后队列中。
拒绝不是来自锁属主的WFPExecute请求(使用WFS_ERR_LOCKED错误代码)。
来自锁属主的WFPUnlock 和 WFPClose请求放到延后队列中。(注意对已加锁的服务的关闭请求视为一个解锁请求和紧接着一个关闭请求)。
不是来自锁属主的WFPUnlock 和 WFPClose 请求当作非延后的的请求处理,即在到达后便进行处理。
延后队列以FIFO方式处理。 ;
当一个WFPLock请求达到时:
如果是来自同一属主,允许请求。
如果不是来自同一属主,把它放进加锁队列, 发送WFS_SYSE_LOCK_REQUESTED 事件给属主
当延后队列中的 WFPUnlock 或 WFPClose 请求被处理(或服务与锁的属主之间的连接丢失)时:
如果锁队列非空,服务状态变为LOCK_PENDING。
如果锁队列空,服务状态变为 UNLOCKED
注意:必须适当地处理请求中的超时参数;5.7.3 复合设备;5.7.4 复合设备的加锁策略;Service state: LOCKED
来自同一属主的锁定“reserved”服务的请求在到达时就给于允许。
不是同一属主的锁定“reserved”服务的请求放到加锁队列。
注意当为该服务处理一个WFPUnlock或WFPClose请求时,同时有任一个与该服务关联的其它逻辑服务是LOCKED状态的话,设置该服务的状态为“reserved”,而不是UNLOCKED。
当为该服务处理一个WFPUnlock或WFPClose请求时,同时其他与该服务关联的服务是“reserved”状态,设置所有这些服务的状态为“UNLOCKED”。 ;5.8 超时控制;5.9 函数状态返回;5.9.1 即时API函数返回;5.9.2 异步API函数返回;5.9.3 同步API函数返回;5.10 事件通知机制;5.10.1 四种事件类型;5.10.2 注??事项;5.11 应用进(线)程和阻塞函数;阻塞循环;DefaultBlockingHook;5.12 内存管理;四个内存管理函数
WFMAllocateBuffer
WFMAllocateMore
WFMFreeBuffer
WFSFr
文档评论(0)