浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 其它綜合

ISA數(shù)據(jù)采集卡的WDM驅(qū)動程序?qū)崿F(xiàn)

發(fā)布時間:2007/8/29 0:00:00 訪問次數(shù):575

    摘要:ISA設(shè)計(jì)在WINOWS新的驅(qū)動程序模型WDM(WINDOWS DRIVER MODEL)中沒有獲得很好的支持,使用WDM實(shí)現(xiàn)需要一些特殊處理。主要討論老式ISA設(shè)備的WDM驅(qū)動程序的設(shè)計(jì)與實(shí)現(xiàn)。

    關(guān)鍵詞:Windows驅(qū)動程序模型(WDM) 工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA) 數(shù)據(jù)采集

WDM作為微軟為WINDOWS 2000及以后版本準(zhǔn)備的新驅(qū)動模型,它可以在WINDOWS 98及以后的操作系統(tǒng)上共享。這種具有跨平臺性的設(shè)備驅(qū)動模型可以大大簡化驅(qū)動程序的開發(fā)工作。WDM支持PNP(即插即用),為用戶的PNP設(shè)備驅(qū)動完成了大量的底層工作。這也使得WDM對各種老設(shè)備,特別是那些不具有即插即用特性硬件的支持明顯的不足。在科研和工控中,最常用的數(shù)據(jù)采集卡通常都是基于PC總線的不能為PNP提供硬件支持的ISA設(shè)備。為這類硬件編寫非WDM驅(qū)動程序只能局部支持PNP特性,而且需要做大量額外的工作如:必須檢測硬件,為硬件創(chuàng)建設(shè)備對象(用于代表硬件),配置并初始化硬件使其正常工作,這些工作非常復(fù)雜。利用WDM可以避免這些麻煩。

1 WDM的結(jié)構(gòu)

WDM實(shí)際上是一個編寫驅(qū)動程序的規(guī)范。其驅(qū)動程序結(jié)構(gòu)的特點(diǎn)和WINDOWS程序設(shè)計(jì)的消息驅(qū)動機(jī)制很相像,采用IRP驅(qū)動機(jī)制。WINDOWS 98和WINDOWS 2000處理IRP的方式一樣,本質(zhì)卻完全不同。

WINDOWS 2000主要由I/O管理器來管理驅(qū)動程序的行為,管理的方法就是給驅(qū)動程序發(fā)送各種IRP,同時I/O管理器還負(fù)責(zé)傳遞這個設(shè)備的用戶請求給驅(qū)動程序。驅(qū)動程序不能直接操作硬件設(shè)備,而是通過一個叫做HAL(硬件設(shè)備抽象層)的層來訪問底層設(shè)備。HAL完成對各種硬件差異的屏蔽。Windows 98內(nèi)核與Windows 2000內(nèi)核有很大的差別。Windows 98操作系統(tǒng)的內(nèi)核稱為虛擬機(jī)管理器(VMM)。虛擬設(shè)備驅(qū)動程序(VxD)則使設(shè)備虛擬化,從而與虛擬機(jī)管理器形成虛擬機(jī)。Windows 9x的內(nèi)核不支持IRP,它通過模擬的方法支持WDM和IRP。Windows 98包含了NTKERN.VXD(VMM32.VXD)系統(tǒng)模塊,該模塊含有大量Windows NT內(nèi)核支持函數(shù)的Windows實(shí)現(xiàn)。NTKERN.VXD使用與Windows 2000相同的方式創(chuàng)建IRP并發(fā)送IRP到WDM驅(qū)動程序。也就是說,Windows 98是使用VxD技術(shù)實(shí)現(xiàn)WDM的。盡管Windows 98和Windows 2000的內(nèi)核完全不同,但是WDM的結(jié)構(gòu)在Windows 98和2000下可以認(rèn)為是完全相同的。

