Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

412 lines
5.7 KiB

/*++
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;
}