With SQL Server 2005, a server-side protocol error will generally prevent the instance from starting. To fascilitate the identification of the source of the problem, the server will write an entry into the errorlog with the following format:
TDSSNIClient initialization failed with error <x>, status code <y>
Where <x> is the error code returned by the underlying communication or security subsystem
<y> is an internal SQL Server protocol error state
The underlying error code, <x>, is typically an error code returned by the Windows network layer or by an SSPI call. For Windows network error codes, the "net helpmsg" command may be able to assist in interpreting the code. SSPI error codes are not as easy to decipher and require searching in the Microsoft knowledge base or looking through the WinError.h file if the platform SDK is installed. However, in many cases, the root of the problem may be determined just from inspecting the error state (more details below).
An example of an error that may be logged is:
TDSSNIClient initialization failed with error 0x80092004, status code 0x38.
The 0x80092004 is an SSPI error code that translates to CRYPT_E_NOT_FOUND and 0x38 is the SQL Server protocol error state that indicates that SSL support could not be started. This error was generated because the SSL layer was unable to load the specified SSL certificate.
The general categories of the SQL Server protocol error states are summarized in the following table:
3 (0x03), 64-79 (0x40-0x4F)
53 (0x35), 80-95 (0x50-0x5F)
54 (0x36), 96-111 (0x60-0x6F)
56 (0x38), 128-143 (0x80-0x8F)
The next table describes some commonly encountered error states:
Error starting shared memory support
All protocols disabled
Unable to initialize the TCP/IP listener
Server configured to listen on a specific IP address in a cluster environment