FltSendMessage - ClientPort use

Hi, Does anyone know why ClientPort parameter is a pointer to a pointer and not directly a single pointer? If the variable (let’s call it g_ClientPort) is not modified inside FlrSendMessage why does it need a pointer to it? It’s defined as _in, and I don’t see in the disassembly that it is modified directly, but maybe a subcall does it. Strangely, I never saw code that copied the variable and passed a pointer to different variables yet :slight_smile: OT: what was the email to use to post without going to the forum? Dejan.

@Dejan_Maksimovic said:
Hi,

Does anyone know why ClientPort parameter is a pointer to a pointer and not directly a single pointer?
If the variable (let’s call it g_ClientPort) is not modified inside FlrSendMessage why does it need a pointer to it? It’s defined as _in, and I don’t see in the disassembly that it is modified directly, but maybe a subcall does it.

It’s a cute way to clean up the race between FltSendMessage and FltCloseClientPort without external synchronization:

  • FltSendMessage grabs your filter lock shared and checks to see if *ClientPort is NULL.
  • FltCloseClientPort grabs your filter lock ex and sets *ClientPort to NULL

OT: what was the email to use to post without going to the forum?

We’d really prefer everyone just use the forum at this point…We did a bunch of work to “grandfather in” email access to some people when we moved the site 5+ years ago but it’s mostly just a pain (and I’m still not over having to give up NNTP access ?).

> > Does anyone know why ClientPort parameter is a pointer to a pointer

and not directly a single pointer?
>
> If the variable (let’s call it g_ClientPort) is not modified inside
FlrSendMessage why does it need a pointer to it? It’s defined as _in, and I
don’t see in the disassembly that it is modified directly, but maybe a
subcall does it.

It’s a cute way to clean up the race between FltSendMessage and
FltCloseClientPort without external synchronization:

So, it does need for the same variable’s address to be passed, and not the
value to be copied around? Thanks!

*

We’d really prefer everyone just use the forum at this point…We did a
bunch of work to “grandfather in” email access to some people when we moved
the site 5+ years ago but it’s mostly just a pain (and I’m still not over
having to give up NNTP access ?).

I don-t think you know how much easier e-mail is :smiley:

Regards, Dejan.

@Dejan_Maksimovic said:
So, it does need for the same variable’s address to be passed, and not the
value to be copied around? Thanks!

Correct.

I don-t think you know how much easier e-mail is :smiley:

For you maybe but not for the forum or its indentured servants ? (I, for one, definitely don’t miss seeing broken threads everywhere starting with “RE: re: Re: AW: aw: RE: SV: RE: [NTFSD]”)