일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클라우드 소비자
- VMware
- 자원 풀링
- DHCP 설정
- 고정 IP주소를 가진 네트워크 어댑터를 검색할 수 없습니다.
- 수직적 확장
- 가상 프라이빗 클라우드
- 제한된 이식성
- 멀티테넌시
- 클라우드 자원 관리자
- 온디맨드식
- VMWare View Connection Serve
- 온 프레미스
- VMWare vSphere
- Error 1720
- 수평적 확장
- 도메인 사용자 또는 그룹을 확인할 수 없습니다.
- 클라우드 보안 취약성
- Community Cloud
- 정수형 데이터타입
- 클라우드 제공자
- 이 컴퓨터는 도메인의 구성원이 아닙니다.
- View Connection
- IT 자원
- DHCP 설치
- 운영관리제어의 축소
- 클라우드 서비스 소유자
- Virtual Private Cloud
- 커뮤니티 클라우드
- dhcp
- Today
- Total
한 걸음씩..
[Device Driver] AddDevice routine 본문
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 = IoCreateDevice(
pDriverObject,
sizeof(DEVICE_EXTENSION),
NULL,
FILE_DEVICE_UNKNOWN,
0,
FALSE,
&pDeviceObject // 생성된 Device Object 리턴
);
if(!NT_SUCCESS(status))
return STATUS_UNSUCCESSFUL;
pDeviceExtension = (PDEVICE_EXTENSION)pDeviceObject->DeviceExtension;
RtlZeroMemory( pDeviceExtension, sizeof(DEVICE_EXTENSION));
//디바이스 스택 위로 또다른 Device Object가 참여하는 것을 허용
pDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
pDeviceExtension->pLowerDeviceObject = IoAttachDeviceToDeviceStack(
pDeviceObject;
pPhysicalDeviceObject);
return status;
}
Device Driver는 하나의 장치마다 각각 하나의 문맥(Context)를 가질 수 있다
따라서 AddDevice는 DriverEntry와 다르게 장치가 연결될 때 마다 호출되어 Device Context 를 생성한다
IoCreateDevice 함수의 두번째 인자로 sizeof(DEVICE_EXTENSION) 값을 사용하여 생성되는 Device Object내에
DeviceExtension 구조체 크기만큼의 보조 메모리를 생성하도록 요청한다
DeviceExtension 구조체에는 문맥에 따라서 각각의 장치가 유지해야할 전역적인 변수들을 보관할 수 있다
출처 : 디바이스 드라이버 구조와 원리 그리고 제작 노하우
'프로그래밍' 카테고리의 다른 글
[Device Driver] Driver Object 자료구조 (0) | 2013.09.04 |
---|---|
[Device Driver] IRP Dispatch Routine (0) | 2013.09.03 |
[Device Driver] DriverEntry Routine (0) | 2013.09.01 |
[Windows]윈도우 부팅이 안될 때 (0) | 2013.08.28 |
WideChar , Multibyte 변환 시 주의 할점 (1) | 2013.08.08 |