Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

606 lines
16 KiB

#include "stdafx.h"
#include "drmerr.h"
#define E_NoActiveSync HRESULT_FROM_WIN32(ERROR_DLL_NOT_FOUND)
#define WIN_ERR_NO_ACTIVE_SYNC ERROR_DLL_NOT_FOUND
#define RAPILIBNAME L"rapi.dll"
HRESULT CeRapiInitEx(RAPIINIT* pRapiInit)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HRESULT (*PFN)(RAPIINIT *);
PFN pfn = (PFN) GetProcAddress(hMod, "CeRapiInitEx");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(pRapiInit);
}
}
return E_NoActiveSync;
}
HRESULT CeRapiInvoke( LPCWSTR pDllPath, LPCWSTR pFunctionName, DWORD cbInput, BYTE *pInput,
DWORD *pcbOutput, BYTE **ppOutput, IRAPIStream **ppIRAPIStream, DWORD dwReserved )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HRESULT (*PFN)(LPCWSTR, LPCWSTR, DWORD, BYTE*, DWORD*, BYTE**, IRAPIStream**, DWORD);
PFN pfn = (PFN) GetProcAddress(hMod, "CeRapiInvoke");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(pDllPath, pFunctionName, cbInput, pInput, pcbOutput, ppOutput, ppIRAPIStream, dwReserved);
}
}
return E_NoActiveSync;
}
HRESULT CeRapiInit(void)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HRESULT (*PFN)(void);
PFN pfn = (PFN) GetProcAddress(hMod, "CeRapiInit");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)();
}
}
return E_NoActiveSync;
}
LONG CeRegOpenKeyEx( HKEY hKey, LPCWSTR lpszSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef LONG (*PFN)(HKEY , LPCWSTR , DWORD , REGSAM , PHKEY );
PFN pfn = (PFN) GetProcAddress(hMod, "CeRegOpenKeyEx");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hKey, lpszSubKey, ulOptions, samDesired, phkResult);
}
}
return WIN_ERR_NO_ACTIVE_SYNC;
}
HRESULT CeRapiGetError(void)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HRESULT (*PFN)();
PFN pfn = (PFN) GetProcAddress(hMod, "CeRapiGetError");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)();
}
}
return E_NoActiveSync;
}
DWORD CeGetLastError( void )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef DWORD (*PFN)();
PFN pfn = (PFN) GetProcAddress(hMod, "CeGetLastError");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)();
}
}
return WIN_ERR_NO_ACTIVE_SYNC;
}
BOOL CeGetSystemPowerStatusEx(PSYSTEM_POWER_STATUS_EX pstatus, BOOL fUpdate)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(PSYSTEM_POWER_STATUS_EX, BOOL);
PFN pfn = (PFN) GetProcAddress(hMod, "CeGetSystemPowerStatusEx");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(pstatus, fUpdate);
}
}
return FALSE; //FALSE indicates error
}
HRESULT CeRapiFreeBuffer( LPVOID Buffer )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HRESULT (*PFN)(LPVOID);
PFN pfn = (PFN) GetProcAddress(hMod, "CeRapiFreeBuffer");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(Buffer);
}
}
return E_NoActiveSync;
}
BOOL CeFindAllFiles(LPCWSTR szPath, DWORD dwFlags, LPDWORD lpdwFoundCount, LPLPCE_FIND_DATA ppFindDataArray)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(LPCWSTR, DWORD, LPDWORD, LPLPCE_FIND_DATA);
PFN pfn = (PFN) GetProcAddress(hMod, "CeFindAllFiles");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(szPath, dwFlags, lpdwFoundCount, ppFindDataArray);
}
}
return FALSE; //FALSE indicates error
}
BOOL CeCreateDirectory(LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(LPCWSTR, LPSECURITY_ATTRIBUTES);
PFN pfn = (PFN) GetProcAddress(hMod, "CeCreateDirectory");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpPathName, lpSecurityAttributes);
}
}
return FALSE; //FALSE indicates error
}
BOOL CeCloseHandle( HANDLE hObject )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(HANDLE);
PFN pfn = (PFN) GetProcAddress(hMod, "CeCloseHandle");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hObject);
}
}
return FALSE;
}
BOOL CeSetFileAttributes(LPCWSTR lpFileName, DWORD dwFileAttributes)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(LPCWSTR, DWORD);
PFN pfn = (PFN) GetProcAddress(hMod, "CeSetFileAttributes");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpFileName, dwFileAttributes);
}
}
return FALSE;
}
LONG CeRegQueryValueEx( HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef LONG (*PFN)( HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD );
PFN pfn = (PFN) GetProcAddress(hMod, "CeRegQueryValueEx");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData);
}
}
return WIN_ERR_NO_ACTIVE_SYNC;
}
LONG CeRegCloseKey( HKEY hKey )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef LONG (*PFN)( HKEY );
PFN pfn = (PFN) GetProcAddress(hMod, "CeRegCloseKey");
_Assert (pfn != NULL); //there is no reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hKey);
}
}
return WIN_ERR_NO_ACTIVE_SYNC;
}
HRESULT CeRapiUninit(void)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HRESULT (*PFN)();
PFN pfn = (PFN) GetProcAddress(hMod, "CeRapiUninit");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)();
}
}
return E_NoActiveSync;
}
BOOL CeRemoveDirectory(LPCWSTR lpPathName)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(LPCWSTR);
PFN pfn = (PFN) GetProcAddress(hMod, "CeRemoveDirectory");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpPathName);
}
}
return FALSE;
}
BOOL CeMoveFile(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(LPCWSTR, LPCWSTR);
PFN pfn = (PFN) GetProcAddress(hMod, "CeMoveFile");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpExistingFileName, lpNewFileName);
}
}
return FALSE;
}
DWORD CeSetFilePointer( HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef DWORD (*PFN)( HANDLE, LONG, PLONG , DWORD );
PFN pfn = (PFN) GetProcAddress(hMod, "CeSetFilePointer");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hFile, lDistanceToMove, lpDistanceToMoveHigh, dwMoveMethod);
}
}
//dll not found, fail over
if (NULL != lpDistanceToMoveHigh)
{
*lpDistanceToMoveHigh = NULL;
}
return -1;
}
BOOL CeDeleteFile(LPCWSTR lpFileName)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)( LPCWSTR );
PFN pfn = (PFN) GetProcAddress(hMod, "CeDeleteFile");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpFileName);
}
}
return FALSE;
}
BOOL CeWriteFile( HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)( HANDLE , LPCVOID , DWORD , LPDWORD , LPOVERLAPPED );
PFN pfn = (PFN) GetProcAddress(hMod, "CeWriteFile");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped);
}
}
return FALSE;
}
BOOL CeReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)( HANDLE , LPVOID , DWORD , LPDWORD , LPOVERLAPPED );
PFN pfn = (PFN) GetProcAddress(hMod, "CeReadFile");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped);
}
}
return FALSE;
}
DWORD CeGetFileAttributes(LPCWSTR lpFileName)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef DWORD (*PFN)( LPCWSTR );
PFN pfn = (PFN) GetProcAddress(hMod, "CeGetFileAttributes");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpFileName);
}
}
return -1;
}
BOOL CeSHGetShortcutTarget(LPWSTR lpszShortcut, LPWSTR lpszTarget, int cbMax)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)( LPWSTR , LPWSTR , int );
PFN pfn = (PFN) GetProcAddress(hMod, "CeSHGetShortcutTarget");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpszShortcut, lpszTarget, cbMax);
}
}
return FALSE;
}
BOOL CeCreateProcess(LPCWSTR lpApplicationName, LPCWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPWSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(LPCWSTR , LPCWSTR , LPSECURITY_ATTRIBUTES , LPSECURITY_ATTRIBUTES ,
BOOL , DWORD , LPVOID , LPWSTR , LPSTARTUPINFO , LPPROCESS_INFORMATION );
PFN pfn = (PFN) GetProcAddress(hMod, "CeCreateProcess");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment,
lpCurrentDirectory, lpStartupInfo, lpProcessInformation);
}
}
return FALSE;
}
HANDLE CeCreateFile(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HANDLE (*PFN)(LPCWSTR , DWORD , DWORD , LPSECURITY_ATTRIBUTES , DWORD , DWORD , HANDLE );
PFN pfn = (PFN) GetProcAddress(hMod, "CeCreateFile");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
}
}
return INVALID_HANDLE_VALUE;
}
HANDLE CeFindFirstFile(LPCWSTR lpFileName, LPCE_FIND_DATA lpFindFileData)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef HANDLE (*PFN)(LPCWSTR , LPCE_FIND_DATA );
PFN pfn = (PFN) GetProcAddress(hMod, "CeFindFirstFile");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpFileName, lpFindFileData);
}
}
return INVALID_HANDLE_VALUE;
}
BOOL CeGetVersionEx(LPCEOSVERSIONINFO lpVersionInformation)
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(LPCEOSVERSIONINFO);
PFN pfn = (PFN) GetProcAddress(hMod, "CeGetVersionEx");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(lpVersionInformation);
}
}
return FALSE;
}
BOOL CeFindClose( HANDLE hFindFile )
{
HMODULE hMod = LoadLibrary (RAPILIBNAME);
if (hMod != NULL)
{
typedef BOOL (*PFN)(HANDLE);
PFN pfn = (PFN) GetProcAddress(hMod, "CeFindClose");
_Assert (pfn != NULL); //there is no good reason that this fn wd not be there, it probably means a bug in late binding
if (pfn != NULL)
{
return (*pfn)(hFindFile);
}
}
return FALSE;
}