2011年12月27日 星期二

Using C RTL in Windows Driver


某一天在寫驅動程式時, 需要取字串, 比對字串, 及 parse 16進位字串, 沒想太多, 就用了 C 的 run-time library 中的 strlen(), strnicmp() 及 sscanf_s(), 也編出了 32/64-bit 的 WinXP 及 Win7 版本, 接著自己在 Win7 上測試都也都沒問題.

2011年12月23日 星期五

Folder Sharing in Windows 7

偶爾想要快速分享一下目錄, 卻又因為不常用而搞了半天, 一下又是權限不夠, 一下又是非要密碼不可. 仔細玩了一下, 趕緊來做個筆記.

2011年12月21日 星期三

Removing Driver From DriverStore

如果驅動程式安裝/反安裝沒做好, 有可能在多次安裝新舊版驅動程式後, 發生一些詭異的問題, 譬如已經移除了驅動程式, 卻又在下次開機自動裝了起來. 這是因為 Windows 在驅動程式安裝時, 會複製一份到系統中的 DriverStore (如 C:\Windows\System32\DriverStore\FileRepository), 如果驅動程式已經被移除了, 卻還在 DriverStore 中看到, 那我們可以利用 Windows 7 內建的工具 pnputil, 將安裝包移除.

2011年12月4日 星期日

Year 0, Month 1

小汪, 你的第一個月, 因為你媽媽在阿媽家坐月子, 所以你也一樣. 還記得在阿媽家的第一天晚上, 我們就真正嘗到半夜睡不好覺的滋味了, 不過這是甜蜜的負擔.

2011年11月4日 星期五

The Birth

小汪心跳及子宮收縮
小汪, 今天早上六點多, 你媽媽說她起床上廁所後, 回到床上深情款款地看著還在睡覺的我, 突然聽到 "啵" 的一聲, 感覺下體有一股熱流湧出, 原來是破水了! 妳媽媽把我叫起來, 我一時還以為她在開我玩笑, 接著意識到不是假的後, 心裡有點小興奮了!

2011年11月1日 星期二

2011年10月20日 星期四

Pregnancy Week 31, 33, 35 and 37

小汪, 隨著你漸漸長大, 骨頭開始鈣化, 透過超音波能看到的東西愈來愈少了, 這幾次去看你, 都只能看看羊水量正不正常, 頭圍大小, 肚子大小, 還有內臟等.

2011年9月13日 星期二

2011年9月12日 星期一

從伺服器傳回一個轉介

某天三更半夜還在公司加班時, 在測試機上執行我的 debug 版程式, 竟然跳出一個對話框, 顯示了 "從伺服器傳回一個轉介", 當場傻眼!

2011年9月10日 星期六

DebugView Log Boot Fails

在 Vista 以後的 Windows 系統中, 預設是不輸出所有種類的裝置驅動程式, 以 DbgPrint(Ex) 丟出的訊息的, 這使得我們用 DebugView 的 Log Boot 後, 依然無法看到訊息, 解決辦法就是設定 Debug Print Filter.

2011年9月6日 星期二

Zone Identifier

我們用檔案總管從網芳直接解壓 zip 檔到本機磁碟中, 接著執行剛解壓到本機磁碟的檔案, 會出現 Open File - Security Warning 這個對話框, 咦? 為什麼 Windows 知道這檔案可能有安全顧慮呢?

2011年8月25日 星期四

Pregnancy Week 25 and 29

小汪~~每次去看你, 你都很害羞喔! 不是手腳遮住臉, 就是整個頭埋著不給看, 這樣我們只好多看點鳥鳥囉!

2011年8月24日 星期三

Free and Checked Build

WDK 提供兩種編譯環境, 編出 driver:

Free build (Retail build):
  • DBG 被定義為 0, 或是無定義.

2011年8月20日 星期六

Good Developers

要以什麼來評價一個好的開發人員?
  1. Lines of code per day
  2. Lines of correct code per day

2011年8月14日 星期日

2011年8月13日 星期六

2011年8月10日 星期三

VML and DOCTYPE

最近遇到在網頁中使用 VML(Vector Markup Language) 看不到效果的問題, 結果發現移除了 DOCTYPE 就解決了, 但是網頁中其它部份卻因為沒有 DOCTYPE 而亂了, 因此看來還是需要將 DOCTYPE 加上, 往 "加了 DOCTYPE, VML 就不正常" 的方向找問題.

A Good Grid Control for MFC

最近為了寫一個工具程式, 要用到 grid, 找了一下網路上現成的元件, 發現 MFC Grid Control 還不錯.

2011年8月8日 星期一

Controlling Your PS/2 Pointing Device Using I/O Ports

PS/2 鍵盤裝置與 PS/2 指標裝置連接 EC(包含 8042 KBC). 反過來看, 在作業系統中, 我們要與 PS/2 指標裝置溝通, 就必須透過 EC, 而這溝通的管道就是系統的 I/O port 0x60 及 0x64.

2011年7月19日 星期二

Remove Lock

假設應用程式正在對我們的 driver 進行 I/O 要求, 有一個要求已經被分發處理, 還有許多要求正在佇列中等著, 此時 driver 也收到了 PnP manager 傳來的 surprise remove 或是 remove device 的要求, 準備移除 device object. 針對這樣的情況, 我們一定會想到要將佇列中的要求清除, 並且暫停接受任合要求(WdfIoQueuePurge), 我們也一定會想到要盡快完成那個正在處理中的要求, 但怎麼做呢?

2011年7月16日 星期六

IRQL and Page Fault

寫 Windows driver 常會看到 IRQL(IRQ Level), 它其實是對應於 CPU 提供的硬體中斷, 不同架構的 CPU 提供不等的硬體中斷數目, IRQL 愈高, 優先權就愈高, 可插斷正在低優先權中執行的工作.

2011年7月15日 星期五

PS/2 Mouse Filter Driver and Hook Procedure

PS/2 mouse driver 的 stack 如下:

    Mouclass (mouse class filter driver)
    (Optional mouse filter driver)
    I8042prt (function driver)
    ACPI (bus driver)
    -----------
    Device

2011年7月9日 星期六

Applying DTM Filters

在作 Driver Test Manager(DTM) 測試中, 我們可能會在 Job Monitor 中看到測試失敗(紅X)的工作項目, 通常我們就是重跑該測試項目, 再次確認. 但如果測試還是失敗呢? 那也別急著改程式, 說不定這是 Microsoft 自家的問題.

2011年7月2日 星期六

Accessing Higher Privileged Application

在 Vista 或是 Windows 7 中, 如果有開啟 UAC, 而經 UAC 尋問後執行的程式, 會執行於最高的權級, 跟以一般使用者權級執行的程式有所區隔, 以防止在低權級執行的惡意程式控制高權級程式, 如 SendMessage 等, 這稱為 User Interface Privileged Isolation(UIPI).

2011年7月1日 星期五

MinorFunction Changed After IoCompleteRequest()

最近在寫 driver 時, 遇到一個未曾注意過的問題.

Paged Section

將 code/data 設定為 pageable, 可縮減 driver image 在 kernel memory 中的 size. 當 pageable code/data 沒用到時, 就可以將他們晾在一邊, 而有需要用到時, 才將該 paged section 取出來使用.

2011年6月28日 星期二

Pregnancy Week 21


脊椎

哈囉, 小汪! 為什麼這樣叫你呢? 因為你的長"花生"的事實已經被確定了.

2011年6月2日 星期四

Pregnancy Week 17


頭頭到屁屁是 10.82 公分

今天是例行產檢, 上次沒看出你的性別, 這次醫生試著找"花生", 不過還是找不到, 因此她判斷妳是個小女孩喔!

2011年5月12日 星期四

Pregnancy Week 14


頭頭到屁屁是 7.9 公分

今天是每兩週一次的產檢, 我們期待知道你的性別喔!

2011年4月28日 星期四

Pregnancy Week 12


躺得四平八穩

這兩天你媽媽感覺下腹在痛, 開始擔心你了! 我們決定一大早就去看醫生.

2011年4月7日 星期四

Pregnancy Week 9


心跳!

今天看診的人超多, 我們掛到第 37 號, 即使之後先去吃了晚餐, 還是從八點等到九點半, 才看到你. 哇~~ 這次你比我們預期的還要大多了!

2011年3月26日 星期六

Pregnancy Week 7 (Additional)


在羊水中的小胚胎

這幾天你媽媽一直不放心你, 於是自己安排了一次產檢, 在士林的一家診所, 是你 Jenny 阿姨介紹的.

2011年3月22日 星期二

Pregnancy Week 7


你藏在角落

這是第二次看你, 我們期待聽到你的心跳聲! 在照超音波時, 醫生試著找你, 但是找不到

2011年3月10日 星期四

Pregnancy Week 5

第一張超音波照片

在網上查了內湖的婦產科, 及參考了朋友的經驗後, 今天安排了吳婦產科的產檢

2011年3月5日 星期六

Got you!


驗孕結果

過了一個星期, 美寶的月經還沒來, 我們在想應該是懷孕了, 於是在出遊回家的路上, 到藥房買了驗孕棒, 結果是兩條線喔!