WDM驅(qū)動程序面對的主要內(nèi)容是一系列內(nèi)核驅(qū)動對象。這些對象包括驅(qū)動對象、設(shè)備對象,還有一系列的資源抽象對象如中斷對象、適配器對象(處理DMA操作)、內(nèi)核模式派發(fā)器對象、控制器對象、推遲過程對象、定時器對象、設(shè)備隊(duì)列對象、回調(diào)對象等。其中驅(qū)動對象由I/O管理器負(fù)責(zé)創(chuàng)建和管理。設(shè)備對象代表用戶需要操作的物理或者是邏輯設(shè)備。設(shè)備對象負(fù)責(zé)管理自己設(shè)備所需要的各種資源對象。這些資源對象有的代表真正的物理設(shè)備如中斷對象、適配器對象、定時器對象;有的對象則是邏輯對象,它們是操作系統(tǒng)實(shí)現(xiàn)自己的特性所必需的,如推遲過程調(diào)用就是與操作系統(tǒng)的搶占式多任務(wù)的實(shí)現(xiàn)有關(guān)。WDM驅(qū)動程序利用IRP和這些對象完成硬件設(shè)備的抽象化,并對應(yīng)用程序提供統(tǒng)一操作接口。這就是所謂的WDM規(guī)范。

WDM驅(qū)動程序的結(jié)構(gòu)很簡單。它的主體是一個入口函數(shù)DriverEntry。DriverEntry的第一個參數(shù)是指針,指向一個剛被初始化的驅(qū)動程序?qū)ο,該對象代表?qū)動程序。WDM驅(qū)動程序的DriverEntry例程完成這個對象的初始化并返回。WDM驅(qū)動程序的DriverEntry例程的主要工作是把各種函數(shù)指針填入驅(qū)動程序?qū)ο。這些指針對操作系統(tǒng)指明了驅(qū)動程序容器中各種子例程的位置。它包括下面這些指針成員:

·DriverUnload指向驅(qū)動程序的清除例程。I/O管理器會在卸載驅(qū)動程序前調(diào)用該例程。通常WDM驅(qū)動程序的DriverEntry例程一般不分配任何資源,所以DriverUnload例程也沒有什么清除工作要做。

    摘要:ISA設(shè)計(jì)在WINOWS新的驅(qū)動程序模型WDM(WINDOWS DRIVER MODEL)中沒有獲得很好的支持,使用WDM實(shí)現(xiàn)需要一些特殊處理。主要討論老式ISA設(shè)備的WDM驅(qū)動程序的設(shè)計(jì)與實(shí)現(xiàn)。

    關(guān)鍵詞:Windows驅(qū)動程序模型(WDM) 工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA) 數(shù)據(jù)采集

WDM作為微軟為WINDOWS 2000及以后版本準(zhǔn)備的新驅(qū)動模型,它可以在WINDOWS 98及以后的操作系統(tǒng)上共享。這種具有跨平臺性的設(shè)備驅(qū)動模型可以大大簡化驅(qū)動程序的開發(fā)工作。WDM支持PNP(即插即用),為用戶的PNP設(shè)備驅(qū)動完成了大量的底層工作。這也使得WDM對各種老設(shè)備,特別是那些不具有即插即用特性硬件的支持明顯的不足。在科研和工控中,最常用的數(shù)據(jù)采集卡通常都是基于PC總線的不能為PNP提供硬件支持的ISA設(shè)備。為這類硬件編寫非WDM驅(qū)動程序只能局部支持PNP特性,而且需要做大量額外的工作如:必須檢測硬件,為硬件創(chuàng)建設(shè)備對象(用于代表硬件),配置并初始化硬件使其正常工作,這些工作非常復(fù)雜。利用WDM可以避免這些麻煩。

1 WDM的結(jié)構(gòu)

WDM實(shí)際上是一個編寫驅(qū)動程序的規(guī)范。其驅(qū)動程序結(jié)構(gòu)的特點(diǎn)和WINDOWS程序設(shè)計(jì)的消息驅(qū)動機(jī)制很相像,采用IRP驅(qū)動機(jī)制。WINDOWS 98和WINDOWS 2000處理IRP的方式一樣,本質(zhì)卻完全不同。

