The EFI_RNG_SERVICE_BINDING_PROTOCOL is used to locate Random Number Generation (RNG) services provided by a driver, and to create and destroy instances of the EFI_RNG_PROTOCOL so that multiple drivers can use the underlying RNG services.

The generic EFI_SERVICE_BINDING_PROTOCOL is described in sections 2.5.8 and 10.6 of the UEFI Specification. This section provides information specific to EFI_RNG_SERVICE_BINDING_PROTOCOL.


// {E417A4A2-0843-4619-BF11-5CE82AFCFC59}
  {0xe417a4a2, 0x0843, 0x4619, 0xbf, 0x11, 0x5c, 0xe8, 0x2a, 0xfc, 0xfc, 0x59};


An application or driver that requires RNG services can use one of the protocol handler services, such as EFI_BOOT_SERVICES->LocateHandleBuffer(), to search for devices that publish an EFI_RNG_SERVICE_BINDING_PROTOCOL. Each device with a published EFI_RNG_SERVICE_BINDING_PROTOCOL shall support the EFI_RNG_PROTOCOL and make it available for use.

After a successful call to the EFI_RNG_SERVICE_BINDING_PROTOCOL.CreateChild() function, the child EFI_RNG_PROTOCOL driver instance is ready for use.

Before an application terminates execution, every successful call to the EFI_RNG_SERVICE_BINDING_PROTOCOL.CreateChild() function must be matched with a call to the EFI_RNG_SERVICE_BINDING_PROTOCOL.DestroyChild() function.


Header: User generated