Hi Matt, The CreateFile( filename, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL) did not work. I added the ioctl handler, but did not add create handler and close handler. Would you please tell me why I need to add this two handler and how to implement them? Thanks a lot. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matt Gonzalez Sent: Thursday, June 10, 2004 2:02 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: How can I open my virtual audio driver and send IOCTL to it? Did you also add a create handler, close handler, and ioctl handler to your major function table in DriverEntry? Matt Mathieu Routhier wrote: >It looks like you're doing it the right way. Try calling CreateFile >with the following parameters instead: > >CreateFile( >filename >GENERIC_READ | GENERIC_WRITE, >FILE_SHARE_READ | FILE_SHARE_WRITE, >NULL, >OPEN_EXISTING, >FILE_ATTRIBUTE_NORMAL, >NULL); > >Mat > >-----Original Message----- >From: wdmaudiodev-bounce@xxxxxxxxxxxxx >[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of hollychen >(êø™Ô’=Ñаl) >Sent: Wednesday, June 09, 2004 12:35 PM >To: wdmaudiodev >Subject: [wdmaudiodev] How can I open my virtual audio driver and send >IOCTL to it? > >I'm a newbie in WDM. I wanna send IOCTL to my virtual audio driver, but >I failed to open my driver in user-mode application. > >In audio driver side, I registers an interface, > >AddDevice >( >IN PDRIVER_OBJECT DriverObject, >IN PDEVICE_OBJECT PhysicalDeviceObject >) >{ > ... > ntStatus = > PcAddAdapterDevice > ( > DriverObject, > PhysicalDeviceObject, > PCPFNSTARTDEVICE(StartDevice), > MAX_MINIPORTS, > 0 > ); > ... > ntStatus = IoRegisterDeviceInterface(PhysicalDeviceObject, >&GUID_DEVINTERFACE_BT_AUDIO, NULL, &ifname); > ... > ntStatus = IoSetDeviceInterfaceState(&ifname, TRUE); >} > > >/////////////////////////////////////////////////////////////////////// >/ >//////////////////////////////////////////////// >//////////////////////////////////////////////////////////////////////// >//////////////////////////////////////////////// > >In application side, > >HDEVINFO info = SetupDiGetClassDevs(&GUID_DEVINTERFACE_BT_AUDIO, > NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE); > ... >if (SetupDiEnumDeviceInterfaces(info, NULL, &GUID_DEVINTERFACE_BT_AUDIO, >0, &ifdata)) >{ > ... > SetupDiGetDeviceInterfaceDetail(info, &ifdata, NULL, 0, &needed, >NULL); > > PSP_INTERFACE_DEVICE_DETAIL_DATA detail = >(PSP_INTERFACE_DEVICE_DETAIL_DATA) malloc(needed); > SP_DEVINFO_DATA did = {sizeof(SP_DEVINFO_DATA)}; > detail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA); > > if (!SetupDiGetDeviceInterfaceDetail(info, &ifdata, detail, needed, >NULL, &did)) > { ... } > ... > strcpy(fileName, detail->DevicePath); > ... > } > > SetupDiDestroyDeviceInfoList(info); > > //////////////////////////////////////////////////// > > HANDLE hdevice = CreateFile(fileName, GENERIC_READ | GENERIC_WRITE, 0, >NULL, OPEN_EXISTING, 0, NULL); > >The CreateFile() always return 2 (ERROR_FILE_NOT_FOUND). > >What's the problem with my code? >Any suggestions/hints will be much appreciated! > >Holly > > >****************** > >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.de/ > > > ****************** 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.de/ ****************** 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.de/