如何解决IoGetDeviceInterfaces成功返回一个空名称列表
DEFINE_GUID(GUID_MEDIA_DEVINTERFACE,0x4d36e96c,0xe325,0x11ce,0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18);
//---
PAGED_CODE();
WDF_IO_TARGET_OPEN_PARAMS openParams;
UNICODE_STRING uniName_read;
NTSTATUS ntStatus = STATUS_INVALID_PARAMETER;
PFILE_OBJECT* pRealAudioFileObject = NULL;
PDEVICE_OBJECT* pRealAudioDeviceObject = NULL;
PZZWSTR symbolicLinkList = NULL;
UNICODE_STRING uniAudioDeviceName;
RtlInitUnicodeString(&uniName_read,L"\\Device\\00000020");
ntStatus = IoGetDeviceObjectPointer( // this one fails should it matter (0xc0000034 - STATUS_OBJECT_NAME_NOT_FOUND)
&uniName_read,FILE_READ_DATA,pRealAudioFileObject,pRealAudioDeviceObject);
ntStatus = IoGetDeviceInterfaces(
&GUID_MEDIA_DEVINTERFACE,NT_SUCCESS(ntStatus) ? *pRealAudioDeviceObject : NULL,DEVICE_INTERFACE_INCLUDE_NONACTIVE,&symbolicLinkList
);
if (!NT_SUCCESS(ntStatus))
goto error;
symbolicLinkList
变空了...为什么?
我在Virtualbox Win10 VM上,\ Device \ 00000020是音频驱动程序的“物理设备对象名称”属性。另外,我已经三遍检查了GUID_MEDIA_DEVINTERFACE
确实是Media接口类GUID。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。