/*++ Copyright (c) 1990 Microsoft Corporation Module Name: Abstract: Author: Revision History: --*/ #include "basedll.h" #include "mountmgr.h" #include "aclapi.h" #include "winefs.h" #define InterlockedIncrement _InterlockedIncrement #define InterlockedDecrement _InterlockedDecrement #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd #define InterlockedCompareExchange _InterlockedCompareExchange #define InterlockedCompareExchange _InterlockedCompareExchange NTSTATUS WmipUuidCreate( OUT UUID *Uuid ); NTSTATUS WmipRegOpenKey( IN LPWSTR lpKeyName, OUT PHANDLE KeyHandle ); DWORD WmipGetLastError( VOID ); VOID WmipSetLastError( DWORD dwErrCode ); DWORD WINAPI WmipGetTimeZoneInformation( LPTIME_ZONE_INFORMATION lpTimeZoneInformation ); BOOL WINAPI WmipGetVersionExW( LPOSVERSIONINFOW lpVersionInformation ); BOOL WINAPI WmipGetVersionExA( LPOSVERSIONINFOA lpVersionInformation ); PUNICODE_STRING WmipBaseIsThisAConsoleName( PCUNICODE_STRING FileNameString, DWORD dwDesiredAccess ); ULONG WmipBaseSetLastNTError( IN NTSTATUS Status ); PUNICODE_STRING WmipBasep8BitStringToStaticUnicodeString( IN LPCSTR lpSourceString ); HANDLE WINAPI WmipCreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); HANDLE WmipBaseGetNamedObjectDirectory( VOID ); POBJECT_ATTRIBUTES WmipBaseFormatObjectAttributes( OUT POBJECT_ATTRIBUTES ObjectAttributes, IN PSECURITY_ATTRIBUTES SecurityAttributes, IN PUNICODE_STRING ObjectName ); HANDLE WINAPI WmipCreateFileA( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); HANDLE APIENTRY WmipCreateEventW( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCWSTR lpName ); HANDLE APIENTRY WmipCreateEventA( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCSTR lpName ); DWORD WINAPI WmipSetFilePointer( HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod ); BOOL WINAPI WmipReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); BOOL WmipCloseHandle( HANDLE hObject ); DWORD APIENTRY WmipWaitForSingleObjectEx( HANDLE hHandle, DWORD dwMilliseconds, BOOL bAlertable ); BOOL WINAPI WmipGetOverlappedResult( HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait ); PLARGE_INTEGER WmipBaseFormatTimeOut( OUT PLARGE_INTEGER TimeOut, IN DWORD Milliseconds ); DWORD WmipWaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); BOOL WINAPI WmipDeviceIoControl( HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ); BOOL WINAPI WmipCancelIo( HANDLE hFile ); VOID APIENTRY WmipExitThread( DWORD dwExitCode ); DWORD WINAPI WmipGetCurrentProcessId( VOID ); DWORD APIENTRY WmipGetCurrentThreadId( VOID ); HANDLE WINAPI WmipGetCurrentProcess( VOID ); BOOL WmipSetEvent( HANDLE hEvent ); VOID WINAPI WmipGetSystemInfo( LPSYSTEM_INFO lpSystemInfo ); VOID WINAPI WmipGlobalMemoryStatus( LPMEMORYSTATUS lpBuffer ); DWORD APIENTRY WmipWaitForMultipleObjectsEx( DWORD nCount, CONST HANDLE *lpHandles, BOOL bWaitAll, DWORD dwMilliseconds, BOOL bAlertable ); VOID BaseProcessStart( PPROCESS_START_ROUTINE lpStartAddress ); VOID BaseThreadStart( IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter ); HANDLE APIENTRY WmipCreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); DWORD APIENTRY WmipSleepEx( DWORD dwMilliseconds, BOOL bAlertable ); VOID WmipSleep( DWORD dwMilliseconds ); BOOL APIENTRY WmipSetThreadPriority( HANDLE hThread, int nPriority ); BOOL WmipDuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwOptions ); UINT WmipSetErrorMode( UINT uMode ); UINT WmipGetErrorMode(); ULONG WmipUnicodeToAnsi( LPCWSTR pszW, LPSTR * ppszA, ULONG *AnsiSizeInBytes OPTIONAL ); ULONG WmipAnsiToUnicode( LPCSTR pszA, LPWSTR * ppszW ); HANDLE APIENTRY WmipDuplicateConsoleHandle( IN HANDLE hSourceHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions ); USHORT WmipGetCurrentExeName( OUT LPWSTR Buffer, IN ULONG BufferLength ); DWORD WmipTlsAlloc(VOID); LPVOID WmipTlsGetValue(DWORD dwTlsIndex); BOOL WmipTlsSetValue(DWORD dwTlsIndex,LPVOID lpTlsValue); BOOL WmipTlsFree(DWORD dwTlsIndex); /* __int64 WmipGetCycleCount();*/ DWORD APIENTRY WmipGetFullPathNameA( LPCSTR lpFileName, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart ); ULONG WmipSetNtStatus( IN NTSTATUS Status ); __inline ULONG WmipSetDosError( IN ULONG DosError ) { WmipSetLastError(DosError); return DosError; }