fuchsia.sys2

PROTOCOLS

Realm

Defined in fuchsia.sys2/realm.fidl

A protocol used by a component instance to manage its own realm, such as for binding to its children.

The component manager provides this service to components that use /svc/fuchsia.sys2.Realm.

BindChild

Binds to a child component instance, causing it to start running if it is not already. When this function successfully returns, child is running and exposed_dir is bound to a directory that contains the capabilities which the child exposed to its realm via ComponentDecl.exposes (specified via "expose" declarations in the component’s manifest).

exposed_dir is a valid channel as long as child is running. child will remain running until it either stops on its own, or DestroyChild causes the child instance to be destroyed.

For example, if the child exposes a service /svc/example.Echo then exposed_dir will contain that service at that path.

NOTE: BindChild does not support pipelining with CreateChild. If BindChild is called on an instance before CreateChild successfully returns, it may return INSTANCE_NOT_FOUND.

Errors: - INVALID_ARGUMENTS: child is not a valid child reference. - - INSTANCE_NOT_FOUND: child does not exist. - INSTANCE_CANNOT_START: child was not running and there was an error starting it. - INSTANCE_CANNOT_RESOLVE: child's component declaration failed to resolve.

Request

NameType
child ChildRef
exposed_dir request<fuchsia.io/Directory>

Response

NameType
result Realm_BindChild_Result

CreateChild

Creates a child component instance dynamically. When this function returns successfully, the instance exists, but it may not be running.

Errors: - INVALID_ARGUMENTS: collection is not a valid reference or child is not a valid declaration. - COLLECTION_NOT_FOUND: collection does not exist. - INSTANCE_ALREADY_EXISTS: decl.name already exists in collection. - NO_SPACE: Could not allocate storage for the new instance.

Request

NameType
collection CollectionRef
decl ChildDecl

Response

NameType
result Realm_CreateChild_Result

DestroyChild

Destroys a dynamically-created component instance. When this function returns, the client should assume the instance no longer exists. However, some cleanup (such as stopping the component instance or freeing its storage) may be performed in the background after the function returns.

Errors: - INVALID_ARGUMENTS: child is not a valid reference or does not refer to a dynamic instance. - INSTANCE_NOT_FOUND: child does not exist. - COLLECTION_NOT_FOUND: collection does not exist.

Request

NameType
child ChildRef

Response

NameType
result Realm_DestroyChild_Result

ListChildren

Returns an iterator that lists all instances in a collection.

NOTE: The results are not guaranteed to be consistent. Instances may be created or destroyed while the iterator is live, but those changes won't be observed by the iterator after this method returns.

Errors: - INVALID_ARGUMENTS: collection is not a valid reference. - COLLECTION_NOT_FOUND: collection does not exist.

Request

NameType
collection CollectionRef
iter request<ChildIterator>

Response

NameType
result Realm_ListChildren_Result

ChildIterator

Defined in fuchsia.sys2/realm.fidl

A protocol to iterate over the list of children in a realm.

Next

Advance the iterator and return the next batch of children.

Returns a vector of ChildRef. Returns an empty vector when there are no more children.

Request

NameType

Response

NameType
children vector<ChildRef>

ComponentResolver

Defined in fuchsia.sys2/component_resolver.fidl

An interface for resolving a URL to a component.

This interface is implemented by components that provide support for loading components with a particular URL scheme. For example, the Fuchsia package component resolver exposes a service with this interface to resolve component URLs using the "fuchsia-pkg://" scheme.

To use a resolver to resolve URLs within your realm, register it in your realm's manifest. (TODO: explain in more detail)

Resolve

Resolves a component with the given URL.

component_url is the unescaped URL of the component to resolve.

If successful, returns ZX_OK and information about the component that was resolved.

On failure, returns null info and... - ZX_ERR_INVALID_ARGS: The component's URL was malformed. - ZX_ERR_NOT_FOUND: The component does not exist. - ZX_ERR_UNAVAILABLE: The resolver was unable to retrieve or parse the component's resources.

Request

NameType
component_url string

Response

NameType
status int32
component Component

ComponentRunner

Defined in fuchsia.sys2/component_runner.fidl

An interface for running components.

