Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem mit NtQueryObject

  Alt 1. Nov 2003, 14:22
Ich will NtQueryObject aufrufen, bekomme aber eine AccessViolation. Wieso?

So ist NtQueryObject importiert:

Delphi-Quellcode:
const
  ntdll = 'ntdll.dll';

  NTSTATUS = ULONG;
  PVOID = Pointer;
  USHORT = Word;
 
  OBJECT_INFORMATION_CLASS = (ObjectBasicInformation, ObjectNameInformation,
    ObjectTypeInformation, ObjectAllInformation, ObjectDataInformation);
  TObjectInformationClass = OBJECT_INFORMATION_CLASS;


function NtQueryObject(
  ObjectHandle: THandle;
  ObjectInformationClas: TObjectInformationClass;
  out ObjectInformation: PVOID;
  ObjectInformationLength: ULONG;
  out ReturnLength: PULONG): NTSTATUS; stdcall; external ntdll name 'NtQueryObject';
So rufe ich es auf:
Delphi-Quellcode:
var
  ObjectInformation: Pointer;
  ReturnLength: PULONG;
  hMutex: THandle;
begin
  hMutex := CreateMutex(nil, False, 'testmutex');
  if hMutex = 0 then
  begin
    SysErrorMessage(GetLastError);
    Exit;
  end;
  NtQueryObject(hMutex, ObjectNameInformation,
    ObjectInformation, 2048, ReturnLength);
end;
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat