Commit graph

207 commits

Author SHA1 Message Date
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
08288ba535 - Revert r36337 because the callers don't depend on the memory being zeroed
svn path=/branches/aicom-network-fixes/; revision=36358
2008-09-20 21:29:31 +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
5faf248d96 - Zero the memory after we allocate it
svn path=/branches/aicom-network-fixes/; revision=36337
2008-09-20 00:31:02 +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
0b7d92c4b3 - Fail if TCPSocket doesn't complete successfully
svn path=/branches/aicom-network-fixes/; revision=36311
2008-09-19 04:38:25 +00:00
Cameron Gutman
249fa88dd2 - Add the adapter to the adapter list only after it is bound to the IP layer
svn path=/branches/aicom-network-fixes/; revision=36310
2008-09-19 04:18:59 +00:00
Cameron Gutman
340fdfa3ff - Add the spin locks back that I removed
svn path=/branches/aicom-network-fixes/; revision=36256
2008-09-15 12:54:53 +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
526d298a08 - Revert r36141 and r36102
- They cause a strange mIRC crash

svn path=/branches/aicom-network-fixes/; revision=36151
2008-09-12 03:53:09 +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
151277c30a - Set Status to STATUS_SUCCESS
svn path=/branches/aicom-network-fixes/; revision=36148
2008-09-12 02:43:05 +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
f56eb2a402 - Make sure we successfully allocated memory
svn path=/branches/aicom-network-fixes/; revision=36144
2008-09-11 19:43:19 +00:00
Cameron Gutman
03e6d425e5 - Fix 2 typos
svn path=/branches/aicom-network-fixes/; revision=36143
2008-09-11 19:15:35 +00:00
Cameron Gutman
8e9ec3d648 - Nicer solution for the problem fixed in r36102
svn path=/branches/aicom-network-fixes/; revision=36141
2008-09-11 18:17:11 +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
48c47e07e6 - Return the correct status
svn path=/branches/aicom-network-fixes/; revision=36107
2008-09-10 07:43:05 +00:00
Cameron Gutman
8cf22aef05 - Don't call IoCompleteRequest while holding a spin lock because it can cause deadlocks
svn path=/branches/aicom-network-fixes/; revision=36102
2008-09-10 04:59:12 +00:00
Cameron Gutman
e39210e30a - Remove the spin locks around NdisSend because it causes a crash in kvmnet
svn path=/branches/aicom-network-fixes/; revision=36101
2008-09-10 03:54:46 +00:00
Cameron Gutman
55a1919cbf - Set ContextSize when we allocate it
- Remove the context size check so we always create a new one now
 - Now we succeed regardless of the current context size

svn path=/branches/aicom-network-fixes/; revision=36100
2008-09-10 02:52:22 +00:00
Cameron Gutman
16fabd560b - Fix a memory leak
svn path=/branches/aicom-network-fixes/; revision=36094
2008-09-09 19:47:12 +00:00
Cameron Gutman
8b9d9a57c7 - Release the spin lock before returning
svn path=/branches/aicom-network-fixes/; revision=36075
2008-09-09 00:58:44 +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
8ea40ee79e - Return the actual status not NDIS_STATUS_SUCCESS always
svn path=/branches/aicom-network-fixes/; revision=36070
2008-09-08 23:27:52 +00:00
Cameron Gutman
23787cbeb2 - Make sure we successfully allocated memory
svn path=/branches/aicom-network-fixes/; revision=36042
2008-09-07 19:38:21 +00:00
Cameron Gutman
f410547dd1 - Return NDIS_STATUS_RESOURCES not NDIS_STATUS_NOT_ACCEPTED when we fail to allocate memory
svn path=/branches/aicom-network-fixes/; revision=36009
2008-09-06 21:45:23 +00:00
Cameron Gutman
38a8193915 - Forgot this file from r36006
svn path=/branches/aicom-network-fixes/; revision=36008
2008-09-06 21:42:58 +00:00
Cameron Gutman
0658669a1e - Check status from RawIPStartup, UDPStartup, and TCPStartup
svn path=/branches/aicom-network-fixes/; revision=36007
2008-09-06 21:36:55 +00:00
Cameron Gutman
4c942b62d6 - Fix a code typo
svn path=/branches/aicom-network-fixes/; revision=36004
2008-09-06 20:52:54 +00:00
Cameron Gutman
36b4bed9c8 - Use NewBuf instead of Data so we actually use the buffer we allocate
svn path=/branches/aicom-network-fixes/; revision=36003
2008-09-06 20:42:10 +00:00
Cameron Gutman
b732baa632 - Return NDIS_STATUS_RESOURCES not STATUS_NO_MEMORY
svn path=/branches/aicom-network-fixes/; revision=36002
2008-09-06 20:37:06 +00:00
Cameron Gutman
0d461c29a8 - Return TDI_NO_RESOURCES instead of TDI_INVALID_REQUEST when we can't allocate memory
svn path=/branches/aicom-network-fixes/; revision=36001
2008-09-06 20:27:56 +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
Cameron Gutman
14d8dfbd90 - Accept STATUS_SUCCESS also as done in config.c
svn path=/branches/aicom-network-fixes/; revision=35919
2008-09-03 23:37:09 +00:00
Cameron Gutman
26b1ba0f02 - Initially set NdisProtocolHandle to NULL
svn path=/branches/aicom-network-fixes/; revision=35889
2008-09-02 18:38:42 +00:00
Cameron Gutman
87315e4ac4 - STATUS_SUCCESS -> NDIS_STATUS_SUCCESS
svn path=/branches/aicom-network-fixes/; revision=35868
2008-09-01 22:59:04 +00:00
Cameron Gutman
ae2f6e5543 - Set Status
svn path=/branches/aicom-network-fixes/; revision=35867
2008-09-01 22:48:03 +00:00
Cameron Gutman
480dd52090 - Initially set Packet to NULL
svn path=/branches/aicom-network-fixes/; revision=35856
2008-09-01 13:12:34 +00:00
Cameron Gutman
bbf9cb252c - Don't return NDIS_STATUS_SUCCESS when we really failed
svn path=/branches/aicom-network-fixes/; revision=35849
2008-09-01 03:58:34 +00:00
Cameron Gutman
1443f6833b - Initially set PoolHandle, ConfigurationHandle, KeyHandle, and Filter to NULL
- Initially set PortOffset to 0
 - Fix 4 memory leaks
 - Remove a useless if

