In other words a pointer of type xCreateWindowReq is placed in the client's buffer (the client struct that is found inside the X server) and the request fields are accessed. What looks interesting here is the 10th argument:

(XID *) &stuff[1]

which advances the pointer after the current xCreateWindowReq struct. As seen in section 1.2.2 and in image image1_3 XCreateSimpleWindow() after the XCreateWindowReq it places 8 additional bytes for the background and the border color that are not included in the XCreateWindowReq fields. In other words struct XCreateWindowReq is used mainly by XCreateWindow() and when used by XCreateSimpleWindow() its fields are extended by the additional bytes. When those bytes are placed
the mask of the request is updated to indicate that additional values should also be processed along with the XCreateWindowReq fields. This takes place in CrWindow.c:

req->mask = CWBackPixel | CWBorderPixel

The mask bits are taken into account when CreateWindow() calls ChangeWindowAttributes(), described latter in this text.

The DIX layer's CreateWindow() routine

CreateWindow() also a DIX routine which calls the screen specific CreateWindow routine as:

if (!(*pScreen->CreateWindow)(pWin))

We will continue with the request dispatching in section 3.2.5.3, where ReadRequestFromClient() is examined and then with section 7.1, where a compete example is presented.