WdfObjectAcquireLock 関数 (wdfsync.h)
[KMDF と UMDF に適用]
WdfObjectAcquireLock メソッドは、オブジェクトの同期ロックを取得します。
構文
VOID WdfObjectAcquireLock(
_In_ WDFOBJECT Object
);
パラメーター
[in] Object
フレームワーク デバイス オブジェクトまたはフレームワーク キュー オブジェクトへのハンドル。
注釈
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
ドライバーは 、WdfObjectAcquireLock メソッドを呼び出して、指定されたフレームワーク デバイス オブジェクトまたはフレームワーク キュー オブジェクトに関連付けられている同期ロックを取得できます。 メソッドは、ロックが取得されるまで戻りません。
ドライバーでオブジェクトの同期ロックが不要になった場合は、 WdfObjectReleaseLock を呼び出す必要があります。
ドライバーが指定したオブジェクトのWDF_OBJECT_ATTRIBUTES構造体の ExecutionLevel メンバーに WdfExecutionLevelPassive を指定した場合、ドライバーは IRQL <= APC_LEVELで WdfObjectAcquireLock を呼び出す必要があります。 WdfObjectAcquireLock は 高速ミューテックス を取得し、呼び出し元の IRQL で を返します。 (この場合、WdfObjectAcquireLock は、通常のカーネル APC が無効になるように、 を返す前に KeEnterCriticalRegion も呼び出します)。
ドライバーが、指定したオブジェクトのWDF_OBJECT_ATTRIBUTES構造体の ExecutionLevel メンバーに WdfExecutionLevelPassive を指定しなかった場合、ドライバーは IRQL <= DISPATCH_LEVEL で WdfObjectAcquireLock を呼び出す必要があります。 WdfObjectAcquireLock は スピン ロック を取得し、IRQL = DISPATCH_LEVEL でを返します。
同期ロックの詳細については、「 Framework-Based ドライバーの同期手法」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfsync.h (Wdf.h を含む) |
IRQL | 「解説」を参照してください。 |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |