+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- WinNtThunk.h\r
-\r
-Abstract:\r
-\r
- This protocol allows an EFI driver (DLL) in the NT emulation envirnment\r
- to make Win32 API calls.\r
-\r
- NEVER make a Win32 call directly, always make the call via this protocol.\r
-\r
- There are no This pointers on the protocol member functions as they map\r
- exactly into Win32 system calls.\r
-\r
- YOU MUST include EfiWinNT.h in place of Efi.h to make this file compile.\r
-\r
---*/\r
-\r
-#ifndef _WIN_NT_THUNK_H_\r
-#define _WIN_NT_THUNK_H_\r
-\r
-#define EFI_WIN_NT_THUNK_PROTOCOL_GUID \\r
- { \\r
- 0x58c518b1, 0x76f3, 0x11d4, {0xbc, 0xea, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} \\r
- }\r
-\r
-//\r
-// The following APIs require EfiWinNT.h. In some environmnets the GUID\r
-// definitions are needed but the EfiWinNT.h is not included.\r
-// EfiWinNT.h is needed to support WINDOWS API requirements.\r
-//\r
-#ifdef _EFI_WIN_NT_H_\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtSleep) (\r
- DWORD Milliseconds\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtSuspendThread) (\r
- HANDLE hThread\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtGetCurrentThread) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtGetCurrentThreadId) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtGetCurrentProcess) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtCreateThread) (\r
- LPSECURITY_ATTRIBUTES lpThreadAttributes,\r
- DWORD dwStackSize,\r
- LPTHREAD_START_ROUTINE lpStartAddress,\r
- LPVOID lpParameter,\r
- DWORD dwCreationFlags,\r
- LPDWORD lpThreadId\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtTerminateThread) (\r
- HANDLE hThread,\r
- DWORD dwExitCode\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSendMessage) (\r
- HWND hWnd,\r
- UINT Msg,\r
- WPARAM wParam,\r
- LPARAM lParam\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtExitThread) (\r
- DWORD dwExitCode\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtResumeThread) (\r
- HANDLE hThread\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetThreadPriority) (\r
- HANDLE hThread,\r
- INTN nPriority\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtInitializeCriticalSection) (\r
- LPCRITICAL_SECTION lpCriticalSection\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtDeleteCriticalSection) (\r
- LPCRITICAL_SECTION lpCriticalSection\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtEnterCriticalSection) (\r
- LPCRITICAL_SECTION lpCriticalSection\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtLeaveCriticalSection) (\r
- LPCRITICAL_SECTION lpCriticalSection\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtTlsAlloc) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-LPVOID\r
-(WINAPI *WinNtTlsGetValue) (\r
- DWORD dwTlsIndex\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtTlsSetValue) (\r
- DWORD dwTlsIndex,\r
- LPVOID lpTlsValue\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtTlsFree) (\r
- DWORD dwTlsIndex\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtCreateSemaphore) (\r
- LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,\r
- LONG lInitialCount,\r
- LONG lMaximumCount,\r
- LPCWSTR lpName\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtWaitForSingleObject) (\r
- HANDLE hHandle,\r
- DWORD dwMilliseconds\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtReleaseSemaphore) (\r
- HANDLE hSemaphore,\r
- LONG lReleaseCount,\r
- LPLONG lpPreviousCount\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtDuplicateHandle) (\r
- HANDLE hSourceProcessHandle,\r
- HANDLE hSourceHandle,\r
- HANDLE hTargetProcessHandle,\r
- LPHANDLE lpTargetHandle,\r
- DWORD dwDesiredAccess,\r
- BOOL bInheritHandle,\r
- DWORD dwOptions\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtCreateConsoleScreenBuffer) (\r
- DWORD DesiredAccess,\r
- DWORD ShareMode,\r
- CONST SECURITY_ATTRIBUTES *SecurityAttributes,\r
- DWORD Flags,\r
- LPVOID ScreenBufferData\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetConsoleScreenBufferSize) (\r
- HANDLE ConsoleOutput,\r
- COORD Size\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetConsoleActiveScreenBuffer) (\r
- HANDLE ConsoleOutput\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFillConsoleOutputAttribute) (\r
- HANDLE ConsoleOutput,\r
- WORD Attribute,\r
- DWORD Length,\r
- COORD WriteCoord,\r
- LPDWORD NumberOfAttrsWritten\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFillConsoleOutputCharacter) (\r
- HANDLE ConsoleOutput,\r
- TCHAR Character,\r
- DWORD Length,\r
- COORD WriteCoord,\r
- LPDWORD NumberOfCharsWritten\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtWriteConsoleOutput) (\r
- HANDLE ConsoleOutput,\r
- CONST CHAR_INFO *Buffer,\r
- COORD BufferSize,\r
- COORD BufferCoord,\r
- PSMALL_RECT WriteRegion\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtScrollConsoleScreenBuffer) (\r
- HANDLE ConsoleOutput,\r
- CONST SMALL_RECT *ScrollRectangle,\r
- CONST SMALL_RECT *ClipRectangle,\r
- COORD DestinationOrigin,\r
- CONST CHAR_INFO *Fill\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetConsoleTitleW) (\r
- LPCTSTR ConsoleTitle\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtGetConsoleCursorInfo) (\r
- HANDLE ConsoleOutput,\r
- PCONSOLE_CURSOR_INFO ConsoleCursorInfo\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetConsoleCursorInfo) (\r
- HANDLE ConsoleOutput,\r
- CONST CONSOLE_CURSOR_INFO *ConsoleCursorInfo\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetPriorityClass) (\r
- HANDLE Process,\r
- DWORD PriorityClass\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtWriteConsoleInput) (\r
- HANDLE ConsoleInput,\r
- CONST INPUT_RECORD *Buffer,\r
- DWORD Legnth,\r
- LPDWORD NumberOfEventsWritten\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtGetNumberOfConsoleInputEvents) (\r
- HANDLE ConsoleInput,\r
- LPDWORD NumberOfEvents\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtGetStdHandle) (\r
- DWORD StdHandle\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtReadConsoleInput) (\r
- HANDLE ConsoleInput,\r
- PINPUT_RECORD Buffer,\r
- DWORD Length,\r
- LPDWORD NumberOfEventsRead\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtPeekConsoleInput) (\r
- HANDLE ConsoleInput,\r
- PINPUT_RECORD Buffer,\r
- DWORD Length,\r
- LPDWORD NumberOfEventsRead\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetConsoleCursorPosition) (\r
- HANDLE ConsoleInput,\r
- COORD CursorPosition\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtCreateFile) (\r
- LPCWSTR FileName,\r
- DWORD DesiredAccess,\r
- DWORD SharedMode,\r
- LPSECURITY_ATTRIBUTES SecurityAttributes,\r
- DWORD CreationDisposition,\r
- DWORD FlagsAndAttributes,\r
- HANDLE TemplateFile\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtDeviceIoControl) (\r
- HANDLE DeviceHandle,\r
- DWORD IoControlCode,\r
- LPVOID InBuffer,\r
- DWORD InBufferSize,\r
- LPVOID OutBuffer,\r
- DWORD OutBufferSize,\r
- LPDWORD BytesReturned,\r
- LPOVERLAPPED Overlapped\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtCreateDirectory) (\r
- LPCWSTR PathName,\r
- LPSECURITY_ATTRIBUTES SecurityAttributes\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtRemoveDirectory) (\r
- LPCWSTR PathName\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtGetFileAttributes) (\r
- LPCWSTR FileName\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetFileAttributes) (\r
- LPCWSTR FileName,\r
- DWORD FileAttributes\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtCreateFileMapping) (\r
- HANDLE FileHandle,\r
- LPSECURITY_ATTRIBUTES Attributes,\r
- DWORD Protect,\r
- DWORD MaximumSizeHigh,\r
- DWORD MaximumSizeLow,\r
- LPCTSTR Name\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-LPVOID\r
-(WINAPI *WinNtMapViewOfFileEx) (\r
- HANDLE FileHandle,\r
- DWORD DesiredAccess,\r
- DWORD FileOffsetHigh,\r
- DWORD FileOffsetLow,\r
- DWORD NumberOfBytesToMap,\r
- LPVOID BaseAddress\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtGetEnvironmentVariable) (\r
- LPCTSTR Name,\r
- LPTSTR Buffer,\r
- DWORD Size\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtCloseHandle) (\r
- HANDLE Object\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtSetFilePointer) (\r
- HANDLE FileHandle,\r
- LONG DistanceToMove,\r
- PLONG DistanceToHoveHigh,\r
- DWORD MoveMethod\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetEndOfFile) (\r
- HANDLE FileHandle\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtReadFile) (\r
- HANDLE FileHandle,\r
- LPVOID Buffer,\r
- DWORD NumberOfBytesToRead,\r
- LPDWORD NumberOfBytesRead,\r
- LPOVERLAPPED Overlapped\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtWriteFile) (\r
- HANDLE FileHandle,\r
- LPCVOID Buffer,\r
- DWORD NumberOfBytesToWrite,\r
- LPDWORD NumberOfBytesWritten,\r
- LPOVERLAPPED Overlapped\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtGetFileInformationByHandle) (\r
- HANDLE FileHandle,\r
- BY_HANDLE_FILE_INFORMATION *FileInfo\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtGetDiskFreeSpace) (\r
- LPCTSTR RootPathName,\r
- LPDWORD SectorsPerCluster,\r
- LPDWORD BytesPerSector,\r
- LPDWORD NumberOfFreeClusters,\r
- LPDWORD TotalNumberOfClusters\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtGetDiskFreeSpaceEx) (\r
- LPCTSTR DirectoryName,\r
- PULARGE_INTEGER FreeBytesAvailable,\r
- PULARGE_INTEGER TotalNumberOfBytes,\r
- PULARGE_INTEGER TotoalNumberOfFreeBytes\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtMoveFile) (\r
- LPCTSTR ExistingFileName,\r
- LPCTSTR NewFileName\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetFileTime) (\r
- HANDLE FileHandle,\r
- FILETIME *CreationTime,\r
- FILETIME *LastAccessTime,\r
- FILETIME *LastWriteTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSystemTimeToFileTime) (\r
- SYSTEMTIME * SystemTime,\r
- FILETIME * FileTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtDeleteFile) (\r
- LPCTSTR FileName\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFlushFileBuffers) (\r
- HANDLE\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtGetLastError) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-UINT\r
-(WINAPI *WinNtSetErrorMode) (\r
- UINT Mode\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtGetTickCount) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HMODULE\r
-(WINAPI *WinNtLoadLibraryEx) (\r
- LPCTSTR LibFileName,\r
- HANDLE FileHandle,\r
- DWORD Flags\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-FARPROC\r
-(WINAPI *WinNtGetProcAddress) (\r
- HMODULE Module,\r
- LPCSTR ProcName\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtGetTimeZoneInformation) (\r
- LPTIME_ZONE_INFORMATION timeZoneInformation\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-MMRESULT\r
-(WINAPI *WinNttimeSetEvent) (\r
- UINT uDelay,\r
- UINT uResolution,\r
- LPTIMECALLBACK lpTimeProc,\r
- DWORD_PTR dwUser,\r
- UINT fuEvent\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-MMRESULT\r
-(WINAPI *WinNttimeKillEvent) (\r
- UINT uTimerID\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-DWORD\r
-(WINAPI *WinNtSetTimeZoneInformation) (\r
- LPTIME_ZONE_INFORMATION timeZoneInformation\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtGetSystemTime) (\r
- LPSYSTEMTIME SystemTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetSystemTime) (\r
- CONST SYSTEMTIME *SystemTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtGetLocalTime) (\r
- LPSYSTEMTIME SystemTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetLocalTime) (\r
- CONST SYSTEMTIME *SystemTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFileTimeToLocalFileTime) (\r
- CONST FILETIME *FileTime,\r
- LPFILETIME LocalFileTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFileTimeToSystemTime) (\r
- CONST FILETIME *FileTime,\r
- LPSYSTEMTIME SystemTime\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-HANDLE\r
-(WINAPI *WinNtFindFirstFile) (\r
- LPCTSTR FileName,\r
- LPWIN32_FIND_DATA FindFileData\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFindNextFile) (\r
- HANDLE FindFile,\r
- LPWIN32_FIND_DATA FindFileData\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFindClose) (\r
- HANDLE FindFile\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtGetCommState) (\r
- HANDLE FileHandle,\r
- LPDCB DCB\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetCommState) (\r
- HANDLE FileHandle,\r
- LPDCB DCB\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetCommState) (\r
- HANDLE FileHandle,\r
- LPDCB DCB\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtSetCommTimeouts) (\r
- HANDLE FileHandle,\r
- LPCOMMTIMEOUTS CommTimeouts\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-VOID\r
-(WINAPI *WinNtExitProcess) (\r
- UINT uExitCode // exit code for all threads\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtPurgeComm) (\r
- HANDLE FileHandle,\r
- DWORD Flags\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtEscapeCommFunction) (\r
- HANDLE FileHandle,\r
- DWORD Func\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtGetCommModemStatus) (\r
- HANDLE FileHandle,\r
- LPDWORD ModemStat\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtClearCommError) (\r
- HANDLE FileHandle,\r
- LPDWORD Errors,\r
- LPCOMSTAT Stat\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-INT32\r
-(WINAPIV *WinNtSprintf) (\r
- LPWSTR Buffer,\r
- LPCWSTR String,\r
- ...\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HWND\r
-(WINAPI *WinNtGetDesktopWindow) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HWND\r
-(WINAPI *WinNtGetForegroundWindow) (\r
- VOID\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HWND\r
-(WINAPI *WinNtCreateWindowEx) (\r
- DWORD dwExStyle,\r
- LPCTSTR lpClassName,\r
- LPCTSTR lpWindowName,\r
- DWORD dwStyle,\r
- INT32 x,\r
- INT32 y,\r
- INT32 nWidth,\r
- INT32 nHeight,\r
- HWND hWndParent,\r
- HMENU hMenu,\r
- HINSTANCE hInstance,\r
- LPVOID *lpParam\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtUpdateWindow) (\r
- HWND hWnd\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtShowWindow) (\r
- HWND hWnd,\r
- INT32 nCmdShow\r
- );\r
-\r
-typedef\r
-WINGDIAPI\r
-BOOL\r
-(WINAPI *WinNtDestroyWindow) (\r
- HWND hWnd\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HDC\r
-(WINAPI *WinNtGetWindowDC) (\r
- HWND hWnd\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtGetClientRect) (\r
- HWND hWnd,\r
- LPRECT lpRect\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtAdjustWindowRect) (\r
- LPRECT lpRect,\r
- DWORD dwStyle,\r
- BOOL bMenu\r
- );\r
-\r
-typedef\r
-WINGDIAPI\r
-INT32\r
-(WINAPI *WinNtSetDIBitsToDevice) (\r
- HDC,\r
- INT32,\r
- INT32,\r
- DWORD,\r
- DWORD,\r
- INT32,\r
- INT32,\r
- UINT,\r
- UINT,\r
- CONST VOID *,\r
- CONST BITMAPINFO *,\r
- UINT\r
- );\r
-\r
-typedef\r
-WINGDIAPI\r
-BOOL\r
-(WINAPI *WinNtBitBlt) (\r
- HDC,\r
- INT32,\r
- INT32,\r
- INT32,\r
- INT32,\r
- HDC,\r
- INT32,\r
- INT32,\r
- DWORD\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtInvalidateRect) (\r
- HWND hWnd,\r
- CONST RECT *lpRect,\r
- BOOL bErase\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HDC\r
-(WINAPI *WinNtGetDC) (\r
- HWND hWnd\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-INT32\r
-(WINAPI *WinNtReleaseDC) (\r
- HWND hWnd,\r
- HDC hDC\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-ATOM\r
-(WINAPI *WinNtRegisterClassEx) (\r
- CONST WNDCLASSEX *\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtUnregisterClass) (\r
- LPCTSTR lpClassName,\r
- HINSTANCE hInstance\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HDC\r
-(WINAPI *WinNtBeginPaint) (\r
- HWND hWnd,\r
- LPPAINTSTRUCT lpPaint\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtEndPaint) (\r
- HWND hWnd,\r
- CONST PAINTSTRUCT *lpPaint\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-VOID\r
-(WINAPI *WinNtPostQuitMessage) (\r
- INT32 nExitCode\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-LRESULT\r
-(WINAPI *WinNtDefWindowProc) (\r
- HWND hWnd,\r
- UINT Msg,\r
- WPARAM wParam,\r
- LPARAM lParam\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HICON\r
-(WINAPI *WinNtLoadIcon) (\r
- HINSTANCE hInstance,\r
- LPCTSTR lpIconName\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HCURSOR\r
-(WINAPI *WinNtLoadCursor) (\r
- HINSTANCE hInstance,\r
- LPCTSTR lpCursorName\r
- );\r
-\r
-typedef\r
-WINGDIAPI\r
-HGDIOBJ\r
-(WINAPI *WinNtGetStockObject) (\r
- INT32\r
- );\r
-\r
-typedef\r
-WINGDIAPI\r
-BOOL\r
-(WINAPI *WinNtSetViewportOrgEx) (\r
- HDC,\r
- INT32,\r
- INT32,\r
- LPPOINT\r
- );\r
-\r
-typedef\r
-WINGDIAPI\r
-BOOL\r
-(WINAPI *WinNtSetWindowOrgEx) (\r
- HDC,\r
- INT32,\r
- INT32,\r
- LPPOINT\r
- );\r
-typedef\r
-WINGDIAPI\r
-BOOL\r
-(WINAPI *WinNtMoveWindow) (\r
- HWND,\r
- INT32,\r
- INT32,\r
- INT32,\r
- INT32,\r
- BOOL\r
- );\r
-\r
-typedef\r
-WINGDIAPI\r
-BOOL\r
-(WINAPI *WinNtGetWindowRect) (\r
- HWND,\r
- LPRECT\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtGetMessage) (\r
- LPMSG lpMsg,\r
- HWND hWnd,\r
- UINT wMsgFilterMin,\r
- UINT wMsgFilterMax\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtTranslateMessage) (\r
- CONST MSG *lpMsg\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtDispatchMessage) (\r
- CONST MSG *lpMsg\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-HANDLE\r
-(WINAPI *WinNtGetProcessHeap) ();\r
-\r
-typedef\r
-WINUSERAPI\r
-LPVOID\r
-(WINAPI *WinNtHeapAlloc) (\r
- HANDLE hHeap,\r
- DWORD dwFlags,\r
- SIZE_T dwBytes\r
- );\r
-\r
-typedef\r
-WINUSERAPI\r
-BOOL\r
-(WINAPI *WinNtHeapFree) (\r
- HANDLE hHeap,\r
- DWORD dwFlags,\r
- LPVOID lpMem\r
- );\r
-\r
-typedef\r
-WINBASEAPI\r
-BOOL\r
-(WINAPI *WinNtFreeLibrary) (\r
- HANDLE ModHandle\r
- );\r
-//\r
-//\r
-//\r
-EFI_FORWARD_DECLARATION (EFI_WIN_NT_THUNK_PROTOCOL);\r
-\r
-#define EFI_WIN_NT_THUNK_PROTOCOL_SIGNATURE EFI_SIGNATURE_32 ('N', 'T', 'T', 'T')\r
-\r
-typedef struct _EFI_WIN_NT_THUNK_PROTOCOL {\r
- UINT64 Signature;\r
-\r
- //\r
- // Win32 Process APIs\r
- //\r
- WinNtGetProcAddress GetProcAddress;\r
- WinNtGetTickCount GetTickCount;\r
- WinNtLoadLibraryEx LoadLibraryEx;\r
- WinNtFreeLibrary FreeLibrary;\r
-\r
- WinNtSetPriorityClass SetPriorityClass;\r
- WinNtSetThreadPriority SetThreadPriority;\r
- WinNtSleep Sleep;\r
-\r
- WinNtSuspendThread SuspendThread;\r
- WinNtGetCurrentThread GetCurrentThread;\r
- WinNtGetCurrentThreadId GetCurrentThreadId;\r
- WinNtGetCurrentProcess GetCurrentProcess;\r
- WinNtCreateThread CreateThread;\r
- WinNtTerminateThread TerminateThread;\r
- WinNtSendMessage SendMessage;\r
- WinNtExitThread ExitThread;\r
- WinNtResumeThread ResumeThread;\r
- WinNtDuplicateHandle DuplicateHandle;\r
-\r
- //\r
- // Wint32 Mutex primitive\r
- //\r
- WinNtInitializeCriticalSection InitializeCriticalSection;\r
- WinNtEnterCriticalSection EnterCriticalSection;\r
- WinNtLeaveCriticalSection LeaveCriticalSection;\r
- WinNtDeleteCriticalSection DeleteCriticalSection;\r
- WinNtTlsAlloc TlsAlloc;\r
- WinNtTlsFree TlsFree;\r
- WinNtTlsSetValue TlsSetValue;\r
- WinNtTlsGetValue TlsGetValue;\r
- WinNtCreateSemaphore CreateSemaphore;\r
- WinNtWaitForSingleObject WaitForSingleObject;\r
- WinNtReleaseSemaphore ReleaseSemaphore;\r
-\r
- //\r
- // Win32 Console APIs\r
- //\r
- WinNtCreateConsoleScreenBuffer CreateConsoleScreenBuffer;\r
- WinNtFillConsoleOutputAttribute FillConsoleOutputAttribute;\r
- WinNtFillConsoleOutputCharacter FillConsoleOutputCharacter;\r
- WinNtGetConsoleCursorInfo GetConsoleCursorInfo;\r
- WinNtGetNumberOfConsoleInputEvents GetNumberOfConsoleInputEvents;\r
- WinNtPeekConsoleInput PeekConsoleInput;\r
- WinNtScrollConsoleScreenBuffer ScrollConsoleScreenBuffer;\r
- WinNtReadConsoleInput ReadConsoleInput;\r
-\r
- WinNtSetConsoleActiveScreenBuffer SetConsoleActiveScreenBuffer;\r
- WinNtSetConsoleCursorInfo SetConsoleCursorInfo;\r
- WinNtSetConsoleCursorPosition SetConsoleCursorPosition;\r
- WinNtSetConsoleScreenBufferSize SetConsoleScreenBufferSize;\r
- WinNtSetConsoleTitleW SetConsoleTitleW;\r
- WinNtWriteConsoleInput WriteConsoleInput;\r
- WinNtWriteConsoleOutput WriteConsoleOutput;\r
-\r
- //\r
- // Win32 File APIs\r
- //\r
- WinNtCreateFile CreateFile;\r
- WinNtDeviceIoControl DeviceIoControl;\r
- WinNtCreateDirectory CreateDirectory;\r
- WinNtRemoveDirectory RemoveDirectory;\r
- WinNtGetFileAttributes GetFileAttributes;\r
- WinNtSetFileAttributes SetFileAttributes;\r
- WinNtCreateFileMapping CreateFileMapping;\r
- WinNtCloseHandle CloseHandle;\r
- WinNtDeleteFile DeleteFile;\r
- WinNtFindFirstFile FindFirstFile;\r
- WinNtFindNextFile FindNextFile;\r
- WinNtFindClose FindClose;\r
- WinNtFlushFileBuffers FlushFileBuffers;\r
- WinNtGetEnvironmentVariable GetEnvironmentVariable;\r
- WinNtGetLastError GetLastError;\r
- WinNtSetErrorMode SetErrorMode;\r
- WinNtGetStdHandle GetStdHandle;\r
- WinNtMapViewOfFileEx MapViewOfFileEx;\r
- WinNtReadFile ReadFile;\r
- WinNtSetEndOfFile SetEndOfFile;\r
- WinNtSetFilePointer SetFilePointer;\r
- WinNtWriteFile WriteFile;\r
- WinNtGetFileInformationByHandle GetFileInformationByHandle;\r
- WinNtGetDiskFreeSpace GetDiskFreeSpace;\r
- WinNtGetDiskFreeSpaceEx GetDiskFreeSpaceEx;\r
- WinNtMoveFile MoveFile;\r
- WinNtSetFileTime SetFileTime;\r
- WinNtSystemTimeToFileTime SystemTimeToFileTime;\r
-\r
- //\r
- // Win32 Time APIs\r
- //\r
- WinNtFileTimeToLocalFileTime FileTimeToLocalFileTime;\r
- WinNtFileTimeToSystemTime FileTimeToSystemTime;\r
- WinNtGetSystemTime GetSystemTime;\r
- WinNtSetSystemTime SetSystemTime;\r
- WinNtGetLocalTime GetLocalTime;\r
- WinNtSetLocalTime SetLocalTime;\r
- WinNtGetTimeZoneInformation GetTimeZoneInformation;\r
- WinNtSetTimeZoneInformation SetTimeZoneInformation;\r
- WinNttimeSetEvent timeSetEvent;\r
- WinNttimeKillEvent timeKillEvent;\r
-\r
- //\r
- // Win32 Serial APIs\r
- //\r
- WinNtClearCommError ClearCommError;\r
- WinNtEscapeCommFunction EscapeCommFunction;\r
- WinNtGetCommModemStatus GetCommModemStatus;\r
- WinNtGetCommState GetCommState;\r
- WinNtSetCommState SetCommState;\r
- WinNtPurgeComm PurgeComm;\r
- WinNtSetCommTimeouts SetCommTimeouts;\r
-\r
- WinNtExitProcess ExitProcess;\r
-\r
- WinNtSprintf SPrintf;\r
-\r
- WinNtGetDesktopWindow GetDesktopWindow;\r
- WinNtGetForegroundWindow GetForegroundWindow;\r
- WinNtCreateWindowEx CreateWindowEx;\r
- WinNtShowWindow ShowWindow;\r
- WinNtUpdateWindow UpdateWindow;\r
- WinNtDestroyWindow DestroyWindow;\r
- WinNtInvalidateRect InvalidateRect;\r
- WinNtGetWindowDC GetWindowDC;\r
- WinNtGetClientRect GetClientRect;\r
- WinNtAdjustWindowRect AdjustWindowRect;\r
- WinNtSetDIBitsToDevice SetDIBitsToDevice;\r
- WinNtBitBlt BitBlt;\r
- WinNtGetDC GetDC;\r
- WinNtReleaseDC ReleaseDC;\r
- WinNtRegisterClassEx RegisterClassEx;\r
- WinNtUnregisterClass UnregisterClass;\r
-\r
- WinNtBeginPaint BeginPaint;\r
- WinNtEndPaint EndPaint;\r
- WinNtPostQuitMessage PostQuitMessage;\r
- WinNtDefWindowProc DefWindowProc;\r
- WinNtLoadIcon LoadIcon;\r
- WinNtLoadCursor LoadCursor;\r
- WinNtGetStockObject GetStockObject;\r
- WinNtSetViewportOrgEx SetViewportOrgEx;\r
- WinNtSetWindowOrgEx SetWindowOrgEx;\r
- WinNtMoveWindow MoveWindow;\r
- WinNtGetWindowRect GetWindowRect;\r
-\r
- WinNtGetMessage GetMessage;\r
- WinNtTranslateMessage TranslateMessage;\r
- WinNtDispatchMessage DispatchMessage;\r
-\r
- WinNtGetProcessHeap GetProcessHeap;\r
- WinNtHeapAlloc HeapAlloc;\r
- WinNtHeapFree HeapFree;\r
-\r
-} EFI_WIN_NT_THUNK_PROTOCOL;\r
-\r
-#endif\r
-\r
-extern EFI_GUID gEfiWinNtThunkProtocolGuid;\r
-\r
-#endif\r