Paul,
Thanks for the quick response. I am new to drivers and CE so I apologize if
I am missing the obvious.
The ndis.h in C:\WINCE600\PUBLIC\COMMON\DDK\INC\ndis.h defines
NdisInterlockedPushEntrySList as ExInterlockedPushEntrySList with the same
parameter list. The actual text in C:\WINCE600\PUBLIC\COMMON\DDK\INC\ndis.h is
#define NdisInterlockedPushEntrySList(SListHead, SListEntry, Lock) \
ExInterlockedPushEntrySList(SListHead, SListEntry, &(Lock)->SpinLock)
when I attempt to compile driver code with a reference to
NdisInterlockedPushEntrySList I get a warning that
ExInterlockedPushEntrySList is not defined. I could not find any other
refernce to ExInterlockedPushEntrySList in any other file in the Platform
Builder (c:\WINCE600) tree.
I looked for wdmlib.dll in the same tree and did not find it. I suspect that
ExInterlockedPushEntrySList is not defined for Windows CE but is defined for
Windows XP, .NET, and W2K.
Thanks.
Mawc
> You're looking for the parameter list or the import library? It's in
> wdmlib.dll, I think.
[quoted text clipped - 11 lines]
> > file in Platform Builder for ExInterlockedPushEntrySList. Where do I find
> > the definition for ExInterlockedPushEntrySList?
Paul G. Tobey [eMVP] - 20 Mar 2008 20:16 GMT
It's defined internally in NDIS files that you probably don't have access
to; I can see it there. I suppose that you could just declare it in your
own C files that need the function and that should clear the compiler
warning.
Paul T.
> Paul,
>
[quoted text clipped - 43 lines]
>> > find
>> > the definition for ExInterlockedPushEntrySList?
Mawc McNeil - 20 Mar 2008 22:43 GMT
In which files do you see it declared? Perhaps I need to install another
catalog item. I checked the list of items but I don't see anything obvious.
Unfortunately, this is not the only API causing the problem. In total I am
getting errors in:
NdisInitializeSListHead (defined as ExInitializeSListHead)
NdisInterlockedPushEntrySList (defined as ExInterlockedPushEntrySList)
NdisInterlockedPopEntrySList (defined asExInterlockedPopEntrySList)
I'll try declaring it on my own. Thanks again.
Mawc
> It's defined internally in NDIS files that you probably don't have access
> to; I can see it there. I suppose that you could just declare it in your
[quoted text clipped - 50 lines]
> >> > find
> >> > the definition for ExInterlockedPushEntrySList?
Paul G. Tobey [eMVP] - 20 Mar 2008 23:03 GMT
No, it's not a catalog problem. I have the source to ndis and, unless you
have the Premium Source (you'd know if you'd been through the trouble to get
ahold of *that*, believe me), you don't.
Yes, all of those are mapped inside ndis itself to the corresponding Ex
functions. I think that they are all imported via wdmlib.lib.
Paul T.
> In which files do you see it declared? Perhaps I need to install another
> catalog item. I checked the list of items but I don't see anything
[quoted text clipped - 71 lines]
>> >> > find
>> >> > the definition for ExInterlockedPushEntrySList?
Mawc McNeil - 24 Mar 2008 17:16 GMT
Paul,
I did a text search in the WINCE600 root directory and all sub directories
for "ExInitializeSListHead" and could not find any references to it other
than in ndis.h. I got the same result checking for the other Ex..SList calls.
What is the full pathname of the files where you see these APIs defined? Do
you see them in any header files?
I searched using findstr:
C:\WINCE600>findstr /s /m /i ExInitializeSListHead *.*
Thanks.
Mawc
> No, it's not a catalog problem. I have the source to ndis and, unless you
> have the Premium Source (you'd know if you'd been through the trouble to get
[quoted text clipped - 80 lines]
> >> >> > find
> >> >> > the definition for ExInterlockedPushEntrySList?
Paul G. Tobey [eMVP] - 24 Mar 2008 17:26 GMT
Again, it's an internal NDIS call, used, as far as I can tell, only by NDIS
components themselves. The path is where I installed the Premium Source, so
its actual value is irrelevant; you don't have it.
Paul T.
> Paul,
>
[quoted text clipped - 109 lines]
>> >> >> > find
>> >> >> > the definition for ExInterlockedPushEntrySList?
Mawc McNeil - 24 Mar 2008 20:44 GMT
I reported this problem to Microsoft. I'll post the response.
> Again, it's an internal NDIS call, used, as far as I can tell, only by NDIS
> components themselves. The path is where I installed the Premium Source, so
[quoted text clipped - 115 lines]
> >> >> >> > find
> >> >> >> > the definition for ExInterlockedPushEntrySList?
Paul G. Tobey [eMVP] - 24 Mar 2008 20:56 GMT
Would be good to know. Thanks,
Paul T.
>I reported this problem to Microsoft. I'll post the response.
>
[quoted text clipped - 133 lines]
>> >> >> >> > find
>> >> >> >> > the definition for ExInterlockedPushEntrySList?
Mawc McNeil - 31 Mar 2008 17:27 GMT
Paul,
Microsoft responded and stated that the SList functions are not supported.
They do plan to correct the documentation with a KB article and an update to
the CE documentation in the MSDN. This response was what I expected. In the
end, I created my own SList functions but am not at the point where I can
test my driver to make sure they work.
Mawc
> Would be good to know. Thanks,
>
[quoted text clipped - 137 lines]
> >> >> >> >> > find
> >> >> >> >> > the definition for ExInterlockedPushEntrySList?
Paul G. Tobey [eMVP] - 31 Mar 2008 18:06 GMT
Way it goes, I guess. Too bad that it's not easier to port from the
desktop.
Paul T.
> Paul,
>
[quoted text clipped - 169 lines]
>> >> >> >> >> > find
>> >> >> >> >> > the definition for ExInterlockedPushEntrySList?