Language & API/WINDOWS DRIVER

[함수]IoRegisterDeviceInterface

강한퓨전 2016. 7. 25. 17:58
1
2
3
4
5
6
7
8
9
10
NTSTATUS
NTAPI
IoRegisterDeviceInterface(
    _In_ PDEVICE_OBJECT PhysicalDeviceObject,
    _In_ CONST GUID *InterfaceClassGuid,
    _In_opt_ PUNICODE_STRING ReferenceString,
    _Out_ _When_(return==0, 
                     _At_(SymbolicLinkName->Buffer, __drv_allocatesMem(Mem)))
    PUNICODE_STRING SymbolicLinkName
    );
cs


[파라미터]
PhysicalDeviceObject -> PDO 포인터 

InterfaceClassGuid -> GUID 클래스 포인터, 

ReferenceString -> 경로를 포함 시키면 안된다. Function driver는 전통적으로 NULL 값이다. 필터 드라이브도 NULL값이다. 

SymbolicLinkName -> 유니 코드 문자열 구조에 대한 포인터


[설명]

Application 이 접근하는 interface를 등록. 초기화시에 호출되지는 않고, IRP_MN_START_DEVICE 때에 호출한다. 예를 들어 COMPORT의 경우 GUID_CLASS_COMPORT를 쓴다. 이 GUID값은 interface를 등록하기 전에 CoInstaller 에서 먼저 만들어져야 한다.