연구소
Language & API/WIN API
2017. 4. 10.
SetCommMask 함수
Specifies a set of events to be monitored for a communications device. 통신 장치에 대해 모니터 될 이벤트 세트를 지정합니다. Syntax C++ 1234BOOL WINAPI SetCommMask( _In_ HANDLE hFile, // CreateFile HANDLE _In_ DWORD dwEvtMask // EV_BREAK, EV_CTS, EV_DSR, EV_ERR, EV_RING, EV_RLSD, EV_RXCHAR, EV_RXFLAG, EV_TXEMPTY);Colored by Color Scriptercs hFile [in] A handle to the communications device. The CreateFile function retu..
BLOG/Tistory
2017. 4. 10.
광고테스트
광고테스트 광고테스트
BLOG/Tistory
2017. 3. 31.
C 소스 코드 블러그에 붙이기
요즘 간단한 소스 코드를 보여줄때 사용하는 방법입니다. 아래와 같이 간략 하게 설명합니다. PC프로그램으로 존재하며 언어는 C 스타일패키지는 서브라임블랙 배경:단일색상을 선택 후 복사하기를 눌러 필요한 곳에 Ctrl + V 를 하면됩니다. 아래와 같이 적용됩니다. 12345678910#pragma once #ifdef __cplusplusextern "C" {#endif /* __cplusplus */ __declspec(dllexport) void Sample_MultiToUni(); #ifdef __cplusplus}#endifColored by Color Scriptercs간단하면서도 사용하기 아주 좋습니다. ㅎㅎ 다운 받는 곳은 https://colorscripter.com/ 입니다.
How to development
2017. 3. 31.
WINDOWS10에서 WINSDK7 설치하기
OS = WINDOWS 10 VS = VISUAL STUDIO 2013 이전 프로젝트를 가지고 빌드 중 아래와 같은 에러가 발생하여 해결 도중 찾은 방법을 적어 놓습니다. Error2error LNK1104: cannot open file 'libcmtd.lib' 아무리 찾아도 이 LIB가 존해하지 않아 인터넷으러 찾은 결과 WINSDK7을 설치하면 해결될 문제 인것 같았습니다. https://www.microsoft.com/en-us/download/details.aspx?id=8442 일단 위 경로에 가면 ISO 파일을 받아 설치를 하는데 계속 Fail이 나서 설치 방법을 찾던 중 아래와 같은 방법으로 해결을 하였습니다. 위에 보이는 프로그램 C++ 2010 x86, x64를 삭제하면 됩니다. 그리고..
Language & API/WINDOWS DRIVER
2016. 7. 25.
[함수]IoGetCurrentIrpStackLocation
123456FORCEINLINE__drv_aliasesMemPIO_STACK_LOCATIONIoGetCurrentIrpStackLocation( _In_ PIRP Irp)cs [파라미터]Irp -> 디바이스 스택 정보를 가지고 있는 IRP의 포인터다. [반환값]IRP의 IO_STACK_LOCATION 중 가장 최근(최상단, TOP)에 위치해 있는 구조체를 반환한다. [함수설명]현재의 드라이브가 가지는 다바이스 스택의 가장 최근 위치를 구해주는 함수이다. [호출할때 요구되는 IRQL]IRQL == ANY IRQL 아래 예제이다. 1234567891011121314NTSTATUSSAMPLE1_PnpDispatch(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp){ PIO_STAC..
Language & API/WINDOWS DRIVER
2016. 7. 25.
[함수]IoCreateSymbolicLink
12345NTSTATUSIoCreateSymbolicLink( _In_ PUNICODE_STRING SymbolicLinkName, _In_ PUNICODE_STRING DeviceName );Colored by Color Scriptercs [파라미터] SymbolicLinkName -> 유저 네임 유니코드 스트링 버퍼, 드라이버가 유저 모드 응용프로그램, System Componet에 제공하는 인터페이스이다. DeviceName -> 드라이버 오브젝트에서 만든 유니코드 스트링 버퍼, PDEVICE_OBJECT가 만들어질 때 사용된 이름이다. [반환값] PDEIVCE_OBJECT 의 DeviceName 과 SymbolicLinkName을 연결시키는 데 성공했다면 STATUS_SUCCESS 를 반환한다...
Language & API/WINDOWS DRIVER
2016. 7. 25.
[함수]IoSetDeviceInterfaceState
12345NTSTATUS IoSetDeviceInterfaceState( _In_ PUNICODE_STRING SymbolicLinkName, _In_ BOOLEAN Enable); Colored by Color Scriptercs [파라미터] SymbolicLinkName -> IoRegisterDeviceInterface or IoGetDeviceInterfaces 포함된 스트링, 디바이스 인터페이스 이름을 나타낸 스티링 Enable -> TRUE -> device interface Enable FALSE -> device interface Disable [리턴값] 성공하면 STATUS_SUCCESS를 반환한다.
Language & API/WINDOWS DRIVER
2016. 7. 25.
[함수]IoRegisterDeviceInterface
12345678910NTSTATUSNTAPIIoRegisterDeviceInterface( _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 );Colored by Color Scriptercs [파라미터]PhysicalDeviceObject -> PDO 포인터 InterfaceClassGuid -> GUID 클래스 포인터, Referenc..
Language & API/WINDOWS DRIVER
2016. 7. 25.
[자료구조]DEVICE_OBJECT
1234567891011121314151617181920212223242526272829303132333435363738394041typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT { CSHORT Type; USHORT Size; LONG ReferenceCount; struct _DRIVER_OBJECT *DriverObject; struct _DEVICE_OBJECT *NextDevice; struct _DEVICE_OBJECT *AttachedDevice; struct _IRP *CurrentIrp; PIO_TIMER Timer; ULONG Flags; // See above: DO_... ULONG Character..