NTSTATUS IoCreateDevice(
_In_ PDRIVER_OBJECT DriverObject,
_In_ ULONG DeviceExtensionSize,
_In_opt_ PUNICODE_STRING DeviceName,
_In_ DEVICE_TYPE DeviceType,
_In_ ULONG DeviceCharacteristics,
_In_ BOOLEAN Exclusive,
_Out_ PDEVICE_OBJECT *DeviceObject
);
NTSTATUS IoCreateDeviceSecure(
_In_ PDRIVER_OBJECT DriverObject,
_In_ ULONG DeviceExtensionSize,
_In_opt_ PUNICODE_STRING DeviceName,
_In_ DEVICE_TYPE DeviceType,
_In_ ULONG DeviceCharacteristics,
_In_ BOOLEAN Exclusive,
_In_ PCUNICODE_STRING DefaultSDDLString,
_In_opt_ LPCGUID DeviceClassGuid,
_Out_ PDEVICE_OBJECT *DeviceObject
);
함수의 원형으로 볼 때에 둘의 차이는 IoCreateDevice에서 DefaultSDDLString와 DeviceClassGuid 두 인자값이 추가가 된 것이 IoCreateDeviceSecure이다. 이 둘의 차이점과 SDDL(Security Descriptor Definition Language)에 대해서는 다음 문서에 자세하게 나와있다. :)
Device Driver Security에 대한 고찰 2.pdf- 출처 : 데브구루
'프로그래밍' 카테고리의 다른 글
IopLoadUnloadDriver (0) | 2014.12.05 |
---|---|
NtLoadDriver가 STATUS_PRIVILEGE_NOT_HELD(0xC0000061)를 리턴 (0) | 2014.12.05 |
The funny page table terminology on AMD64 (0) | 2014.06.03 |
vmxon 사용시 주의점 (0) | 2014.04.14 |
TSC(Time Stamp Counter)란? (0) | 2014.04.04 |