<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title type="text">KomuraSoft LLC Blog</title>
  <subtitle type="text">Windows / C# / COM engineering notes from KomuraSoft LLC.</subtitle>
  <id>https://comcomponent.com/en/feed.xml</id>
  <link rel="alternate" type="text/html" hreflang="en" href="https://comcomponent.com/en/blog/"/>
  <link rel="alternate" type="text/html" hreflang="ja" href="https://comcomponent.com/blog/"/>
  <link rel="self" type="application/atom+xml" href="https://comcomponent.com/en/feed.xml"/>
  <updated>2026-08-06T00:00:00+00:00</updated>
  <rights>© 2026 KomuraSoft LLC</rights>
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <author>
    <name>小村 豪</name>
    <uri>https://comcomponent.com/en/profile/go-komura/</uri>
  </author>
  
  <entry xml:lang="en">
    <title type="text">Registered Information Security Specialist Exam, Spring 2024 (Reiwa 6) PM Q1 Commentary — JWT alg=none, API Authorization, and Interim WAF Mitigation</title>
    <id>https://comcomponent.com/en/blog/sc-exam-r6s-pm-q1-api-security/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/sc-exam-r6s-pm-q1-api-security/"/>
    <published>2026-08-06T10:00:00+00:00</published>
    <updated>2026-08-06T00:00:00+00:00</updated>
    
    <summary type="text">Using the Registered Information Security Specialist Examination&apos;s Spring 2024 (Reiwa 6) PM Q1 as a case study, this article explains JWT&apos;s alg=none, API authorization, Mass Assignment, brute-forcing a four-digit authentication code, and interim mitigation with a WAF.</summary>
    
    
    
    <category term="Registered Information Security Specialist"/>
    
    <category term="Registered Security Specialist"/>
    
    <category term="API"/>
    
    <category term="API Security"/>
    
    <category term="JWT"/>
    
    <category term="Authentication"/>
    
    <category term="Authorization"/>
    
    <category term="WAF"/>
    
    <category term="Log4Shell"/>
    
    <category term="Information Security"/>
    
    <category term="Vulnerability"/>
    
    <category term="IPA"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">What Does Windows&apos; &quot;Memory Usage&quot; Actually Mean? — Correctly Reading Working Set, Private Bytes, Commit, and the Page File</title>
    <id>https://comcomponent.com/en/blog/windows-memory-usage-working-set-commit/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-memory-usage-working-set-commit/"/>
    <published>2026-08-04T01:00:00+00:00</published>
    <updated>2026-08-04T00:00:00+00:00</updated>
    
    <summary type="text">Task Manager&apos;s Memory, Working Set, Private Bytes, and Commit are not the same figure. This article explains the relationship between Windows virtual and physical memory, the role of the page file, and which metrics to watch when investigating memory pressure or leaks.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Windows Development"/>
    
    <category term="Memory Management"/>
    
    <category term="Working Set"/>
    
    <category term="Private Bytes"/>
    
    <category term="Commit"/>
    
    <category term="Page File"/>
    
    <category term="Performance Monitoring"/>
    
    <category term="Troubleshooting"/>
    
    <category term="Sysinternals"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Practical Multithreading Best Practices: Java Edition — Conventions for the Virtual Thread Era</title>
    <id>https://comcomponent.com/en/blog/multithreading-best-practices-java/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/multithreading-best-practices-java/"/>
    <published>2026-08-02T01:30:00+00:00</published>
    <updated>2026-08-02T00:00:00+00:00</updated>
    
    <summary type="text">In Java, the established practice for multithreading is never to create threads directly but to build on ExecutorService and virtual threads. This article sets out the practical principles: choosing between synchronized and ReentrantLock, cooperative stopping via interruption, atomic operations on ConcurrentHashMap, and Swing&apos;s EDT.</summary>
    
    
    
    <category term="Multithreading"/>
    
    <category term="Java"/>
    
    <category term="Business Applications"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Design"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Practical Multithreading Best Practices: C Edition — Writing Safely the Win32 API Way</title>
    <id>https://comcomponent.com/en/blog/multithreading-best-practices-c/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/multithreading-best-practices-c/"/>
    <published>2026-08-02T01:20:00+00:00</published>
    <updated>2026-08-02T00:00:00+00:00</updated>
    
    <summary type="text">The established approach to multithreading in C with Win32 is thread creation via _beginthreadex, SRW locks and condition variables, Interlocked functions, and a stop design built on a stop event plus WaitForMultipleObjects. This article also covers the dangers of TerminateThread and the constraints of DllMain.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Multithreading"/>
    
    <category term="C"/>
    
    <category term="Win32 API"/>
    
    <category term="Business Applications"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Design"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Practical Multithreading Best Practices: C++ Edition — Eliminating Accidents by Structure with RAII and jthread</title>
    <id>https://comcomponent.com/en/blog/multithreading-best-practices-cpp/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/multithreading-best-practices-cpp/"/>
    <published>2026-08-02T01:10:00+00:00</published>
    <updated>2026-08-02T00:00:00+00:00</updated>
    
    <summary type="text">In C++, multithreading is a world where a data race is undefined behaviour. This article works through the std::thread destructor trap, designing stop mechanisms with jthread and stop_token, deadlock avoidance with scoped_lock, the correct role of atomic, and how to choose between the standard library and the Win32 synchronization APIs.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Multithreading"/>
    
    <category term="C++"/>
    
    <category term="Visual Studio"/>
    
    <category term="Business Applications"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Design"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Practical Multithreading Best Practices: .NET Edition — What to Decide Before You Add More Threads</title>
    <id>https://comcomponent.com/en/blog/multithreading-best-practices-dotnet/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/multithreading-best-practices-dotnet/"/>
    <published>2026-08-02T01:00:00+00:00</published>
    <updated>2026-08-02T00:00:00+00:00</updated>
    
    <summary type="text">A practical rundown of the design rules that keep multithreaded .NET/C# code from occasionally crashing or hanging: ride on Task instead of creating threads yourself, cut shared mutable state, keep locking disciplined, design how to stop with CancellationToken, and handle the UI thread correctly.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Multithreading"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Business Applications"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Design"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Registered Information Security Specialist Exam — Autumn 2023 (Reiwa 5) Afternoon Question 2 Explained — Files Walking Out Over the Guest Wi-Fi</title>
    <id>https://comcomponent.com/en/blog/sc-exam-r5a-pm-q2-security-review/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/sc-exam-r5a-pm-q2-security-review/"/>
    <published>2026-08-01T03:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">Using Question 2 of the afternoon session of the Autumn 2023 (Reiwa 5) Registered Information Security Specialist exam, this article explains how a company that had already blocked USB drives still ends up with files walking out over its guest Wi-Fi. It works through server certificate validation and HSTS, the limits of MAC address filtering, and countermeasures built on EAP-TLS and the TPM.</summary>
    
    
    
    <category term="Registered Information Security Specialist"/>
    
    <category term="RISS Exam"/>
    
    <category term="Wireless LAN"/>
    
    <category term="Server Certificates"/>
    
    <category term="HSTS"/>
    
    <category term="EAP-TLS"/>
    
    <category term="RADIUS"/>
    
    <category term="TPM"/>
    
    <category term="Information Security"/>
    
    <category term="Data Leak Prevention"/>
    
    <category term="IPA"/>
    
    <category term="Design Review"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Volume Shadow Copy (VSS): The Mechanism and the Practice — Why Backup Software Can Copy Files That Are Still in Use</title>
    <id>https://comcomponent.com/en/blog/vss-volume-shadow-copy-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/vss-volume-shadow-copy-guide/"/>
    <published>2026-08-01T01:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">Files that are in use can&apos;t normally be copied because of sharing violations — so how does backup software manage it? This article explains the roles of the Volume Shadow Copy Service (VSS) requester, writer, and provider, how copy-on-write works, day-to-day vssadmin operations, and the pitfalls of the diff area.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="VSS"/>
    
    <category term="Backup"/>
    
    <category term="Files"/>
    
    <category term="NTFS"/>
    
    <category term="Business Applications"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Using WMI/CIM from C# and PowerShell — A Practical Guide to Hardware Info Retrieval, Process Monitoring, and Remote Queries</title>
    <id>https://comcomponent.com/en/blog/wmi-cim-practical-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/wmi-cim-practical-guide/"/>
    <published>2026-08-01T01:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">WMI/CIM is the standard way to get a PC&apos;s serial number, monitor free disk space, and detect process launches. This article covers how to use CIM cmdlets such as Get-CimInstance, migration from the old Get-WmiObject, when to use System.Management versus the CIM API in C#, plus practical recipes and pitfalls.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="PowerShell"/>
    
    <category term="WMI"/>
    
    <category term="CIM"/>
    
    <category term="Business Applications"/>
    
    <category term="Windows Development"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">A Practical Guide to Group Policy (GPO) — How It Works, Confirming Application, and Choosing Between GPO and Intune</title>
    <id>https://comcomponent.com/en/blog/group-policy-practical-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/group-policy-practical-guide/"/>
    <published>2026-08-01T01:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">Are you working in an AD environment without really knowing what &quot;distributed via GPO&quot; means? This article explains, from a practical standpoint, how Group Policy works and the LSDOU order of application, confirming that changes have taken effect with gpupdate and gpresult, choosing between GPO and Intune, and the pitfall of a customer&apos;s GPO silently changing how your app behaves.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Group Policy"/>
    
    <category term="Active Directory"/>
    
    <category term="Intune"/>
    
    <category term="PC Management"/>
    
    <category term="PowerShell"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Windows Security Audit Policy and Event Log Investigation in Practice — Becoming an IT Team That Can Read Event 4625</title>
    <id>https://comcomponent.com/en/blog/windows-security-audit-policy-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-security-audit-policy-guide/"/>
    <published>2026-08-01T01:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide for answering &quot;please look into the failed sign-in logs.&quot; It covers the relationship between basic and advanced audit policy, the subcategories you should enable at minimum, how to read event IDs 4624/4625/4688, Security log capacity design, and extraction with Get-WinEvent.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Security"/>
    
    <category term="Event Log"/>
    
    <category term="Audit Policy"/>
    
    <category term="Log Design"/>
    
    <category term="PowerShell"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">A Practical Guide to Windows LAPS — Retiring the Shared Local Administrator Password Across All PCs</title>
    <id>https://comcomponent.com/en/blog/windows-laps-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-laps-guide/"/>
    <published>2026-08-01T01:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">A shared local administrator password across every PC is fertile ground for Pass-the-Hash attacks, where the compromise of one machine spreads to all of them. This article explains automatic rotation with Windows LAPS — now a built-in OS feature — how to configure storage in Active Directory or Entra ID, and the operational pitfalls to watch for.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Security"/>
    
    <category term="LAPS"/>
    
    <category term="Password Management"/>
    
    <category term="Active Directory"/>
    
    <category term="Intune"/>
    
    <category term="PowerShell"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Windows Certificate Store in Practice — User or Computer, Which Should You Use?</title>
    <id>https://comcomponent.com/en/blog/windows-certificate-store-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-certificate-store-guide/"/>
    <published>2026-08-01T00:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">Should a client certificate go in the user store or the computer store? This practical guide works systematically through the classic certificate mistakes — the difference between certmgr.msc and certlm.msc, granting private-key permissions, and taking an expiry inventory with PowerShell.</summary>
    
    
    
    <category term="Certificate"/>
    
    <category term="Windows"/>
    
    <category term="Security"/>
    
    <category term="PKI"/>
    
    <category term="TLS"/>
    
    <category term="PowerShell"/>
    
    <category term="Business Applications"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Windows Firewall and Business Applications — Register Inbound Rules From the Installer</title>
    <id>https://comcomponent.com/en/blog/windows-firewall-business-apps/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-firewall-business-apps/"/>
    <published>2026-08-01T00:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">&quot;It works on the dev machine but the client can&apos;t connect&quot; almost always traces back to the Windows Firewall. This article covers the default-block-inbound behaviour and profiles, why you cannot leave production to the security warning dialog, and how to register inbound rules from the installer and triage connection failures.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Firewall"/>
    
    <category term="Network"/>
    
    <category term="Security"/>
    
    <category term="Business Applications"/>
    
    <category term="Installer"/>
    
    <category term="PowerShell"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Windows Update Management After WSUS Deprecation — How to Choose Between WUfB, Autopatch, and Intune</title>
    <id>https://comcomponent.com/en/blog/wsus-deprecation-windows-update-management/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/wsus-deprecation-windows-update-management/"/>
    <published>2026-08-01T00:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">Microsoft announced the deprecation of WSUS in September 2024. It is not stopping immediately, but new feature development has ended. This article lays out four options — continuing WSUS, Windows Update for Business, Autopatch, and Intune — in a decision table that accounts for licensing and closed-network conditions.</summary>
    
    
    
    <category term="Windows Update"/>
    
    <category term="WSUS"/>
    
    <category term="Intune"/>
    
    <category term="Windows Autopatch"/>
    
    <category term="Information Systems"/>
    
    <category term="Security"/>
    
    <category term="IT Asset Management"/>
    
    <category term="Small and Medium Businesses"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">BitLocker Practical Guide — Drive Encryption Starting With Recovery Key Management</title>
    <id>https://comcomponent.com/en/blog/bitlocker-practical-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/bitlocker-practical-guide/"/>
    <published>2026-08-01T00:00:00+00:00</published>
    <updated>2026-08-01T00:00:00+00:00</updated>
    
    <summary type="text">From Windows 11 24H2 onward, clean installs enable device encryption by default, and &quot;suddenly finding out it&apos;s encrypted&quot; incidents are now happening in practice. Centred on a decision table for where to store the recovery key, this article covers the underlying mechanism, organisational operation, incident response, and disposal.</summary>
    
    
    
    <category term="BitLocker"/>
    
    <category term="Windows"/>
    
    <category term="Security"/>
    
    <category term="Encryption"/>
    
    <category term="TPM"/>
    
    <category term="Information Systems"/>
    
    <category term="IT Asset Management"/>
    
    <category term="SME"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Why Are Passkeys Secure? — An Illustrated Guide to Authentication That Never Sends a Secret</title>
    <id>https://comcomponent.com/en/blog/passkey-why-secure/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/passkey-why-secure/"/>
    <published>2026-07-29T07:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">An illustrated explanation of why passkeys are secure: the public-key cryptography that keeps the private key off the server and off the wire, why phishing cannot structurally succeed, the safety of synced passkeys, what to think about when a phone is lost, and the essentials of implementing WebAuthn.</summary>
    
    
    
    <category term="Passkeys"/>
    
    <category term="WebAuthn"/>
    
    <category term="FIDO2"/>
    
    <category term="Security"/>
    
    <category term="Authentication"/>
    
    <category term="Phishing Prevention"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Depths of Windows I/O (Part 6, Final) — Filter Drivers and Minifilters: Why Procmon and Antivirus Scanners Can Intercept I/O</title>
    <id>https://comcomponent.com/en/blog/windows-minifilter-filter-drivers/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-minifilter-filter-drivers/"/>
    <published>2026-07-29T06:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">The final instalment of a series illustrating Windows filter drivers and minifilters. It covers the Filter Manager and altitudes, pre/post callbacks, how Procmon and antivirus software can inspect every I/O operation, and the investigation procedure for &quot;why is this one environment slow&quot;.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Win32"/>
    
    <category term="I/O"/>
    
    <category term="Minifilter"/>
    
    <category term="Kernel"/>
    
    <category term="Device Driver"/>
    
    <category term="Security"/>
    
    <category term="Bug Investigation"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Depths of Windows I/O (Part 5) — NTFS Internals: Understanding the File System Through the MFT</title>
    <id>https://comcomponent.com/en/blog/ntfs-internals-mft-structure/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ntfs-internals-mft-structure/"/>
    <published>2026-07-29T05:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">Part 5 of a series explaining NTFS internals with diagrams. Covers the MFT and file records, multiple data streams (Zone.Identifier), hard links and 8.3 names, reparse points, the two journals, and sparse files and compression — all organised from a developer&apos;s point of view.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="NTFS"/>
    
    <category term="I/O"/>
    
    <category term="File System"/>
    
    <category term="MFT"/>
    
    <category term="Kernel"/>
    
    <category term=".NET"/>
    
    <category term="Bug Investigation"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Depths of Windows I/O (Part 4) — Cache Manager: When Does Your WriteFile Actually Reach the Disk?</title>
    <id>https://comcomponent.com/en/blog/windows-cache-manager-writefile-disk/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-cache-manager-writefile-disk/"/>
    <published>2026-07-29T04:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">Part 4 of an illustrated series on the Windows cache manager. It covers the cache implemented as a file mapping, read-ahead and lazy writing, how to choose between FlushFileBuffers and FILE_FLAG_NO_BUFFERING, and the conditions under which data is lost on power loss.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Win32"/>
    
    <category term="I/O"/>
    
    <category term="Cache"/>
    
    <category term="Kernel"/>
    
    <category term="File System"/>
    
    <category term=".NET"/>
    
    <category term="C#"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Depths of Windows I/O (Part 3) — I/O Completion Ports (IOCP) and the .NET Thread Pool: The Basement Under async/await</title>
    <id>https://comcomponent.com/en/blog/windows-iocp-dotnet-threadpool/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-iocp-dotnet-threadpool/"/>
    <published>2026-07-29T03:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">Part 3 of a series that explains I/O Completion Ports (IOCP) with diagrams. Covers the design that unifies the completion queue with thread-count control, the concurrency value and LIFO thread release, and works through to the .NET thread pool and which thread an async/await continuation runs on.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Win32"/>
    
    <category term="I/O"/>
    
    <category term="IOCP"/>
    
    <category term="Asynchronous"/>
    
    <category term="Thread Pool"/>
    
    <category term=".NET"/>
    
    <category term="CSharp"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">How Long Can You Go On Using MSMQ? — The Migration Decision for a Legacy Queue That Isn&apos;t Even &quot;Deprecated&quot;</title>
    <id>https://comcomponent.com/en/blog/msmq-migration-decision-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/msmq-migration-decision-guide/"/>
    <published>2026-07-29T02:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">MSMQ does not appear on Microsoft&apos;s official deprecated-features lists, yet System.Messaging exists only in .NET Framework and blocks migration to .NET. This article sorts fact from rumour about MSMQ&apos;s status, then sets out the criteria for deciding whether to keep using it or migrate, and how to choose a migration target.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term=".NET"/>
    
    <category term="C#"/>
    
    <category term="MSMQ"/>
    
    <category term="Message Queue"/>
    
    <category term="Legacy Technology"/>
    
    <category term="Migration"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Depths of Windows I/O (Part 2) — Synchronous and Asynchronous I/O: What OVERLAPPED Really Means</title>
    <id>https://comcomponent.com/en/blog/windows-io-sync-async-overlapped/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-io-sync-async-overlapped/"/>
    <published>2026-07-29T02:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">Part 2 of a series explaining Windows synchronous and asynchronous I/O (overlapped I/O) with diagrams. It covers what FILE_FLAG_OVERLAPPED means, the four ways completion is reported, the conditions under which supposedly-asynchronous I/O completes synchronously, how to cancel properly, and how it all maps onto .NET.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Win32"/>
    
    <category term="I/O"/>
    
    <category term="Asynchronous I/O"/>
    
    <category term="OVERLAPPED"/>
    
    <category term="Kernel"/>
    
    <category term=".NET"/>
    
    <category term="C#"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Registered Information Security Specialist Exam, Autumn 2023 (Reiwa 5) Afternoon Q1 Commentary — The Stored XSS Where 16 Reviews Show Up as Only 2</title>
    <id>https://comcomponent.com/en/blog/sc-exam-r5a-pm-q1-stored-xss/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/sc-exam-r5a-pm-q1-stored-xss/"/>
    <published>2026-07-29T02:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">Using Question 1 from the afternoon session of the Autumn 2023 (Reiwa 5) Registered Information Security Specialist Examination as the case study, this article walks through how a stored XSS attack unfolded. It explains why the character limit was defeated by splitting the payload across multiple posts, the route by which the session ID was exfiltrated as an image without any external communication, and which countermeasures actually worked.</summary>
    
    
    
    <category term="Registered Information Security Specialist"/>
    
    <category term="SC Exam"/>
    
    <category term="XSS"/>
    
    <category term="Cross-Site Scripting"/>
    
    <category term="Web Application"/>
    
    <category term="Information Security"/>
    
    <category term="Vulnerability"/>
    
    <category term="IPA"/>
    
    <category term="Session Management"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">AppLocker, App Control for Business (WDAC), and Business App Distribution — Before &quot;Application Control&quot; Blocks You</title>
    <id>https://comcomponent.com/en/blog/applocker-wdac-business-app-distribution/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/applocker-wdac-business-app-distribution/"/>
    <published>2026-07-29T01:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">Explains the differences between AppLocker, App Control for Business (formerly WDAC), and Smart App Control, and sets out what developers and distributors can do so that in-house business apps are not blocked by application control in customer environments. Also covers how to read the event logs when a block occurs.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Security"/>
    
    <category term="Information Systems"/>
    
    <category term="AppLocker"/>
    
    <category term="WDAC"/>
    
    <category term="Smart App Control"/>
    
    <category term="Code Signing"/>
    
    <category term="Deployment"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">The Depths of Windows I/O (Part 1) — Every Read and Write Becomes an IRP: The Big Picture of the I/O System</title>
    <id>https://comcomponent.com/en/blog/windows-io-internals-architecture-irp/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-io-internals-architecture-irp/"/>
    <published>2026-07-29T01:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">Part 1 of a series that explains the Windows I/O system from the ground up. We map out the Object Manager namespace, the three kinds of objects (driver, device, file), the lifecycle of an IRP, and what really happens behind CloseHandle, all with diagrams.</summary>
    
    
    
    <category term="Windows"/>
    
    <category term="Win32"/>
    
    <category term="I/O"/>
    
    <category term="Kernel"/>
    
    <category term="Device Driver"/>
    
    <category term=".NET"/>
    
    <category term="C#"/>
    
    <category term="Bug Investigation"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">SMB Signing and LDAP Channel Binding — Closing the &quot;Other Half&quot; of Your NTLM Defences in Practice</title>
    <id>https://comcomponent.com/en/blog/smb-signing-ldap-channel-binding/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/smb-signing-ldap-channel-binding/"/>
    <published>2026-07-29T00:00:00+00:00</published>
    <updated>2026-07-29T00:00:00+00:00</updated>
    
    <summary type="text">SMB signing and LDAP signing/channel binding are the defences that limit the damage from relay attacks while you work towards retiring NTLM. This article lays out the per-OS default values, how to read the audit events, the steps for moving to enforcement, and how to fix business applications and devices, from a practical standpoint.</summary>
    
    
    
    <category term="NTLM"/>
    
    <category term="Kerberos"/>
    
    <category term="Windows"/>
    
    <category term="Active Directory"/>
    
    <category term="Security"/>
    
    <category term="Information Systems"/>
    
    <category term="SMB"/>
    
    <category term="LDAP"/>
    
    <category term="PowerShell"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">NTLM and Kerberos Explained with Diagrams — Why Authentication Falls Back to NTLM</title>
    <id>https://comcomponent.com/en/blog/ntlm-kerberos-explained/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ntlm-kerberos-explained/"/>
    <published>2026-07-26T02:00:00+00:00</published>
    <updated>2026-07-26T00:00:00+00:00</updated>
    
    <summary type="text">An illustrated comparison of NTLM and Kerberos: challenge/response, TGTs and service tickets, the conditions under which Negotiate falls back to NTLM when an SPN cannot be resolved, why relay attacks and Pass-the-Hash work, and the removal of NTLMv1 — all backed by the official documentation.</summary>
    
    
    
    <category term="NTLM"/>
    
    <category term="Kerberos"/>
    
    <category term="Windows"/>
    
    <category term="Active Directory"/>
    
    <category term="Security"/>
    
    <category term="Authentication"/>
    
    <category term="Information Systems"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Is OpenHarmony a Viable OS for Industrial Equipment? — Compared with Windows IoT and Embedded Linux</title>
    <id>https://comcomponent.com/en/blog/openharmony-embedded-os-selection/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/openharmony-embedded-os-selection/"/>
    <published>2026-07-26T01:30:00+00:00</published>
    <updated>2026-07-26T00:00:00+00:00</updated>
    
    <summary type="text">Does OpenHarmony belong in the OS shortlist for industrial equipment? We compare Windows IoT Enterprise LTSC, embedded Linux and OpenHarmony on maintenance windows, memory requirements, development environment and procurement using primary sources, and set out in a decision table the conditions under which you may adopt it and the conditions under which you should pass.</summary>
    
    
    
    <category term="OpenHarmony"/>
    
    <category term="Embedded"/>
    
    <category term="OS Selection"/>
    
    <category term="Equipment Embedded Software"/>
    
    <category term="Windows IoT"/>
    
    <category term="Linux"/>
    
    <category term="Manufacturing"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Will NTLM Deprecation Stop Your Business Apps? — How to Collect Audit Logs, and the Order in Which to Kill Dependencies</title>
    <id>https://comcomponent.com/en/blog/ntlm-deprecation-audit-migration/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ntlm-deprecation-audit-migration/"/>
    <published>2026-07-26T01:00:00+00:00</published>
    <updated>2026-07-26T00:00:00+00:00</updated>
    
    <summary type="text">A practical procedure for finding out where your Windows environment and business applications depend on NTLM ahead of its retirement: audit policies, following events 8001 to 8004 in the NTLM/Operational log, the typical patterns that fall back to NTLM and how to fix them, and NTLM blocking on SMB.</summary>
    
    
    
    <category term="NTLM"/>
    
    <category term="Kerberos"/>
    
    <category term="Windows"/>
    
    <category term="Active Directory"/>
    
    <category term="Security"/>
    
    <category term="Information Systems"/>
    
    <category term="PowerShell"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
</feed>
