D3DXCreateTextureの引数とLockRect, SetRenderTargetの成否との関係について記します。
想定しているのは下図のような状況。
無題
・関数の説明
- D3DXCreateTexure
テクスチャを生成する関数。引数としてUsageとD3DFORMATを与える。

- LockRect
テクスチャのデータを読み書きするための関数。

- SetRenderTarget
レンダーターゲットを設定する関数。

・D3DXCreateTextureの引数
- Usage
テクスチャの使われ方を示す引数。
引数の主な値としてD3DUSAGE_DYNAMICとD3DUSAGE_RENDERTARGETがある。
D3DUSAGE_DYNAMICはデータの読み書きを行えることを示す。
D3DUSAGE_RENDERTARGETはレンダーターゲットとして設定できることを示す。

- D3DFORMAT
テクスチャのフォーマットを示す引数。
カラー情報を格納するもの(D3DFMT_A8R8G8B8など)とデプスステンシル情報を格納するもの(D3DFMT_D24S8など)に大別される。

・D3DXCreateTextureの成否
- 複数のUsageを設定すると失敗。
- カラー情報を格納するD3DFORMATは、D3DUSAGE_DYNAMICとD3DUSAGE_RENDERTARGETの両方と組み合わせて設定できる。
- デプスステンシル情報を格納するD3DFORMATは、D3DUSAGE_RENDERTARGETと組み合わせて設定することができない。

・LockRectの成否
- D3DUSAGE_DYNAMICなら成功。

・SetRenderTargetの成否
- D3DUSAGE_RENDERTARGETなら成功。

以上のような条件があるため、下記サイトに示されているような問題が面倒が発生するようです。
http://marupeke296.com/DXG_No43_ZBufferTexture.html