title: lockfileex doesn't stop create_always from erasing the file
body: <p>in one process, i called createfile with GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_ALWAYS, and FILE_ATTRIBUTE_NORMAL as the params.
  then i called LockFileEx on the whole file. i acquired an exclusive lock, and locked from range 0 to UINT_MAX.</p>
  
  <p>after that, in another process, i called ::CreateFileW(path.c_str(), perms, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); </p>
  
  <p>and it erased the contents of the file. shouldn't it not be able to do that while my other prcoess has the file locked (exclusively)?</p>
  
  <p>i want other processes to be able to get handles to the file (which is why i used the file_share flags), but i assumed they couldnt change the file at all while another process locked it, and so i was doing something like</p>
  
  <p>createfile
  lockfileex</p>
  
  <p>and having it block on lockfileex until the other file releases the lock. is it just me or is msft's behavior here wrong?</p>