def insert_usb_device_filter(self, position, filter_p):
        """Inserts the given USB device to the specified position
        in the list of filters.
        
        Positions are numbered starting from @c 0. If the specified
        position is equal to or greater than the number of elements in
        the list, the filter is added at the end of the collection.
        
        
        Duplicates are not allowed, so an attempt to insert a
        filter already in the list is an error.
        
        
        If USB functionality is not available in the given edition of
        VirtualBox, this method will set the result code to @c E_NOTIMPL.
        
        
        :py:func:`usb_device_filters` 

        in position of type int
            Position to insert the filter to.

        in filter_p of type :class:`IHostUSBDeviceFilter`
            USB device filter to insert.

        raises :class:`VBoxErrorInvalidObjectState`
            USB device filter is not created within this VirtualBox instance.
        
        raises :class:`OleErrorInvalidarg`
            USB device filter already in list.
        
        """
        if not isinstance(position, baseinteger):
            raise TypeError("position can only be an instance of type baseinteger")
        if not isinstance(filter_p, IHostUSBDeviceFilter):
            raise TypeError("filter_p can only be an instance of type IHostUSBDeviceFilter")
        self._call("insertUSBDeviceFilter",
                     in_p=[position, filter_p])