Commit graph

183 commits

Author SHA1 Message Date
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
Cameron Gutman
5c1039783c - Fix a bug that resulted in the status getting changed if TdiQueryInformation failed
svn path=/branches/aicom-network-fixes/; revision=35467
2008-08-19 23:50:41 +00:00
Cameron Gutman
0afe589112 - Use MmGetSystemAddressForMdlSafe instead of MmMapLockedPages
- Noticed by Alex

svn path=/branches/aicom-network-fixes/; revision=35466
2008-08-19 23:44:11 +00:00
Cameron Gutman
717ec21981 - Fix a memory leak
svn path=/branches/aicom-network-fixes/; revision=35463
2008-08-19 21:45:08 +00:00
Cameron Gutman
735fdd1782 - Make sure we have an mdl and a buffer
svn path=/branches/aicom-network-fixes/; revision=35457
2008-08-19 17:45:53 +00:00
Cameron Gutman
2a199d0cb2 - SEHify LockRequest
- Free everything and return if MmMapLockedPages fails

svn path=/branches/aicom-network-fixes/; revision=35454
2008-08-19 16:23:01 +00:00
Cameron Gutman
ea2d464b14 - MmMapLockedPages takes KPROCESSOR_MODE not LOCK_OPERATION as the second parameter
svn path=/branches/aicom-network-fixes/; revision=35453
2008-08-19 16:06:36 +00:00
Cameron Gutman
1c3484cdd1 - Make sure we don't complete with STATUS_SUCCESS if MmMapLockedPages fails
- Move and enable MmUnlockPages and IoFreeMdl

svn path=/branches/aicom-network-fixes/; revision=35446
2008-08-19 04:36:05 +00:00
Cameron Gutman
6b5a88dd52 - Use the correct ioctl
svn path=/branches/aicom-network-fixes/; revision=35439
2008-08-18 23:41:23 +00:00
Cameron Gutman
bd043fd1cf - Call MmProbeAndLockPages for SysMdl
svn path=/branches/aicom-network-fixes/; revision=35431
2008-08-18 14:00:27 +00:00
Cameron Gutman
8b67a0b644 - Change STATUS_UNSUCCESSFUL to STATUS_FILE_CLOSED
- Move the Irp->Cancel check after SocketAcquireStateLock to fix a possible crash
 - Change STATUS_INVALID_PARAMETER to STATUS_FILE_CLOSED
 - Move SocketAcquireStateLock in front of the check for a NULL return from LockRequest to prevent another possible crash

svn path=/branches/aicom-network-fixes/; revision=35419
2008-08-17 22:12:31 +00:00
Cameron Gutman
ec037e4d9d - Call SocketStateUnlock before returning
- Don't complete the IRP again in the completion routine

svn path=/branches/aicom-network-fixes/; revision=35418
2008-08-17 21:48:09 +00:00
Cameron Gutman
54a02c3ea8 - Make sure we successfully allocated ConnectionReturnInfo and ConnectionCallInfo
- Make sure ObReferenceObjectByHandle was successful

svn path=/branches/aicom-network-fixes/; revision=35398
2008-08-16 21:16:41 +00:00
Cameron Gutman
05a4dffa6e - Move SocketAcquireStateLock out of SEH
svn path=/branches/aicom-network-fixes/; revision=35393
2008-08-16 15:06:12 +00:00
Cameron Gutman
3f184e689d - Move MmUnlockPages to the proper place (still commented out though)
svn path=/branches/aicom-network-fixes/; revision=35391
2008-08-16 14:23:58 +00:00
Cameron Gutman
0c3f9f9d05 - Fix another memory leak
svn path=/branches/aicom-network-fixes/; revision=35385
2008-08-16 11:59:54 +00:00
Cameron Gutman
19d28c4deb - Raise the maximum IRQL that this routine is callable to APC_LEVEL
svn path=/branches/aicom-network-fixes/; revision=35363
2008-08-16 00:28:33 +00:00
Cameron Gutman
6696dcbc45 - Fix a memory leak that occurs when AfdSetContext is called with a buffer that is too small
- Properly return STATUS_BUFFER_TOO_SMALL when the buffer passed is too small

svn path=/branches/aicom-network-fixes/; revision=35358
2008-08-15 18:26:52 +00:00
Cameron Gutman
3f603adf26 - Fix a typo resulting in any call to AfdGetSockOrPeerName with Local set to FALSE to return STATUS_NO_MEMORY
svn path=/branches/aicom-network-fixes/; revision=35356
2008-08-15 18:14:55 +00:00
Cameron Gutman
76f11722e8 - Fix a possible crash
- Fix 2 memory leaks

svn path=/branches/aicom-network-fixes/; revision=35343
2008-08-14 17:13:11 +00:00
Cameron Gutman
5cf6890ee7 - Always set Irp->IoStatus.Status
- Clear the cancel routine only when completing

svn path=/branches/aicom-network-fixes/; revision=35340
2008-08-14 15:14:32 +00:00
Cameron Gutman
e5e4035c8d - Set Buf to NULL so we don't try to free it again later
svn path=/branches/aicom-network-fixes/; revision=35306
2008-08-13 14:53:22 +00:00
Cameron Gutman
4afbde3127 - Revert r35279 due to some odd problems with UnlockBuffers when completing
svn path=/branches/aicom-network-fixes/; revision=35298
2008-08-13 04:40:39 +00:00
Cameron Gutman
e07f679c75 - Don't crash if we are already freed
- Some code frees the buffers right after an operation fails which is fine

svn path=/branches/aicom-network-fixes/; revision=35297
2008-08-13 02:55:05 +00:00
Cameron Gutman
90f6b947b8 - Move memory freeing to ListenComplete
svn path=/branches/aicom-network-fixes/; revision=35296
2008-08-13 00:19:34 +00:00