IOCTL_DISK_GET_STORAGEID Разница между WinCE и Linux?

Я пытаюсь сопоставить функцию из программы WinCE в Linux.

Функция использует вызов WinCE для вывода идентификатора SD-карты.

но проблема в том, что функция WINCE выводит

0280XXXXXX как серийный номер, тогда как в Linux я получаю тот же номер в /sys/block/mmcblk0/device/serial, но первый байт (02) отсутствует (выход 80XXXXXX)

Кто-нибудь, кто хорошо разбирается в wince, знает, откуда функция IOCTL_DISK_GET_STORAGEID берет первый байт?


person Sebastian Heyn    schedule 03.07.2017    source источник


Ответы (1)


Вывод WinCE выглядит немного странно для SD-карты.

Предполагая, что ваше устройство WinCE использует стандартный драйвер SD-карты Microsoft, серийный номер берется из CID карты (т. е. всего 32 бита) и форматируется как %08X, когда драйвер генерирует структуру STORAGE_IDENTIFICATION.

Поэтому, если в программе, которую вы используете для получения серийного номера, нет ошибки, я предполагаю, что устройство WinCE использует специальный драйвер SD-карты (например, тот, который объединяет идентификатор производителя и серийный номер, или тот, который просто имеет ошибка).

person Carsten Hansen    schedule 04.07.2017
comment
это идентификатор производителя, который они указали заранее. кажется, они используют странный драйвер. Спасибо, что намекнули на это! - person Sebastian Heyn; 13.07.2017