Programación General > C++ Builder
Información Dispositivos
(1/1)
Beldwir:
Intento obtener el nombre de una unidad de CDRom mediante la función DeviceIoControl() y ésta me devuelve un error, alguién sabría decirme a qué se debe? Agradecería cualquier ayuda, tanto si hay algún error en el código como saber de alguna otra manera de obtener dicha información.
Gracias... :hola:
--- Código: Text --- #include <vcl.h>#pragma hdrstop#include <windows.h>#include <winioctl.h>#include <iostream>#include <conio.h>#pragma argused using namespace std; int main(int argc, char* argv[]){ HANDLE hDispositivo; // Manejador para la función CreateFile(). BOOL Resultado; // Valor devuelto por la función DeviceIoControl(). CHANGER_PRODUCT_DATA sInfoUnid; // Estructura con información sobre la unidad. DWORD Retorno; /* Función que crea el manejador para abrir la unidad. El primer parámetro es la unidad de la que queremos obtener información.*/ hDispositivo=CreateFile("\\\\.\\d:", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if(hDispositivo == INVALID_HANDLE_VALUE) cout << "No es posible abrir el dispositivo."; Resultado=DeviceIoControl(hDispositivo, IOCTL_CHANGER_GET_PRODUCT_DATA, NULL, 0, &sInfoUnid, sizeof(sInfoUnid), &Retorno, (LPOVERLAPPED) NULL); if(Resultado) { cout << sInfoUnid.VendorId << '\n'; cout << sInfoUnid.ProductId << '\n'; } else cout << GetLastError() << '\n'; CloseHandle(hDispositivo); getch(); return 0;}
Navegación
Ir a la versión completa