/* * 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 "precomp.h" #ifdef INCLUDE_CMD_VOL 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 (), NULL); return 1; } /* print drive info */ if (szVolName[0] != '\0') { ConOutResPrintf(STRING_VOL_HELP1, pszRootPath[0],szVolName); } else { ConOutResPrintf(STRING_VOL_HELP2, pszRootPath[0]); } /* print the volume serial number */ ConOutResPrintf(STRING_VOL_HELP3, HIWORD(dwSerialNr), LOWORD(dwSerialNr)); return 0; } INT cmd_vol (LPTSTR param) { TCHAR szRootPath[] = _T("A:\\"); TCHAR szPath[MAX_PATH]; if (!_tcsncmp(param, _T("/?"), 2)) { ConOutResPaging(TRUE,STRING_VOL_HELP4); return 0; } nErrorLevel = 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 (); nErrorLevel = 1; return 1; } } if (!IsValidPathName (szRootPath)) { error_invalid_drive (); nErrorLevel = 1; return 1; } /* print the header */ if (!PrintVolumeHeader (szRootPath)) { nErrorLevel = 1; return 1; } return 0; } #endif