Commit graph

59 commits

Author SHA1 Message Date
Cameron Gutman
1a255263e6 - Raise IRQL to DISPATCH_LEVEL before using KeAcquireSpinLockAtDpcLevel/KeReleaseSpinLockFromDpcLevel
svn path=/branches/aicom-network-fixes/; revision=36580
2008-09-28 19:58:09 +00:00
Cameron Gutman
1d8b2f1556 - Set MiniportBusy to TRUE if a request is pending
- Hold spin lock when setting MiniportBusy (forgot one from last time)

svn path=/branches/aicom-network-fixes/; revision=36558
2008-09-27 19:54:58 +00:00
Cameron Gutman
63ed3d8b4f - Don't add the protocol to the protocol list if binding failed
svn path=/branches/aicom-network-fixes/; revision=36557
2008-09-27 19:26:17 +00:00
Cameron Gutman
72f9da2665 - Protect MiniportBusy with a spin lock
- Adapter is PLOGICAL_ADAPTER not PNDIS_MINIPORT_BLOCK
 - Make sure memory allocation was successful
 - Cleanup code in ProRequest

svn path=/branches/aicom-network-fixes/; revision=36556
2008-09-27 19:00:47 +00:00
Cameron Gutman
a4c5f0d79c - Call ResetHandler directly
svn path=/branches/aicom-network-fixes/; revision=36552
2008-09-27 18:30:11 +00:00
Cameron Gutman
9826b2ad04 - Queue a work item in MiniReset if the adapter is currently busy
- Handle NdisWorkItemResetRequested in MiniportWorker
 - Remove a fixme

svn path=/branches/aicom-network-fixes/; revision=36551
2008-09-27 18:00:08 +00:00
Cameron Gutman
82e25f4548 - Fix a typo
- Fixes coverity error 388

svn path=/branches/aicom-network-fixes/; revision=36528
2008-09-26 03:43:07 +00:00
Cameron Gutman
df2275e5e3 - Add a debug print
svn path=/branches/aicom-network-fixes/; revision=36496
2008-09-24 22:00:02 +00:00
Cameron Gutman
b4f76ec0bb - MiniportAdapterHandle is PLOGICAL_ADAPTER not PNDIS_MINIPORT_BLOCK
svn path=/branches/aicom-network-fixes/; revision=36495
2008-09-24 21:56:07 +00:00
Cameron Gutman
23c2ae170f - Use timers so the code is much more simple and works better
svn path=/branches/aicom-network-fixes/; revision=36442
2008-09-23 23:59:43 +00:00
Cameron Gutman
0cabe4ffdb - Check for miniport hangs at the appropriate time
- Call MiniReset if required

svn path=/branches/aicom-network-fixes/; revision=36441
2008-09-23 20:54:02 +00:00
Cameron Gutman
63c5133b1c - Set CheckForHangSeconds to a default value of 2 if it wasn't set in MiniportInitialize
svn path=/branches/aicom-network-fixes/; revision=36438
2008-09-23 20:17:59 +00:00
Cameron Gutman
2d8a1d38bb - Set CheckForHangSeconds
svn path=/branches/aicom-network-fixes/; revision=36437
2008-09-23 20:10:35 +00:00
Cameron Gutman
8f1a94b39b - Call the CheckForHang handler at DISPATCH_LEVEL
- Implement MiniReset

svn path=/branches/aicom-network-fixes/; revision=36433
2008-09-23 18:44:17 +00:00
Cameron Gutman
faa10907ca - Implement MiniCheckForHang
svn path=/branches/aicom-network-fixes/; revision=36432
2008-09-23 18:24:19 +00:00
Cameron Gutman
24402d079c - Remove more useless code
svn path=/branches/aicom-network-fixes/; revision=36364
2008-09-21 03:21:34 +00:00
Cameron Gutman
252f7c71da - Set MiniportBusy to TRUE in MiniDequeueWorkItem instead of MiniQueueWorkItem
- Fail if another miniport request is still in progress

svn path=/branches/aicom-network-fixes/; revision=36363
2008-09-21 02:35:23 +00:00
Cameron Gutman
e6386dff73 - Remove some unneeded code
- Set MiniportBusy to TRUE if MiniDoRequest returns NDIS_STATUS_PENDING

