WdfUsbInterfaceSelectSetting

Hi :slight_smile:

I am porting some USB audio drivers from WDM to KMDF. But,
sometimes, when I call “WdfUsbInterfaceSelectSetting” there is the
following error:

PAGE_FAULT_IN_NONPAGED_AREA (50)

Invalid system memory was referenced. This cannot be protected by
try-except,

it must be protected by a Probe. Typically the address is just plain
bad or it

is pointing at freed memory.

Arguments:

Arg1: 85596000, memory referenced.

Arg2: 00000000, value 0 = read operation, 1 = write operation.

Arg3: 806b74b0, If non-zero, the instruction address which referenced
the bad memory address.

Arg4: 00000001, (reserved)

STACK_TEXT:

93932d8c 81cd873f 00000003 9393969c 00000000
nt!RtlpBreakWithStatusInstruction

93932ddc 81cd91ac 00000003 00561b02 851fd6e0
nt!KiBugCheckDebugBreak+0x1c

93933188 81ca9ef2 00000050 85596000 00000000 nt!KeBugCheck2+0x5f4

93933204 81c8fa74 00000000 85596000 00000000 nt!MmAccessFault+0x106

93933204 806b74b0 00000000 85596000 00000000 nt!KiTrap0E+0xdc

9393329c 806b68d3 85595ff0 00000005 8503e848
Wdf01000!FxUsbPipe::InitPipe+0x19

939332bc 806b6ffd 855955a4 00000000 8503e848
Wdf01000!FxUsbInterface::SetInfo+0x38

93933390 806b7105 00000000 85595590 00000000
Wdf01000!FxUsbInterface::SelectSetting+0x1f2

939333ac 806b2574 00000000 00000000 851df540
Wdf01000!FxUsbInterface::SelectSettingByIndex+0x7e

939333d0 9c643dcd 00116a68 7afc17b0 00000000
Wdf01000!imp_WdfUsbInterfaceSelectSetting+0x4c4

The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig”
everytime to get the ConfiguredUsbInterface handle before calling
“WdfUsbInterfaceSelectSetting”.

If we call “WdfUsbTargetDeviceSelectConfig” and save the
ConfiguredUsbInterface handle, we have verified and the handle number
doesn’t get corrupted.

This problem seems to happen only with our 32 bit vista drivers. Our 64
bits version doesn’t have this problem.

Does anyone know a possible cause of this problem?

Thanks,

Alexis

What version of KMDF is this? Do the alternate settings you are using
have a different number of endpoints? If so, this is a bug in v1.1 that
was fixed in v1.5.

d

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 9:26 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] WdfUsbInterfaceSelectSetting

Hi :slight_smile:

I am porting some USB audio drivers from WDM to KMDF. But,
sometimes, when I call “WdfUsbInterfaceSelectSetting” there is the
following error:

PAGE_FAULT_IN_NONPAGED_AREA (50)

Invalid system memory was referenced. This cannot be protected by
try-except,

it must be protected by a Probe. Typically the address is just plain
bad or it

is pointing at freed memory.

Arguments:

Arg1: 85596000, memory referenced.

Arg2: 00000000, value 0 = read operation, 1 = write operation.

Arg3: 806b74b0, If non-zero, the instruction address which referenced
the bad memory address.

Arg4: 00000001, (reserved)

STACK_TEXT:

93932d8c 81cd873f 00000003 9393969c 00000000
nt!RtlpBreakWithStatusInstruction

93932ddc 81cd91ac 00000003 00561b02 851fd6e0
nt!KiBugCheckDebugBreak+0x1c

93933188 81ca9ef2 00000050 85596000 00000000 nt!KeBugCheck2+0x5f4

93933204 81c8fa74 00000000 85596000 00000000 nt!MmAccessFault+0x106

93933204 806b74b0 00000000 85596000 00000000 nt!KiTrap0E+0xdc

9393329c 806b68d3 85595ff0 00000005 8503e848
Wdf01000!FxUsbPipe::InitPipe+0x19

939332bc 806b6ffd 855955a4 00000000 8503e848
Wdf01000!FxUsbInterface::SetInfo+0x38

93933390 806b7105 00000000 85595590 00000000
Wdf01000!FxUsbInterface::SelectSetting+0x1f2

