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


Функция 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 Событие трассировки событий Windows успешно зарегистрировано.
STOR_STATUS_UNSUCCESSFUL Операция не удалась.

Комментарии

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 2004
Верхняя часть storport.h

См. также раздел

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent