NDIS_STATUS TrDeleteFilterOpenAdapter( IN PTR_FILTER Filter, IN NDIS_HANDLE NdisFilterHandle, IN PNDIS_REQUEST NdisRequest ); Routine Description: When an adapter is being closed this routine should be called to delete knowledge of the adapter from the filter database. This routine is likely to call action routines associated with clearing filter classes and addresses. NOTE: THIS ROUTINE SHOULD ****NOT**** BE CALLED IF THE ACTION ROUTINES FOR DELETING THE FILTER CLASSES OR THE FUNCTIONAL ADDRESSES HAVE ANY POSSIBILITY OF RETURNING A STATUS OTHER THAN NDIS_STATUS_PENDING OR NDIS_STATUS_SUCCESS. WHILE THESE ROUTINES WILL NOT BUGCHECK IF SUCH A THING IS DONE, THE CALLER WILL PROBABLY FIND IT DIFFICULT TO CODE A CLOSE ROUTINE! NOTE: THIS ROUTINE ASSUMES THAT IT IS CALLED WITH THE LOCK HELD. Arguments: Filter - A pointer to the filter database. NdisFilterHandle - A pointer to the open. NdisRequest - If it is necessary to call the action routines, this will be passed to it. Return Value: If action routines are called by the various address and filtering routines the this routine will likely return the status returned by those routines. The exception to this rule is noted below. Given that the filter and address deletion routines return a status NDIS_STATUS_PENDING or NDIS_STATUS_SUCCESS this routine will then try to return the filter index to the freelist. If the routine detects that this binding is currently being indicated to via NdisIndicateReceive, this routine will return a status of NDIS_STATUS_CLOSING_INDICATING.