¿Cómo recupero la información del disco duro que está conectado al servidor? ¿Ejemplo de código C/C?

Soy muy nuevo en la programación de Windows. Entonces, ¿pueden ayudarme a obtener un programa de muestra (C / C ++) que pueda obtener toda la información del disco duro que está conectado a mi servidor?

Estoy usando el servidor Windows 2008 R2 sp1 y también conecté más de un disco duro al servidor.

Por favor ayúdenme a obtener esta información.

Gracias, Deepesh CP

preguntado el 04 de julio de 12 a las 05:07

"toda la información del disco duro" es bastante vaga, por decirlo suavemente. Cuanto más específico sea en su solicitud, mejores serán las respuestas que obtendrá. A primera vista, "WMI" parece la ruta obvia, pero no está claro si puede proporcionar la información que necesita. -

3 Respuestas

Puede utilizar la consulta WMI para extraer información del disco.

SELECT Name,VolumeName from Win32_LogicalDisk WHERE DriveType='3'

Busque desde la API de WMI usando con usted puede ejecutar el comando anterior desde el código C / C ++. aquí es más detalles y código de muestra.

Respondido 04 Jul 12, 06:07

Gracias por tu ayuda. Hice que esta consulta funcionara, pero al usar esta consulta solo obtengo detalles del disco lógico. Mi requisito real es obtener información sobre todo el disco duro conectado a mi servidor. - user1488334

@user1488334: use la clase Win32_PerfRawData_PerfDisk_PhysicalDisk para obtener información del disco físico. Todos los datos que obtendrá en contadores de rendimiento sin procesar. visitar a msdn para detalles. - Sach

Ahora debo obtener esta clase, pero aún no puedo verificar u obtener el uso total de los discos o la diferencia entre el uso total del disco duro y el uso actual de esos parámetros. Creo que no entiendo completamente esos parámetros. Por favor, ayúdenme con esto . - user1488334

No estoy muy seguro... es posible que deba resumir el uso del disco (o el uso gratuito) para todos los discos lógicos asociados con la identificación del dispositivo físico. Por ej. Seleccione FreeSpace, Tamaño de Win32_LogicalDisk donde DeviceID = . - Sach

Las siguientes API deben ser útiles

DisplayVolumePaths GetDiskFreeSpace CreateFile

Consulte estos enlaces también

http://social.msdn.microsoft.com/Forums/en-CA/vcgeneral/thread/1d4fda3c-885f-46e2-bc32-80c4426510dc

Respondido 18 Feb 13, 05:02

Para empezar, leería sobre la API de Windows.

Para obtener todas las unidades lógicas en un sistema de Windows, use

DWORD WINAPI GetLogicalDrives(void);

or

DWORD WINAPI GetLogicalDriveStrings(
  __in   DWORD nBufferLength,
  __out  LPTSTR lpBuffer
);

como se ve en http://msdn.microsoft.com/en-us/library/windows/desktop/aa364972(v=vs.85).aspx

Respondido 05 Jul 12, 14:07

Estoy tratando de obtener el uso del disco físico usando Power Shell. Pero no puedo entender cómo entrar en esto usando Win32_PerfRawData_PerfDisk_PhysicalDisk. Por favor, ayuda en esto, lo que también dará una idea más sobre Power Shell. - user1488334

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.