Prijavite se pomoću Microsofta
Prijavi se ili izradi račun.
Zdravo,
Odaberite drugi račun.
Imate više računa
Odaberite račun putem kojeg se želite prijaviti.

Simptomi

Rekurzivne pozive izvezeni USER32 prozora upravitelja funkcije. DLL može vratiti bez provedbe traženu operaciju i bez postavljanja kod pogreške. To se obično događa u aplikacijama s Duboko ugniježđene prozor hijerarhije. Među simptomi možete naići:

  • Aplikacija pomoću hijerarhije Duboko ugniježđene prozor uspjeti veličinu podređenog windows ispravno kada se promijeni veličina prozora okvira. Windows su premještene i/ili resized po pozivanje MoveWindow, SetWindowPos ili DeferWindowPos.

  • Prozor poruke ne prenose windows nadređenog ili podređenog windows prema očekivanjima. DefWindowProc možda rasprostiranje uspješno poruke prozora nadređenog ili podređenog prozora primanja poruka.

  • Prozor poruke poslane prozoru po pozivanja otprema nije primljen SendMessageTimeout ili SendMessageCallback navedeni prozor.

Uz to, aplikacije koje inače normalno funkcioniraju također pojaviti simptomi gore opisanih ako su WH_CALLWNDPROC ili WH_CALLWNDPROCRET prozor kuke postavljena na niti u aplikaciji koje posedujete u windows. Prozor kuke može postaviti na određenu nit ili na sve korisničkog Sučelja niti za pozivanje funkcije SetWindowsHookEx.

Uzrok

Takvo je ponašanje rezultat Windows se može rasti snop jezgre pozivnih niti za izvođenje tražene operacije. Zbog dodatne jezgre snop rukovanja postupke potrebne u na x64 okruženju sustava Windows snop jezgre biti utrošena brzinom brže nego u x86 se izvoze okruženje Windows pri izradi rekurzivnih poziva funkcije upravitelja prozora po USER32. DLL. Iako simptome opisane u ovom članku su vjerojatno će doći u x64 platforme Windows, moguće je da rekurzivne pozive trošiti u niti jezgre snop na x86 platforme Windows.

Rješenje

Sljedeća rješenja možete koristiti da biste zaobišli taj problem

  1. Promijenite veličinu podređenog windows prilikom rukovanja WM_WINDOWPOSCHANGED prozor poruke umjesto toga prosleđivanje poruke DefWindowProc.

  2. Asinkrono promijeniti veličinu podređenog windows kada nadređeni prozor resized umjesto promjene veličine podređeni windows tijekom obrade u WM_WINDOWPOSCHANGED ili WM_SIZE prozor poruke.

  3. Redizajnirati aplikacije korisničkog Sučelja da smanjite dubinu ugniježđene prozor.

Dodatne informacije

Dijelovi podsustav Win32 implementirana u jezgrenom načinu rada upravljački program uređaja (WIN32K. SYS). Pozivi funkcije izvezene USER32. DLL za promjenu stanja prozora, uključujući njegovu veličinu i položaj, poziv će u WIN32K. SYS izvršiti traženu operaciju. Rezultat funkcije koje obično mijenjati stanje prozor u prozoru poruke šalje prozor izmjenjuje, gdje WIN32K. SYS čini oblačić korisnički način rada za pozivanje procedure prozor prozor izmjenjuje. Na primjer, WIN32K. SYS će poslati prozor poruku WM_WINDOWPOSCHANGING prozora i WM_WINDOWPOSCHANGED prozora poruke prilikom izmjene veličina i/ili položaj prozora po pozivanje funkcije SetWindowPos. DefWindowProc kod poruka WM_SIZE kada naziva WM_WINDOWPOSCHANGED poruku poslati navedeni prozor i promijenio veličinu prozora. Aplikacija obično veličinu podređenog windows kada nadređeni prozor prima WM_WINDOWPOSCHANGED ili WM_SIZE prozor poruku, koji potencijalnih klijenata izradi rekurzivne pozive u WIN32K. SYS za Duboko ugniježđene prozor hijerarhije. Aplikacije koje inače normalno funkcioniraju možda uočiti simptome opisane u ovom članku kuke WH_CALLWNDPROC ili WH_CALLWNDPROCRET postavite na niti u procesu. Ovo je zbog prostora dodatne jezgre snop koji je potrošen kada WIN32K. SYS rukuje pozivanja procedure kukom. Pozivanje otprema slanje poruke prozor prozor vlasništvu pozivnih niti obično poziv procedure prozor prozor primanje poruka bez potrebe za poziv u WIN32K. SYS. Međutim, Otprema poziv će u WIN32K. SYS ako postoje kuke WH_CALLWNDPROC ili WH_CALLWNDPROCRET kuke skup na pozivnih niti kao WIN32K. SYS upravlja kuke i držače pozivanja procedure kukom. Kao spomenuto, DefWindowProc će poslati navedeni prozor WM_SIZE poruku kada naziva WM_WINDOWPOSCHANGED poruku i promijenio veličinu prozora. Kuke nije WH_CALLWNDPROC ili je WH_CALLWNDPROCRET će uzrokovati otprema poziv čini DefWindowProc za prijelaz u jezgrenom načinu rada pozivanje procedure kukom. Poziv promjenu veličine windows podređeni prilikom rukovanja poruka WM_WINDOWPOSCHANGED prozora umjesto WM_SIZE prozora poruke će smanjiti uklanjajući potrebu za otprema za prijelaz u jezgrenom načinu rada u redoslijedu korištenja snop jezgre kukom postupke. Programeri obrazaca Windows aplikacije koje su nailazi na problem treba se odnositi KB članak 953934dodatne informacije.

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na njih, pošaljete povratne informacije i čujete se sa stručnjacima s bogatim znanjem.

Jesu li vam ove informacije bile korisne?

Koliko ste zadovoljni jezičnom kvalitetom?
Što je utjecalo na vaše iskustvo?
Ako pritisnete Pošalji, vaše će se povratne informacije iskoristiti za poboljšanje Microsoftovih proizvoda i usluga. Vaš će IT administrator moći prikupiti te podatke. Izjava o zaštiti privatnosti.

Hvala vam na povratnim informacijama!

×