WinRUIGetLastInitStatus
WinRUIGetLastInitStatus 함수를 사용하면 애플리케이션이 RUI_INIT 상태 확인할 수 있으므로 애플리케이션은 RUI_INIT 시간 초과 여부를 평가할 수 있습니다. 이 확장을 사용하여 상태 보고를 시작하거나, 상태 보고를 종료하거나, 현재 상태 찾을 수 있습니다. 자세한 내용은 설명 부분을 참조하십시오.
구문
int WINAPI WinRUIGetLastInitStatus(
DWORD dwSid,
HANDLE hStatusHandle,
DWORD dwNotifyType,
BOOL bClearPrevious );
매개 변수
dwSid
상태 결정될 세션의 RUI 세션 식별자를 지정합니다. dwSid가 0이면 hStatusHandle을 사용하여 모든 세션에서 상태 보고합니다. RUI_INIT 동사 제어 블록(VCB)의 lua_sid 매개 변수는 RUI_INIT대한 RUI 또는 WinRUI 호출이 반환되는 즉시 유효합니다.
hStatusHandle
세션에 대한 상태 변경되었음을 애플리케이션에 알리는 데 사용되는 핸들을 지정합니다(dwSid로 지정됨). 창 핸들, 이벤트 핸들 또는 NULL일 수 있습니다. dwNotifyType 은 그에 따라 설정해야 합니다.
hStatusHandle이 창 핸들인 경우 상태 창 메시지를 통해 애플리케이션으로 전송됩니다. 메시지는 "WinRUI" 문자열 을 사용하여 RegisterWindowMessage 에서 가져옵니다. wParam 매개 변수에는 세션 상태 포함됩니다. (자세한 내용은 반환 코드를 참조하세요.) dwNotifyType 값에 따라 lParam 에는 세션의 RUI 세션 식별자 또는 RUI_INIT 동사의 lua_correlator 값이 포함됩니다.
hStatusHandle이 이벤트 핸들인 경우 dwSid로 지정된 세션에 대한 상태 변경되면 이벤트가 신호 상태로 전환됩니다. 그런 다음, 애플리케이션은 WinRUIGetLastInitStatus를 추가로 호출하여 새 상태 확인해야 합니다. 이벤트는 RUI 동사의 완료를 알리는 데 사용되는 이벤트와 같으면 안 됩니다.
hStatusHandle이 NULL이면 dwSid로 지정된 세션의 상태 반환 코드에 반환됩니다. 이 경우 bClearPrevious가 TRUE가 아니면 dwSid가 0이 아니어야 합니다. hStatusHandle이 NULL이면 dwNotifyType은 무시됩니다.
dwNotifyType
필요한 표시 유형을 지정합니다. 그러면 창 메시지의 lParam 내용과 WinRUIGetLastInitStatus 가 hStatusHandle을 해석하는 방법이 결정됩니다. 허용된 값은
WLUA_NTFY_EVENT
hStatusHandle 매개 변수에는 이벤트 핸들이 포함되어 있습니다.
WLUA_NTFY_MSG_CORRELATOR
hStatusHandle 매개 변수에는 창 핸들이 포함되어 있으며 반환된 창 메시지의 lParam에는 RUI_INIT lua_correlator 필드의 값이 포함되어야 합니다.
WLUA_NTFY_MSG_SID
hStatusHandle 매개 변수에는 창 핸들이 포함되어 있으며 반환된 창 메시지의 lParam에는 LUA 세션 식별자가 포함되어야 합니다.
bClearPrevious
TRUE이면 dwSid로 식별된 세션에 대해 상태 메시지가 더 이상 전송되지 않습니다. dwSid가 0이면 상태 메시지는 더 이상 세션에 대해 전송되지 않습니다. bClearPrevious가 TRUE이면 hStatusHandle 및 dwNotifyType이 무시됩니다.
반환 값
WLUASYSNOTREADY
SNABASE가 실행되고 있지 않습니다.
WLUANTFYINVALID
dwNotifyType 매개 변수가 잘못되었습니다.
WLUAINVALIDHANDLE
hStatusHandle 매개 변수에 유효한 핸들이 없습니다.
WLUASTARTUPNOTCALLED
WinRUIStartup 이 호출되지 않았습니다.
WLUALINKINACTIVE
호스트에 대한 링크가 아직 활성화되지 않았습니다.
WLUALINKACTIVATING
호스트에 대한 링크가 활성화되고 있습니다.
WLUAPUINACTIVE
호스트에 대한 링크가 활성 상태이지만 ACTPU가 아직 수신되지 않았습니다.
WLUAPUACTIVE
ACTPU가 수신되었습니다.
WLUAPUREACTIVATED
PU(물리적 단위)가 다시 활성화되었습니다.
WLUALUINACTIVE
호스트에 대한 링크가 활성 상태이고 ACTPU가 수신되었지만 ACTLU가 수신되지 않았습니다.
WLUALUACTIVE
LU가 활성 상태입니다.
WLUALUREACTIVATED
LU가 다시 활성화되었습니다.
WLUAUNKNOWN
세션이 알 수 없는 상태. (내부 오류입니다.)
WLUAGETLU
세션이 노드에서 Open(SSCP) 응답을 기다리고 있습니다.
WLUASIDINVALID
지정된 SID(보안 ID)가 RUI에서 알려진 ID와 일치하지 않습니다.
WLUASIDZERO
hStatusHandle 매개 변수는 NULL이고 bClearPrevious는 FALSE이지만 dwSid는 0입니다.
WLUAGLOBALHANDLER
dwSid 매개 변수는 0이며 모든 세션의 메시지에 알림이 표시됩니다. (오류가 아닌 일반적인 반환 코드입니다.)
설명
이 확장은 상태 변경 내용에 대한 비동기 알림을 사용하도록 설정하기 위해 창 핸들 또는 이벤트 핸들과 함께 사용됩니다. 세션의 현재 상태 찾기 위해 단독으로 사용할 수도 있습니다.
창 핸들이 있는 경우
창 핸들에서 이 확장을 사용하는 방법에는 두 가지가 있습니다.
WinRUIGetLastInitStatus(Sid,Handle,WLUA_NTFY_MSG_CORRELATOR,FALSE);
또는
WinRUIGetLastInitStatus(Sid,Handle,WLUA_NTFY_MSG_SID,FALSE);
이 구현에서는 지정된 창 핸들로 전송된 창 메시지에 의해 상태 변경 내용이 보고됩니다. WLUA_NTFY_MSG_CORRELATOR 지정하면 창 메시지의 lParam 필드에 세션에 대한 lua_correlator 필드가 포함됩니다. WLUA_NTFY_MSG_SID 지정하면 창 메시지의 lParam 필드에 세션에 대한 LUA 세션 식별자가 포함됩니다.
확장이 창 핸들과 함께 사용된 경우 다음을 사용하여 상태 보고를 취소합니다.
WinRUIGetLastInitStatus(Sid,NULL,0,TRUE);
이 구현의 경우 Sid가 0이 아닌 경우 상태 해당 세션에 대해서만 보고됩니다. Sid가 0이면 모든 세션에 대해 상태 보고됩니다.
이벤트 핸들을 사용하여
이벤트 핸들과 함께 이 확장을 사용하려면 다음과 같이 구현합니다.
WinRUIGetLastInitStatus(Sid,Handle,WLUA_NOTIFY_EVENT,FALSE);
핸들이 지정된 이벤트는 상태 변경이 발생할 때 신호를 받습니다. 이벤트가 신호를 받을 때 정보가 반환되지 않으므로 상태 확인하기 위해 추가 호출을 실행해야 합니다.
Status = WinRUIGetLastInitStatus(Sid,NULL,0,0,FALSE);
이 경우 Sid 를 지정해야 합니다.
확장이 이벤트 핸들과 함께 사용된 경우 다음을 사용하여 상태 보고를 취소합니다.
WinRUIGetLastInitStatus(Sid,NULL,0,TRUE);
현재 상태 쿼리
이 확장을 사용하여 세션의 현재 상태 쿼리하려면 이벤트 또는 창 핸들을 사용할 필요가 없습니다. 대신 다음을 사용합니다.
Status = WinRUIGetLastInitStatus(Sid,NULL,0,0,FALSE);