Hi Apollonius,
Diese Funktion scheint die richtige zu sein, aber ich musste sie mir selbst importieren und entweder hat das nicht so ganz funktioniert oder ich rufe die Funktion falsch auf.
(ist jetzt alles nur mal dahingeklatscht
Delphi-Quellcode:
interface
type
OBJECT_INFORMATION_CLASS = (ObjectBasicInformation,
ObjectNameInformation,
ObjectTypeInformation,
ObjectAllInformation,
ObjectDataInformation);
PObjectBasicInformation = ^TObjectBasicInformation;
TObjectBasicInformation =
packed record
Attributes: Cardinal;
GrantedAccess: ACCESS_MASK;
HandleCount: Cardinal;
PointerCount: Cardinal;
Reserved:
Array[0..9]
of Cardinal;
end;
function NtQueryObject(
Handle: THandle;
ObjectInformationClass: OBJECT_INFORMATION_CLASS;
out ObjectInformation: Pointer;
ObjectInformationLength: ULONG;
out ReturnLength: PULONG): Cardinal;
external '
ntdll.dll';
Aufruf:
Delphi-Quellcode:
var inf: Pointer;
size: ULONG;
l : PULONG;
begin
size := SizeOf(TObjectBasicInformation);
NtQueryObject(FileHandle,ObjectBasicInformation,inf,size,l);
end;
Habe auch schon gegoogelt und in der
DP gesucht, aber nichts gefunden was mir geholfen hätte. Hab herausgefunden das die Aufrufkonvention "NTAPI" ist?!
Zitat:
NTSTATUS
NTAPI NtQueryObject (
IN
HANDLE ObjectHandle,
IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
OUT PVOID ObjectInformation,
IN ULONG ObjectInformationLength,
OUT PULONG ReturnLength OPTIONAL
);
Ich weiß grad einfach nicht weiter... Bin überfordert