Функция 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 |