通过DMA写入指定地址的整数Addr - DmaWriteIntAddr
函数简介
通过 DMA 写入指定地址的整数值。使用直接地址而不是 CE 格式。(高级版功能,普通版无法使用)
接口名称
DmaWriteIntAddr
DLL调用
int32_t OLA_CALL_TYPE DmaWriteIntAddr(int64_t instance, int64_t deviceId, int32_t pid, int64_t addr, int32_t type, int64_t value);
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。deviceId(长整型数): 设备IDpid(整型数): 进程 PIDaddr(长整型数): 直接内存地址type(整型数): 整数类型value(长整型数): 要写入的整数值
示例:
// 写入 32 位有符号整数
int32_t result = DmaWriteIntAddr(instance, deviceId, 1234, 0x400000, 0, 12345);
if (result == 1) {
printf("整数写入成功\n");
}
// 写入 16 位有符号整数
int32_t result2 = DmaWriteIntAddr(instance, deviceId, 1234, 0x400010, 1, 100);
if (result2 == 1) {
printf("16位整数写入成功\n");
}
// 写入 64 位整数
int32_t result3 = DmaWriteIntAddr(instance, deviceId, 1234, 0x400020, 3, 9999999999LL);
if (result3 == 1) {
printf("64位整数写入成功\n");
}
返回值
整型数:
- 1: 成功
- 0: 失败
参数说明
type(整数类型):
- 0: 32 位有符号
- 1: 16 位有符号
- 2: 8 位有符号
- 3: 64 位
- 4: 32 位无符号
- 5: 16 位无符号
- 6: 8 位无符号
value(值):
- 要写入的整数值
- 返回值为 64 位,会根据 type 自动截断
addr(地址):
- 直接的十六进制地址
- 例如:
0x400000
应用场景
- 修改游戏数据
- 内存修改
- 参数调整
相关接口
- DmaWriteInt - CE 格式地址写入
- DmaWriteFloatAddr - 写入浮点数
- DmaWriteDoubleAddr - 写入双精度浮点数
