예제 #1
0
HANDLE WINAPI Mine_CreateFileW(LPCWSTR a0, DWORD a1, DWORD a2, LPSECURITY_ATTRIBUTES a3, DWORD a4, DWORD a5, HANDLE a6)
{
	if (s_HelloCppHandle == 0 && wcsstr(a0, L"Hello.cpp"))
	{
		Syelog(SYELOG_SEVERITY_INFORMATION, "CreateFileW(): %ls", a0);

		s_HelloCppHandle = Real_CreateFileW(a0, a1, a2, a3, a4, a5, a6);
		return s_HelloCppHandle;
	}

    return Real_CreateFileW(a0, a1, a2, a3, a4, a5, a6);
}
예제 #2
0
HANDLE WINAPI Mine_CreateFileW(LPCWSTR a0, DWORD a1, DWORD a2, LPSECURITY_ATTRIBUTES a3, DWORD a4, DWORD a5, HANDLE a6)
{
	if (s_SourceFileHandle == 0 && XORVALUE && wcsstr(a0, SOURCEFILE))
	{
#if defined(USE_SYELOG)
		Syelog(SYELOG_SEVERITY_INFORMATION, "CreateFileW(): %ls", a0);
#endif

		s_SourceFileHandle = Real_CreateFileW(a0, a1, a2, a3, a4, a5, a6);
		return s_SourceFileHandle;
	}

    return Real_CreateFileW(a0, a1, a2, a3, a4, a5, a6);
}
예제 #3
0
bool CIfo::OpenFile (LPCTSTR strFile)
{
	bool	bRet = false;
	HANDLE	hFile;
	LARGE_INTEGER size;

	hFile	 = Real_CreateFileW((LPTSTR) strFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	ASSERT (hFile != INVALID_HANDLE_VALUE);

	if (hFile != INVALID_HANDLE_VALUE && GetFileSizeEx(hFile, &size) &&
			size.QuadPart <= 0x800000) { // max size of the ifo file = 8 MB (taken with reserve. need a more correct info)
		m_pBuffer = DNew BYTE [size.QuadPart];
		ReadFile (hFile, m_pBuffer, size.QuadPart, &m_dwSize, NULL);
		CloseHandle (hFile);

		if (IsVTS() && (OFF_VTSM_PGCI_UT(m_pBuffer)!=0)) {
			m_pPGCI  = (ifo_hdr_t*)(m_pBuffer + OFF_VTSM_PGCI_UT(m_pBuffer) * DVD_VIDEO_LB_LEN);
			m_pPGCIT = (ifo_hdr_t*)(m_pBuffer + OFF_VTS_PGCIT(m_pBuffer)    * DVD_VIDEO_LB_LEN);
		} else if (IsVMG() && (OFF_VMGM_PGCI_UT(m_pBuffer)!=0)) {
			m_pPGCI = (ifo_hdr_t*)(m_pBuffer + OFF_VMGM_PGCI_UT(m_pBuffer) * DVD_VIDEO_LB_LEN);
		}

		bRet = (m_pPGCI != NULL);
	}

	return bRet;
}
예제 #4
0
파일: Ifo.cpp 프로젝트: Fluffiest/splayer
bool CIfo::OpenFile (LPCTSTR strFile)
{
	bool	bRet = false;
	HANDLE	hFile;

	hFile	 = Real_CreateFileW((LPTSTR) strFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	ASSERT (hFile != INVALID_HANDLE_VALUE);

	if (hFile != INVALID_HANDLE_VALUE)
	{
		DWORD		dwSize = GetFileSize (hFile, NULL);
		m_pBuffer = new BYTE [dwSize];
		ReadFile (hFile, m_pBuffer, dwSize, &m_dwSize, NULL);
		CloseHandle (hFile);

		if (IsVTS() && (OFF_VTSM_PGCI_UT(m_pBuffer)!=0))
		{
			m_pPGCI  = (ifo_hdr_t*)(m_pBuffer + OFF_VTSM_PGCI_UT(m_pBuffer) * DVD_VIDEO_LB_LEN);
			m_pPGCIT = (ifo_hdr_t*)(m_pBuffer + OFF_VTS_PGCIT(m_pBuffer)    * DVD_VIDEO_LB_LEN);			
		}
		else if (IsVMG() && (OFF_VMGM_PGCI_UT(m_pBuffer)!=0))
			m_pPGCI = (ifo_hdr_t*)(m_pBuffer + OFF_VMGM_PGCI_UT(m_pBuffer) * DVD_VIDEO_LB_LEN);

		bRet = (m_pPGCI != NULL);
	}

	return bRet;
}
예제 #5
0
파일: trcser.cpp 프로젝트: HITKIL/Ten18
HANDLE WINAPI Mine_CreateFileW(LPCWSTR a0,
                               DWORD a1,
                               DWORD a2,
                               LPSECURITY_ATTRIBUTES a3,
                               DWORD a4,
                               DWORD a5,
                               HANDLE a6)
{
    _PrintEnter("CreateFileW(%ls,%x,%x,%p,%x,%x,%p)\n", a0, a1, a2, a3, a4, a5, a6);

    HANDLE rv = 0;
    __try {
        rv = Real_CreateFileW(a0, a1, a2, a3, a4, a5, a6);
    } __finally {
        _PrintExit("CreateFileW(,,,,,,) -> %p\n", rv);
    };
    return rv;
}
예제 #6
0
파일: Ifo.cpp 프로젝트: GottfriedCP/mpc-hc
bool CIfo::SaveFile(LPCTSTR strFile)
{
    bool bRet = false;

    if (m_pBuffer) {
        HANDLE m_hFile = Real_CreateFileW((LPTSTR) strFile, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
                                          nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr);
        ASSERT(m_hFile != INVALID_HANDLE_VALUE);

        if (m_hFile != INVALID_HANDLE_VALUE) {
            DWORD dwSize;
            WriteFile(m_hFile, m_pBuffer, m_dwSize, &dwSize, nullptr);
            CloseHandle(m_hFile);
            bRet = true;
        }
    }

    return bRet;
}