Hi all,
I have a driver (PCIe) that fails to work on a particular brand of PC but
works on others. IoConnectInterrupt fails with a STATUS_INVALID_PARAMETER on
the failing box. The interrupt parameters (vector, irql. triggermode) that
are passed in both the failing and non-failing cases are the same. I can’t
source debug the IoConnectInterrupt so I’m at a loss to determine the
parameter that IoConnectInterrupt doesn’t like. Does anyone have any
suggestions about how I can proceed?
Thanks,
Howard
A few of the reasons this particular error code is returned
ServiceRoutine is NULL
ProcessorEnableMask == 0
SynchronizeIrql < Irql
If ProcessorEnableMask does not specify any active processors
And then there quite a few reasons at the HAL layer based on hw setup
that can return this value. Have you tried stepping into the code to
see where the failure is originating from?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 8:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Parameters to IoConnectInterrupt
Hi all,
I have a driver (PCIe) that fails to work on a particular brand of PC
but
works on others. IoConnectInterrupt fails with a
STATUS_INVALID_PARAMETER on
the failing box. The interrupt parameters (vector, irql. triggermode)
that
are passed in both the failing and non-failing cases are the same. I
can’t
source debug the IoConnectInterrupt so I’m at a loss to determine the
parameter that IoConnectInterrupt doesn’t like. Does anyone have any
suggestions about how I can proceed?
Thanks,
Howard
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
A chronic platform specific bug is to set ShareVector to false. For pci
devices this must always be true.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, February 07, 2007 12:20 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Parameters to IoConnectInterrupt
A few of the reasons this particular error code is returned
ServiceRoutine is NULL
ProcessorEnableMask == 0
SynchronizeIrql < Irql
If ProcessorEnableMask does not specify any active processors
And then there quite a few reasons at the HAL layer based on hw setup
that can return this value. Have you tried stepping into the code to
see where the failure is originating from?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 8:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Parameters to IoConnectInterrupt
Hi all,
I have a driver (PCIe) that fails to work on a particular brand of PC
but
works on others. IoConnectInterrupt fails with a
STATUS_INVALID_PARAMETER on
the failing box. The interrupt parameters (vector, irql. triggermode)
that
are passed in both the failing and non-failing cases are the same. I
can’t
source debug the IoConnectInterrupt so I’m at a loss to determine the
parameter that IoConnectInterrupt doesn’t like. Does anyone have any
suggestions about how I can proceed?
Thanks,
Howard
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
Doran,
I don’t believe that I have any problems with the input parameters.
vector = 0x183
IRQL = 7
Affinity = 3
I’m at PASSIVE_LEVEL when the call is made.
Could you please elaborate on some of the issues that could occur at the HAL
level due to HW setup?
I’m not a very good ASM programmer so I haven’t attempted to dive into the
IoConnectInterrupt call.
Thanks,
Howard
“Doron Holan” wrote in message
news:xxxxx@ntdev…
A few of the reasons this particular error code is returned
ServiceRoutine is NULL
ProcessorEnableMask == 0
SynchronizeIrql < Irql
If ProcessorEnableMask does not specify any active processors
And then there quite a few reasons at the HAL layer based on hw setup
that can return this value. Have you tried stepping into the code to
see where the failure is originating from?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 8:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Parameters to IoConnectInterrupt
Hi all,
I have a driver (PCIe) that fails to work on a particular brand of PC
but
works on others. IoConnectInterrupt fails with a
STATUS_INVALID_PARAMETER on
the failing box. The interrupt parameters (vector, irql. triggermode)
that
are passed in both the failing and non-failing cases are the same. I
can’t
source debug the IoConnectInterrupt so I’m at a loss to determine the
parameter that IoConnectInterrupt doesn’t like. Does anyone have any
suggestions about how I can proceed?
Thanks,
Howard
—
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
Mark,
I’m setting ShareVector = TRUE.
Thanks,
Howard
“Roddy, Mark” wrote in message news:xxxxx@ntdev…
A chronic platform specific bug is to set ShareVector to false. For pci
devices this must always be true.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, February 07, 2007 12:20 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Parameters to IoConnectInterrupt
A few of the reasons this particular error code is returned
ServiceRoutine is NULL
ProcessorEnableMask == 0
SynchronizeIrql < Irql
If ProcessorEnableMask does not specify any active processors
And then there quite a few reasons at the HAL layer based on hw setup
that can return this value. Have you tried stepping into the code to
see where the failure is originating from?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 8:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Parameters to IoConnectInterrupt
Hi all,
I have a driver (PCIe) that fails to work on a particular brand of PC
but
works on others. IoConnectInterrupt fails with a
STATUS_INVALID_PARAMETER on
the failing box. The interrupt parameters (vector, irql. triggermode)
that
are passed in both the failing and non-failing cases are the same. I
can’t
source debug the IoConnectInterrupt so I’m at a loss to determine the
parameter that IoConnectInterrupt doesn’t like. Does anyone have any
suggestions about how I can proceed?
Thanks,
Howard
—
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
The HAL issues would require actively debugging the ASM. One quick
trick is to step through each instruction until you hit a call
instruction. You would then inspect the function/address being called,
step over the call and then look at eax to see if it returned an error.
This can get you pretty far w/out knowing a lot of ASM
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 1:22 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Parameters to IoConnectInterrupt
Doran,
I don’t believe that I have any problems with the input parameters.
vector = 0x183
IRQL = 7
Affinity = 3
I’m at PASSIVE_LEVEL when the call is made.
Could you please elaborate on some of the issues that could occur at the
HAL
level due to HW setup?
I’m not a very good ASM programmer so I haven’t attempted to dive into
the
IoConnectInterrupt call.
Thanks,
Howard
“Doron Holan” wrote in message
news:xxxxx@ntdev…
A few of the reasons this particular error code is returned
ServiceRoutine is NULL
ProcessorEnableMask == 0
SynchronizeIrql < Irql
If ProcessorEnableMask does not specify any active processors
And then there quite a few reasons at the HAL layer based on hw setup
that can return this value. Have you tried stepping into the code to
see where the failure is originating from?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 8:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Parameters to IoConnectInterrupt
Hi all,
I have a driver (PCIe) that fails to work on a particular brand of PC
but
works on others. IoConnectInterrupt fails with a
STATUS_INVALID_PARAMETER on
the failing box. The interrupt parameters (vector, irql. triggermode)
that
are passed in both the failing and non-failing cases are the same. I
can’t
source debug the IoConnectInterrupt so I’m at a loss to determine the
parameter that IoConnectInterrupt doesn’t like. Does anyone have any
suggestions about how I can proceed?
Thanks,
Howard
—
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
That, and the knowledge that STATUS_INVALID_PARAMETER is 0xC000000D, so you know what you’re looking for:)
Thanks Doron,
Looks like I’m going to have to learn something about ASM.
Howard
“Doron Holan” wrote in message
news:xxxxx@ntdev…
The HAL issues would require actively debugging the ASM. One quick
trick is to step through each instruction until you hit a call
instruction. You would then inspect the function/address being called,
step over the call and then look at eax to see if it returned an error.
This can get you pretty far w/out knowing a lot of ASM
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 1:22 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Parameters to IoConnectInterrupt
Doran,
I don’t believe that I have any problems with the input parameters.
vector = 0x183
IRQL = 7
Affinity = 3
I’m at PASSIVE_LEVEL when the call is made.
Could you please elaborate on some of the issues that could occur at the
HAL
level due to HW setup?
I’m not a very good ASM programmer so I haven’t attempted to dive into
the
IoConnectInterrupt call.
Thanks,
Howard
“Doron Holan” wrote in message
news:xxxxx@ntdev…
A few of the reasons this particular error code is returned
ServiceRoutine is NULL
ProcessorEnableMask == 0
SynchronizeIrql < Irql
If ProcessorEnableMask does not specify any active processors
And then there quite a few reasons at the HAL layer based on hw setup
that can return this value. Have you tried stepping into the code to
see where the failure is originating from?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Howard Keller
Sent: Wednesday, February 07, 2007 8:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Parameters to IoConnectInterrupt
Hi all,
I have a driver (PCIe) that fails to work on a particular brand of PC
but
works on others. IoConnectInterrupt fails with a
STATUS_INVALID_PARAMETER on
the failing box. The interrupt parameters (vector, irql. triggermode)
that
are passed in both the failing and non-failing cases are the same. I
can’t
source debug the IoConnectInterrupt so I’m at a loss to determine the
parameter that IoConnectInterrupt doesn’t like. Does anyone have any
suggestions about how I can proceed?
Thanks,
Howard
—
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
You don’t really say it in your message, but what you have said sets off
alarm bells in my head. How are you getting these parameters to pass into
IoConnectInterrupt?
The only valid answer is that those same paramters got passed to you in
IRP_MN_START_DEVICE’s TranslatedResources parameter. And I wouldn’t expect
those to be the same across two machines.
Perhaps if you can post *all* of the parameters you’re passing, we can take
a better guess.
“Howard Keller” wrote in message
news:xxxxx@ntdev…
> Hi all,
>
> I have a driver (PCIe) that fails to work on a particular brand of PC but
> works on others. IoConnectInterrupt fails with a STATUS_INVALID_PARAMETER
> on the failing box. The interrupt parameters (vector, irql. triggermode)
> that are passed in both the failing and non-failing cases are the same. I
> can’t source debug the IoConnectInterrupt so I’m at a loss to determine
> the parameter that IoConnectInterrupt doesn’t like. Does anyone have any
> suggestions about how I can proceed?
>
> Thanks,
>
> Howard
>
>
Hi Jake,
The resource were obtained from TranslatedResources and they are:
s3_1000.sys DEBUG: &deviceExtension->InterruptObject = 0x866f5190
s3_1000.sys DEBUG: (PKSERVICE_ROUTINE)BDMA_Isr = 0xf787ea10
s3_1000.sys DEBUG: (PVOID)DeviceObject = 0x866f5020
s3_1000.sys DEBUG: deviceExtension->Vector = 0x183
s3_1000.sys DEBUG: deviceExtension->IRQL = 0x7
s3_1000.sys DEBUG: deviceExtension->TriggerMode = 0x1
s3_1000.sys DEBUG: deviceExtension->Affinity = 0x3
The only thing identical in both machines was vector, IRQL, Ttriggermode and
affinity.
Thanks,
Howard
“Jake Oshins” wrote in message
news:xxxxx@ntdev…
> You don’t really say it in your message, but what you have said sets off
> alarm bells in my head. How are you getting these parameters to pass into
> IoConnectInterrupt?
>
> The only valid answer is that those same paramters got passed to you in
> IRP_MN_START_DEVICE’s TranslatedResources parameter. And I wouldn’t
> expect those to be the same across two machines.
>
> Perhaps if you can post all of the parameters you’re passing, we can
> take a better guess.
>
> - Jake Oshins
>
>
> “Howard Keller” wrote in message
> news:xxxxx@ntdev…
>> Hi all,
>>
>> I have a driver (PCIe) that fails to work on a particular brand of PC but
>> works on others. IoConnectInterrupt fails with a STATUS_INVALID_PARAMETER
>> on the failing box. The interrupt parameters (vector, irql. triggermode)
>> that are passed in both the failing and non-failing cases are the same. I
>> can’t source debug the IoConnectInterrupt so I’m at a loss to determine
>> the parameter that IoConnectInterrupt doesn’t like. Does anyone have any
>> suggestions about how I can proceed?
>>
>> Thanks,
>>
>> Howard
>>
>>
>
>
>
Looks plausible. I don’t know why its failing.
“Howard Keller” wrote in message
news:xxxxx@ntdev…
> Hi Jake,
>
> The resource were obtained from TranslatedResources and they are:
>
> s3_1000.sys DEBUG: &deviceExtension->InterruptObject = 0x866f5190
> s3_1000.sys DEBUG: (PKSERVICE_ROUTINE)BDMA_Isr = 0xf787ea10
> s3_1000.sys DEBUG: (PVOID)DeviceObject = 0x866f5020
> s3_1000.sys DEBUG: deviceExtension->Vector = 0x183
> s3_1000.sys DEBUG: deviceExtension->IRQL = 0x7
> s3_1000.sys DEBUG: deviceExtension->TriggerMode = 0x1
> s3_1000.sys DEBUG: deviceExtension->Affinity = 0x3
>
> The only thing identical in both machines was vector, IRQL, Ttriggermode
> and affinity.
>
> Thanks,
>
> Howard
> “Jake Oshins” wrote in message
> news:xxxxx@ntdev…
>> You don’t really say it in your message, but what you have said sets off
>> alarm bells in my head. How are you getting these parameters to pass
>> into IoConnectInterrupt?
>>
>> The only valid answer is that those same paramters got passed to you in
>> IRP_MN_START_DEVICE’s TranslatedResources parameter. And I wouldn’t
>> expect those to be the same across two machines.
>>
>> Perhaps if you can post all of the parameters you’re passing, we can
>> take a better guess.
>>
>> - Jake Oshins
>>
>>
>> “Howard Keller” wrote in message
>> news:xxxxx@ntdev…
>>> Hi all,
>>>
>>> I have a driver (PCIe) that fails to work on a particular brand of PC
>>> but works on others. IoConnectInterrupt fails with a
>>> STATUS_INVALID_PARAMETER on the failing box. The interrupt parameters
>>> (vector, irql. triggermode) that are passed in both the failing and
>>> non-failing cases are the same. I can’t source debug the
>>> IoConnectInterrupt so I’m at a loss to determine the parameter that
>>> IoConnectInterrupt doesn’t like. Does anyone have any suggestions about
>>> how I can proceed?
>>>
>>> Thanks,
>>>
>>> Howard
>>>
>>>
>>
>>
>>
>
>
>
Thanks Jake,
I did some more digging. The TranslatedResources said the TriggerMode was
“Latched” but looking at the DevNode, it was reported as “LevelSensitive”!
When I forced the TriggerMode param into IoConnectInterrupt to be
LevelSensitive, the status returned was OK. This smacks of a HW problem.
What do you think?
Thanks,
Howard
“Jake Oshins” wrote in message
news:xxxxx@ntdev…
> Looks plausible. I don’t know why its failing.
>
> - Jake
>
>
> “Howard Keller” wrote in message
> news:xxxxx@ntdev…
>> Hi Jake,
>>
>> The resource were obtained from TranslatedResources and they are:
>>
>> s3_1000.sys DEBUG: &deviceExtension->InterruptObject = 0x866f5190
>> s3_1000.sys DEBUG: (PKSERVICE_ROUTINE)BDMA_Isr = 0xf787ea10
>> s3_1000.sys DEBUG: (PVOID)DeviceObject = 0x866f5020
>> s3_1000.sys DEBUG: deviceExtension->Vector = 0x183
>> s3_1000.sys DEBUG: deviceExtension->IRQL = 0x7
>> s3_1000.sys DEBUG: deviceExtension->TriggerMode = 0x1
>> s3_1000.sys DEBUG: deviceExtension->Affinity = 0x3
>>
>> The only thing identical in both machines was vector, IRQL, Ttriggermode
>> and affinity.
>>
>> Thanks,
>>
>> Howard
>> “Jake Oshins” wrote in message
>> news:xxxxx@ntdev…
>>> You don’t really say it in your message, but what you have said sets off
>>> alarm bells in my head. How are you getting these parameters to pass
>>> into IoConnectInterrupt?
>>>
>>> The only valid answer is that those same paramters got passed to you in
>>> IRP_MN_START_DEVICE’s TranslatedResources parameter. And I wouldn’t
>>> expect those to be the same across two machines.
>>>
>>> Perhaps if you can post all of the parameters you’re passing, we can
>>> take a better guess.
>>>
>>> - Jake Oshins
>>>
>>>
>>> “Howard Keller” wrote in message
>>> news:xxxxx@ntdev…
>>>> Hi all,
>>>>
>>>> I have a driver (PCIe) that fails to work on a particular brand of PC
>>>> but works on others. IoConnectInterrupt fails with a
>>>> STATUS_INVALID_PARAMETER on the failing box. The interrupt parameters
>>>> (vector, irql. triggermode) that are passed in both the failing and
>>>> non-failing cases are the same. I can’t source debug the
>>>> IoConnectInterrupt so I’m at a loss to determine the parameter that
>>>> IoConnectInterrupt doesn’t like. Does anyone have any suggestions about
>>>> how I can proceed?
>>>>
>>>> Thanks,
>>>>
>>>> Howard
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
That’s odd. In general, the pointer passed to you in IRP_MN_START_DEVICE
points to the same struct that the debugger dumps. I don’t believe that
I’ve seen an exception to this, except when there is a filter in the stack
that’s being “smart.” This makes me wonder whether something in your system
is trashing memory in a predictable and subtle fashion.
“Howard Keller” wrote in message
news:xxxxx@ntdev…
> Thanks Jake,
>
> I did some more digging. The TranslatedResources said the TriggerMode was
> “Latched” but looking at the DevNode, it was reported as “LevelSensitive”!
> When I forced the TriggerMode param into IoConnectInterrupt to be
> LevelSensitive, the status returned was OK. This smacks of a HW problem.
> What do you think?
>
> Thanks,
>
> Howard
> “Jake Oshins” wrote in message
> news:xxxxx@ntdev…
>> Looks plausible. I don’t know why its failing.
>>
>> - Jake
>>
>>
>> “Howard Keller” wrote in message
>> news:xxxxx@ntdev…
>>> Hi Jake,
>>>
>>> The resource were obtained from TranslatedResources and they are:
>>>
>>> s3_1000.sys DEBUG: &deviceExtension->InterruptObject = 0x866f5190
>>> s3_1000.sys DEBUG: (PKSERVICE_ROUTINE)BDMA_Isr = 0xf787ea10
>>> s3_1000.sys DEBUG: (PVOID)DeviceObject = 0x866f5020
>>> s3_1000.sys DEBUG: deviceExtension->Vector = 0x183
>>> s3_1000.sys DEBUG: deviceExtension->IRQL = 0x7
>>> s3_1000.sys DEBUG: deviceExtension->TriggerMode = 0x1
>>> s3_1000.sys DEBUG: deviceExtension->Affinity = 0x3
>>>
>>> The only thing identical in both machines was vector, IRQL, Ttriggermode
>>> and affinity.
>>>
>>> Thanks,
>>>
>>> Howard
>>> “Jake Oshins” wrote in message
>>> news:xxxxx@ntdev…
>>>> You don’t really say it in your message, but what you have said sets
>>>> off alarm bells in my head. How are you getting these parameters to
>>>> pass into IoConnectInterrupt?
>>>>
>>>> The only valid answer is that those same paramters got passed to you in
>>>> IRP_MN_START_DEVICE’s TranslatedResources parameter. And I wouldn’t
>>>> expect those to be the same across two machines.
>>>>
>>>> Perhaps if you can post all of the parameters you’re passing, we can
>>>> take a better guess.
>>>>
>>>> - Jake Oshins
>>>>
>>>>
>>>> “Howard Keller” wrote in message
>>>> news:xxxxx@ntdev…
>>>>> Hi all,
>>>>>
>>>>> I have a driver (PCIe) that fails to work on a particular brand of PC
>>>>> but works on others. IoConnectInterrupt fails with a
>>>>> STATUS_INVALID_PARAMETER on the failing box. The interrupt parameters
>>>>> (vector, irql. triggermode) that are passed in both the failing and
>>>>> non-failing cases are the same. I can’t source debug the
>>>>> IoConnectInterrupt so I’m at a loss to determine the parameter that
>>>>> IoConnectInterrupt doesn’t like. Does anyone have any suggestions
>>>>> about how I can proceed?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Howard
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
Jake,
I’m not to familiar with what the I/O stack should look like for a PCIe
device below my driver. I would have assumed that the bus driver would be
directly below without an intervening filter driver. Is that correct?
Thabks,
Howard
“Jake Oshins” wrote in message
news:xxxxx@ntdev…
> That’s odd. In general, the pointer passed to you in IRP_MN_START_DEVICE
> points to the same struct that the debugger dumps. I don’t believe that
> I’ve seen an exception to this, except when there is a filter in the stack
> that’s being “smart.” This makes me wonder whether something in your
> system is trashing memory in a predictable and subtle fashion.
>
> - Jake
>
>
>
> “Howard Keller” wrote in message
> news:xxxxx@ntdev…
>> Thanks Jake,
>>
>> I did some more digging. The TranslatedResources said the TriggerMode was
>> “Latched” but looking at the DevNode, it was reported as
>> “LevelSensitive”! When I forced the TriggerMode param into
>> IoConnectInterrupt to be LevelSensitive, the status returned was OK. This
>> smacks of a HW problem. What do you think?
>>
>> Thanks,
>>
>> Howard
>> “Jake Oshins” wrote in message
>> news:xxxxx@ntdev…
>>> Looks plausible. I don’t know why its failing.
>>>
>>> - Jake
>>>
>>>
>>> “Howard Keller” wrote in message
>>> news:xxxxx@ntdev…
>>>> Hi Jake,
>>>>
>>>> The resource were obtained from TranslatedResources and they are:
>>>>
>>>> s3_1000.sys DEBUG: &deviceExtension->InterruptObject = 0x866f5190
>>>> s3_1000.sys DEBUG: (PKSERVICE_ROUTINE)BDMA_Isr = 0xf787ea10
>>>> s3_1000.sys DEBUG: (PVOID)DeviceObject = 0x866f5020
>>>> s3_1000.sys DEBUG: deviceExtension->Vector = 0x183
>>>> s3_1000.sys DEBUG: deviceExtension->IRQL = 0x7
>>>> s3_1000.sys DEBUG: deviceExtension->TriggerMode = 0x1
>>>> s3_1000.sys DEBUG: deviceExtension->Affinity = 0x3
>>>>
>>>> The only thing identical in both machines was vector, IRQL,
>>>> Ttriggermode and affinity.
>>>>
>>>> Thanks,
>>>>
>>>> Howard
>>>> “Jake Oshins” wrote in message
>>>> news:xxxxx@ntdev…
>>>>> You don’t really say it in your message, but what you have said sets
>>>>> off alarm bells in my head. How are you getting these parameters to
>>>>> pass into IoConnectInterrupt?
>>>>>
>>>>> The only valid answer is that those same paramters got passed to you
>>>>> in IRP_MN_START_DEVICE’s TranslatedResources parameter. And I
>>>>> wouldn’t expect those to be the same across two machines.
>>>>>
>>>>> Perhaps if you can post all of the parameters you’re passing, we can
>>>>> take a better guess.
>>>>>
>>>>> - Jake Oshins
>>>>>
>>>>>
>>>>> “Howard Keller” wrote in message
>>>>> news:xxxxx@ntdev…
>>>>>> Hi all,
>>>>>>
>>>>>> I have a driver (PCIe) that fails to work on a particular brand of PC
>>>>>> but works on others. IoConnectInterrupt fails with a
>>>>>> STATUS_INVALID_PARAMETER on the failing box. The interrupt parameters
>>>>>> (vector, irql. triggermode) that are passed in both the failing and
>>>>>> non-failing cases are the same. I can’t source debug the
>>>>>> IoConnectInterrupt so I’m at a loss to determine the parameter that
>>>>>> IoConnectInterrupt doesn’t like. Does anyone have any suggestions
>>>>>> about how I can proceed?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Howard
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
That depends on a lot of things. What does the debugger say? (Try
!devstack )
“Howard Keller” wrote in message
news:xxxxx@ntdev…
> Jake,
>
> I’m not to familiar with what the I/O stack should look like for a PCIe
> device below my driver. I would have assumed that the bus driver would be
> directly below without an intervening filter driver. Is that correct?
>
> Thabks,
>
> Howard
> “Jake Oshins” wrote in message
> news:xxxxx@ntdev…
>> That’s odd. In general, the pointer passed to you in IRP_MN_START_DEVICE
>> points to the same struct that the debugger dumps. I don’t believe that
>> I’ve seen an exception to this, except when there is a filter in the
>> stack that’s being “smart.” This makes me wonder whether something in
>> your system is trashing memory in a predictable and subtle fashion.
>>
>> - Jake
>>
>>
>>
>> “Howard Keller” wrote in message
>> news:xxxxx@ntdev…
>>> Thanks Jake,
>>>
>>> I did some more digging. The TranslatedResources said the TriggerMode
>>> was “Latched” but looking at the DevNode, it was reported as
>>> “LevelSensitive”! When I forced the TriggerMode param into
>>> IoConnectInterrupt to be LevelSensitive, the status returned was OK.
>>> This smacks of a HW problem. What do you think?
>>>
>>> Thanks,
>>>
>>> Howard
>>> “Jake Oshins” wrote in message
>>> news:xxxxx@ntdev…
>>>> Looks plausible. I don’t know why its failing.
>>>>
>>>> - Jake
>>>>
>>>>
>>>> “Howard Keller” wrote in message
>>>> news:xxxxx@ntdev…
>>>>> Hi Jake,
>>>>>
>>>>> The resource were obtained from TranslatedResources and they are:
>>>>>
>>>>> s3_1000.sys DEBUG: &deviceExtension->InterruptObject = 0x866f5190
>>>>> s3_1000.sys DEBUG: (PKSERVICE_ROUTINE)BDMA_Isr = 0xf787ea10
>>>>> s3_1000.sys DEBUG: (PVOID)DeviceObject = 0x866f5020
>>>>> s3_1000.sys DEBUG: deviceExtension->Vector = 0x183
>>>>> s3_1000.sys DEBUG: deviceExtension->IRQL = 0x7
>>>>> s3_1000.sys DEBUG: deviceExtension->TriggerMode = 0x1
>>>>> s3_1000.sys DEBUG: deviceExtension->Affinity = 0x3
>>>>>
>>>>> The only thing identical in both machines was vector, IRQL,
>>>>> Ttriggermode and affinity.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Howard
>>>>> “Jake Oshins” wrote in message
>>>>> news:xxxxx@ntdev…
>>>>>> You don’t really say it in your message, but what you have said sets
>>>>>> off alarm bells in my head. How are you getting these parameters to
>>>>>> pass into IoConnectInterrupt?
>>>>>>
>>>>>> The only valid answer is that those same paramters got passed to you
>>>>>> in IRP_MN_START_DEVICE’s TranslatedResources parameter. And I
>>>>>> wouldn’t expect those to be the same across two machines.
>>>>>>
>>>>>> Perhaps if you can post all of the parameters you’re passing, we
>>>>>> can take a better guess.
>>>>>>
>>>>>> - Jake Oshins
>>>>>>
>>>>>>
>>>>>> “Howard Keller” wrote in message
>>>>>> news:xxxxx@ntdev…
>>>>>>> Hi all,
>>>>>>>
>>>>>>> I have a driver (PCIe) that fails to work on a particular brand of
>>>>>>> PC but works on others. IoConnectInterrupt fails with a
>>>>>>> STATUS_INVALID_PARAMETER on the failing box. The interrupt
>>>>>>> parameters (vector, irql. triggermode) that are passed in both the
>>>>>>> failing and non-failing cases are the same. I can’t source debug the
>>>>>>> IoConnectInterrupt so I’m at a loss to determine the parameter that
>>>>>>> IoConnectInterrupt doesn’t like. Does anyone have any suggestions
>>>>>>> about how I can proceed?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Howard
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
Jake,
Good suggestion. The PCI bus driver is directly below my driver.
Thanks,
Howard
“Jake Oshins” wrote in message
news:xxxxx@ntdev…
> That depends on a lot of things. What does the debugger say? (Try
> !devstack )
>
>
> “Howard Keller” wrote in message
> news:xxxxx@ntdev…
>> Jake,
>>
>> I’m not to familiar with what the I/O stack should look like for a PCIe
>> device below my driver. I would have assumed that the bus driver would be
>> directly below without an intervening filter driver. Is that correct?
>>
>> Thabks,
>>
>> Howard
>> “Jake Oshins” wrote in message
>> news:xxxxx@ntdev…
>>> That’s odd. In general, the pointer passed to you in
>>> IRP_MN_START_DEVICE points to the same struct that the debugger dumps.
>>> I don’t believe that I’ve seen an exception to this, except when there
>>> is a filter in the stack that’s being “smart.” This makes me wonder
>>> whether something in your system is trashing memory in a predictable and
>>> subtle fashion.
>>>
>>> - Jake
>>>
>>>
>>>
>>> “Howard Keller” wrote in message
>>> news:xxxxx@ntdev…
>>>> Thanks Jake,
>>>>
>>>> I did some more digging. The TranslatedResources said the TriggerMode
>>>> was “Latched” but looking at the DevNode, it was reported as
>>>> “LevelSensitive”! When I forced the TriggerMode param into
>>>> IoConnectInterrupt to be LevelSensitive, the status returned was OK.
>>>> This smacks of a HW problem. What do you think?
>>>>
>>>> Thanks,
>>>>
>>>> Howard
>>>> “Jake Oshins” wrote in message
>>>> news:xxxxx@ntdev…
>>>>> Looks plausible. I don’t know why its failing.
>>>>>
>>>>> - Jake
>>>>>
>>>>>
>>>>> “Howard Keller” wrote in message
>>>>> news:xxxxx@ntdev…
>>>>>> Hi Jake,
>>>>>>
>>>>>> The resource were obtained from TranslatedResources and they are:
>>>>>>
>>>>>> s3_1000.sys DEBUG: &deviceExtension->InterruptObject = 0x866f5190
>>>>>> s3_1000.sys DEBUG: (PKSERVICE_ROUTINE)BDMA_Isr = 0xf787ea10
>>>>>> s3_1000.sys DEBUG: (PVOID)DeviceObject = 0x866f5020
>>>>>> s3_1000.sys DEBUG: deviceExtension->Vector = 0x183
>>>>>> s3_1000.sys DEBUG: deviceExtension->IRQL = 0x7
>>>>>> s3_1000.sys DEBUG: deviceExtension->TriggerMode = 0x1
>>>>>> s3_1000.sys DEBUG: deviceExtension->Affinity = 0x3
>>>>>>
>>>>>> The only thing identical in both machines was vector, IRQL,
>>>>>> Ttriggermode and affinity.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Howard
>>>>>> “Jake Oshins” wrote in message
>>>>>> news:xxxxx@ntdev…
>>>>>>> You don’t really say it in your message, but what you have said sets
>>>>>>> off alarm bells in my head. How are you getting these parameters to
>>>>>>> pass into IoConnectInterrupt?
>>>>>>>
>>>>>>> The only valid answer is that those same paramters got passed to you
>>>>>>> in IRP_MN_START_DEVICE’s TranslatedResources parameter. And I
>>>>>>> wouldn’t expect those to be the same across two machines.
>>>>>>>
>>>>>>> Perhaps if you can post all of the parameters you’re passing, we
>>>>>>> can take a better guess.
>>>>>>>
>>>>>>> - Jake Oshins
>>>>>>>
>>>>>>>
>>>>>>> “Howard Keller” wrote in message
>>>>>>> news:xxxxx@ntdev…
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I have a driver (PCIe) that fails to work on a particular brand of
>>>>>>>> PC but works on others. IoConnectInterrupt fails with a
>>>>>>>> STATUS_INVALID_PARAMETER on the failing box. The interrupt
>>>>>>>> parameters (vector, irql. triggermode) that are passed in both the
>>>>>>>> failing and non-failing cases are the same. I can’t source debug
>>>>>>>> the IoConnectInterrupt so I’m at a loss to determine the parameter
>>>>>>>> that IoConnectInterrupt doesn’t like. Does anyone have any
>>>>>>>> suggestions about how I can proceed?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> Howard
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>