Interrupt vector number more than 255 ?

Hi,

It looks like I have a very stupid question:

While writing an IRP_MN_START_DEVICE routine I faced with the fact that
system allocated to me very strange interrupt vector. In raw resources
it says that the vector is 11 - I assume this is an IRQ number, but in
translated resources the vector number is 385 :open_mouth:

Documentation states that the vector number in the translated resources
is ā€œThe global system vector assigned to the deviceā€. So how can it
happen that in x86 processor the interrupt vector is more than 255 ? If
this is some internal logical vector how can I get the real vector ?
Just to clarify - my device is an internal processor extension that does
not use interrupt controller but just injects interrupts.

Many thanks in advance.

ā€“

Dmitry Kaptsenel, Intel Software Solutions Group

Youā€™re right. This is an internal, logical value. There is no
architectural way to correlate it with the IDT entry. The HAL that youā€™re
using happens to put the IDT entry of that processor set in the lower eight
bits of that value. But I wouldnā€™t write production code that depends on
that bit of trivia.

ā€“
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.

ā€œKaptsenel, Dmitryā€ wrote in message
news:xxxxx@ntdevā€¦
Hi,
It looks like I have a very stupid question:
While writing an IRP_MN_START_DEVICE routine I faced with the fact that
system allocated to me very strange interrupt vector. In raw resources it
says that the vector is 11 - I assume this is an IRQ number, but in
translated resources the vector number is 385 :open_mouth:
Documentation states that the vector number in the translated resources is
ā€œThe global system vector assigned to the deviceā€. So how can it happen that
in x86 processor the interrupt vector is more than 255 ? If this is some
internal logical vector how can I get the real vector ? Just to clarify - my
device is an internal processor extension that does not use interrupt
controller but just injects interrupts.

Many thanks in advance.
ā€“
Dmitry Kaptsenel, Intel Software Solutions Group

Thank you. So I will have to extract this somehow from the interrupt
controller.

ā€“
Dmitry Kaptsenel, Intel Software Solutions Group

What is it that youā€™re really trying to accomplish? Perhaps I can help.

ā€“
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.

ā€œKaptsenel, Dmitryā€ wrote in message
news:xxxxx@ntdevā€¦
Thank you. So I will have to extract this somehow from the interrupt
controller.

ā€“
Dmitry Kaptsenel, Intel Software Solutions Group

I tried to get real IDT vector number from the translated interrupt
resource. But now I decided to do it another way - get IRQ line number
from the raw resources and get IRQ->InterruptVector translation from the
Interrupt Controller (PIC or LocalAPIC). Thanks.

ā€“
Dmitry Kaptsenel, Intel Software Solutions Group

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jake Oshins
Sent: Tuesday, January 24, 2006 8:34 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Interrupt vector number more than 255 ?

What is it that youā€™re really trying to accomplish? Perhaps I can help.

ā€“
Jake Oshins
Windows Kernel Group

The Virtual Machine Team at Microsoft is hiring. Contact
xxxxx@microsoft.com for more information.

I understood that. Iā€™m just dubious that that information allows you to do
something that you couldnā€™t have done more easily some other way. If you
tell me what exactly youā€™re trying to accomplish, then I might be able to
suggest a simpler and more robust alternative.

ā€“
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.

ā€œKaptsenel, Dmitryā€ wrote in message
news:xxxxx@ntdevā€¦
I tried to get real IDT vector number from the translated interrupt
resource. But now I decided to do it another way - get IRQ line number
from the raw resources and get IRQ->InterruptVector translation from the
Interrupt Controller (PIC or LocalAPIC). Thanks.

ā€“
Dmitry Kaptsenel, Intel Software Solutions Group

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jake Oshins
Sent: Tuesday, January 24, 2006 8:34 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Interrupt vector number more than 255 ?

What is it that youā€™re really trying to accomplish? Perhaps I can help.

ā€“
Jake Oshins
Windows Kernel Group

The Virtual Machine Team at Microsoft is hiring. Contact
xxxxx@microsoft.com for more information.