OT? Lesen der SD Karten ID direkt von PC, auf PPC klappt es schon

18/07/2008 - 03:00 von chrkon | Report spam
Hallo allerseits,

ich bin mir nicht sicher, ob diese Frage hier richtig plaziert ist, aber
vieleicht kann mir ja jemand trotzdem einen Tipp zur Lösung des folgenden
Problems geben? Eventuell stehe ich einfach nur auf dem Schlauch?
Ich programmiere zur Zeit mit C# vorrangig für PocketPCs und noch mit
VS2003, da auch noch àltere PPC2002 Geràte unterstützt werden müssen. Für
die gesuchte Lösung kann aber auch VS2008 verwendet werden, da die Software
standalone auf einem PC laufen soll.

Doch nun zu meinem Problem:

Ich habe eine Software für PocketPCs geschrieben, die über die SD Karten ID
lizensiert wird. Dazu wird auf dem Handheld natürlich die ID gelesen. Ich
verwende dafür über P/Invoke die API Function DeviceIoControl mit dem
Parameter IOCTL_STORAGE_GET_DEVICEID.

Die ID, die ich dadurch bekomme ist spezifisch für die SD Karte und muss nun
in eine Lizenzdatei "eingewebt" werden. Dies geschieht auf einem speziellen
Lizensierungs PC. So weit so schön.

Das Problem ist nun, das ich die ID immer per Datei vom PocketPC auf den
Lizensierungsrechner kopieren muss. Ich habe keinen Weg gefunden, diese ID
direkt an einem PC (über einen CardReader) von der SD Karte zu lesen.

Gefunden habe ich die Möglichkeit mittels "GetVolumeInformation" an eine
spezifische ID zu kommen, allerdings passt diese ID nicht zu der
IOCTL_STORAGE_GET_DEVICEID. Zudem àndert sich die Volume ID bei jeder
Formatierung. Sie kommt also nicht in Frage. :-(

So wie es aussieht gibt es die "DeviceIoControl" Funktion leider nur auf den
WindowsMobile Systemen.

Ich war schon soweit und habe über Active Sync und die Remote API ein
kleines natives C Programm auf den PocketPC geschoben, es dort ferngesteuert
gestartet und damit eine Datei erzeugen lassen, in der die ID gespeichert
wurde. Diese Datei wurde dann, ebenfalls automatisch, über die RAPI zurück
auf den PC geholt und in den Lizensierungsprozess eingefügt. Leider ist
dieser Weg aber problematisch, da ActiveSync nicht die stabilste Lösung ist.

Hat von Euch jemand eine Idee, wie ich diese ID direkt am PC von der SD
Karte lesen kann?

Viele Grüße aus Dortmund,
Christof Konstantinopoulos
 

Lesen sie die antworten

#1 Stefan Koschke
18/07/2008 - 09:30 | Warnen spam
Hallo Christof,

"chrkon" schrieb im Newsbeitrag
news:g5opvl$t25$
...
Die ID, die ich dadurch bekomme ist spezifisch für die SD Karte und muss
nun in eine Lizenzdatei "eingewebt" werden. Dies geschieht auf einem
speziellen Lizensierungs PC. So weit so schön.

Das Problem ist nun, das ich die ID immer per Datei vom PocketPC auf den
Lizensierungsrechner kopieren muss. Ich habe keinen Weg gefunden, diese ID
direkt an einem PC (über einen CardReader) von der SD Karte zu lesen.



...

Das Problem hatte ich auch, dieses hinderliche Kopieren einer Datei vom und
zum PDA!
Ich lese/schreibejetzt meine INI-Datei auf dem PDA per ActiveSync, das
Vorgehen ist àhnlich wie bei Dir:
Auf dem PC ist das Freischaltprogramm, welches die INI vom PDA holt,
Schlüsselinformationen eintràgt und dann die geànderte Datei wieder auf den
PDA schreibt.
Wenn Dir mit ein paar Zeilen Delphi geholfen ist, melde Dich mal.
Im Gegenzug würde mich ein wenig Code interessieren, wie Du an die
SD-Karten-ID kommst, die muß ja auf dem PDA gelesen werden um dann mit dem
Schlüssel verifiziert werden zu können, oder?

Ciao
Stefan

Ähnliche fragen