討論區快速選單
知識庫快速選單
網路投保旅行平安險 傑米的攝影旅遊筆記 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
dxe dispatch (dependence)
更改我的閱讀文章字型大小
作者 : roy_cao(Roy)
[ 貼文 62 | 人氣 5560 | 評價 120 | 評價/貼文 1.94 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/2/12 下午 12:54:33
请教大家一个问题
我们知道dxe driver 的dependence 是depend 一个Protocol GUID,从*.dxs 中很容易看出是depends 一个protocol

而在dxe dispatched 有这样一个函数递归调用函数:CoreInsertOnScheduledQueueWhileProcessingBeforeAndAfter

将氢image 从discovery driver 插入到scheduled driver

 

里面有这样一句:

if (EfiCompareGuid (&InsertedDriverEntry->FileName, &DriverEntry->BeforeAfterGuid)) {

&InsertedDriverEntry->FileName, 这个是文件的file name

&DriverEntry->BeforeAfterGuid这个是dependence 即protocal 这两个怎么可以比较?

 而在实际BIOS RUN的过程中也确实是根据protocol guid 从connect device 中可以看出
作者 : roy_cao(Roy)
[ 貼文 62 | 人氣 5560 | 評價 120 | 評價/貼文 1.94 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/2/15 上午 09:06:18
看了几天,个人理解如下,
我们的dependence 有两种,一种depend file guid ,一种depend protocol guid

 

1, dispatch 中,先从discovery list 中找一支driver ,EFI 中每个driver 都有目录地址,然后把所有的driver 的depex 挖出来放在一个list 数组里面

2, 在discovery list 中check是after /before 的操作还是and /or的操作,after /before 操作主要是针对file name 来说的,

And/or 主要是针对protocol而言的

3, 判断这个driver 是否protocol满足了CoreIsSchedulable (DriverEntry),它是通过locate protocal来判断的,如果满足了,说明这支driver 可以run 了,

然后调用CoreInsertOnScheduledQueueWhileProcessingBeforeAndAfter这个递归函数

找出所有after /before 这个driver 的file ,这个函数采用的是深度遍历,目前在我们code 中没找到after /before ,但是可以用
然后把这些依赖这个driver 的所有file 都放入scheduled driver,也就是可以运行了

另外,我们code 里面还有一个priori的file ,code 里将它处里为,没有dependence 依耐的file 放在scheduled driver list 中去,直接可以动行

作者 : desperateufo(绝;望的UFO)
[ 貼文 3 | 人氣 0 | 評價 10 | 評價/貼文 3.33 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/2/18 下午 03:10:41
"在discovery list 中check是after /before 的操作还是and /or的操作,after /before 操作主要是针对file name 来说的,

And/or 主要是针对protocol而言的"

 学习了, 补充一点, file name是指FFS的GUID
 板主 : 徵求中
 > 組合語言 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 組合語言 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
組合語言
1 H 2220 
2 liaoo 990 
3 青衫 970 
4 牧童哥 940 
5 史努比 920 
6 qq 480 
7 GHOST-JACKY 330 
8 ]CALL-151 310 
9 harrison 300 
10 掌握文武半邊天 280 
組合語言
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625