◄Up► ◄Next► ◄Previous► ──────────────────────────────────────────────────────────────────────────── include vmm.inc pushfd ; save flags on stack pushad ; save registers on stack mov esi, OFFSET32 String ; points to string to write VMMcall Out_Debug_String popad popfd The Out_Debug_String service writes the specified null-terminated string to the debugging device (the COM1 serial port). If the string contains register placeholders, Out_Debug_String replaces these with the actual register values (in hexadecimal), or the symbolic label nearest to the specified addresses. Parameter Description ──────────────────────────────────────────────────────────────────────────── String Points to a null-terminated string specifying the message to write to the debugging device. Out_Debug_String uses the lods instruction to process characters in the string, so the DS register must specify the correct segment selector for the string. The string can contain one or more placeholders having the following forms: Placeholder Description ───────────────────────────────────────────────────────────────── #register Displays the current value of the specified register. For example, the service replaces #AX with the value of the AX register. The register must not be the name of a segment register. ?register Displays the label nearest the address specified by the registers. For example, the service replaces ?EAX with the VMM code segment label nearest the address in the EAX register. The register must not be the name of a segment register. ?register:register Displays the label nearest the address specified by the registers. For example, the service replaces ?AX:EBX with the label in the segment specified by the AX register that is nearest to the address in the EBX register. The register must not be the name of a segment register. Return Value This service has no return value. Comments This service has no effect in the retail version of Windows. It is intended to be used with the debugging version. If the string contains placeholders, Out_Debug_String requires the caller to use the pushfd and pushad instructions before carrying out a near call to this service. Uses All registers and flags See Also Trace_Out ♦