OK. Good. I’ll try it that way.
Thank you!
Beverly
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Monday, June 05, 2006 11:58 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] MSI, KMDF and Vista
If you are connecting the interrupts on your own using WDM APIs you
should not create any WDFINTERRUPT objects. The creation of the
WDFINTERRUPT object tells KMDF that it should try to manage the
interrupt resource. If the WDFINTERRUPT object is not created, it
leaves the assigned interrupt resources alone and ignores them.
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Brown, Beverly
Sent: Monday, June 05, 2006 8:32 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] MSI, KMDF and Vista
Thanks Jake.
I am now wondering about whether CONNECT_FULLY_SPECIFIED actually works
for MSI as my ISR is not getting called even for the one that KMDF setup
for me. I am using the nvidia chipset which I am told has a bug, but I
tried the workaround in the debugger and it looked like it was not
needed. The required bits were already set in both the memory controller
and the root port bridge. I tried using CONNECT_MESSAGE_BASED in my
EvtPrepareHardware callback, but that causes the driver to unload after
D0Entry. I assume that KMDF is seeing an interrupt already connected
that is not marked as shareable and so it bails when it tries to
connect. I can’t confirm that though. I can’t view the IFR to see what’s
going on because the WDF public symbols that get pulled down from the MS
sysmbol server don’t seem to have enough info for the WDF extensions to
work. I have double and triple-checked that I’m using the wdfkd.dll from
the build 5384 WDK.
If I don’t supply any WDFINTERRUPT objects, will that allow me to use
CONNECT_MESSAGE_BASED or will that cause WDF to bail? Or is there some
other bug in the nvida chipset that is preventing the interrupt from
reaching the processor? I wish I could test with an Intel system, but at
this time I cannot.
Beverly
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jake Oshins
Sent: Monday, June 05, 2006 2:04 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] MSI, KMDF and Vista
It sounds like something got recently busted with KMDF/MSI/Vista. (This
is very likely, as the KMDF team had to do some fancy #ifdef work to
release with older DDKs.) I’ll follow up and make sure that it gets
fixed.
For now, just connect your interrupts using IoConnectInterruptEx.
Sorry.
–
Jake Oshins
Windows Kernel Group
The Virtual Machine Team at Microsoft is hiring. Contact
xxxxx@microsoft.com for more information.
This posting is provided “AS IS” with no warranties, and confers no
rights.
“Brown, Beverly” wrote in message news:xxxxx@ntdev…
OK, I fixed my symbol file path (there ws a typo) and now I get this for
!acpiirqarb (!arbiter 4 output remained the same). I see that my device
is assigne a8-af which seems correct. The MSI capability register has a
message data field of 0x40a8 and it generates 0x40a8-0x40af as seen on
the analyzer. So why is only one of my 8 interrupt objects being enabled
by KMDF? And when I do WdfInterruptGetInfo, the MessagSignaled field is
0 in the returned structure.
kd> !acpiirqarb
Processor (0x0):
Device Object: 0000000000000000
Current IDT Allocation:
0000000000000000 - 000000000000004f 00000000
A:0000000000000000 IRQ:0
0000000000000051 - 0000000000000051 D fffffa800248d660
(i8042prt) A:0000000000000000 IRQ:0
0000000000000052 - 0000000000000052 S B fffffa8001c67a80
(LSI_SCSI) A:0000000000000000 IRQ:0
0000000000000061 - 0000000000000061 D fffffa800248d860
(i8042prt) A:0000000000000000 IRQ:0
0000000000000062 - 0000000000000062 D fffffa8001c69a60 (atapi)
A:0000000000000000 IRQ:0
0000000000000063 - 0000000000000063 S B fffffa8002491a80
(ohci1394) A:0000000000000000 IRQ:0
0000000000000071 - 0000000000000071 D fffffa800248dc60
A:0000000000000000 IRQ:0
0000000000000072 - 0000000000000072 D fffffa8001c69d60 (atapi)
A:0000000000000000 IRQ:0
0000000000000073 - 0000000000000073 S B fffffa800246d060
(usbohci) A:0000000000000000 IRQ:0
0000000000000081 - 0000000000000081 D fffffa8001cea580
A:0000000000000000 IRQ:0
0000000000000082 - 0000000000000082 S
0000000000000082 - 0000000000000082 S B fffffa800246fa80
(pciide) A:0000000000000000 IRQ:0
0000000000000082 - 0000000000000082 S B fffffa800246e060 (nvax)
A:0000000000000000 IRQ:0
0000000000000083 - 0000000000000083 S B fffffa8002470a80
(NVENETFD) A:0000000000000000 IRQ:0
0000000000000091 - 0000000000000091 D fffffa8001cec7c0
A:0000000000000000 IRQ:0
0000000000000092 - 0000000000000092 S
0000000000000092 - 0000000000000092 S B fffffa800246f060
(pciide) A:0000000000000000 IRQ:0
0000000000000092 - 0000000000000092 S B fffffa800246da80
(usbehci) A:0000000000000000 IRQ:0
0000000000000093 - 0000000000000093 S B fffffa8001c65a80
(nvlddmkm) A:0000000000000000 IRQ:0
00000000000000a1 - 00000000000000a1 D fffffa8001844a10
A:0000000000000000 IRQ:0
00000000000000a2 - 00000000000000a3 D fffffa8002471060 (pci)
A:0000000000000000 IRQ:0
00000000000000a8 - 00000000000000af D fffffa8001c63a80
(mc_mydevice) A:0000000000000000 IRQ:0
00000000000000b1 - 00000000000000b1 S B fffffa8001855060 (ACPI)
A:0000000000000000 IRQ:0
00000000000000b2 - 00000000000000b2 D fffffa800248d460 (fdc)
A:0000000000000000 IRQ:0
00000000000000b3 - 00000000000000b3 S B fffffa8001c68060
(LSI_SCSI) A:0000000000000000 IRQ:0
00000000000000bf - ffffffffffffffff 00000000
A:0000000000000000 IRQ:0
Possible IDT Allocation:
< none >
Interrupt Controller (Inputs: 0x0-0x17 Dev: 0000000000000000):
(00)Cur:IDT-81 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(01)Cur:IDT-51 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(02)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(03)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(04)Cur:IDT-a1 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(05)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(06)Cur:IDT-b2 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(07)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(08)Cur:IDT-71 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(09)Cur:IDT-b1 Ref-1 lev hi Pos:IDT-00 Ref-0 edg hi
(0a)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(0b)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(0c)Cur:IDT-61 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(0d)Cur:IDT-91 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(0e)Cur:IDT-72 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(0f)Cur:IDT-62 Ref-1 edg hi Pos:IDT-00 Ref-0 edg hi
(10)Cur:IDT-63 Ref-1 lev hi Pos:IDT-00 Ref-0 edg hi
(11)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(12)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(13)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(14)Cur:IDT-83 Ref-1 lev hi Pos:IDT-00 Ref-0 edg hi
(15)Cur:IDT-73 Ref-1 lev hi Pos:IDT-00 Ref-0 edg hi
(16)Cur:IDT-92 Ref-2 lev hi Pos:IDT-00 Ref-0 edg hi
(17)Cur:IDT-82 Ref-2 lev hi Pos:IDT-00 Ref-0 edg hi
Interrupt Controller (Inputs: 0x18-0x1b Dev: 0000000000000000):
(00)Cur:IDT-93 Ref-1 lev low Pos:IDT-00 Ref-0 edg hi
(01)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(02)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(03)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
Interrupt Controller (Inputs: 0x1c-0x1f Dev: 0000000000000000):
(00)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(01)Cur:IDT-00 Ref-0 edg hi Pos:IDT-00 Ref-0 edg hi
(02)Cur:IDT-52 Ref-1 lev low Pos:IDT-00 Ref-0 edg hi
(03)Cur:IDT-b3 Ref-1 lev low Pos:IDT-00 Ref-0 edg hi
Link Node: LNKA
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LNKB
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LNKC
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0x0/0 - VenDev 1014:032d SSID 032e1014 Dev - NsObj:
fffffa80022144c8 PrtObj: fffffa8002214448 DevObj:
fffffa8001c63a80
Link Node: LNKD
Current IRQ: 0x10 - 1 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0x5/0 - VenDev 104c:8023 SSID 1500103c Dev - NsObj:
0000000000000000 PrtObj: fffffa8002213fb0 DevObj:
fffffa8002491a80
Link Node: LSMB
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LSB0
Current IRQ: 0x15 - 1 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0x2/0 - VenDev 10de:005a SSID 1500103c Dev - NsObj:
fffffa800220e8a0 PrtObj: fffffa80022036e8 DevObj:
fffffa800246d060
Link Node: LSB2
Current IRQ: 0x16 - 1 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0x2/1 - VenDev 10de:005b SSID 1500103c Dev - NsObj:
fffffa800220ec10 PrtObj: fffffa80022036e8 DevObj:
fffffa800246da80
Link Node: LMAC
Current IRQ: 0x14 - 1 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0xa/0 - VenDev 10de:0057 SSID 1500103c Dev - NsObj:
fffffa800220ef20 PrtObj: fffffa80022036e8 DevObj:
fffffa8002470a80
Link Node: LACI
Current IRQ: 0x17 - 1 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0x4/0 - VenDev 10de:0059 SSID 1500103c Dev - NsObj:
0000000000000000 PrtObj: fffffa80022036e8 DevObj:
fffffa800246e060
Link Node: LMCI
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LIDE
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LSA0
Current IRQ: 0x16 - 1 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0x7/0 - VenDev 10de:0054 SSID 1500103c Dev - NsObj:
fffffa8002214bf0 PrtObj: fffffa80022036e8 DevObj:
fffffa800246f060
Link Node: LSA1
Current IRQ: 0x17 - 1 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Attached Devices:
PCI Slot/Func 0x8/0 - VenDev 10de:0055 SSID 1500103c Dev - NsObj:
fffffa8002214db8 PrtObj: fffffa80022036e8 DevObj:
fffffa800246fa80
Link Node: LNKW
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LNKX
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LNKY
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Link Node: LNKZ
Current IRQ: 0x0 - 0 reference(s)
Possible IRQ: 0x0 - 0 reference(s)
Preferred IRQ: 0xffffffff - ResourceOverride (IO_List) 0000000000000000
Beverly
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Brown, Beverly
Sent: Wednesday, May 31, 2006 7:49 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] MSI, KMDF and Vista
The output isn’t very useful. This is what I get :
kd> !arbiter 4
DEVNODE fffffa8001841550 (HTREE\ROOT\0)
Error reading ArbiterInstance fffff800021b00e0
DEVNODE fffffa80021d1de0 (ACPI_HAL\PNP0C08\0) Error reading
ArbiterInstance fffff9800025c3a0
kd> !acpiirqarb
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for acpi.sys - failed to find address of arbiter
Beverly
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jake Oshins
Sent: Wednesday, May 31, 2006 7:08 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] MSI, KMDF and Vista
Yes, I have, but then I wrote the code.
In the debugger, type:
!arbiter 4
!acpiirqarb
Send us the results.
–
Jake Oshins
Windows Kernel Group
The Virtual Machine Team at Microsoft is hiring. Contact
xxxxx@microsoft.com for more information.
This posting is provided “AS IS” with no warranties, and confers no
rights.
“Brown, Beverly” wrote in message news:xxxxx@ntdev…
Has anyone gotten MSI interrupts to work using KMDF on Vista? Are there
any known issues?
After putting the appropriate registry entries in my INF file to support
MIS, my device capability registers report that I am being assigned all
8 messages that the device requested. I am creating 8 interrupt objects
in my EvtDeviceAdd but I’m only getting one call to EvtInterruptEnable.
When an interrupt is supposed to occur, I am able to see on an analyzer
that the device is generating the message with the data and address that
are in the capability registers, but my ISR is not getting called.
Does anything special need to be done for KMDF DDIs to use MSI vs INTx?
Beverly
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer