/* * VOL.C - vol internal command. * * * History: * * 03-Dec-1998 (Eric Kohl ) * Replaced DOS calls by Win32 calls. * * 08-Dec-1998 (Eric Kohl ) * Added help text ("/?"). * * 07-Jan-1999 (Eric Kohl ) * Cleanup. * * 18-Jan-1999 (Eric Kohl ) * Unicode ready! * * 20-Jan-1999 (Eric Kohl ) * Redirection ready! */ #include "config.h" #ifdef INCLUDE_CMD_VOL #include #include #include #include "cmd.h" static INT PrintVolumeHeader (LPTSTR pszRootPath) { TCHAR szVolName[80]; DWORD dwSerialNr; /* get the volume information of the drive */ if(!GetVolumeInformation (pszRootPath, szVolName, 80, &dwSerialNr, NULL, NULL, NULL, 0)) { ErrorMessage (GetLastError (), _T("")); return 1; } /* print drive info */ ConOutPrintf (_T(" Volume in drive %c:"), pszRootPath[0]); if (szVolName[0] != '\0') ConOutPrintf (_T(" is %s\n"), szVolName); else ConOutPrintf (_T(" has no label\n")); /* print the volume serial number */ ConOutPrintf (_T(" Volume Serial Number is %04X-%04X\n"), HIWORD(dwSerialNr), LOWORD(dwSerialNr)); return 0; } INT cmd_vol (LPTSTR cmd, LPTSTR param) { TCHAR szRootPath[] = _T("A:\\"); TCHAR szPath[MAX_PATH]; if (!_tcsncmp (param, _T("/?"), 2)) { ConOutPuts (_T("Displays the disk volume label and serial number, if they exist.\n\n" "VOL [drive:]")); return 0; } if (param[0] == _T('\0')) { GetCurrentDirectory (MAX_PATH, szPath); szRootPath[0] = szPath[0]; } else { _tcsupr (param); if (param[1] == _T(':')) szRootPath[0] = param[0]; else { error_invalid_drive (); return 1; } } if (!IsValidPathName (szRootPath)) { error_invalid_drive (); return 1; } /* print the header */ if (!PrintVolumeHeader (szRootPath)) return 1; return 0; } #endif