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) |