C28166

警告 C28166: この関数は、IRQLを関数開始時の現在の値に復元しませんが、そうする必要があります。

この警告は、関数に _IRQL_requires_same_ アノテーションがあり、関数終了時に関数の開始時にドライバーが実行されていた IRQL に IRQL を復元しない、関数を経由するパスが少なくとも 1 つあることを示します。

通常、_IRQL_requires_same_ アノテーションはコールバック関数で使用されます。

この警告を回避するには、ドライバーは初期 IRQL 値を適切に保存し、関数終了時に同じ IRQL 値を復元する必要があります。これは、_IRQL_requires_same_ アノテーションがアサートするものです。