次の方法で共有


PROTOCOL_CL_NOTIFY_CLOSE_AF コールバック関数 (ndis.h)

ProtocolClNotifyCloseAf 関数は、クライアントが関連付けられているアドレス ファミリ (AF) を閉じる必要があることを CoNDIS クライアントに通知します。

PROTOCOL_CL_NOTIFY_CLOSE_AF 型を使用して関数を宣言する必要があります。 詳細については、次の例のセクションを参照してください。
 

構文

PROTOCOL_CL_NOTIFY_CLOSE_AF ProtocolClNotifyCloseAf;

NDIS_STATUS ProtocolClNotifyCloseAf(
  [in] NDIS_HANDLE ClientAfContext
)
{...}

パラメーター

[in] ClientAfContext

関連付けられた AF のコンテキスト領域に対するクライアント提供のハンドル。 クライアントは、このコンテキスト領域を割り当て、NDIS への呼び出しでこのハンドルを渡しました。NdisClOpenAddressFamilyEx 関数を します。

戻り値

ProtocolClNotifyCloseAf は、次のいずれかを返すことができます。

リターン コード 形容
NDIS_STATUS_SUCCESS
クライアントがアドレス ファミリを正常に閉じました。
NDIS_STATUS_PENDING
クライアントは、この要求を非同期的に処理し、次の要求を呼び出します。閉じる操作が完了すると、NdisClNotifyCloseAddressFamilyComplete 関数を します。
NDIS_STATUS_XXX
クライアントは、何らかのドライバーによって決定された理由で要求に失敗しました。

備考

ザCoNDIS クライアント ProtocolClNotifyCloseAf 関数が必要です。 NDIS 呼び出し ProtocolClNotifyCloseAf 呼び出しマネージャーがアドレス ファミリ (AF) ProtocolAfContext パラメーターを閉じる必要があることを NDIS に通知するとします。 これに対して、クライアントは次の手順を実行する必要があります。

  1. クライアントにアクティブなマルチポイント接続がある場合は、各マルチポイント仮想接続 (VC) で 1 つのパーティーのみがアクティブなままになるまで、NdisClDropParty 関数を必要な回数だけ呼び出します。
  2. NdisClCloseCall 関数を必要な回数呼び出して、AF に関連付けられているすべての呼び出しを閉じます。
  3. NdisClDeregisterSap 関数を必要な回数呼び出して、クライアントが呼び出しマネージャーに登録したすべてのサービス アクセス ポイント (SAP) を登録解除します。
  4. を呼び出します。ndisClCloseAddressFamily 関数を して AF を閉じます。
クライアントは、NDIS_STATUS_PENDINGを返すことによって、これらのアクションを非同期的に完了できます。 クライアントが非同期的に呼び出しを完了した場合は、その後、閉じる操作が完了すると、NdisClNotifyCloseAddressFamilyComplete 関数を します。 クライアントがNDIS_STATUS_PENDINGを返さない場合、閉じる操作は次のタイミングで完了します。ProtocolClNotifyCloseAf が返

NDIS は、IRQL <= DISPATCH_LEVEL で ProtocolClNotifyCloseAf を呼び出します。

クライアントは、AF が開いている間、または NdisAfHandle を使用できます。ProtocolClNotifyCloseAf 操作 保留中です。 次の場合ProtocolClNotifyCloseAf 関数 NDIS_STATUS_PENDINGを返す場合は、NdisClNotifyCloseAddressFamilyComplete 閉じる操作の完了後に呼び出

の例

ProtocolClNotifyCloseAf 関数を定義するには、まず、定義する関数の型を識別する関数宣言を指定する必要があります。 Windows には、ドライバーの関数の種類のセットが用意されています。 関数の種類を使用して関数を宣言すると、ドライバー のコード分析、静的ドライバー検証ツール (SDV)、およびその他の検証ツールをすると、エラーが検出され、Windows オペレーティング システムのドライバーを記述するための要件になります。

たとえば、"MyClNotifyCloseAf" という名前の ProtocolClNotifyCloseAf 関数を定義するには、次のコード例に示すように PROTOCOL_CL_NOTIFY_CLOSE_AF 型を使用します。

PROTOCOL_CL_NOTIFY_CLOSE_AF MyClNotifyCloseAf;

次に、次のように関数を実装します。

_Use_decl_annotations_
NDIS_STATUS
 MyClNotifyCloseAf(
    NDIS_HANDLE  ProtocolAfContext
    )
  {...}

PROTOCOL_CL_NOTIFY_CLOSE_AF 関数の種類は、Ndis.h ヘッダー ファイルで定義されています。 コード分析ツールの実行時にエラーをより正確に識別するには、Use_decl_annotations 注釈を関数定義に追加してください。 Use_decl_annotations 注釈により、ヘッダー ファイル内の PROTOCOL_CL_NOTIFY_CLOSE_AF 関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「ndis ドライバーの の関数の役割の種類を使用して関数を宣言するを参照してください。

Use_decl_annotationsの詳細については、「関数の動作に注釈を付ける」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 以降でサポートされています。
ターゲット プラットフォーム ウィンドウズ
ヘッダー ndis.h (Ndis.h を含む)
IRQL <= DISPATCH_LEVEL

関連項目

NdisClCloseAddressFamily

NdisClCloseCall

NdisClDeregisterSap

NdisClDropParty

NdisClNotifyCloseAddressFamilyComplete

NdisClOpenAddressFamilyEx