2017-07-03 4 views
0

J'essaie de faire correspondre une fonction d'un programme WinCE sous Linux.IOCTL_DISK_GET_STORAGEID différence WinCE vs Linux?

La fonction utilise un appel WinCE zu pour afficher l'identifiant des cartes SD.

mais le problème est que les sorties de la fonction WINCE

0280XXXXXX comme le numéro de série - alors que j'obtenir le même numéro sur Linux dans/sys/block/mmcblk0/dispositif/série, mais le premier octet (02) est manquant (la sortie est 80XXXXXX)

Est-ce que quelqu'un qui sait sait quand la fonction IOCTL_DISK_GET_STORAGEID prend le premier octet?

Répondre

1

La sortie WinCE semble un peu étrange pour une carte SD. En supposant que votre périphérique WinCE utilise le pilote de carte SD Microsoft standard, le numéro de série provient du CID de la carte (c'est-à-dire 32 bits seulement) et est formaté en% 08X lorsque la structure STORAGE_IDENTIFICATION est générée par le pilote . Donc, à moins d'une erreur dans le programme que vous utilisez pour obtenir le numéro de série, je suppose que le périphérique WinCE utilise un pilote de carte SD personnalisé (par exemple un qui combine l'ID du fabricant et le numéro de série, ou un cela a simplement un bug).

+1

c'est le fabricant ID qu'ils ont mis en avant. semble qu'ils utilisent un chauffeur étrange. Merci d'avoir laissé entendre cela! –