以下是代码片段:
CreateFile代码:
m_RunFileHandle = CreateFile(strRunFullPath,
EFileAccess.GenericWrite,
EFileShare.None,
IntPtr.Zero,
ECreationDisposition.CreateAlways,
EFileAttributes.Write_Through | EFileAttributes.NoBuffering,
IntPtr.Zero);WriteFile代码:
WriteFile(m_RunFileHandle, NewFramePixelData, nDataSize, out nBytesWritten, IntPtr.Zero);查询:很少有WritrFile方法返回错误代码6。
发布于 2015-10-28 23:08:02
如果在FILE_FLAG_OVERLAPPED模式下使用文件,则需要指向重叠结构的指针,否则请确保在未关闭句柄的情况下不会多次调用CreateFile。
在调用WriteFile之前,检查CreateFile是否被多次调用(没有关闭之前创建的句柄)。在这种情况下,系统会返回错误6。
发布于 2016-04-23 10:13:18
溶剂为:
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool WriteFile(
IntPtr hFile,
byte[] lpBuffer,
UInt32 nNumberOfBytesToWrite,
ref UInt32 lpNumberOfBytesWritten,
ref DriverEntity.OVERLAPPED lpOverlapped);修改为:
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool WriteFile(
IntPtr hFile,
byte[] lpBuffer,
UInt32 nNumberOfBytesToWrite,
ref UInt32 lpNumberOfBytesWritten,
IntPtr lpOverlapped);使用:
DriverDAL.WriteFile(
hDevice,
writeBuffer,
(uint)writeBuffer.Length,
ref RealityWriteCount,
IntPtr.Zero);https://stackoverflow.com/questions/33384692
复制相似问题