S
Stefan Drissen
Guest
Any reason your RUN GetVolumeInformationA (three outputs in the middle) does not match the external procedure signature (two outputs in the middle)? If I fix this to: /* GetVolumeInformation function (Windows) */ PROCEDURE GetVolumeInformationA EXTERNAL "kernel32.dll": DEFINE INPUT PARAMETER lpRootPathName AS CHARACTER. DEFINE INPUT PARAMETER lpVolumnNameBuffer AS INT64. DEFINE INPUT PARAMETER lpVolumeNameSize AS INT64. DEFINE OUTPUT PARAMETER lpVolumneSerialNumber AS INT64. DEFINE OUTPUT PARAMETER lpMaximumComponentLength AS INT64. DEFINE OUTPUT PARAMETER lpFileSystemFlags AS INT64. DEFINE INPUT PARAMETER lpFileSystemNamebuffer AS INT64. DEFINE INPUT PARAMETER nFileSystemNameSize AS INT64. DEFINE RETURN PARAMETER bResult AS SHORT. END. RUN GetVolumeInformationA( pDrive, GET-POINTER-VALUE( mVolumeName ), GET-SIZE( mVolumeName ), OUTPUT iSerialNum, OUTPUT iMaxLen, OUTPUT iFlags, GET-POINTER-VALUE( mFileSysName ), GET-SIZE( mFileSysName ), OUTPUT iResult ). Then I get results (11.7.1 x64) - note that some of the mapping of some of those parameters looks off if you compare them to Microsoft's documentation.
Continue reading...
Continue reading...