Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Win98 PnP PCI

7 views
Skip to first unread message

RoKlo

unread,
Apr 30, 2002, 4:48:49 AM4/30/02
to

I have own driver to a PCI PnP communication device.
------------------------------------------------------------
case IRP_MJ_PNP:
switch(irpStack->MinorFunction)
{
case IRP_MN_START_DEVICE:
if ((NULL == irpStack->Parameters.StartDevice.AllocatedResources) ||
(NULL ==
irpStack->Parameters.StartDevice.AllocatedResourcesTranslated)) {
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
break;}
fmPartialResourceList =
&irpStack->Parameters.StartDevice.AllocatedResources->List[0].PartialResourc
eList;
fmPartialResourceListTranslated =
&irpStack->Parameters.StartDevice.AllocatedResourcesTranslated->List[0].Part
ialResourceList;
resource = &fmPartialResourceList->PartialDescriptors[0],
resourceTrans = &fmPartialResourceListTranslated->PartialDescriptors[0];

fmAddr = MmMapIoSpace (resourceTrans->u.Memory.Start,
resourceTrans->u.Memory.Length,
MmNonCached);
......

----------------------------------------------------------


if address space is like
Base Addresses:
(0) 000D4000 = mem base=000D4000 len=4K
it works corectly

if address space is like
Base Addresses:
(0) E4000000 = mem base=E4000000 len=4K

I can not access memory

Why ? How can I set address space in my driver to lower addresses

--
**********************************************
Ing.Roman Klobušický
ro...@axis.sk
**********************************************


Martin Borve

unread,
May 6, 2002, 5:05:17 PM5/6/02
to
>> if address space is like
>> Base Addresses:
>> (0) 000D4000 = mem base=000D4000 len=4K
>> it works corectly
>>
>> if address space is like
>> Base Addresses:
>> (0) E4000000 = mem base=E4000000 len=4K
>>
>> I can not access memory
>>
>> Why ? How can I set address space in my driver to lower addresses

Off hand I can't think of any reason why this would fail. Have you
verified that the BAR in the card's config space is set to e4000000? If
it's behind a bridge, have you verified the memory aperature on the bridge
spans the address assigned to the card? Also, what is the address being
returned by MmMapIoSpace? Have to checked to see if it correctly maps to
the physical address (use ".m <address>" in the debugger)?

Martin Borve
Windows DDK Support

This posting is provided "AS IS" with no warranties, and confers no rights.

0 new messages