This interface is implemented by components that provide an execution environment for running particular classes of programs. For example, the Dart virtual machine exposes a service with this interface to run Dart programs.

To specify the runner needed to run your component, set the "runner_url" property in your component's manifest.

Start

Starts running a new component instance described by start_info.

The caller of this method takes responsibility for binding client connections and controlling the lifetime of the newly started component instance through the requested controller.

Request

NameType
start_info ComponentStartInfo
controller request<ComponentController>

ComponentController

Defined in fuchsia.sys2/component_runner.fidl

An interface for binding client connections and controlling the lifetime of a component instance started using ComponentRunner.Start().

Closing the client endpoint of the controller interface implicitly stops the controlled component instance exactly as if Stop() had been called.

When the controlled component instance terminates or becomes inaccessible for any reason, the server invokes OnEpitaph() and closes its endpoint of the controller interface.

EPITAPH

This interface uses a FIDL epitaph to indicate that the controller component instance has terminated and to describe its final disposition.

The following epitaph status codes have particular significance:

  • ZX_OK: The component instance was successfully terminated in response to Stop() and its runtime resources have been fully released.
  • ZX_ERR_UNAVAILABLE: The runner was unable to start the component instance. e.g. The runner could not retrieve the component's assets.
  • ERR_COMPONENT_DIED: The component instance was started but subsequently terminated unexpectedly.

    Other status codes (e.g. ZX_ERR_PEER_CLOSED) may indicate a failure of the component runner itself. The component manager may respond to such failures by terminating the component runner's job to ensure system stability.

Stop

Stops the controlled component instance.

After stopping the component instance, the server should report an epitaph then close its endpoint of the controller interface.

Request

NameType

Bind

Binds a client to the component instance's exports directory if it has one. If the instance does not offer exports, then the controller should close the exports interface request.

The client_moniker identifies the client to the component instance.

Request

NameType
client_moniker Moniker
exports request<fuchsia.io/Directory>

WorkScheduler

Defined in fuchsia.sys2/work_scheduler.fidl

