Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Aplikasi Kalkulator Windows ranap disebabkan oleh ketidakkonsistenan WerFault apabila dilancarkan daripada perkhidmatan menggunakan CreateProcessAsUserW()

Aplikasi Kalkulator Windows ranap disebabkan oleh ketidakkonsistenan WerFault apabila dilancarkan daripada perkhidmatan menggunakan CreateProcessAsUserW()

PHPz
PHPzke hadapan
2024-02-05 22:51:071224semak imbas

使用 CreateProcessAsUserW() 从服务启动时,Windows 计算器应用程序会因 WerFault 不一致而崩溃

Kandungan soalan

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.


Jawapan betul


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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam