บล็อก
บทความเชิงปฏิบัติของ KomuraSoft LLC เรื่องการพัฒนาเว็บไซต์ SEO, Google Ads, การพัฒนาสำหรับ Windows การใช้ระบบเดิม และการตรวจสอบบั๊ก
ค้นหาด้วย AI ทั่วทั้งเว็บไซต์
คำค้นหาจะถูกส่งไปยัง Cloudflare AI Search เพื่อสร้างผลลัพธ์ กรุณาอย่ากรอกข้อมูลส่วนบุคคล
-
เชิงลึกของการจำลองเสมือนบน Windows (ตอนที่ 3) — เครื่องเสมือนที่บูตในไม่กี่วินาที: ทำไม WSL2, Windows Sandbox และคอนเทนเนอร์จึงเบา
ทำไม WSL2 และ Windows Sandbox จึงเริ่มในไม่กี่วินาทีและรู้สึกเบา? บทความนี้อธิบายกลไก ตั้งแต่ dynamic base image และ direct map ไปจนถึงการจัดสรรหน่วยความจำแบ...
-
เชิงลึกของการจำลองเสมือนบน Windows (ตอนที่ 2) — หน่วยความจำที่แม้เคอร์เนลก็มองไม่เห็น: กลไกของ VBS, HVCI และ Credential Guard
เมื่อติดตั้งใหม่บนฮาร์ดแวร์ที่รองรับ VBS จะเปิดตามค่าเริ่มต้น และใช้ hypervisor กับ SLAT สร้างการแยกที่แข็งกว่าเคอร์เนล บทความนี้อธิบายโครงสร้างของ VTL, Secu...
-
เชิงลึกของการจำลองเสมือนบน Windows (ตอนที่ 1) — Windows ของคุณรันอยู่ที่ไหนจริง ๆ? Hypervisor และพาร์ติชัน
เมื่อเปิด Hyper-V แล้ว Windows ฝั่งโฮสต์เองก็รันบน hypervisor ในฐานะ root partition บทความนี้อธิบายรากฐานของการจำลองเสมือนผ่านบทบาทของ VT-x, SLAT และ VMBus
-
Win32 Thread Pool API — คอนเคอร์เรนซีโดยไม่สร้างเธรดเอง ด้วย CreateThreadpoolWork
โค้ดเนทีฟของคุณกระจายการเรียก CreateThread ไปทั่วหรือไม่ บทความนี้อธิบาย Win32 thread pool API ที่ออกแบบใหม่ใน Vista — ออบเจ็กต์สี่ชนิด work, timer, wait และ...
-
Named Pipe ในทางปฏิบัติ — IPC มาตรฐานของ Windows ตั้งแต่การออกแบบถึงความปลอดภัย
คู่มือเชิงปฏิบัติเรื่อง named pipe ซึ่งเป็นการสื่อสารระหว่างโปรเซสมาตรฐานของ Windows บทความนี้จัดระเบียบจากแหล่งปฐมภูมิ ทั้งการเลือกระหว่างโหมดไบต์กับโหมดข้อ...
-
แอปที่พังเมื่อรีซูมจากสลีป — อีเวนต์พลังงานของ Windows ทำงานอย่างไร และสร้างแอปธุรกิจที่รอดได้อย่างไร
เปิดแล็ปท็อปแล้วการเชื่อมต่อของแอปธุรกิจตาย — สาเหตุคือการออกแบบที่ไม่เคยคิดถึงสลีป บทความนี้ครอบคลุมลำดับการแจ้ง WM_POWERBROADCAST พฤติกรรม Modern Standby ก...
-
DllMain และ Loader Lock — เหตุผลจริงที่ถูกบอกให้ "อย่าทำอะไรในการเริ่มต้น DLL"
ทำไมคุณต้องไม่เรียก LoadLibrary หรือซิงโครไนซ์กับเธรดอื่นจาก DllMain บทความนี้อธิบายจากแหล่งปฐมภูมิว่า loader lock ทำให้การแจ้ง DLL ทุกครั้งเป็นอนุกรม สถานกา...
-
"ไม่ตอบสนอง" คืออะไรจริง ๆ — Windows ตัดสินว่าแอปแฮงอย่างไร และออกแบบอย่างไรให้ไม่แฮง
"ไม่ตอบสนอง" ของ Windows คือกลไกที่ OS ตัดสินว่าหน้าต่างไม่ได้ดึงข้อความเป็นเวลา 5 วินาทีแล้วแทนที่ด้วยหน้าต่างโกสต์ บทความนี้ครอบคลุมภายในของการตัดสิน สาเหต...
-
Spurious Wakeup — ทำไม condition variable จึงตื่น "โดยไม่ถูกแจ้ง" และวิธีรออย่างถูกต้องบน Windows
การรอของ condition variable สามารถกลับได้แม้ไม่มีการแจ้งมาถึง (spurious wakeup) บทความนี้อธิบายจากการอิมพลีเมนต์ของ Windows ว่าทำไมข้อกำหนดจึงอนุญาต และแสดงว...
-
คลิปบอร์ดกับลากและวางทำงานอย่างไร — จัดการการถ่ายโอนข้อมูล OLE ให้ถูกต้องในแอปธุรกิจ
วางตาราง Excel แล้วการจัดรูปแบบพัง ปิดแอปต้นทางแล้ววางไม่ได้อีก — ทั้งคู่มาจากคลิปบอร์ดที่วางเนื้อหาเดียวกันในหลายรูปแบบพร้อมกัน บทความนี้ครอบคลุมรูปแบบมาตรฐ...
-
WPR/WPA ในทางปฏิบัติ — บทนำการสอบสวนประสิทธิภาพทั้งระบบเมื่อ "พีซีทั้งเครื่องช้า"
ปัญหาประสิทธิภาพอย่าง "พีซีทั้งเครื่องช้า" หรือ "สตาร์ตช้า" ที่ Task Manager ตามไม่ทัน สอบสวนได้ด้วยการจับและอ่าน ETW เทรซทั้ง OS ด้วย WPR/WPA บทความนี้ครอบค...
-
Windows ชัตดาวน์จากมุมของแอป — รอดจากการแจ้งออก รีสตาร์ต และการตัดไฟอย่างถูกต้อง
รีสตาร์ตข้ามคืนจาก Windows Update ทำให้ข้อมูลวัดเสีย — อุบัติเหตุแบบนั้นป้องกันด้วยการออกแบบได้ บทความนี้ครอบคลุมจากแหล่งปฐมภูมิว่าจะรับการแจ้งออกอย่าง WM_QU...
-
บทนำการเข้าถึงแอป Windows — เตรียม UI Automation และข้อกำหนดการปรับที่สมเหตุสมผล
บนฉากหลังของกฎหมายแก้ไขว่าด้วยการขจัดเลือกปฏิบัติต่อผู้พิการที่มีผลเมษายน 2024 บทความนี้จัดระเบียบการตั้งชื่อใน WinForms/WPF การใช้แป้น คอนทราสต์ และเครื่องม...
-
กับดักแบบอักษรและอักขระญี่ปุ่น — จัดการ JIS2004, IVS และไกจิในแอปธุรกิจ
"ตัว 葛 บนจอและบนแบบพิมพ์ดูต่างกัน" "อักขระในชื่อบุคคลแสดงไม่ได้" ปัญหาอักขระในระบบธุรกิจจัดการได้เมื่อแยกชั้นรหัสอักขระ (ข้อมูล) ออกจากชั้นแบบอักษร (ลักษณะ) ...
-
จาก Group Policy สู่ Intune — คู่มือโยกย้ายการจัดการอุปกรณ์สำหรับธุรกิจขนาดกลางและเล็ก
เมื่อเซิร์ฟเวอร์ AD ถึงรอบเปลี่ยน ควรอยู่กับ Group Policy หรือย้ายไป Entra ID บวก Intune? บทความนี้จัดสำหรับธุรกิจขนาดกลางและเล็กถึงความต่างของวิธีใช้ สิทธิ์...
-
เลือกบัญชีบริการ Windows — LocalSystem, บัญชีเสมือน และ gMSA
ยังรันบริการ Windows เป็น LocalSystem อยู่หรือไม่ บทความนี้เปรียบเทียบสิทธิ์และตัวตนเครือข่ายของ LocalService, NetworkService, บัญชีเสมือน, ผู้ใช้โดเมน และ g...
-
OneDrive "ไฟล์ตามความต้องการ" กับแอปธุรกิจ — ข้อสมมติที่เพลสโฮลเดอร์ทำลาย และวิธีรับมือ
CSV บนเดสก์ท็อปเปิดไม่ได้ หรือการนำเข้าล้มเหลวด้วย "ไม่พบไฟล์" — สาเหตุอาจเป็น Known Folder Move และไฟล์ตามความต้องการของ OneDrive บทความนี้อธิบายเพลสโฮลเดอร...
-
ความเข้ากันได้ของแอป Windows ทำงานอย่างไร — โหมดความเข้ากันได้ ชิม และ Compatibility Administrator
ทำไมการติ๊กโหมดความเข้ากันได้จึงทำใหแอปเก่าเริ่มทำงาน บทความนี้อธิบายชิม (ฮุก API) ชิมตัวแทน การกระจายด้วย Compatibility Administrator และ sdbinst ขีดจำกัด แ...
-
ความลึกของหน่วยความจำ Windows (ตอนที่ 3) — ออบเจ็กต์เซกชันและคัดลอกเมื่อเขียน: DLL และการแมปไฟล์คืออะไรจริง ๆ
บทความนี้เชื่อมออบเจ็กต์เซกชัน การแมปอิมเมจและข้อมูล แคชร่วม และคัดลอกเมื่อเขียน เพื่ออธิบายว่า DLL กับหน่วยความจำร่วมใช้เพจกายภาพร่วมกันอย่างไร.
-
การรวมเข้ากับเชลล์ Windows วันนี้ ── เมนูบริบท การเชื่อมโยงไฟล์ และสิ่งที่เปลี่ยนใน Windows 11
เหตุใดเมนูบริบท Windows 11 จึงซ่อนรายการไว้หลัง «แสดงตัวเลือกเพิ่มเติม» อธิบายจากพื้นฐานนามสกุล→ProgID→verb ข้อควรระวังส่วนขยายเชลล์แบบคลาสสิก ไปจนถึงเส้นทาง...
-
พร็อกซีองค์กรและแอป Windows — จัดระเบียบการหาพร็อกซีใน WinINET, WinHTTP และ .NET
เบราว์เซอร์ผ่านได้ แต่มีแค่แอปธุรกิจที่ข้ามพร็อกซีองค์กรไม่ได้ สาเหตุมักเป็นการไม่ตรงกันของค่าพร็อกซีที่ WinINET, WinHTTP, ตัวแปรสภาพแวดล้อม และ .NET อ่าน บท...
-
ความลึกของหน่วยความจำ Windows (ตอนที่ 2) — ชีวิตของเพจทางกายภาพ: ห้าบัญชีและเรื่องจริงของไฟล์เพจ
บทความนี้เชื่อมฐานข้อมูล PFN, Standby, Modified, การบีบอัดหน่วยความจำ และไฟล์เพจ เพื่ออธิบายว่าเพจทางกายภาพไปไหนหลังจากออกจาก Working Set.
-
จับแพ็กเก็ตบน Windows ในทางปฏิบัติ — เลือก pktmon, netsh trace และ Wireshark
ความล้มเหลวที่เหลือเพียง "timeout" ในล็อกแอป สืบได้ลึกขึ้นหนึ่งชั้นด้วยการดูแพ็กเก็ตที่วิ่งบนสายจริง แม้ติดตั้ง Wireshark บนเซิร์ฟเวอร์ไม่ได้ ก็จับด้วย pktmo...
-
ความลึกของหน่วยความจำ Windows (ตอนที่ 1) — ช่วงที่ที่อยู่เสมือนกลายเป็น RAM กายภาพ: page fault จากต้นจนจบ
บทความนี้เชื่อม VirtualAlloc, VAD, ตารางเพจ, TLB, demand-zero และ hard fault เพื่ออธิบายช่วงที่ที่อยู่เสมือนได้รับ RAM กายภาพ.
-
อ่านรหัสข้อผิดพลาด Windows — โครงสร้างสามชั้นของ Win32, HRESULT และ NTSTATUS
เมื่อ 0x80004005 ปรากฏ ให้แยกมันก่อนค้นหา บทความนี้อธิบายสามชั้น Win32, HRESULT และ NTSTATUS รูปแบบ 0x8007xxxx และการค้นด้วย err.exe กับ PowerShell.
-
คำอธิบายข้อสอบ Registered Information Security Specialist ฤดูใบไม้ผลิ 2024 (เรวะ 6) ภาคบ่าย ข้อ 1 — JWT alg=none, การอนุญาต API และการบรรเทาชั่วคราวด้วย WAF
บทความนี้ใช้ข้อสอบ Registered Information Security Specialist ฤดูใบไม้ผลิ 2024 (เรวะ 6) ภาคบ่าย ข้อ 1 เป็นกรณีศึกษา เพื่ออธิบาย JWT alg=none, การอนุญาต API, ...
-
"การใช้หน่วยความจำ" ของ Windows หมายถึงอะไรจริง ๆ? — อ่าน Working Set, Private Bytes, Commit และเพจไฟล์ให้ถูก
คอลัมน์ Memory ใน Task Manager, Working Set, Private Bytes และ Commit ไม่ใช่ตัวเลขเดียวกัน บทความนี้อธิบายความสัมพันธ์ของหน่วยความจำเสมือนกับกายภาพบน Windows...
-
แนวปฏิบัติมัลติเธรดในงานจริง: ฉบับ Java — แบบแผนยุคเธรดเสมือน
ใน Java แนวปฏิบัติที่ลงตัวของมัลติเธรดคือไม่สร้างเธรดเอง แต่พึ่ง ExecutorService กับเธรดเสมือน บทความนี้เรียบเรียงหลักปฏิบัติ: เลือกระหว่าง synchronized กับ ...
-
แนวปฏิบัติมัลติเธรดเชิงปฏิบัติ: ฉบับ C — เขียนอย่างปลอดภัยแบบ Win32 API
แนวทางที่ลงตัวของมัลติเธรดใน C กับ Win32 คือสร้างเธรดด้วย _beginthreadex, ล็อก SRW และตัวแปรเงื่อนไข, ฟังก์ชัน Interlocked และการออกแบบหยุดที่สร้างจากเหตุการ...
-
แนวปฏิบัติมัลติเธรดเชิงปฏิบัติ: ฉบับ C++ — ตัดอุบัติเหตุด้วยโครงสร้างด้วย RAII และ jthread
ใน C++ มัลติเธรดคือโลกที่ data race คือพฤติกรรมไม่กำหนด บทความนี้ไล่กับดักของดีสตรักเตอร์ std::thread การออกแบบการหยุดด้วย jthread และ stop_token การเลี่ยงเด...