FBA DLL/COM Registration (Windows Embedded Standard 2009)

4/23/2012

This resource is required for a component that needs to register a Component Object Model (COM) InProc server during the first boot of the run-time image. First Boot Agent (FBA) calls the Win32 function LoadLibrary and then optionally calls DllRegisterServer/DllUnregisterServer and/or DllInstall.

The following extended properties can be set for the FBA DLL/COM Registration resource in Component Designer or in Target Designer.

  • Arguments

    Type Required or optional

    String

    Optional

    Specifies the value for the pszCmdLine parameter passed to the DLLInstall entry point.

    Arguments containing paths should use environment variables in path names. For more information, see Predefined System Environment Variables.

    The default value is an empty string.

  • ComponentVSGUID

    Type Required or optional

    GUID

    Not applicable

    Reserved for Microsoft.

  • DllInstall

    Type Required or optional

    Boolean

    Required

    If True, the DllInstall entry point is called. Both DLLInstall and DLLRegister can be set to True. The default value is False.

  • DllRegister

    Type Required or optional

    Boolean

    Required

    If the default value of True, then either the DllRegisterServer or the DllUnregisterServer entry point is called based on the value of the Flags property. Both DLLInstall and DLLRegister can be set to True.

  • ErrorControl

    Type Required or optional

    Integer

    Required

    Controls how FBA deals with an error when processing an operation.

    • 0: Continue on error. Default.
    • 1: Halt on error.

    If the return value of LoadLibrary, GetProcAddress, or the DLL entry point is greater than 0x80000000, then FBA considers this an error and behaves according to the value of this property.

  • Filepath

    Type Required or optional

    String

    Required

    Specifies the name of the DLL to be loaded. This value must be a fully qualified path, for example, %11%\Your.dll. Use environment variables in path names. For more information, see Predefined System Environment Variables.

  • Flags

    Type Required or optional

    Integer

    Required

    Bitmask that is interpreted as follows:

    • Bit 0: Specifies which entry point is called first, DLLRegisterServer/DllUnregisterServer or DLLInstall. If set, then DLLInstall is called first. Default.
    • Bit 1: Specifies the type of operation to be performed. If DllRegister is True and this bit is 0 then DllRegisterServer is called otherwise DllUnregisterServer is called. If DllInstall is True and this bit is 0, then DllInstall(True, <Arguments>) is called; otherwise, DllInstall(FALSE, <Arguments>).
  • Reboot

    Type Required or optional

    Boolean

    True

    Specifies if a reboot is required following the completion of the FBA operation.

    • True: FBA completes its operation, reboots, and then continues.
    • FALSE: FBA continues to process without rebooting. Default.
  • Start

    Type Required or optional

    Integer

    Required

    Reserved for Microsoft. Must be 1.

  • Timeout

    Type Required or optional

    Integer

    Required

    Specifies the time, in seconds, that a program is allowed to execute before being terminated by FBA.

    The default value of 0 indicates an infinite number of seconds.

  • Type

    Type Required or optional

    Integer

    Required

    Reserved for Microsoft. Must be 2.

The following table shows how the various combinations of Flags, DllInstall, and DllRegister are interpreted.

DllRegister DLLInstall Flags Effect

False

False

0

Not applicable

True

False

0

DllRegisterServer

False

True

0

DllInstall(TRUE)

True

True

0

DllRegisterServer followed by DllInstall(TRUE)

False

False

1

Not applicable

True

False

1

DllRegisterServer

False

True

1

DllInstall(TRUE)

True

True

1

DllInstall(TRUE) followed by DllRegisterServer

False

False

2

Not applicable

True

False

2

DllUnregisterServer

False

True

2

DllInstall(FALSE)

True

True

2

DllUnregisterServer followed by DllInstall(FALSE)

False

False

3

Not applicable

True

False

3

DllUnregisterServer

False

True

3

DllInstall(FALSE)

True

True

3

DllInstall(FALSE) followed by DllUnregisterServer

See Also

Other Resources

Custom Resources