Note: DOS Driver Device Header

DosDriver

typedef struct _DOSDRV_HEADER_
{
  uint32_t  nextdrv;  //DOS 用來指示是否有下一個Driver的Chain pointer
  uint16_t  attr;  // 驅動程式的屬性 
  uint16_t  pstrproc;  // Strategy Procedure的起始位址(與C函式指標類同) 
  uint16_t  pintproc;  // Interrupt Procedure的起始位址 
  uint8_t   drvname[8];  // 驅動程式名稱,最大8個字元不足的, 用空白補上
} DOSDRV_HEADER;

attribute 驅動程式屬性說明

  • Bit00, 標準輸入裝置(Standard Input Device, stdin)
  • Bit01, 標準輸出裝置(Standard Output Device, stdout)
  • Bit02, NULL 裝置
  • Bit03, 時鐘裝置(Clock/Tick Device)
  • Bit04, 特殊裝置(Special Device)
  • Bit05-10,Resever must be ‘0’
  • Bit11, 支援Opne/Close/Removable的媒體裝置(DOS 3 and later support)
  • Bit12, Resever must be ‘0’
  • Bit13, Non-IBM format
  • Bit14, IOCTL 函式支援
  • Bit15, 1 = 字元裝置(Charactor Device), 0 = 區塊裝置(Block Device)

 

 

一個DOS的驅動程式的基本組成應該會有五個部分, 如同上圖所示

Ref: http://www.drdos.com/dosdoc/sysprog/chap6.htm

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: