Share via


SetFileCompletionNotificationModes 関数 (winbase.h)

ファイル ハンドルの通知モードを設定します。ここでは、指定したファイルに対する完了通知の動作を指定できます。

構文

BOOL SetFileCompletionNotificationModes(
  [in] HANDLE FileHandle,
  [in] UCHAR  Flags
);

パラメーター

[in] FileHandle

ファイルへのハンドル。

[in] Flags

設定するモード。 1 つ以上のモードを同時に設定できます。ただし、ファイル ハンドルに対してモードが設定された後は、削除できません。

意味
FILE_SKIP_COMPLETION_PORT_ON_SUCCESS
0x1
次の 3 つの条件に該当する場合、I/O マネージャーは、通常はポートへの入力候補エントリをキューに登録しません。 条件は次のとおりです。
  • 完了ポートはファイル ハンドルに関連付けられます。
  • 非同期 I/O 用にファイルが開かれます。
  • 要求は 、ERROR_PENDINGを返さずにすぐに成功を返します。

FileHandle パラメーターがソケットの場合、このモードは、インストール可能ファイル システム (IFS) ハンドルを返すレイヤード サービス プロバイダー (LSP) とのみ互換性があります。 IFS 以外の LSP がインストールされているかどうかを検出するには、 WSAEnumProtocols 関数を使用し、返される各WSAPROTOCOL_INFO構造体の dwServiceFlag1 メンバー 調べます。 XP1_IFS_HANDLES (0x20000) ビットがクリアされている場合、指定された LSP は IFS LSP ではありません。 IFS 以外の LSP を持つベンダーは、 Windows フィルタリング プラットフォーム (WFP) に移行することをお勧めします。

FILE_SKIP_SET_EVENT_ON_HANDLE
0x2
要求が成功コードで返された場合、または返されたエラーが ERROR_PENDING され、呼び出された関数が同期関数ではない場合、I/O マネージャーはファイル オブジェクトのイベントを設定しません。

要求に対して明示的なイベントが指定された場合でも、通知されます。

戻り値

成功した場合は 0 以外、それ以外の場合は 0 を返します。

詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

この関数を使用するアプリケーションをコンパイルするには、 _WIN32_WINNT マクロを0x0600以降として定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。

Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 Transparent Failover (TFO) はい
スケールアウト ファイル共有 (SO) を使う SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい

必要条件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

File Management 関数