次の方法で共有


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 関数が必要です。 呼び出しマネージャーが、ProtocolAfContext パラメーターが指定するアドレス ファミリ (AF) を閉じる必要があることを NDIS に通知すると、NDIS は ProtocolClNotifyCloseAf を呼び出します。 応答として、クライアントは次の手順を実行する必要があります。

  1. クライアントにアクティブなマルチポイント接続がある場合は、各マルチポイント仮想接続 (VC) で 1 つのパーティのみがアクティブなままになるまで、 NdisClDropParty 関数を必要な回数だけ呼び出します。
  2. NdisClCloseCall 関数を必要な回数だけ呼び出して、まだ開いていると AF に関連付けられているすべての呼び出しを閉じます。
  3. NdisClDeregisterSap 関数を必要な回数だけ呼び出して、クライアントが呼び出しマネージャーに登録したすべてのサービス アクセス ポイント (SAP) を登録解除します。
  4. を呼び出します。 AF を閉じる NdisClCloseAddressFamily 関数。
クライアントは、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 以降でサポートされています。
対象プラットフォーム Windows
ヘッダー ndis.h (Ndis.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

NdisClCloseAddressFamily

NdisClCloseCall

NdisClDeregisterSap

NdisClDropParty

NdisClNotifyCloseAddressFamilyComplete

NdisClOpenAddressFamilyEx