study/C언어

WIN API [GetVolumeInformation() 함수]

IT공부 2020. 4. 8. 15:24
반응형

BOOL GetVolumeInformationA(
 _In_opt_    LPCSTR  lpRootPathName,
 _out_opt_  LPSTR   lpVolumeNameBuffer,
 _In_          DWORD   nVolumeNameSize,
 _out-opt_  LPDWORD lpVolumeSerialNumber,
 _out-opt_ LPDWORD lpMaximumComponentLength,
 _out-opt_ LPDWORD lpFileSystemFlags,
 _out-opt_  LPSTR   lpFileSystemNameBuffer,
 _In_          DWORD   nFileSystemNameSize
);

 

GetVolumeInformation() 함수는 지정된 루트 디렉터리가 속한 파일 시스템 정의와 볼륨 정보를 가져오는 함수입니다. 

 

변수 유형 앞에 '_In_opt_'는 In는 입력 변수를 뜻하며, opt는 선택적으로 사용한다는 의미 

 

_out_opt_는 실행결과가 저장될 변수를 뜻함 

 

그렇다면 _In_ 경우네는 선택적으로 쓰는 것이 아닌 값이 무조건 입력되어야 한다는 뜻이며, 함수를 사용할 경우에 값을 넣어주지 않으면 오류가 발생합니다. 

 

 

LPCSTR

- LP는 long pointer를 나타낸다 

- C는 constant, 즉 함수 내부에서 인자 값을 변경하지 말하는 뜻입니다. 

- STR은 말 그대로 STRING자료가 될 것이라는 뜻으로 내부적으로는 char형 배열에 null 값 종료를 의미

- W는 wide char를 나타내며, 쉽게 말해 unicode 말합니다. 

 

해석) 

LPSTR = long pointer String = char*

LPCSTR = long pointer constant String = const char*

 

예)

'lpRootInformation'은 입력변수로, 선택적으로 사용할 수 있다. 

'nVolumeNameSize'로 입력 변수로 사용되지만 이것은 반드시 사용해야 하므로 GetVolumeInformation() 함수를 사용 시 지정하지 않으면 오류가 발생 

 

'lpVolumeNameBuffer'는 함수를 호출 할 때 변수 이름을 넣어주면, GetVolumeInformation() 함수가 실행되고 그 결과로 찾아낸 볼륨 이름을 지정한 변수에 담아주게 한다. 

 

'study > C언어' 카테고리의 다른 글

define 매크로와 inline 함수  (0) 2020.06.29
동적 할당 정리(malloc, realloc, calloc, free 함수)  (0) 2020.06.29
구조체 정리  (0) 2020.04.02
[c언어] 입출력 정리  (0) 2020.04.02
인수 전달 방법  (0) 2020.03.31