svn path=/branches/aicom-network-fixes/; revision=36362
2008-09-21 01:55:16 +00:00
Cameron Gutman
36a831e55c - Only call MiniSendComplete if ProIndicatePacket didn't return NDIS_STATUS_PENDING
svn path=/branches/aicom-network-fixes/; revision=36359
2008-09-20 23:08:56 +00:00
Cameron Gutman
b7872654ed - The handle passed to MiniRequestComplete, NdisMQueryInformationComplete, and NdisMSetInformationComplete is the Adapter not the MiniportBlock
- Set MiniportBusy to FALSE in all the completion routines
 - Set MiniportBusy to TRUE in MiniQueueWorkItem
 - Only requeue the packet if it's a serialized miniport that returned NDIS_STATUS_RESOURCES
 - Hold the spin lock when requeuing the packet

svn path=/branches/aicom-network-fixes/; revision=36356
2008-09-20 17:10:30 +00:00
Cameron Gutman
d8dfacc28d - Queue the packet again if we currently don't have enough resources to process it
svn path=/branches/aicom-network-fixes/; revision=36336
2008-09-19 23:51:26 +00:00
Cameron Gutman
5620a8ecff - Initialize the callback record before calling KeRegisterBugCheckCallback so NdisMRegisterAdapterShutdownHandler should work now
svn path=/branches/aicom-network-fixes/; revision=36335
2008-09-19 23:41:28 +00:00
Cameron Gutman
face815dd6 - Code cleanup
- Set Status to NDIS_STATUS_NOT_SUPPORTED if we don't support the parameter type

svn path=/branches/aicom-network-fixes/; revision=36334
2008-09-19 23:18:12 +00:00
Cameron Gutman
f0e952b4b6 - Store the current thread
svn path=/branches/aicom-network-fixes/; revision=36333
2008-09-19 23:16:29 +00:00
Cameron Gutman
cfcc5a1f53 - Queue a work item for all packets
- Now I can add the spin locks back that I removed

svn path=/branches/aicom-network-fixes/; revision=36255
2008-09-15 12:44:16 +00:00
Cameron Gutman
72d8191116 - Use NDIS_GET_PACKET_STATUS to get the real status for the packet
- Set MiniportBusy to FALSE if Send/SendPacket didn't return NDIS_STATUS_PENDING

svn path=/branches/aicom-network-fixes/; revision=36250
2008-09-14 21:17:44 +00:00
Cameron Gutman
20165883fc - Merge r35555, r35575, r35576, and r36243 into my branch
svn path=/branches/aicom-network-fixes/; revision=36248
2008-09-14 20:01:36 +00:00
Cameron Gutman
3c6651a64e - Call a serialized miniport's Send/SendPackets handler at DISPATCH_LEVEL
svn path=/branches/aicom-network-fixes/; revision=36212
2008-09-14 05:30:06 +00:00
Cameron Gutman
91ac8bce6e - Change our method of queuing work items so we don't leak anymore
svn path=/branches/aicom-network-fixes/; revision=36211
2008-09-14 05:16:32 +00:00
Cameron Gutman
ac40a36ce9 - Queue a work item to do our work that was previously done in MiniportDpc so SendHandler gets called at the correct IRQL
svn path=/branches/aicom-network-fixes/; revision=36206
2008-09-14 04:02:04 +00:00
Cameron Gutman
86ca4446aa - Call KeAcquireSpinLockAtDpcLevel instead of KeAcquireSpinLock when possible
- Don't hold the spin lock as long in MiniportDpc

svn path=/branches/aicom-network-fixes/; revision=36198
2008-09-13 19:00:32 +00:00
Cameron Gutman
bd9013b5ae - Read the maximum packets that the driver allows to be sent at one time
- We don't use it yet

svn path=/branches/aicom-network-fixes/; revision=36195
2008-09-13 18:33:16 +00:00
Cameron Gutman
e1800f7c53 - unimplemented -> implemented
svn path=/branches/aicom-network-fixes/; revision=36193
2008-09-13 17:07:30 +00:00
Cameron Gutman
70f9713881 - Implement NdisDprFreePacket
- Implement NdisDprFreePacketNonInterlocked

svn path=/branches/aicom-network-fixes/; revision=36192
2008-09-13 16:40:45 +00:00
Cameron Gutman
8bea43b223 - Implement NdisDprAllocatePacketNonInterlocked
svn path=/branches/aicom-network-fixes/; revision=36191
2008-09-13 16:36:43 +00:00
Cameron Gutman
08c2fa4ccb - Implement NdisDprAllocatePacket
svn path=/branches/aicom-network-fixes/; revision=36190
2008-09-13 16:33:23 +00:00
Cameron Gutman
c875c6ffac - Hints from MSDN show that we should use MmGetSystemAddressForMdl instead of MmGetMdlVirtualAddress
svn path=/branches/aicom-network-fixes/; revision=36186
2008-09-13 12:45:26 +00:00
Cameron Gutman
e96b8c3c83 - Fix a possible crash
svn path=/branches/aicom-network-fixes/; revision=36185
2008-09-13 12:22:45 +00:00
Cameron Gutman
cba47cf99e - Call MiniportTransferData at DISPATCH_LEVEL
svn path=/branches/aicom-network-fixes/; revision=36169
2008-09-12 17:59:45 +00:00
Cameron Gutman
d4fe4b7aa4 - We must call MiniDequeueWorkItem while holding a spin lock
svn path=/branches/aicom-network-fixes/; revision=36150
2008-09-12 03:06:31 +00:00
Cameron Gutman
b26b70ddba - Call ProtocolRequestComplete at the correct IRQL
- Call ProtocolSendComplete at the correct IRQL

svn path=/branches/aicom-network-fixes/; revision=36149
2008-09-12 02:58:08 +00:00
Cameron Gutman
dc4e15ac9b - Call MiniportQueryInformation at the correct IRQL
- Call MiniportSetInformation at the correct IRQL
 - Call QueryInformationComplete at the correct IRQL
 - Call SetInformationComplete at the correct IRQL
 - All IRQLs verified by MSDN

svn path=/branches/aicom-network-fixes/; revision=36147
2008-09-11 20:57:51 +00:00
Cameron Gutman
4b72cb5e0f - We must call MiniQueueWorkItem while holding a spin lock
svn path=/branches/aicom-network-fixes/; revision=36134
2008-09-11 09:37:54 +00:00
Cameron Gutman
acb347a4eb - Fix 3 handle leaks
- Fix 2 memory leaks

svn path=/branches/aicom-network-fixes/; revision=36115
2008-09-10 09:34:28 +00:00
Cameron Gutman
dc08835ad7 - Remove the adapter from the global adapter list if we fail
svn path=/branches/aicom-network-fixes/; revision=36074
2008-09-09 00:17:02 +00:00
Cameron Gutman
128aeae543 - Make sure we set a failure status when we fail so we don't complete with NDIS_STATUS_SUCCESS when we really failed
svn path=/branches/aicom-network-fixes/; revision=36071
2008-09-08 23:42:14 +00:00
Cameron Gutman
6132fa321c - Code cleanup
svn path=/branches/aicom-network-fixes/; revision=36000
2008-09-06 20:18:42 +00:00
Cameron Gutman
85672737e6 - Handle AllocatedResources and AllocatedResourcesTranslated separately
- Fix a memory leak
 - Fix a handle leak

svn path=/branches/aicom-network-fixes/; revision=35964
2008-09-05 19:51:18 +00:00
Cameron Gutman
16427a1482 - Fix cleanup code
- We could possibly end up there with a NULL FileHandleObject and return a garbage FileHandle or crash
 - Now we always return a NULL FileHandle when we fail and free FileHandleObject if it has been allocated

svn path=/branches/aicom-network-fixes/; revision=35946
2008-09-04 19:08:08 +00:00
Cameron Gutman
4ff5fc5caa - Fix 2 memory leaks
- Set ParameterValue to NULL on failure

svn path=/branches/aicom-network-fixes/; revision=35944
2008-09-04 18:42:49 +00:00