Share via


WPUQueryBlockingCallback (Windows Embedded CE 6.0)

1/6/2010

This function returns a pointer to a callback function the service provider should invoke periodically while servicing blocking operations.

Note

WPUQueryBlockingCallback is not supported for the default TCP/UDP provider in Windows Embedded CE. However, third parties can implement their own provider and have support for this function if they choose.

Syntax

int WPUQueryBlockingCallback(
  DWORD dwCatalogEntryId,
  LPBLOCKINGCALLBACK FAR* lplpfnCallback,
  PDWORD_PTR lpdwContext,
  LPINT lpErrno 
);

Parameters

  • dwCatalogEntryId
    [in] Descriptor identifying the calling service provider.
  • lplpfnCallback
    [out] Pointer that receives the blocking callback function.
  • lpdwContext
    [out] Pointer that receives a context value that the service provider must pass into the blocking callback.
  • lpErrno
    [out] Pointer to the error code.

Return Value

If no error occurs, this function returns zero and stores a pointer to a blocking callback function in lpfnCallback and an associated context value in lpdwContext. Otherwise, it returns SOCKET_ERROR, and a specific error code is available in lpErrno.

This function always returns NULL in lpfnCallback in Windows Embedded CE.

The following table shows possible error codes.

Error value Description

WSAEFAULT

The lpfnCallback or the lpdwContext parameter is not a valid part of the process address space.

WSAEINVAL

The dwCatalogEntryId is invalid.

Remarks

This function returns a pointer to a callback function in lpfnCallback to be invoked periodically during blocking operations. This function also returns a context value in lpdwContext to be passed into the blocking callback.

Using Win32, this function can return NULL in lpfnCallback, indicating that no user defined–blocking hook is installed. In this case, the service provider should use the native Win32 synchronization objects to implement blocking.

LPBLOCKINGCALLBACK is defined as typedef BOOL ( CALLBACK FAR * LPBLOCKINGCALLBACK )( DWORD dwContext );.

The blocking callback will return TRUE if the service provider is to continue waiting for the blocking operation to complete.

Any missing parts of the address will default to a reasonable value, if possible. For example, a missing port number will default to zero.

Requirements

Header ws2spi.h
Library Ws2.lib
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

Winsock SPI Functions