2013-09-26 67 views
0

我製作了設備驅動程序。但是我的系統在刪除設備對象的那一刻崩潰了。我認爲符號鏈接已被刪除,並且在嘗試刪除設備後崩潰,因爲我看不到Global中的符號鏈接。 現在如何刪除此設備。當我嘗試從Winobj下打開列出的Mydriver時,它也會給我一個錯誤彈出窗口(系統找不到指定的Device \ Mydriver文件)。卸載設備

我試着再次啓動驅動程序的服務。打開服務時,我確實收到了回覆。但它現在不會開始。給出的錯誤值無法找到指定的文件。我工作的很好,我的意思是在這次事故發生前啓動司機。

我是一個初學者與司機,這樣做的學習,請指導。

回答

1

我採取了這從:編程微軟Windows驅動程序第二版woney 我希望這可以幫助。

即插即用環境中設備的可拆卸性是正文中提到的早期卸載問題的最終來源 。您有責任避免將IRP發送給可能不再存在於內存中的驅動程序 ,並防止PnP管理器卸載仍在處理您發送給該驅動程序的IRP的驅動程序。 文本中顯示瞭如何履行該職責的一個方面:對IoGetDeviceObjectPointer返回的文件對象 進行額外引用,以便調用IoCallDriver。在大多數驅動程序中,只有當您發送異步IRP時,您可能需要額外的參考文件 。在這種情況下,通常 解除引用文件對象的代碼可能位於驅動程序的某個其他部分中,該代碼與調用IoCallDriver的 異步運行 - 例如,在您必須爲異步IRP安裝的完成例程中。如果您發送 同步IRP,則更有可能以這樣的方式編碼您的驅動程序,以至於在IRP完成之前您不會取消對文件 對象的引用。

0

使用交互式啓動選項,不要加載麻煩的驅動程序。然後,您可以通過向驅動程序添加診斷工具或其他調試技術來確定潛在問題。

+0

你能詳細解釋一下嗎?通過調試而不實際加載驅動程序意味着什麼? 正如我告訴你,我只是一個起動器。 –

相關問題