2010-12-06 99 views
2

Est-il possible d'écrire un pilote pour s'asseoir sur le dessus d'un autre pilote, prendre la sortie du pilote inférieur et le post-traiter. Je voulais écrire un pilote pour m'assurer que le niveau de volume était toujours constant. Dans ma tête, ce pilote serait site sur le pilote de la carte audio et post-traiter la sortie avant de rendre à l'OS pour envoyer aux haut-parleurs.Un pilote audio Windows peut-il être placé sur le pilote Windows par défaut et post-traiter sa sortie?

J'ai lu à propos de MS miniport et cela semble fournir quelques expositions garanties de base.

La mise en œuvre de niveau de volume constant n'est pas ce qui me préoccupe vraiment dans cette question. Je me demande s'il est même possible d'écrire un pilote 'filter' faute de meilleur mot pour pouvoir faire du post-traitement. OK, je suis coupable de ne pas googler cette première, il se trouve en fait appelé un pilote de filtre qui me fait ressembler à un crétin. Je serais un noob total à ce sujet, donc toute bonne direction, ou un texte serait apprécié.

Répondre

2

Pour Windows Vista et au-delà, il est assez difficile d'écrire un tel pilote audio. En effet, les périphériques audio Windows Vista utilisent principalement un mécanisme d'E/S dans lequel le pilote audio expose les tampons DMA directement au sous-système ou à l'application audio. Ainsi, le moteur audio écrit directement dans les tampons DMA de l'adaptateur audio et aucun pilote de filtre n'a l'opportunité d'inspecter les échantillons envoyés à la solution audio. Pour Vista et au-delà, vous pouvez obtenir le même résultat avec un sAPO qui est un élément de traitement qui accompagne un package de pilote qui permet au sAPO d'inspecter et de modifier des échantillons audio.