Device Extensions

Résolu
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 13 mars 2009 à 09:50
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 13 mars 2009 à 13:37
Yop à tous,

Voila je suis en train de faire un driver et j'ai un petit souci de compréhension. En fait dans ce driver j'utilise une fonction CALLBACK qui doit rapatrier des données au client. Hors comme il n'y a que le driver qui peut faire cela avec le outputbuffer , il faut donc que je rapatrie les informations (ici une structure) au driver. Pour ce faire j'avait dans l'idée comme pour un thread de déclarer une structure en global, mais après plusieur recherche j'ai découvert le Device Extension, et j'ai beau chercher dans tout les coins je ne voi pas la différence entre cette méthode et la structure en global, hors plein d'exemple de driver avec fonction CALLBACK utilise cette méthode, pourquoi ??? j'ai lu ceci http://msdn.microsoft.com/en-us/library/ms794734.aspx et très franchement je ne suis pas plus avancé.

Quelqu'un pourrait-il m'expliquer ce qu'est vraiment ce Device Extension ?? ou un tuto bien fait ou autre.

Merci d'avance.

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 mars 2009 à 13:12
Device Extension : zone mémoire que le system va réserver, elle sera associée à l'instance du driver.

Il faut voir cela comme un FileMapping dans le sens qu'un autre code driver pourra demander un accès à cette zone mémoire sans pour autant que le pointeur d'exécution system fasse un jmp sur le code driver.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 mars 2009 à 13:32
En dernier recours, à toi de voir selon code de déroulement de ton driver.

Il m'est arrivé aussi de mettre des données en stuct globale dans le driver mais ça doit rester pour petits codes de tests locaux à la va vite. Pour driver à distribuer, il faut absolument prendre l'habitude de bosser avec device extension.

ciao...
BruNews, MVP VC++
3
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
13 mars 2009 à 13:22
Daccord du coup je comprend mieu, mais la fonction CALLBACK apartient a mon driver donc en principe je n'ai pas besoin d'une zone mémoire qui peut être partagée avec d'autre driver , donc une structure en global pourrait faire l'affaire non ?

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
13 mars 2009 à 13:37
Daccord :) c'est noté. Comme tu dis autant s'y mettre tout de suite , donc je vais faire avec cela .
Un grand merci pour ton aide.

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0
Rejoignez-nous