+/**\r
+ Tests to see if this driver supports the RemainingDevicePath. \r
+\r
+ @param[in] RemainingDevicePath A pointer to the remaining portion of a device path. This \r
+ parameter is ignored by device drivers, and is optional for bus \r
+ drivers. For bus drivers, if this parameter is not NULL, then \r
+ the bus driver must determine if the bus controller specified \r
+ by ControllerHandle and the child controller specified \r
+ by RemainingDevicePath are both supported by this \r
+ bus driver.\r
+\r
+ @retval EFI_SUCCESS The RemainingDevicePath is supported or NULL.\r
+ @retval EFI_UNSUPPORTED The device specified by ControllerHandle and\r
+ RemainingDevicePath is not supported by the driver specified by This.\r
+**/\r
+EFI_STATUS\r
+IScsiIsDevicePathSupported (\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
+ )\r
+{\r
+ EFI_DEVICE_PATH_PROTOCOL *CurrentDevicePath;\r
+\r
+ CurrentDevicePath = RemainingDevicePath;\r
+ if (CurrentDevicePath != NULL) {\r
+ while (!IsDevicePathEnd (CurrentDevicePath)) {\r
+ if ((CurrentDevicePath->Type == MESSAGING_DEVICE_PATH) && (CurrentDevicePath->SubType == MSG_ISCSI_DP)) {\r
+ return EFI_SUCCESS;\r
+ }\r
+\r
+ CurrentDevicePath = NextDevicePathNode (CurrentDevicePath);\r
+ }\r
+\r
+ return EFI_UNSUPPORTED;\r
+ }\r