WINDOWS 2000主要由I/O管理器來管理驅(qū)動程序的行為,管理的方法就是給驅(qū)動程序發(fā)送各種IRP,同時I/O管理器還負(fù)責(zé)傳遞這個設(shè)備的用戶請求給驅(qū)動程序。驅(qū)動程序不能直接操作硬件設(shè)備,而是通過一個叫做HAL(硬件設(shè)備抽象層)的層來訪問底層設(shè)備。HAL完成對各種硬件差異的屏蔽。Windows 98內(nèi)核與Windows 2000內(nèi)核有很大的差別。Windows 98操作系統(tǒng)的內(nèi)核稱為虛擬機(jī)管理器(VMM)。虛擬設(shè)備驅(qū)動程序(VxD)則使設(shè)備虛擬化,從而與虛擬機(jī)管理器形成虛擬機(jī)。Windows 9x的內(nèi)核不支持IRP,它通過模擬的方法支持WDM和IRP。Windows 98包含了NTKERN.VXD(VMM32.VXD)系統(tǒng)模塊,該模塊含有大量Windows NT內(nèi)核支持函數(shù)的Windows實(shí)現(xiàn)。NTKERN.VXD使用與Windows 2000相同的方式創(chuàng)建IRP并發(fā)送IRP到WDM驅(qū)動程序。也就是說,Windows 98是使用VxD技術(shù)實(shí)現(xiàn)WDM的。盡管Windows 98和Windows 2000的內(nèi)核完全不同,但是WDM的結(jié)構(gòu)在Windows 98和2000下可以認(rèn)為是完全相同的。

WDM驅(qū)動程序面對的主要內(nèi)容是一系列內(nèi)核驅(qū)動對象。這些對象包括驅(qū)動對象、設(shè)備對象,還有一系列的資源抽象對象如中斷對象、適配器對象(處理DMA操作)、內(nèi)核模式派發(fā)器對象、控制器對象、推遲過程對象、定時器對象、設(shè)備隊(duì)列對象、回調(diào)對象等。其中驅(qū)動對象由I/O管理器負(fù)責(zé)創(chuàng)建和管理。設(shè)備對象代表用戶需要操作的物理或者是邏輯設(shè)備。設(shè)備對象負(fù)責(zé)管理自己設(shè)備所需要的各種資源對象。這些資源對象有的代表真正的物理設(shè)備如中斷對象、適配器對象、定時器對象;有的對象則是邏輯對象,它們是操作系統(tǒng)實(shí)現(xiàn)自己的特性所必需的,如推遲過程調(diào)用就是與操作系統(tǒng)的搶占式多任務(wù)的實(shí)現(xiàn)有關(guān)。WDM驅(qū)動程序利用IRP和這些對象完成硬件設(shè)備的抽象化,并對應(yīng)用程序提供統(tǒng)一操作接口。這就是所謂的WDM規(guī)范。

WDM驅(qū)動程序的結(jié)構(gòu)很簡單。它的主體是一個入口函數(shù)DriverEntry。DriverEntry的第一個參數(shù)是指針,指向一個剛被初始化的驅(qū)動程序?qū)ο螅搶ο蟠眚?qū)動程序。WDM驅(qū)動程序的DriverEntry例程完成這個對象的初始化并返回。WDM驅(qū)動程序的DriverEntry例程的主要工作是把各種函數(shù)指針填入驅(qū)動程序?qū)ο。這些指針對操作系統(tǒng)指明了驅(qū)動程序容器中各種子例程的位置。它包括下面這些指針成員:

·DriverUnload指向驅(qū)動程序的清除例程。I/O管理器會在卸載驅(qū)動程序前調(diào)用該例程。通常WDM驅(qū)動程序的DriverEntry例程一般不分配任何資源,所以DriverUnload例程也沒有什么清除工作要做。

-->
相關(guān)IC型號

熱門點(diǎn)擊

 

推薦技術(shù)資料

羅盤誤差及補(bǔ)償
    造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!