NdisWriteErrorLogEntry 関数 (ndis.h)

NdisWriteErrorLogEntry は、システム I/O エラー ログ ファイルにエントリを書き込みます。

構文

void NdisWriteErrorLogEntry(
  [in] NDIS_HANDLE     NdisAdapterHandle,
  [in] NDIS_ERROR_CODE ErrorCode,
  [in] ULONG           NumberOfErrorValues,
       ...             
);

パラメーター

[in] NdisAdapterHandle

I/O エラーがログに記録される原因である NIC を表すハンドルを指定します。 このハンドルは、 MiniportInitializeEx への入力パラメーターです。

[in] ErrorCode

I/O エラーを次のいずれかの値として最もよく記述するNDIS_ERROR_CODE_XXX コードを指定します。

NDIS_ERROR_CODE_RESOURCE_CONFLICT

ドライバーが必要なリソースにアクセスできませんでした。

NDIS_ERROR_CODE_OUT_OF_RESOURCES

ハードウェアまたはドライバーがリソースを使い果たしました。

NDIS_ERROR_CODE_HARDWARE_FAILURE

ドライバーでハードウェア エラーが検出されました。

NDIS_ERROR_CODE_ADAPTER_NOT_FOUND

ネットワーク アダプターが見つかりませんでした。

NDIS_ERROR_CODE_INTERRUPT_CONNECT

割り込みの登録に失敗しました。

NDIS_ERROR_CODE_DRIVER_FAILURE

他のどのエラー条件にも一致しないドライバーエラーが発生しました。

NDIS_ERROR_CODE_BAD_VERSION

ドライバーがバージョンの不一致を検出しました。

NDIS_ERROR_CODE_TIMEOUT

タイムアウトの有効期限が切れています。

NDIS_ERROR_CODE_NETWORK_ADDRESS

ネットワーク アドレスが無効です。

NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION

要求されたドライバー構成はサポートされていません。

NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER

ネットワーク アダプター ハードウェアが無効な値を指定しました。

NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER

レジストリにドライバー構成パラメーターがありません。

NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS

ネットワーク アダプター ハードウェアの I/O ベース アドレスが無効です。

NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL

使用可能な受信バッファー メモリの量が小さすぎてデータを受信できません。

NDIS_ERROR_CODE_ADAPTER_DISABLED

ネットワーク アダプター ハードウェアが無効になっています。

[in] NumberOfErrorValues

このパラメーターの後に続く ULONG 値の数を指定します。

...

ログに記録されるエラーに関連付けられている ULONG の可変サイズの配列を指定します。

戻り値

なし

解説

NdisWriteErrorLogEntry は、I/O エラー ログ レコードを割り当て、エラーに関する指定された情報をレコードに入力し、そのレコードを I/O エラー ログ ファイルに書き込みます。

システムは、エラー ログ レコードの潜在的なサイズに制限を設定します。 Windows 2000 以降のバージョンの場合、制限はERROR_LOG_MAXIMUM_SIZEとして定義されます。 そのため、NdisWriteErrorLogEntry に渡される NumberOfErrorValues には、システムによって適用される制限があり、ULONG の最大値よりもかなり小さくなります。

実際には、 NdisWriteErrorLogEntry の呼び出し元が NumberOfErrorValues の制限に近づくこともあります。これは、多数の追加のNDIS_STATUS_XXX 値を指定することは、後で Win32 イベント ビューアーを使用してエラー ログを読み取るユーザーまたはシステム管理者にとって特に役立たないためです。 考えられるすべての機会に I/O エラーをログに記録することは、ユーザーにとって特に役に立ちません。そのため、ミニポート ドライバーは、ユーザーまたはシステム管理者が特定のマシンに対して NIC が責任を負うネットワーク 障害や、ドライバーの初期化中に検出された構成リソースの競合をデバッグするのに役立つ重大な I/O エラーのみをログに記録する必要があります。

一般に、ミニポート ドライバーは、制御する NIC を初期化できない場合、または NIC で I/O 操作を実行するために必要なハードウェア リソースを割り当てることができない場合、ミニポート ドライバーは、ミニポートInitializeEx 関数からの初期化中に NdisWriteErrorLogEntry を呼び出します。 ミニポート ドライバーは、回復不可能なハードウェア エラーが原因でデバイスリセット操作が失敗した場合に NdisWriteErrorLogEntry を呼び出すこともできます。 これらの種類の I/O エラーをログに記録すると、ユーザーまたはシステム管理者は、正しく構成されていない NIC または障害のあるハードウェア コンポーネントを持つ NIC を識別するのに役立ちます。

要件

要件
サポートされている最小のクライアント Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisWriteErrorLogEntry (NDIS 5.1) を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (NdisWriteErrorLogEntry (NDIS 5.1) を参照) でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_Miscellaneous_Function(ndis)

こちらもご覧ください

MiniportInitializeEx

MiniportResetEx

NdisMSetMiniportAttributes