DrvGetVolumeData
DrvGetVolumeData
Aufruf bei der Anforderung der Laufwerksdaten
Details
- Request
MessageId:_DrvReqGetVolumeDataId des EreignissesItemHeader:_DrvItemHeaderKopf des DatenpaketsProtocolId:0xF3A49E52Id des verwendeten ProtokollsProtocolVersion:0x00040000Version 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
ProtocolId0xF3A49E52- Id des verwendeten Protokolls
ProtocolVersion0x00040000- Version des verwendeten Protokolls
ItemVolumeSize_DrvItemVolumeSize- Informationsbereich für den Speicherplatz
FreeSizebigint- Freier Speicherplatz auf dem Laufwerk (in Bytes)
TotalSizebigint- Gesamtkapazität des Laufwerks (in Bytes)
ItemVolumeId_DrvItemVolumeId- Informationsbereich für die Id des Laufwerks
VolumeIdint- Id des Laufwerks
ItemVolumeLabel_DrvItemVolumeLabel- Informationsbereich des Laufwerksnamens.
VolumeLabelalpha- Name des Laufwerks.
ItemTimeout_DrvItemTimeout- Informationsbereich für den Timeout
Timeoutint- 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();
}