svn path=/branches/aicom-network-fixes/; revision=35848
2008-09-01 03:13:35 +00:00
Cameron Gutman
954aed91f2 - Change the status to STATUS_SUCCESS if TdiReceive returns STATUS_PENDING
svn path=/branches/aicom-network-fixes/; revision=35787
2008-08-30 03:29:41 +00:00
Cameron Gutman
1cc8981800 - Check if TdiBuildNullConnectionInfo completed successfully
- Add a comment
 - Fail if we can't allocate Qelt

svn path=/branches/aicom-network-fixes/; revision=35786
2008-08-30 02:53:20 +00:00
Cameron Gutman
b8a0800ce6 - FCB->State gets set to SOCKET_STATE_CONNECTED in MakeSocketIntoConnection
svn path=/branches/aicom-network-fixes/; revision=35785
2008-08-30 02:40:26 +00:00
Cameron Gutman
60899277f8 - Check if MakeSocketIntoConnection succeeded
- Check if TaCopyTransportAddress succeeded

svn path=/branches/aicom-network-fixes/; revision=35784
2008-08-30 02:30:27 +00:00
Cameron Gutman
17c1d9b828 - Check that we successfully allocated memory
- Return TDI_NO_RESOURCES instead of STATUS_NO_MEMORY

svn path=/branches/aicom-network-fixes/; revision=35783
2008-08-30 02:04:30 +00:00
Cameron Gutman
ac9f7a78b0 - Returning STATUS_BUFFER_OVERFLOW is ok also since we're only trying to get DriverKeyLength
svn path=/branches/aicom-network-fixes/; revision=35761
2008-08-29 14:33:42 +00:00
Cameron Gutman
b4b79146c7 - Revert my last commit
- Looks like this is meant to fail
 - I added a comment so no one does this again

svn path=/branches/aicom-network-fixes/; revision=35745
2008-08-29 04:23:10 +00:00
Cameron Gutman
cf392f00f6 - Fix a code typo resulting in calls to MiQueryResources to return early
svn path=/branches/aicom-network-fixes/; revision=35744
2008-08-29 03:59:25 +00:00
Cameron Gutman
8fa497277d - Free the address we've previously allocated if needed
svn path=/branches/aicom-network-fixes/; revision=35743
2008-08-29 02:19:16 +00:00
Cameron Gutman
976fe9f031 - Set Handle to NULL so we don't try to close it later
svn path=/branches/aicom-network-fixes/; revision=35741
2008-08-29 01:08:55 +00:00
Cameron Gutman
abd660f2dc - Revert my whole ASSERT mess
- This fixes Qemu

svn path=/branches/aicom-network-fixes/; revision=35611
2008-08-24 19:53:16 +00:00
Cameron Gutman
0a84b51976 - Apply the same change in my branch as I did to trunk in r35602
svn path=/branches/aicom-network-fixes/; revision=35610
2008-08-24 19:28:25 +00:00
Cameron Gutman
7a30e67498 - Add another missing PollReeval
svn path=/branches/aicom-network-fixes/; revision=35609
2008-08-24 19:21:41 +00:00
Cameron Gutman
63ba865297 - Revert r35601
- This should always be set if FCB->CurrentThread is non-NULL

svn path=/branches/aicom-network-fixes/; revision=35607
2008-08-24 18:32:19 +00:00
Cameron Gutman
d70ad469a8 - Set FCB->Locked to TRUE after we increment the lock count
svn path=/branches/aicom-network-fixes/; revision=35601
2008-08-24 16:20:14 +00:00
Cameron Gutman
a66142aff9 - Add some missing calls to PollReeval
- Move an existing PollReeval to always be called

