Introduksjon
Denne artikkelen beskriver et problem der enn unntak oppstår når flere tråder kaller funksjonen C kjøring "atexit" på samme tid i Windows Embedded kompakt 7. En oppdatering er tilgjengelig for å løse dette problemet. Før du installerer denne oppdateringen, må alle tidligere utgitte oppdateringer for dette produktet installeres.
Symptomer
Når flere tråder kaller funksjonen C kjøretid atexit på samme tid i Windows Embedded kompakt 7, kan det oppstå et unntak. Unntaket oppstår når koden som kaller opp funksjonen atexit ikke serialiseres eller når atexit -funksjonen settes inn av kompilatoren.
Årsak
Dette problemet oppstår fordi C-Run time atexit -funksjonen ikke er trådsikker. Derfor er minne-tabellen bruker funksjonen skadet.
Løsning
Informasjon om programvareoppdatering
En støttet programvareoppdatering er nå tilgjengelig fra Microsoft som kompakt 7 månedlige oppdateringen for Windows Embedded (juni 2017).
Obs! Denne Windows innebygde kompakt 7 månedlige oppdateringen lastes ned fra følgende webområde for Microsoft Download Center:
Forutsetninger
Denne oppdateringen støttes bare hvis alle tidligere utgitte oppdateringer for dette produktet er installert.
Krav om omstart
Når du har installert denne oppdateringen, må du utføre et rent Bygg av hele plattformen. Hvis du vil gjøre dette, bruker du én av følgende metoder:
-
Klikk Praktisk løsningpå Lag -menyen, og klikk deretter Bygge løsningen.
-
Klikk Bygge løsningenpå Lag -menyen.
Du har ikke datamaskinen på nytt etter at du har brukt denne programvareoppdateringen.
Informasjon om erstatning av oppdatering
Denne oppdateringen erstatter ikke andre oppdateringer.
Filinformasjon
Dette er en full wave-versjon. Nesten alle binærfilene er berørt av denne utgaven.
Følgende kildefilene er berørt av denne versjonen::
private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.cMer informasjon
I et miljø med multithread bli funksjonen tabellene med atexit skadet av et annet atexit-kall på grunn av ikke-tråden sikkerhet. Dette kan føre til minnefeil og unntak. Atexit -funksjonen brukes til å registrere en rutine som skal utføres når programmet avsluttes eller laster ut en DLL-fil. Feil i tråden sikkerhet kan føre til endring av rutinen exit og ødeleggelse av Avslutt-funksjonen tabellene.
Referanser
Lær mer om terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.