简体   繁体   English

访问被拒绝错误-CreateFileMApping

[英]Access Denied Error - CreateFileMApping

Hi all 大家好
I am getting GetLastError 5 (access Denied) for CreateFileMapping Function. 我正在为CreateFileMapping函数获取GetLastError 5(拒绝访问)。 Can any one help me please . 谁能帮我一下。 my code as below 我的代码如下

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);
}

In the above NtSetInformationFile CallBack Function i am calling GetFileNameFromHandle() function by passing FileHandle From NtSetInformationFile function , so inside GetFileNameFromHandle Function i am Calling CreateFileMapping by using the same Handle . 在上面的NtSetInformationFile CallBack函数中,我通过从NtSetInformationFile函数传递FileHandle来调用GetFileNameFromHandle()函数,因此在GetFileNameFromHandle函数中,我使用相同的Handle调用CreateFileMapping。

please help me if anything wrong in the above Code. 如果上述代码有任何问题,请帮助我。

[Overwriting initial answer which should have been comments] [覆盖应该是注释的初始答案]

OK. 好。 You probably have one of two problems: 1) If this code is executing in the context of a device driver, then it is likely executing as a system process with system permissions. 您可能会遇到以下两个问题之一:1)如果此代码是在设备驱动程序的上下文中执行的,则它很可能作为具有系统权限的系统进程执行。 Was the file handle passed in coming from an application executing with the user's permissions? 文件句柄是否来自使用用户权限执行的应用程序传递的? That could explain access denied. 这可以解释访问被拒绝的原因。

2) The file was opened without FILE_SHARE_READ and/or FILE_SHARE_WRITE. 2)文件打开时没有FILE_SHARE_READ和/或FILE_SHARE_WRITE。

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

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