雜亂無章
摘要: 為什么要用IO_REMOVE_LOCK?
WDM 驅動程序在處理設備刪除 IRP 并釋放驅動程序分配的內存后可能接收到附加的 IRP。在處理附加的 IRP 時試圖引用已經釋放的內存會導致系統崩潰。驅動程序能夠接收已刪除設備的 IRP,這有兩個原因:
在設備被刪除后,另一個組件可以發送 I/O。
在設備刪除請求之前發送的 I/O 請求可能在目標驅動程序處理設備刪除請求之后到達。
閱讀全文
摘要: 聲明:本文所描述的所有資料和源碼均搜集自互聯網,版權歸原始作者所有,所以在引用資料時我盡量注明原始作者和出處;本文所搜集資料也僅供同學們學習之用,由于用作其他用途引起的責任糾紛,本人不負任何責任。(本資料由代碼瘋子整理,歡迎訪問http://www.programlife.net/)
閱讀全文
摘要: 什么是第一輪異常?
(1)當一個程序被調試的時候,如果有異常發生調試器會得到通知,這個時候,被調試的應用程序將會被掛起并且調試器決定如何來處理這個異常。當一個異常第一次經過這種機制就是所謂的“第一輪異常”。根據調試器的設置,調試器可能會忽略這個異常并讓程序繼續執行,或者保持被調試程序的掛起狀態并進入調試模式。
如果應用程序無法處理這個異常,調試器會再次得到通知,這個就是所謂的“Second Chance Exception”(第二輪異常)了。同樣調試器會再次掛起被調試程序并決定如何來處理這個異常。通常情況下,當第二輪異常發生的時候,調試器都被配置為進入調試模式,來允許用戶進行調試。
閱讀全文
摘要: (本文最初發表于程序人生 >> Copy On Write(寫時復制) 作者:代碼瘋子)
Copy On Write(寫時復制)是在編程中比較常見的一個技術,面試中也會偶爾出現(好像Java中就經常有字符串寫時復制的筆試題),今天在看《More Effective C++》的引用計數時就講到了Copy On Write——寫時復制。下面簡單介紹下Copy On Write(寫時復制),我們假設STL中的string支持寫時復制(只是假設,具體未經考證,這里以Mircosoft Visual Studio 6.0為例,如果有興趣,可以自己翻閱源碼)
Copy On Write(寫時復制)的原理是什么?
有一定經驗的程序員應該都知道Copy On Write(寫時復制)使用了
閱讀全文
摘要: (本文最初發表于程序人生 >> Member Function Templates(成員函數模板) 作者:代碼瘋子)
Member Function Templates翻譯成中文就是成員函數模板,這個東西我個人見得少,最初是在STL的auto_ptr源代碼里面看到的,當時候也不是很明白;這幾天又翻了翻《More Effective C++》,正好看到上面介紹的比較詳細,就找了點資料總結一下。
為了更好的說明問題,我們自己定義一個Smart Pointer(智能指針,這里只是示例,所以定義是不完整和不完善的),假設現在我們手上有這樣三個類:MusicProduct、CD、MP3,類之間的關系圖如下:
閱讀全文
友情鏈接: