AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi MemoryMapped Files unter Vista - keine Daten
Thema durchsuchen
Ansicht
Themen-Optionen

MemoryMapped Files unter Vista - keine Daten

Ein Thema von Zacherl · begonnen am 29. Mai 2007 · letzter Beitrag vom 18. Jan 2008
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

MemoryMapped Files unter Vista - keine Daten

  Alt 29. Mai 2007, 18:22
Hey,

hab an einem Beispiel gehockt, welches mit MMFs funktioniert. Unter XP klapt das auch wunderbar. Unter Vista habe ich eine seltsame Feststellung gemacht. Und zwar werden keine Daten in mein MMF geschrieben.

Zum Testen habe ich die Schreib und Lese-Funktion im selben Prozess kurz hintereinander aufgerufen. Der Pointer bleibt leer .. kann sich das jemand erklären?

Gruß Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#2

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 29. Mai 2007, 18:32
Hi Florian,

ich habe irgendetwas in Erinnerung, daß das was Du machen möchtest unter Vista nicht mehr so einfach geht. Hier liegen wahrscheinlich Probleme mit den Zugriffsrechten vor (ist unter Vista in vielen Fällen nicht mehr erlaubt).

Es wird das SeCreateGlobalPrivilege benötigt, doch die UAC verhindert daß irgendwas außer einem Service dies erhält.

Bekommst Du denn etwas aus der Richtung GetLastError bzw. als Rückgabewert? Das dürfte in Richtung "Access Denied" gehen...

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 29. Mai 2007, 18:35
Vesuch mal auf Named Pipes auszuweichen.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 29. Mai 2007, 20:53
Hast du vielleicht ein kleines Beispiel dazu?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 30. Mai 2007, 04:23
Nein, ich kaempfe selber noch damit.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 30. Mai 2007, 19:46
Okey ich werd auch mal bisschen rumsuchen. Grade auch wie es ist, wenn ein Prozess unter Adminrechten und der andere mit normalem Token läuft. Denke mal dann wird es aber überhauptnicht funktionieren ..

Wenn du eine Lösung gefunde hast würde ich mich sehr freuen, wenn du mir die kurz zeigen könntest
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 30. Mai 2007, 20:10
wie sieht dein Quellcode aus? Prüfst du auch die Rückgabewerte? Ich kann mir nicht vorstellen das du einfach nicht in ein MMF schreiben kannst aber keine Fehlercodes zurück geliefert werden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 30. Mai 2007, 20:19
Ich habe Luckies Beispiel genommen. Die Fehlercodes geben nur SUCCESS zurück. Meine Funktion ist so geändert, dass ich direkt einen Pointer schreibe.

Delphi-Quellcode:
function WriteToMMF(Data: Pointer; Len: Integer; Filename: string): DWORD;
var
  dwResult: DWORD;
  hFileMapping: THandle;
  Mem: Pointer;
begin
  dwResult := 0;
  hFileMapping := CreateFileMapping(INVALID_HANDLE_VALUE, nil,
    PAGE_READWRITE, 0, Len, PChar(Filename));
  if hFileMapping <> 0 then
  begin
    Mem := MapViewOfFile(hFileMapping, FILE_MAP_WRITE, 0, 0, 0);
    if Assigned(Mem) then
    begin
      CopyMemory(Mem, Data, Len);
      //CloseHandle(hFileMapping);
    end;
  end
    else
  begin
    dwResult := GetLastError;
  end;
  Result := dwResult;
end;
Erster "Fehler" rufe ich CloseHandle auf, kann ich im anderen Programm schon gar nicht auf die Daten zugreifen. Zweite Sache ist .. ich habs genauer getestet.

Ich schicke erst einen PChar, welcher auch korrekt ankommt. Danach sende ich Pointer(Len) mit SizeOf(Integer). Dies ist die Passage, welche nicht ankommt.
Das Längenbyte ist 0. Was ich versuche ist unabhängig vom String eine ganze Resource zur anderen Anwendung zu schicken. Da die Anwendung ja nicht weiß wie groß die Resource sein wird, musste ich das mit dem Längenbyte vorweg machen.

Insgesamt habe ich zur besseren Übersicht einfach 3 Verschiedene "Dateinamen" verwendet.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 30. Mai 2007, 20:28
Zitat:
Erster "Fehler" rufe ich CloseHandle auf, kann ich im anderen Programm schon gar nicht auf die Daten zugreifen. Zweite Sache ist .. ich habs genauer getestet.
Das ist kein Fehler. Wenn du die Datei schließt und die Memory-Datei somit von keinem Prozess mehr geöffnet ist wird sie wieder frei gegeben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: MemoryMapped Files unter Vista - keine Daten

  Alt 30. Mai 2007, 21:03
Achso okey .. und das zweite Verhalten? Kann ich mir irgendwie nicht erklären =/
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz