Zum Hauptinhalt springen

DrvCreateFile

DrvCreateFile

Aufruf beim Erzeugen einer Datei

Details

  • Request
  • MessageId: _DrvReqCreateFile Id des Ereignisses
  • ItemHeader: _DrvItemHeader Kopf des Datenpakets
  • ProtocolId: 0xF3A49E52 Id des verwendeten Protokolls
  • ProtocolVersion: 0x00040000 Version des verwendeten Protokolls
  • ItemAuthUserDomain: _DrvItemAuthUserDomain Informationsbereich des am Betriebssystem angemeldeten Benutzers
  • UserName: alpha Name des angemeldeten Benutzers
  • DomainName: alpha Domäne des angemeldeten Benutzers
  • ItemFilePath: _DrvItemFilePath Informationsbereich für die Datei
  • FilePath: alpha Pfad und Dateiname (ohne Laufwerksbuchstabe)
  • ItemFileAccess: _DrvItemFileAccess Informationsbereich für die Zugriffsart
  • FsiFlags: int Zugriffsart (siehe Text)
  • ItemFileAttributes: _DrvItemFileAttributes Informationsbereich für Dateiattribute
  • FileAttributes: int Dateiattribute
  • Siehe: Verwandte Befehle

Dieses Ereignis wird aufgerufen, wenn eine Datei oder ein Verzeichnis auf dem Laufwerk erzeugt wird. In dem Request wird der am Betriebssystem angemeldete Benutzer übergeben. In FilePath befindet sich der Pfad (ohne Laufwerksbuchstaben) und der Dateiname der neu angelegten Datei. Der Inhalt von FsiFlags kann mit folgenden Konstanten, oder Kombinationen davon, verglichen werden:

Die Dateiattribute stehen in FileAttributes und können mit folgenden Konstanten verglichen werden:

  • _FsiAttrHidden: Versteckte Datei

  • _FsiAttrSystem: Systemdatei

  • _FsiAttrDir: Verzeichnis

  • _FsiAttrArchive: Archivdatei

  • Response

  • MessageId

    • _DrvResCreateFile
    • Id der Antwort
  • ItemHeader

    • _DrvItemHeader
    • Kopf des Datenpakets
  • ProtocolId

    • 0xF3A49E52
    • Id des verwendeten Protokolls
  • ProtocolVersion

    • 0x00040000
    • Version des verwendeten Protokolls
  • ItemFileCustom

  • Custom01

    • alpha
    • Benutzerdefinierte Informationen
  • ItemFileAuthorisation

  • UserId

    • int
    • Zugriffs-Id
  • Authorisation

    • int
    • Berechtigungen
  • ItemResult

  • Result

    • int
    • Ergebniswert

Der Bereich ItemFileCustom ist optional. Die übergebenen Informationen in Custom01 werden bei jeder Dateioperation wieder übertragen. Hier können vom Programmierer Informationen zur späteren Verarbeitung angegeben werden.

Der Bereich ItemFileAuthorisation muss für jede Zugriffs-Id angegeben werden. Können sich Benutzer mit zwei unterschiedlichen Zugriffs-Ids anmelden (siehe DrvLoginDomainUser ), müssen hier zwei Bereiche mit den entsprechenden Berechtigungen angegeben werden. Die Berechtigungen werden als ODER-Kombination folgender Konstanten übergeben:

Die Datei wird nur dann erzeugt, wenn in Result _ErrOk (0) angegeben wird. Durch das Setzen eines _ErrFsi...-Wertes können andere Fehlerzustände übermittelt werden.

Beispiel:

if (tDrvRequestMessageId = _DrvReqCreateFile)
{
tDrvMsxWrite # MsxOpen(_MsxSocket | _MsxWrite, tSck);

tDrvMsxWrite->MsxWrite(_MsxMessage, _DrvResCreateFile);
tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemHeader); // ItemHeader
tDrvMsxWrite->MsxWrite(_MsxData, 0xF3A49E52); // ProtocolId
tDrvMsxWrite->MsxWrite(_MsxData, 0x00040000); // ProtocolVersion

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemFileCustom);
tDrvMsxWrite->MsxWrite(_MsxData, ''); // no custom information

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemFileAuthorisation); // user authorisation for admins
tDrvMsxWrite->MsxWrite(_MsxData, 10);
tDrvMsxWrite->MsxWrite(_MsxData, _DrvAuthAll); // all rights

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemFileAuthorisation); // user authorisation for everybody else
tDrvMsxWrite->MsxWrite(_MsxData, 12);
tDrvMsxWrite->MsxWrite(_MsxData, _DrvAuthList | _DrvAuthRead); // read only

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemResult); // write result
tDrvMsxWrite->MsxWrite(_MsxData, _ErrOk);
tDrvMsxWrite->MsxWrite(_MsxEnd, 0);

tDrvMsxWrite->MsxClose();
}