CreateUmsCompletionList 関数 (winbase.h)

ユーザー モード スケジューリング (UMS) 完了リストを作成します。

警告

Windows 11時点では、ユーザー モードのスケジュール設定はサポートされていません。 すべての呼び出しがエラー ERROR_NOT_SUPPORTEDで失敗します。

構文

BOOL CreateUmsCompletionList(
  [out] PUMS_COMPLETION_LIST *UmsCompletionList
);

パラメーター

[out] UmsCompletionList

PUMS_COMPLETION_LIST変数。 出力時に、このパラメーターは空の UMS 入力候補リストへのポインターを受け取ります。

戻り値

関数が成功すると、0 以外の値が返されます。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 考えられるエラー値は次のとおりです。

リターン コード 説明
ERROR_NOT_ENOUGH_MEMORY
完了リストを作成するのに十分なメモリがありません。
ERROR_NOT_SUPPORTED
UMS はサポートされていません。

解説

完了リストは、スケジューラ スレッドを作成するために EnterUmsSchedulingMode 関数が呼び出されたときに UMS スケジューラ スレッドに関連付けられます。 システムは、新しく作成された UMS ワーカー スレッドを完了リストにキューに入れます。 また、スレッドがブロックされなくなったときに、以前にブロックされた UMS ワーカー スレッドを完了リストにキューに入れます。

アプリケーションの UmsSchedulerProc エントリ ポイント関数が呼び出されると、アプリケーションのスケジューラは DequeueUmsCompletionListItems を呼び出して完了リストから項目を取得する必要があります。

各完了リストには、システムが項目を空のリストにキューに入れるたびに通知される完了リスト イベントが関連付けられています。 GetUmsCompletionListEvent を使用して、指定した完了リストのイベントへのハンドルを取得します。

完了リストが不要になったら、 DeleteUmsCompletionList を使用してリストを解放します。 リストを解放する前に、リストを空にする必要があります。

要件

   
サポートされている最小のクライアント Windows 7 (64 ビットのみ) [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll
API セット api-ms-win-core-ums-l1-1-0 (Windows 7 で導入)

関連項目

DequeueUmsCompletionListItems

EnterUmsSchedulingMode

GetUmsCompletionListEvent