#include "precomp.h"
-WINE_DEFAULT_DEBUG_CHANNEL(msports);
+#include <wchar.h>
+#define NTOS_MODE_USER
+#include <ndk/cmtypes.h>
typedef enum _PORT_TYPE
{
TRACE("Port: Start: %I64x Length: %lu\n",
lpResDes->u.Port.Start.QuadPart,
lpResDes->u.Port.Length);
- if (lpResDes->u.Port.Start.HighPart == 0)
+ if ((lpResDes->u.Port.Start.HighPart == 0) && (dwBaseAddress == 0))
dwBaseAddress = (DWORD)lpResDes->u.Port.Start.LowPart;
break;
TRACE("Port: Start: %I64x Length: %lu\n",
lpResDes->u.Port.Start.QuadPart,
lpResDes->u.Port.Length);
- if (lpResDes->u.Port.Start.HighPart == 0)
+ if ((lpResDes->u.Port.Start.HighPart == 0) && (dwBaseAddress == 0))
dwBaseAddress = (DWORD)lpResDes->u.Port.Start.LowPart;
break;
WCHAR szPortName[8];
DWORD dwPortNumber = 0;
DWORD dwSize;
+ DWORD dwValue;
LONG lError;
HKEY hKey;
/* ... try to determine the port number from its resources */
if (dwPortNumber == 0)
+ {
dwPortNumber = GetParallelPortNumber(DeviceInfoSet,
DeviceInfoData);
+ TRACE("GetParallelPortNumber() returned port number: %lu\n", dwPortNumber);
+ }
if (dwPortNumber == 0)
{
/* FIXME */
+ FIXME("Got no valid port numer!\n");
}
if (dwPortNumber != 0)
(LPBYTE)szPortName,
(wcslen(szPortName) + 1) * sizeof(WCHAR));
+ /*
+ * FIXME / HACK:
+ * This is to get the w2k3 parport.sys to work until we have our own.
+ * This setting makes the driver accept resources with an IRQ instead
+ * of only resources without an IRQ.
+ *
+ * We should probably also fix IO manager to actually give devices a
+ * chance to register without an IRQ. CORE-9645
+ */
+ dwValue = 0;
+ RegSetValueExW(hKey,
+ L"FilterResourceMethod",
+ 0,
+ REG_DWORD,
+ (LPBYTE)&dwValue,
+ sizeof(dwValue));
+
RegCloseKey(hKey);
}
}
szPortName);
}
+ TRACE("Friendly name: %S\n", szFriendlyName);
+
/* Set the friendly name for the device */
SetupDiSetDeviceRegistryPropertyW(DeviceInfoSet,
DeviceInfoData,