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および非arbitrary スレッド コンテキストで実行されている必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.0 以降でサポートされています。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ndis.h |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 を する | Irql_Synch_Function(ndis) |