+/**\r
+ Sets a value of a patchable PCD entry that is type pointer.\r
+ \r
+ Sets the PCD entry specified by PatchVariable to the value specified by Buffer \r
+ and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than \r
+ MaximumDatumSize, then set SizeOfBuffer to MaximumDatumSize and return \r
+ NULL to indicate that the set operation was not actually performed. \r
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to \r
+ MaximumDatumSize and NULL must be returned.\r
+ \r
+ If PatchVariable is NULL, then ASSERT().\r
+ If SizeOfBuffer is NULL, then ASSERT().\r
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
+\r
+ @param[in] PatchVariable A pointer to the global variable in a module that is \r
+ the target of the set operation.\r
+ @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.\r
+ @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.\r
+ @param[in] Buffer A pointer to the buffer to used to set the target variable.\r
+ \r
+ @return Return the pointer to the buffer been set.\r