2015-06-23 5 views
1

Я использую следующий набор инструментов: HidLibraryHidLibrary, получить серийный номер USB-устройства

Потому что я новичок, я просто хотел бы знать, как получить серийный номер от USB устройства.

Внутри .dll определяется:

public bool ReadSerialNumber(out byte[] data) 
     { 
      data = new byte[64]; 
      IntPtr hidHandle = IntPtr.Zero; 
      bool success = false; 
      try 
      { 
       if (IsOpen) 
        hidHandle = Handle; 
       else 
        hidHandle = OpenDeviceIO(_devicePath, NativeMethods.ACCESS_NONE); 

       success = NativeMethods.HidD_GetSerialNumberString(hidHandle, ref data[0], data.Length); 
      } 
      catch (Exception exception) 
      { 
       throw new Exception(string.Format("Error accessing HID device '{0}'.", _devicePath), exception); 
      } 
      finally 
      { 
       if (hidHandle != IntPtr.Zero && hidHandle != Handle) 
        CloseDeviceIO(hidHandle); 
      } 

      return success; 
     } 

Как вызвать метод, чтобы получить SN устройства? Я стараюсь, но безуспешно. Я еще не работал с «out byte []». Что означает значение «out byte»?

Обратиться за помощью!

ответ

2

Для вызова метода можно использовать следующее:

var hidDevice = ...; 
byte[] data; 

var result = hidDevice.ReadSerialNumber(out data); 

Я предполагаю, что результат будет истинным, если метод успешно, и ложь, если это не удалось. Если бы это удалось, я бы ожидал, что переменная data будет заполнена необходимыми данными.

Также, если вы не уверены в том, что означает out, см. Страницу MSDN по теме.

Смежные вопросы