常用基本功能函数封装
+ -

文件数据读取内存GetBufferFromFile

2022-01-16 33 0

使用std::string存储从文件中读取的二进制数。

BOOL  GetBufferFromFile(TCHAR* pFileName, std::string& strFileStream)
{
    HANDLE hFile = INVALID_HANDLE_VALUE;
    BOOL isok = FALSE;
    do
    {
        hFile = CreateFile(pFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        if (INVALID_HANDLE_VALUE == hFile)
        {
            break;
        }

        DWORD dwFileSize = GetFileSize(hFile, NULL);
        if (dwFileSize == 0)
        {
            break;
        }
        strFileStream.resize(dwFileSize);

        DWORD dwBytesRead = 0;
        isok = ReadFile(hFile, (PVOID)&strFileStream.at(0), dwFileSize, &dwBytesRead, NULL);
        if (!isok)
        {
            break;
        }

    } while (0);

    if (hFile != INVALID_HANDLE_VALUE)
    {
        CloseHandle(hFile);
    }

    return isok;
}

0 篇笔记 写笔记

CreateFile()中的OPEN_ALWAYS和CREATE_ALWAYS之间的差异
任何人都可以解释Windows API的 CreateFile()功能的创建配置OPEN_ALWAYS和CREATE_ALWAYS之间的区别?对我来说,似乎他们只是简单地“创建文件,如果它不存在”。如果文件已经存在,CREATE_ALWAYS也会截断内容。另一方面,OPEN_ALWAYS不会破坏已......
文件的读写操作
打开文件之后,最重要的操作是对文件的读写。读与写的方法是对称的。只是参数输入与输出的方向不同。读取文件内容一般用ZwReadFile,写文件一般使用ZwWriteFile。NTSTATUS ZwReadFile( IN HANDLE FileHandle, IN HANDLE ......
CreateFile打开驱动设备权限不足
记得以前写了一个文件过滤驱动,使用的是minifilter的框架。在创建设备时,很常规的使用IoCreateDevice来创建一个命名的设备对象,然后对这个设备名使用IoCreateSymbolicLink创建其应用层的链接符号名,这样我们在应用层就可以通过CreateFile函数就可以打开这个设备......
Windows内核打开和关闭文件
文件的打开下面的函数用于打开一个文件: NTSTATUS ZwCreateFile( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, ......
CreateFile传递参数给驱动
BULKUSB的IRP_MN_CREATE的回调函数如下:NTSTATUSBulkUsb_DispatchCreate( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp )/*++Routine Descr......
文件数据读取内存GetBufferFromFile
使用std::string存储从文件中读取的二进制数。BOOL GetBufferFromFile(TCHAR* pFileName, std::string& strFileStream){ HANDLE hFile = INVALID_HANDLE_VALUE; B......
IRP_MJ_CREATE标识CreateFile句柄FsContext
驱动程序可以通过CreateFile打开设备,不过有一种情况我们需要对不同的CreateFile句柄在驱动中标识不同的CONTEXT.这个CONTEXT可以存储在rpSp->FileObject->FsContext中。即每个CreateFile实例句柄都在驱动中有惟一对应的MY_CON......
VC打开网页,并获取网页内容
使用InternetReadFile读取网页内容,注意读到的可能因为网页是UTF-8而需要进行编码转换。#include #include #include #include
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!