AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

CTL_CODE Funktion in Delphi

Ein Thema von peanut · begonnen am 17. Jul 2006 · letzter Beitrag vom 20. Jul 2006
 
peanut
(Gast)

n/a Beiträge
 
#5

Re: CTL_CODE Funktion in Delphi

  Alt 17. Jul 2006, 22:05
Hallo,

um die Situation zu klären: Ich verwende einen Treiber von Ivo Ivanov (CodeProject: http://www.codeproject.com/threads/procmon.asp). Dieser sollte einem beim Erstellen und Beenden eines Prozesses über einen Event bescheid geben.

Ich möchte dann mittels

DeviceIoControl() und GetOverlappedResult()

die von ihm definierte Datenstruktur

typedef struct _CallbackInfo
{
HANDLE hParentId;
HANDLE hProcessId;
BOOLEAN bCreate; // (*)
}CALLBACK_INFO, *PCALLBACK_INFO;

auslesen. Leider scheitert bei mir folgender Aufruf

DeviceIoControl(m_hDriver, IOCTL_PROCVIEW_GET_PROCINFO, nil, 0, @CallbackInfo^, SizeOf(TCallbackInfo), dwBytesReturned, @ov) Ich denke, dass es vielleicht an meiner TCallbackInfo-Datenstruktur liegt:

Delphi-Quellcode:
 TCallbackInfo = record
    ParentId : THANDLE;
    ProcessId: THANDLE;
    bCreate : LongBool;
 end;
 PCallbackInfo = ^TCallbackInfo;
Nun wollte ich wissen, welches Delphi-Boolean nun dem BOOLEAN Typ aus C++ entspricht, siehe (*), denn THandle = HANDLE => das kann demnach nicht falsch sein. Auch das Initialisieren des Treibers und Warten bis ein Event gefeuert wird funktioniert, nur der Aufruf mittels DeviceIoControl scheitert.

Zitat:
Christian Seehase schrieb:

also ich erhalte da $0022E000 als Ergebnis.
...
Woher hast Du eigentlich IOCTL_PROCVIEW_GET_PROCINFO ?
Das kann ich auch im DDK (Windows 2003) nicht entdecken.
Danke, auch ich erhalte $0022E000 als Ergebnis, daran kann es also nicht liegen, dass ich Probleme beim Lesen vom Treiber habe...

Was die CTL_CODE Funktion betrifft. Ivo hat mit IOCTL_PROCVIEW_GET_PROCINFO wohl einen eigenen IoControlCode eingeführt, keine Ahung wieso? Definiert hatte er ihn aber wie folgt:

#define FILE_DEVICE_UNKNOWN 0x00000022
#define IOCTL_UNKNOWN_BASE FILE_DEVICE_UNKNOWN
#define IOCTL_NTPROCDRV_GET_PROCINFO CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0800, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

somit müsste doch IOCTL_NTPROCDRV_GET_PROCINFO auch ein FILE_DEVICE_UNKNOWN sein oder???

Viele Grüße

peanut.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz