内核下文件读写函数
|
下。 FileHandle:用来接收创建文件后的文件句柄。 DesiredAccess:打开文件操作的描述,读或写,一般指定为 GENERIC_READ 或 GENERIC_WRITE;该参数和 CreateFile()函数中的参数相同。 ObjectAttributes:指向 OBJECT_ATTRIBUTES 结构体的指针,该结构体包含要创建或打开的文件名。 IoStatusBlock:指向 IO_STATUS_BLOCK 结构体的指针,该结构体用于接收操作结果的状态。 AllocationSize:该参数指向一个 64 位的整数,用于文件初始化分配时的大小。 FileAttributes:通常为 FILE_ATTRIBUTE_NORMAL,该参数和 CreateFile()函数中的参数相同。 ShareAccess:指定文件的共享方式,可以指定为 FILE_SHARE_READ、FILE_SHARE_WRITE 或 FILE_SHARE_DELETE,该参数和 CreateFile()函数中的参数相同。 CreateDisposition:描述本次调用 ZwCreateFile()函数的意图,可以指定为 FILE_CREATE、FILE_OPEN、FILE_OPEN_IF 等。 CreateOptions:通常指定为 FILE_SYNCHRONOUS_IO_NONALERT,表示文件是同步操作,比如在写入文件时,调用 ZwWriteFile()函数,在 ZwWriteFile()调用返回时,文件写操作已经完成。 EaBuffer:该参数表示一个指针,指向可选的扩展属性区,一般为 NULL。 EaLength:该参数表示扩展属性区的长度,一般为 0。 ZwCreateFile()函数的第 3 个参数是一个指向 OBJECT_ATTRIBUTES 的结构体,该结构体的定义如下: ObjectAttributes()函数的定义可以看出,其参数与OBJECT_ATTRIBUTES结构体的成员变量相同。InitializeObjectAttributes()函数的参数说明如下。 InitializeAttributes:指向 OBJECT_ATTRIBUTES 结构体的指针。 ObjectName:对象名称,用 UNICODE_STRING 描述,对于 ZwCreateFile()函数而言,该处指定为文件名。 Attributes:一般设置为 OBJ_CASE_INSENSITIVE,意味着名字字符串不区分大小写。 RootDirectory:一般设置为 NULL。 SecurityDescriptor:用于设置安全描述符,一般设置为 NULL。
ObjectName 必须使用 UNICODE_STRING 类型进行描述,UNICODE_STRING 是内核对宽字符串封装的一种数据结构,该结构体的定义如下: (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

