部分API函数及参数说明

上传人:飞*** 文档编号:6549175 上传时间:2017-09-11 格式:DOC 页数:10 大小:57.50KB
返回 下载 相关 举报
部分API函数及参数说明_第1页
第1页 / 共10页
部分API函数及参数说明_第2页
第2页 / 共10页
部分API函数及参数说明_第3页
第3页 / 共10页
部分API函数及参数说明_第4页
第4页 / 共10页
部分API函数及参数说明_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《部分API函数及参数说明》由会员分享,可在线阅读,更多相关《部分API函数及参数说明(10页珍藏版)》请在金锄头文库上搜索。

1、一、CreateFileForMapping函数名称: CreateFileForMapping系统要求: Windows CE 1.01 and later.头文件: Winbase.h.链接库: Coredll.lib函数功能: 生成用于映射的文件句柄。参数:第 1个参数: LPCTSTR lpFileName文件名指针。第 2个参数: DWORD dwDesiredAccess文件访问模式。GENERIC_READ、GENERIC_WRITE 等。第 3个参数: DWORD dwShareMode共享模式,不支持。忽略设置为 0。第 4个参数: LPSECURITY_ATTRIBUTES

2、 lpSecurityAttributes不支持。为 NULL。第 5个参数: DWORD dwCreationDisposition生成方式。第 6个参数: DWORD dwFlagsAndAttributes文件标志和属性。第 7个参数: HANDLE hTemplateFile临时文件句柄。忽略。返回值: 成功:映射文件句柄。失败:INVALID_HANDLE_VALUE。说明:01. 桌面平台没有专门用于映射文件句柄生成的函数,直接用 CreateFile就可以了。二、NtGdiSendInput、NtSetWindowsHookExGDI 函数:分别用于拦截键盘鼠标模拟输入 和全局钩

3、子三、 ZwCreateFile原型:NTSYSAPINTSTATUSNTAPIZwCreateFile(OUT PHANDLE FileHandle,IN ACCESS_MASK DesiredAccess,IN POBJECT_ATTRIBUTES ObjectAttributes,OUT PIO_STATUS_BLOCK IoStatusBlock,IN PLARGE_INTEGER AllocationSize OPTIONAL,IN ULONG FileAttributes,IN ULONG ShareAccess,IN ULONG CreateDisposition,IN ULON

4、G CreateOptions,IN PVOID EaBuffer OPTIONAL,IN ULONG EaLength);参数理解:OUT-FileHandle-这是一个指向一个变量的指针,用来最后存放 file object handle 的IoStatusBlock-这个也是个指针变量,指向一个叫做 IO_STATUS_BLOCK 的结构体,最后函数返回的时候,这个结构体的成员 里面要填充一些值,具体的呢就是完成状态,请求操作的一些信息,最重要的一个成员就是 Information 成员,他显示了函数对文件的处理方式,他的值 可能是下面的几个:FILE_SUPERSEDED(替代)FIL

5、E_OPENED(打开)FILE_CREATED(创建)FILE_OVERWRITTEN(重写)FILE_EXISTS(存在)FILE_DOES_NOT_EXIST(文件不存在 )再看下这个 IO_STATUS_BLOCK 的具体结构:typedef struct _IO_STATUS_BLOCK union NTSTATUS Status;PVOID Pointer; DUMMYUNIONNAME;ULONG_PTR Information; IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;通过上述的两个输出的参数我们可以看到,这个 ZwCreateFile 函数就是返

6、回创建好的文件对象的句柄,然后返回一个期间处理的方式。IN-DesiredAccess-这个参数指定一个访问权限,大概有以下的权限:FILE_ANY_ACCESS 0x0000 / any typeFILE_READ_ACCESS 0x0001 / file & pipeFILE_READ_DATA 0x0001 / file & pipeFILE_LIST_DIRECTORY 0x0001 / directoryFILE_WRITE_ACCESS 0x0002 / file & pipeFILE_WRITE_DATA 0x0002 / file & pipeFILE_ADD_FILE 0x0

7、002 / directoryFILE_APPEND_DATA 0x0004 / fileFILE_ADD_SUBDIRECTORY 0x0004 / directoryFILE_CREATE_PIPE_INSTANCE 0x0004 / named pipeFILE_READ_EA 0x0008 / file & directoryFILE_WRITE_EA 0x0010 / file & directoryFILE_EXECUTE 0x0020 / fileFILE_TRAVERSE 0x0020 / directoryFILE_DELETE_CHILD 0x0040 / director

8、yFILE_READ_ATTRIBUTES 0x0080 / all typesFILE_WRITE_ATTRIBUTES 0x0100 / all typesFILE_ALL_ACCESS / All of the preceding +STANDARD_RIGHTS_ALL最后一个权限最大这里面要注意的是范围问题,有的值只适合目录,有的只适合管道,有的只适合命名管道,有的同时适用,想下这个地方可以做什么文章ObjectAttributes-指向下面这个结构的一个变量,就是来表明文件对象的属性的。typedef struct _OBJECT_ATTRIBUTES ULONG Length;H

