WSACOMPLETION 構造体は、登録済み名前空間に対して行われた I/O 制御呼び出しの完了通知設定を指定します。
構文
typedef struct _WSACOMPLETION {
WSACOMPLETIONTYPE Type;
union {
struct {
HWND hWnd;
UINT uMsg;
WPARAM context;
} WindowMessage;
struct {
LPWSAOVERLAPPED lpOverlapped;
} Event;
struct {
LPWSAOVERLAPPED lpOverlapped;
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
} Apc;
struct {
LPWSAOVERLAPPED lpOverlapped;
HANDLE hPort;
ULONG_PTR Key;
} Port;
} Parameters;
} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;
Members
Type
型: WSACOMPLETIONTYPE
必要な完了通知の種類。 注釈を参照してください。
Parameters
コールバックを完了するために必要なパラメーター。 Parameters 共用体内の構造体は、指定された各型のコールバックを完了するために必要な情報を指定します。 たとえば、Type が NSP_NOTIFY_HWND に設定されている場合は、WindowMessage 構造体を入力する必要があります。
Parameters.WindowMessage
Parameters.WindowMessage.hWnd
型: HWND
Windows ハンドル。
Parameters.WindowMessage.uMsg
型: UINT
メッセージ ハンドル。
Parameters.WindowMessage.context
型: WPARAM
メッセージまたはハンドルのコンテキスト。
Parameters.Event
Parameters.Event.lpOverlapped
型: LPWSAOVERLAPPED
WSAOVERLAPPED 構造体へのポインター。
Parameters.Apc
Parameters.Apc.lpOverlapped
型: LPWSAOVERLAPPED
WSAOVERLAPPED 構造体へのポインター。
Parameters.Apc.lpfnCompletionProc
型: _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE
アプリケーションによって提供される完了ルーチンへのポインター。
Parameters.Port
Parameters.Port.lpOverlapped
型: LPWSAOVERLAPPED
WSAOVERLAPPED 構造体へのポインター。
Parameters.Port.hPort
型: HANDLE
ポートへのハンドル。
Parameters.Port.Key
型: ULONG_PTR
キーへのポインター。
注釈
WSACOMPLETION 構造体を使用すると、Type で指定された値に基づいて、次のいずれかの形式でコールバックを指定できます。
| コールバック形式 | 種類の値 |
|---|---|
| ポーリング | NSP_NOTIFY_IMMEDIATELY |
| ウィンドウ メッセージ | NSP_NOTIFY_HWND |
| Event | NSP_NOTIFY_EVENT |
| APC | NSP_NOTIFY_APC |
| 完了ポート | NSP_NOTIFY_PORT |
ブロッキング関数の場合は、 WSACOMPLETION 構造体を null に設定します。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
| Header | winsock2.h |