Creación de tablas de distribución
Debe crear una tabla de distribución de filtros para un descriptor de filtro (KSFILTER_DESCRIPTOR) de un minidriver BDA para que el filtro del proveedor de red pueda abrir e inicializar una instancia del filtro y, posteriormente, liberar la instancia de filtro. También debe crear una tabla de distribución de patillas para cada descriptor de patillas (KSPIN_DESCRIPTOR_EX) en la matriz de tipos de patillas que están disponibles en la topología de plantilla del filtro. El filtro del proveedor de red usa una tabla de distribución de patillas para abrir e inicializar un pin y liberarlo más adelante. En el fragmento de código siguiente se muestran ejemplos de tablas de distribución de patillas y filtros:
//
// 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
};