implemented NdisScheduleWorkItem writen by me and arty

svn path=/trunk/; revision=32750
This commit is contained in:
Magnus Olsen 2008-03-22 22:11:54 +00:00
parent 9797b5eeb0
commit 6c16e66402
3 changed files with 35 additions and 11 deletions

View file

@ -269,5 +269,6 @@ NdisWritePciSlotInformation@20
NdisWritePcmciaAttributeMemory@16
TrFilterDprIndicateReceive@28
TrFilterDprIndicateReceiveComplete@4
NdisScheduleWorkItem@4
; EOF

View file

@ -10,7 +10,6 @@
#include "ndissys.h"
/*
* @unimplemented
*/
@ -1037,4 +1036,27 @@ NdisIMInitializeDeviceInstanceEx(
return NDIS_STATUS_FAILURE;
}
VOID
STDCALL
ndisProcWorkItemHandler(PVOID pContext)
{
PNDIS_WORK_ITEM pNdisItem = (PNDIS_WORK_ITEM)pContext;
pNdisItem->Routine(pNdisItem, pNdisItem->Context);
}
EXPORT
NDIS_STATUS
NdisScheduleWorkItem(
IN PNDIS_WORK_ITEM pWorkItem)
{
PWORK_QUEUE_ITEM pntWorkItem = (PWORK_QUEUE_ITEM)pWorkItem->WrapperReserved;
ExInitializeWorkItem(pntWorkItem, ndisProcWorkItemHandler, pWorkItem);
ExQueueWorkItem(pntWorkItem, CriticalWorkQueue);
return NDIS_STATUS_SUCCESS;
}
/* EOF */

View file

@ -2285,7 +2285,7 @@ NdisDestroyLookaheadBufferFromSharedMemory(
#endif
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_ARM)
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_ARM) || defined(_M_PPC)
/*
* VOID
@ -2309,17 +2309,17 @@ NdisDestroyLookaheadBufferFromSharedMemory(
#else
#define NdisMoveMappedMemory(Destination, Source, Length) \
{
PUCHAR _Dest = Destination, _Src = Source, _End = _Dest + Length;
while (_Dest < _End)
*_Dest++ = _Src++;
{ \
PUCHAR _Dest = Destination, _Src = Source, _End = _Dest + Length; \
while (_Dest < _End) \
*_Dest++ = _Src++; \
}
#define NdisZeroMappedMemory(Destination, Length) \
{
PUCHAR _Dest = Destination, _End = _Dest + Length;
while (_Dest < _End)
*_Dest++ = 0;
{ \
PUCHAR _Dest = Destination, _End = _Dest + Length; \
while (_Dest < _End) \
*_Dest++ = 0; \
}
#endif /* _M_IX86 or _M_AMD64 */
@ -4152,6 +4152,8 @@ typedef struct _NDIS_MINIPORT_WORK_ITEM {
PVOID WorkItemContext;
} NDIS_MINIPORT_WORK_ITEM, *PNDIS_MINIPORT_WORK_ITEM;
/* Forward declare to pick up a consistent type */
typedef struct _NDIS_WORK_ITEM;
#pragma warning(push)
typedef VOID (*NDIS_PROC)(struct _NDIS_WORK_ITEM *, PVOID);
#pragma warning(pop)
@ -4162,7 +4164,6 @@ typedef struct _NDIS_WORK_ITEM
UCHAR WrapperReserved[8*sizeof(PVOID)];
} NDIS_WORK_ITEM, *PNDIS_WORK_ITEM;
typedef struct _NDIS_BIND_PATHS {
UINT Number;
NDIS_STRING Paths[1];