Page Fault Fehler

Gast #928126
Lesenswert?

Hallo
Habe ein kleines Problem welches ich nicht alleine lösen kann und eure 
Hilfe brauche!

Habe folgenden Code in eine Kernelmodul welcher mir ständig eine Page 
Fault (0Eh) hervorruft:
1
void freemsg(mblk_t *mp)
2
{
3
mblk_t *tmp1, *tmp2;
4
tmp1=mp;
5
while(tmp1!=NULL)
6
{  
7
tmp2=tmp1->b_cont;
8
freeb(tmp1);
9
tmp1=tmp2;
10
}
11
}

Softice zeigt mit den Stack auf die Zeile freeb(tmp1) daher müsste der 
Fehler ja in der Zeile darüber passieren! Hat vielleicht irgendwer einen

Tip!

Danke

MFG Gast
Gast #928142
Lesenswert?

sorry habe mich vorher verschrieben! Hier nochmals der code formatiert
1
void freemsg(mblk_t *mp)
2
{
3
   mblk_t *tmp1, *tmp2;
4
   tmp1=mp;
5
   while(tmp1!=NULL)
6
   {
7
      tmp2=tmp1->b_cont;
8
      freeb(tmp1);
9
      tmp1=tmp2;
10
   }
11
}
Gast #928181
Lesenswert?

Das freeb ruft in einer kleinen Unterfunktion den Befehl ExFreePool auf! 
Musste jetzt aber nach einer debugrunde feststellen das der Fehler 
anscheinein immer in einen anderen Befehl auftritt. Daher dürfte es kein 
deterministisches verhalten ergeben! Bin bei der Treiberprogrammierung 
noch recht neu und daher fehlt die Erfahrung bei solchen Fehlern! Fürs 
Speicher hollen habe ich den Type pagedpool genommen! Könnte das ein 
Fehler sein? Oder macht es keinen Unterschied ob ich paged oder nonpaged 
soeicher nehme?!

MFG Gast
Gast #929250
Lesenswert?

Hallo

Habe derzeit ein grosses Problem mit Mutex. Ich habe eine Funktion zum 
initialisieren, hollen, freigeben und löschen! Wenn ich zum Testen in 
der Initalisierungsfunktion das Mutex holle und wieder freigebe geht es. 
wenn ich es allerdings in den Funktionen mache geht es nicht mehr! Kann 
mir da jemand einen tip geben wo der Fehler liegen könnte!?

MFG Gast

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren