전체 글

    IoCreateDevice와 IoCreateDeviceSecure

    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_..

    The funny page table terminology on AMD64

    http://www.pagetable.com/?p=14

    vmxon 사용시 주의점

    하이퍼바이저는 vmxon 명령어를 맨 처음으로 실행 해 vmx 를 활성화 해야한다. vmxon 명령어가 실행되면 프로세서가 VMX_ROOT 모드로 진입하게 되는데 이 때 하이퍼바이저가 먼저 확인해야 하는 조건이 있다. - CR4 레지스터의 13번째 bit인 VMXE(0x2000)를 Enable 해야한다. VMXE가 Enable 되지 않은 상태인데 실행하게 되면 #UD(undefined opcode) 예외가 발생된다.- CR0의 NE, PG, PE 모두 VMX_ROOT 모드로 실행되는 동안에 Enable상태로 설정되어 있어야 한다. 만약에 이 비트들이 Clear 되는경우 #GP 예외가 발생된다.- A20M#은 vmxon 을 실행하기 전에 앞서 off 가 되어야 한다. 하이퍼바이저는 vmxon 이 실행되기전..