PCIE 固件升级commit命令 IOCTL_STORAGE_FIRMWARE_ACTIVATE 的action如何配置?

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

BOOL CNVMeDeviceIo::DeviceFirmwareCommit(HANDLE hDeviceIOCTL, void *_pSrtCommandSet, BYTE *bIOBuf)
{
COMMAND_SET srtCommandSet = ((COMMAND_SET)_pSrtCommandSet);

const DWORD dwBuffSize = sizeof(STORAGE_HW_FIRMWARE_ACTIVATE);
PUCHAR buffer = (PUCHAR)malloc(dwBuffSize);
if (buffer == NULL) 
{
    return False;
}
RtlZeroMemory(buffer, dwBuffSize);
PSTORAGE_HW_FIRMWARE_ACTIVATE firmwareActivate = (PSTORAGE_HW_FIRMWARE_ACTIVATE)buffer;
firmwareActivate->Version = sizeof(STORAGE_HW_FIRMWARE_ACTIVATE);
firmwareActivate->Size = sizeof(STORAGE_HW_FIRMWARE_ACTIVATE);
firmwareActivate->Slot = srtCommandSet.soltNum;
firmwareActivate->Flags = FIRMWARE_REQUEST_FLAG_CONTROLLER;
// activate firmware
ULONG returnedLength = 0;
BOOL result = DeviceIoControl(hDeviceIOCTL,IOCTL_STORAGE_FIRMWARE_ACTIVATE,buffer,dwBuffSize,buffer,dwBuffSize,&returnedLength,NULL);
if (!result)
{
    free(buffer);
    return FALSE;
}

free(buffer);
return TRUE;    

}

运行结果及报错内容

此命令并没有配置协议中说的action字段,但实际上该值确实有配置,值为1。

我的解答思路和尝试过的方法
我想要达到的结果

想知道该值如何配置的