分层驱动模型中,驱动程序分为mdd和pdd两层。
一般来讲,很多mdd微软已帮我们做好,比如串口的mdd。
毫无疑问,mdd肯定会调用pdd中的函数,即所谓ddsi。
对于串口,奇怪的是没有对ddsi的函数名作限制。
那么是怎样实现mdd调用pdd的呢,
原来,pdd层必须实现的一个函数是GetSerialObject(),
它返回一个HWOBJ指针,HWOBJ结构中包含一个HW_VTBL,
HW_VTBL 其实是一个函数指针数组,包含了Pdd应有的函数。
一般在串口的mdd的COM_Init中调用GetSerialObject,来获得pdd函数的指针。