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'&#59;    CloseHandle(hDispositivo);    getch();    return 0;}  

Navegación

[0] Índice de Mensajes

Ir a la versión completa