NDIS_WAIT_FOR_MUTEX マクロ (ndis.h)
NDIS_WAIT_FOR_MUTEX マクロは、指定されたミューテックス オブジェクトがシグナル状態に設定されるまで、現在のスレッドを待機状態にします。
構文
void NDIS_WAIT_FOR_MUTEX(
_M_
);
パラメーター
_M_
初期化されたNDIS_MUTEX型ミューテックス オブジェクトへのポインター。 呼び出し元は、 NDIS_INIT_MUTEX マクロの前の呼び出しでミューテックス オブジェクトを初期化しました。 NDIS_MUTEXは KMUTEX 型のラッパーです。
戻り値
NDIS_WAIT_FOR_MUTEXは 、操作が正常に完了した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、適切な NTSTATUS エラー コードが返されます。
注釈
NDIS ネットワーク ドライバーは、ミューテックスがシグナル状態に遷移するまで待機するために、 NDIS_WAIT_FOR_MUTEX マクロを使用する必要があります。
ドライバーは、発生した IRQL または 任意のスレッド コンテキスト (つまり、ドライバー関数が呼び出されたときに現在のスレッドのコンテキスト) でミューテックス オブジェクトの 0 以外の時間間隔を待機できません。
NDIS_WAIT_FOR_MUTEX ミューテックス オブジェクトの現在の状態を調べて、待機操作をすぐに満たすことができるかどうかを判断します。 操作をすぐに満たすことができる場合は、ミューテックス オブジェクトに必要な更新が行われます。 それ以外の場合、現在のスレッドは待機状態になり、現在のプロセッサで実行するために新しいスレッドが選択されます。
このマクロは、 KeWaitForSingleObject ルーチンの NDIS ラッパーです。
NDIS_WAIT_FOR_MUTEXの呼び出し元は、IRQL == PASSIVE_LEVELおよび非固定スレッド コンテキストで実行されている必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | ndis.h |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 | Irql_Synch_Function(ndis) |