beautypg.com

Efi_uga_io_protocol.createdevice(), Createdevice(), With – Intel Extensible Firmware Interface User Manual

Page 331

background image

Protocols

— Console Support

Version 1.10

12/01/02

10-37

EFI_UGA_IO_PROTOCOL.CreateDevice()

Summary

Dynamically allocate storage for a child

UGA_DEVICE

.

Prototype

typedef

EFI_STATUS

(EFIAPI *EFI_UGA_IO_CREATE_DEVICE) (

IN EFI_UGA_IO_PROTOCOL

*This,

IN UGA_DEVICE

*ParentDevice,

IN UGA_DEVICE_DATA

*DeviceData,

IN VOID

*RunTimeContext,

OUT UGA_DEVICE

**Device

);

Parameters

This

The

EFI_UGA_IO_PROTOCOL

instance. Type

EFI_UGA_IO_PROTOCOL

is defined in Section 10.7.

ParentDevice ParentDevice

specifies a pointer to the parent device of

Device

.

DeviceData

A pointer to

UGA_DEVICE_DATA

returned from a call to

DispatchService()

with a

UGA_DEVICE

of

Parent

and an

IoRequest

of type

UgaIoGetChildDevice

.

RuntimeContext

Context to associate with

Device

.

Device

The

Device

returns a dynamically allocated child

UGA_DEVICE

object

for

ParentDevice

. The caller is responsible for deleting

Device

.

Description

A

UGA_DEVICE

object contains data fields that are defined by this specification and pointers to

implementation specific data structures. Since a

UGA_DEVICE

contains implementation specific

data that must be dynamically allocated, the

CreateDevice()

member function is required to

create a

UGA_DEVICE

object to enable the enumerate all the child

UGA_DEVICE

(s).

The device must not be started when its

UGA_DEVICE

Device

is allocated.

Status Codes Returned

EFI_SUCCESS

Device

was returned

EFI_INVALID_PARAMETER

One of the arguments was not valid

EFI_DEVICE_ERROR

The device had an error and could not complete the request.