9.7 Version Negotiation Failures

Failures in version negotiation are reported as system events. This is in addition to being reported by the version error code returned by the WFSStartUp or WFSOpen functions. The WFSRESULT data structure (defined in Section 8.1) is utilized as follows:

Field Description

RequestID (not used)

hService (not used)

tsTimestamp Time the error occurred (local time, in a Win32 SYSTEMTIME structure)

hResult The version error code (e.g., WFS_ERR_SPI_VER_TOO_HIGH)

u.dwEventID = WFS_SYSE_VERSION_ERROR

lpBuffer Pointer to a WFSVRSNERROR structure:

typedef struct _wfs_vrsnerror {
 LPSTR   lpszLogicalName;
 LPSTR   lpszWorkstationName;
 LPSTR   lpszAppID;
 DWORD   dwSize;
 LPBYTE   lpbDescription;
 LPWFSVERSION lpWFSVersion;
} WFSVRSNERROR, * LPWFSVRSNERROR

The members of this structure are:

Field Description

lpszLogicalName Pointer to the logical service name of the service being opened (NULL if WFSStartUp)

lpszWorkstationName Pointer to the name of the workstation in which the application made the WFSStartUp or WFSOpen request

lpszAppID Pointer to the application ID from the open request that failed (NULL if WFSStartUp)

dwSize The size in bytes of the following description

lpbDescription Pointer to a vendor-specific description of the version negotiation failure

lpWFSVersion Pointer to the WFSVERSION structure reporting the results of the version negotiation