IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME IOCTL(mountdev.h)

탑재 관리자 클라이언트에서 이 IOCTL에 대한 지원은 선택 사항입니다. 일부 탑재 관리자 클라이언트는 탑재 관리자의 도움 없이 시스템을 다시 부팅할 때 드라이브 문자를 추적할 수 있습니다. 이러한 클라이언트는 이 IOCTL에 대한 응답으로 탑재 관리자에게 제안된 드라이브 문자 이름을 보낼 수 있습니다. 탑재 관리자의 데이터베이스에 클라이언트 볼륨에 대한 영구 드라이브 문자 이름이 아직 포함되어 있지 않은 경우 탑재 관리자에서 제안된 이름을 사용합니다. 그렇지 않으면 제안을 무시하고 영구 이름 데이터베이스에서 드라이브 문자 이름을 사용합니다.

드라이브 문자 이름은 개체 네임스페이스에 기호 링크의 전체 경로를 포함해야 하며 기존 MS-DOS 구문이 있어야 합니다. 예를 들어 드라이브 문자 "D"는 다음과 같은 방식으로 표현되어야 합니다. "\DosDevices\D:". "??\D:"의 대체 기호 링크 경로는 사용할 수 없으며 "D:"와 같은 기호 링크의 약어도 사용할 수 없습니다.

주 코드

IRP_MJ_DEVICE_CONTROL

출력 버퍼

클라이언트 드라이버는 irp-AssociatedIrp.SystemBuffer> 에서 버퍼의 시작 부분에 마운데프.h 에 정의된 MOUNTDEV_SUGGESTED_LINK_NAME 형식의 가변 길이 구조를 배치해야 합니다. 구조체 멤버 이름의 주소부터 클라이언트 드라이버는 제안된 영구 이름을 삽입해야 합니다.

출력 버퍼 길이

IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.OutputBufferLength 는 출력 버퍼의 크기(바이트)를 나타내며 sizeof(MOUNTDEV_SUGGESTED_LINK_NAME)보다 크거나 같아야 합니다.

상태 블록

작업이 성공하면 정보 필드는 반환된 총 바이트 수로 설정되고 상태 필드는 STATUS_SUCCESS 설정됩니다.

OutputBufferLengthsizeof(MOUNTDEV_SUGGESTED_LINK_NAME)보다 작으면 상태 필드가 STATUS_INVALID_PARAMETER 설정됩니다.

OutputBufferLength 가 출력 데이터의 총 길이보다 작으면 상태 필드는 STATUS_BUFFER_OVERFLOW 설정되고 정보 필드는 sizeof(MOUNTDEV_SUGGESTED_LINK_NAME)로 설정됩니다.

설명

이 함수의 구현자는 스레드 동기화를 수행해서는 안 되며 차단 및/또는 IPC(Interprocess Communication) 함수 호출을 수행해서는 안 됩니다.

요구 사항

   
헤더 mountdev.h(Mountdev.h 포함)

참고 항목

MOUNTDEV_SUGGESTED_LINK_NAME