MINIPORT_CHECK_FOR_HANGコールバック関数 (ndis.h)
警告
すべての NDIS 6.83 以降のドライバーでは、ミニポートCheckForHangEx および ミニポートResetEx コールバック関数は推奨されません。 詳細については、「NDIS 6.83 以降の のハングチェックおよびリセット操作」を参照してください。
NDIS は、ミニポート ドライバーの ミニポートCheckForHangEx 関数を呼び出して、ネットワーク インターフェイス カード (NIC) を表すミニポート アダプターの動作状態を確認します。
構文
MINIPORT_CHECK_FOR_HANG MiniportCheckForHang;
BOOLEAN MiniportCheckForHang(
[in] NDIS_HANDLE MiniportAdapterContext
)
{...}
パラメーター
[in] MiniportAdapterContext
ミニポート ドライバーがその ミニポートInitializeEx 関数に割り当てられたコンテキスト領域へのハンドル。 ミニポート ドライバーは、ミニポート アダプターの状態情報を維持するには、このコンテキスト領域を使用します。
戻り値
ミニポートCheckForHangEx は、ドライバーが NIC が動作していないと判断し、NDIS がドライバーの ミニポートResetEx 関数を呼び出す必要がある場合、TRUE を返します。 詳細については、「解説」セクションを参照してください。
備考
ミニポート ドライバーは、ミニポートCheckForHangEx エントリ ポイントを呼び出すときに指定します。NdisMRegisterMiniportDriver 関数を します。
中間ドライバー ミニポートCheckForHangEx は必要ありません。
ミニポートCheckForHangEx は、NIC の内部状態を確認し、NIC が正しく動作していないことを検出した場合 TRUE を返します。
既定では、NDIS はミニポートCheckForHangEx 約 2 秒ごとに を呼び出します。 このため、ミニポート ドライバーの ミニポートCheckForHangEx 関数は、できるだけ早く返す必要があります。
ミニポート ドライバーが、ミニポートCheckForHangEx への 2 つの連続する呼び出し内で OID 要求を完了しない場合、NDIS はドライバーの ミニポートResetEx 関数を呼び出すことができます。 ただし、不要なリセットを回避するために、ドライバーの ミニポートInitializeEx 関数を呼び出すときに適切な CheckForHangTimeInSeconds 値を設定することで、ハングチェックのタイムアウト間隔を延長できます。NdisMSetMiniportAttributes 関数を します。
CheckForHangTimeInSeconds タイムアウト値の設定の詳細については、「ミニポート アダプターの Check-for-Hang 操作とリセット操作 を参照してください。
NDIS は、IRQL = PASSIVE_LEVEL でミニポートCheckForHangEx 呼び出します。
の例
ミニポートCheckForHangEx 関数を定義するには、まず、定義する関数の型を識別する関数宣言を指定する必要があります。 Windows には、ドライバーの関数の種類のセットが用意されています。 関数の種類を使用して関数を宣言すると、ドライバー のコード分析、静的ドライバー検証ツール (SDV)、およびその他の検証ツールをすると、エラーが検出され、Windows オペレーティング システムのドライバーを記述するための要件になります。たとえば、"MyCheckForHangEx" という名前の ミニポートCheckForHangEx 関数を定義するには、次のコード例に示すように MINIPORT_CHECK_FOR_HANG 型を使用します。
MINIPORT_CHECK_FOR_HANG MyCheckForHangEx;
次に、次のように関数を実装します。
_Use_decl_annotations_
BOOLEAN
MyCheckForHangEx(
NDIS_HANDLE MiniportAdapterContext
)
{...}
MINIPORT_CHECK_FOR_HANG 関数の種類は、Ndis.h ヘッダー ファイルで定義されています。 コード分析ツールの実行時にエラーをより正確に識別するには、Use_decl_annotations 注釈を関数定義に追加してください。 Use_decl_annotations 注釈により、ヘッダー ファイル内の MINIPORT_CHECK_FOR_HANG 関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「ndis ドライバーの の関数の役割の種類を使用して関数を宣言するを参照してください。
Use_decl_annotationsの詳細については、「関数の動作に注釈を付ける」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.0 以降でサポートされています。 |
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | PASSIVE_LEVEL |
関連項目
ミニポートResetEx の
NdisMRegisterMiniportDriver の
NdisMSetMiniportAttributes の