次の方法で共有


WdfWaitLockCreate 関数 (wdfsync.h)

[KMDF と UMDF に適用]

WdfWaitLockCreate メソッドは、フレームワークの wait-lock オブジェクトを作成します。

構文

NTSTATUS WdfWaitLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES LockAttributes,
  [out]          WDFWAITLOCK            *Lock
);

パラメーター

[in, optional] LockAttributes

待機ロック オブジェクトの属性を指定する呼び出し元によって割り当てられた WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。

[out] Lock

新しいフレームワーク待機ロック オブジェクトへのハンドルを受け取る場所へのポインター。

戻り値

操作が成功した場合、WdfWaitLockCreate はSTATUS_SUCCESSを返します。

WdfWaitLockCreate メソッドが返す可能性があるその他の戻り値の一覧については、「フレームワーク オブジェクト作成エラー」を参照してください。

このメソッドは、他の NTSTATUS 値を返す場合もあります。

注釈

WdfWaitLockCreate メソッドは、フレームワークの wait-lock オブジェクトを作成します。 待機ロック オブジェクトを作成した後、ドライバーは WdfWaitLockAcquire を呼び出してロックを取得し、 WdfWaitLockRelease を呼び出してロックを解放できます。

既定では、新しい wait-lock オブジェクトの親は 、WdfDriverCreate メソッドによって作成されたフレームワーク ドライバー オブジェクトです。 WDF_OBJECT_ATTRIBUTES構造体の ParentObject メンバーを使用して、別の親を指定できます。 フレームワークは、親オブジェクトを削除するときに wait-lock オブジェクトを削除します。 ドライバーが既定の親を変更しない場合、ドライバーは、オブジェクトの使用が完了したときに待機ロック オブジェクトを削除する必要があります。それ以外の場合、オブジェクトは I/O マネージャーがドライバーをアンロードするまで残ります。

待機ロックの詳細については、「 Framework-Based ドライバーの同期手法」を参照してください。

次のコード例では、 WDF_OBJECT_ATTRIBUTESを初期化し、待機ロックの親オブジェクトがデバイス オブジェクトであることを指定し、 WdfWaitLockCreate を呼び出します。

WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfWaitLockCreate(
                           &attributes,
                           &lockHandle
                           );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfsync.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、 ParentObjectCheckLock(kmdf)

こちらもご覧ください

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfWaitLockAcquire

WdfWaitLockRelease