svn path=/branches/aicom-network-fixes/; revision=35597
2008-08-24 13:56:35 +00:00
Cameron Gutman
e4a04351f2 - Fail if DatagramRecv->Address is NULL
svn path=/branches/aicom-network-fixes/; revision=35596
2008-08-24 13:25:19 +00:00
Cameron Gutman
963205e8b8 - Set *ConnectionInfo to NULL if we can't allocate memory for ConnInfo
svn path=/branches/aicom-network-fixes/; revision=35589
2008-08-24 02:55:26 +00:00
Cameron Gutman
4f54a68190 - Skip ObReferenceObjectByHandle if HandleArray[i].Handle is NULL
- Fail if ObReferenceObjectByHandle didn't succeed
 - Remove a bad ASSERT I added in my last commit

svn path=/branches/aicom-network-fixes/; revision=35583
2008-08-24 01:34:17 +00:00
Cameron Gutman
98c2a1ea67 - Fail if MmProbeAndLockPages doesn't succeed
- Fail if IoAllocateMdl returns NULL
 - Add some ASSERTs

svn path=/branches/aicom-network-fixes/; revision=35582
2008-08-24 01:09:48 +00:00
Cameron Gutman
e2c0738526 - Make sure IPAddr is non-NULL
- Change STATUS_UNSUCCESSFUL to STATUS_INVALID_PARAMETER

svn path=/branches/aicom-network-fixes/; revision=35579
2008-08-23 22:06:49 +00:00
Cameron Gutman
055139fc07 - Code cleanup
- Make sure FCB->RemoteAddress is non-NULL

svn path=/branches/aicom-network-fixes/; revision=35578
2008-08-23 21:53:37 +00:00
Cameron Gutman
2d966ffcfb - Make sure FCB->AddressFrom is non-NULL
svn path=/branches/aicom-network-fixes/; revision=35577
2008-08-23 21:41:10 +00:00
Cameron Gutman
fb0a6601f9 - More STATUS_UNSUCCESSFUL to STATUS_INVALID_PARAMETER changes
svn path=/branches/aicom-network-fixes/; revision=35538
2008-08-22 19:35:20 +00:00
Cameron Gutman
e233f4f784 - Return a more accurate status (STATUS_INVALID_PARAMETER) than STATUS_UNSUCCESSFUL when a parameter is NULL
svn path=/branches/aicom-network-fixes/; revision=35536
2008-08-22 19:26:30 +00:00
Cameron Gutman
3b1ae0bb37 - Replace MmMapLockedPages with MmGetSystemAddressForMdlSafe
- Add a check to UnlockRequest
 - Enclose MmProbeAndLockPages in SEH
 - Fixes bug 3672

svn path=/branches/aicom-network-fixes/; revision=35507
2008-08-21 14:46:03 +00:00
Cameron Gutman
3b40e9b047 - Reapply r35481
svn path=/branches/aicom-network-fixes/; revision=35486
2008-08-20 19:06:43 +00:00
Cameron Gutman
df19533df7 - Fix IRP cancellation issues
- Ping doesn't hang anymore

svn path=/branches/aicom-network-fixes/; revision=35485
2008-08-20 18:50:26 +00:00
Cameron Gutman
67fae61a27 - Revert 35477-35481
svn path=/branches/aicom-network-fixes/; revision=35484
2008-08-20 18:46:38 +00:00
Cameron Gutman
9b492699af - Fix handling of cancelled IRPs
svn path=/branches/aicom-network-fixes/; revision=35481
2008-08-20 17:29:01 +00:00
Cameron Gutman
6159e6d129 - Don't forget about ConnectIrp (This fix was lost in the merge)
- Don't destroy the same socket twice
 - Don't unlock the same socket twice
 - Don't destroy a socket with pending IRPs

svn path=/branches/aicom-network-fixes/; revision=35480
2008-08-20 14:56:12 +00:00
Cameron Gutman
3def13f731 - Fix build
svn path=/branches/aicom-network-fixes/; revision=35479
2008-08-20 14:48:42 +00:00
Cameron Gutman
a796846871 - The rest of the merge
- This will most likely need fixing later

svn path=/branches/aicom-network-fixes/; revision=35478
2008-08-20 14:43:33 +00:00
Cameron Gutman
8b269440fd - Reapply arty's datagram cancellation work
- Part 1 of 3

svn path=/branches/aicom-network-fixes/; revision=35477
2008-08-20 14:21:08 +00:00
Cameron Gutman
fcdbf0c9d5 - Move LockBuffers
- Remove a duplicate debug print

svn path=/branches/aicom-network-fixes/; revision=35469
2008-08-20 01:42:12 +00:00
Cameron Gutman
95efddbf54 - Use FCB->Connection.Object instead of FCB->AddressFile.Object
- Spotted by Arty

svn path=/branches/aicom-network-fixes/; revision=35468
2008-08-20 01:10:13 +00:00