일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Error 1720
- VMWare vSphere
- 수직적 확장
- 운영관리제어의 축소
- 클라우드 서비스 소유자
- DHCP 설정
- 가상 프라이빗 클라우드
- 멀티테넌시
- 클라우드 보안 취약성
- 클라우드 자원 관리자
- Community Cloud
- dhcp
- VMWare View Connection Serve
- 커뮤니티 클라우드
- 고정 IP주소를 가진 네트워크 어댑터를 검색할 수 없습니다.
- 온디맨드식
- View Connection
- 자원 풀링
- 온 프레미스
- 수평적 확장
- DHCP 설치
- 도메인 사용자 또는 그룹을 확인할 수 없습니다.
- 클라우드 제공자
- 클라우드 소비자
- IT 자원
- Virtual Private Cloud
- VMware
- 이 컴퓨터는 도메인의 구성원이 아닙니다.
- 제한된 이식성
- 정수형 데이터타입
- Today
- Total
목록프로그래밍 (65)
한 걸음씩..
DECLARE_DYNCREATE IMPLEMENT_DYNCREATE 보통 어떤 클래스를 동적으로 생성 시 new연산자를 사용하여 생성하고 delete 연산자로 메모리에서 해제한다 그러나 CObject 를 상속받는 클래스들은 생성자가 protected로 선언되어 있기 때문에 위의 방법으로 생성하고 해제 할 수 없다 생성자가 protected로 선언된 이유는 자기 스스로 파괴되는 객체에 대한 명확한 사용법을 제시하기 위함이다. 자기 스스로 파괴되는 객체의 경우 정적으로 선언하여 사용하면 메모리에서 제거되는 시도를 두 번 하기 때문이다. 스스로 파괴되는 객체의 경우 반드시 동적으로 생성하여야 하고 프로그래머가 정적으로 선언하는 실수를 방지하기 위해 protected 멤버로 선언한다. 생성자를 protected..
MessageMap 매크로 함수 #define DECLARE_MESSAGE_MAP() private: static const AFX_MSGMAP_ENTRY _messageEntries[]; // 메시지 배열 변수 생성 protected: static AFX_DATA const AFX_MSGMAP messageMap; // 메시지 맵 생성 static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); virtual const AFX_MSGMAP* GetMessageMap() const; const AFX_MSGMAP* PASCAL CMainWindow::_GetBaseMessageMap() { return &CFrameWnd::messageMap; //부모 메시지 맵 주소..
핸들이란 구체적인 어떤 대상에 붙여진 번호이며 문법적으로는 32비트(또는 64비트)의 정수값이다. 핸들은 중복되지 않아야 하므로 운영체제가 발급하고 사용자는 사용하기만 할 수 있다. HANDLE hProcess HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, NULL, GetCurrentProcessId()); 프로세스 생성 시 OS 내부적으로 커널 오브젝트를 생성하며 그 프로세스에 대한 정보를 채워지게 된다. 일반적으로 커널 오브젝트에 접근은 불가능 하지만 위 사용법을 통해 커널 오브젝트의 번호(핸들)을 가져와서 접근할 수 있다 HINSTANCE hInstance int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hP..
Windows 환경에서 로그인 중인 유저 이름을 알아올 수 있다. WinAPI 사용하는 방법 C++BOOL WINAPI GetUserName( _Out_ LPTSTR lpBuffer, _Inout_ LPDWORD lpnSize ); ParameterslpBuffer [out]A pointer to the buffer to receive the user's logon name. If this buffer is not large enough to contain the entire user name, the function fails. A buffer size of (UNLEN + 1) characters will hold the maximum length user name including the termi..
Device Object Driver는 자신이 참여하는 모든 Device Stack을 위해서 DeviceObject를 생성하게 된다생성된 모든 Driver의 DeviceObject는 Driver의 DriverObject를 통해 모두 찾을 수 있다. 1. DriverObject->DeviceObject // 가장 최근에 드라이버가 생성한 DeviceObject 2. DriverObject->DeviceObject->NextDevice //1의 DeviceObject 보다 바로 전에 생성했던 DeviceObject 3. DriverObject->DeviceObject->NextDevice->NextDevice //2의 DeviceObject 보다 바로 전에 생성했던 DeviceObject Device Obj..
Driver ObjectWDM Device Driver들이 메모리 내에 상주하고 있는 근거로 사용되는 자료구조가 DriverObject 이다.WDM Device Driver들은 각각 저마다의 DriverObject를 선언하고 있으며 이 구조체에 의해서 외부에 자신의 존재를 Export하고 있다. Driver Object 자료구조 typedef struct _DRIVER_OBJECT {CSHORT type;CSHORT Size; //Driver가 최근에 생성한 Device Object 포인터PDEVICE_OBJECT DeviceObject;ULONG Flags; // Driver가 메모리에 보관된 시작 위치PVOID DriverStart ULONG DriverSize;PVOID DriverSection;P..
IRP Dispatch Routine 1. 외부로부터 명령어(IRP)를 받는 곳2. PnP Manager로부터 전달되는 IRP를 처리하는 함수 NTSTATUS SamplePnpDispatch(PDEVICE_OBJECT pDeviceObject,PIRP pIrp){PIO_STACK_LOCATION pIoStackLocation;PDEVICE_EXTENSION pDeviceExtension;NTSTATUS status;PDEVICE_OBJECT pTargetDevice;pDeviceExtension = ( PDEVICE_EXTENSION )pDeviceObject->DeviceExtension;//DeviceExtension 구조체에 저장해 놓은 DeviceStack 상의 하위 DeviceObject pTa..
AddDevice routine 이 하는 역할1. Device Context 생성한다2. 자신의 DeviceObject를 Device Stack 에 포함 시킨다 NTSTATUS SampleAddDevice(PDRIVER_OBJECT pDriverObject,PDEVICE_OBJECT pPhysicalDeviceObject){PDEVICE_EXTENSION pDeviceExtension;PDEVICE_OBJECT pDeviceObject;NTSTATUS status = STATUS_SUCCESS;//Device Context 생성//생성된 Device Object는 IRP가 전달되는 Device Driver 내에 모든 IRP 명령어 처리기로 항상 전달되는 값으로 사용된다status = IoCreateDev..
DriverEntry Routine DriverEntry Routine 은 Device Driver의 시작 위치이다. 코딩상에서 함수명을 반드시 'DeviceEntry' 라고 해야 하는 특징을 가지고 있다. 따라서 C++언어를 사용하는 경우에는 name mangling가 발생할 수 있으므로 반드시 extern "C" 명령을 사용해야 한다 extern "C" NTSTATUS DriverEntry ( PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath ) { pDriverObject->MajorFunction[IRP_MJ_PNP] = SamplePnpDispatch; pDriverObject->DriverExtension->AddDevice = Samp..
BOOTMGR is Missing... 1. Windows 설치 디스크로 부팅을 한다. 2. 설치 처음 화면이 나오면 Shift + F10 누르면 CMD 창이 나온다. 3. diskpart 4. list partition 5. 용량을 확인하여 윈도우 7이 설치된 파티션의 번호를 확인 (ex 파티션 번호 : 2) 6. select partition 2 7. active 8. list volume 9. 볼륨명 확인. 없을 경우 assign letter "X" 하여 볼륨명을 지정. X는 예시 10. bcdboot X:\Windows /s X: /l ko-KR 엔터 11. bootsect /nt60 all /mbr 엔터 12. 리부팅