[pascal]var
Mesh: ID3DXMesh;
AttribTableSize: DWORD;
AttribTable: array of TD3DXAttributeRange;
begin
...
Mesh.Optimize(D3DXMESHOPT_ATTRSORT....);

Mesh.GetAttributeTable(nil, @AttribTableSize);
SetLength(AttribTable, AttribTableSize);
Mesh.GetAttributeTable(@AttribTable[0], @AttribTableSize);

// here you get attribute ranges --- later lock vertex buffer...
[/pascal]