请注意,在C#中调用CreateFile系统函数,将共享模式设置为“可读写”。 否则,windows7系统将无法正常运行,windows10系统可能会出现运行问题。
[dllimport('Kernel32.dll ',SetLastError=true,CharSet=CharSet.Auto ) ] privatestaticexternintptrcreatefile ] ste uint securityAttributes,uint creationDisposition,uint flagsAndAttributes,uint templateFile; 引用示例: intptr device=create file (device list [ I ],desired access.generic _ read|desired access.generic _ write, share mode.file _ share _ read|share mode.file _ share _ write,0,creation disposition.open _ existing,flagsande publicconstuintgeneric _ write=0x 40000000; publicconstuintgeneric _ execute=0x 20000000; publicconstuintgeneric _ all=0x 10000000; //summary//sharingmodeofthefileorobject//summarystaticclasssharemode { publicconstuintfile _ share _ read } publicocccore publicconstuintfile _ share _ delete=0x 00000004; //summary//actiontotakeonfilesthatexist,andwhichactiontotakewhenfilesdonotexist.//summarystaticlasscreatic public public const uint OPEN_EXISTING=3; public const uint OPEN_ALWAYS=4; publicconstuinttruncate _ existing=5; //summary//fileattributesandflagsforthefile.///summarystaticclassflagsandattributes { publicconstuintfile _ } puble publicconstuintfile _ flag _ no _ buffering=0x 20000000; publicconstuintfile _ flag _ random _ access=0x 100000000; publicconstuintfile _ flag _ sequential _ scan=0x 0800000; publicconstuintfile _ flag _ delete _ on _ close=0x 0400000; publicconstuintfile _ flag _ backup _ semantics=0x 020000000; publicconstuintfile _ flag _ POSIX _ semantics=0x 010000000; publicconstuintfile _ flag _ open _ reparse _ point=0x 00200000; publicconstuintfile _ flag _ open _ no _ recall=0x 0010000; publicconstuintfile _ flag _ first _ pipe _ instance=0x 00080000; } intptr device=create file (device list [ I ],
esiredaccess.generic _ read|desired access.generic _ write,
share mode.file _ share _ read|share mode.file _ share _ write,
0、
creation disposition.open _ existing,
flagsandattributes.file _ flag _ overlapped,
0;
如果注意红色标记部分,设定为读写共享模式,就可以解决这个问题;