2016-02-12 173 views
0

假設設備驅動程序已被寫入,編譯並由OS加載。程序如何查找和調用設備驅動程序?

要調用它的子程序,我假設必須知道設備驅動程序提供了哪些子程序(我知道它的接口/ API)。所以,我也假設我們也知道這個接口的東西(糾正我,如果我錯了)。

現在的問題是我們應該如何找到這些子程序的入口點來調用它們;或者更好地說出調用設備驅動程序的子程序的確切過程。

我猜測它應該像加載一個動態庫,其中一個鏈接器最終將子例程的地址放在調用程序的地址空間中。

注意

我完全新的這個領域,所以任何信息/鏈接/插圖是真正的讚賞。

回答

0

這是平臺特定的細節。

對於真實的設備驅動程序,即驅動程序是物理設備的軟件接口,驅動程序通常符合某些標準接口,當需要在屏幕上顯示某些內容時,O/S會調用該接口,將扇區寫入磁盤等。

在Windows上,如果您的驅動程序存在以提供只能在內核模式下執行的軟件服務,您可以在驅動程序中定義自己的呼叫接口,然後通過DeviceIOControl函數從用戶模式訪問。

+0

讓我們來談談非標準設備的非標準設備驅動程序,比如機器人手臂或類似的東西。在這種情況下,您可能有幾個程序需要通過其驅動程序與物理設備進行通信。他們如何找到並調用設備驅動程序的子例程? –

+0

通常,驅動程序生產者提供關於如何調用驅動程序的文檔以及有時代碼樣本。通過DeviceIOControl。很明顯,與非標準設備交互的標準是不存在的。 –