InbvDisplayString does not work properly.

I try to print text on the screen after Windows starts, but an error always occurs.

Some features always disappear, I don’t know why, could someone help me?

Google translator

I was under the impression that InbvDisplayString stopped working as of Windows 8.

Peter

1 Like

@“Peter_Viscarola_(OSR)” said:
I was under the impression that InbvDisplayString stopped working as of Windows 8.

Peter

So, it doesn’t work on the latest versions of Windows? if not, could you recommend something to me to write texts on the screen?

What are you trying to accomplish?

Did you see this thread: https://community.osr.com/discussion/292629/execute-native-application-in-windows-10-and-8-1#latest

Peter

@“Peter_Viscarola_(OSR)” said:
What are you trying to accomplish?

Did you see this thread: https://community.osr.com/discussion/292629/execute-native-application-in-windows-10-and-8-1#latest

Peter

What I’m trying to do and show a message on the screen while loading Windows using the InbvDisplayString function, this function works, but my real problem is that some characters disappear, but I don’t know why, for example:

If I call the function InbvDisplayString ("dimasperreira595@gmail.com");, it will return me dimasperreira595@gmail.cm, what I wanted to know and why some characters disappear and how to solve.

I looked at the topic you sent me, but unfortunately it didn’t solve my problem.

Hello, I just came to leave a clear answer, for those who also have the same question, because I already managed to solve this.

Instead of using the InbvDisplayString function, you can use ZwDisplayString, it works perfectly well, I’ll leave an example below for those who want to test it, REMEMBERING that the driver must be started in SYSTEM_START or BOOT_START:

UNICODE_STRING us;
	RtlInitUnicodeString(&us, L"Exemple\n");
	ZwDisplayString(&us);

I guess you finally read that thread I pointed you to above, huh? Where he uses NtDisplayString? Where you said it didn’t solve your problem?

Peter

@“Peter_Viscarola_(OSR)” said:
I guess you finally read that thread I pointed you to above, huh? Where he uses NtDisplayString? Where you said it didn’t solve your problem?

Peter

No, this link you sent me unfortunately did not solve my problem, NtDisplayString did not work for me.

ZwDisplayString yes.

NtDisplayString did not work for me; ZwDisplayString yes.

Hmmmm… You do understand that they’re the same system service, right?

They only difference between them is one (ZwXXX) explicitly sets previous mode to Kernel Mode, and the other (NtXxxx) leaves the previous mode as is.

When writing drivers, you’re not meant to copy/paste. You’re meant to read, consider, understand and use the feature you need. In terms of NtXxxx calls, you need to consciously decide which variant you want to use, based on how you code is invoked.

Peter

1 Like

@“Peter_Viscarola_(OSR)” said:

NtDisplayString did not work for me; ZwDisplayString yes.

Hmmmm… You do understand that they’re the same system service, right?

They only difference between them is one (ZwXXX) explicitly sets previous mode to Kernel Mode, and the other (NtXxxx) leaves the previous mode as is.

When writing drivers, you’re not meant to copy/paste. You’re meant to read, consider, understand and use the feature you need. In terms of NtXxxx calls, you need to consciously decide which variant you want to use, based on how you code is invoked.

Peter

Thanks for the answer, and I’m sorry for anything…