Hi all,

I am working on PXA270 processor I have taken Sample code of WLAN from
\WINCE500\PRIVATE\WINCEOS\COMM\NDISMODS\LAN\PCX500 location.
I have used it in my platform driver folder. I got one error when i
downloaded image

CODE==>

DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
NDIS_HANDLE NdisWrapperHandle=NULL;

RETAILMSG (1, (TEXT("DriverEntry Initializing..\r\n")));
RETAILMSG (1, (TEXT("In NdisMInitializeWrapper\r\n")));
// Initialize the wrapper.
NdisMInitializeWrapper( &NdisWrapperHandle,
DriverObject,
RegistryPath,
NULL
);
RETAILMSG (1, (TEXT("Out NdisMInitializeWrapper\r\n")));

}


OUTPUT==>

DriverEntry Initializing..
In NdisMInitializeWrapper
Data Abort: Thread=87d33784 Proc=81906000 'device.exe'
AKY=00000005 PC=03c314cc(ndis.dll+0x000114cc)
RA=01e21224(pcx500.dll+0x00001224) BVA=06000000 FSR=00000007


I got first massage only "In NdisMInitializeWrapper" but not get secound one
"Out NdisMInitializeWrapper".

Is any body know whats the problem in 'NdisMInitializeWrapper' ?

Thanks in advance

Swapnil

Re: NdisMInitializeWrapper Problem? by K

K
Wed May 14 14:15:37 PDT 2008

The code itself looks ok to me, while you are trying to build the PRIVATE
tree sample, I would like you to double check you SOURCES file.
To verify is your driver link with a proper NDIS stub library rather than
the NDIS source library for DLL. (link with the one in cesysgen folder\sdk
rather than commona\oak folder)

"Swapnil Manglekar" <SwapnilManglekar@discussions.microsoft.com> wrote in
message news:83299D03-7C49-40CE-85F3-7AC55EE536D2@microsoft.com...
> Hi all,
>
> I am working on PXA270 processor I have taken Sample code of WLAN from
> \WINCE500\PRIVATE\WINCEOS\COMM\NDISMODS\LAN\PCX500 location.
> I have used it in my platform driver folder. I got one error when i
> downloaded image
>
> CODE==>
>
> DriverEntry(
> IN PDRIVER_OBJECT DriverObject,
> IN PUNICODE_STRING RegistryPath
> )
> {
> NDIS_HANDLE NdisWrapperHandle=NULL;
>
> RETAILMSG (1, (TEXT("DriverEntry Initializing..\r\n")));
> RETAILMSG (1, (TEXT("In NdisMInitializeWrapper\r\n")));
> // Initialize the wrapper.
> NdisMInitializeWrapper( &NdisWrapperHandle,
> DriverObject,
> RegistryPath,
> NULL
> );
> RETAILMSG (1, (TEXT("Out NdisMInitializeWrapper\r\n")));
>
> }
>
>
> OUTPUT==>
>
> DriverEntry Initializing..
> In NdisMInitializeWrapper
> Data Abort: Thread=87d33784 Proc=81906000 'device.exe'
> AKY=00000005 PC=03c314cc(ndis.dll+0x000114cc)
> RA=01e21224(pcx500.dll+0x00001224) BVA=06000000 FSR=00000007
>
>
> I got first massage only "In NdisMInitializeWrapper" but not get secound
> one
> "Out NdisMInitializeWrapper".
>
> Is any body know whats the problem in 'NdisMInitializeWrapper' ?
>
> Thanks in advance
>
> Swapnil



Re: NdisMInitializeWrapper Problem? by SwapnilManglekar

SwapnilManglekar
Thu May 15 01:03:03 PDT 2008

Thanks to reply Huang,

As you told i have taken the NDIS.lib file from
cesysgen\sdk\lib\ARMV4I\retail.

I have also added ceddk.lib and coredll.lib in Source file i have taken
coredll.lib from cesysgen\sdk\lib\ARMV4I\retail and
ceddk.lib from cesysgen\oak\lib\ARMV4I\retail and i have made DLL file for
PCX500 driver.

The PCX500 driver is build well it doesn't give any error But when i load my
image on board and inserting WLAN card then it shows error as:

DriverEntry Initializing..
DriverEntry Before NdisMInitializeWrapper
DriverObject :0x87D2E264, RegistryPath :0x00000001
Data Abort: Thread=87d33838 Proc=81906000 'device.exe'
AKY=00000005 PC=03c314cc(ndis.dll+0x000114cc)
RA=01e2123c(pcx500.dll+0x0000123c) BVA=06000001 FSR=000000f3

when i hide NdisMInitializeWrapper() function then it will work well but
sticked at Driver Initialization as :

DriverEntry Initializing..
DriverEntry Before NdisMInitializeWrapper
DriverObject :0x87D2E264, RegistryPath :0x00000001
DriverEntry after NdisMInitializeWrapper
DriverEntry Initialize the Miniport over
DriverEntry inside #if NDISVER == 5
DriverEntry NDIS_STATUS_FAILURE, Status=c0000001
Initialization done [failed]


Intersil DetectCisco Routine Handle=0x1
Intersil Loaded Pcmcia, Handle=0x87d1de50
Intersil Manufacture ID: d601
Intersil TupleBuffer.aTPLMID_CARD Intersil Product: 5
Intersil: Detected Intersil Card



DriverEntry Initializing..
DriverEntry Before NdisMInitializeWrapper
DriverObject :0x87D2E264, RegistryPath :0x00000000
DriverEntry after NdisMInitializeWrapper
DriverEntry Initialize the Miniport over
DriverEntry inside #if NDISVER == 5
DriverEntry NDIS_STATUS_FAILURE, Status=c0000001
Initialization done [failed]


and the last paragraph is repeating 3 to 4 times and it is stop.

I don't know why it is happening because NdisMInitializeWrapper() function
is predefined. If you know something in wrong in that then please tell.
Is any modifications are required in that?

Best Regards,

Swapnil

"K. S. Huang" wrote:

> The code itself looks ok to me, while you are trying to build the PRIVATE
> tree sample, I would like you to double check you SOURCES file.
> To verify is your driver link with a proper NDIS stub library rather than
> the NDIS source library for DLL. (link with the one in cesysgen folder\sdk
> rather than commona\oak folder)


Re: NdisMInitializeWrapper Problem? by SwapnilManglekar

SwapnilManglekar
Thu May 15 04:59:01 PDT 2008

Thanks to replay Huang,

Is any alternative function for
NdisMInitializeWrapper( &NdisWrapperHandle,
DriverObject,
RegistryPath,
NULL
);

In my case this function at the time of running on board it shows error ::

Data Abort: Thread=87d33784 Proc=81906000 'device.exe'
AKY=00000005 PC=03c314cc(ndis.dll+0x000114cc)
RA=01e21224(pcx500.dll+0x00001224) BVA=06000000 FSR=00000007

I don't know why it is coming Is some problem in my code i am using
D:\WINCE500\PRIVATE\WINCEOS\COMM\NDISMODS\LAN\PCX500

PCX500 driver in my platform.

I have one dought , PCX500 Driver is X86 or PXA270 based?

Thanks Best Regards,

Swapnil
"K. S. Huang" wrote:

> The code itself looks ok to me, while you are trying to build the PRIVATE
> tree sample, I would like you to double check you SOURCES file.
> To verify is your driver link with a proper NDIS stub library rather than
> the NDIS source library for DLL. (link with the one in cesysgen folder\sdk
> rather than commona\oak folder)


Re: NdisMInitializeWrapper Problem? by K

K
Thu May 15 11:18:10 PDT 2008

The PCX500 driver is *not* platform specific which mean no matter it is x86,
ARM, even MIPS SHx it should still be working.
And in the other hand, which code have you changed and how it you SOURCES
file looks like?

