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