Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
The RtlEqualDeviceMemory routine compares two blocks of device memory to determine whether the specified number of bytes are identical. Diese Funktion ist sicher für die Verwendung im Gerätespeicher, da sie strenge Ausrichtungsanforderungen verwendet.
Syntax
BOOL RtlEqualDeviceMemory(
[in] const void* Source1,
[in] const void* Source2,
[in] size_t Length
);
Parameters
[in] Source1
Ein Zeiger auf einen vom Aufrufer zugewiesenen Block des zu vergleichenden Gerätespeichers.
[in] Source2
A pointer to a caller-allocated block of device memory that is compared to the block of memory to which Source1 points.
[in] Length
Gibt die Anzahl der Bytes an, die verglichen werden sollen.
Return value
RtlEqualDeviceMemory returns TRUE if Source1 and Source2 are equivalent; otherwise, it returns FALSE.
Remarks
RtlEqualDeviceMemory begins the comparison with byte zero of each block.
The RtlEqualDeviceMemory routine is designed for safe comparison of device memory regions where standard memory comparison functions might not be appropriate due to the special characteristics of device memory.
- Die Funktion verwendet strenge Ausrichtungsanforderungen, um die ordnungsgemäße Handhabung des Gerätespeichers sicherzustellen, die Nebenwirkungen oder spezielle Zugriffsanforderungen aufweisen können.
Callers of RtlEqualDeviceMemory can be running at any IRQL if both blocks of memory are resident.
Diese Funktion funktioniert auf allen Versionen von Windows, nicht nur auf dem neuesten. Sie müssen die neueste WDK verwenden, um die Funktionsdeklaration aus dem wdm.h-Header abzurufen. Außerdem benötigen Sie die Bibliothek (volatileaccessk.lib) aus dem neuesten WDK. Der resultierende Treiber wird jedoch in älteren Versionen von Windows einwandfrei ausgeführt.
Example
UCHAR DeviceBuffer1[256];
UCHAR DeviceBuffer2[256];
// Read data from device memory into buffers
ReadFromDevice(DeviceBuffer1, sizeof(DeviceBuffer1));
ReadFromDevice(DeviceBuffer2, sizeof(DeviceBuffer2));
// Compare the device memory buffers
if (RtlEqualDeviceMemory(DeviceBuffer1, DeviceBuffer2, sizeof(DeviceBuffer1))) {
DbgPrint("Device buffers are identical\n");
} else {
DbgPrint("Device buffers are different\n");
}
Requirements
| Requirement | Value |
|---|---|
| Target Platform | Desktop |
| Header | wdm.h (include Wdm.h) |
| Library | volatileaccessk.lib (Kernelmodus), volatileaccessu.lib (Benutzermodus) |
| IRQL | Beliebige Ebene (Siehe Abschnitt "Hinweise") |