Hallo
Wenn ich im Windows Kernel Mutex und Timer verwende wie kann ich diese
dann löschen?! Habe sowohl für Mutex als auch für Timer einen Speicher
mit ExAllocatPool angefordert und dachte ich kann ihn mit ExFreePool
wieder freigeben! Aber dann bekomme ich Fehlermeldungen! Ist meine
Denkweise falsch was den Kernel angeht?
MFG Gast
Hi
Damit ein Programm nicht 2 mal gestartet werden kann gehen auch folgende
Funktionen:
Beim Start:
Mutex:=CreateMutex(nil,True,MutexName);
beim Beenden:
CloseHandle(Mutex);
MfG Spess
> To disable a previously set timer object, a driver calls> KeCancelTimer. This routine removes the timer object for the> system's timer queue. Generally, the timer object is not set> to the signaled state and the CustomTimerDpc routine is not> queued for execution. However, if the timer is about to expire> when KeCancelTimer is called, expiration might occur before> KeCancelTimer has a chance to access the time queue, in which> case signaling and DPC queuing will occur.
Immerhin gibt es mittlerweile wenigstens so eine Art Dokumentation des
DDK, das war früher noch viel schlimmer.
Er ist bei mir der Rechner und nachdem ich diese Zeile im Softice nicht
als Breakpoint angeben kann gehe ich davon aus das der Compiler sie
wegoptimiert!
MFG Gast
> und nachdem ich diese Zeile im Softice nicht> als Breakpoint angeben kann gehe ich davon aus das der Compiler sie> wegoptimiert!
Wenn Du einen Debug-Build machst, wird gar nichts wegoptimiert.
Mal das Disassemblat angesehen?
hi
also ich mach ein checked build was ja einen Debugbuild gleich kommen
sollte!
Muss ich für windows xp bzw server 2003 den Parameter IN
POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, angeben? Weil eigentlich
ist er optional oder kann ich ihn auf NULL setzen!? Weil egal ob er null
oder eine Wert hat wird die Funktion PsCreateSystemThread nicht
ausgeführt?!
MFG Gast
hallo
Habe Visual Studio 2005 drauf und winddk! Bin leider recht neu und würde
daher gerne Fragen wie man sich das disassambly anschaut!???
Habe leider im internet nichts für mich brauchbares gefunden!
MFG Gast
> würde daher gerne Fragen wie man sich das disassambly anschaut!???
a) dumpbin /disasm blafusel.sys
b) im Debugger. Das sollte Dein SoftICE ja wohl hinbekommen, daß da
nicht nur der C-Quelltext angezeigt wird.
Habe nun disasm über die Sys file laufen lassen und da zeigt er ja oben
die Addressen für die jeweiligen funktionen an!? Dort zeigt er die
Funktion PsCreateSystemThread gar nicht an!? Daher ist doch anzunehmen
das er es wegotimiert oder?
MFG Gast
Da der Compiler bei einem Debug-Build überhaupt nicht optimiert, wird
auch nichts wegoptimiert. Da liegt ein anderes Problem vor.
Der dumpbin-Disassembler ist recht primitiv, der ersetzt nicht die
Adressen von System- oder Kernelaufrufen durch die passenden
symbolischen Namen. Das aber kann resp. sollte können das von Dir
verwendete SoftICE.
Wenn Du das schon dazu bringst, in Deinem Code herumzusteppen, dann
sollte es Dir auch möglich sein, nicht nur den C-Quelltext, sondern auch
noch den zugehörigen Assemblercode bzw. eine Mischung aus beidem
anzuzeigen.
Hi
Ok werde es nochmals mit softice erkennen! Allerdings stellt sich mir
die Frage wenn ich nun den assemblercode habe woran ich genau erkennen
kann warum die eine Funktion nicht ausgeführt wird!
MFG Gast
Du kannst ja erst mal versuchen, den zu den wenigen von Dir geposteten
Zeilen gehörenden Assemblercode zu finden und in der Mischform
(C-Source, Assembler) anzusehen. Da solltest Du den Aufruf der Funktion
auch im Assemblercode sehen können.
Du könntest ja auch o.g. Mischform hier mal posten, sofern es Dir
möglich ist, SoftICE eine Textdatei zu entlocken.
Hallo
HAbe die timer jetzt rausgehaut und stattdessen KeDelayExecutionThread()
in Verwendung um eine Verzögerung von 20ms hinzubekommen! Wenn ich nun
20ms einstelle hat er aber eine Verzögerung von rund 30ms! Ist das
normal? weil wenn ich 15ms einstelle geht es recht gut!
Danke im vorhinein!
MFG Harald