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 |