939333ac 806b2574 00000000 00000000 851df540
Wdf01000!FxUsbInterface::SelectSettingByIndex+0x7e

939333d0 9c643dcd 00116a68 7afc17b0 00000000
Wdf01000!imp_WdfUsbInterfaceSelectSetting+0x4c4

The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig”
everytime to get the ConfiguredUsbInterface handle before calling
“WdfUsbInterfaceSelectSetting”.

If we call “WdfUsbTargetDeviceSelectConfig” and save the
ConfiguredUsbInterface handle, we have verified and the handle number
doesn’t get corrupted.

This problem seems to happen only with our 32 bit vista drivers. Our 64
bits version doesn’t have this problem.

Does anyone know a possible cause of this problem?

Thanks,

Alexis


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

We are using version 1.5 and there are different number of endpoints
between the alternate settings.

Thanks,

Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 12:40
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

What version of KMDF is this? Do the alternate settings you are using
have a different number of endpoints? If so, this is a bug in v1.1 that
was fixed in v1.5.

d

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 9:26 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] WdfUsbInterfaceSelectSetting

Hi :slight_smile:

I am porting some USB audio drivers from WDM to KMDF. But,
sometimes, when I call “WdfUsbInterfaceSelectSetting” there is the
following error:

PAGE_FAULT_IN_NONPAGED_AREA (50)

Invalid system memory was referenced. This cannot be protected by
try-except,

it must be protected by a Probe. Typically the address is just plain
bad or it

is pointing at freed memory.

Arguments:

Arg1: 85596000, memory referenced.

Arg2: 00000000, value 0 = read operation, 1 = write operation.

Arg3: 806b74b0, If non-zero, the instruction address which referenced
the bad memory address.

Arg4: 00000001, (reserved)

STACK_TEXT:

93932d8c 81cd873f 00000003 9393969c 00000000
nt!RtlpBreakWithStatusInstruction

93932ddc 81cd91ac 00000003 00561b02 851fd6e0
nt!KiBugCheckDebugBreak+0x1c

93933188 81ca9ef2 00000050 85596000 00000000 nt!KeBugCheck2+0x5f4

93933204 81c8fa74 00000000 85596000 00000000 nt!MmAccessFault+0x106

93933204 806b74b0 00000000 85596000 00000000 nt!KiTrap0E+0xdc

9393329c 806b68d3 85595ff0 00000005 8503e848
Wdf01000!FxUsbPipe::InitPipe+0x19

939332bc 806b6ffd 855955a4 00000000 8503e848
Wdf01000!FxUsbInterface::SetInfo+0x38

93933390 806b7105 00000000 85595590 00000000
Wdf01000!FxUsbInterface::SelectSetting+0x1f2

939333ac 806b2574 00000000 00000000 851df540
Wdf01000!FxUsbInterface::SelectSettingByIndex+0x7e

939333d0 9c643dcd 00116a68 7afc17b0 00000000
Wdf01000!imp_WdfUsbInterfaceSelectSetting+0x4c4

The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig”
everytime to get the ConfiguredUsbInterface handle before calling
“WdfUsbInterfaceSelectSetting”.

If we call “WdfUsbTargetDeviceSelectConfig” and save the
ConfiguredUsbInterface handle, we have verified and the handle number
doesn’t get corrupted.

This problem seems to happen only with our 32 bit vista drivers. Our 64
bits version doesn’t have this problem.

Does anyone know a possible cause of this problem?

Thanks,

Alexis


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

Are you sure? Can you send the output of !wdfldr to verify?

Thx

d

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 10:33 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

We are using version 1.5 and there are different number of endpoints
between the alternate settings.

Thanks,

Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 12:40
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

What version of KMDF is this? Do the alternate settings you are using
have a different number of endpoints? If so, this is a bug in v1.1 that
was fixed in v1.5.

d

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 9:26 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] WdfUsbInterfaceSelectSetting

Hi :slight_smile:

I am porting some USB audio drivers from WDM to KMDF. But,
sometimes, when I call “WdfUsbInterfaceSelectSetting” there is the
following error:

PAGE_FAULT_IN_NONPAGED_AREA (50)

Invalid system memory was referenced. This cannot be protected by
try-except,

it must be protected by a Probe. Typically the address is just plain
bad or it

is pointing at freed memory.

Arguments:

Arg1: 85596000, memory referenced.

Arg2: 00000000, value 0 = read operation, 1 = write operation.

Arg3: 806b74b0, If non-zero, the instruction address which referenced
the bad memory address.

Arg4: 00000001, (reserved)

STACK_TEXT:

93932d8c 81cd873f 00000003 9393969c 00000000
nt!RtlpBreakWithStatusInstruction

93932ddc 81cd91ac 00000003 00561b02 851fd6e0
nt!KiBugCheckDebugBreak+0x1c

93933188 81ca9ef2 00000050 85596000 00000000 nt!KeBugCheck2+0x5f4

93933204 81c8fa74 00000000 85596000 00000000 nt!MmAccessFault+0x106

93933204 806b74b0 00000000 85596000 00000000 nt!KiTrap0E+0xdc

9393329c 806b68d3 85595ff0 00000005 8503e848
Wdf01000!FxUsbPipe::InitPipe+0x19

939332bc 806b6ffd 855955a4 00000000 8503e848
Wdf01000!FxUsbInterface::SetInfo+0x38

93933390 806b7105 00000000 85595590 00000000
Wdf01000!FxUsbInterface::SelectSetting+0x1f2

939333ac 806b2574 00000000 00000000 851df540
Wdf01000!FxUsbInterface::SelectSettingByIndex+0x7e

939333d0 9c643dcd 00116a68 7afc17b0 00000000
Wdf01000!imp_WdfUsbInterfaceSelectSetting+0x4c4

The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig”
everytime to get the ConfiguredUsbInterface handle before calling
“WdfUsbInterfaceSelectSetting”.

If we call “WdfUsbTargetDeviceSelectConfig” and save the
ConfiguredUsbInterface handle, we have verified and the handle number
doesn’t get corrupted.

This problem seems to happen only with our 32 bit vista drivers. Our 64
bits version doesn’t have this problem.

Does anyone know a possible cause of this problem?

Thanks,

Alexis


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

Here is the !wdfldr

1: kd> !wdfldr

LoadedModuleList 0x8042518c


LIBRARY_MODULE 85842a00

Version v1.5 build(6000)

Service
\Registry\Machine\System\CurrentControlSet\Services\Wdf01000

ImageName Wdf01000.sys

ImageAddress 0x806a4000

ImageSize 0x7b000

Associated Clients: 7

CLIENT_MODULE 872d48d0

Globals 8545e2f0 WDF_DRIVER_GLOBALS

Context 8545e238 FX_DRIVER_GLOBALS

ImageName HDJAsioK.sys

ImageAddress 0x9d73b000

ImageSize 0x2d000

Version v1.5 build(6000)

CLIENT_MODULE 8717c758

Globals 8717c620 WDF_DRIVER_GLOBALS

Context 8717c568 FX_DRIVER_GLOBALS

ImageName peauth.sys

ImageAddress 0x96f22000

ImageSize 0xde000

Version v1.5 build(5840)

CLIENT_MODULE 86ec6540

Globals 86eb6288 WDF_DRIVER_GLOBALS

Context 86eb61d0 FX_DRIVER_GLOBALS

ImageName monitor.sys

ImageAddress 0x8872e000

ImageSize 0xf000

Version v1.5 build(6000)

CLIENT_MODULE 8644ed50

Globals 864f9218 WDF_DRIVER_GLOBALS

Context 864f9160 FX_DRIVER_GLOBALS

ImageName umbus.sys

ImageAddress 0x8b0f2000

ImageSize 0xd000

Version v1.5 build(6000)

CLIENT_MODULE 8648c448

Globals 86421c40 WDF_DRIVER_GLOBALS

Context 86421b88 FX_DRIVER_GLOBALS

ImageName HDAudBus.sys

ImageAddress 0x8aeee000

ImageSize 0x12000

Version v1.5 build(6000)

CLIENT_MODULE 86416288

Globals 86418e80 WDF_DRIVER_GLOBALS

Context 86418dc8 FX_DRIVER_GLOBALS

ImageName intelppm.sys

ImageAddress 0x8a004000

ImageSize 0xe000

Version v1.5 build(6000)

CLIENT_MODULE 858a3f98

Globals 858a3b90 WDF_DRIVER_GLOBALS

Context 858a3ad8 FX_DRIVER_GLOBALS

ImageName msisadrv.sys

ImageAddress 0x8040d000

ImageSize 0x8000

Version v1.5 build(6000)


Total: 1 library loaded

Thanks,

Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 14:01
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

Are you sure? Can you send the output of !wdfldr to verify?

Thx

d

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 10:33 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

We are using version 1.5 and there are different number of endpoints
between the alternate settings.

Thanks,

Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 12:40
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

What version of KMDF is this? Do the alternate settings you are using
have a different number of endpoints? If so, this is a bug in v1.1 that
was fixed in v1.5.

d

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 9:26 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] WdfUsbInterfaceSelectSetting

Hi :slight_smile:

I am porting some USB audio drivers from WDM to KMDF. But,
sometimes, when I call “WdfUsbInterfaceSelectSetting” there is the
following error:

PAGE_FAULT_IN_NONPAGED_AREA (50)

Invalid system memory was referenced. This cannot be protected by
try-except,

it must be protected by a Probe. Typically the address is just plain
bad or it

is pointing at freed memory.

Arguments:

Arg1: 85596000, memory referenced.

Arg2: 00000000, value 0 = read operation, 1 = write operation.

Arg3: 806b74b0, If non-zero, the instruction address which referenced
the bad memory address.

Arg4: 00000001, (reserved)

STACK_TEXT:

93932d8c 81cd873f 00000003 9393969c 00000000
nt!RtlpBreakWithStatusInstruction

93932ddc 81cd91ac 00000003 00561b02 851fd6e0
nt!KiBugCheckDebugBreak+0x1c

93933188 81ca9ef2 00000050 85596000 00000000 nt!KeBugCheck2+0x5f4

93933204 81c8fa74 00000000 85596000 00000000 nt!MmAccessFault+0x106

93933204 806b74b0 00000000 85596000 00000000 nt!KiTrap0E+0xdc

9393329c 806b68d3 85595ff0 00000005 8503e848
Wdf01000!FxUsbPipe::InitPipe+0x19

939332bc 806b6ffd 855955a4 00000000 8503e848
Wdf01000!FxUsbInterface::SetInfo+0x38

93933390 806b7105 00000000 85595590 00000000
Wdf01000!FxUsbInterface::SelectSetting+0x1f2

939333ac 806b2574 00000000 00000000 851df540
Wdf01000!FxUsbInterface::SelectSettingByIndex+0x7e

939333d0 9c643dcd 00116a68 7afc17b0 00000000
Wdf01000!imp_WdfUsbInterfaceSelectSetting+0x4c4

The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig”
everytime to get the ConfiguredUsbInterface handle before calling
“WdfUsbInterfaceSelectSetting”.

If we call “WdfUsbTargetDeviceSelectConfig” and save the
ConfiguredUsbInterface handle, we have verified and the handle number
doesn’t get corrupted.

This problem seems to happen only with our 32 bit vista drivers. Our 64
bits version doesn’t have this problem.

Does anyone know a possible cause of this problem?

Thanks,

Alexis


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


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

one more question, do any of the settings on the interface have zero endpoints?

Thx
d

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Alexis Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 11:54 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

Here is the !wdfldr
?
1: kd> !wdfldr
?LoadedModuleList??? 0x8042518c

LIBRARY_MODULE? 85842a00
? Version??? v1.5 build(6000)
? Service??? \Registry\Machine\System\CurrentControlSet\Services\Wdf01000
? ImageName??? Wdf01000.sys
? ImageAddress? 0x806a4000
? ImageSize??? 0x7b000
? Associated Clients: 7
??? CLIENT_MODULE??? 872d48d0
??? Globals??? 8545e2f0? WDF_DRIVER_GLOBALS
??? Context??? 8545e238? FX_DRIVER_GLOBALS
??? ImageName??? HDJAsioK.sys
??? ImageAddress? 0x9d73b000
??? ImageSize??? 0x2d000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 8717c758
??? Globals??? 8717c620? WDF_DRIVER_GLOBALS
??? Context??? 8717c568? FX_DRIVER_GLOBALS
??? ImageName??? peauth.sys
??? ImageAddress? 0x96f22000
??? ImageSize??? 0xde000
??? Version??? v1.5 build(5840)
??? CLIENT_MODULE? ??86ec6540
??? Globals??? 86eb6288? WDF_DRIVER_GLOBALS
??? Context??? 86eb61d0? FX_DRIVER_GLOBALS
??? ImageName??? monitor.sys
??? ImageAddress? 0x8872e000
??? ImageSize??? 0xf000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 8644ed50
??? Globals??? 864f9218? WDF_DRIVER_GLOBALS
??? Context??? 864f9160? FX_DRIVER_GLOBALS
??? ImageName??? umbus.sys
??? ImageAddress? 0x8b0f2000
??? ImageSize??? 0xd000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 8648c448
??? Globals??? 86421c40? WDF_DRIVER_GLOBALS
??? Context??? 86421b88? FX_DRIVER_GLOBALS
??? ImageName??? HDAudBus.sys
??? ImageAddress? 0x8aeee000
??? ImageSize??? 0x12000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 86416288
??? Globals??? 86418e80? WDF_DRIVER_GLOBALS
??? Context??? 86418dc8? FX_DRIVER_GLOBALS
??? ImageName??? intelppm.sys
??? ImageAddress? 0x8a004000
??? ImageSize??? 0xe000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 858a3f98
??? Globals??? 858a3b90? WDF_DRIVER_GLOBALS
??? Context??? 858a3ad8? FX_DRIVER_GLOBALS
??? ImageName??? msisadrv.sys
??? ImageAddress? 0x8040d000
??? ???ImageSize??? 0x8000
??? Version??? v1.5 build(6000)

Total: 1 library loaded
?
?
Thanks,
Alexis
?
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 14:01
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting
?
Are you sure?? Can you send the output of !wdfldr to verify?
?
Thx
d
?
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Alexis Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 10:33 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting
?
We are using version 1.5 and there are different number of endpoints between the alternate settings.
?
Thanks,
Alexis
?
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 12:40
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting
?
What version of KMDF is this?? Do the alternate settings you are using have a different number of endpoints?? If so, this is a bug in v1.1 that was fixed in v1.5.
?
d
?
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Alexis Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 9:26 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] WdfUsbInterfaceSelectSetting
?
Hi?:slight_smile:
?
??? I am porting some USB audio drivers from WDM to KMDF. But, sometimes, when I call “WdfUsbInterfaceSelectSetting” there is the following error:
?
PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.? This cannot be protected by try-except,
it must be protected by a Probe.? Typically the address is just plain bad or it
is pointing at freed memory.
Arguments:
Arg1: 85596000, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: 806b74b0, If non-zero, the instruction address which referenced the bad memory address.
Arg4: 00000001, (reserved)
?
STACK_TEXT:?
93932d8c 81cd873f 00000003 9393969c 00000000 nt!RtlpBreakWithStatusInstruction
93932ddc 81cd91ac 00000003 00561b02 851fd6e0 nt!KiBugCheckDebugBreak+0x1c
93933188 81ca9ef2 00000050 85596000 00000000 nt!KeBugCheck2+0x5f4
93933204 81c8fa74 00000000 85596000 00000000 nt!MmAccessFault+0x106
93933204 806b74b0 00000000 85596000 00000000 nt!KiTrap0E+0xdc
9393329c 806b68d3 85595ff0 00000005 8503e848 Wdf01000!FxUsbPipe::InitPipe+0x19
939332bc 806b6ffd 855955a4 00000000 8503e848 Wdf01000!FxUsbInterface::SetInfo+0x38
93933390 806b7105 00000000 85595590 00000000 Wdf01000!FxUsbInterface::SelectSetting+0x1f2
939333ac 806b2574 00000000 00000000 851df540 Wdf01000!FxUsbInterface::SelectSettingByIndex+0x7e
939333d0 9c643dcd 00116a68 7afc17b0 00000000 Wdf01000!imp_WdfUsbInterfaceSelectSetting+0x4c4
?
The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig” everytime to get the ConfiguredUsbInterface handle before calling “WdfUsbInterfaceSelectSetting”.
?
If we call “WdfUsbTargetDeviceSelectConfig” and save the ConfiguredUsbInterface handle, we have verified and the handle number doesn’t get corrupted.
?
This problem seems to happen only with our 32 bit vista drivers. Our 64 bits version doesn’t have this problem.
?
Does anyone know a possible cause of this problem?
?
Thanks,
Alexis
?


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


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

Yes, our alternate settings 0 has no endpoints.

Thanks,
Alexis

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 23:03
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

one more question, do any of the settings on the interface have zero endpoints?

Thx
d

From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Alexis Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 11:54 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

Here is the !wdfldr
?
1: kd> !wdfldr
?LoadedModuleList??? 0x8042518c

LIBRARY_MODULE? 85842a00
? Version??? v1.5 build(6000)
? Service??? \Registry\Machine\System\CurrentControlSet\Services\Wdf01000
? ImageName??? Wdf01000.sys
? ImageAddress? 0x806a4000
? ImageSize??? 0x7b000
? Associated Clients: 7
??? CLIENT_MODULE??? 872d48d0
??? Globals??? 8545e2f0? WDF_DRIVER_GLOBALS
??? Context??? 8545e238? FX_DRIVER_GLOBALS
??? ImageName??? HDJAsioK.sys
??? ImageAddress? 0x9d73b000
??? ImageSize??? 0x2d000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 8717c758
??? Globals??? 8717c620? WDF_DRIVER_GLOBALS
??? Context??? 8717c568? FX_DRIVER_GLOBALS
??? ImageName??? peauth.sys
??? ImageAddress? 0x96f22000
??? ImageSize??? 0xde000
??? Version??? v1.5 build(5840)
??? CLIENT_MODULE? ??86ec6540
??? Globals??? 86eb6288? WDF_DRIVER_GLOBALS
??? Context??? 86eb61d0? FX_DRIVER_GLOBALS
??? ImageName??? monitor.sys
??? ImageAddress? 0x8872e000
??? ImageSize??? 0xf000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 8644ed50
??? Globals??? 864f9218? WDF_DRIVER_GLOBALS
??? Context??? 864f9160? FX_DRIVER_GLOBALS
??? ImageName??? umbus.sys
??? ImageAddress? 0x8b0f2000
??? ImageSize??? 0xd000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 8648c448
??? Globals??? 86421c40? WDF_DRIVER_GLOBALS
??? Context??? 86421b88? FX_DRIVER_GLOBALS
??? ImageName??? HDAudBus.sys
??? ImageAddress? 0x8aeee000
??? ImageSize??? 0x12000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 86416288
??? Globals??? 86418e80? WDF_DRIVER_GLOBALS
??? Context??? 86418dc8? FX_DRIVER_GLOBALS
??? ImageName??? intelppm.sys
??? ImageAddress? 0x8a004000
??? ImageSize??? 0xe000
??? Version??? v1.5 build(6000)
??? CLIENT_MODULE??? 858a3f98
??? Globals??? 858a3b90? WDF_DRIVER_GLOBALS
??? Context??? 858a3ad8? FX_DRIVER_GLOBALS
??? ImageName??? msisadrv.sys
??? ImageAddress? 0x8040d000
??? ???ImageSize??? 0x8000
??? Version??? v1.5 build(6000)

Total: 1 library loaded
?
?
Thanks,
Alexis
?
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 14:01
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting
?
Are you sure?? Can you send the output of !wdfldr to verify?
?
Thx
d
?
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Alexis Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 10:33 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting
?
We are using version 1.5 and there are different number of endpoints between the alternate settings.
?
Thanks,
Alexis
?
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Tuesday, May 29, 2007 12:40
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting
?
What version of KMDF is this?? Do the alternate settings you are using have a different number of endpoints?? If so, this is a bug in v1.1 that was fixed in v1.5.
?
d
?
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Alexis Rousseau-Dupuis
Sent: Tuesday, May 29, 2007 9:26 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] WdfUsbInterfaceSelectSetting
?
Hi?:slight_smile:
?
??? I am porting some USB audio drivers from WDM to KMDF. But, sometimes, when I call “WdfUsbInterfaceSelectSetting” there is the following error:
?
PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.? This cannot be protected by try-except,
it must be protected by a Probe.? Typically the address is just plain bad or it
is pointing at freed memory.
Arguments:
Arg1: 85596000, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: 806b74b0, If non-zero, the instruction address which referenced the bad memory address.
Arg4: 00000001, (reserved)
?
STACK_TEXT:?
93932d8c 81cd873f 00000003 9393969c 00000000 nt!RtlpBreakWithStatusInstruction
93932ddc 81cd91ac 00000003 00561b02 851fd6e0 nt!KiBugCheckDebugBreak+0x1c
93933188 81ca9ef2 00000050 85596000 00000000 nt!KeBugCheck2+0x5f4
93933204 81c8fa74 00000000 85596000 00000000 nt!MmAccessFault+0x106
93933204 806b74b0 00000000 85596000 00000000 nt!KiTrap0E+0xdc
9393329c 806b68d3 85595ff0 00000005 8503e848 Wdf01000!FxUsbPipe::InitPipe+0x19
939332bc 806b6ffd 855955a4 00000000 8503e848 Wdf01000!FxUsbInterface::SetInfo+0x38
93933390 806b7105 00000000 85595590 00000000 Wdf01000!FxUsbInterface::SelectSetting+0x1f2
939333ac 806b2574 00000000 00000000 851df540 Wdf01000!FxUsbInterface::SelectSettingByIndex+0x7e
939333d0 9c643dcd 00116a68 7afc17b0 00000000 Wdf01000!imp_WdfUsbInterfaceSelectSetting+0x4c4
?
The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig” everytime to get the ConfiguredUsbInterface handle before calling “WdfUsbInterfaceSelectSetting”.
?
If we call “WdfUsbTargetDeviceSelectConfig” and save the ConfiguredUsbInterface handle, we have verified and the handle number doesn’t get corrupted.
?
This problem seems to happen only with our 32 bit vista drivers. Our 64 bits version doesn’t have this problem.
?
Does anyone know a possible cause of this problem?
?
Thanks,
Alexis
?


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


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

Alexis Rousseau-Dupuis wrote:

Yes, our alternate settings 0 has no endpoints.

…as recommended by the USB specification, I might add.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

This (not handling the zero EP case) will be fixed in the next version
of KMDF (1.7).

Thx
d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Wednesday, May 30, 2007 10:54 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] WdfUsbInterfaceSelectSetting

Alexis Rousseau-Dupuis wrote:

Yes, our alternate settings 0 has no endpoints.

…as recommended by the USB specification, I might add.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.


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

Thanks a lot for your help.

Thanks,
Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, May 30, 2007 14:08
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

This (not handling the zero EP case) will be fixed in the next version
of KMDF (1.7).

Thx
d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Wednesday, May 30, 2007 10:54 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] WdfUsbInterfaceSelectSetting

Alexis Rousseau-Dupuis wrote:

Yes, our alternate settings 0 has no endpoints.

…as recommended by the USB specification, I might add.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.


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

Hi again :slight_smile:

I would like to know if using our “workaround” is acceptable for now or
if we should return to WDM for selecting the alternate settings until
KMDF 1.7.

The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig”
everytime to get the ConfiguredUsbInterface handle before calling
“WdfUsbInterfaceSelectSetting”.

Thanks,
Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Wednesday, May 30, 2007 15:05
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

Thanks a lot for your help.

Thanks,
Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, May 30, 2007 14:08
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

This (not handling the zero EP case) will be fixed in the next version
of KMDF (1.7).

Thx
d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Wednesday, May 30, 2007 10:54 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] WdfUsbInterfaceSelectSetting

Alexis Rousseau-Dupuis wrote:

Yes, our alternate settings 0 has no endpoints.

…as recommended by the USB specification, I might add.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.


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

If I understand correctly, to get back to the zero endpoint setting you
are calling SelectConfig instead of SelectSetting(0). If so, this is a
valid workaround since only the SelectSetting code has the zero EP bug.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Wednesday, May 30, 2007 12:34 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

Hi again :slight_smile:

I would like to know if using our “workaround” is acceptable for now or
if we should return to WDM for selecting the alternate settings until
KMDF 1.7.

The workaround that we found is to call “WdfUsbTargetDeviceSelectConfig”
everytime to get the ConfiguredUsbInterface handle before calling
“WdfUsbInterfaceSelectSetting”.

Thanks,
Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexis
Rousseau-Dupuis
Sent: Wednesday, May 30, 2007 15:05
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

Thanks a lot for your help.

Thanks,
Alexis

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, May 30, 2007 14:08
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] WdfUsbInterfaceSelectSetting

This (not handling the zero EP case) will be fixed in the next version
of KMDF (1.7).

Thx
d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Wednesday, May 30, 2007 10:54 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] WdfUsbInterfaceSelectSetting

Alexis Rousseau-Dupuis wrote:

Yes, our alternate settings 0 has no endpoints.

…as recommended by the USB specification, I might add.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.


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


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