"Swapnil Manglekar" <SwapnilManglekar@discussions.microsoft.com> wrote in
message news:0F43DFA8-C627-40BA-AD59-C2C50C86CB03@microsoft.com...
> Thanks to replay Huang,
>
> Is any alternative function for
> NdisMInitializeWrapper( &NdisWrapperHandle,
> DriverObject,
> RegistryPath,
> NULL
> );
>
> In my case this function at the time of running on board it shows error ::
>
> Data Abort: Thread=87d33784 Proc=81906000 'device.exe'
> AKY=00000005 PC=03c314cc(ndis.dll+0x000114cc)
> RA=01e21224(pcx500.dll+0x00001224) BVA=06000000 FSR=00000007
>
> I don't know why it is coming Is some problem in my code i am using
> D:\WINCE500\PRIVATE\WINCEOS\COMM\NDISMODS\LAN\PCX500
>
> PCX500 driver in my platform.
>
> I have one dought , PCX500 Driver is X86 or PXA270 based?
>
> Thanks Best Regards,
>
> Swapnil
> "K. S. Huang" wrote:
>
>> The code itself looks ok to me, while you are trying to build the PRIVATE
>> tree sample, I would like you to double check you SOURCES file.
>> To verify is your driver link with a proper NDIS stub library rather than
>> the NDIS source library for DLL. (link with the one in cesysgen
>> folder\sdk
>> rather than commona\oak folder)
>



Re: NdisMInitializeWrapper Problem? by SwapnilManglekar

SwapnilManglekar
Fri May 16 01:42:06 PDT 2008

Thanks to reply Huang,

The PCX500 driver from private folder is create PCX500.lib file. My aim is
to create DLL already there is DLL but i am changing some code as to
recognize my device all guys told that my device is supported to islp2nds
driver but on my board it is not supported.

I am creating my SESPCX500.DLL as :

TARGETNAME=sespcx500

TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
SYNCHRONIZE_DRAIN=1

DLLENTRY=DriverEntry

DEFFILE=$(_TARGETPLATROOT)\Src\Drivers\pcx500\Source\pcx500.def

SOURCELIBS=

TARGETLIBS=\
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\sespcx500.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ndis.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\coredll.lib

SOURCES=


The above three ndis.lib, ceddk.lib and coredll.lib files i copied into
local target lib because it gives some problem of taking lib from that
locations, i have taken three lib's as your told locations.

And my PCX500 Driver source file is :

PREPROCESSDEFFILE=1

DEFFILE=pcx500.def

TARGETDEFNAME=pcx500

TARGETNAME=sespcx500

TARGETTYPE=LIBRARY

CDEFINES=$(CDEFINES) -DNDIS_MINIPORT_DRIVER -DRTFAST -DWIN_CE -DUNDER_CE
-DNDISVER=5

#
# For platforms that don't support QueryPerformanceCounter()
#
!IFDEF QUERY_PERFORMANCE_COUNTER_NOT_SUPPORTED
CDEFINES=$(CDEFINES) -DCE_FLAG_USE_NDISM_SLEEP
!ENDIF

INCLUDES= \
..\inc;

SOURCES=\
aironet.cpp \
card.cpp \
driver.cpp \
Support.cpp \
CardX500.cpp \
CmdX500.cpp \
oidX500.cpp \
flash.cpp \
pci.cpp \
debug.cpp \
Send.cpp \
Receive.cpp \
pcx500.cpp \
alloc.cpp \
profile.cpp \
wince.cpp


WINCETARGETFILE0=$(_RELEASELIBDIR)\$(TARGETDEFNAME).def



I Exactly don't know who created PCX500.DLL because normally if any one want
to create dll then there should be entry in source file, i have searched all
source files but i couldn't get any entry related to PCX500.

I have changed only wince.cpp file from PCX500 folder as :

REG_VALUE_DESCR DetectKeyValues[] =
{
(TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("sespcx500.dll")),
(TEXT("Entry")), REG_SZ, (PBYTE)(TEXT("DetectSESPCX500")),
NULL, 0, NULL
};


//
// Values for [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\SESIntersil]
//

REG_VALUE_DESCR PcmKeyValues[] = {
(TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("ndis.dll")),
(TEXT("Prefix")), REG_SZ, (PBYTE)(TEXT("NDS")),
(TEXT("Miniport")), REG_SZ, (PBYTE)(TEXT("SESIntersil")),
NULL, 0, NULL
};


//
// Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil]
// and [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
//

