private uint RopOpenFolder(uint handle, out RopOpenFolderResponse openFolderResponse, ulong folderId, bool needVerify)
{
this.rawDataValue = null;
this.responseValue = null;
this.responseSOHsValue = null;
RopOpenFolderRequest openFolderRequest = new RopOpenFolderRequest()
{
RopId = (byte)RopId.RopOpenFolder,
LogonId = LogonId,
InputHandleIndex = (byte)HandleIndex.FirstIndex,
OutputHandleIndex = (byte)HandleIndex.SecondIndex,
FolderId = folderId,
// Open an existing folder with None value for OpenModeFlags flag.
OpenModeFlags = (byte)FolderOpenModeFlags.None
};
this.responseSOHsValue = this.ProcessSingleRop(openFolderRequest, handle, ref this.responseValue, ref this.rawDataValue, RopResponseType.SuccessResponse);
openFolderResponse = (RopOpenFolderResponse)this.responseValue;
if (needVerify)
{
this.Site.Assert.AreEqual((uint)RopResponseType.SuccessResponse, openFolderResponse.ReturnValue, string.Format("RopOpenFolderResponse Failed! Error: 0x{0:X8}", openFolderResponse.ReturnValue));
}
return this.responseSOHsValue[0][openFolderResponse.OutputHandleIndex];
}