[wdmaudiodev] How IPinName::GetPinName should be implemented?

  • From: Eugene Muzychenko <reg.wad@xxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Thu, 26 Dec 2019 11:26:35 +0100

Both current and old "descriptions" of IPinName::GetPinName are
definitely uninformative:

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/portcls/nf-portcls-ipinname-getpinname
https://technet.microsoft.com/pt-br/ff536840%28v=vs.71%29.aspx?f=255&MSPPError=-2147217396

There are no examples in WDK sources too.

It is completely unclear what the "Specifies a pointer to the buffer
that holds the data for the GetPinName method" exactly means.

In some cases, value of Data is zero. How to handle this properly?

If the method simply writes a null-terminated pin name string to the
buffer pointed by Data argument, PortCls does not copy it to the
client's output buffer unless the method sets the length of the string
to the Irp->IoStatus.Information. Should the method set this field?
And should it analyze/set other IRP fields?

So where to find a detailed information about GetPinName
implementation to avoid reverse-engineering of portcls.sys and
hdaudio.sys?

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts:

  • » [wdmaudiodev] How IPinName::GetPinName should be implemented? - Eugene Muzychenko