The Windows API function CreateFile function allows you to specific the desired access. There are three options read, write and delete. If you get a handle from CreateFile
In Windows Vista there is that function SetFileInformationByHandle, that can do what you need.
In previous versions of Windows there is no such function, but you have the equivalent native, not quite public function NtSetInformationFile.
I have no experience with these functions, nor a Windows machine to test them, so I cannot show you the code, but that should not be so difficult.
The general disclaimer about native Windows functions apply, of course.