Perkhidmatan Windows ditulis dalam Go dan cuba mencipta proses kalkulator dalam konteks pengguna menggunakan CreateProcessAsUserW()
.
Kodnya diilhamkan oleh intipati ini:
https://gist.github.com/LiamHaworth/1ac37f7fb6018293fc43f86993db24fc#file-native-go
Kebanyakan masa, apl kalkulator dilancarkan dalam pengguna aktif, bagaimanapun, kadangkala apl itu gagal dilancarkan tanpa CreateProcessAsUserW()
mengembalikan sebarang ralat.
Pemeriksaan menggunakan Procmon mendedahkan bahawa apabila melancarkan aplikasi Kalkulator, aplikasi itu ranap dan terpaksa mengumpul pembuangan WerFault. Malangnya, saya tidak melihat pembuangan terperinci dalam log peristiwa.
Diperhatikan kemalangan WerFault dalam ProcMon
Surih tindanan terperinci untuk melancarkan 3 apl kalkulator serupa menggunakan CreateProcessAsUserW
- dua yang pertama berjaya, yang ketiga gagal
Ralat ini bersifat rawak, yang tidak menjadikan aplikasi itu boleh dipercayai. Saya sangat tidak tahu tentang apa/bagaimana untuk nyahpepijat dari sini dan sangat menghargai sebarang bantuan.
Ralat nampaknya berlaku disebabkan oleh persekitaran kompilasi yang salah, di mana binari yang dicipta dengan x64 dijalankan pada arm64. Terima kasih atas input semua
Atas ialah kandungan terperinci Aplikasi Kalkulator Windows ranap disebabkan oleh ketidakkonsistenan WerFault apabila dilancarkan daripada perkhidmatan menggunakan CreateProcessAsUserW(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!