func (obj *VolumeTexture) SetPrivateDataBytes(
	refguid GUID,
	data []byte,
	flags uint32,
) Error {
	return obj.SetPrivateData(
		refguid,
		uintptr(unsafe.Pointer(&data[0])),
		uint32(len(data)),
		flags,
	)
}
SetPrivateDataBytes associates data with the resource that is intended for
use by the application, not by Direct3D. Data is passed by value, and
multiple sets of data can be associated with a single resource.
package d3d9
import (
	"syscall"
	"unsafe"
)
type VolumeTexture struct {
	vtbl *volumeTextureVtbl
}
type volumeTextureVtbl struct {
	QueryInterface uintptr
	AddRef         uintptr
	Release        uintptr
	GetDevice                uintptr
	SetPrivateData           uintptr
	GetPrivateData           uintptr
	FreePrivateData          uintptr
	SetPriority              uintptr
	GetPriority              uintptr
	PreLoad                  uintptr
	D3DRESOURCETYPE, GetType uintptr
	SetLOD                   uintptr
	GetLOD                   uintptr
	GetLevelCount            uintptr
	SetAutoGenFilterType     uintptr
	GetAutoGenFilterType     uintptr
	GenerateMipSubLevels     uintptr
	GetLevelDesc             uintptr
	GetVolumeLevel           uintptr
	LockBox                  uintptr
	UnlockBox                uintptr
	AddDirtyBox              uintptr
}
func (obj *VolumeTexture) baseTexturePointer() uintptr {
	return uintptr(unsafe.Pointer(obj))
}
func (obj *VolumeTexture) AddRef() uint32 {
	ret, _, _ := syscall.Syscall(
		obj.vtbl.AddRef,
		1,
		uintptr(unsafe.Pointer(obj)),
		0,
		0,
	)
	return uint32(ret)
}
func (obj *VolumeTexture) Release() uint32 {
	ret, _, _ := syscall.Syscall(
		obj.vtbl.Release,
		1,
		uintptr(unsafe.Pointer(obj)),
		0,
		0,
	)
	return uint32(ret)
}
func (obj *VolumeTexture) GetDevice() (device *Device, err Error) {
	ret, _, _ := syscall.Syscall(
		obj.vtbl.GetDevice,
		2,
		uintptr(unsafe.Pointer(obj)),
		uintptr(unsafe.Pointer(&device)),
		0,
	)
	err = toErr(ret)
	return
}
func (obj *VolumeTexture) SetPrivateData(
	refguid GUID,
	data uintptr,
	sizeOfData uint32,
	flags uint32,
) Error {
	ret, _, _ := syscall.Syscall6(
		obj.vtbl.SetPrivateData,
		5,
		uintptr(unsafe.Pointer(obj)),
		uintptr(unsafe.Pointer(&refguid)),
		data,
		uintptr(sizeOfData),
		uintptr(flags),
		0,
	)
	return toErr(ret)
}