Windows驅動分發函數中IRP處理的一個細節

        最近編寫一個網口轉虛擬串口驅動,在處理Read和Write分發函數過程的時候,把數據通過網絡成功發出去了。但是應用程序或者串口設置工具的讀寫一直沒有成功返回,通過串口監控工具AccessPort137進行監控到Read和Write的IRP都是沒有任何結果返回。其它的IRP都是有返回SUCCESS。

        通過不斷調試和查看代碼,最後才發現遺漏了最後一步對IRP的結束處理,有時候真是小細節容易遺漏啊。在最後加入以下代碼即解決該問題:

         Irp->IoStatus.Status = ntStatus;
        Irp->IoStatus.Information = totalSent;
        IoCompleteRequest( Irp, IO_NO_INCREMENT );


       調試很多時候就是這樣,問題或者BUG多數時候隱藏在細微之處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章