ディスパッチ テーブルの作成
ネットワーク プロバイダー フィルターがフィルターのインスタンスを開いて初期化し、後でそのフィルター インスタンスを解放できるように、BDA ミニドライバーのフィルター記述子 (KSFILTER_DESCRIPTOR) のフィルター ディスパッチ テーブルを作成する必要があります。 また、フィルターのテンプレート トポロジで使用可能なピンタイプの配列に、ピン記述子 (KSPIN_DESCRIPTOR_EX) ごとにピン ディスパッチ テーブルを作成する必要があります。 ネットワーク プロバイダー フィルターは、ピン ディスパッチ テーブルを使用してピンを開いて初期化し、後でピンを解放します。 次のコード スニペットは、フィル ディスパッチ テーブルとピン ディスパッチ テーブルの例を示しています。
//
// 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
};