Don't understand the ethercard callback

Hi all.

Am trying to spend more time on understanding the ‘nuts and bolts’ of the code, instead of simply just copy and paste and fiddle until it works.

I have been searching for some time but can’t find an answer, or I am searching for the wrong terms.

I have code that includes :

#include <EtherCard.h>

char website[] PROGMEM = "";

void SendDataToServer(char* SendTxt) {
	ether.persistTcpConnection(true);
	ether.browseUrl(PSTR("/aaa/bbb/ccc.php?"), SendTxt, website, my_callback);
}

static void my_callback (byte status, word off, word len) {   // called when the client request is complete
	delay(300);
	Ethernet::buffer[off+300] = 0;
}

so the text / string / data / whatever, to send to the ccc.php page is set in SendTxt, and then I call the SendDataToServer function.

This part I understand.

The ether.browseUrl ( function ? ) does the ‘work’ and puts the response from the php script in the Ethernet::buffer, and calls the callback function : my_callback.

So if the php script outputs a page of text in response to the browse URL, that returned data is put in the Ethernet::buffer.

What I can’t find reference to, or a simple plain explanation for, is the 3 parameters in the my_callback function :
byte status
word off
word len

Once I have any idea of what these are, next question would be : what is the purpose of the line:

Ethernet::buffer[off+300] = 0;

TIA for replies and any explanations.