論理ユニット アプリケーション (LUA) 動詞は、同期的または非同期的に実行を完了できます。
同期動詞補完
LUA が発行されるとすぐに動詞のすべての処理を完了できる場合、動詞は同期的に完了します。 この場合、プライマリ リターン コードは LUA_IN_PROGRESS 以外の値に設定され、 lua_flag2.async ビットは 0 に設定されます。
lua_flag2.async ビットの値は、LUA_IN_PROGRESSと等しくないプライマリ リターン コードではなく、テストする必要があります。 (これらの返されるパラメーターの詳細については、個々の動詞の説明を参照してください)。
非同期動詞補完
一部の LUA 動詞 (たとえば、 RUI_PURGE) は、ローカル処理後にすばやく完了します。 ただし、ほとんどの動詞は、ローカル ノードまたはホスト アプリケーションとの間でメッセージを送受信する必要があるため、完了するまでに時間がかかります。
LUA が動詞を完了する前にリモート LU またはローカル ノードからの情報を待機する必要がある場合、動詞は非同期的に完了します。
この場合、 lua_flag2.async ビットは 1 に設定されます。 通常、プライマリ リターン コードも LUA_IN_PROGRESS に設定されますが、この値は依存できません。 lua_flag2.async ビットの値をテストする必要があります。 アプリケーションで他の処理を実行したり、動詞が完了したことを LUA から通知するまで待ったりできるようになりました。 LUA は、プライマリ リターン コードを最終的な値に設定し、 lua_flag2.async を 1 に設定したままにすることで、この通知を発行します。
動詞が完了すると、LUA は環境に応じて次の処理を行います。
Windows では、2 種類の通知が可能です。 LUA アプリケーションは、次のいずれかを実行します。
WaitForSingleObject または WaitForMultipleObject を発行します。
または
"WinRUI/WinSLI" 通知メッセージを WinRUI/WinSLI メッセージのウィンドウ ハンドルに投稿します。
Windows で非同期通知を受信するには、 WaitForSingleObject または WaitForMultipleObject を 使用するイベント メソッドが推奨されます。
Windows 環境では、"WinRUI/WinSLI" 通知メッセージを WinRUIWinSLI メッセージのウィンドウ ハンドルに投稿することで、非同期要求の/完了を通知します。 ウィンドウ ハンドルが、 WinRUI エントリ ポイントと WinSLI エントリ ポイントに渡される最初のパラメーターとして追加されました。