Windows SDK学习笔记(2)
1) FindFirstChangeNotification 可以用以监视指定目录中的变化
2)CreateFile是一个功能相当强大的函数,windows下的奉济底层设备几乎差不多者是由它打开的,它可以创建或打开文件,目录,物理磁盘,控制台缓冲区,邮槽和管道等。
3)如果操作对象是第一串口,要指定COM1为文件名,如果要打开本地电脑的一个服务,要以“\\.\服务名称”为文件名,网络上的其他主机的文件,则使用:“\\主机名、共享目录名\文件名”。
4)SetFilePointer 用以移动文件指针,可以用它达到扩展文件长度的能力。 SetEndOfFile移动文件结束标志:EOF到文件指针指向的位置。要截断或才扩展文件时,必须此2函数,搭配使用。
5.FlushFileBuffers,强行清空缓冲区。
6.LockFile/UnLockFile,完成对文件的加解锁。
7.PE文件格式是任何可执行模块或者DLL的文件格式,它由DOS头+DOSt程序+NT头+....构成。
IMAGE_DOS_HEADER dosHeader;
IMAGE_NT_HEADER32 ntHeader;
::ReadFile(..., &dosHeader, sizeof( dosHeader ), ... );
...
if ( dosHeader.e_magic == IMAGE_DOS_SIGNATURE )
{
...
if( SetFilePointer( hFile, dosHeader.e_lfanew, NULL, FILE_BEGIN ) != -1 )
{
...
::ReadFile(..., &ntHeader, sizeof( ntHeader ), ... );
...
if( ntHeader.e_magic == IMAGE_NT_SIGNATURE )
...
}
}
8.Windows中的文件组织采用分层结构,计算机上可以安装多个物理驱动器,每个又可以分为多个主分区和扩展分区,一个主分区就有一个逻辑驱动器,而扩展分区又可以创建多个逻辑驱动器,win2k新的磁盘结构的基本单位是:Volume,与分区相比,volume可以跨越多个物理磁盘。
9. 注册表是一数据库,它的结构与逻辑磁盘类似,包含:Key(键)-Value(键值),一个key,可以有多个sub-key,或者value, value用于存储数据,顶层键被称为根键,windows有6个根。
10. 在调用RegCreateKeyEx()时,要注意运行程序的用户身份,以防止出现错误5