驱动程序开发中,还会用到比较两块内存是否一致。该函数是RtlEqualMemory,其声明是:
ULONG RtlEqualMemory(
CONST VOID *source1,
CONST VOID *source2,
SIZE_T Length
);
// source1:比较的第一个内存地址
// source2:比较的第二个内存地址
// Length: 比较的长度,单位为字节
RtlEqualMemory需要判断返回值和Length是否相等,来判断两块内存是否完全一致。同时,DDK还提供了一个宏,直接判断是否一致。同时,DDK还提供了一个宏,直接判断是否一致。
#define RtlEqualMemory(Destination, Source, Length) (!memcmp((Destination, Source, Length)))
RtlEqualMemory在两段内存一致的情况下返回非零值,在不一致的情况下返回零。