Kip Irvine Chapter 11 Study Questions
60 Questions
100 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is the linker command that specifies that the target program is for the Win32 console?

/SUBSYSTEM:CONSOLE

A function ending with the letter W (such as WriteConsoleW) is designed to work with a wide (16-bit) character set such as Unicode.

True

Unicode is the native character set for Windows 98.

False

The ReadConsole function reads mouse information from the input buffer.

<p>False</p> Signup and view all the answers

Win32 console input functions can detect when the user has resized the console window.

<p>True</p> Signup and view all the answers

Describe a POINT structure.

<p>A POINT structure contains two fields, ptX and ptY, that describe the X- and Y-coordinates (in pixels) of a point on the screen.</p> Signup and view all the answers

How is the WNDCLASS structure used?

<p>The WNDCLASS structure defines a window class. Each window in a program must belong to a class, and each program must define a window class for its main window.</p> Signup and view all the answers

In a WNDCLASS structure, what is the meaning of the lpfnWndProc field?

<p>lpfnWndProc is a pointer to a function in an application program that receives and processes event messages triggered by the user.</p> Signup and view all the answers

In a WNDCLASS structure, what is the meaning of the style field?

<p>The style field is a combination of different style options, such as WS_CAPTION and WS_BORDER, that control a window's appearance and behavior.</p> Signup and view all the answers

In a WNDCLASS structure, what is the meaning of the hInstance field?

<p>hInstance holds a handle to the current program instance.</p> Signup and view all the answers

What is another term for heap allocation, in the context of C, C++, and Java?

<p>Dynamic memory allocation</p> Signup and view all the answers

Describe the GetProcessHeap function.

<p>Returns a 32-bit integer handle to the program's existing heap area in EAX.</p> Signup and view all the answers

Describe the HeapAlloc function.

<p>Allocates a block of memory from a heap.</p> Signup and view all the answers

Show a sample call to the HeapCreate function.

<p>HEAP_START = 2000000 ; 2 MB HEAP_MAX = 400000000 ; 400 MB.data hHeap HANDLE ?; handle to heap.code INVOKE HeapCreate, 0, HEAP_START, HEAP_MAX</p> Signup and view all the answers

When calling HeapDestroy, how do you identify the memory block being destroyed?

<p>Pass a pointer to the memory block (along with the heap handle).</p> Signup and view all the answers

Define the term Multitasking.

<p>Multitasking permits multiple programs (or tasks) to run at the same time.</p> Signup and view all the answers

Define the term Segmentation.

<p>Segmentation provides a way to isolate memory segments from each other.</p> Signup and view all the answers

A segment selector points to an entry in a segment descriptor table.

<p>True</p> Signup and view all the answers

A segment descriptor contains the base location of a segment.

<p>True</p> Signup and view all the answers

A segment selector is 32 bits.

<p>False</p> Signup and view all the answers

A segment descriptor does not contain segment size information.

<p>False</p> Signup and view all the answers

Name the MASM data type that matches each of the following standard MS-Windows types:

<p>BOOL = byte COLORREF = DWORD HANDLE = DWORD LPSTR = PTR BYTE WPARAM = DWORD</p> Signup and view all the answers

Which Win32 function returns a handle to standard input?

<p>GetStdHandle</p> Signup and view all the answers

Which Win32 function reads a string of text from the keyboard and places the string in a buffer?

<p>ReadConsole</p> Signup and view all the answers

Describe the COORD structure.

<p>The COORD structure contains X and Y screen coordinates in character measurements.</p> Signup and view all the answers

Which Win32 function moves the file pointer to a specified offset relative to the beginning of a file?

<p>SetFilePointer</p> Signup and view all the answers

Which Win32 function changes the title of the console window?

<p>SetConsoleTitle</p> Signup and view all the answers

Which Win32 function lets you change the dimensions of the screen buffer?

<p>SetConsoleScreenBufferSize</p> Signup and view all the answers

Which Win32 function lets you change the size of the cursor?

<p>SetConsoleCursorInfo</p> Signup and view all the answers

Which Win32 function lets you change the color of subsequent text output?

<p>SetConsoleTextAttribute</p> Signup and view all the answers

Which Win32 function lets you copy an array of attribute values to consecutive cells of the console screen buffer?

<p>WriteConsoleOutputAttribute</p> Signup and view all the answers

Which Win32 function lets you pause a program for a specified number of milliseconds?

