Problemi con la funzione CreateWindowEx per le app a 32 bit in Windows 10

In alcuni casi, dopo un aggiornamento a una versione più recente, Windows 10 causa arresti anomali o altri problemi quando chiama la funzione CreateWindowEx da msctf.dll quando vengono create finestre in alcune applicazioni a 32 bit. In questo post, capiremo cos'è la  funzione CreateWindowEx : esploreremo le possibili cause di questo errore di funzione e quindi forniremo la soluzione consigliata per mitigare il problema.

Comprendere la funzione CreateWindowEx

Funzione CreaFinestraEx

Le applicazioni Windows(Windows) , incluse le applicazioni .NET che utilizzano Windows Forms o Windows Presentation Foundation ( WPF ), creano le relative finestre chiamando le funzioni CreateWindowExA o CreateWindowExW .

Entrambe le funzioni chiamano internamente una funzione USER32 comune che eseguirà alcuni parametri di convalida, come gli stili di finestra e gli handle specificati nella chiamata, gestisce la creazione di una finestra figlio MDI se è specificato lo stile di finestra esteso (MDI)WS_EX_MDICHILD ed elabora il contesto di attivazione corrente per la chiamata filo. Se tutto va bene sul lato USER32(USER32-side) della chiamata a CreateWindowEx , chiama l'implementazione in modalità kernel ( WIN32K ) di CreateWindowEx .

CreateWindowEx eseguirà le seguenti attività durante il tentativo di creare un nuovo oggetto finestra:

  • Determina se la creazione di un handle per il nuovo oggetto finestra supererà il  limite di quota dell'handle utente(User) per il processo chiamante.
  • Alloca memoria per il nuovo oggetto finestra dall'heap del desktop.
  • Inizializza la memoria per il nuovo oggetto finestra.
  • Crea un handle per il nuovo oggetto finestra nella tabella User handle.

Cause degli errori di CreateWindowEx

Alcune condizioni che possono attivare il problema della funzione CreateWindowEx sono enumerate come segue:

  • La classe della finestra specificata non esiste.
  • Utilizzo di stili di finestra non validi o stili di finestra estesi.
  • Utilizzo di handle utente(User) non validi , come handle di finestra e handle di menu.
  • Tentativo di creare una finestra figlio senza specificare una finestra padre.
  • Tentativo di creare una finestra figlio o una finestra di proprietà e il genitore/proprietario specificato appartiene a un desktop diverso rispetto al thread chiamante.
  • La creazione di una finestra figlio o di proprietà supererà il limite della finestra nidificata.
  • La creazione di un nuovo oggetto finestra supererà la quota di handle per il processo chiamante.
  • Nell'heap del desktop è disponibile un heap insufficiente per allocare memoria per il nuovo oggetto finestra.
  • Non ci sono voci disponibili nella tabella User handle.

Risolvi(Fix CreateWindowEx) i problemi della funzione CreateWindowEx per le app a 32 bit in Windows 10

Microsoft ha fornito una soluzione ai problemi della funzione CreateWindowEx .

Per aggirare questo problema, dovrai ripristinare l' installazione di Windows 10 alla versione precedente.

L'opzione di ripristino in Windows 10 è disponibile per 10 giorni(10 days) (nella maggior parte dei casi) dopo aver aggiornato l'installazione di Windows 10.

Questa operazione conserva i tuoi file personali, ma rimuove le applicazioni e i driver che sono stati installati dopo l'aggiornamento e annulla anche le modifiche apportate alle impostazioni.

Se l'opzione di ripristino non è disponibile: esegui il backup dei tuoi file personali , puoi contattare il supporto IT o l'helpdesk o il supporto Microsoft(Microsoft Support) per assistenza per ripristinare il dispositivo alla versione precedente di Windows 10(Window 10) .

That’s it!

PS : Microsoft sta lavorando a una risoluzione e fornirà un aggiornamento nella prossima versione di Windows 10 .



About the author

Sono un software engineer con oltre 10 anni di esperienza nel campo dell'ingegneria Windows. Sono specializzato nello sviluppo di applicazioni basate su Windows, nonché di driver hardware e audio per il sistema operativo Windows di nuova generazione di Microsoft, Windows 11. La mia esperienza nella creazione di app per Windows mi rende una risorsa particolarmente preziosa per qualsiasi azienda che desideri sviluppare prodotti tecnologici innovativi.



Related posts