Partager via


Fonction StorPortWaitForSingleObject (storport.h)

Un miniport peut appeler la fonction StorPortWaitForSingleObject pour placer le thread actuel dans un état d’attente jusqu’à ce que l’objet de répartiteur donné soit défini sur l’état signalé ou éventuellement expire.

Syntaxe

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

Paramètres

HwDeviceExtension

Pointeur vers l’extension d’appareil du miniport de stockage.

Object

Pointeur vers l’objet de répartiteur initialisé (événement, mutex, sémaphore, thread ou minuteur).

Alertable

Valeur booléenne définie sur TRUE si l’attente est alertable et FALSE dans le cas contraire.

Timeout

Pointeur vers la valeur de délai d’expiration qui spécifie l’heure absolue ou relative, en unités de 100 nanosecondes, à laquelle l’attente doit être terminée.

Une valeur positive spécifie une heure absolue, par rapport au 1er janvier 1601. Une valeur négative spécifie un intervalle par rapport à l’heure actuelle. Les heures d’expiration absolues suivent les modifications apportées à l’heure système ; les heures d’expiration relatives ne sont pas affectées par les changements d’heure système.

Si délai d’expiration = 0, la routine retourne sans attendre. Si le miniport fournit un pointeur NULL, la routine attend indéfiniment jusqu’à ce que l’objet répartiteur soit défini à l’état signalé. Pour plus d'informations, consultez la section Notes qui suit.

Valeur retournée

StorPortSetEvent retourne un code status tel que l’un des éléments suivants :

Code de retour Description
STOR_STATUS_INVALID_PARAMETER Un ou plusieurs des paramètres ne sont pas valides.
STOR_STATUS_SUCCESS L’événement ETW a été journalisé avec succès.
STOR_STATUS_UNSUCCESSFUL L'opération a échoué.

Remarques

Pour plus d’informations, consultez KeWaitForSingleObject .

Les appelants de StorportWaitForSingleObject doivent être en cours d’exécution à IRQL <= DISPATCH_LEVEL. Toutefois, si Délai d’expiration = NULL ou Délai d’expiration != 0, l’appelant doit s’exécuter à IRQL <= APC_LEVEL et dans un contexte de thread non linéaire. (Si délai d’expiration != NULL et délai d’expiration = 0, l’appelant doit s’exécuter à IRQL <= DISPATCH_LEVEL.)

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 2004
En-tête storport.h

Voir aussi

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent