[erledigt ]Windows Driver Kit Struktur - wie komm ich dran ?

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

[erledigt ]Windows Driver Kit Struktur - wie komm ich dran ?

Beitrag von scholly »

moin, moin...

Ich habhier im MSDN diese Struktur gefunden:

Code: Alles auswählen

typedef struct _DVD_LAYER_DESCRIPTOR {
  UCHAR  BookVersion : 4;
  UCHAR  BookType : 4;
  UCHAR  MinimumRate : 4;
  UCHAR  DiskSize : 4;
  UCHAR  LayerType : 4;
  UCHAR  TrackPath : 1;
  UCHAR  NumberOfLayers : 2;
  UCHAR  Reserved1 : 1;
  UCHAR  TrackDensity : 4;
  UCHAR  LinearDensity : 4;
  ULONG  StartingDataSector;
  ULONG  EndDataSector;
  ULONG  EndLayerZeroSector;
  UCHAR  Reserved5 : 7;
  UCHAR  BCAFlag : 1;
  UCHAR  Reserved6;
} DVD_LAYER_DESCRIPTOR, *PDVD_LAYER_DESCRIPTOR
Leider bin ich noch nicht firm genug, um mir selber eine Proc zu schreiben, die den BookType wiedergibt.

Gibt es jemand, der so nett ist und mit einem Code-Schnipsel weiterhilft ?

mdv... scholly
Zuletzt geändert von scholly am 17.05.2008 16:43, insgesamt 1-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

Beitrag von bingo »

ich denke , so ...

Code: Alles auswählen

Structure DVD_LAYER_DESCRIPTOR
BookVersion.b[4]
BookType.b[4]
MinimumRate.b[4]
DiskSize.b[4]
LayerType.b[4]
TrackPath.b[1]
NumberOfLayers.b[2]
Reserved1.b[1]
TrackDensity.b[4]
LinearDensity.b[4]
StartingDataSector.l
EndDataSector.l
EndLayerZeroSector.l
Reserved5.b[7]
BCAFlag.b[1]
Reserved6.b
EndStructure
:wink:
1:0>1
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

bingo hat geschrieben:ich denke , so ...
:wink:
/:-> :cry:
Sowas ähnliches hatte ich dank Freaks Help "How to use Windows API Types with PureBasic" auch hinbekommen, aber eine Procedure, die die Struktur füllt, geht über mein PB-Vermögen.

sich auf den Arm genommen fühlend... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

bingo hat geschrieben:ich denke , so ...

Code: Alles auswählen

Structure DVD_LAYER_DESCRIPTOR
BookVersion.b[4]
BookType.b[4]
MinimumRate.b[4]
DiskSize.b[4]
LayerType.b[4]
TrackPath.b[1]
NumberOfLayers.b[2]
Reserved1.b[1]
TrackDensity.b[4]
LinearDensity.b[4]
StartingDataSector.l
EndDataSector.l
EndLayerZeroSector.l
Reserved5.b[7]
BCAFlag.b[1]
Reserved6.b
EndStructure
:wink:
Hi
ist mir fast scho peinlich sowas zu fragen:
was bedeuten diese Zahlen in den Eckigen klammern?
und wieso können diese Structuren nicht aussehen, wie man selbst will?
Was haben die mit dem System zu tun?
v6.00
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

@Thomas:
Das sind vordefinierte Strukturen.

Wenn du eine DLL erstellst, und berechnest was mit ihr, und du selber der Meinung bist "In einer Struktur ist das Ergebnis besser aufgehoben" (weil wegen mehrere Werte zB) codierst du diese Struktur ja fest und kompilierst.

Danach versucht jemand deine DLL zu nutzen-> aber woher soll er wissen, wie der Output genau aussieht? Und wie groß dieser ist? Und wo was steht mit welcher Bytelänge?
Indem du zu deiner DLL eine Readme (oder eine Hilfe oder eine Include) hinzufügst, kannst du dort beschreiben, wie die Structure innerhalb deiner DLL aussieht. Der Programmierer "übernimmt" diese Structure, und bringt sie so seinem Programm bei. Erst jetzt kann er mit deiner DLL arbeiten. Er hat sozusagen den von dir erfundenen Datentyp abgeschrieben. Verstehen? ;)

Die eckigen Klammern besagen, dass es sich hierbei nicht um einen einzigen Datentyp, sondern um ein festes Array dieses Datentyps handelt. Da die Arrays aber fest sein müssen (die Structure muss ja eine feste größe haben- sie darf ja nicht variieren-> aber warum ist ja eigentlich logisch, oder?) dimensionierst du sie schon beim Erstellen deiner Structure. In diesem Falle hast du bei "LinearDensity.b[4] " ein eindimensionales 4-BYTE-Array.

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

So nun hat man da ne nette Struktur... und was stellt man damit nun an ?

Ich bin der API-Held im Erdbeerfeld... Ne im ernst... Ich hab da kein Plan von, aber es interessiert mich brennend !
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Bisonte hat geschrieben:So nun hat man da ne nette Struktur... und was stellt man damit nun an ?
Mann füllt sie und kann dann einzelne Teile weiterverwenden.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

Ganz hab ich's zwar noch nicht geschnallt, aber mal sehen ...
Danke für's erste! :D
v6.00
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

scholly hat geschrieben:
Bisonte hat geschrieben:So nun hat man da ne nette Struktur... und was stellt man damit nun an ?
Mann füllt sie und kann dann einzelne Teile weiterverwenden.
ja und wie ?

Gib doch einfach mal ein klitzekleines Beispiel, wie man z.B. die Daten liest, um die Struktur zu füllen ... das würd mir vielleicht schon helfen ...

Gibts da eine Anweisung für ? oder wie muss ich das jetzt verstehen... ?

Also was die einzelnen Daten bedeuten (Booktype usw.) ist mir schon klar, nur
wie man an die Daten dann rankommt ist mir noch ein Rätsel... so ganz werd ich aus diesem MSdingens da immer nich schlau...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Bisonte hat geschrieben:ja und wie ?

Gib doch einfach mal ein klitzekleines Beispiel, wie man z.B. die Daten liest, um die Struktur zu füllen ... das würd mir vielleicht schon helfen ...
Sagmal, kann man mein Ursprungsposting nicht mehr lesen ?
scholly hat geschrieben:Leider bin ich noch nicht firm genug, um mir selber eine Proc zu schreiben, die den BookType wiedergibt.

Gibt es jemand, der so nett ist und mit einem Code-Schnipsel weiterhilft ?
Oder willste mich auch aufn Arm nehmen ?

mehr als irritiert... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Antworten