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 |