diff --git a/src/smbiosmdrv2handler.cpp b/src/smbiosmdrv2handler.cpp
index e0d1159..058c3ee 100644
--- a/src/smbiosmdrv2handler.cpp
+++ b/src/smbiosmdrv2handler.cpp
@@ -348,13 +348,31 @@
     return ipmi::responseSuccess(dataOut);
 }
 
+/** @brief implements mdr2 send directory info command
+ *  @param agentId
+ *  @param dirVersion
+ *  @param dirIndex
+ *  @param returnedEntries
+ *  @param remainingEntries
+ *  @param dataInfo
+ *   dataInfo is 32 Bytes in size and contains below parameters
+ *       - dataInfo, size, dataSetSize, dataVersion, timestamp
+ *
+ *  @returns IPMI completion code plus response data
+ *  - bool
+ */
+
 ipmi::RspType<bool> mdr2SendDir(uint16_t agentId, uint8_t dirVersion,
                                 uint8_t dirIndex, uint8_t returnedEntries,
                                 uint8_t remainingEntries,
-                                std::array<uint8_t, 16> dataInfo, uint32_t size,
-                                uint32_t dataSetSize, uint32_t dataVersion,
-                                uint32_t timestamp)
+                                std::vector<uint8_t> dataInfo)
 {
+    if ((static_cast<size_t>(returnedEntries) * dataInfoSize) !=
+        dataInfo.size())
+    {
+        return ipmi::responseReqDataLenInvalid();
+    }
+
     std::shared_ptr<sdbusplus::asio::connection> bus = getSdBus();
     std::string service = ipmi::getService(*bus, mdrv2Interface, mdrv2Path);
 
@@ -381,7 +399,7 @@
     sdbusplus::message::message method = bus->new_method_call(
         service.c_str(), mdrv2Path, mdrv2Interface, "SendDirectoryInformation");
     method.append(dirVersion, dirIndex, returnedEntries, remainingEntries,
-                  dataInfo, size, dataSetSize, dataVersion, timestamp);
+                  dataInfo);
 
     bool terminate = false;
     try