<p>Sleep</p> Signup and view all the answers

When CreateWindowEx is called, how is the window's appearance information transmitted to the function?

<p>(A program that calls CreateWindowEx is shown in Section 11.2.6.) The prototype for CreateWindowEx is located in the GraphWin.inc file: CreateWindowEx PROTO, classexWinStyle:DWORD, className:PTR BYTE, winName:PTR BYTE, winStyle:DWORD, X:DWORD, Y:DWORD, rWidth:DWORD, rHeight:DWORD, hWndParent:DWORD, hMenu:DWORD, hInstance:DWORD, lpParam:DWORD The fourth parameter, winStyle, determines the window's style characteristics.</p> Signup and view all the answers

Name two button constants that can be used when calling the MessageBox function.

<p>MB_OK = MB_OKCANCEL MB_ABORTRETRYIGNORE = MB_YESNOCANCEL MB_YESNO = MB_RETRYCANCEL MB_CANCELTRYCONTINUE = MB_ICONHAND</p> Signup and view all the answers

Name two icon constants that can be used when calling the MessageBox function.

<p>MB_ICONHAND = MB_ICONQUESTION MB_ICONEXCLAMATION = MB_ICONASTERISK</p> Signup and view all the answers

Name at least three tasks performed by the WinMain (startup) procedure.

<p>Get a handle to the current program, Load the program's icon and mouse cursor, Register the program's main window class.</p> Signup and view all the answers

Describe the role of the WinProc procedure in the example program.

<p>The WinProc procedure receives and processes all event messages relating to a window.</p> Signup and view all the answers

Which messages are processed by the WinProc procedure in the example program?

<p>WM_LBUTTONDOWN, WM_CREATE, WM_CLOSE.</p> Signup and view all the answers

Describe the role of the ErrorHandler procedure in the example program.

<p>The ErrorHandler procedure, which is optional, is called if the system reports an error during the registration and creation of the program's main window.</p> Signup and view all the answers

Does the message box activated immediately after calling CreateWindow appear before or after the application's main window?

<p>False</p> Signup and view all the answers

Does the message box activated by WM_CLOSE appear before or after the main window closes?

<p>False</p> Signup and view all the answers

Describe a linear address.

<p>A linear address is a 32-bit integer ranging between 0 and FFFFFFFFh, which refers to a memory location.</p> Signup and view all the answers

How does paging relate to linear memory?

<p>When paging is enabled, the processor translates each 32-bit linear address into a 32-bit physical address.</p> Signup and view all the answers

If paging is disabled, how does the processor translate a linear address to a physical address?

<p>The linear address is automatically a 32-bit physical memory address.</p> Signup and view all the answers

What advantage does paging offer?

<p>Paging makes it possible for a computer to run a combination of programs that would not otherwise fit into memory.</p> Signup and view all the answers

Which register contains the base location of a local descriptor table?

<p>The LDTR register</p> Signup and view all the answers

Which register contains the base location of a global descriptor table?

<p>The GDTR register.</p> Signup and view all the answers

How many global descriptor tables can exist?

<p>One.</p> Signup and view all the answers

How many local descriptor tables can exist?

<p>Many (each task or program has its own local descriptor table)</p> Signup and view all the answers

Name at least four fields in a segment descriptor.

<p>base address = privilege level segment type = segment present flag granularity flag = segment limit</p> Signup and view all the answers

Which structures are involved in the paging process?

<p>Page Directory = Page Table Page = Page Frame</p> Signup and view all the answers

Which structure contains the base address of a page table?

<p>The Table field of a linear address.</p> Signup and view all the answers

Which structure contains the base address of a page frame?

<p>The Offset field of a linear address.</p> Signup and view all the answers

Show an example call to the ReadConsole function.

<p>Example from the ReadConsole.asm program: INVOKE ReadConsole, stdInHandle, ADDR buffer, BufSize - 2, ADDR bytesRead, 0</p> Signup and view all the answers

Show an example call to the WriteConsole function.

<p>Example from the Console1.asm program: INVOKE WriteConsole, consoleHandle, ADDR message, messageSize, ADDR bytesWritten, 0</p> Signup and view all the answers

Show an example call to the CreateFile function that will open an existing file for reading.

<p>INVOKE CreateFile, ADDR filename, GENERIC_READ, DO_NOT_SHARE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0</p> Signup and view all the answers

