Creazione di tabelle Dispatch
È necessario creare una tabella dispatch del filtro per un descrittore di filtro (KSFILTER_DESCRIPTOR) di un minidriver BDA in modo che il filtro del provider di rete possa aprire e inizializzare un'istanza del filtro e successivamente rilasciare l'istanza del filtro. È inoltre necessario creare una tabella dispatch pin per ogni descrittore pin (KSPIN_DESCRIPTOR_EX) nella matrice di tipi di pin disponibili nella topologia del modello del filtro. Il filtro del provider di rete usa una tabella dispatch pin per aprire e inizializzare un pin e rilasciare successivamente il pin. Il frammento di codice seguente mostra esempi di tabelle di filtro e invio pin:
//
// 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
};