Zum Hauptinhalt springen

DrvGetVolumeData

DrvGetVolumeData

Aufruf bei der Anforderung der Laufwerksdaten

Details

  • Request
  • MessageId: _DrvReqGetVolumeData Id des Ereignisses
  • ItemHeader: _DrvItemHeader Kopf des Datenpakets
  • ProtocolId: 0xF3A49E52 Id des verwendeten Protokolls
  • ProtocolVersion: 0x00040000 Version des verwendeten Protokolls
  • Siehe: Verwandte Befehle

Dieses Ereignis wird aufgerufen, wenn die Informationen des Laufwerks abgefragt werden (zum Beispiel durch den Aufruf der Eigenschaften eines Laufwerks). Als Ergebnis wird die gesamte und die freie Speicherkapazität sowie die Id und der Name des Laufwerks zurückgegeben.

  • Response
  • MessageId
    • _DrvResGetVolumeData
    • Id der Antwort
  • ItemHeader
    • _DrvItemHeader
    • Kopf des Datenpakets
  • ProtocolId
    • 0xF3A49E52
    • Id des verwendeten Protokolls
  • ProtocolVersion
    • 0x00040000
    • Version des verwendeten Protokolls
  • ItemVolumeSize
  • FreeSize
    • bigint
    • Freier Speicherplatz auf dem Laufwerk (in Bytes)
  • TotalSize
    • bigint
    • Gesamtkapazität des Laufwerks (in Bytes)
  • ItemVolumeId
  • VolumeId
    • int
    • Id des Laufwerks
  • ItemVolumeLabel
  • VolumeLabel
    • alpha
    • Name des Laufwerks.
  • ItemTimeout
  • Timeout
    • int
    • Zeit bis zum erneuten Abruf der Informationen (in Millisekunden).

Beispiel:

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

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

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemVolumeSize);
tDrvMsxWrite->MsxWrite(_MsxData, CnvBI(DbaInfo(_DbaAreaFree)) * 1024\b); // free space in database
tDrvMsxWrite->MsxWrite(_MsxData, CnvBI(DbaInfo(_DbaAreaSize)) * 1024\b); // size of database

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemVolumeId);
tDrvMsxWrite->MsxWrite(_MsxData, 0);

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemVolumeLabel);
tDrvMsxWrite->MsxWrite(_MsxData, StrCnv(StrCnv('BlobDrive', _StrToUTF8), _StrFromANSI);

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemTimeout); // timeout until next call for volume data
tDrvMsxWrite->MsxWrite(_MsxData, 60000); // 60 sec.

tDrvMsxWrite->MsxWrite(_MsxEnd, 0);

tDrvMsxWrite->MsxClose();
}