Microsoft KB Archive/189782

{|
 * width="100%"|

BUG: RegQueryValueEx Fails When lpValueName Is NULL

 * }

Q189782

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), included with:
 * Microsoft Windows 95
 * Microsoft Windows 98

-

SYMPTOMS
When you are accessing a remote registry key and you pass NULL as the second parameter to RegQueryValueEx, the function might fail. RegQueryValueEx returns 14:

Not enough storage is available to complete this operation.

RESOLUTION
Pass the NULL string ("") as the second parameter to RegQueryValueEx.

STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION
In the VC++ 4.2 Help documentation, the entry for the 2nd parameter passed to RegQueryValueEx reads:

"lpszValueName Points to a null-terminated string specifying the name of the subkey of hkey for which a text string is retrieved. If lpszValueName is NULL or points to an empty string, RegQueryValueEx retrieves the value of hkey." The VC++ 5.0 documentation does not mention anything about passing NULL or "" as the second parameter to RegQueryValueEx.

Steps to Reproduce the Behavior
 Install Windows 95 on the client machine. Install Windows NT 4.0 on the server.  Enable the remote registry services on the client. For additional information about how to do this, please see the following article in the Microsoft Knowledge Base: "Q141460 How to Install Remote Administration Services" Invoke RegConnectRegistry from the client to obtain a handle to a top-level key on the remote server. Open a subkey through a call to RegOpenKeyEx. Attempt to read the default value of this key by passing NULL as the second parameter to RegQueryValueEx.

Additional query words:

Keywords : kbKernBase kbRegistry

Issue type : kbbug

Technology : kbAudDeveloper kbWin32sSearch kbWin32API