次の方法で共有


WdfSpinLockCreate 関数 (wdfsync.h)

[KMDF と UMDF に適用]

WdfSpinLockCreate メソッドは、フレームワークのスピン ロック オブジェクトを作成します。

構文

NTSTATUS WdfSpinLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES SpinLockAttributes,
  [out]          WDFSPINLOCK            *SpinLock
);

パラメーター

[in, optional] SpinLockAttributes

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

[out] SpinLock

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

戻り値

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

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

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

注釈

WdfSpinLockCreate メソッドは、フレームワークのスピン ロック オブジェクトを作成します。 スピン ロック オブジェクトを作成した後、ドライバーは WdfSpinLockAcquire を呼び出してロックを取得し、 WdfSpinLockRelease を呼び出してロックを解放できます。

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

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

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

WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfSpinLockCreate(
                           &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)WdfSpinlock(kmdf)

こちらもご覧ください

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfSpinLockAcquire

WdfSpinLockRelease

WdfSpinlock ルール (KMDF)

WdfSpinLockRelease ルール (KMDF)