IDvdInfo2::GetDiscID - 64 Bit Vista

Discussion in 'AnyDVD HD (Blu-ray issues)' started by freedom, Apr 16, 2008.

  1. freedom

    freedom Active Member

    I'm trying to get the DiscID with SlySoft running on a machine running Windows Vista 64-Bit SP#1.

    The code I'm running is C# 32-Bit Based and using an wrapper/library from http://directshownet.sourceforge.net to access the DirectShow functions.

    The code works great and returns the proper DiscID if AnyDVD is disabled, but if I enable it, the results are incorrect.

    I searched and found that the IDvdInfo2::GetDiscID had been hooked which is what the library uses. Is is possible that it is only hooked for 32-Bit OSes?

    Thanks,
    Freedom

    P.S. Running the latest AnyDVD (ver 6.4.1.2 - HD)
     
  2. MattJackson86

    MattJackson86 Member

    Im on a 32bit OS with the exact same issue. Latest AnyDVD software, Any way to work around this?
     
  3. James

    James Redfox Development Team Staff Member

    Work around ... what?
     
  4. MattJackson86

    MattJackson86 Member

    Work around the fact that AnyDVD seems to be breaking other applications ability to get valid information from a Microsoft DLL. I am using C# on 32bit Windows XP. The code returns the incorrect id when AnyDVD is running. Quit AnyDVD and the correct discId is returned. Any help would be appreciated.
     
    Last edited: Dec 28, 2008
  5. slamscaper945

    slamscaper945 Active Member

    I don't get it. Why not just disable Anydvd to get the DiscID if that's what's working for you? It's simple to disable/enable..... Doesn't sound like much of a problem to me.
     
  6. MattJackson86

    MattJackson86 Member

    A) I shouldnt have too
    B) I would do this if I could find some easy way of doing this via code. Im trying to develop an application that reads the info from a dvd. I cant expect the user to have to disable AnyDVD, use my app, then enable it.
     
  7. slamscaper945

    slamscaper945 Active Member

    I guess I can see your point then..... I'm not a programmer, so I can't be of much help. That said, I'd probably look into trying to find some code that would temporarily disable or bypass "class lower filters" in the WDM. If this could be accomplished then maybe Anydvd would not intercept and filter any output from cdrom.sys that ultimately would be the input to user level applications like the one you're writing. Just a wild guess on my part though as I'm not sure if this can be achieved.
     
  8. Webslinger

    Webslinger Retired Moderator

  9. slamscaper945

    slamscaper945 Active Member

    Yeah Webslinger, maybe then he could just use a batch file with his app to automate the whole process........
     
  10. MattJackson86

    MattJackson86 Member

    Looks like this would work. Thank you for the link. Im just going to test it now.
     
  11. James

    James Redfox Development Team Staff Member

  12. James

    James Redfox Development Team Staff Member

    DiscID should be correct. What disc is this? BD? HD DVD? DVD?
     
  13. MattJackson86

    MattJackson86 Member

    Yes it works, but is not really how it should be done.

    DVD's. Let me check actually if it is just the one DVD i have been using for testing or if its all.
     
  14. MattJackson86

    MattJackson86 Member

    Nope. Seems to be for all DVDs.

    The Dark Knight -
    With AnyDVD: D84C6794805EA0B9​
    Without AnyDVD:1274672E9876B1F3​
     
  15. craigo

    craigo Member

    Even using this tool I frequently hit DVDs that don't properly ID in my application, however, if I take the DVD to a system not running AnyDVD it IDs correctly. I've tried adding up to a 30 second delay after disabling AnyDVD but it doesn't seem to help. Is there a way to get status from AnyDVD programmatically while it is running?
     
  16. James

    James Redfox Development Team Staff Member

    Ah, now I understand!

    AnyDVD will provide the correct ID for your process, but for compatibility reasons you must add the name of the process to the list of supported applications:

    HKLM\SlySoft\AnyDVD\ADvdDiscHlpProcesses

    Add a DWORD value set to 1 with the name of your process.
    See the existing list as an example.

    Under 64bit OS there is a separate list for 64 bit applications as well.
     
  17. James

    James Redfox Development Team Staff Member

    No! Disabling / enabling AnyDVD is a very "expensive" operation which should be avoided at all costs: discs are unmounted / mounted, filesystems flushed (which won't work if a disc has open handles), drivers disabled / enabled, ...

    AnyDVD is *designed* to run. Not to be stopped. ;)

    See my previous post for the correct solution.
     
  18. MattJackson86

    MattJackson86 Member

    Yes thank you very much for the real solution. I will add some code to check for my an entry with my process name, if it doesn't exist i will add one. Let me test this out. Thanks again.
     
  19. mcantu

    mcantu Active Member

    the main reason i personally disable AnyDVD is that PDVD will autostart after i reboot with a movie in the drive...


     
  20. James

    James Redfox Development Team Staff Member

    If this is a program available to the public (shareware / freeware / commercial) send me a PM and I'll add it to the AnyDVD installer.

    Sorry, I had forgotten that you need to add the process names to the list. In the beginning it was only a "blacklist" (some entries with value 0 are leftovers), but there were too many compatibility problems.