部落格
小村軟體有限公司針對網站製作、SEO 對策、Google 廣告運用、Windows 開發、既有資產活用與故障調查,分享可在實務中派上用場的觀點。
全站 AI 搜尋
搜尋關鍵字會傳送至 Cloudflare AI Search 以產生結果,請勿輸入個人資料。
-
Win32 執行緒集區 API ── 用 CreateThreadpoolWork 做「不自己建立執行緒」的並行
原生程式碼裡是不是到處都在呼叫 CreateThread?本文依據一手資料解說 Vista 全面重新設計的 Win32 執行緒集區 API:work、timer、wait、io 四種物件、清理群組,以及回呼裡禁止做的事。
-
具名管道實務 ── 從設計到安全,看懂 Windows 行程間通訊的標準做法
以實務角度說明 Windows 行程間通訊的標準做法——具名管道。依據一手資料整理位元組模式與訊息模式的取捨、同時接受多個用戶端的伺服器結構、ACL 與模擬的安全設計,以及 .NET 的具名管道串流。
-
從睡眠恢復就壞掉的應用程式 ── 電源事件的機制,以及耐得住恢復的業務應用程式寫法
打開筆電,業務應用程式的連線卻斷了──原因是設計從未把睡眠算進去。本文依一次資訊整理 WM_POWERBROADCAST 的通知流程、Modern Standby 的行為、斷線/重連設計、睡眠抑制,以及調查指令。
-
DllMain 與載入器鎖定 ── 「DLL 初始化時什麼都別做」真正的理由
為什麼不能在 DllMain 裡呼叫 LoadLibrary 或與其他執行緒同步?本文依據一次資料,從序列化所有 DLL 通知的載入器鎖定機制,一路說明到死結成立的典型情境、延遲初始化等正確設計,以及無回應的調查步驟。
-
「沒有回應」的真面目 ── Windows 如何判定應用程式卡住,以及不卡住的設計
Windows 的「沒有回應」,是視窗 5 秒沒有取出訊息時由作業系統判定、並換成幽靈視窗的機制。本文從判定的內部運作,講到卡住的經典原因、把重工作移出 UI 執行緒的設計,以及無回應的調查程序。
-
虛假喚醒 ── 條件變數為何「沒被通知也會醒來」,以及 Windows 上正確的等待方式
條件變數的 wait 即使沒有通知到來也可能醒來(虛假喚醒)。本文從 Windows 的實作解開規格為何允許它,並用 Win32、C++ 與 C# 的程式碼示範以 while 與述詞撰寫的正確等待方式。
-
剪貼簿與拖放的運作方式 ── 在業務應用程式中正確處理 OLE 資料傳輸
貼上 Excel 表格就散掉、關掉複製來源就貼不上──真正的原因,是剪貼簿把同一份內容以多種格式同時放上。本文從標準格式、延遲轉譯、OLE 拖放,一路談到剪貼簿歷程與雲端同步的原則。
-
WPR/WPA 實務 ── 從系統整體調查「整台 PC 變慢」的效能調查入門
「整台 PC 變慢」「開機很慢」這類工作管理員追不到的效能問題,可以用擷取並閱讀整個 OS 的 ETW 追蹤的 WPR/WPA 來調查。本文從 wpr.exe 的擷取步驟,一路說明到在 WPA 裡怎麼讀 CPU、等待時間與磁碟 I/O。
-
從應用程式看 Windows 關機 ── 正確扛住結束通知、重新啟動與斷電
夜間 Windows Update 重新啟動把量測資料弄壞了──這類事故可以用設計預防。本文依一次資訊說明 WM_QUERYENDSESSION 與 PRESHUTDOWN 等結束通知的接法、幾秒內做完的收尾,以及耐得住斷電的儲存設計。
-
Windows 應用程式無障礙入門 ── 以 UI Automation 因應合理調整的義務化
以 2024 年 4 月施行的日本消除對身心障礙者歧視法修正為背景,本文以螢幕閱讀器讀取 Windows 應用程式的機制 UI Automation 為主軸,從實務角度整理 WinForms/WPF 的命名、鍵盤操作、對比與驗證工具。
-
日文字型與字元的陷阱 ── 業務應用裡的 JIS2004、異體字選擇器、外字
「畫面與報表上葛字的形狀不同」「姓名裡的字顯示不出來」──業務系統的字元問題,只要把字元編碼(資料)層與字型(外觀)層分開,就能整理清楚。本文說明 JIS2004 的字形變更、異體字選擇器與外字的實務對應。
-
從群組原則到 Intune ── 中小企業的裝置管理移轉指南
趁 AD 伺服器汰換之際,是要繼續用群組原則,還是改走 Entra ID+Intune?本文為中小企業整理套用機制的差異、授權、用 Group Policy analytics 盤點、五階段的移轉情境,以及容易踩的坑。
-
Windows 服務的帳戶選定 ── LocalSystem、虛擬帳戶與 gMSA 的取捨
您是否一直讓 Windows 服務以 LocalSystem 執行?本文以判斷表比較 LocalService、NetworkService、虛擬帳戶、網域使用者與 gMSA 的權限與網路身分,說明如何以最小權限維運的選擇方式。
-
OneDrive「隨選檔案」與業務應用 ── 預留位置打破的前提與對策
桌面上的 CSV 讀不了,匯入處理以「找不到檔案」中斷——原因可能是 OneDrive 的 KFM 與隨選檔案。本文說明預留位置的運作機制與屬性判斷,以及應用端和資訊部門各自的對策。
-
Windows 應用程式相容的運作機制 ── 以相容模式、Shim 與 Compatibility Administrator 延續舊應用程式
為什麼勾選相容模式之後舊應用程式就跑得動。本文說明其本體 Shim(API 攔截)的機制、代表性 Shim 的作用、用 Compatibility Administrator 與 sdbinst 在組織內部署的方法、失效的界限,以及延續使用或遷移的判斷。
-
Windows 記憶體的深層(第3回)── 區段物件與寫入時複製:DLL 與檔案對應的真面目
串起區段物件、映像/資料對應、共用快取與寫入時複製,說明 DLL 與共用記憶體如何共用實體分頁。
-
今日的 Windows 殼層整合 ── 右鍵選單、檔案關聯,以及 Windows 11 的變化
說明 Windows 11 的右鍵選單為何會藏進「顯示更多選項」,並整理副檔名→ProgID→verb 這套關聯基礎、傳統殼層擴充功能的注意事項,以及 IExplorerCommand 與 MSIX/sparse package 的新做法。
-
企業內部 Proxy 與 Windows 應用程式 ── 整理 WinINET、WinHTTP、.NET 的 Proxy 解析
瀏覽器連得上,只有業務應用程式過不了企業內部 Proxy。原因多半出在 WinINET、WinHTTP、環境變數、.NET 之中,誰讀哪一套 Proxy 設定的落差。本文整理 PAC 與 WPAD、需要驗證的 Proxy、TLS 檢查,一直到疑難排解步驟。
-
Windows 記憶體的深層(第2回) ── 實體分頁的一生:五份清單與分頁檔的真相
串起 PFN 資料庫、Standby、Modified、記憶體壓縮與分頁檔,說明離開 Working Set 的實體分頁會去哪裡。
-
Windows 封包擷取實務 ── pktmon、netsh trace、Wireshark 怎麼分工
應用程式紀錄只留下「逾時」的通訊故障,看實際流過線路的封包就能往下挖一層。即使伺服器不能安裝 Wireshark,也能用作業系統內建的 pktmon 與 netsh trace 擷取。本文以實務步驟說明擷取與分析的分工。
-
Windows 記憶體的深層(第 1 回) ── 虛擬位址變成實體 RAM 的瞬間:分頁錯誤的來龍去脈
串起 VirtualAlloc、VAD、分頁表、TLB、demand-zero 與硬性錯誤,說明虛擬位址被指派實體 RAM 的那一瞬間。
-
解讀 Windows 錯誤碼 ── Win32、HRESULT、NTSTATUS 三層結構
出現 0x80004005 時,先分解再搜尋。本文整理 Win32 錯誤、HRESULT、NTSTATUS 的三層結構、0x8007xxxx 是包起來的 Win32 錯誤這個最重要模式,以及用 err.exe 與 PowerShell 查詢的方法。
-
資訊處理安全確保支援士(情報処理安全確保支援士) 令和6年度春季 下午問1 解說 ── JWT 的 alg=none 與 API 授權、WAF 的暫定對策
以資訊處理安全確保支援士考試 令和6年度(2024年度)春季下午問1 為題材,解說 JWT 的 alg=none、API 授權、Mass Assignment、4 位數認證碼的暴力破解,以及用 WAF 實施的暫定對策。
-
Windows 的「記憶體使用量」代表什麼 ── 正確解讀 Working Set、Private Bytes、Commit 與分頁檔
工作管理員的記憶體、Working Set、Private Bytes、Commit 並非同一個數值。本文解說 Windows 虛擬記憶體與實體記憶體的關係、分頁檔的角色,以及在記憶體不足或洩漏調查時應該檢視的指標。
-
多執行緒實務最佳實踐 Java 篇 ── 虛擬執行緒時代的定石
Java 的多執行緒,定石是不直接建立執行緒,而是交給 ExecutorService 與虛擬執行緒。本文整理 synchronized 與 ReentrantLock 的使用區分、以中斷實現的協調式停止、ConcurrentHashMap 的原子操作,一直到 Swing 的 EDT 等實務原則。
-
多執行緒實務最佳實踐 C 語言篇 ── 以 Win32 API 的方式安全撰寫
C 語言 × Win32 的多執行緒有其定石:以 _beginthreadex 建立執行緒、SRW 鎖與條件變數、Interlocked、以停止事件 + WaitForMultipleObjects 設計停止流程。本文一併整理 TerminateThread 的危險性與 DllMain 的限制。
-
多執行緒實務最佳實踐 C++ 篇 ── 以 RAII 與 jthread 從結構上消除事故
C++ 的多執行緒是資料競爭會變成未定義行為的世界。本文整理 std::thread 解構函式的陷阱、以 jthread 與 stop_token 設計停止機制、scoped_lock 的死結迴避、atomic 的正確定位,以及與 Win32 同步 API 的使用區分。
-
多執行緒的實務最佳實踐 .NET篇 ── 在增加執行緒之前先決定的事
針對 .NET/C# 整理能防止「建立執行緒後偶爾當機、卡死」的設計定石。內容涵蓋不自行建立執行緒而改用 Task、減少共享可變狀態、鎖的紀律、以 CancellationToken 設計停止機制,以及 UI 執行緒的處理方式。
-
資訊處理安全確保支援士(情報処理安全確保支援士) 2023年秋季(令和5年) 下午問2解說 ── 從來賓用Wi-Fi被帶出的檔案
以資訊處理安全確保支援士考試 2023年秋季(令和5年) 下午問2為題材,解說堵住USB隨身碟的公司如何被人從來賓用Wi-Fi帶出檔案的路徑。整理伺服器憑證驗證與HSTS、MAC位址過濾的侷限性,以及EAP-TLS和TPM帶來的因應對策。
-
磁碟區陰影複製服務(VSS)的機制與實務 ── 為什麼能備份使用中的檔案
明明使用中的檔案會因共用違規而無法複製,備份軟體卻為什麼辦得到?本文解說磁碟區陰影複製服務(VSS)中要求者、寫入器、提供者的角色分工,寫入時複製的機制,以及 vssadmin 的實務操作與差異區的陷阱。