Ejemplo n.º 1
0
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;
}
Ejemplo n.º 3
0
static void CompleteReadWriteOperation(HWND hDlg, TApcReadWrite * pApc, int nError, DWORD dwTransferred)
{
    HWND hWndEditor;

    // Set the information about the operation
    SetResultInfo(hDlg, nError, NULL, dwTransferred);

    // If the operation has succeeded, update few UI elements
    if(nError == ERROR_SUCCESS)
    {
        // If the "increase position" is checked, increment the byte position
        if(pApc->bIncrementPosition)
        {
            pApc->ByteOffset.QuadPart += dwTransferred;
            Hex2DlgText64(hDlg, IDC_BYTE_OFFSET, pApc->ByteOffset.QuadPart);
        }

        // If we shall update the data view, do it
        if(pApc->bUpdateData)
        {
            hWndEditor = GetDlgItem(hDlg, IDC_FILE_DATA);
            InvalidateRect(hWndEditor, NULL, TRUE);
        }
    }
}
Ejemplo n.º 4
0
static int OnDeltaPos(HWND hDlg, NMUPDOWN * pNMUpDown)
{
    UINT nIDCtrl = 0;
    bool bIsValuePointer = false;

    switch(pNMUpDown->hdr.idFrom)
    {
        case IDC_SECTION_SIZE_UPDOWN:
            nIDCtrl = IDC_SECTION_SIZE;
            break;

        case IDC_BASE_ADDRESS_UPDOWN:
            nIDCtrl = IDC_BASE_ADDRESS;
            bIsValuePointer = true;
            break;

        case IDC_COMMIT_SIZE_UPDOWN:
            nIDCtrl = IDC_COMMIT_SIZE;
            bIsValuePointer = true;
            break;

        case IDC_SECTION_OFFSET_UPDOWN:
            nIDCtrl = IDC_SECTION_OFFSET;
            break;

        case IDC_VIEW_SIZE_UPDOWN:
            nIDCtrl = IDC_VIEW_SIZE;
            bIsValuePointer = true;
            break;

        default:
            assert(false);
            return FALSE;
    }

    // If we have to set a pointer, do it
    if(bIsValuePointer == false)
    {
        ULONGLONG NewValue;
        ULONGLONG OldValue;

        DlgText2Hex64(hDlg, nIDCtrl, (PLONGLONG)&OldValue);
        NewValue = OldValue - (pNMUpDown->iDelta * 0x1000);
        if(pNMUpDown->iDelta > 0 && NewValue > OldValue)
            NewValue = 0;
        Hex2DlgText64(hDlg, nIDCtrl, NewValue);
    }
    else
    {
        DWORD_PTR NewValue;
        DWORD_PTR OldValue;

        DlgText2HexPtr(hDlg, nIDCtrl, &OldValue);
        NewValue = OldValue - (pNMUpDown->iDelta * 0x1000);
        if(pNMUpDown->iDelta > 0 && NewValue > OldValue)
            NewValue = 0;
        Hex2DlgTextPtr(hDlg, nIDCtrl, NewValue);
    }
    return TRUE;
}
Ejemplo n.º 5
0
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 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;
}
Ejemplo n.º 7
0
static int OnDeltaPos(HWND hDlg, NMUPDOWN * pNMUpDown)
{
    LONGLONG AllocationSize;

    DlgText2Hex64(hDlg, IDC_ALLOCATION_SIZE, &AllocationSize);
    AllocationSize -= pNMUpDown->iDelta * 0x100;
    if(AllocationSize < 0)
        AllocationSize = 0;
    Hex2DlgText64(hDlg, IDC_ALLOCATION_SIZE, AllocationSize);
    return TRUE;
}
Ejemplo n.º 8
0
static int OnMapViewClick(HWND hDlg)
{
    TFileTestData * pData = GetDialogData(hDlg);
    LARGE_INTEGER SectionOffset;
    NTSTATUS Status;
    SIZE_T ViewSize;
    PVOID BaseAddress;

    // If we have mapped view, unmap it now
    if(pData->bSectionViewMapped)
        OnUnmapViewClick(hDlg);

    // Get the values from dialog controls to the dialog data
    if(SaveDialog2(hDlg) != ERROR_SUCCESS)
        return FALSE;

    // Copy some values to stack
    SectionOffset.QuadPart = pData->SectionOffset.QuadPart;
    BaseAddress = pData->pvSectionMappedView;
    ViewSize = pData->cbSectViewSize;

    // Call the NtMapViewOfSection
    Status = NtMapViewOfSection(pData->hSection,
                                NtCurrentProcess(),
                               &BaseAddress,
                                0,
                                pData->cbSectCommitSize,
                               &SectionOffset,
                               &ViewSize,
                                ViewShare,
                                pData->dwSectAllocType,
                                pData->dwSectWin32Protect);
    if(NT_SUCCESS(Status))
    {
        // If the section offset changed, set it to the dialog control
        if(SectionOffset.QuadPart != pData->SectionOffset.QuadPart)
            Hex2DlgText64(hDlg, IDC_SECTION_OFFSET, SectionOffset.QuadPart);
        if(BaseAddress != pData->pvSectionMappedView)
            Hex2DlgTextPtr(hDlg, IDC_BASE_ADDRESS, (ULONG_PTR)BaseAddress);
        if(ViewSize != pData->cbSectViewSize)
            Hex2DlgTextPtr(hDlg, IDC_VIEW_SIZE, ViewSize);
        
        // Remember the view
        pData->pvSectionMappedView = BaseAddress;
        pData->cbSectViewSize = ViewSize;
        pData->bSectionViewMapped = TRUE;
    }

    SetResultInfo(hDlg, Status, pData->hSection);
    UpdateDialog(hDlg, pData);
    return TRUE;
}
Ejemplo n.º 9
0
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;
}
Ejemplo n.º 10
0
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;
}