C 在创建文件()之前需要延迟吗?

C 在创建文件()之前需要延迟吗?,c,winapi,file-io,delay,C,Winapi,File Io,Delay,我有一个关于使用的问题 我的代码顺序如下: CreateFile to get handle A ..... Close handle A GetDiskFreeSpace // if handle A is not closed, this API fails... ..... CreateFile to get handle B // for File writing Ex. f:\test.dat WriteFile via handle B // writ

我有一个关于使用的问题

我的代码顺序如下:

CreateFile to get handle A
.....
Close handle A
GetDiskFreeSpace  // if handle A is not closed, this API fails...
.....         
CreateFile to get handle B  // for File writing Ex. f:\test.dat
WriteFile via handle B      // write file
Close handle B                        
.....
CreateFile to get handle C  // where handle C and A points to the same target !
我的发现是:如果在
“CreateFile to get handle C”
之前没有延迟,那么我得到了错误消息“error:5 Access denied”

但如果我在它之前加上1s延迟(例如Sleep(1000)),那么一切都正常,句柄C是有效的

有人能给我一些意见吗


@平台:VS2008,Win7,测试驱动器是USB闪存笔驱动器

听起来你的笔驱动器有问题(或者它的驱动程序有问题)。我忘了说句柄A、B和C共享同一个句柄变量。我发现如果
为B
分配另一个句柄变量,那么这个延迟就没有必要了,一切都正常!(我仍然不知道原因)这听起来像是一个糟糕的驱动程序类型问题-驱动程序在本应发布后仍在保留。在某些情况下,此错误再次发生><我可以检查哪个驱动程序?最常见的原因是病毒扫描程序是垃圾。尝试禁用它,然后再次测试。