Читая PVOID в C #, сколько бит я должен прочитать? - PullRequest
2 голосов
/ 06 октября 2011

Я читаю из пакета USB, который имеет тип URB. Заголовок URB, определенный в http://msdn.microsoft.com/en-us/library/windows/hardware/ff540409(v=vs.85).aspx как

 struct _URB_HEADER {
    USHORT      Length;
    USHORT      Function;
    USBD_STATUS Status;
    PVOID       UsbdDeviceHandle;
    ULONG       UsbdFlags;
 };

Сколько бит я должен прочитать для PVOID?

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Спасибо за комментарии - читая их, похоже, что использование

 byte [] ptr_bytes = rdr.ReadBytes(System.IntPtr.Size);

обеспечит корректный размер указателя в зависимости от операционной системы.

2 голосов
/ 06 октября 2011

Так как это тип указателя, то это зависит от вашей платформы.32 бита для x86;64 бита для x64.

Я не очень разбираюсь в этих библиотеках, но стоит ли вам использовать эти поля?Ссылка, которой вы поделились, гласит: «Зарезервировано. Не использовать».

Редактировать : игнорировать последнее утверждение.Я просто понял, что структура - это просто заголовок.Конечно, вам нужно знать размер этого поля, чтобы добраться до тела.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...