![]() |
File handle readonly?
Hi,
Ich suche eine Möglichkeit herauszufinden ob ein Filehandle nur readonly ist.. Also nur GENERIC_READ. Habe in der Windows Unit die Funktion ![]() Würde mich über Hilfe freuen ;) Gruß Neutral General |
Re: File handle readonly?
Es gibt wahrscheinlich auch einen dokumentierten Weg, aber zur Not kannst du es mit
![]() |
Re: File handle readonly?
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:
Aufruf:
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';
Delphi-Quellcode:
Habe auch schon gegoogelt und in der DP gesucht, aber nichts gefunden was mir geholfen hätte. Hab herausgefunden das die Aufrufkonvention "NTAPI" ist?!
var inf: Pointer;
size: ULONG; l : PULONG; begin size := SizeOf(TObjectBasicInformation); NtQueryObject(FileHandle,ObjectBasicInformation,inf,size,l); end; Zitat:
|
Re: File handle readonly?
NTAPI = WINAPI = CALLBACK = StdCall
Lass die Outs weg oder verwende keine Zeiger. Die Outs in C sind nur ein Hinweis, verändern aber eigentlich nichts, ganz im Gegensatz zu Delphi, wo ein Zeiger auf eine Variable vom angegebenen Datentyp übergeben wird. Außerdem rufst du die Funktion wie fast alle anderen WinAPI-Funktionen auf, die Daten variabler Größe speichern: DU musst den Puffer allozieren, nicht die Funktion selbst. |
Re: File handle readonly?
Hi,
Zitat:
Auf die Sache mit den outs wär ich jedoch nicht gekommen ;) Danke, es funktioniert jetzt :) Gruß Neutral General |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 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 by Thomas Breitkreuz