Framework service: API for scheduling and canceling work. Each component instance can access work items that it has scheduled (but not others' scheduled work items). Work items are scheduled roughly at the specified time and frequency; the service implementation may specify its notion of roughly, and may provide a configuration API to tune this notion.

Each scheduled work item is identified by a client-provided WorkId. Each scheduled work item has a WorkId that is unique with respect to scheduled work items belonging to the same component instance.

ScheduleWork

Schedule a new work item identified by work_id. The work item is to be scheduled roughly at the time corresponding to work_request.start. When work_request.period is specified, reschedule work roughly every work_request.period until the the work item is canceled.

Request

NameType
work_id string[100]
work_request WorkRequest

Response

NameType
result WorkScheduler_ScheduleWork_Result

CancelWork

Cancel the scheduled work item specified by work_id.

Request

NameType
work_id string[100]

Response

NameType
result WorkScheduler_CancelWork_Result

Worker

Defined in fuchsia.sys2/work_scheduler.fidl

Component-exposed service: Work scheduler connects to this service to invoke scheduled work item callbacks. The service implementation is responsible for invoking the code that corresponds to the scheduled work item identified by work_id.

DoWork

Request

NameType
work_id string[100]

Response

NameType
result Worker_DoWork_Result

STRUCTS

RealmRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to a component’s containing realm, i.e. the parent component.

NameTypeDescriptionDefault

SelfRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to the component itself.

NameTypeDescriptionDefault

ChildRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to one of the component's child instances.

NameTypeDescriptionDefault
name string[100] The name assigned to the child by its parent. If `collection` is set, `name` is scoped to `collection` and the child is a dynamic instance. Required. No default
collection string[100]? The collection `name` belongs to. If omitted, `name` references a static instance. This field must be omitted if the `ChildRef` is being used in a component declaration. Optional. No default

CollectionRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to one of the component's collections.

NameTypeDescriptionDefault
name string[100] No default

StorageRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to one of the component's storage sections.

NameTypeDescriptionDefault
name string[100] No default

FrameworkRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to the component framework itself.

NameTypeDescriptionDefault

Moniker

Defined in fuchsia.sys2/moniker.fidl

A moniker encodes the relationship between two component instances that exist in the component instance tree at runtime.

To understand this better, consider two component instances labeled "A" and "B" that are both children of a component instance labeled "P".

At runtime, when "B" requests a service from "A" through a channel established by the component manager, the component manager may provide "A" with a moniker that encodes "B's" identity relative to "A" itself. The moniker's encoded value describes the directed path to traverse from "A" (the moniker's origin) to "B" (the moniker's referent), passing through "P" (their common ancestor).

NameTypeDescriptionDefault
encoded_value string[4096] An opaque representation of the moniker's relation. No default

Realm_BindChild_Response

Defined in fuchsia.sys2/generated

NameTypeDescriptionDefault

Realm_CreateChild_Response

Defined in fuchsia.sys2/generated

NameTypeDescriptionDefault

Realm_DestroyChild_Response

Defined in fuchsia.sys2/generated

NameTypeDescriptionDefault

Realm_ListChildren_Response

Defined in fuchsia.sys2/generated

NameTypeDescriptionDefault

ComponentNamespace

Defined in fuchsia.sys2/component_namespace.fidl

A namespace specifies the set of directories that a component instance receives at start-up. Each component instance's namespace is tailored to provide access to a set of files and services that are appropriate to that component instance's role in the system (its sandbox).

By convention, a component's namespace typically contains some or all of the following directories:

  • "/svc": A directory containing services that the component requested to use via its "import" declarations.
  • "/pkg": A directory containing the component's package, including its binaries, libraries, and other assets.
NameTypeDescriptionDefault
paths vector<string> The mount point for each of the directories below, each including a leading slash. For example, ["/pkg", "/svc", "/config/data"]. Each mount point must be unique and non-overlapping. For example, ["/foo", "/foo/bar"] is invalid. No default
directories vector<fuchsia.io/Directory> The directories mounted at each path in the namespace. No default

WorkScheduler_ScheduleWork_Response

Defined in fuchsia.sys2/generated

NameTypeDescriptionDefault

WorkScheduler_CancelWork_Response

Defined in fuchsia.sys2/generated

NameTypeDescriptionDefault

Worker_DoWork_Response

Defined in fuchsia.sys2/generated

NameTypeDescriptionDefault

ENUMS

StartupMode

Type: uint32

Defined in fuchsia.sys2/child_decl.fidl

NameValueDescription
LAZY 0
EAGER 1

Durability

Type: uint32

Defined in fuchsia.sys2/collection_decl.fidl

The durability of component instances created in a collection.

NameValueDescription
PERSISTENT 1
TRANSIENT 2

StorageType

Type: uint32

Defined in fuchsia.sys2/storage_decl.fidl

The type of storage offered by this component.

NameValueDescription
DATA 1
CACHE 2
META 3

Error

Type: uint32

Defined in fuchsia.sys2/error.fidl

Standard error codes for component framework protocols.

NameValueDescription
INTERNAL 1
INVALID_ARGUMENTS 2
UNSUPPORTED 3
INSTANCE_NOT_FOUND 4
INSTANCE_ALREADY_EXISTS 5
INSTANCE_CANNOT_START 6
INSTANCE_CANNOT_RESOLVE 7
COLLECTION_NOT_FOUND 8
NO_SPACE 9

TABLES

ChildDecl

Defined in fuchsia.sys2/child_decl.fidl

Statically declares a child component instance.

OrdinalNameTypeDescription
1 name string[100] The name assigned to the child by its parent. Must be non-empty, unique among all siblings, and contain only the following characters: [a-z0-9-_.].
2 url string[4096] The child component's URL. Must be non-empty and a well-formed URL.
3 startup StartupMode The startup mode for the component instance.

CollectionDecl

Defined in fuchsia.sys2/collection_decl.fidl

Statically declares a component instance collection.

OrdinalNameTypeDescription
1 name string[100] The name of the collection. Instances created in the collection are scoped to this name.
2 durability Durability The durability of instances in the collection.

ComponentDecl

Defined in fuchsia.sys2/component_decl.fidl

A component declaration.

This information is typically encoded in the component manifest (.cm file) if it has one or may be generated at runtime by a component resolver for those that don't.

OrdinalNameTypeDescription
1 program fuchsia.data/Dictionary Information about the program to run when the component is executed. The component manager provides the contents of this dictionary to the component runner when executing the program. Each component runner can freely define the contents of this dictionary as needed. The system's default runner understands the following entries: - "binary": string The path of the executable relative to the root of the package. Typically an ELF binary. - "args": vector of strings The command-line arguments to provide to the executable at runtime. - "env": dictionary of strings The environment variables to provide to the executable at runtime. Other runners may define different entries.
2 uses vector<UseDecl> List of capabilities used by the component. These consist of capabilities offered to the component that are installed in its incoming namespace. The used capabilities must be unique and non-overlapping.
3 exposes vector<ExposeDecl> List of capabilities exposed by the component. These consist of capabilities that are made visible to the containing realm. The parent may `offer` these capabilities to its children, but not `use` them. The exposed capabilities must be unique and non-overlapping.
4 offers vector<OfferDecl> List of capabilities offered to the component’s children. These consist of capabilities that the given children may `use`, which may come from a child, the containing realm, or the component's own outgoing namespace. The offered capabilities must be unique and non-overlapping.
5 facets fuchsia.data/Dictionary Additional metadata about the component.
6 children vector<ChildDecl> The component's statically instantiated children. The children must have unique names.
7 collections vector<CollectionDecl> The component's collections. The collections must have unique names.
8 storage vector<StorageDecl> List of storage capabilities created by this component. Storage capabilities can be offered to children.

ExposeServiceDecl

Defined in fuchsia.sys2/expose_decl.fidl

Declares a service exposed to a component's containing realm, such as a service exposed by the component or one of its children at runtime.

To learn more about services, see: https://fuchsia.dev/fuchsia-src/glossary#service

OrdinalNameTypeDescription
1 source Ref The provider of the capability relative to the component itself. Must be `self` or `child`.
2 source_path string[1024] Path identifying the service, by which it was presented to this component. Must be an absolute path starting with /.
3 target_path string[1024] The path by which the capability is being exposed. Must be an absolute path starting with /.

ExposeLegacyServiceDecl

Defined in fuchsia.sys2/expose_decl.fidl

Declares a legacy service exposed to a component's containing realm, such as a legacy service exposed by the component or one of its children at runtime.

A legacy service is a service with a single instance, provided by a single FIDL protocol.

OrdinalNameTypeDescription
1 source Ref The provider of the capability relative to the component itself. Must be `self` or `child`.
2 source_path string[1024] Path identifying the legacy service, by which it was presented to this component.
3 target_path string[1024] The path by which the capability is being exposed. Must be an absolute path starting with /.

ExposeDirectoryDecl

Defined in fuchsia.sys2/expose_decl.fidl

Declares a directory exposed to a component's containing realm, such as a directory exposed by the component or one of its children at runtime.

OrdinalNameTypeDescription
1 source_path string[1024] Path identifying the directory, by which it was presented to this component.
2 source Ref The provider of the capability relative to the component itself. Must be `self` or `child`.
3 target_path string[1024] The path by which the capability is being exposed. Must be an absolute path starting with /.

OfferServiceDecl

Defined in fuchsia.sys2/offer_decl.fidl

Declares a service offered by a component to one of its children, which may have been offered by the component's containing realm, the component itself, or one of its other children.

To learn more about services, see: https://fuchsia.dev/fuchsia-src/glossary#service

OrdinalNameTypeDescription
1 source Ref The provider of the capability relative to the component itself. Must be `realm`, `self`, or `child`.
2 source_path string[1024] Path identifying the service being offered. Must be an absolute path starting with /.
3 target Ref Reference to the target. Must be `child` or `collection`.
4 target_path string[1024] The path under which the capability is being offered. Must be an absolute path starting with /.

OfferLegacyServiceDecl

Defined in fuchsia.sys2/offer_decl.fidl

Declares a legacy service offered by a component to one of its children, which may have been offered by the component's containing realm, the component itself, or one of its other children.

A legacy service is a service with a single instance, provided by a single FIDL protocol.

OrdinalNameTypeDescription
1 source Ref The provider of the capability relative to the component itself. Must be `realm`, `self`, or `child`.
2 source_path string[1024] Path identifying the legacy service being offered.
3 target Ref Reference to the target. Must be `child` or `collection`.
4 target_path string[1024] The path under which the capability is being offered. Must be an absolute path starting with /.

OfferDirectoryDecl

Defined in fuchsia.sys2/offer_decl.fidl

Declares a directory offered by a component to one of its children, which may have been offered by the component's containing realm, the component itself, or one of its other children.

OrdinalNameTypeDescription
1 source Ref The provider of the capability relative to the component itself. Must be `realm`, `self`, or `child`.
2 source_path string[1024] Path identifying the directory being offered.
3 target Ref Reference to the target of the capability. Must be `child` or `collection`.
4 target_path string[1024] The path under which the capability is being offered. Must be an absolute path starting with /.

OfferStorageDecl

Defined in fuchsia.sys2/offer_decl.fidl

Declares a storage capability offered by a component to one of its children, such as meta storage offered by the component's containing realm or cache storage offered by the component itself.

OrdinalNameTypeDescription
1 type StorageType The type of storage being offered.
2 source Ref The source of the storage capability. Must be `realm` or `storage`.
3 target Ref Reference to the target of the capability. Must be `child` or `collection`.

StorageDecl

Defined in fuchsia.sys2/storage_decl.fidl

Declares a storage capability backed by a directory from which data, cache, or meta storage can be offered.

OrdinalNameTypeDescription
1 name string[100] The name of this storage
2 source_path string[1024] The incoming path to the directory capability. If "source == SELF", this is a path in the component's outgoing directory. Otherwise, it is the path by which the capability was presented to the component.
3 source Ref The provider of the underlying directory capability relative to the component itself. Must be `realm`, `self`, or `child`.

UseServiceDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a service used by a component, which was offered to the component's environment.

To learn more about services, see: https://fuchsia.dev/fuchsia-src/glossary#service

OrdinalNameTypeDescription
1 source Ref The provider of the service relative to the component itself. Must be |realm| or |framework|.
2 source_path string[1024] Path identifying the service, by which it was presented to this component. Must be an absolute path starting with /.
3 target_path string[1024] The path where the capability should be installed in the component's namespace. Must be an absolute path starting with /.

UseLegacyServiceDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a legacy service used by a component, which was offered to the component's environment.

A legacy service is a service with a single instance, provided by a single FIDL protocol.

OrdinalNameTypeDescription
1 source Ref The provider of the legacy service relative to the component itself. Must be |realm| or |framework|.
2 source_path string[1024] Path identifying the legacy service, by which it was presented to this component.
3 target_path string[1024] The path where the capability should be installed in the component's namespace. Must be an absolute path starting with /.

UseDirectoryDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a directory used by a component, which was offered to the component's environment.

OrdinalNameTypeDescription
1 source Ref The provider of the directory relative to the component itself. Must be |realm| or |framework|.
2 source_path string[1024] Path identifying the directory, by which it was presented to this component.
3 target_path string[1024] The path where the capability should be installed in the component's namespace. Must be an absolute path starting with /.

UseStorageDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares storage used by a component, which was offered to the component's environment.

OrdinalNameTypeDescription
1 type StorageType Type of storage used by the component.
2 target_path string[1024] The path where the capability should be installed in the component's namespace. Must not be set if `type` is `META`. Must be an absolute path starting with /.

Component

Defined in fuchsia.sys2/component.fidl

A component is a unit of executable software.

This object provides the component's declaration, access to its package's content, and relevant metadata.

OrdinalNameTypeDescription
1 resolved_url string The resolved URL of the component. This is the canonical URL obtained by the component resolver after after following redirects and resolving relative paths.
2 decl ComponentDecl The component's declaration. This information is typically obtained from the component's manifest or generated by the component resolver.
3 package Package The package that contains the component. By convention, the component's package is mapped to "/pkg" in its namespace at runtime. This is null if the component is not represented as a package. In that case, it is the runner's responsibility to load the component's resource from the `resolved_url`. This mechanism is used for web applications.

ComponentStartInfo

Defined in fuchsia.sys2/component_runner.fidl

Parameters for starting a new component instance.

OrdinalNameTypeDescription
1 resolved_url string The resolved URL of the component. This is the canonical URL obtained by the component resolver after after following redirects and resolving relative paths.
2 program fuchsia.data/Dictionary The component's program declaration. This information originates from `ComponentDecl.program`.
3 ns ComponentNamespace The namespace to provide to the component instance.
4 outgoing_dir request<fuchsia.io/Directory> The directory this component serves.
5 runtime_dir request<fuchsia.io/Directory> The directory served by the runner to present runtime information about the component.

Package

Defined in fuchsia.sys2/package.fidl

A package is a signed collection of immutable files.

This object provides access to a package's content and relevant metadata.

OrdinalNameTypeDescription
1 package_url string The URL of the package itself.
2 package_dir fuchsia.io/Directory The package's content directory.

WorkRequest

Defined in fuchsia.sys2/work_scheduler.fidl

Parameters for a new piece of work to be scheduled.

OrdinalNameTypeDescription
1 start Start Time when corresponding work item should be _first_ scheduled.
2 period int64 Delay between repeated schedulings of corresponding work item. This is left unspecified for one-shot work that should not repeat. Repeating work items are rescheduled indefinitely until it is canceled.

UNIONS

Realm_BindChild_Result

Defined in fuchsia.sys2/generated

NameTypeDescription
response Realm_BindChild_Response
err Error

Realm_CreateChild_Result

Defined in fuchsia.sys2/generated

NameTypeDescription
response Realm_CreateChild_Response
err Error

Realm_DestroyChild_Result

Defined in fuchsia.sys2/generated

NameTypeDescription
response Realm_DestroyChild_Response
err Error

Realm_ListChildren_Result

Defined in fuchsia.sys2/generated

NameTypeDescription
response Realm_ListChildren_Response
err Error

WorkScheduler_ScheduleWork_Result

Defined in fuchsia.sys2/generated

NameTypeDescription
response WorkScheduler_ScheduleWork_Response
err Error

WorkScheduler_CancelWork_Result

Defined in fuchsia.sys2/generated

NameTypeDescription
response WorkScheduler_CancelWork_Response
err Error

Worker_DoWork_Result

Defined in fuchsia.sys2/generated

NameTypeDescription
response Worker_DoWork_Response
err Error

XUNIONS

ExposeDecl

Defined in fuchsia.sys2/expose_decl.fidl

Declares a capability exposed to a component's containing realm, such as a legacy service exposed by the component or one of its children at runtime.

NameTypeDescription
service ExposeServiceDecl
legacy_service ExposeLegacyServiceDecl
directory ExposeDirectoryDecl

OfferDecl

Defined in fuchsia.sys2/offer_decl.fidl

Declares a capability offered by a component to one of its children, which may have been offered by the component's containing realm, the component itself, or one of its other children.

NameTypeDescription
service OfferServiceDecl
legacy_service OfferLegacyServiceDecl
directory OfferDirectoryDecl
storage OfferStorageDecl

Ref

Defined in fuchsia.sys2/relative_refs.fidl

A reference to a capability source or destination relative to this component.

NameTypeDescription
realm RealmRef
self SelfRef
child ChildRef
collection CollectionRef
storage StorageRef
framework FrameworkRef

UseDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a capability used by a component, which was offered to the component's environment.

NameTypeDescription
service UseServiceDecl
legacy_service UseLegacyServiceDecl
directory UseDirectoryDecl
storage UseStorageDecl

Start

Defined in fuchsia.sys2/work_scheduler.fidl

Different ways to specify when to schedule a work item for the first time.

NameTypeDescription
delay int64 A non-negative delay to wait before scheduling work.
monotonic_time int64 A fixed point in time to start scheduling work, interpreted like `ZX_CLOCK_MONOTONIC`: number of nanoseconds since the system was powered on.

CONSTANTS

NameValueTypeDescription
MAX_FACET_NAME_LENGTH 100 uint32
MAX_CHILD_NAME_LENGTH 100 uint32
MAX_COLLECTION_NAME_LENGTH 100 uint32
MAX_STORAGE_NAME_LENGTH 100 uint32
MAX_PATH_LENGTH 1024 uint32
MAX_URL_LENGTH 4096 uint32
MAX_MONIKER_LENGTH 4096 uint32
ERR_COMPONENT_DIED 1 int32 Error produced when a component terminates unexpected.
MAX_WORK_ID_LENGTH 100 uint32