From f5286ff2e8521331e58aaa8123989e14420595a3 Mon Sep 17 00:00:00 2001
From: "SND\\kernelnet_cp"
 <SND\kernelnet_cp@9b283d60-5439-405e-af05-b73fd8c4d996>
Date: Thu, 12 Aug 2010 12:35:35 +0000
Subject: [PATCH] [!] bug fixed: issue #6862 ( loadUnicodeString for x64 target
 does not work )

git-svn-id: https://pykd.svn.codeplex.com/svn@53990 9b283d60-5439-405e-af05-b73fd8c4d996
---
 pykd/dbgmem.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/pykd/dbgmem.cpp b/pykd/dbgmem.cpp
index 35a0525..5cf5856 100644
--- a/pykd/dbgmem.cpp
+++ b/pykd/dbgmem.cpp
@@ -177,11 +177,13 @@ loadUnicodeStr( ULONG64 address )
             
         if ( !loadMemory( address, &maximumLength, sizeof( maximumLength ) ) )          
             break;
-           
-        address += sizeof( maximumLength );
+            
+        address += sizeof( maximumLength );            
         
         if ( is64bitSystem() )
         {
+            address += address % 8 ? ( 8 - address % 8 ) : 0 ;  // ������������ �� 8 ����
+        
             if ( !loadMemory( address, &buffer, 8 ) )
                 break;
                 
@@ -189,6 +191,8 @@ loadUnicodeStr( ULONG64 address )
         }
         else
         {
+            address += address % 4 ? ( 4 - address % 4 ) : 0 ;  // ������������ �� 8 ����
+        
             if ( !loadMemory( address, &buffer, 4 ) )
                 break;        
                 
@@ -253,6 +257,8 @@ loadAnsiStr( ULONG64 address )
         
         if ( is64bitSystem() )
         {
+            address += address % 8 ? ( 8 - address % 8 ) : 0;  // ������������ �� 8 ����
+        
             if ( !loadMemory( address, &buffer, 8 ) )
                 break;
                 
@@ -260,6 +266,8 @@ loadAnsiStr( ULONG64 address )
         }
         else
         {
+            address += address % 4 ? ( 4 - address % 4 ) : 0;  // ������������ �� 8 ����
+        
             if ( !loadMemory( address, &buffer, 4 ) )
                 break;