Criando tabelas de expedição
Você deve criar uma tabela de expedição de filtro para um descritor de filtro (KSFILTER_DESCRIPTOR) de um minidriver BDA para que o filtro do provedor de rede possa abrir e inicializar uma instância do filtro e liberar posteriormente a instância de filtro. Você também deve criar uma tabela de expedição de pino para cada descritor de pino (KSPIN_DESCRIPTOR_EX) na matriz de tipos de pinos que estão disponíveis na topologia de modelo do filtro. O filtro do provedor de rede usa uma tabela de expedição de pino para abrir e inicializar um pino e, posteriormente, liberar o pino. O snippet de código a seguir mostra exemplos de tabelas de expedição de filtro e fixação:
//
// 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
};