# zx_framebuffer_set_range

## NAME

<!-- Contents of this heading updated by update-docs-from-fidl, do not edit. -->

TODO(fxbug.dev/32938)

## SYNOPSIS

<!-- Contents of this heading updated by update-docs-from-fidl, do not edit. -->

```c
#include <zircon/syscalls.h>

zx_status_t zx_framebuffer_set_range(zx_handle_t resource,
                                     zx_handle_t vmo,
                                     uint32_t len,
                                     uint32_t format,
                                     uint32_t width,
                                     uint32_t height,
                                     uint32_t stride);
```

## DESCRIPTION

TODO(fxbug.dev/32938)

## RIGHTS

<!-- Contents of this heading updated by update-docs-from-fidl, do not edit. -->

*resource* must have resource kind **ZX_RSRC_KIND_ROOT**.

## RETURN VALUE

TODO(fxbug.dev/32938)

## ERRORS

TODO(fxbug.dev/32938)

## SEE ALSO


TODO(fxbug.dev/32938)
