ExEnterCriticalRegionAndAcquireResourceExclusive 関数 (wdm.h)
ExEnterCriticalRegionAndAcquireResourceExclusive ルーチンは、最初にクリティカル リージョンに入り、指定されたリソースへの排他アクセス権を取得します。
構文
PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
PERESOURCE Resource
);
パラメーター
Resource
[入力、出力]排他アクセス用に取得するリソースへのポインター。 このパラメーターは、呼び出し元によって割り当てられた ERESOURCE 構造体を 指します。 呼び出し元は、以前に非ページ プールからこの構造体を割り当て、 ExInitializeResourceLite ルーチンまたは ExReinitializeResourceLite ルーチンを呼び出して初期化しました。
戻り値
不透明なシステム構造へのポインター。 ドライバーは、この戻り値を無視する必要があります。
注釈
指定したリソースが排他アクセスにすぐに使用できないときにこのルーチンが呼び出された場合、呼び出し元のスレッドはリソースが使用可能になるまでブロックされます。
ドライバー スレッドが重要なリージョンで実行されている間、ドライバーのユーザー APC と通常のカーネル APC は実行されません。 特別なカーネル API は引き続き実行されます。 これらの APC の種類の詳細については、「 APC の種類」を参照してください。
通常のカーネル APC を一時的に無効にすると、 ExEnterCriticalRegionAndAcquireResourceExclusive は、パッシブ レベルの呼び出しスレッドが APC によって割り込まれるのを防ぎ、スレッドは APC がアクセスしようとする共有リソースを保持します。
呼び出し元のスレッドはクリティカルリージョンに留まり、指定されたリソースを必要以上に保持する必要はありません。 指定したリソースを解放し、クリティカル リージョンから移動するには、 ExReleaseResourceAndLeaveCriticalRegion ルーチンを呼び出します。
ERESOURCE 構造体を使用してリソースへの排他アクセスを同期する方法の詳細については、「ERESOURCE ルーチンの概要」を参照してください。 クリティカル リージョンへの入退出の詳細については、「 クリティカル リージョン」と「保護されたリージョン」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2003 SP1 |
Header | wdm.h |
IRQL | <= APC_LEVEL |
DDI コンプライアンス規則 | CriticalRegions(wdm), HwStorPortProhibitedDDIs(storport) |
こちらもご覧ください
ExAcquireResourceExclusiveLite