All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wayne Gong <wayne.gong@oracle.com>
To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	James Harper <james.harper@bendigoit.com.au>
Subject: WinPv driver 64bit patch
Date: Tue, 08 Jul 2008 13:10:16 +0800	[thread overview]
Message-ID: <4872F6B8.8050908@oracle.com> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 118 bytes --]

Hi James,

This patch can help WinPv driver work fine on Windows 2003 x64 version.
Please review.

Best regards
Wayne

[-- Attachment #1.2: Type: text/html, Size: 325 bytes --]

[-- Attachment #2: 64bit.patch --]
[-- Type: text/plain, Size: 2103 bytes --]

# HG changeset patch
# User Wayne Gong <wayne.gong@oracle.com>
# Date 1215493632 -28800
# Node ID dbaf8f156f3f4cd6f6acc5a10cdf1d282809d1ff
# Parent  bfc6e1f99b4fcbd4a5d20b1392d28be66fd310fc
Let winpv work for win2k3_x64.

diff -r bfc6e1f99b4f -r dbaf8f156f3f xenhide/xenhide.c
--- a/xenhide/xenhide.c	Tue Jul 08 13:04:41 2008 +0800
+++ b/xenhide/xenhide.c	Tue Jul 08 13:07:12 2008 +0800
@@ -171,12 +171,12 @@
 XenHide_IdSuffixMatches(PDEVICE_OBJECT pdo, PWCHAR matching_id)
 {
   NTSTATUS status;
-  ULONG remaining;
-  ULONG string_length;
+  ULONG cmpLen = 0;
   WCHAR ids[512];
   PWCHAR ptr;
   ULONG ids_length;
   int i;
+  size_t j = 0;
   
   for (i = 0; i < 2; i++)
   {
@@ -190,20 +190,29 @@
       //KdPrint((__DRIVER_NAME "     i = %d, status = %x, ids_length = %d\n", i, status, ids_length));
       continue;
     }
-    
-    remaining = ids_length / 2;
-    for (ptr = ids; *ptr != 0; ptr += string_length + 1)
+    ptr = ids;
+    for (j = 0; j < 512 - 3; j++)
     {
-      RtlStringCchLengthW(ptr, remaining, (size_t *)&string_length);
-      remaining -= string_length - 1;
-      if (string_length >= wcslen(matching_id))
+      if (ids[j] == L'V' && ids[j+1] == L'E' && ids[j+2] == L'N')
+      {  
+        ptr = ids + j;
+        cmpLen = 17; // "VEN_10EC&DEV_8139"
+        break;
+      }
+      if (ids[j] == L'P' && ids[j+1] == L'N' && ids[j+2] == L'P')
       {
-        ptr += string_length - wcslen(matching_id);
-        string_length -= (ULONG)wcslen(matching_id);
+        ptr = ids + j;
+        cmpLen = 7; // "PNP0A03"
+        break;
       }
-      //KdPrint((__DRIVER_NAME "     Comparing '%S' and '%S'\n", ptr, matching_id));
-      if (wcscmp(ptr, matching_id) == 0)
-       return TRUE;
+    }
+    if (j == 512 - 3)
+      break;
+    //KdPrint((__DRIVER_NAME "     Comparing '%S' and '%S'\n", ptr, matching_id));
+    if (wcsncmp(ptr, matching_id, cmpLen) == 0)
+    {
+      //KdPrint((__DRIVER_NAME "     Matched\n"));
+      return TRUE;
     }
   }
   //KdPrint((__DRIVER_NAME "     No match\n"));  

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

             reply	other threads:[~2008-07-08  5:10 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-08  5:10 Wayne Gong [this message]
2008-07-08  5:13 ` WinPv driver 64bit patch James Harper
2008-07-08  5:22   ` Wayne Gong
2008-07-09  0:44 ` James Harper
2008-07-09  1:14   ` James Harper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4872F6B8.8050908@oracle.com \
    --to=wayne.gong@oracle.com \
    --cc=james.harper@bendigoit.com.au \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.