def matches(self, filter, layer=Layer.NETWORK):
buff, buff_ = self.__to_buffers()<EOL>return windivert_dll.WinDivertHelperEvalFilter(filter.encode(), layer, ctypes.byref(buff_), len(self.raw),<EOL>ctypes.byref(self.wd_addr))<EOL>
Evaluates the packet against the given packet filter string.

The remapped function is::

    BOOL WinDivertHelperEvalFilter(
        __in const char *filter,
        __in WINDIVERT_LAYER layer,
        __in PVOID pPacket,
        __in UINT packetLen,
        __in PWINDIVERT_ADDRESS pAddr
    );

See: https://reqrypt.org/windivert-doc.html#divert_helper_eval_filter

:param filter: The filter string.
:param layer: The network layer.
:return: True if the packet matches, and False otherwise.