Поделиться через


Функция WdfSpinLockCreate (wdfsync.h)

[Применимо к KMDF и UMDF]

Метод WdfSpinLockCreate создает объект спин-блокировки платформы.

Синтаксис

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

Параметры

[in, optional] SpinLockAttributes

Указатель на структуру, выделенную вызывающим объектом WDF_OBJECT_ATTRIBUTES, которая задает атрибуты для объекта spin-lock. Этот параметр является необязательным и может быть WDF_NO_OBJECT_ATTRIBUTES.

[out] SpinLock

Указатель на расположение, которое получает дескриптор к новому объекту spin-lock платформы.

Возвращаемое значение

WdfSpinLockCreate возвращает STATUS_SUCCESS, если операция завершится успешно.

Список других возвращаемых значений, которые может возвращать метод WdfSpinLockCreate, см. в ошибках создания объектов Framework.

Этот метод также может возвращать другие значения NTSTATUS.

Замечания

Метод WdfSpinLockCreate создает объект спин-блокировки платформы. После создания объекта spin-lock драйвер может вызвать WdfSpinLockAcquire, чтобы получить блокировку и WdfSpinLockRelease, чтобы освободить блокировку.

По умолчанию родительский объект spin-lock является объектом драйвера платформы, созданным методом WdfDriverCreate. Вы можете использовать элемент ParentObject структуры WDF_OBJECT_ATTRIBUTES для указания другого родительского элемента. Платформа удаляет объект spin-lock при удалении родительского объекта. Если драйвер не изменяет родительский объект по умолчанию, драйвер должен удалить объект spin-lock после завершения работы с объектом; в противном случае объект останется до тех пор, пока диспетчер ввода-вывода не выгрузит драйвер.

Дополнительные сведения о блокировках спина см. в разделе Методы синхронизации драйверов 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 (include 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 (KMDF)