WsCloseChannel function
Closes a specified channel.
Syntax
HRESULT WINAPI WsCloseChannel(
_In_ WS_CHANNEL* channel,
_In_opt_ const WS_ASYNC_CONTEXT* asyncContext,
_In_opt_ WS_ERROR* error
);
Parameters
- channel [in]
-
Pointer to a WS_CHANNEL structure representing the channel to close.
- asyncContext [in, optional]
-
Pointer to a WS_ASYNC_CONTEXT data structure containing information for invoking the function asynchronously. Pass a NULL value to call the function synchronously.
- error [in, optional]
-
Pointer to a WS_ERROR structure where additional error information is stored if the function fails.
Return value
If the function succeeds, it returns NO_ERROR; otherwise, it returns an HRESULT error code.
| Return code | Description |
|---|---|
|
The asynchronous operation is still pending. |
|
The channel closure was aborted by a call to WsAbortChannel while the channel was closing. |
|
The channel was in an inappropriate state (see the Remarks section). |
|
The connection with the remote endpoint was terminated. |
|
The remote endpoint could not process the request. |
|
The input data was not in the expected format or did not have the expected value. |
|
The operation did not complete within the time allotted. |
|
A quota was exceeded. |
|
Insuffiient memory to complete the operation. |
|
One or more arguments are invalid. |
|
This function may return other errors not listed above. |
Remarks
If you open a channel or successfully accept a channel, you must close it when it is no longer needed. After a channel has been closed, the associated resources can safely be freed.
The channel-closing process will wait for any already initiated, pending I/O to complete.
If there are no messages currently being read or written for the channel, the channel attempts a graceful shutdown. Otherwise, all I/O still pending on the channel itself is aborted and the channel does a rude shutdown. If the channel attempts a graceful shutdown but encounters an error, WsCloseChannel will return an error, but the channel will still be closed.
This operation is allowed only if the channel is in WS_CHANNEL_STATE_OPEN or WS_CHANNEL_STATE_FAULTED states.
Closing a channel automatically disassociates any messages that are in the process of being read or written. Therefore, it is not necessary to call WsAbandonMessage before calling WsCloseChannel).
Requirements
|
Minimum supported client | Windows 7 [desktop apps | Windows Store apps] |
|---|---|
|
Minimum supported server | Windows Server 2008 R2 [desktop apps | Windows Store apps] |
|
Header |
|
|
Library |
|
|
DLL |
|