Création de tables de répartition
Vous devez créer une table de répartition de filtre pour un descripteur de filtre (KSFILTER_DESCRIPTOR) d’un minidriver BDA afin que le filtre du fournisseur de réseau puisse ouvrir et initialiser une instance du filtre et libérer ultérieurement le instance de filtre. Vous devez également créer une table de répartition de broches pour chaque descripteur de broche (KSPIN_DESCRIPTOR_EX) dans le tableau de types de broches disponibles dans la topologie de modèle du filtre. Le filtre du fournisseur de réseau utilise une table de répartition des broches pour ouvrir et initialiser une broche et libérer ultérieurement la broche. L’extrait de code suivant montre des exemples de tables de distribution de filtres et d’épingles :
//
// Filter Dispatch Table
//
// Lists the dispatch routines for major events at the filter
// level.
//
const
KSFILTER_DISPATCH
FilterDispatch =
{
CFilter::Create, // Create
CFilter::FilterClose, // Close
NULL, // Process
NULL // Reset
};
//
// Input Pin Dispatch Table
// Lists the dispatch routines for major events at the pin level.
//
const
KSPIN_DISPATCH
AntennaPinDispatch =
{
CAntennaPin::PinCreate, // Create
CAntennaPin::PinClose, // Close
NULL, // Process signal data
NULL, // Reset
NULL, // SetDataFormat
CAntennaPin::PinSetDeviceState, // SetDeviceState
NULL, // Connect
NULL, // Disconnect
NULL, // Clock
NULL // Allocator
};