A call to the WriteFile
function may not succeed. You experience this symptom when the following conditions are true:
- You are using a client computer that is running Microsoft Windows XP
Service Pack 1 (SP1).
- You use the WriteFile function to try to write to a
file that is in a network shared folder.
- The shared folder is on a server computer that is running
either Microsoft Windows 2000 or Microsoft Windows Server 2003.
Additionally, you may receive the following error message:
This problem occurs when the following conditions are true:
- When you used the CreateFile function to create the
file, you specified only the GENERIC_WRITE constant in the dwDesiredAccess parameter.
- Server Message Block (SMB) signing is enabled for
communication between the client computer and the server computer.
To work around this problem, use either of the following
- Specify the GENERIC_READ constant and the GENERIC_WRITE
constant in the dwDesiredAccess parameter.
- Modify SMB signing.
Specify the GENERIC_READ constant and the GENERIC_WRITE constant in the dwDesiredAccess parameter
Use the following code to create the file.Note
the following placeholders:
- Replace the ServerName placeholder with the name of a server computer that
is running Windows 2000 or Windows Server 2003.
the FolderName placeholder with the name of a network shared folder on
the server computer.
// Specify the GENERIC_READ constant and the GENERIC_WRITE constant
// in the dwDesiredAccess parameter when you create the file.
hFile = CreateFile("\\\\ServerName\\FolderName\\Test.txt", GENERIC_READ |
GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
Modify SMB signingWarning
If you use Registry Editor incorrectly, you may cause serious
problems that may require you to reinstall your operating system. Microsoft
cannot guarantee that you can solve problems that result from using Registry
Editor incorrectly. Use Registry Editor at your own
Follow these steps on the server computer and on the
- In Registry Editor, locate and then click the following
- In the right pane of Registry Editor, right-click
requiresecuritysignature in the Name field,
and then click Modify. The Edit DWORD Value
dialog box appears.
- In the Value data box, type
0, and then click OK.
- Quit Registry Editor, and then restart the computer.
For more information about the CreateFile
function and the
function, visit the following Microsoft Developer Network (MSDN) Web