IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL(mountmgr.h)
이 IOCTL은 지정된 볼륨에 드라이브 문자가 있는지 확인합니다. 드라이브 문자가 이미 있거나 볼륨에 드라이브 문자가 필요하지 않음을 나타내는 특수 탑재 관리자 데이터베이스 항목이 있는 경우 이 루틴은 현재 드라이브 문자(있는 경우)를 반환하고 아무 작업도 수행하지 않습니다. 지정된 볼륨에 드라이브 문자가 없으며 드라이브 문자가 필요하지 않음을 나타내는 특수 탑재 관리자 데이터베이스 항목이 없는 경우 사용 가능한 다음 드라이브 문자가 볼륨에 할당됩니다. 볼륨의 비영구 디바이스 이름이 "\Device\Floppy"로 시작하는 경우 탑재 관리자는 문자 "A"로 시작하는 사용 가능한 드라이브 문자를 확인합니다. 볼륨 이름이 "\Device\CdRom"으로 시작하는 경우 탑재 관리자는 드라이브 문자 "D"로 시작하는 사용 가능한 드라이브 문자를 확인합니다. 다른 모든 경우에서 탑재 관리자는 드라이브 문자 "C"로 시작합니다.
주 코드
입력 버퍼
탑재 관리자 클라이언트는 Irp-AssociatedIrp.SystemBuffer>에서 버퍼의 시작 부분에 있는 MOUNTMGR_DRIVE_LETTER_TARGET 구조를 초기화합니다. 클라이언트는 이 구조체의 DeviceName[] 멤버가 가리키는 주소에 대상 볼륨의 이름을 삽입해야 합니다. 대상 볼륨 이름은 볼륨과 연결된 존재하지 않는 디바이스 개체의 이름입니다(예: "\Device\HarddiskVolume1").
입력 버퍼 길이
IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.InputBufferLength는 입력 버퍼의 크기(바이트)를 나타내며, 이 크기는 보다 크거나 같sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)
아야 합니다.
출력 버퍼
탑재 관리자는 Irp-AssociatedIrp.SystemBuffer>에서 버퍼의 시작 부분에 MOUNTMGR_DRIVE_LETTER_INFORMATION 구조에 현재 드라이브 문자 또는 새로 할당된 드라이브 문자(이전 설명 참조)를 삽입합니다.
출력 버퍼 길이
IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.OutputBufferLength는 출력 버퍼의 크기(바이트)를 나타내며, 이 크기는 보다 크거나 같sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)
아야 합니다.
입력/출력 버퍼
해당 없음
입력/출력 버퍼 길이
해당 없음
상태 블록
작업이 성공하면 상태 필드가 STATUS_SUCCESS 설정됩니다.
InputBufferLength가 보다 sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)
작거나 OutputBufferLength가 보다 sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)
작으면 상태 필드가 STATUS_INVALID_PARAMETER 설정됩니다.
설명
자세한 내용은 스토리지 클래스 드라이버에서 탑재 관리자 요청 지원을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | mountmgr.h(Mountmgr.h 포함) |