繁体   English   中英

访问被拒绝错误-CreateFileMApping

[英]Access Denied Error - CreateFileMApping

大家好
我正在为CreateFileMapping函数获取GetLastError 5(拒绝访问)。 谁能帮我一下。 我的代码如下

typedef NTSTATUS(WINAPI *NtSetInformationFileNext)(HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation,
                                                  ULONG Length, FILE_INFORMATION_CLASS FileInformationClass);
NtSetInformationFileNext Real_NtSetInformationFileData = NULL;
NtSetInformationFileNext Real_NtSetInformationFileVar ;

NTSTATUS WINAPI NtSetInformationFileCallback(HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation,
                                                  ULONG Length, FILE_INFORMATION_CLASS FileInformationClass)
{

if(FileInformationClass == 10)
{

    FILE_RENAME_INFORMATION *pInfo = (PFILE_RENAME_INFORMATION)FileInformation;

            GetFileNameFromHandle(FileHandle);

    MessageBoxW(NULL, pInfo->FileName, L"Renamed To", MB_OK);   
}

return Real_NtSetInformationFileData(FileHandle, IoStatusBlock, FileInformation, Length, FileInformationClass);
}

在上面的NtSetInformationFile CallBack函数中,我通过从NtSetInformationFile函数传递FileHandle来调用GetFileNameFromHandle()函数,因此在GetFileNameFromHandle函数中,我使用相同的Handle调用CreateFileMapping。

如果上述代码有任何问题,请帮助我。

[覆盖应该是注释的初始答案]

好。 您可能会遇到以下两个问题之一:1)如果此代码是在设备驱动程序的上下文中执行的,则它很可能作为具有系统权限的系统进程执行。 文件句柄是否来自使用用户权限执行的应用程序传递的? 这可以解释访问被拒绝的原因。

2)文件打开时没有FILE_SHARE_READ和/或FILE_SHARE_WRITE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM