Page 2 of 4

Re: v7 drivers (64bit)

Posted: Tue Jan 23, 2018 5:12 pm
by garyb
i'm not sure what the init is for.

i'm sure you are more knowledgeable about code than i am. i'm just suggesting the obvious. i won't say that i'm correct.

Re: v7 drivers (64bit)

Posted: Wed Jan 24, 2018 4:01 am
by DragonSF
Good news: I found an ASIO library, which actually works under Win10 and with Xite. I'll investigate, how I can use this one instead of port-audio or fix the port-audio error.

Re: v7 drivers (64bit)

Posted: Wed Jan 24, 2018 4:04 am
by DragonSF
garyb wrote: Tue Jan 23, 2018 5:12 pm i'm not sure what the init is for.

i'm sure you are more knowledgeable about code than i am. i'm just suggesting the obvious. i won't say that i'm correct.
The library I found uses also 'init(. So its working here and not there. So I guess there's the problem.
I wish, I could lay my hands on the xiteasio driver source code ...

Re: v7 drivers (64bit)

Posted: Wed Jan 24, 2018 12:08 pm
by garyb
this is the wrong place to look for that. :wink:

Re: v7 drivers (64bit)

Posted: Wed Jan 24, 2018 4:01 pm
by DragonSF
I know! I looked at right place (I hope), but haven'T found it (yet).

Re: v7 drivers (64bit)

Posted: Thu Jan 25, 2018 3:43 am
by DragonSF
OK, looks like it's 2:0 against portaudio. I now got 2 programs running without PA and can successfully access Xite ASIO. Still not, what' the real problem is.

Re: v7 drivers (64bit)

Posted: Thu Jan 25, 2018 11:24 pm
by DragonSF
Got it: Accidentally I used 32-B it versions of ASIO sample and Naudio exe and both worked. When I compiled both to x64, they both have the same crash as SuperCollider. As last proof I started SC in 32-Bit mode: no crash! So , what's wrong with the AsioScopeXite64.dll?

Re: v7 drivers (64bit)

Posted: Fri Jan 26, 2018 12:12 am
by garyb
nothing on so many other apps. the 32bit dll worked? you mean that Scope actually ran? i think there's something else in play.

this problem with port audio goes back to the beginning of port audio.

Re: v7 drivers (64bit)

Posted: Fri Jan 26, 2018 2:22 am
by DragonSF
yes, 32 bit dll works fine with 64bit scope. And portaudio does nothing else then Steinberg's ASIO SDK itself (traced every step). And ASIO SDK has the same error, so I assume, any 64-bit app which works with Scope 64-bit ASIO does something different.

Re: v7 drivers (64bit)

Posted: Fri Jan 26, 2018 6:30 am
by next to nothing
Maybe it will be useful to look at VCV rack as well? As far as i know it uses portaudio, I never got it working on 64bit Scope ASIO on win 10, but others claim they have it running on Win 7 64bit. See viewtopic.php?f=5&t=35180&p=331119&hilit=vcv#p331119 .
At least on the latest version i can run it on WASAPI drivers, but ASIO is still a no go.

Oh and sorry, I am on v5.1, but i guess the drivers are pretty similar regarding these issues.

Re: v7 drivers (64bit)

Posted: Fri Jan 26, 2018 8:45 am
by jksuperstar
Any remnants of old 32bit drivers that are getting picked up?

Re: v7 drivers (64bit)

Posted: Fri Jan 26, 2018 4:04 pm
by DragonSF
next to nothing wrote: Fri Jan 26, 2018 6:30 am Maybe it will be useful to look at VCV rack as well? As far as i know it uses portaudio, I never got it working on 64bit Scope ASIO on win 10, but others claim they have it running on Win 7 64bit. See viewtopic.php?f=5&t=35180&p=331119&hilit=vcv#p331119 .
At least on the latest version i can run it on WASAPI drivers, but ASIO is still a no go.

Oh and sorry, I am on v5.1, but i guess the drivers are pretty similar regarding these issues.
I agree to all what you're writing. And yes, no problem on Win 7 and regardless of V5 or V7 drivers. I7d like to know, how Ableton is handling this.
Here are only 64 bit device drivers for Scope.
So any program, which relies on ASIO SDK 2.3 will have this 64-bit issue under Win10.ProAudio is just a wrapper around ASIO SDK.

Re: v7 drivers (64bit)

Posted: Fri Jan 26, 2018 11:55 pm
by DragonSF
After real deep digging inmto the x64 asio dll, I found the function, where it crashes the OS:
DeviceIoControlImplementation->DeviceIoControl:->

NtDeviceIoControlFile:
00007FF9F696FF40 4C 8B D1 mov r10,rcx
00007FF9F696FF43 B8 07 00 00 00 mov eax,7
00007FF9F696FF48 F6 04 25 08 03 FE 7F 01 test byte ptr [7FFE0308h],1
00007FF9F696FF50 75 03 jne NtDeviceIoControlFile+15h (07FF9F696FF55h)
00007FF9F696FF52 0F 05 syscall <= BSOD creation
00007FF9F696FF54 C3 ret
00007FF9F696FF55 CD 2E int 2Eh
00007FF9F696FF57 C3 ret

syscalls are different for Win7 and 10:

NtDeviceIoControlFile :

Win 7 0x0004
Win 10 0x0007

As 32-Bit program, the sequence is:
init->DLLGetClassObject->
_DeviceIoControlImplementation@32:->
_DeviceIoControl@32 ->__SEH_prolog4
->_NtDeviceIoControlFile@40:
77A3E7D0 B8 07 00 1B 00 mov eax,1B0007h
77A3E7D5 BA 20 9D A5 77 mov edx,offset _Wow64SystemServiceCall@0 (77A59D20h)
77A3E7DA FF D2 call edx
77A3E7DC C2 28 00 ret 28h
77A3E7DF 90 nop


_Wow64SystemServiceCall@0:
77A59D20 FF 25 18 92 AE 77 jmp dword ptr [_Wow64Transition (77AE9218h)]
->__SEH_epilog4:

@Someone with competency: please comment!

Re: v7 drivers (64bit)

Posted: Sat Jan 27, 2018 4:11 am
by valis
This may be why setting the application (not Scope) to Win8.1 (or Win7) compatibility mode is of some help to hosts who otherwise crash... it might give NtDeviceIoControlFile the 0x0004 response... (or at least not 0x0007?) That's assuming of course that this is the difference that does indeed cause hosts to not work with Scope 64bit drivers...

Re: v7 drivers (64bit)

Posted: Sat Jan 27, 2018 4:47 am
by DragonSF
I'll do the same test tomorrow within a Win 7 environment. Let see what happens.

Re: v7 drivers (64bit)

Posted: Sat Jan 27, 2018 10:14 am
by garyb
again, my ignorance will show, but this looks like what i would expect. if the app attempts to set up the hardware, it will crash, because the Scope hardware is not supposed to work that way. it is lousy programming to assume that all sound interfaces will be windows soundcards.

Re: v7 drivers (64bit)

Posted: Sat Jan 27, 2018 3:47 pm
by DragonSF
Regarding to Steinberg's ASIO doc, the first call to the COM object is to call init. And the function, which will call DeviceIoControl (and die on X64), is also called from many different places (like getChannelInfo, createBuffers, GetDelayedFreq, setSampleRate etc).

Re: v7 drivers (64bit)

Posted: Sat Jan 27, 2018 3:51 pm
by garyb
..so, then the fact that STEINBERG apps work with Scope ASIO means nothing, since Port Audio obviously has it right...

Re: v7 drivers (64bit)

Posted: Sat Jan 27, 2018 11:25 pm
by DragonSF
garyb wrote: Sat Jan 27, 2018 3:51 pm ..so, then the fact that STEINBERG apps work with Scope ASIO means nothing, since Port Audio obviously has it right...
Forget about PortAudio, I'm talking about Steinberg's ASIO SDK (which I'm using in my tests).

Re: v7 drivers (64bit)

Posted: Sat Jan 27, 2018 11:53 pm
by garyb
got you.
now i understand what is happening.
i was obviously confused.

carry on...