+/**\r
+ This function will switch the IP4 configuration policy to Static.\r
+\r
+ @param[in] Ip4Config2 Pointer to the IP4 configuration protocol.\r
+\r
+ @retval EFI_SUCCESS The policy is already configured to static.\r
+ @retval Others Other error as indicated.\r
+\r
+**/\r
+EFI_STATUS\r
+IScsiSetIp4Policy (\r
+ IN EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2\r
+ )\r
+{\r
+ EFI_IP4_CONFIG2_POLICY Policy;\r
+ EFI_STATUS Status;\r
+ UINTN DataSize;\r
+\r
+ DataSize = sizeof (EFI_IP4_CONFIG2_POLICY);\r
+ Status = Ip4Config2->GetData (\r
+ Ip4Config2,\r
+ Ip4Config2DataTypePolicy,\r
+ &DataSize,\r
+ &Policy\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ if (Policy != Ip4Config2PolicyStatic) {\r
+ Policy = Ip4Config2PolicyStatic;\r
+ Status= Ip4Config2->SetData (\r
+ Ip4Config2,\r
+ Ip4Config2DataTypePolicy,\r
+ sizeof (EFI_IP4_CONFIG2_POLICY),\r
+ &Policy\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ } \r
+ }\r
+\r
+ return EFI_SUCCESS;\r
+}\r