大家好
我得到GetLastError 5(訪問被拒絕)的CreateFileMapping函數。請任何人幫助我。我的代碼如下訪問被拒絕的錯誤 - CreateFileMApping
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回調函數我打電話GetFileNameFromHandle()函數通過傳遞的FileHandle從NtSetInformationFile功能,所以GetFileNameFromHandle函數內部我正在通過使用相同的句柄調用的CreateFileMapping。
如果在上面的代碼中有任何錯誤,請幫助我。
嗯,在你的代碼中沒有任何地方調用'CreateFileMapping'。這看起來像某種修補功能,這本質上是不受支持的。 (特別是,你打回內核會覆蓋內部狀態。) – 2012-08-08 15:59:35