สำหรับตอนนี้ไดรเวอร์ไม่ได้ลงนามดังนั้นคุณต้องใส่ windows ในโหมดทดสอบ (ช่วยให้ไดรเวอร์ที่กำหนดเองทำงาน)
ในการทำเช่นนี้ให้เปิดพรอมต์คำสั่ง เป็นผู้ดูแลระบบ และเรียกใช้:
bcdedit.exe -set TESTSIGNING ON
bcdedit.exe -set nointegritychecks on
จากนั้นรีสตาร์ทคอมพิวเตอร์หรือเซิร์ฟเวอร์
เมื่อรีสตาร์ทถ้าอยู่บนเดสก์ท็อปคุณควรมีข้อความที่เขียนไว้ที่มุมล่างขวาของมุมมองเดสก์ท็อปพร้อม "โหมดทดสอบ" ที่แสดง
หากต้องการปิดใช้งานโหมดทดสอบเพียงเปิดพรอมต์คำสั่งอื่นด้วยการเข้าถึงผู้ดูแลระบบและเรียกใช้:
bcdedit.exe -set TESTSIGNING OFF
ดาวน์โหลดหรือคอมไพล์ครั้งแรก:
คุณต้องการไฟล์เหล่านั้นในโฟลเดอร์เดียวกัน
จากนั้นเรียกใช้ในพรอมต์คำสั่ง AdminStrator:
DriverLoader.exe install
เริ่มบริการ:
DriverLoader.exe start
เมื่อใดก็ตามที่คุณสามารถตรวจสอบสถานะของบริการที่ให้การเข้าถึงไดรเวอร์ในระบบของคุณด้วยคำสั่งนี้:
driverquery /v | grep -i scaph
หากทำงานอย่างถูกต้องควรแสดงบรรทัดเช่น:
Scaphandre Dr Scaphandre Driver Serv Scaphandre Driver Serv File System System Running OK TRUE FALSE 0 4□096 0 14/01/2022 16:01:37 C:WINDOWSsystem32DRIVERSScaphandreDrv.sys 4□096
ติดตั้ง Visual Studio 2019
ติดตั้ง Visual Studio 2022
ตามเอกสารนี้:
OptionNal: ติดตั้ง EWDK
CLIK ขวาบน scaphandredrv ในแผงด้านขวาโดยทั่วไปคุณสมบัติมองหาฟิลด์ "ชุดเครื่องมือแพลตฟอร์ม" ควรพูดว่า "WindowsKernelModedRiver10.0"
หาก WDK ไม่ปรากฏในคุณสมบัติ Scaphandredrv เป็นตัวเลือกชุดเครื่องมือแพลตฟอร์มให้มองหา VSIX Runner ที่ควรมีเส้นทางเช่น:
C:Program Files (x86)Windows Kits10VsixVS202210.0.22621.382WDK.vsix.
ปิด Visual Studio 2022, เรียกใช้ VSIX Runner
ที่ด้านบนของหน้าต่าง VS ให้เลือก "ปล่อย" เป็นเป้าหมายและ "x64" เป็นแพลตฟอร์มเป้าหมาย
จากนั้น "สร้าง"> "สร้างโซลูชัน"
เพื่อสร้าง Driverloader:
คลิกขวาที่โซลูชัน> เพิ่ม> projet ใหม่> โครงการว่างเปล่า
ในโครงการใหม่ "driverloader" ภายในโซลูชันคลิกขวา> เพิ่ม> รายการที่มีอยู่ให้ค้นหา driverloader.cpp
คลิกขวาที่ driverloader ในแผงด้านขวา> คุณสมบัติ> ขั้นสูงจากนั้นตรวจสอบให้แน่ใจว่า "ชุดอักขระ" ถูกตั้งค่าเป็น "ใช้ชุดอักขระหลายไบต์"
สร้าง> สร้างโซลูชัน (เป้าหมายและแพลตฟอร์มเดียวกันกับ Scaphandredrv)
รวบรวม driverloader.exe ใน userland/Service :
cd userland/Service
sudo apt install g++-mingw-w64 g++-mingw-w64-x86-64-win32 g++-mingw-w64-x86-64
x86_64-w64-mingw32-g++ DriverLoader.cpp -I/usr/x86_64-w64-mingw32/include/ddk/ -I/usr/x86_64-w64-mingw32/include/ --sysroot=. -o DriverLoader.exe -Wall -pedantic
ใน Visual Studio 2022 หรือ 2019 ส่วนขยายเปิด> จัดการส่วนขยายจากนั้นค้นหา "Microsoft Visual Studio Installer Project 2019 | 2022" จากนั้นดาวน์โหลดปิด Visual Studtio
จากนั้นตัวติดตั้ง VSIX ควรเริ่มต้น รีสตาร์ท Visual Studio
หากโครงการ SCAPHANDREDRVINSTALLER แสดงเป็นไม่เข้ากันคลิกขวาแล้ว "โหลดโครงการ" จากนั้นสร้าง
ใน C: Program Files (x86) Windows Kits 10 bin 10.0.22621.0 x64
.MakeCert.exe -r -pe -ss PrivateCertStore -n CN=hubblo.org -eku 1.3.6.1.5.5.7.3.3 ScaphandreDrvTest.cer
ใน C: Program Files (x86) Windows Kits 10 bin 10.0.22621.0 x86 เมื่อคุณมีไฟล์ INF อยู่แล้ว
.stampinf.exe -f C:UsersMYUSERsourcereposwindows-rapl-driverScaphandreDrvScaphandreDrv.inf -d 03/11/2023 -v 0.0.1
จากนั้น (จำเป็นต้องเปลี่ยนไฟล์ INF เพื่อประสบความสำเร็จด้วย X64, เอกสาร TODO นี้เป็นส่วนนี้)
.Inf2Cat.exe /driver:C:UsersMYUSERsourcereposwindows-rapl-driverScaphandreDrv /os:10_X64
แล้ว
.signtool.exe sign /v /fd sha256 /s PrivateCertStore /n hubblo.org "C:UsersMYUSERsourcereposwindows-rapl-driverScaphandreDrvscaphandredrv.cat"
จากนั้น (ในฐานะผู้ดูแลระบบ)
.certmgr.exe /add "C:UsersMYUSERsourcereposwindows-rapl-driverScaphandreDrvScaphandreDrvTest.cer" /s /r localMachine root
เมื่อการลงนามเหมาะสมคุณควรติดตั้งไดรเวอร์ด้วย:
& "C:Program Files (x86)Windows Kits10Tools10.0.22621.0x64devcon.exe" install .ScaphandreDrv.inf rootSCAPHANDREDRV
หากลายเซ็นนั้นโอเค (แม้ว่าจะไม่น่าเชื่อถือ) คุณควรได้รับหน้าต่างป๊อปอัพนี้:

ไดรเวอร์นี้ได้รับการพัฒนาสำหรับกรณีการใช้งานเฉพาะ: การเปิดใช้งาน Scaphandre บน Windows
โปรดดูสไลด์เหล่านั้นเพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการและทำไมคนขับนี้ได้รับการพัฒนา
สำหรับเวอร์ชันที่เข้ากันได้ของ Windows 11 และ + + บัญชีผู้ดูแลระบบคือ hlkadminuser พร้อมชุดรหัสผ่านเมื่อเริ่มต้น สำหรับเวอร์ชันก่อนหน้านี้เป็น hlkadminuser / testPassword, 1
เราดาวน์โหลด VHDX ซึ่งสามารถใช้ใน Hyper-V เท่านั้น หากคุณไม่มีหน้าต่างที่ใช้งานร่วมกันได้มากเกินไปคุณต้องแปลงเป็น VHD หรือ VDI เพื่อใช้ในกล่องเสมือนจริง
.VBoxManage.exe clonemedium disk "C:UsersMYUSERDownloads2019DC-22621.1.ni_release.220506-1250-HLK.vhdx" "C:UsersMYUSERDownloads2019DC-22621.1.ni_release.220506-1250-HLK.vhd" --format vhd
เปลี่ยนอินเทอร์เฟซเครือข่ายในกล่องเสมือนจริงจาก NAT เป็น bridged อินเตอร์เฟสจากนั้นยอมรับการค้นพบบนเครือข่ายจากแขก Windows
อย่าลืมเปิดใช้งานโหมดการค้นพบเครือข่าย: Control Panel > Network and Internet > Network and Sharing center > Advanced Sharing Settings จากนั้นคลิกที่เปิดการค้นพบเครือข่ายจากนั้นบันทึกการเปลี่ยนแปลง
หากไม่ได้ผล (ถ้าเมื่อเปิดแผงนี้อีกครั้งปุ่มยังคงอยู่ใน“ ปิด” ให้ทำตามขั้นตอนนี้: https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking/cannot-turn-on-on-network-discovery
อย่างแม่นยำยิ่งขึ้นเปิดการเรียกใช้และเปิดใช้งาน Services.msc หากหนึ่งในบริการที่กล่าวถึงในเอกสารไม่ได้เริ่มต้น: คลิกขวา, โหมด: คู่มือ, ใช้, เริ่มต้น
ตรวจสอบให้แน่ใจว่าเริ่มต้นบริการการพึ่งพาต่อไปนี้:
- ไคลเอนต์ DNS
- ฟังก์ชั่นการค้นพบทรัพยากรการค้นพบ
- การค้นพบ SSDP
- โฮสต์อุปกรณ์ UPNP
กำหนดค่า Windows Firewall เพื่ออนุญาตการค้นหาเครือข่ายโดยทำตามขั้นตอนเหล่านี้:
- เปิดแผงควบคุมเลือกระบบและความปลอดภัยจากนั้นเลือก Windows Firewall
- ในบานหน้าต่างด้านซ้ายเลือกอนุญาตแอพหรือคุณสมบัติ
- เปิดแผงควบคุมเลือกระบบและความปลอดภัยจากนั้นเลือก Windows Firewall
- ในบานหน้าต่างด้านซ้ายเลือกอนุญาตแอพหรือคุณสมบัติผ่าน Windows Firewall
- เลือกเปลี่ยนการตั้งค่า หากคุณได้รับแจ้งสำหรับรหัสผ่านหรือการยืนยันของผู้ดูแลระบบให้ป้อนรหัสผ่านหรือให้การยืนยัน
- เลือกการค้นพบเครือข่ายจากนั้นเลือกตกลง
- กำหนดค่าไฟร์วอลล์อื่น ๆ ในเครือข่ายเพื่อให้การค้นหาเครือข่าย
- เปิดการค้นพบเครือข่ายในเครือข่ายและศูนย์แบ่งปัน
แหล่งกำเนิด
ต้องทำกระบวนการโดยอัตโนมัติ:
การพึ่งพา:
การรวบรวม: x86_64-w64-mingw32-g ++ driverloader.cpp -o driverloader.exe
รหัสรับข้อมูลของผู้ผลิต CPU (ผ่าน CPUID) ใช้ชุดประกอบ Inlined
ในการรวบรวมบน Linux เราต้องบอกให้ GCC ใช้ไวยากรณ์ Intel ไม่ใช่ AT&T One นอกจากนี้เรายังต้องระบุว่าเราไม่ต้องการ axecutable ที่มีตำแหน่งอิสระ
ตัวอย่าง: gcc -masm = intel -no -pie cpuid.c -o cpuid
ในการรวบรวมบน Windows เราสามารถอินไลน์ 32 บิตได้ แต่ไม่ใช่ 64 บิต (คอมไพเลอร์ MSVC ไม่รองรับ)
ในการแก้ไขปัญหานี้ฟังก์ชั่น CPUID จะถูกเขียนขึ้นในชุดประกอบบริสุทธิ์ที่ตรงกับ Windows ABI (x86 และ X86_64) ในการรวบรวมให้ใช้คำสั่งเหล่านั้น:
ในการรวบรวมเอเจนต์รวมถึงฟังก์ชั่น CPUID ทำตามสถาปัตยกรรม:
Fichiers Intéressants dans le noyau linux:
สร้างในโหมดปล่อยแล้วลองอีกครั้ง!
"f: windows kits 10 bin x86 inf2cat.exe" /ไดรเวอร์: c: users nulse เอกสาร gitHub test /OS: 10_19H1_X64,10_RS5_X64
ดู https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/inf2cat
DriverQuery ไม่แสดงร่องรอยใด ๆ ของไดรเวอร์รุ่นก่อนหน้า แต่คุณได้รับข้อผิดพลาด 1078 เมื่อพยายามติดตั้งใหม่ด้วย driverloader.exe enusre คุณไม่เห็นบริการ scaphandre ใน services.msc ตรวจสอบให้แน่ใจว่าคุณได้ถอนแพ็คเกจเต็มรูปแบบหรือลบโปรแกรม (ดู https://social.msdn.microsoft.com/forums/windowsdesktop/en-us/ed214b30-b094-43c0-85e8-4702da85b5dd/add-service-failed-to-create