CreateFile() ShareMode und Win2000/XP



  • Hallo,

    kann es sein dass es mit den genannten Betriebssystemen nicht mehr möglich ist Dateien im ShareMode 0 (also keinerlei Zugriff von außen weiter erlaubt) zu öffnen?

    hTest_File = CreateFile("test.dat",
    			GENERIC_READ,	         // Desired Access
    			0,		         // Share Mode
    			NULL,		         // Security Attributes
    			OPEN_EXISTING,	         // Creaton Dispotion
    			FILE_ATTRIBUTE_NORMAL,	 // Flags and Attrubuts
    			NULL);			 // Template File
    

    funktioniert nicht, während ...

    hTest_File = CreateFile("test.dat",
    			GENERIC_READ,	         // Desired Access
    			FILE_SHARE_READ,         // Share Mode
    			NULL,		         // Security Attributes
    			OPEN_EXISTING,	         // Creaton Dispotion
    			FILE_ATTRIBUTE_NORMAL,	 // Flags and Attrubuts
    			NULL);			 // Template File
    

    ... funktioniert.

    Vielen Dank für Hinweise!



  • Also bei mir (XP Home, NTFS) gehts.
    Vielleicht hat ein anderer Prozess es schon geöffnet, so dass kein exklusiver Zugriff mehr erlaubt ist ?



  • WinXP Prof SP1: Geht.
    WinXP Prof SP2: Geht.
    Win 2000 SP4: Geht.

    Mehr hab ich noch nicht in meinem VMware eingerichtet...
    Du mußt halt (wie SeppSchrott schon anmerkt) darauf achten, das die Datei wirklich noch nicht geöffnet wurde.

    Was sagt denn GetLastError bei solchen Fehlschlägen?



  • Seltsam, es funktioniert nun.

    Ich hatte sogar den Rechner neu gestartet um es zu testen, und es funktionierte dennoch nicht. Vielleicht wollte der Rechner mich (wieder einmal) einfach nur ärgern. 😉

    Vielen Dank für die Ratschläge!


Anmelden zum Antworten