winntthunk.h
来自「EFI BIOS是Intel提出的下一代的BIOS标准。这里上传的Edk源代码是」· C头文件 代码 · 共 1,277 行 · 第 1/2 页
H
1,277 行
/*++
Copyright (c) 2004, 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 \
}
//
// The following APIs require EfiWinNT.h. In some environmnets the GUID
// definitions are needed but the EfiWinNT.h is not included.
// EfiWinNT.h is needed to support WINDOWS API requirements.
//
#ifdef _EFI_WIN_NT_H_
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,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?