   [ EXECUTION WARNING #356: DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL ]
  As my program runs, In my output, the following messages displays continuallyD3D10: WARNING: ID3D10Device::Draw: Vertex Buffer at the input vertex slot 0 is not big enough for what the Draw*() call expects to traverse. This is OK, as reading off the end of the Buffer is defined to return 0. However the developer probably did not intend to make use of this behavior.  [ EXECUTION WARNING #356: DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL ]Not sure what this means. Below is the code I use to create a my vertex layoutbool MyGame::CreateObject(){//Create LayoutD3D10_INPUT_ELEMENT_DESC layout[] = {{"POSITION",0,DXGI_FORMAT_R32G32B32_FLOAT, 0 , 0, D3D10_INPUT_PER_VERTEX_DATA, 0},{"COLOR",0,DXGI_FORMAT_R32G32B32A32_FLOAT, 0 , 12, D3D10_INPUT_PER_VERTEX_DATA, 0},{"NORMAL",0,DXGI_FORMAT_R32G32B32A32_FLOAT, 0 , 28, D3D10_INPUT_PER_VERTEX_DATA, 0},{"TEXCOORD",0, DXGI_FORMAT_R32G32_FLOAT, 0 , 44, D3D10_INPUT_PER_VERTEX_DATA, 0}};UINT numElements = (sizeof(layout)/sizeof(layout[0]));modelObject.numVertices = sizeof(vertices)/sizeof(VertexPos);for(int i = 0; i < modelObject.numVertices; i += 3){D3DXVECTOR3 out;D3DXVECTOR3 v1 = vertices[0 + i].pos;D3DXVECTOR3 v2 = vertices[1 + i].pos;D3DXVECTOR3 v3 = vertices[2 + i].pos;D3DXVECTOR3 u = v2 - v1;D3DXVECTOR3 v = v3 - v1;D3DXVec3Cross(&out, &u, &v);D3DXVec3Normalize(&out, &out);vertices[0 + i].normal = out;vertices[1 + i].normal = out;vertices[2 + i].normal = out;}//Create buffer descD3D10_BUFFER_DESC bufferDesc;bufferDesc.Usage = D3D10_USAGE_DEFAULT;bufferDesc.ByteWidth = sizeof(VertexPos) * modelObject.numVertices;bufferDesc.BindFlags = D3D10_BIND_VERTEX_BUFFER;bufferDesc.CPUAccessFlags = 0;bufferDesc.MiscFlags = 0;D3D10_SUBRESOURCE_DATA initData;initData.pSysMem = vertices;//Create the bufferHRESULT hr = mpD3DDevice->CreateBuffer(&bufferDesc, &initData, &modelObject.pVertexBuffer);if(FAILED(hr))return false;LPCWSTR effectFilename = L"effect.fx";modelObject.pEffect = NULL; hr = D3DX10CreateEffectFromFile(effectFilename,NULL,NULL,"fx_4_0",D3D10_SHADER_ENABLE_STRICTNESS,0,mpD3DDevice,NULL,NULL,&modelObject.pEffect,NULL,NULL);if(FAILED(hr))return false;pProjectionMatrixVariable = modelObject.pEffect->GetVariableByName("Projection")->AsMatrix();pWorldMatrixVarible = modelObject.pEffect->GetVariableByName("WorldMatrix")->AsMatrix();pTextureSR = modelObject.pEffect->GetVariableByName("tex2D")->AsShaderResource();HRESULT pHResult = NULL;pHResult = D3DX10CreateShaderResourceViewFromFile(mpD3DDevice,L"crate.bmp",NULL,NULL,&textureSRV,NULL);pLightVarible = modelObject.pEffect->GetVariableByName("lightSource")->AsVector();//Dont sweat the technique. Get it!LPCSTR effectTechniqueName = "Render";D3DXVECTOR3 vLight(1.0f, 1.0f, 1.0f);pLightVarible->SetFloatVector(vLight);modelObject.pTechnique = modelObject.pEffect->GetTechniqueByName(effectTechniqueName);if(modelObject.pTechnique == NULL)return false;//Create Vertex layoutD3D10_PASS_DESC passDesc;modelObject.pTechnique->GetPassByIndex(0)->GetDesc(&passDesc);hr = mpD3DDevice->CreateInputLayout(layout, numElements,passDesc.pIAInputSignature,passDesc.IAInputSignatureSize,&modelObject.pVertexLayout);if(FAILED(hr))return false;return true;}Here is the game loop where I draw the objectvoid MyGame::GameDraw(){static float rotationAngleY = 15.0f;static float rotationAngleX = 0.0f;static D3DXMATRIX rotationXMatrix;static D3DXMATRIX rotationYMatrix;D3DXMatrixIdentity(&rotationXMatrix);D3DXMatrixIdentity(&rotationYMatrix);// create the rotation matrix using the rotation angleD3DXMatrixRotationY(&rotationYMatrix, rotationAngleY);D3DXMatrixRotationX(&rotationXMatrix, rotationAngleX);    rotationAngleY += (float)D3DX_PI * 0.0008f;rotationAngleX += (float)D3DX_PI * 0.0005f;WorldMatrix = rotationYMatrix * rotationXMatrix;    // Set the input layoutmpD3DDevice->IASetInputLayout(modelObject.pVertexLayout);pWorldMatrixVarible->SetMatrix((float*)&WorldMatrix);    // Set vertex buffer    UINT stride = sizeof(VertexPos);    UINT offset = 0;    mpD3DDevice->IASetVertexBuffers(0, 1, &modelObject.pVertexBuffer, &stride, &offset);    // Set primitive topologympD3DDevice->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST);//ViewMatrix._43 += 0.005f;// Combine and send the final matrix to the shaderD3DXMATRIX finalMatrix = (WorldMatrix * ViewMatrix * ProjectionMatrix);    pProjectionMatrixVariable->SetMatrix((float*)&finalMatrix);pTextureSR->SetResource(textureSRV);// make sure modelObject is valid    // Render a model object    D3D10_TECHNIQUE_DESC techniqueDescription;    modelObject.pTechnique->GetDesc(&techniqueDescription);// Loop through the technique passes    for(UINT p=0; p < techniqueDescription.Passes; ++p)    {   modelObject.pTechnique->GetPassByIndex(p)->Apply(0);// draw the cube using all 36 vertices and 12 trianglesmpD3DDevice->Draw(36,0);    }}And here is my vertices    // Create vertex bufferVertexPos vertices[] =    {// BACK SIDES{ D3DXVECTOR3(-5.0f,  5.0f, 5.0f), D3DXVECTOR4(1.0f,0.0f,0.0f,0.0f), D3DXVECTOR2(1.0,0.0)},{ D3DXVECTOR3(-5.0f, -5.0f, 5.0f), D3DXVECTOR4(1.0f,0.0f,0.0f,0.0f), D3DXVECTOR2(1.0,1.0)},{ D3DXVECTOR3(5.0f,  5.0f, 5.0f), D3DXVECTOR4(1.0f,0.0f,0.0f,0.0f),  D3DXVECTOR2(0.0,0.0)},{ D3DXVECTOR3(5.0f,  5.0f, 5.0f), D3DXVECTOR4(1.0f,0.0f,0.0f,0.0f), D3DXVECTOR2(0.0,0.0)},{ D3DXVECTOR3(-5.0f, -5.0f, 5.0f), D3DXVECTOR4(1.0f,0.0f,0.0f,0.0f), D3DXVECTOR2(1.0,1.0)},{ D3DXVECTOR3(5.0f,  -5.0f, 5.0f), D3DXVECTOR4(1.0f,0.0f,0.0f,0.0f), D3DXVECTOR2(0.0,1.0)},// 2 FRONT SIDE{ D3DXVECTOR3(-5.0f,  5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.0f,0.0f), D3DXVECTOR2(0.0,0.0)},{ D3DXVECTOR3(5.0f,  5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.0f,0.0f),  D3DXVECTOR2(1.0,0.0)},{ D3DXVECTOR3(-5.0f, -5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.0f,0.0f), D3DXVECTOR2(0.0,1.0)},{ D3DXVECTOR3(-5.0f, -5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.0f,0.0f), D3DXVECTOR2(0.0,1.0)},{ D3DXVECTOR3(5.0f,  5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.0f,0.0f) , D3DXVECTOR2(1.0,0.0)},{ D3DXVECTOR3(5.0f,  -5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.0f,0.0f), D3DXVECTOR2(1.0,1.0)},// 3{ D3DXVECTOR3(-5.0f, 5.0f,  5.0f), D3DXVECTOR4(0.0f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,0.0)},{ D3DXVECTOR3(5.0f, 5.0f,  5.0f),  D3DXVECTOR4(0.0f,0.0f,1.0f,0.0f), D3DXVECTOR2(2.0,0.0)},{ D3DXVECTOR3(-5.0f, 5.0f, -5.0f), D3DXVECTOR4(0.0f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,2.0)},{ D3DXVECTOR3(-5.0f, 5.0f, -5.0f), D3DXVECTOR4(0.0f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,2.0)},{ D3DXVECTOR3(5.0f, 5.0f, 5.0f), D3DXVECTOR4(0.0f,0.0f,1.0f,0.0f), D3DXVECTOR2(2.0,0.0)},{ D3DXVECTOR3(5.0f, 5.0f, -5.0f),  D3DXVECTOR4(0.0f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,2.0)},// 4{ D3DXVECTOR3(-5.0f, -5.0f,  5.0f), D3DXVECTOR4(1.0f,0.5f,0.0f,0.0f), D3DXVECTOR2(0.0,0.0)},{ D3DXVECTOR3(-5.0f, -5.0f, -5.0f), D3DXVECTOR4(1.0f,0.5f,0.0f,0.0f), D3DXVECTOR2(2.0,0.0)},{ D3DXVECTOR3(5.0f, -5.0f,  5.0f),  D3DXVECTOR4(1.0f,0.5f,0.0f,0.0f), D3DXVECTOR2(0.0,2.0)},{ D3DXVECTOR3(5.0f, -5.0f,  5.0f),  D3DXVECTOR4(1.0f,0.5f,0.0f,0.0f), D3DXVECTOR2(0.0,2.0)},{ D3DXVECTOR3(-5.0f, -5.0f, -5.0f), D3DXVECTOR4(1.0f,0.5f,0.0f,0.0f), D3DXVECTOR2(2.0,0.0)},{ D3DXVECTOR3(5.0f, -5.0f, -5.0f),  D3DXVECTOR4(1.0f,0.5f,0.0f,0.0f), D3DXVECTOR2(0.0,2.0)},// 5{ D3DXVECTOR3(5.0f,  5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.5f,0.0f), D3DXVECTOR2(0.0,0.0)},{ D3DXVECTOR3(5.0f,  5.0f,  5.0f), D3DXVECTOR4(0.0f,1.0f,0.5f,0.0f), D3DXVECTOR2(2.0,0.0)},{ D3DXVECTOR3(5.0f, -5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.5f,0.0f), D3DXVECTOR2(0.0,2.0)},{ D3DXVECTOR3(5.0f, -5.0f, -5.0f), D3DXVECTOR4(0.0f,1.0f,0.5f,0.0f), D3DXVECTOR2(0.0,2.0)},{ D3DXVECTOR3(5.0f,  5.0f,  5.0f), D3DXVECTOR4(0.0f,1.0f,0.5f,0.0f), D3DXVECTOR2(2.0,0.0)},{ D3DXVECTOR3(5.0f, -5.0f,  5.0f), D3DXVECTOR4(0.0f,1.0f,0.5f,0.0f), D3DXVECTOR2(0.0,2.0)},// 6{D3DXVECTOR3(-5.0f,  5.0f, -5.0f), D3DXVECTOR4(0.5f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,0.0)},{D3DXVECTOR3(-5.0f, -5.0f, -5.0f), D3DXVECTOR4(0.5f,0.0f,1.0f,0.0f), D3DXVECTOR2(2.0,0.0)},{D3DXVECTOR3(-5.0f,  5.0f,  5.0f), D3DXVECTOR4(0.5f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,2.0)},{D3DXVECTOR3(-5.0f,  5.0f,  5.0f), D3DXVECTOR4(0.5f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,2.0)},{D3DXVECTOR3(-5.0f, -5.0f, -5.0f), D3DXVECTOR4(0.5f,0.0f,1.0f,0.0f), D3DXVECTOR2(2.0,0.0)},{D3DXVECTOR3(-5.0f, -5.0f,  5.0f), D3DXVECTOR4(0.5f,0.0f,1.0f,0.0f), D3DXVECTOR2(0.0,2.0)},    };Honestly, I don't know where to start to figure out whats going on. If someone could point in the right direction. maybe that will help.
  You are creating a vertex buffer with a format of Position, Normal, Texcoord but you declare your vertex format in your layout variable as Position, Normal, Color, Texcoord.When you tell the device to render 36 vertices it does the math of 36 * sizeof(PNCT) and it finds that size to be larger than your buffer which is only 36 * sizeof(PNT).   