Partager via


StorPortWaitForSingleObject, fonction (storport.h)

Une miniporte peut appeler Fonction StorPortWaitForSingleObject pour placer le thread actuel dans un état d’attente jusqu’à ce que l’objet 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 répartiteur initialisé (événement, mutex, sémaphore, thread ou minuteur).

Alertable

La valeur booléenne a la valeur 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 le temps absolu ou relatif, 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 modifications de temps 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 sur l’état signalé. Pour plus d’informations, consultez la section Remarques suivante.

Valeur de retour

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

Retourner le code Description
STOR_STATUS_INVALID_PARAMETER Un ou plusieurs des paramètres ne sont pas valides.
STOR_STATUS_SUCCESS L’événement ETW a été correctement journalisé.
STOR_STATUS_UNSUCCESSFUL L’opération a échoué.

Remarques

Pour plus d’informations, consultez KeWaitForSingleObject.

Les appelants de StorportWaitForSingleObject doivent s’exécuter à l'<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 nonarbitraire. (Si délai d’expiration != NULL et délai d’expiration = 0, l’appelant doit s’exécuter à IRQL <= DISPATCH_LEVEL.)

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 2004
d’en-tête storport.h

Voir aussi

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent