Вот некоторые особенности:
- Автоматически созданные IDirect3DDevice9 ресурсы (BackBuffer, автоматически созданный depth-stencil surface, основной SwapChain) нельзя удалить, т.е. Release() можно вызывать хоть до бесконечности он будет возвращать кол-во ссылок 0 и не удалит ресурс.
- Само устройство не увеличивает кол-во ссылок на автоматически созданные ресурсы.
- Пока ресурс забинджен в устройство (с помощью SetTexture, SetRenderTarget или SetDepthStencilSurface) его нельзя удалить, при попытке удалить его счетчик ссылок не будет опускать ниже 0. После того устройство освободит ресурс если кол-во ссылок ресурса равно нулю он будет удален.
- У текстуры и её поверхностей общий счетчик ссылок.