未文档化资料
MSDN
1
2
|
NT_ASSERT(NT_SUCCESS(status));
ASSERT(NT_SUCCESS(status));
|
1
2
3
|
#pragma optimize( "", off )
/* unoptimized code section */
#pragma optimize( "", on )
|
内核函数
| 函数 |
功能 |
| NtQuerySystemInformation |
查询内核重要信息 |
字符串操作 (CRT)
原始字符char *
wcs,_wcs(宽字符wchar_t *)
_mbs(多字节字符unsigned char *)
| 功能 |
函数 |
| 复制字符串 |
strcpy、wcscpy、_mbscpy |
| 拼接字符串 |
strcat、wcscat、_mbscat |
| 拼接字符串(多一个长度参数) |
strncat、wcsncat、_mbsncat |
| 字符串长度 |
strlen、wcslen、_mbslen |
| 字符搜索 |
strchr、wcschr、_mbschr |
| 字符串搜索 |
strstr、wcsstr、_mbsstr |
| 转换大写 |
_strupr、_wcsupr、_mbsupr |
| 转换小写 |
_strlwr、_wcslwr、_mbslwr |
| 字符串比较 |
函数 |
| 区分大小写 |
strcmp、wcscmp、_mbscmp |
| 不区分大小写 |
_stricmp、_wcsicmp、_mbsicmp |
| 指定数量的字符串比较 |
函数 |
| 区分大小写 |
strncmp、wcsncmp、_mbsncmp |
| 不区分大小写 |
_strnicmp、_wcsnicmp、_mbsnicmp |
Byte - 8 bits 字节
Word - 16 bits 字
DoubleWord - 32 bits 双字
QuadWord - 64 bits 四字
OctaWord - 128 bits 八倍长字
| 标量类型 |
C 数据类型 |
大小(字节) |
建议对齐方式 |
INT8 |
char |
1 |
Byte |
UINT8 |
unsigned char |
1 |
Byte |
INT16 |
short |
2 |
Word |
UINT16 |
unsigned short |
2 |
Word |
INT32 |
int, long |
4 |
Dword |
UINT32 |
unsigned int, unsigned long |
4 |
Dword |
INT64 |
__int64 |
8 |
Qword |
UINT64 |
unsigned __int64 |
8 |
Qword |
FP32 (single precision) |
float |
4 |
Dword |
FP64 (double precision) |
double |
8 |
Qword |
POINTER |
* |
8 |
Qword |
__m64 |
struct __m64 |
8 |
Qword |
__m128 |
struct __m128 |
16 |
Oword |
数据类型__int8、__int16和__int32是具有相同大小的ANSI数据类型的同义词,对于编写在多个平台上行为相同的可移植代码非常有用。
__int8=char
__int16=short
__int32=int
__int64=long long
为了与早期版本兼容,除非指定了"禁用语言扩展 /Za"编译器选项。
_int8=__int8
_int16=__int16
_int32=__int32
_int64=__int64
[[Windows Kernel Programming 笔记#3 3 内核 API]]
| 前缀 |
内核组件 |
示例例程 |
| Cm |
配置管理器 |
CmRegisterCallbackEx |
| Ex |
执行函数 |
ExAllocatePool |
| Hal |
硬件抽象层 |
HalGetAdapter |
| Io |
I/O 管理器 |
IoAllocateIrp |
| Ke |
内核函数 |
KeSetEvent |
| Mm |
内存管理器 |
MmUnlockPages |
| Ob |
对象管理器 |
ObReferenceObject |
| Po |
电源管理 |
PoSetPowerState |
| Tm |
事务管理器 |
TmCommitTransaction |
| Nt and Zw |
Native系统服务 |
NtCreateFile and ZwCreateFile |