dotnet / dotnet/runtime

SystemEvents.PowerModeChanged is not raised on suspend/resume on Surface Pro

Abierto
#123,773 3 comentarios 0 reacciones 0 asignados Ver en GitHub
area-Microsoft.Win32 bug help wanted
Lenguaje dominante
C#
Estrellas
18.3k
Forks
5.6k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

### Description

When Surface Pro sleeps, the [SystemEvents.PowerModeChanged](https://learn.microsoft.com/en-us/dotnet/api/microsoft.win32.systemevents.powermodechanged) event is not raised

### Reproduction Steps

`SystemEvents.PowerModeChanged += (s, e) => Debug.WriteLine(e.Mode);`

### Expected behavior

Should print `Suspend` on Sleep

### Actual behavior

Prints 'Suspend' on Desktop
No output on Surface Pro

### Regression?

_No response_

### Known Workarounds

Use `PowerRegisterSuspendResumeNotification`

### Configuration

dotnet SDK 10.0.102
Windows 11 (10.0.26200)
x64

### Other information

WM_POWERBROADCAST doesn't work for laptops
https://learn.microsoft.com/en-us/windows/win32/power/wm-powerbroadcast

PowerRegisterSuspendResumeNotification is available on Windows 8+ which works as expected:
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registersuspendresumenotification

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza rastreando la implementación de SystemEvents.PowerModeChanged y cómo gestiona WM_POWERBROADCAST. Compara ese flujo con PowerRegisterSuspendResumeNotification y, a continuación, ejecuta la reproducción proporcionada en un Surface Pro. Se considera terminado cuando el evento informa de Suspend durante la suspensión y la reanudación sin introducir regresiones en el comportamiento de escritorio.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp
Área
desktop, operating-systems
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.