2012-04-07 10 views
0

Ich schreibe einen Kernel-Treiber, der Registrierungsroutinen Callback über CmRegisterCallbackEx registriert. Ich möchte den vollständigen Schlüsselpfad erhalten und über DbgPrint drucken. In dem Rückruf, abfragen ich den Schlüssel erfolgreich Zeiger mit KeyNameInformation Flagge mit ZwQueryKey, aber in KEY_NAME_INFORMATION Dokumentation Struktur ich gelesen, dass:ZwQueryKey mit KeyNameInformation Alternative für XP?

verfügbar in Windows Vista und späteren Versionen des Windows-Betriebssystemes .

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553381(v=vs.85).aspx

So ist es eine Möglichkeit, vollständigen Registrierungspfad in Kernel in Windows XP zu bekommen? Ich weiß, dass es möglich ist, weil SysInternals-Tools diese Funktionalität bereits haben und es in XP funktioniert. mit KeyNameInformation Flagge auf XP SP2

Dank

UPDATE


Ich habe gerade versucht Schlüssel vollständigen Pfad zu erwerben (als MSDN Staaten, wird dieser Flag auf XP nicht unterstützt, siehe Link oben) und zu meinem größte Überraschung, es hat funktioniert. Wer weiß, warum MSDN angibt, dass dieses Flag nicht unterstützt wird? Ist es ein einfacher Fehler oder habe ich etwas falsch verstanden?

Danke.

+0

Versuchen Sie, Ihre Programmiersprache zu markieren, die es einfacher macht, zu helfen. – SenthilPrabhu

+0

Meine Vermutung ist, dass es nicht unterstützt wird, weil XP EOL ist? – hellork

+0

@hellork, was meinst du mit EOL? Eigentlich sieht es so aus, als wäre es perfekt unterstützt. Dies ist wahrscheinlich ein Fehler in der Dokumentation. Ich habe es bereits gemeldet und hoffe, dass sie – Davita

Antwort

1

Es ist durchaus möglich, dass Unterstützung für KeyNameInformation in einem Patch/Inline hinzugefügt wurde. Die Frage ist, was werden Sie auf XP SP0 tun?

Sie könnten ObReferenceObjectByHandle() in Betracht ziehen, um das KEY-Objekt von Ihrem Schlüsselhandle abzurufen und dem mit ObQueryObjectName() zu folgen.

+0

danke, ich denke, ich werde Ihrem Vorschlag folgen :) – Davita

+0

Wow, die gleiche Antwort hier auf SO, als sie auf [MSDN Foren] (http://social.msdn.microsoft.com/Forums/en-US/wdk/thread/07495c27-6b33-4235-973e-f79c6fe7090c). –