static int QuickAccessSelection(HWND hDlg, DWORD dwDesiredAccess, DWORD dwShareAccess, bool bSynchronous) { DWORD dwCreateOptions; // Retrieve the create options from the dialog DlgText2Hex32(hDlg, IDC_CREATE_OPTIONS, &dwCreateOptions); // Fix desired access according to bAsynchronous if(bSynchronous) { dwCreateOptions |= FILE_SYNCHRONOUS_IO_NONALERT; dwDesiredAccess |= SYNCHRONIZE; } else { dwCreateOptions &= ~(FILE_SYNCHRONOUS_IO_ALERT | FILE_SYNCHRONOUS_IO_NONALERT); dwDesiredAccess &= ~SYNCHRONIZE; } // Set or reset DeleteOnClose flag if(dwDesiredAccess & DELETE) dwCreateOptions |= FILE_DELETE_ON_CLOSE; else dwCreateOptions &= ~FILE_DELETE_ON_CLOSE; // Apply the create options to the dialog controls Hex2DlgText32(hDlg, IDC_DESIRED_ACCESS, dwDesiredAccess); Hex2DlgText32(hDlg, IDC_SHARE_ACCESS, dwShareAccess); Hex2DlgText32(hDlg, IDC_CREATE_OPTIONS, dwCreateOptions); return TRUE; }
static int OnDeltaPos(HWND hDlg, NMUPDOWN * pNMUpDown) { TFileTestData * pData = GetDialogData(hDlg); LONGLONG ByteOffset = 0; DWORD Length = 0; if(pNMUpDown->hdr.idFrom == IDC_BYTE_OFFSET_SPIN) { DlgText2Hex64(hDlg, IDC_BYTE_OFFSET, &ByteOffset); ByteOffset -= pNMUpDown->iDelta * 0x10000; if(ByteOffset < 0) ByteOffset = 0; Hex2DlgText64(hDlg, IDC_BYTE_OFFSET, ByteOffset); UpdateFileData(hDlg, NULL, pData->cbFileData, pData->FillPattern); } if(pNMUpDown->hdr.idFrom == IDC_LENGTH_SPIN) { DlgText2Hex32(hDlg, IDC_LENGTH, &Length); Length -= pNMUpDown->iDelta * 0x1000; if((int)Length < 0) Length = 0; Hex2DlgText32(hDlg, IDC_LENGTH, Length); UpdateFileData(hDlg, NULL, pData->cbFileData, pData->FillPattern); } return TRUE; }
static int OnDeltaPos(HWND hDlg, NMUPDOWN * pNMHDR) { LARGE_INTEGER Uint64; DWORD Uint32; // Get the proper edit box if(pNMHDR->hdr.idFrom == IDC_BYTE_OFFSET_SPIN) { DlgText2Hex64(hDlg, IDC_BYTE_OFFSET, &Uint64.QuadPart); if(pNMHDR->iDelta < 0) Uint64.QuadPart += 0x10000; else Uint64.QuadPart -= 0x10000; if(Uint64.HighPart & 0x80000000) Uint64.QuadPart = 0; Hex2DlgText64(hDlg, IDC_BYTE_OFFSET, Uint64.QuadPart); return TRUE; } if(pNMHDR->hdr.idFrom == IDC_LENGTH_SPIN) { DlgText2Hex32(hDlg, IDC_LENGTH, &Uint32); if(pNMHDR->iDelta < 0) Uint32 += 0x10000; else Uint32 -= 0x10000; if(Uint32 & 0x80000000) Uint32 = 0; Hex2DlgText32(hDlg, IDC_LENGTH, Uint32); return TRUE; } return FALSE; }
static int OnInitDialog(HWND hDlg, LPARAM lParam) { PROPSHEETPAGE * pPage = (PROPSHEETPAGE *)lParam; TFileTestData * pData = (TFileTestData *)pPage->lParam; HWND hWndChild; SetDialogData(hDlg, pPage->lParam); // Configure dialog resizing if(pData->bEnableResizing) { pAnchors = new TAnchors(); pAnchors->AddAnchor(hDlg, IDC_BYTE_OFFSET_TITLE, akLeft | akTop | akRightCenter); pAnchors->AddAnchor(hDlg, IDC_BYTE_OFFSET, akLeft | akTop | akRightCenter); pAnchors->AddAnchor(hDlg, IDC_BYTE_OFFSET_SPIN, akTop | akRightCenter); pAnchors->AddAnchor(hDlg, IDC_LENGTH_TITLE, akLeftCenter | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_LENGTH, akLeftCenter | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_LENGTH_SPIN, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_INCREASE_FILEPOS, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_READ_FILE, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_WRITE_FILE, akTop | akRightCenter); pAnchors->AddAnchor(hDlg, IDC_NTREAD_FILE, akLeftCenter | akTop); pAnchors->AddAnchor(hDlg, IDC_NTWRITE_FILE, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_LOCK_FILE, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_UNLOCK_FILE, akTop | akRightCenter); pAnchors->AddAnchor(hDlg, IDC_NTLOCK_FILE, akLeftCenter | akTop); pAnchors->AddAnchor(hDlg, IDC_NTUNLOCK_FILE, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_FILL_DATA_MENU, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_GET_FILE_SIZE, akTop | akRightCenter); pAnchors->AddAnchor(hDlg, IDC_SET_FILE_POINTER, akLeftCenter | akTop); pAnchors->AddAnchor(hDlg, IDC_SET_END_OF_FILE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_DATA, akAll); pAnchors->AddAnchor(hDlg, IDC_RESULT_FRAME, akLeft | akRight | akBottom); pAnchors->AddAnchor(hDlg, IDC_LAST_ERROR_TITLE, akLeft | akBottom); pAnchors->AddAnchor(hDlg, IDC_LAST_ERROR, akLeft | akRight | akBottom); pAnchors->AddAnchor(hDlg, IDC_IOSTATUS_INFO_TITLE, akLeft | akBottom); pAnchors->AddAnchor(hDlg, IDC_IOSTATUS_INFO, akLeft | akRight | akBottom); } // Allocate the initial data. Make them aligned to sector alignment pData->cbFileDataMax = INITIAL_DATA_BUFFER_SIZE; pData->pbFileData = (LPBYTE)VirtualAlloc(NULL, pData->cbFileDataMax, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); pData->cbFileData = 0; // Zero the data if(pData->pbFileData != NULL) memset(pData->pbFileData, 0, pData->cbFileDataMax); // If there's field for data obtained by ReadFile, sets it to 8 bytes per line hWndChild = GetDlgItem(hDlg, IDC_FILE_DATA); if(hWndChild != NULL) DataEditor_SetBytesPerLine(hWndChild, 0x08); // Set initial values for file position and data Hex2DlgText64(hDlg, IDC_BYTE_OFFSET, 0); Hex2DlgText32(hDlg, IDC_LENGTH, INITIAL_DATA_BUFFER_SIZE); UpdateFileData(hDlg, NULL, 0, IDC_FILL_DATA_PATTERN); return TRUE; }
static int OnSetActive(HWND hDlg) { TFileTestData * pData = GetDialogData(hDlg); TCHAR szEaInfo[128]; BOOL bEnabled = FALSE; int nChecked; // Set directory name and file name SetDlgItemText(hDlg, IDC_DIRECTORY_NAME, pData->szDirName); SetDlgItemText(hDlg, IDC_FILE_NAME, pData->szFileName1); // Convert both to NT name. if(GetWindowTextLength(GetDlgItem(hDlg, IDC_DIRECTORY_NAME)) == 0) ConvertToNtName(hDlg, IDC_FILE_NAME); ConvertToNtName(hDlg, IDC_DIRECTORY_NAME); // Set the various create options Hex2DlgText32(hDlg, IDC_OBJ_ATTR_FLAGS, pData->dwObjAttrFlags); Hex2DlgText32(hDlg, IDC_DESIRED_ACCESS, pData->dwDesiredAccess); Hex2DlgText64(hDlg, IDC_ALLOCATION_SIZE, pData->AllocationSize); Hex2DlgText32(hDlg, IDC_FILE_ATTRIBUTES, pData->dwFileAttributes); Hex2DlgText32(hDlg, IDC_SHARE_ACCESS, pData->dwShareAccess); Hex2DlgText32(hDlg, IDC_CREATE_OPTIONS, pData->dwCreateOptions); // Update the info about extended attributes rsprintf(szEaInfo, IDS_EA_INFO, pData->pFileEa, pData->dwEaSize); SetDlgItemText(hDlg, IDC_EXTENDED_ATTRIBUTES, szEaInfo); // Enable/disable transaction if(pfnRtlSetCurrentTransaction != NULL && IsHandleValid(pData->hTransaction)) bEnabled = TRUE; EnableDlgItems(hDlg, bEnabled, IDC_TRANSACTED, 0); if(bEnabled) CheckDlgButton(hDlg, IDC_TRANSACTED, pData->bUseTransaction); // Check/uncheck virtualization nChecked = TokenVirtualization(TOKEN_VIRT_QUERY, 0); CheckDlgButton(hDlg, IDC_VIRTUALIZATION, nChecked); // Enable/disable "NtClose" bEnabled = IsHandleValid(pData->hFile) ? TRUE : FALSE; EnableDlgItems(hDlg, bEnabled, IDC_CLOSE_HANDLE, 0); return TRUE; }
static int OnInitDialog(HWND hDlg, LPARAM lParam) { PROPSHEETPAGE * pPage = (PROPSHEETPAGE *)lParam; TFileTestData * pData = (TFileTestData *)pPage->lParam; SetDialogData(hDlg, pPage->lParam); // Configure dialog resizing if(pData->bEnableResizing) { pAnchors = new TAnchors(); pAnchors->AddAnchor(hDlg, IDC_MAIN_FRAME, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_NAME1, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_NAME1_BROWSE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_NAME2, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_NAME2_BROWSE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_MOVE_FILE, akLeftCenter | akTop); pAnchors->AddAnchor(hDlg, IDC_MOVE_OPTIONS, akLeftCenter | akTop); pAnchors->AddAnchor(hDlg, IDC_DELETE_FILE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_DELETE_DIRECTORY, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILEID_FRAME, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_ID, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_ID_USE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_OBJECT_ID, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_OBJECT_ID_USE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_OTHERS_FRAME, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_NT_QUERY_ATTRIBUTES_FILE, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_GET_FILE_ATTRIBUTES, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_FLUSH_FILE_BUFFERS, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_SET_SPARSE, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_OPLOCKS_FRAME, akAll); pAnchors->AddAnchor(hDlg, IDC_REQUEST_OPLOCK_MENU, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_BREAK_ACKNOWLEDGE_1, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_REQUEST_OPLOCK_WIN7, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_BREAK_ACKNOWLEDGE_2, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_RESULT_FRAME, akLeft | akRight | akBottom); pAnchors->AddAnchor(hDlg, IDC_LAST_ERROR_TITLE, akLeft | akBottom); pAnchors->AddAnchor(hDlg, IDC_LAST_ERROR, akLeft | akRight | akBottom); } // Initialize tooltips g_Tooltip.AddToolTip(hDlg, IDC_NT_QUERY_ATTRIBUTES_FILE, IDS_NT_QUERY_ATTRIBUTES_FILE_TIP); g_Tooltip.AddToolTip(hDlg, IDC_GET_FILE_ATTRIBUTES, IDS_GET_FILE_ATTRIBUTES_TIP); g_Tooltip.AddToolTip(hDlg, IDC_FLUSH_FILE_BUFFERS, IDS_FLUSH_FILE_BUFFERS_TIP); g_Tooltip.AddToolTip(hDlg, IDC_SET_SPARSE, IDS_SET_SPARSE_TIP); Hex2DlgText64(hDlg, IDC_BYTE_OFFSET, 0); Hex2DlgText32(hDlg, IDC_LENGTH, 0x10000); return TRUE; }
static int OnSetActive(HWND hDlg) { TFileTestData * pData = GetDialogData(hDlg); BOOL bEnabled = FALSE; int nChecked; // Set directory name SetDlgItemText(hDlg, IDC_DIRECTORY_NAME, pData->szDirName); ConvertToWin32Name(hDlg, IDC_DIRECTORY_NAME); // Set file name if((pData->dwCreateOptions & FILE_OPEN_BY_FILE_ID) == 0) { SetDlgItemText(hDlg, IDC_FILE_NAME, pData->szFileName1); ConvertToWin32Name(hDlg, IDC_FILE_NAME); } // Set template file SetDlgItemText(hDlg, IDC_TEMPLATE_FILE, pData->szTemplate); ConvertToWin32Name(hDlg, IDC_TEMPLATE_FILE); // Set the various create options Hex2DlgText32(hDlg, IDC_DESIRED_ACCESS, pData->dwDesiredAccess); Hex2DlgText32(hDlg, IDC_FILE_ATTRIBUTES, pData->dwFileAttributes); Hex2DlgText32(hDlg, IDC_SHARE_ACCESS, pData->dwShareAccess); // Enable/disable transaction bEnabled = (pfnCreateFileTransacted != NULL && IsHandleValid(pData->hTransaction)); EnableDlgItems(hDlg, bEnabled, IDC_TRANSACTED, 0); nChecked = (bEnabled && pData->bUseTransaction) ? BST_CHECKED : BST_UNCHECKED; CheckDlgButton(hDlg, IDC_TRANSACTED, nChecked); // Check/uncheck virtualization nChecked = TokenVirtualization(TOKEN_VIRT_QUERY, 0); CheckDlgButton(hDlg, IDC_VIRTUALIZATION, nChecked); // Enable/disable "CloseHandle" bEnabled = IsHandleValid(pData->hFile) ? TRUE : FALSE; EnableDlgItems(hDlg, bEnabled, IDC_CLOSE_HANDLE, 0); return TRUE; }
INT_PTR FlagsDialog_OnControl(HWND hWndParent, UINT nIDCtrl, UINT nIDTitle, TFlagInfo * pFlags) { INT_PTR Result = IDCANCEL; DWORD dwFlags = 0; // Read the flags from the item if(DlgText2Hex32(hWndParent, nIDCtrl, &dwFlags) != ERROR_SUCCESS) return IDCANCEL; // Invoke the dialog Result = FlagsDialog(hWndParent, &dwFlags, nIDTitle, pFlags); if(Result == IDOK) Hex2DlgText32(hWndParent, nIDCtrl, dwFlags); return Result; }
INT_PTR FlagsDialog_PreArranged(HWND hWndParent, UINT nIDDialog, UINT nIDCtrl, TFlagInfo * pFlags) { TFlagDialogData fdd; INT_PTR Result; // Retrieve the flags ZeroMemory(&fdd, sizeof(TFlagDialogData)); fdd.pFlags = pFlags; fdd.hWndParent = hWndParent; fdd.IsPreArranged = TRUE; DlgText2Hex32(hWndParent, nIDCtrl, &fdd.dwFlags); // Execute the dialog Result = DialogBoxParam(g_hInst, MAKEINTRESOURCE(nIDDialog), hWndParent, DialogProc, (LPARAM)&fdd); if(Result == IDOK) Hex2DlgText32(hWndParent, nIDCtrl, fdd.dwFlags); return Result; }
static int UpdateFileData( HWND hDlg, LPCSTR szDataToFill, size_t OffsetToFill, UINT FillPattern) { TFileTestData * pData = GetDialogData(hDlg); LONGLONG ByteOffset; LPBYTE WritePattern = (LPBYTE)"BAADF00D"; ULONG NewLength; ULONG i; size_t cchDataToFill = 0; HWND hWndChild = GetDlgItem(hDlg, IDC_FILE_DATA); // Get the byte offset DlgText2Hex64(hDlg, IDC_BYTE_OFFSET, &ByteOffset); DlgText2Hex32(hDlg, IDC_LENGTH, &NewLength); // Clear the file data from the data editor DataEditor_SetData(hWndChild, 0, NULL, 0); // Determine the new length of the data if(szDataToFill != NULL) { cchDataToFill = strlen(szDataToFill); NewLength = (ULONG)(OffsetToFill + cchDataToFill); } // If we need to increase the buffer size, do it if(NewLength > pData->cbFileDataMax) { pData->pbFileData = (LPBYTE)HeapReAlloc(g_hHeap, HEAP_ZERO_MEMORY, pData->pbFileData, NewLength); if(pData->pbFileData == NULL) return ERROR_NOT_ENOUGH_MEMORY; pData->cbFileDataMax = NewLength; } // If we shall fill the data with custom data, do it if(szDataToFill != NULL) { // Fill the gap after end of current data with zeros if(OffsetToFill > pData->cbFileData) memset(pData->pbFileData + pData->cbFileData, 0, OffsetToFill - pData->cbFileData); memcpy(pData->pbFileData + OffsetToFill, szDataToFill, cchDataToFill); } // If the caller required us to fill the data with pattern, do it else { // If the new pattern is zero, it means to fill the same pattern like before if(FillPattern == 0) FillPattern = pData->FillPattern; // If the pattern is the same like before, just fill the remaining part if(OffsetToFill < NewLength) { switch(FillPattern) { case IDC_FILL_DATA_ZEROS: memset(pData->pbFileData + OffsetToFill, 0, NewLength - OffsetToFill); break; case IDC_FILL_DATA_PATTERN: for(i = (ULONG)OffsetToFill; i < NewLength; i++) pData->pbFileData[i] = WritePattern[i % 8]; break; case IDC_FILL_DATA_RANDOM: srand(GetTickCount()); for(i = (ULONG)OffsetToFill; i < NewLength; i++) pData->pbFileData[i] = (BYTE)(rand() % 0x100); break; } } // Remember the current pattern pData->FillPattern = FillPattern; } // Remember the new data length if(NewLength != pData->cbFileData) { Hex2DlgText32(hDlg, IDC_LENGTH, NewLength); pData->cbFileData = NewLength; } // Apply the new file data DataEditor_SetData(hWndChild, ByteOffset, pData->pbFileData, pData->cbFileData); return ERROR_SUCCESS; }
static int OnInitDialog(HWND hDlg, LPARAM lParam) { TFileTestData * pData; PROPSHEETPAGE * pPage = (PROPSHEETPAGE *)lParam; SetDialogData(hDlg, pPage->lParam); pData = (TFileTestData *)pPage->lParam; // Configure dialog resizing if(pData->bEnableResizing) { pAnchors = new TAnchors(); pAnchors->AddAnchor(hDlg, IDC_SECTION_FRAME, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_SECTION_NAME, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_SECTION_SIZE, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_SECTION_SIZE_UPDOWN, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_DESIRED_ACCESS, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_DESIRED_ACCESS_BROWSE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_PAGE_PROTECTION, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_ALLOCATION_ATTRIBUTES, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_ALLOCATION_ATTRIBUTES_BROWSE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_FILE_HANDLE, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_NTCREATE_SECTION, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_NTOPEN_SECTION, akLeftCenter | akTop); pAnchors->AddAnchor(hDlg, IDC_NTCLOSE, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_SECTION_VIEW_FRAME, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_BASE_ADDRESS, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_BASE_ADDRESS_UPDOWN, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_COMMIT_SIZE, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_COMMIT_SIZE_UPDOWN, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_SECTION_OFFSET, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_SECTION_OFFSET_UPDOWN, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_VIEW_SIZE, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_VIEW_SIZE_UPDOWN, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_ALLOCATION_TYPE, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_ALLOCATION_TYPE_BROWSE, akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_WIN32_PROTECTION, akLeft | akTop | akRight); pAnchors->AddAnchor(hDlg, IDC_MAP_VIEW, akLeft | akTop); pAnchors->AddAnchor(hDlg, IDC_DATA_EDITOR, akLeftCenter | akTop); pAnchors->AddAnchor(hDlg, IDC_UNMAP_VIEW, akRight | akTop); pAnchors->AddAnchor(hDlg, IDC_RESULT_FRAME, akLeft | akRight | akBottom); pAnchors->AddAnchor(hDlg, IDC_RESULT_STATUS_TITLE, akLeft | akBottom); pAnchors->AddAnchor(hDlg, IDC_RESULT_STATUS, akLeft | akRight | akBottom); pAnchors->AddAnchor(hDlg, IDC_HANDLE_TITLE, akLeft | akBottom); pAnchors->AddAnchor(hDlg, IDC_HANDLE, akLeft | akRight | akBottom); } // If we have a tooltip window, init tooltips g_Tooltip.AddToolTip(hDlg, IDC_DESIRED_ACCESS, DesiredAccessValues); g_Tooltip.AddToolTip(hDlg, IDC_ALLOCATION_ATTRIBUTES, AllocationAttributesValues); g_Tooltip.AddToolTip(hDlg, IDC_ALLOCATION_TYPE, AllocationTypeValues); // Initialize the combo box InitPageProtections(hDlg, IDC_PAGE_PROTECTION, PageProtectionValues); InitPageProtections(hDlg, IDC_WIN32_PROTECTION, PageProtectionValues); // Initialize the input parameters Hex2DlgText64(hDlg, IDC_SECTION_SIZE, pData->MaximumSize.QuadPart); Hex2DlgText32(hDlg, IDC_DESIRED_ACCESS, pData->dwSectDesiredAccess); Hex2PageProtection(hDlg, IDC_PAGE_PROTECTION, pData->dwSectPageProtection); Hex2DlgText32(hDlg, IDC_ALLOCATION_ATTRIBUTES, pData->dwSectAllocAttributes); Hex2DlgTextPtr(hDlg, IDC_BASE_ADDRESS, (DWORD_PTR)pData->pvSectionMappedView); Hex2DlgTextPtr(hDlg, IDC_COMMIT_SIZE, pData->cbSectCommitSize); Hex2DlgText64 (hDlg, IDC_SECTION_OFFSET, pData->SectionOffset.QuadPart); Hex2DlgTextPtr(hDlg, IDC_VIEW_SIZE, pData->cbSectViewSize); Hex2DlgText32(hDlg, IDC_ALLOCATION_TYPE, pData->dwSectAllocType); Hex2PageProtection(hDlg, IDC_WIN32_PROTECTION, pData->dwSectWin32Protect); UpdateDialog(hDlg, pData); return TRUE; }