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


Функция StorPortWaitForSingleObject (storport.h)

Минипорт может вызывать функцию StorPortWaitForSingleObject, чтобы поместить текущий поток в состояние ожидания до тех пор, пока заданный объект диспетчера не будет задано сигнальное состояние или при необходимости истекает время ожидания.

Синтаксис

ULONG StorPortWaitForSingleObject(
  PVOID          HwDeviceExtension,
  PVOID          Object,
  BOOLEAN        Alertable,
  PLARGE_INTEGER Timeout
);

Параметры

HwDeviceExtension

Указатель на расширение устройства мини-порта хранилища.

Object

Указатель на инициализированный объект диспетчера (событие, мьютекс, семафор, поток или таймер).

Alertable

Логическое значение имеет значение TRUE, если ожидание оповещается и false в противном случае.

Timeout

Указатель на значение времени ожидания, указывающее абсолютное или относительное время в 100-наносекундах единиц, в которых ожидается завершение ожидания.

Положительное значение указывает абсолютное время относительно 1 января 1601 года. Отрицательное значение указывает интервал относительно текущего времени. Абсолютное время истечения срока действия отслеживает любые изменения в системном времени; относительные сроки действия не влияют на изменения системного времени.

Если время ожидания = 0, подпрограмма возвращается без ожидания. Если минипорт предоставляет указатель NULL, подпрограмма ожидает неограниченное время, пока объект диспетчера не будет задано сигнальное состояние. Дополнительные сведения см. в следующем разделе "Примечания".

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

StorPortSetEvent возвращает код состояния, например один из следующих:

Возвращаемый код Описание
STOR_STATUS_INVALID_PARAMETER Один или несколько параметров недопустимы.
STOR_STATUS_SUCCESS Событие ETW успешно зарегистрировано.
STOR_STATUS_UNSUCCESSFUL Сбой операции.

Замечания

Дополнительные сведения см. в KeWaitForSingleObject.

Вызывающие StorportWaitForSingleObject должны работать в IRQL <= DISPATCH_LEVEL. Однако если время ожидания = NULL или время ожидания != 0, вызывающий объект должен выполняться в IRQL <= APC_LEVEL и в контексте непарбитрного потока. (Если время ожидания != NULL и время ожидания = 0, вызывающий объект должен выполняться в IRQL <= DISPATCH_LEVEL.)

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 2004
заголовка storport.h

См. также

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent