-/**\r
- Check every driver and locate a matching one. If the driver is found, the Unrequested\r
- state flag is cleared.\r
-\r
- @param FirmwareVolumeHandle The handle of the Firmware Volume that contains\r
- the firmware file specified by DriverName.\r
- @param DriverName The Driver name to put in the Dependent state.\r
-\r
- @retval EFI_SUCCESS The DriverName was found and it's SOR bit was\r
- cleared\r
- @retval EFI_NOT_FOUND The DriverName does not exist or it's SOR bit was\r
- not set.\r
-\r
-**/\r
-EFI_STATUS\r
-SmmSchedule (\r
- IN EFI_HANDLE FirmwareVolumeHandle,\r
- IN EFI_GUID *DriverName\r
- )\r
-{\r
- LIST_ENTRY *Link;\r
- EFI_SMM_DRIVER_ENTRY *DriverEntry;\r
-\r
- //\r
- // Check every driver\r
- //\r
- for (Link = mDiscoveredList.ForwardLink; Link != &mDiscoveredList; Link = Link->ForwardLink) {\r
- DriverEntry = CR(Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE);\r
- if (DriverEntry->FvHandle == FirmwareVolumeHandle &&\r
- DriverEntry->Unrequested &&\r
- CompareGuid (DriverName, &DriverEntry->FileName)) {\r
- //\r
- // Move the driver from the Unrequested to the Dependent state\r
- //\r
- DriverEntry->Unrequested = FALSE;\r
- DriverEntry->Dependent = TRUE;\r
-\r
- DEBUG ((DEBUG_DISPATCH, "Schedule FFS(%g) - EFI_SUCCESS\n", DriverName));\r
-\r
- return EFI_SUCCESS;\r
- }\r
- }\r
- \r
- DEBUG ((DEBUG_DISPATCH, "Schedule FFS(%g) - EFI_NOT_FOUND\n", DriverName));\r
- \r
- return EFI_NOT_FOUND;\r
-}\r
-\r