次の方法で共有


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
ヘッダー wdfsync.h (Wdf.h を含む)
ライブラリ 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 rule (KMDF)