Share via


ExAcquireFastMutexUnsafe 関数 (wdm.h)

ExAcquireFastMutexUnsafe ルーチンは、呼び出し元スレッドの指定された高速ミューテックスを取得します。

構文

void ExAcquireFastMutexUnsafe(
  PFAST_MUTEX FastMutex
);

パラメーター

FastMutex

[入力、出力]呼び出し元がストレージを提供する FAST_MUTEX) 構造体へのポインター。 呼び出し元は、 ExInitializeFastMutex ルーチンの呼び出しによってこの構造体を以前に初期化しました

戻り値

なし

解説

ExAcquireFastMutexUnsafe は、指定された高速ミューテックスをすぐに取得できない場合、呼び出し元を待機状態にします。 それ以外の場合、呼び出し元にはミューテックスの所有権と、呼び出し元がミューテックスを解放するまでミューテックスが保護するリソースへの排他的アクセスが与えられます。

ExAcquireFastMutexUnsafe の呼び出しによって取得される高速ミューテックスは、ExReleaseFastMutexUnsafe ルーチンの呼び出しによって解放する必要があります。

ExAcquireFastMutex ルーチンと ExAcquireFastMutexUnsafe ルーチンは、ミューテックスが使用可能になるまで呼び出し元のスレッドをブロックします。 ExTryToAcquireFastMutex ルーチンは、別のスレッドが既にミューテックスを取得している場合、戻り値 FALSE で直ちにを返します。 ExAcquireFastMutexExTryToAcquireFastMutex の両方で、高速ミューテックスを取得する前に IRQL をAPC_LEVELに上げます。 ドライバーは ExAcquireFastMutexUnsafe を使用する必要があります。これは、次のいずれかが当てはまる場合にのみ、IRQL を発生させません。

  • スレッドは既に APC_LEVEL で実行されています。

  • スレッドは、 KeEnterCriticalRegion または FsRtlEnterFileSystem ルーチンの呼び出しによって以前に入力された重要な領域内のミューテックスを取得します。

高速ミューテックスの詳細については、次のトピックを参照してください。

高速ミューテックスと保護されたミューテックス

ロック、デッドロック、および同期

要件

要件
サポートされている最小のクライアント Windows 2000
Header wdm.h
IRQL APC_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport)

こちらもご覧ください

ExAcquireFastMutex

ExInitializeFastMutex

ExReleaseFastMutexUnsafe

ExTryToAcquireFastMutex

FAST_MUTEX

FsRtlEnterFileSystem

KeEnterCriticalRegion

KeLeaveCriticalRegion