REG_VALUE_DESCR CommKeyValues[] =
{
(TEXT("DisplayName")), REG_SZ, (PBYTE)(TEXT("Intersil Prism2 WLAN
PCMCIA")),
(TEXT("Group")), REG_SZ, (PBYTE)(TEXT("NDIS")),
(TEXT("ImagePath")), REG_SZ, (PBYTE)(TEXT("sespcx500.dll")),
NULL, 0, NULL
};


//
// Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms]
//

REG_VALUE_DESCR ParmKeyValues[] =
{
(TEXT("BusNumber")), REG_DWORD, (PBYTE)0,
(TEXT("BusType")), REG_DWORD, (PBYTE)8,
(TEXT("InterruptNumber")), REG_DWORD, (PBYTE)03,
(TEXT("IoBaseAddress")), REG_DWORD, (PBYTE)768, // 0x0300
(TEXT("InfrastructureMode")), REG_DWORD, (PBYTE)1, // Infrastructure
(TEXT("TransmitPower")), REG_DWORD, (PBYTE)100,
(TEXT("PowerSaveMode")), REG_DWORD, (PBYTE)0, //CAM
(TEXT("CardType")), REG_DWORD, (PBYTE)6, //4800
(TEXT("DriverMajorVersion")), REG_DWORD, (PBYTE)DRIVER_MAJOR_VERSION,
(TEXT("DriverMinorVersion")), REG_DWORD, (PBYTE)DRIVER_MINOR_VERSION,
(TEXT("Associated")), REG_DWORD, (PBYTE)0,
NULL, 0, NULL
};


//
// Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
//

REG_VALUE_DESCR LinkageKeyValues[] =
{
(TEXT("Route")), REG_MULTI_SZ, (PBYTE)(TEXT("SESIntersil1")),
NULL, 0, NULL
};

PREG_VALUE_DESCR Values[] =
{
PcmKeyValues,
CommKeyValues,
CommKeyValues,
ParmKeyValues,
LinkageKeyValues
};

LPWSTR KeyNames[] =
{
(TEXT("Drivers\\PCMCIA\\SESIntersil")),
(TEXT("Comm\\SESIntersil")),
(TEXT("Comm\\SESIntersil1")),
(TEXT("Comm\\SESIntersil1\\Parms")),
(TEXT("Comm\\SESIntersil\\Linkage"))
};



and i have created my own PCX500.Reg file as:

[HKEY_LOCAL_MACHINE\Drivers\PCMCIA\SESIntersil]
"Prefix"="NDS"
"Dll"="ndis.dll"
"Miniport"="SESIntersil"

[HKEY_LOCAL_MACHINE\Comm\SESIntersil]
"DisplayName"=mui_sz:"netmui.dll,#9005"
"Group"="NDIS"
"ImagePath"="SESpcx500.dll"

[HKEY_LOCAL_MACHINE\Comm\SESIntersil\Linkage]
"Route"=multi_sz:"SESIntersil1"

[HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
"DisplayName"=mui_sz:"netmui.dll,#9005"
"Group"="NDIS"
"ImagePath"="SESpcx500.dll"

[HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms]
"BusNumber"=dword:0
"BusType"=dword:8
"InterruptNumber"=dword:03
"IoBaseAddress"=dword:0300
"Transceiver"=dword:3
"CardType"=dword:1

[HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms\TcpIp]
"DhcpInitDelayInterval"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Detect\40]
"Dll"="sespcx500.dll"
"Entry"="DetectPCX500"


These only i have changed and created my own.

Is any problem in that above files?

Thanks
Best Regards

Swapnil



"K. S. Huang" wrote:

> The PCX500 driver is *not* platform specific which mean no matter it is x86,
> ARM, even MIPS SHx it should still be working.
> And in the other hand, which code have you changed and how it you SOURCES
> file looks like?


Re: NdisMInitializeWrapper Problem? by Paul

Paul
Fri May 16 08:20:56 PDT 2008

That's just the way the build system works. The library is made into the
DLL during the Sysgen process. The actual instructions for building the DLL
are in \WINCE500\PUBLIC\COMMON\CESYSGEN\makefile. Search for pcx500 and
you'll see it. It's included in various rules to set up the right values of
TARGETLIBS, DLLENTRY, etc., causing it to get built correctly.

Since you've cloned the code, alter the SOURCES file to tell the build
system how to build your stuff as a DLL directly, rather than building the
LIB file, etc.

Paul T.

"Swapnil Manglekar" <SwapnilManglekar@discussions.microsoft.com> wrote in
message news:64C9035C-0ECD-4DAD-97D8-9F24B49BEBE5@microsoft.com...
> Thanks to reply Huang,
>
> The PCX500 driver from private folder is create PCX500.lib file. My aim is
> to create DLL already there is DLL but i am changing some code as to
> recognize my device all guys told that my device is supported to
> islp2nds
> driver but on my board it is not supported.
>
> I am creating my SESPCX500.DLL as :
>
> TARGETNAME=sespcx500
>
> TARGETTYPE=DYNLINK
> RELEASETYPE=PLATFORM
> SYNCHRONIZE_DRAIN=1
>
> DLLENTRY=DriverEntry
>
> DEFFILE=$(_TARGETPLATROOT)\Src\Drivers\pcx500\Source\pcx500.def
>
> SOURCELIBS=
>
> TARGETLIBS=\
> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\sespcx500.lib \
> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ndis.lib \
> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\coredll.lib
>
> SOURCES=
>
>
> The above three ndis.lib, ceddk.lib and coredll.lib files i copied into
> local target lib because it gives some problem of taking lib from that
> locations, i have taken three lib's as your told locations.
>
> And my PCX500 Driver source file is :
>
> PREPROCESSDEFFILE=1
>
> DEFFILE=pcx500.def
>
> TARGETDEFNAME=pcx500
>
> TARGETNAME=sespcx500
>
> TARGETTYPE=LIBRARY
>
> CDEFINES=$(CDEFINES) -DNDIS_MINIPORT_DRIVER -DRTFAST -DWIN_CE -DUNDER_CE
> -DNDISVER=5
>
> #
> # For platforms that don't support QueryPerformanceCounter()
> #
> !IFDEF QUERY_PERFORMANCE_COUNTER_NOT_SUPPORTED
> CDEFINES=$(CDEFINES) -DCE_FLAG_USE_NDISM_SLEEP
> !ENDIF
>
> INCLUDES= \
> ..\inc;
>
> SOURCES=\
> aironet.cpp \
> card.cpp \
> driver.cpp \
> Support.cpp \
> CardX500.cpp \
> CmdX500.cpp \
> oidX500.cpp \
> flash.cpp \
> pci.cpp \
> debug.cpp \
> Send.cpp \
> Receive.cpp \
> pcx500.cpp \
> alloc.cpp \
> profile.cpp \
> wince.cpp
>
>
> WINCETARGETFILE0=$(_RELEASELIBDIR)\$(TARGETDEFNAME).def
>
>
>
> I Exactly don't know who created PCX500.DLL because normally if any one
> want
> to create dll then there should be entry in source file, i have searched
> all
> source files but i couldn't get any entry related to PCX500.
>
> I have changed only wince.cpp file from PCX500 folder as :
>
> REG_VALUE_DESCR DetectKeyValues[] =
> {
> (TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("sespcx500.dll")),
> (TEXT("Entry")), REG_SZ, (PBYTE)(TEXT("DetectSESPCX500")),
> NULL, 0, NULL
> };
>
>
> //
> // Values for [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\SESIntersil]
> //
>
> REG_VALUE_DESCR PcmKeyValues[] = {
> (TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("ndis.dll")),
> (TEXT("Prefix")), REG_SZ, (PBYTE)(TEXT("NDS")),
> (TEXT("Miniport")), REG_SZ, (PBYTE)(TEXT("SESIntersil")),
> NULL, 0, NULL
> };
>
>
> //
> // Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil]
> // and [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
> //
>
> REG_VALUE_DESCR CommKeyValues[] =
> {
> (TEXT("DisplayName")), REG_SZ, (PBYTE)(TEXT("Intersil Prism2 WLAN
> PCMCIA")),
> (TEXT("Group")), REG_SZ, (PBYTE)(TEXT("NDIS")),
> (TEXT("ImagePath")), REG_SZ, (PBYTE)(TEXT("sespcx500.dll")),
> NULL, 0, NULL
> };
>
>
> //
> // Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms]
> //
>
> REG_VALUE_DESCR ParmKeyValues[] =
> {
> (TEXT("BusNumber")), REG_DWORD, (PBYTE)0,
> (TEXT("BusType")), REG_DWORD, (PBYTE)8,
> (TEXT("InterruptNumber")), REG_DWORD, (PBYTE)03,
> (TEXT("IoBaseAddress")), REG_DWORD, (PBYTE)768, // 0x0300
> (TEXT("InfrastructureMode")), REG_DWORD, (PBYTE)1, // Infrastructure
> (TEXT("TransmitPower")), REG_DWORD, (PBYTE)100,
> (TEXT("PowerSaveMode")), REG_DWORD, (PBYTE)0, //CAM
> (TEXT("CardType")), REG_DWORD, (PBYTE)6, //4800
> (TEXT("DriverMajorVersion")), REG_DWORD, (PBYTE)DRIVER_MAJOR_VERSION,
> (TEXT("DriverMinorVersion")), REG_DWORD, (PBYTE)DRIVER_MINOR_VERSION,
> (TEXT("Associated")), REG_DWORD, (PBYTE)0,
> NULL, 0, NULL
> };
>
>
> //
> // Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
> //
>
> REG_VALUE_DESCR LinkageKeyValues[] =
> {
> (TEXT("Route")), REG_MULTI_SZ, (PBYTE)(TEXT("SESIntersil1")),
> NULL, 0, NULL
> };
>
> PREG_VALUE_DESCR Values[] =
> {
> PcmKeyValues,
> CommKeyValues,
> CommKeyValues,
> ParmKeyValues,
> LinkageKeyValues
> };
>
> LPWSTR KeyNames[] =
> {
> (TEXT("Drivers\\PCMCIA\\SESIntersil")),
> (TEXT("Comm\\SESIntersil")),
> (TEXT("Comm\\SESIntersil1")),
> (TEXT("Comm\\SESIntersil1\\Parms")),
> (TEXT("Comm\\SESIntersil\\Linkage"))
> };
>
>
>
> and i have created my own PCX500.Reg file as:
>
> [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\SESIntersil]
> "Prefix"="NDS"
> "Dll"="ndis.dll"
> "Miniport"="SESIntersil"
>
> [HKEY_LOCAL_MACHINE\Comm\SESIntersil]
> "DisplayName"=mui_sz:"netmui.dll,#9005"
> "Group"="NDIS"
> "ImagePath"="SESpcx500.dll"
>
> [HKEY_LOCAL_MACHINE\Comm\SESIntersil\Linkage]
> "Route"=multi_sz:"SESIntersil1"
>
> [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
> "DisplayName"=mui_sz:"netmui.dll,#9005"
> "Group"="NDIS"
> "ImagePath"="SESpcx500.dll"
>
> [HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms]
> "BusNumber"=dword:0
> "BusType"=dword:8
> "InterruptNumber"=dword:03
> "IoBaseAddress"=dword:0300
> "Transceiver"=dword:3
> "CardType"=dword:1
>
> [HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms\TcpIp]
> "DhcpInitDelayInterval"=dword:0
>
> [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Detect\40]
> "Dll"="sespcx500.dll"
> "Entry"="DetectPCX500"
>
>
> These only i have changed and created my own.
>
> Is any problem in that above files?
>
> Thanks
> Best Regards
>
> Swapnil
>
>
>
> "K. S. Huang" wrote:
>
>> The PCX500 driver is *not* platform specific which mean no matter it is
>> x86,
>> ARM, even MIPS SHx it should still be working.
>> And in the other hand, which code have you changed and how it you SOURCES
>> file looks like?
>



Re: NdisMInitializeWrapper Problem? by K

K
Fri May 16 11:19:55 PDT 2008

As Paul's clarification, you may also want to try the following command in
build window for compositing a SOURCES file from CESYSGEN\makefile

sysgen_capture -p common pcx500

For more details about sysgen_capture utility and cloning modules you could
refer the following link

http://msdn.microsoft.com/en-us/library/aa924385.aspx

"Paul G. Tobey [eMVP]" <p space tobey no spam AT no instrument no spam DOT
com> wrote in message news:e8zuqh2tIHA.3680@TK2MSFTNGP05.phx.gbl...
> That's just the way the build system works. The library is made into the
> DLL during the Sysgen process. The actual instructions for building the
> DLL are in \WINCE500\PUBLIC\COMMON\CESYSGEN\makefile. Search for pcx500
> and you'll see it. It's included in various rules to set up the right
> values of TARGETLIBS, DLLENTRY, etc., causing it to get built correctly.
>
> Since you've cloned the code, alter the SOURCES file to tell the build
> system how to build your stuff as a DLL directly, rather than building the
> LIB file, etc.
>
> Paul T.
>
> "Swapnil Manglekar" <SwapnilManglekar@discussions.microsoft.com> wrote in
> message news:64C9035C-0ECD-4DAD-97D8-9F24B49BEBE5@microsoft.com...
>> Thanks to reply Huang,
>>
>> The PCX500 driver from private folder is create PCX500.lib file. My aim
>> is
>> to create DLL already there is DLL but i am changing some code as to
>> recognize my device all guys told that my device is supported to
>> islp2nds
>> driver but on my board it is not supported.
>>
>> I am creating my SESPCX500.DLL as :
>>
>> TARGETNAME=sespcx500
>>
>> TARGETTYPE=DYNLINK
>> RELEASETYPE=PLATFORM
>> SYNCHRONIZE_DRAIN=1
>>
>> DLLENTRY=DriverEntry
>>
>> DEFFILE=$(_TARGETPLATROOT)\Src\Drivers\pcx500\Source\pcx500.def
>>
>> SOURCELIBS=
>>
>> TARGETLIBS=\
>> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\sespcx500.lib \
>> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ndis.lib \
>> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
>> $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\coredll.lib
>>
>> SOURCES=
>>
>>
>> The above three ndis.lib, ceddk.lib and coredll.lib files i copied into
>> local target lib because it gives some problem of taking lib from that
>> locations, i have taken three lib's as your told locations.
>>
>> And my PCX500 Driver source file is :
>>
>> PREPROCESSDEFFILE=1
>>
>> DEFFILE=pcx500.def
>>
>> TARGETDEFNAME=pcx500
>>
>> TARGETNAME=sespcx500
>>
>> TARGETTYPE=LIBRARY
>>
>> CDEFINES=$(CDEFINES) -DNDIS_MINIPORT_DRIVER -DRTFAST -DWIN_CE -DUNDER_CE
>> -DNDISVER=5
>>
>> #
>> # For platforms that don't support QueryPerformanceCounter()
>> #
>> !IFDEF QUERY_PERFORMANCE_COUNTER_NOT_SUPPORTED
>> CDEFINES=$(CDEFINES) -DCE_FLAG_USE_NDISM_SLEEP
>> !ENDIF
>>
>> INCLUDES= \
>> ..\inc;
>>
>> SOURCES=\
>> aironet.cpp \
>> card.cpp \
>> driver.cpp \
>> Support.cpp \
>> CardX500.cpp \
>> CmdX500.cpp \
>> oidX500.cpp \
>> flash.cpp \
>> pci.cpp \
>> debug.cpp \
>> Send.cpp \
>> Receive.cpp \
>> pcx500.cpp \
>> alloc.cpp \
>> profile.cpp \
>> wince.cpp
>>
>>
>> WINCETARGETFILE0=$(_RELEASELIBDIR)\$(TARGETDEFNAME).def
>>
>>
>>
>> I Exactly don't know who created PCX500.DLL because normally if any one
>> want
>> to create dll then there should be entry in source file, i have searched
>> all
>> source files but i couldn't get any entry related to PCX500.
>>
>> I have changed only wince.cpp file from PCX500 folder as :
>>
>> REG_VALUE_DESCR DetectKeyValues[] =
>> {
>> (TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("sespcx500.dll")),
>> (TEXT("Entry")), REG_SZ, (PBYTE)(TEXT("DetectSESPCX500")),
>> NULL, 0, NULL
>> };
>>
>>
>> //
>> // Values for [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\SESIntersil]
>> //
>>
>> REG_VALUE_DESCR PcmKeyValues[] = {
>> (TEXT("Dll")), REG_SZ, (PBYTE)(TEXT("ndis.dll")),
>> (TEXT("Prefix")), REG_SZ, (PBYTE)(TEXT("NDS")),
>> (TEXT("Miniport")), REG_SZ, (PBYTE)(TEXT("SESIntersil")),
>> NULL, 0, NULL
>> };
>>
>>
>> //
>> // Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil]
>> // and [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
>> //
>>
>> REG_VALUE_DESCR CommKeyValues[] =
>> {
>> (TEXT("DisplayName")), REG_SZ, (PBYTE)(TEXT("Intersil Prism2 WLAN
>> PCMCIA")),
>> (TEXT("Group")), REG_SZ, (PBYTE)(TEXT("NDIS")),
>> (TEXT("ImagePath")), REG_SZ, (PBYTE)(TEXT("sespcx500.dll")),
>> NULL, 0, NULL
>> };
>>
>>
>> //
>> // Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms]
>> //
>>
>> REG_VALUE_DESCR ParmKeyValues[] =
>> {
>> (TEXT("BusNumber")), REG_DWORD, (PBYTE)0,
>> (TEXT("BusType")), REG_DWORD, (PBYTE)8,
>> (TEXT("InterruptNumber")), REG_DWORD, (PBYTE)03,
>> (TEXT("IoBaseAddress")), REG_DWORD, (PBYTE)768, // 0x0300
>> (TEXT("InfrastructureMode")), REG_DWORD, (PBYTE)1, // Infrastructure
>> (TEXT("TransmitPower")), REG_DWORD, (PBYTE)100,
>> (TEXT("PowerSaveMode")), REG_DWORD, (PBYTE)0, //CAM
>> (TEXT("CardType")), REG_DWORD, (PBYTE)6, //4800
>> (TEXT("DriverMajorVersion")), REG_DWORD, (PBYTE)DRIVER_MAJOR_VERSION,
>> (TEXT("DriverMinorVersion")), REG_DWORD, (PBYTE)DRIVER_MINOR_VERSION,
>> (TEXT("Associated")), REG_DWORD, (PBYTE)0,
>> NULL, 0, NULL
>> };
>>
>>
>> //
>> // Values for [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
>> //
>>
>> REG_VALUE_DESCR LinkageKeyValues[] =
>> {
>> (TEXT("Route")), REG_MULTI_SZ, (PBYTE)(TEXT("SESIntersil1")),
>> NULL, 0, NULL
>> };
>>
>> PREG_VALUE_DESCR Values[] =
>> {
>> PcmKeyValues,
>> CommKeyValues,
>> CommKeyValues,
>> ParmKeyValues,
>> LinkageKeyValues
>> };
>>
>> LPWSTR KeyNames[] =
>> {
>> (TEXT("Drivers\\PCMCIA\\SESIntersil")),
>> (TEXT("Comm\\SESIntersil")),
>> (TEXT("Comm\\SESIntersil1")),
>> (TEXT("Comm\\SESIntersil1\\Parms")),
>> (TEXT("Comm\\SESIntersil\\Linkage"))
>> };
>>
>>
>>
>> and i have created my own PCX500.Reg file as:
>>
>> [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\SESIntersil]
>> "Prefix"="NDS"
>> "Dll"="ndis.dll"
>> "Miniport"="SESIntersil"
>>
>> [HKEY_LOCAL_MACHINE\Comm\SESIntersil]
>> "DisplayName"=mui_sz:"netmui.dll,#9005"
>> "Group"="NDIS"
>> "ImagePath"="SESpcx500.dll"
>>
>> [HKEY_LOCAL_MACHINE\Comm\SESIntersil\Linkage]
>> "Route"=multi_sz:"SESIntersil1"
>>
>> [HKEY_LOCAL_MACHINE\Comm\SESIntersil1]
>> "DisplayName"=mui_sz:"netmui.dll,#9005"
>> "Group"="NDIS"
>> "ImagePath"="SESpcx500.dll"
>>
>> [HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms]
>> "BusNumber"=dword:0
>> "BusType"=dword:8
>> "InterruptNumber"=dword:03
>> "IoBaseAddress"=dword:0300
>> "Transceiver"=dword:3
>> "CardType"=dword:1
>>
>> [HKEY_LOCAL_MACHINE\Comm\SESIntersil1\Parms\TcpIp]
>> "DhcpInitDelayInterval"=dword:0
>>
>> [HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Detect\40]
>> "Dll"="sespcx500.dll"
>> "Entry"="DetectPCX500"
>>
>>
>> These only i have changed and created my own.
>>
>> Is any problem in that above files?
>>
>> Thanks
>> Best Regards
>>
>> Swapnil
>>
>>
>>
>> "K. S. Huang" wrote:
>>
>>> The PCX500 driver is *not* platform specific which mean no matter it is
>>> x86,
>>> ARM, even MIPS SHx it should still be working.
>>> And in the other hand, which code have you changed and how it you
>>> SOURCES
>>> file looks like?
>>
>
>