LUA 同期および非同期動詞補完

論理ユニット アプリケーション (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" 通知メッセージを WinRUI/WinSLI メッセージのウィンドウ ハンドルにポストすることで、非同期要求の完了を通知します。 ウィンドウ ハンドルが、 WinRUI エントリ ポイントと WinSLI エントリ ポイントに渡される最初のパラメーターとして追加されました。