Show an example call to the CreateFile function that will create a new file with normal attributes, erasing any existing file by the same name.

<p>INVOKE CreateFile, ADDR filename, GENERIC_WRITE, DO_NOT_SHARE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0</p> Signup and view all the answers

Show an example call to the ReadFile function.

<p>INVOKE ReadFile, fileHandle, ADDR buffer, bufSize, ADDR byteCount, 0</p> Signup and view all the answers

Show an example call to the WriteFile function.

<p>INVOKE WriteFile, fileHandle, ADDR buffer, bufSize, ADDR bytesWritten, 0</p> Signup and view all the answers

Show an example of calling the MessageBox function.

<p>INVOKE MessageBox, hMainWnd, ADDR GreetText, ADDR GreetTitle, MB_OK</p> Signup and view all the answers

Study Notes

Linker Commands and Unicode

  • Use /SUBSYSTEM:CONSOLE to specify a target program for the Win32 console.
  • Functions ending with 'W' are designed for wide character sets (e.g., Unicode).
  • Windows 98 does not use Unicode as its native character set.

Console Functions

  • ReadConsole does not read mouse information from the input buffer.
  • Win32 console can detect console window resizing.

Structures in Windows Programming

  • A POINT structure defines screen coordinates (ptX, ptY) in pixels.
  • WNDCLASS structure defines a window class necessary for each window and must be registered with the OS.
  • lpfnWndProc in WNDCLASS points to a function to process user-triggered event messages.
  • The style field in WNDCLASS regulates window appearance and behavior.

Memory Management

  • Dynamic memory allocation refers to heap allocation in C, C++, and Java.
  • GetProcessHeap returns a handle to the program's existing heap area.
  • HeapAlloc allocates memory from a heap and HeapDestroy requires a pointer to the memory block being destroyed.

Segmentation

  • Multitasking allows multiple programs to run concurrently, while segmentation isolates memory segments to prevent interference.
  • Segment selector is a 16-bit value in segment registers, while a logical address combines it with a 32-bit offset.

Descriptor Tables

  • Segment selector and descriptor tables contain localization and size information for memory segments.
  • One global descriptor table (GDTR) can exist, while multiple local descriptor tables (LDTR) can be present.

Paging Mechanism

  • Paging allows a computer to run programs that wouldn't fit in memory all at once by using a combination of disk and RAM.
  • Linear addresses translate into physical addresses via page directories and tables when paging is enabled.

Win32 Functions Overview

  • GetStdHandle returns a handle to standard input.
  • ReadConsole reads input from the keyboard into a buffer.
  • SetConsoleTitle changes the console window title; SetConsoleScreenBufferSize adjusts buffer dimensions; SetConsoleCursorInfo alters cursor size.
  • SetConsoleTextAttribute modifies the color of text output, and WriteConsoleOutputAttribute copies attribute values to the console buffer.
  • Sleep pauses program execution for specified milliseconds.

Window Management

  • CreateWindowEx is used to create windows, where winStyle sets the appearance characteristics.
  • Different button constants (e.g., MB_OK, MB_YESNO) and icon constants (e.g., MB_ICONHAND, MB_ICONQUESTION) are used in message boxes.
  • The WinMain procedure handles key startup tasks such as window class registration and message dispatching.

Event Message Processing

  • WinProc processes all event messages related to the window and performs application-specific tasks.
  • Key messages processed include WM_LBUTTONDOWN, WM_CREATE, and WM_CLOSE.

Error Handling

  • An optional ErrorHandler procedure handles system error reported during window registration or creation.

Addressing Memory

  • A linear address is a 32-bit integer representing a memory location, translating to a physical address when paging is disabled.
  • Paging breaks down linear addresses into fields for directory entries and offsets.

File Operations

  • CreateFile function examples show how to open and create files, with specific parameters for access modes and attributes.
  • Functions like ReadFile and WriteFile are used to manage file operations, transferring data into buffers.

Utilizing Message Boxes

  • Message boxes can reveal information or confirm actions, with example calls demonstrating their use in applications.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Test your knowledge of Chapter 11 from Kip Irvine's programming book with these study questions and answers. Each flashcard helps reinforce key concepts related to Win32 console and Unicode character sets. Challenge yourself to understand essential terminologies and commands.

More Like This

Sistemas Operativos 2 - Threads em Win32
10 questions
Use Quizgecko on...
Browser
Browser