+ //\r
+ // Nvm Express Pass Thru PPI\r
+ //\r
+ Private->PassThruMode.Attributes = EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_PHYSICAL |\r
+ EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_LOGICAL |\r
+ EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_CMD_SET_NVM;\r
+ Private->PassThruMode.IoAlign = sizeof (UINTN);\r
+ Private->PassThruMode.NvmeVersion = EDKII_PEI_NVM_EXPRESS_PASS_THRU_PPI_REVISION;\r
+ Private->NvmePassThruPpi.Mode = &Private->PassThruMode;\r
+ Private->NvmePassThruPpi.GetDevicePath = NvmePassThruGetDevicePath;\r
+ Private->NvmePassThruPpi.GetNextNameSpace = NvmePassThruGetNextNameSpace;\r
+ Private->NvmePassThruPpi.PassThru = NvmePassThru;\r
+ CopyMem (\r
+ &Private->NvmePassThruPpiList,\r
+ &mNvmePassThruPpiListTemplate,\r
+ sizeof (EFI_PEI_PPI_DESCRIPTOR)\r
+ );\r
+ Private->NvmePassThruPpiList.Ppi = &Private->NvmePassThruPpi;\r
+ PeiServicesInstallPpi (&Private->NvmePassThruPpiList);\r
+\r
+ //\r
+ // Block Io PPI\r
+ //\r