VB 能做驱动级内存读写吗

来源:百度知道 编辑:UC知道 时间:2024/05/21 21:48:06
VB 能做驱动级的内存读写吗
比如卡巴斯基这样的?

不知道相关 API 算不算?
声明如下(在标准模块中用 Public;在类模块或窗体中用 Private):
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (Destination As Any, ByVal Length As Long)
Public Declare Function IsBadReadPtr Lib "kernel32" (lp As Any, ByVal ucb As Long) As Long
Public Declare Function IsBadWritePtr Lib "kernel32" (lp As Any, ByVal ucb As Long) As Long

其中,声明为 Any 的参数有两种指定方法:
1.直接指定变量(如 ZeroMemory myObjPtr,4 或 ZeroMemory ByRef myObjPtr,4)[在 32 位系统里,所有的指针都占 4 个字节(4 * 8 = 32)]
2.指定变量的内存地址(如 ZeroMemory ByVal CLng(100) 或 ZeroMemory ByVal 100&)
首先,您可以使用 CopyMemory 来复制数组或变量(前提是为复制目标准备了足够的缓冲区),例如:
Dim X() As Long, Y() As Long
ReDim X(10), Y(10)
'在此处为 X() 赋值
CopyMemory Y(0), X(0), (UBound(X) - LBound(X) + 1) * Len(X(0))
这样,你就可以把数组 X 的内容