5个版本

0.1.5 2020年12月14日
0.1.4 2020年11月20日
0.1.3 2020年10月8日
0.1.1 2020年9月5日
0.0.0 2020年9月1日

#16#memflow

自定义许可协议

725KB
13K SLoC

memflow-win32-ffi

Crates.io build and test codecov MIT licensed Discord

memflow win32 FFI crate库为C/C++提供了一个访问memflow-win32 API的接口。除了动态库外,还生成一个单独的memflow_win32.h文件,可用于与memflow交互。

此FFI库旨在与memflow-ffi库结合使用。

初始化memflow-ffi和memflow-win32-ffi的简单示例

#include "memflow_win32.h"
#include <stdio.h>

int main(int argc, char *argv[]) {
	log_init(1);

	ConnectorInventory *inv = inventory_try_new();
	printf("inv: %p\n", inv);

	const char *conn_name = argc > 1? argv[1]: "kvm";
	const char *conn_arg = argc > 2? argv[2]: "";

	CloneablePhysicalMemoryObj *conn =
        inventory_create_connector(inv, conn_name, conn_arg);
	printf("conn: %p\n", conn);

	if (conn) {
		Kernel *kernel = kernel_build(conn);
		printf("Kernel: %p\n", kernel);
		Win32Version ver = kernel_winver(kernel);
		printf("major: %d\n", ver.nt_major_version);
		printf("minor: %d\n", ver.nt_minor_version);
		printf("build: %d\n", ver.nt_build_number);

		kernel_free(kernel);
	}

	inventory_free(inv);

	return 0;
}

更多示例可以在examples文件夹中以及memflow-ffi crate中找到。

依赖项

~8.5MB
~154K SLoC