9、ANDLE RootDirectory;PUNICODE_STRING ObjectName;ULONG Attributes;PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */ OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;AllocationSize-这是个可选的参数,他是指定初始化文件需要的内存字节数的,所以可向而知,他只有在真正的涉及到文件创建的时候才有意

10、义,也就是说创建,重写,替换这些操作的时候。指向一个 LARGE_INTEGER:typedef union _LARGE_INTEGER _ANONYMOUS_STRUCT structULONG LowPart;LONG HighPart; DUMMYSTRUCTNAME;structULONG LowPart;LONG HighPart; u;#endif /MIDL_PASSLONGLONG QuadPart; LARGE_INTEGER, *PLARGE_INTEGER;FileAttributes-这个参数指定文件的属性,刚才是文件对象的属性。可以是以下的:FILE_ATTRIBU

11、TE_READONLYFILE_ATTRIBUTE_HIDDENFILE_ATTRIBUTE_SYSTEMFILE_ATTRIBUTE_DIRECTORYFILE_ATTRIBUTE_ARCHIVEFILE_ATTRIBUTE_NORMALFILE_ATTRIBUTE_TEMPORARYFILE_ATTRIBUTE_SPARSE_FILEFILE_ATTRIBUTE_REPARSE_POINTFILE_ATTRIBUTE_COMPRESSEDFILE_ATTRIBUTE_OFFLINEFILE_ATTRIBUTE_NOT_CONTENT_INDEXEDFILE_ATTRIBUTE_ENCRYP

12、TEDShareAccess-指定共享的权限,以下三种的组合:FILE_SHARE_READFILE_SHARE_WRITEFILE_SHARE_DELETECreateDisposition-这个参数指定要对文件干嘛,呼呼,可以是下面的值:FILE_SUPERSEDEFILE_OPENFILE_CREATEFILE_OPEN_IFFILE_OVERWRITEFILE_OVERWRITE_IFCreateOptions-这个参数指定创建或者打开文件的时候做的一些事情,可以是以下的组合:FILE_DIRECTORY_FILEFILE_WRITE_THROUGHFILE_SEQUENTIAL_ON

13、LYFILE_NO_INTERMEDIATE_BUFFERINGFILE_SYNCHRONOUS_IO_ALERTFILE_SYNCHRONOUS_IO_NONALERTFILE_NON_DIRECTORY_FILEFILE_CREATE_TREE_CONNECTIONFILE_COMPLETE_IF_OPLOCKEDFILE_NO_EA_KNOWLEDGEFILE_OPEN_FOR_RECOVERYFILE_RANDOM_ACCESSFILE_DELETE_ON_CLOSEFILE_OPEN_BY_FILE_IDFILE_OPEN_FOR_BACKUP_INTENTFILE_NO_COMPR

14、ESSIONFILE_RESERVE_OPFILTERFILE_OPEN_REPARSE_POINTFILE_OPEN_NO_RECALLFILE_OPEN_FOR_FREE_SPACE_QUERY这个我不太清楚,概念有点模糊EaBuffer-这个是个可选的参数,用来存放一些扩展的属性EaLength-存放扩展属性的字节大小四、ZwOpenFileZwOpenFile 是一个内核函数,写驱动时使用。打开一个现有的文件,目录,设备,或卷。函数原型:编辑NTSTATUS ZwOpenFile(OUT PHANDLE FileHandle,IN ACCESS_MASK DesiredAccess,I

15、N POBJECT_ATTRIBUTES ObjectAttributes,OUT PIO_STATUS_BLOCK IoStatusBlock,IN ULONG ShareAccess,IN ULONG OpenOptions);参数介绍:编辑FileHandle输出参数。返回打开文件的句柄。DesiredAccess输入参数。打开的权限,一般设为 GENERIC_ALL。全部权限参考 MSDN。ObjectAttributes输入参数。OBJECT_ATTRIBUTES 结构。IoStatusBlock输出参数。指向一个结构体的指针。该结构体指明打开文件的状态。ShareAccess输入参

16、数。共享的权限。可以是 FILE_SHARE_READ 或者 FILE_SHARE_WRITE。OpenOptions输入参数。打开选项,一般设为 FILE_SYNCHRONOUS_IO_NONALERT。返回值编辑NTSTATUS 指明文件是否被成功打开。五、zwSetSystemInformation zwSetSystemInformation 函数是个未公开的函数,调用 38 号会加载驱动,对应的第二个参数为 SYSTEM_LOAD_AND_CALL_IMAGE 结构体,第三个参数为SYSTEM_LOAD_AND_CALL_IMAGE 结构体的长度六、SetWindowsHookEx外文名 SetWindowsHookEx介 绍

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号