Blog
Practical articles from KomuraSoft LLC about website development, SEO, Google Ads, Windows development, legacy asset reuse, and bug investigation.
-
Building a PowerShell Analysis Tool in PowerShell — Read Scripts with the AST, Not Regular Expressions
Display a real PowerShell AST and see what object each line of code becomes. Walk from ScriptBlockAst to CommandAst and find where Write-Host is called, excl...
-
How Does a Windows Shortcut Find a File You Moved? — A File's Location and Its Identity Are Two Different Things
Why does a shortcut still open a file you moved? Windows can find the target from tracking identifiers and file characteristics, not just the stored path, wi...
-
Is Safely Removing a USB Drive Still Necessary? — Thinking It Through from Quick Removal and Write Caching
Can you pull a USB drive once the copy finishes? Write caching, Quick removal versus Better performance, how to check the setting, and what to do when a devi...
-
Why Does Audio Drop Out When CPU Usage Is Low? — Thinking in Terms of Buffers and Deadlines
Audio drops out while CPU usage stays low. This explains why from the playback buffer and the refill deadline, why a bigger buffer adds latency, and how to i...
-
Why Is RDP Sluggish on a Fast Connection? — Separating Input, Rendering, and the Network
The speed test is fast, yet Remote Desktop input and scrolling lag. This explains why, from round trips and graphics transfer to symptom comparisons and coun...
-
The Network Works but Windows Says "No internet" — Isolating NCSI, DNS, Proxy, and VPN on Windows
Why Windows says "No internet" while the network works, starting from the NCSI verdict. Isolate DNS, proxy, VPN, and captive portals with read-only checks an...
-
Why Does ‘1 Second Remaining’ Take So Long? — How Progress Bars and Time Estimates Work
Learn why a task stays at one second remaining, stalls at 99%, or keeps preparing. Separate progress units, speed estimates, final steps, and UI updates, the...
-
Why a Windows File Share Works Sometimes and Fails at Other Times — Troubleshooting Kerberos, NTLM, and Credentials
Diagnose intermittent Windows file-share access using symptoms and logs. Check names versus IP addresses, app-only failures, blank passwords, error 1219, res...
-
Disk at 100%: What Do You Actually Have to Stop? — Telling SysMain, Windows Search, and Defender Apart
Isolate Windows 100% disk usage by throughput, response time, and files. Pause SysMain safely, narrow Windows Search, and analyze Defender without disabling it.
-
Same 1 GB, Yet a Photo Folder Copies Slower Than a Single Video — Why?
Why same-size data copies at different speeds on Windows: file count, SSD and NAS latency, ZIP bundling, a create-transfer-extract comparison, and robocopy.
-
What Is Windows' Hardware-Accelerated GPU Scheduling? — Does Turning It On Make Your PC Faster?
An illustrated, non-technical guide to Windows' hardware-accelerated GPU scheduling (HAGS): how it works, when to turn it on or off, why the setting may be m...
-
The Order of Name Resolution on Windows — hosts, the DNS Cache, LLMNR/mDNS, and DoH
Whether hosts, the DNS cache, the DNS server, or LLMNR/mDNS answered decides why some PCs fail. Learn the Windows name resolution order, what DoH changes, an...
-
Does Turning Off Memory Integrity (HVCI) Make Windows Faster? — What It Means, How to Do It, and How to Decide
Does turning off Memory integrity (HVCI) really speed up a Windows PC? When it can help, when it cannot, how to switch it off and back, and how to decide.
-
What Fast Startup Really Does — Why a Windows 'Shutdown' Is Not the Same as a Restart
A Windows shutdown is a hybrid shutdown by default, saving the kernel and drivers to hiberfil.sys. Why only a restart resets them, and when to turn Fast Star...
-
Time Travel Debugging — Recording and Rewinding the Bugs That Never Reproduce in Long-Running Apps
A once-a-month bug leaves only its result in a crash dump. Record and rewind execution with WinDbg Time Travel Debugging (TTD): TTD.exe, ring buffers, and TT...
-
Why Arguments Break — The Rules of Windows Command-Line Arguments
Windows passes CreateProcess a single string that the receiver splits. Covers the CommandLineToArgvW, CRT, and .NET rules, ArgumentList, and building it in C++.
-
Dark Mode and Contrast Themes in Windows Apps — DWM Dark Title Bars, System Theme Tracking in WinForms/WPF, and Drawing under High Contrast
How to make WinForms/WPF apps follow the dark mode and contrast themes of Windows 11. Covers DWM dark title bars, SetColorMode and ThemeMode in .NET 9/10, de...
-
End of Servicing for Windows Printer Drivers — How Business Apps Should Prepare Their Report and Label Printing
Microsoft is phasing out v3/v4 printer drivers. What Windows protected print mode removes, and how to inventory and prepare report and label printing in busi...
-
WinRT Is COM — IInspectable, .winmd, Language Projections, and Why WinUI Still Rests on a Binary Contract
WinRT is not a managed runtime but an ABI built on COM plus .winmd metadata and language projections. Covers IUnknown vs. IInspectable, HWND setup, and packa...
-
What Is Left After the Parent Dies — Keeping Child Processes in a Job Object
Why do SDK helpers outlive a killed UI and keep the camera or COM port? Designing child process lifetime with Job Objects, KillOnJobClose, and completion ports.
-
What Is an OLE Object? — How Embedding and Linking Work and the Pitfalls in Business Documents
An OLE object is what embeds an Excel table in Word. Learn embedding vs. linking, compound files, In-Place Activation, broken links, bloat, and security.
-
The "Same PC" Is Not the Same Execution Environment — The User Boundary That Separates AppData, HKCU, DPAPI, and Credentials
Why an app that works on your desk breaks as a task or service: how the Windows user boundary separates AppData, HKCU, DPAPI, browser profiles, and credentials.
-
Declarative Configuration Management for Windows with DSC — Starting IaC with dsc.exe
Move on from runbook scripts that break when re-run. DSC v3 (dsc.exe) declares Windows configuration in YAML and applies it idempotently, with drift detection.
-
The Depths of Windows Virtualization (Part 3) — Virtual Machines That Boot in Seconds: Why WSL2, Windows Sandbox, and Containers Are So Light
Why WSL2 and Windows Sandbox boot in seconds and stay light: dynamic base images, direct map, dynamic memory allocation, and Hyper-V isolated containers expl...
-
The Depths of Windows Virtualization (Part 2) — Memory Even the Kernel Cannot See: How VBS, HVCI, and Credential Guard Work
Enabled by default on a clean install to compatible hardware, VBS uses the hypervisor and SLAT to isolate beyond the kernel. Covers VTLs, the Secure Kernel, ...
-
The Depths of Windows Virtualization (Part 1) — Where Is Your Windows Actually Running? The Hypervisor and Partitions
When you enable Hyper-V, the host Windows itself runs as the root partition on top of the hypervisor. This article explains the foundations of virtualization...
-
The Win32 Thread Pool API — Concurrency That Does Not Create Threads, with CreateThreadpoolWork
Calling CreateThread everywhere in native code? A primary-source guide to the Win32 thread pool API: the work, timer, wait, and io objects, cleanup groups, a...
-
Named Pipes in Practice — Windows' Standard IPC from Design to Security
A practical guide to named pipes, Windows' standard IPC. Covers byte vs. message mode, servers that handle multiple clients, ACL and impersonation security, ...
-
Apps That Break on Resume from Sleep — How Power Events Work and How to Build Business Apps That Survive Resume
Why business apps break after a laptop resumes from sleep: WM_POWERBROADCAST notifications, Modern Standby, reconnect design, sleep suppression, and powercfg.
-
DllMain and the Loader Lock — The Real Reason You Are Told to "Do Nothing in DLL Initialization"
Why DllMain must not call LoadLibrary or wait on threads: the loader lock serializes DLL notifications, typical deadlocks, deferred initialization, and hang ...