Loading configuration for adapter {0854672E-C0FE-4D99-92A6-388A9D02C693}...

in my machine i have only one nic installed, then while initializing why
does mux call the CMucPhysicalAdapter(Constructor) twice?

Loading configuration for adapter {0854672E-C0FE-4D99-92A6-388A9D02C693}…
–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

hell man…do you understand c/c++?

Go through the adapter.cpp file you will see that the function
CMuxPhysicalAdapter( ) has two TraceMsg(…) calls one at the begining and
one at hte end!

Infact even the logs say it , the direction of teh arrows tel u that one is
an entry, another is an exit!

>hell man…do you understand c/c++?

I do apologise for the postg, i sincerely do, however, what I had meant was
different.

I had copy pasted only a portion of the logs, which added to your confusion.
Beg your pardon folks!

–>DllMain.
Reason: Attach.
<–DllMain.

–>DllGetClassObject.
–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT = 0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport
{648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).

<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).

<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

–>DllGetClassObject.

–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT = 0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport
{648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).
<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).
<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::MergePropPages
<–CMuxNotify INetCfgPropertyUi::MergePropPages(HRESULT = 0).

–>CMuxNotify::OnCancel
<–CMuxNotify::OnCancel

–>CMuxNotify INetCfgPropertyUi::CancelProperties
<–CMuxNotify INetCfgPropertyUi::CancelProperties(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

Look at this log, it clearly shows th functions called twice.

Can someone tell y it is being called trice?

A P

My guess is that you may not get an answer to this question because nobody
cares.

If a DLL does its job correctly, then why should it care how many times it
is called?

Thomas F. Divine


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of A P
Sent: Friday, January 05, 2007 10:49 AM
To: Windows System Software Devs Interest List
Subject: Re: Re: [ntdev] Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

hell man…do you understand c/c++?

I do apologise for the postg, i sincerely do, however, what I had meant was
different.

I had copy pasted only a portion of the logs, which added to your confusion.
Beg your pardon folks!

–>DllMain.
Reason: Attach.
<–DllMain.

–>DllGetClassObject.
–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT = 0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport
{648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).

<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).

<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

–>DllGetClassObject.

–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT = 0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport
{648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).
<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).
<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::MergePropPages
<–CMuxNotify INetCfgPropertyUi::MergePropPages(HRESULT = 0).

–>CMuxNotify::OnCancel
<–CMuxNotify::OnCancel

–>CMuxNotify INetCfgPropertyUi::CancelProperties
<–CMuxNotify INetCfgPropertyUi::CancelProperties(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

Look at this log, it clearly shows th functions called twice.

Can someone tell y it is being called trice?

A P

— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 To unsubscribe, visit the List
Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Are the lines like this:

–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).

Leading you to believe that the function is called twice?

Look at the arrows at the beginning of the line (–> or <–). Clearly
(at least to me) the log is indicating the entry (–>) and exit (<–)
for each function. It’s not that each function is invoked twice, it’s
that each function logs two entries.

-p

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Thomas F. Divine
Sent: Friday, January 05, 2007 8:44 AM
To: Windows System Software Devs Interest List
Subject: RE: Re: [ntdev] Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

My guess is that you may not get an answer to this question because
nobody cares.

If a DLL does its job correctly, then why should it care how many times
it is called?

Thomas F. Divine


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of A P
Sent: Friday, January 05, 2007 10:49 AM
To: Windows System Software Devs Interest List
Subject: Re: Re: [ntdev] Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

hell man…do you understand c/c++?

I do apologise for the postg, i sincerely do, however, what I had meant
was different.

I had copy pasted only a portion of the logs, which added to your
confusion. Beg your pardon folks!

–>DllMain.
Reason: Attach.
<–DllMain.

–>DllGetClassObject.
–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT =
0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport
{648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).

<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).

<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

–>DllGetClassObject.

–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT =
0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter
{0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport
{648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).
<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).
<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::MergePropPages
<–CMuxNotify INetCfgPropertyUi::MergePropPages(HRESULT = 0).

–>CMuxNotify::OnCancel
<–CMuxNotify::OnCancel

–>CMuxNotify INetCfgPropertyUi::CancelProperties
<–CMuxNotify INetCfgPropertyUi::CancelProperties(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

Look at this log, it clearly shows th functions called twice.

Can someone tell y it is being called trice?

A P

— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 To unsubscribe, visit the
List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

What the OP is seeing is a process using the MUX DLL as a COM in-process server creating an instance of the CMuxNotify object, releasing (hence destroying) it, and then doing it a second time before the DLL is unloaded (even when DllCanUnloadNow succeeds, it is often best to wait for a while before unloading the DLL in case it is needed again, which in this case it was- loading a DLL can be REALLY expensive in terms of performance).

DllMain process attach
DllGetClassObject->CMuxNotify construor
Buncha calls on the INetCfgNotifyGlobal interfaces
CMuxNotify destructor (as in someone called IUnknown::Release on it).
DllCanUnloadNow succeeds
Then back to DllGetClassObject to start that last bit over again.

Perhaps the underlying process is making sure it can initialize the object, then releasing it while it does something else, then coming back, initializing it again and then actually using it.

I’m not sure why that should cause any concern, though. Perhaps there are some invalid assumptions about some global state being kept somewhere in the DLL?

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Peter Wieland
Sent: Friday, January 05, 2007 9:54 AM
To: Windows System Software Devs Interest List
Subject: RE: Re: [ntdev] Loading configuration for adapter {0854672E-C0FE-4D99-92A6-388A9D02C693}…

Are the lines like this:

–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).

Leading you to believe that the function is called twice?

Look at the arrows at the beginning of the line (–> or <–). Clearly (at least to me) the log is indicating the entry (–>) and exit (<–) for each function. It’s not that each function is invoked twice, it’s that each function logs two entries.

-p

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Thomas F. Divine
Sent: Friday, January 05, 2007 8:44 AM
To: Windows System Software Devs Interest List
Subject: RE: Re: [ntdev] Loading configuration for adapter {0854672E-C0FE-4D99-92A6-388A9D02C693}…

My guess is that you may not get an answer to this question because nobody cares.

If a DLL does its job correctly, then why should it care how many times it is called?

Thomas F. Divine


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of A P
Sent: Friday, January 05, 2007 10:49 AM
To: Windows System Software Devs Interest List
Subject: Re: Re: [ntdev] Loading configuration for adapter {0854672E-C0FE-4D99-92A6-388A9D02C693}…

hell man…do you understand c/c++?

I do apologise for the postg, i sincerely do, however, what I had meant was different.

I had copy pasted only a portion of the logs, which added to your confusion. Beg your pardon folks!

–>DllMain.
Reason: Attach.
<–DllMain.

–>DllGetClassObject.
–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT = 0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter {0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport {648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).

<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).

<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

–>DllGetClassObject.

–>CMuxNotify::CMuxNotify(Constructor).
<–CMuxNotify::CMuxNotify(Constructor).

–>CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications.
<–CMuxNotify INetCfgNotifyGlobal::GetSupportedNotifications(HRESULT = 0).

–>CMuxNotify INetCfgControl::Initialize.
–>CMuxNotify::HrLoadAdapterConfiguration.
Loading configuration for adapter {0854672E-C0FE-4D99-92A6-388A9D02C693}…

–>CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).
<–CMuxPhysicalAdapter::CMuxPhysicalAdapter(Constructor).

–>CMuxPhysicalAdapter::LoadConfiguration.
Loading configuration for miniport {648BEED3-347B-423B-A0BE-B00294D89927}…

–>CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).
<–CMuxVirtualMiniport::CMuxVirtualMiniport(Constructor).

–>CMuxVirtualMiniport::LoadConfiguration.
<–CMuxVirtualMiniport::LoadConfiguration(HRESULT = 0).

<–CMuxPhysicalAdapter::LoadConfiguration(HRESULT = 0).
<–CMuxNotify::HrLoadAdapterConfiguration(HRESULT = 0).
<–CMuxNotify INetCfgControl::Initialize(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::MergePropPages
<–CMuxNotify INetCfgPropertyUi::MergePropPages(HRESULT = 0).

–>CMuxNotify::OnCancel
<–CMuxNotify::OnCancel

–>CMuxNotify INetCfgPropertyUi::CancelProperties
<–CMuxNotify INetCfgPropertyUi::CancelProperties(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::SetContext
<–CMuxNotify INetCfgPropertyUi::SetContext(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify INetCfgPropertyUi::QueryPropertyUi
<–CMuxNotify INetCfgPropertyUi::QueryPropertyUi(HRESULT = 0).

–>CMuxNotify::~CMuxNotify(Destructor).
–>CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
–>CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxVirtualMiniport::~CMuxVirtualMiniport(Destructor).
<–CMuxPhysicalAdapter::~CMuxPhysicalAdapter(Destructor).
<–CMuxNotify::~CMuxNotify(Destructor).

–>DllCanUnloadNow.
–>DllCanUnloadNow(HRESULT = 0).

Look at this log, it clearly shows th functions called twice.

Can someone tell y it is being called trice?

A P
— Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256 To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer