草庐IT

FILE_FLAG_RANDOM_ACCESS

全部标签

c++ - 具有重叠 I/O 的 FILE_FLAG_NO_BUFFERING - 字节读为零

我在使用带有重叠I/O的标志FILE_FLAG_NO_BUFFERING时观察到一个奇怪的行为。我调用了一系列ReadFile()函数调用,稍后使用GetOverlappedResult()查询它们的状态。我所说的奇怪行为是,即使文件句柄良好并且ReadFile()调用返回时没有任何错误(预期的ERROR_IO_PENDING除外),从GetOverlappedResult()调用返回的“字节读取”值是某些文件为零,每次我运行代码时,它都是一组不同的文件。如果我删除FILE_FLAG_NO_BUFFERING,事情就会开始正常工作,并且没有字节读取值为零。下面是我如何使用FILE_FL

windows - 批处理文件 : Using "start" Command to Start a batch file on a specific label

在这个批处理文件中,存在超过25个标签,每个标签用于不同的目的..特别是名为“:beep”的标签,它会在计算机中发出哔哔声。我想安排这个批处理文件的开始,但只有标签“哔”,或者可能是另一批,但仅以标签“哔”开始。我已经使用了“调用命令”,这不是我需要的。有谁知道如何使用“开始”命令在特定标签上运行批处理文件吗?例子:启动C:\interface.cmd[gotobeep] 最佳答案 好的,所以如果没有其他参数,只需将beep作为参数传递,例如batchfilebeep并有一行goto%1如果您还需要传递其他参数,是时候发挥更多创意了

windows - 为什么我不能使用 FILE_FLAG_BACKUP_SEMANTICS 打开 GENERIC_ALL 或 FILE_ALL_ACCESS 文件?

我正在尝试使用FILE_FLAG_BACKUP_SEMANTICS来绕过文件权限,但如果我请求GENERIC_ALL或等效的FILE_ALL_ACCESS它就不起作用作为访问掩码。CreateFile函数返回ERROR_ACCESS_DENIED。例如,h=CreateFile(L"c:\\working\\backup-semantics-test\\xyzzy\\test.txt",FILE_ALL_ACCESS,FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_SHARE_DELETE,0,OPEN_EXISTING,FILE_FLAG_BACKUP_S

windows - lnk1104 : cannot open file 'libpng.lib' , 但 'libpng.lib' 是输出,不是输入

我正在尝试将libpng-1.16.6构建为VS2010的静态库。我想我已经排除了makefile语法问题、文件系统权限和不正确的LIB/LIBPATH环境变量。makefile是未更改的makefile.vcwin32随lpng1616一起交付。我确定问题是环境问题,但我不知道它是什么。我正在寻找新的想法!TIA寻求任何帮助。相关事实:总体模式与我用于构建geos、gdal和wxWidgets开源项目的模式相同:VisualStudio生成文件项目调用Windows命令文件。Windows命令文件执行任何所需的预处理,调用vcvarsall.bar来设置VS构建环境,调用nmake,

c - 使用和不使用 FILE_FLAG_NO_BUFFERING 的 NTFS 文件访问时间

我正在尝试对NTFS的文件读取时间(顺序访问)进行基准测试。我的代码获取开始时间,执行大小等于4096字节(系统上NTFS的簇大小)的读取并记录结束时间。然后存储两个时间之间的差异,并重复该过程,直到到达文件末尾。我目前使用的文件大小是40K,所以得到10个时差值。当访问没有FILE_FLAG_NO_BUFFERING打开的文件(使用CreateFile)时,第一个block的访问时间接近30微秒,然后下降到大约7微秒用于后续访问(由于缓存)。当使用FILE_FLAG_NO_BUFFERING时,第一个block的访问时间接近21毫秒,随后的访问时间下降到大约175微秒。第一个bloc

windows - FILE_FLAG_NO_BUFFERING 如何与向通信设备打开的句柄交互?

正如标题所说,我正在编写一个网络程序,我在其中使用CreateFile打开网络驱动程序的句柄,并且我一直在试验NO_BUFFERING标志。大多数文档甚至都不会提及将其与通信设备一起使用,而那些这样做的文档(又名MSDN引用等)只是简单地提到您可以。有谁知道这会如何影响与设备的通信? 最佳答案 这是一个设备驱动程序实现细节,您在CreateFile()调用中指定的选项在IRP_MJ_REQUESTrequest中传递.我链接的那个是用于文件系统的,非常漂亮。通过IrpSp->Parameters.Create.Options链接单击

sql-server - 将数据库备份到 MS Access 的夜间任务

我正在尝试创建一个夜间任务,它将我的SQLServer数据库作为“夜间快照”下载到MSAccess2010中,到目前为止,我已经开始工作了。我创建了一个空白数据库,里面有宏,可以执行导入,然后正常退出。它在我的用户名下运行良好:@echooffFor/f"tokens=2-4delims=/"%%ain('date/t')do(setmydate=%%c%%a%%b)setdest=c:\temp\%mydate%-RAVEN.accdbxcopyBLANK_RAVEN_WITH_MACROS.accdb%dest%*/Ystart"C:\ProgramFiles(x86)\Micro

c++ - OpenFileById 失败并显示 ERROR_ACCESS_DENIED

我正在开发一个产品,其中OpenFileById()在文件和文件夹上以ERROR_ACCESS_DENIED失败,否则可以访问(意味着CreateFile()在具有相同访问级别/共享模式等的路径指定的相同文件或文件夹上成功)。我正在使用备份语义,这样我也可以获得文件夹的句柄;SE_BACKUP_NAME和SE_RESTORE_NAME权限已启用。除了这台机器(Windows8.1),此代码在其他任何地方都有效。该进程在本地系统下作为服务运行,我尝试让他们将其更改为具有管理员权限的不同帐户,但也没有用。有问题的文件/文件夹尚未打开以供删除(根据文档,这是此功能将失败并显示ERROR_AC

c# - 列仅检查第一项。 Access 数据库

我得到了这个Windows窗体,它检查文本框上的用户数字是否有效的用户名。但只有列中的第一项被选中。示例:如果我输入“john”,他会检查这是真的,因为john是第一个列上的字符串,但如果我数字“Stella”是同一数据库中列上的第二个字符串,则程序返回false。Ihavetouploadtheimgbecauseigotproblemswhenitriedtopostthecode. 最佳答案 这是因为您没有遍历结果集。您需要一条一条读取所有记录,并为每条记录实现逻辑。做这样的事情:if(usrname.HasRows){whi

vba - 以连续形式控制 ms Access 滚动条

我正在以连续的形式实现拖放模拟。基本上它的工作方式是,旁边有一个人列表,用户可以将一个人从列表拖到一个字段,(这是一个座位列表,有Seat1,Seat2,seat3等字段......,每一排座位都是一条新记录)。对于基本的拖放功能,我正在使用此链接DragAndDrop中的说明,而且效果很好。现在这是我的问题,要知道用户在哪条记录上移动鼠标,我需要计算鼠标的位置除以详细信息部分,这样当表单没有向下滚动时它运行良好,但是当表单向下滚动时,我需要首先知道表单向下滚动了多少,这只能通过WindowsAPI来完成。所以我发现www.lebans.com/conformscurcontrol.h