Partager via


WinRUIGetLastInitStatus

La fonction WinRUIGetLastInitStatus permet à une application de déterminer le status d’un RUI_INIT, afin que l’application puisse évaluer si le RUI_INIT doit être expiré. Cette extension peut être utilisée pour lancer status création de rapports, mettre fin status création de rapports ou rechercher le status actuel. Pour plus d'informations, consultez la section Notes.

Syntaxe

  
          int WINAPI WinRUIGetLastInitStatus(   
DWORD dwSid,             
 HANDLE hStatusHandle,    
DWORD dwNotifyType,      
BOOL bClearPrevious    );  

Paramètres

dwSid
Spécifie l’identificateur de session RUI de la session pour laquelle status seront déterminés. Si dwSid est égal à zéro, hStatusHandle est utilisé pour signaler status sur toutes les sessions. Notez que le paramètre lua_sid dans le bloc de contrôle de verbe RUI_INIT (VCB) est valide dès que l’appel à RUI ou WinRUI pour le RUI_INIT est retourné.

hStatusHandle
Spécifie un handle utilisé pour signaler à l’application que le status de la session (spécifié par dwSid) a changé. Il peut s’agir d’un handle de fenêtre, d’un handle d’événement ou d’une valeur NULL ; dwNotifyType doit être défini en conséquence :

Si hStatusHandle est un handle de fenêtre, status est envoyé à l’application via un message de fenêtre. Le message est obtenu à partir de RegisterWindowMessage à l’aide de la chaîne « WinRUI ». Le paramètre wParam contient le status de session. (Pour plus d’informations, consultez Codes de retour.) Selon la valeur de dwNotifyType, lParam contient soit l’identificateur de session RUI de la session, soit la valeur de lua_correlator du verbe RUI_INIT .

Si hStatusHandle est un handle d’événement, lorsque l’status pour la session spécifiée par dwSid change, l’événement est placé dans l’état signalé. L’application doit ensuite passer un autre appel à WinRUIGetLastInitStatus pour trouver le nouveau status. Notez que l’événement ne doit pas être identique à celui utilisé pour signaler l’achèvement d’un verbe RUI.

Si hStatusHandle a la valeur NULL, la status de la session spécifiée par dwSid est retournée dans le code de retour. Dans ce cas, dwSid ne doit pas être égal à zéro, sauf si bClearPrevious a la valeur TRUE. Si hStatusHandle a la valeur NULL, dwNotifyType est ignoré.

dwNotifyType
Spécifie le type d’indication requis. Cela détermine le contenu du lParam du message de fenêtre et la façon dont WinRUIGetLastInitStatus interprète hStatusHandle. Les valeurs autorisées sont les suivantes :

WLUA_NTFY_EVENT

Le paramètre hStatusHandle contient un handle d’événement.

WLUA_NTFY_MSG_CORRELATOR

Le paramètre hStatusHandle contient un handle de fenêtre, et lParam du message de fenêtre retourné doit contenir la valeur du champ lua_correlator sur le RUI_INIT.

WLUA_NTFY_MSG_SID

Le paramètre hStatusHandle contient un handle de fenêtre, et le lParam du message de fenêtre retourné doit contenir l’identificateur de session LUA.

bClearPrevious
Si la valeur est TRUE, status messages ne sont plus envoyés pour la session identifiée par dwSid. Si dwSid est égal à zéro, status messages ne sont plus envoyés pour une session. Si bClearPrevious a la valeur TRUE, hStatusHandle et dwNotifyType sont ignorés.

Valeur renvoyée

WLUASYSNOTREADY
SNABASE n’est pas en cours d’exécution.

WLUANTFYINVALID
Le paramètre dwNotifyType n’est pas valide.

WLUAINVALIDHANDLE
Le paramètre hStatusHandle ne contient pas de handle valide.

WLUASTARTUPNOTCALLED
WinRUIStartup n’a pas été appelé.

WLUALINKINACTIVE
Le lien vers l’hôte n’est pas encore actif.

WLUALINKACTIVATING
Le lien vers l’hôte est en cours d’activation.

WLUAPUINACTIVE
Le lien vers l’hôte est actif, mais aucun ACTPU n’a encore été reçu.

WLUAPUACTIVE
Un ACTPU a été reçu.

WLUAPUREACTIVATED
L’unité physique (PU) a été réactivée.

WLUALUINACTIVE
Le lien vers l’hôte est actif et un PROCESSEUR ACTPU a été reçu, mais aucun ACTLU n’a été reçu.

WLUALUACTIVE
L’unité lu est active.

WLUALUREACTIVATED
L’unité lu a été réactivée.

WLUAUNKNOWN
La session se trouve dans un status inconnu. (Il s’agit d’une erreur interne.)

WLUAGETLU
La session attend une réponse Open (SSCP) à partir du nœud.

WLUASIDINVALID
L’ID de sécurité (SID) spécifié ne correspond à aucun id de sécurité connu par le RUI.

WLUASIDZERO
Le paramètre hStatusHandle a la valeur NULL et bClearPrevious a la valeur FALSE, mais dwSid est égal à zéro.

WLUAGLOBALHANDLER
Le paramètre dwSid est égal à zéro et les messages de toutes les sessions sont notifiés. (Il s’agit d’un code de retour normal, et non d’une erreur.)

Remarques

Cette extension est destinée à être utilisée avec un handle de fenêtre ou un handle d’événement pour activer la notification asynchrone des modifications status. Il peut également être utilisé seul pour rechercher le status actuel d’une session.

Avec un handle de fenêtre

Il existe deux façons d’utiliser cette extension avec un handle de fenêtre :

WinRUIGetLastInitStatus(Sid,Handle,WLUA_NTFY_MSG_CORRELATOR,FALSE);  

Ou

WinRUIGetLastInitStatus(Sid,Handle,WLUA_NTFY_MSG_SID,FALSE);  

Avec cette implémentation, les modifications apportées à status sont signalées par un message de fenêtre envoyé au handle de fenêtre spécifié. Si WLUA_NTFY_MSG_CORRELATOR est spécifié, le champ lParam dans le message de fenêtre contient le champ lua_correlator pour la session. Si WLUA_NTFY_MSG_SID est spécifié, le champ lParam dans le message de fenêtre contient l’identificateur de session LUA pour la session.

Lorsque l’extension a été utilisée avec un handle de fenêtre, utilisez les éléments suivants pour annuler status rapport :

WinRUIGetLastInitStatus(Sid,NULL,0,TRUE);  

Pour cette implémentation, notez que si Sid est différent de zéro, status est signalé uniquement pour cette session. Si Sid est égal à zéro, status est signalé pour toutes les sessions.

Avec un handle d’événement

Pour utiliser cette extension avec un handle d’événement, implémentez-la comme suit :

WinRUIGetLastInitStatus(Sid,Handle,WLUA_NOTIFY_EVENT,FALSE);  

L’événement dont le handle est donné est signalé lorsqu’un changement d’état se produit. Étant donné qu’aucune information n’est retournée lorsqu’un événement est signalé, un autre appel doit être émis pour connaître le status.

Status = WinRUIGetLastInitStatus(Sid,NULL,0,0,FALSE);  

Notez que dans ce cas, un Sid doit être spécifié.

Lorsque l’extension a été utilisée avec un handle d’événement, utilisez les éléments suivants pour annuler la création de rapports de status :

WinRUIGetLastInitStatus(Sid,NULL,0,TRUE);  

Interroger les status actuelles

Pour utiliser cette extension pour interroger le status actuel d’une session, il n’est pas nécessaire d’utiliser un handle d’événement ou de fenêtre. Utilisez plutôt ce qui suit :

Status = WinRUIGetLastInitStatus(Sid,NULL,0,0,FALSE);  

Voir aussi

RUI
RUI_INIT
WinRUI
WinRUIStartup