Consultor Eletrônico



Kbase 18580: How to Call WIN32 API Function: GetVolumeInformation
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/11/1999
How to Call WIN32 API Function: GetVolumeInformation

DISCLAIMER:
===========
The code example in this knowledgebase is for informational purposes
only. If you have specific questions about which API calls would be
best suited to your design goals, please consult your Microsoft
documentation.

INTRODUCTION:
=============
The following sample code shows how to call the Win32 API function
called GetVolumeInformation. This function returns the volume label
and data about the volume file system for a given drive.

This code has been tested on Windows NT 4.0 Workstation only.


DEFINE VARIABLE chrVolumeName AS CHARACTER NO-UNDO FORMAT "X(256)".
DEFINE VARIABLE chrFileSysName AS CHARACTER NO-UNDO FORMAT "X(256)".
DEFINE VARIABLE intVolSerialNum AS INTEGER NO-UNDO.
DEFINE VARIABLE intMaxCompLen AS INTEGER NO-UNDO.
DEFINE VARIABLE intFileSysFlags AS INTEGER NO-UNDO.
DEFINE VARIABLE intResult AS INTEGER NO-UNDO.

PROCEDURE GetVolumeInformationA EXTERNAL "KERNEL32.DLL":
DEFINE INPUT PARAMETER chrRootPathName AS CHARACTER.
DEFINE OUTPUT PARAMETER chrVolumeNameBuffer AS CHARACTER.
DEFINE INPUT PARAMETER intVolumeNameSize AS LONG.
DEFINE OUTPUT PARAMETER intVolumeSerialNumber AS LONG.
DEFINE OUTPUT PARAMETER intMaximumComponentLength AS LONG.
DEFINE OUTPUT PARAMETER intFileSystemFlags AS LONG.
DEFINE OUTPUT PARAMETER chrFileSystemNameBuffer AS CHARACTER.
DEFINE INPUT PARAMETER intFileSystemNameSize AS LONG.
DEFINE RETURN PARAMETER intResult AS LONG.
END PROCEDURE.

ASSIGN chrVolumeName = FILL(" ",256)
chrFileSysName = FILL(" ",256).

RUN GetVolumeInformationA (INPUT "C:\",
OUTPUT chrVolumeName,
INPUT 256,
OUTPUT intVolSerialNum,
OUTPUT intMaxCompLen,
OUTPUT intFileSysFlags,
OUTPUT chrFileSysName,
INPUT 256,
OUTPUT intResult).

IF intResult = 0 THEN
MESSAGE "Function call failed, not sure why" VIEW-AS ALERT-BOX.
ELSE
MESSAGE "Volume Name = " chrVolumeName SKIP
"File System Name = " chrFileSysName SKIP
"Serial Number = " STRING(intVolSerialNum) SKIP
"Max Component Length = " STRING(intMaxCompLen) SKIP
"File System Flags = " STRING(intFileSysFlags)
VIEW-AS ALERT-BOX.