在CreateFile方法中,dwFlagsAndAttributes = 0的含义是什么?

时间:2013-08-01 15:00:21

标签: c# winapi

所以我正在使用CreateFile function进行我正在进行的C#项目。我已经看到一些将0作为dwFlagsAndAttributes的参数传递的示例。

在我阅读文档时,它没有指定dwFlagsAndAttributes = 0所需的设置。这只是一种不设置标志或属性的方法吗?

此方法的C#语法为:

[DllImport("kernel32.dll", SetLastError = true)]
static extern SafeFileHandle CreateFile(string lpFileName, 
       FileAccess dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes,
       FileMode dwCreationDisposition, uint dwFlagsAndAttributes, 
       IntPtr hTemplateFile);

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

是的,它只是意味着该文件没有什么特别之处(即,它不匹配任何File Attribute Constants属性。

答案 1 :(得分:2)

尽管名称为CreateFile,但此功能用于创建和打开文件。在用于打开文件的情况下,dwFlagsAndAttributes参数通常被忽略。您看到的案例可能与文件打开和文件创建有关。

如果您正在使用此方法创建文件,我将使用FILE_ATTRIBUTE_NORMAL0x80)。

答案 2 :(得分:2)

  

这只是一种不设置标志或属性的方法吗?

完全。传递0作为一组位标志的参数(就像这个参数一样)意味着没有设置任何标志。