PFNSCO_INDICATION_CALLBACK コールバック関数 (bthddi.h)
プロファイル ドライバーは、Bluetooth ドライバー スタックに、リモート デバイスからの受信 SCO 接続要求と、現在開いている SCO 接続の状態に対する変更についてプロファイル ドライバーに通知するメカニズムを提供する SCO コールバック関数を実装します。
PFNSCO_INDICATION_CALLBACK PfnscoIndicationCallback;
void PfnscoIndicationCallback(
[in] PVOID Context,
[in] SCO_INDICATION_CODE Indication,
[in] PSCO_INDICATION_PARAMETERS Parameters
)
{...}
[in] Context
着信リモート接続要求の表示の場合、これは、プロファイル ドライバーがコールバック関数を登録したときに、_BRB_SCO_REGISTER_SERVER 構造体の IndicationCallbackContext メンバーのプロファイル ドライバーによって指定されたコンテキストです。 既存の SCO 接続に対する変更の場合、これはプロファイル ドライバーによって指定された CallbackContext メンバーであり、BRB_SCO_OPEN_CHANNEL BRB をビルドして送信したときに指定されます。
[in] Indication
SCO イベントの種類を示す SCO_INDICATION_CODE 値。
[in] Parameters
ある Indication パラメーターに渡された値に基づいてパラメーター情報を格納する SCO_INDICATION_PARAMETERS 構造体。
何一つ
Parameters パラメーターで渡されるSCO_INDICATION_PARAMETERS構造体で見つかった BtAddress メンバーは、リモート デバイスのBluetooth アドレスを示します。
PFNSCO_INDICATION_CALLBACK 関数は、2 つの方法で登録できます。
最初のケースでは、プロファイル ドライバーはサーバーとして機能し、IndicationCallback_BRB_SCO_REGISTER_SERVER 構造体のメンバーを介してこのコールバック関数を登録する必要があります。 その後、Bluetooth ドライバー スタックは、この関数を呼び出して、リモート デバイスがプロファイル ドライバーに接続しようとしたときにプロファイル ドライバーに通知できます。
2 番目のケースでは、プロファイル ドライバーはクライアントとして機能し、BRB_SCO_OPEN_CHANNEL BRB を使用してリモート デバイスに接続しようとします。 PFNSCO_INDICATION_CALLBACK コールバック関数は、指定された BRB で渡された _BRB_SCO_OPEN_CHANNEL 構造体の Callback メンバーを介して登録されます。 IOCTL_INTERNAL_BTH_SUBMIT_BRB.
登録後、コールバック関数は BRB が開いたチャネルにのみ関連付けられます。この関数は、開いているチャネルで発生したアクションをリモート デバイスにプロファイル ドライバーに通知します。 プロファイル ドライバーは、チャネル通知をクライアントとして処理し、_BRB_SCO_REGISTER_SERVER通知をサーバーとして処理する 1 つの関数を登録できます。
Parameters パラメーターに保持されているSCO_INDICATION_PARAMETERS構造体は、Indication パラメーターを介してコールバック関数に渡されるSCO_INDICATION_CODE値に従って解釈されます。 ほとんどの通知には、イベントに対応し、イベント固有のパラメーターを含むSCO_INDICATION_PARAMETERS共用体メンバーがあります。
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョン:_Supported。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | bthddi.h (Bthddi.h を含む) |
IRQL | 開発者は、IRQL = DISPATCH_LEVEL (コールバック関数がページング メモリにアクセスしない場合) または IRQL = PASSIVE_LEVEL (コールバック関数がページングされたメモリにアクセスする必要がある場合) で動作するようにこの関数をコーディングする必要があります。 |