STORAGE_DEVICE_NUMBER_EX 구조체(ntddstor.h)
STORAGE_DEVICE_NUMBER_EX 구조는 IOCTL_STORAGE_GET_DEVICE_NUMBER_EX 요청과 함께 FILE_DEVICE_XXX 디바이스 유형, 디바이스 번호, 디바이스 GUID 및 분할할 수 있는 디바이스의 경우 디바이스가 시작될 때 드라이버가 디바이스에 할당한 파티션 번호를 검색하는 데 사용됩니다.
구문
typedef struct _STORAGE_DEVICE_NUMBER_EX {
ULONG Version;
ULONG Size;
ULONG Flags;
DEVICE_TYPE DeviceType;
ULONG DeviceNumber;
GUID DeviceGuid;
ULONG PartitionNumber;
} STORAGE_DEVICE_NUMBER_EX, *PSTORAGE_DEVICE_NUMBER_EX;
멤버
Version
이 구조체의 버전입니다. sizeof(STORAGE_DEVICE_NUMBER_EX)로 설정됩니다.
Size
추가 데이터를 포함하여 이 구조체의 총 크기입니다. 현재는 항상 sizeof(STORAGE_DEVICE_NUMBER_EX)로 설정됩니다.
Flags
이 구조체의 멤버에 대한 자세한 정보를 제공하는 STORAGE_DEVICE_FLAGS_XXX 플래그의 조합일 수 있습니다. 자세한 내용은 설명을 참조하세요.
DeviceType
디바이스 유형(예: FILE_DEVICE_DISK)을 나타내는 시스템 정의 FILE_DEVICE_XXX 상수 중 하나 또는 새 유형의 디바이스에 대한 공급업체 정의 값을 지정합니다. 이 IOCTL은 디스크 디바이스에 대해서만 지원됩니다. 자세한 내용은 디바이스 유형 지정을 참조하세요.
DeviceNumber
이 디바이스의 수를 나타냅니다. 이 값은 MPIO 디스크의 실제 경로를 나타내는 디스크의 0xFFFFFFFF(-1)로 설정됩니다.
DeviceGuid
이 디바이스에 대한 전역적으로 고유한 ID 번호입니다. 의 {0} GUID는 GUID를 생성할 수 없음을 나타냅니다. GUID는 펌웨어 업데이트로 변경되지 않는 하드웨어 정보를 기반으로 합니다. instance 경우 일련 번호를 사용하여 GUID를 구성할 수 있지만 펌웨어 수정 버전은 구성할 수 없습니다.
PartitionNumber
디바이스를 분할할 수 있는 경우 디바이스의 파티션 번호가 이 멤버에 반환됨을 나타냅니다. 그렇지 않으면 -1이 반환됩니다.
설명
IOCTL_STORAGE_GET_DEVICE_NUMBER_EX 요청은 일반적으로 내결함성 디스크 드라이버에 의해 발급됩니다.
일반적으로 디바이스가 전역적으로 고유한 식별자를 노출하는 경우 스토리지 드라이버는 해당 식별자를 사용하여 GUID를 형성합니다. 그렇지 않으면 스토리지 드라이버가 디바이스의 공급업체 ID, 제품 ID 및 일련 번호를 결합하여 GUID를 만듭니다.
스토리지 드라이버가 동일한 하드웨어 정보(디바이스에 문제가 있다는 표시)를 사용하여 두 디바이스를 검색하는 경우 드라이버는 두 디바이스 중 하나에 대해 임의의 GUID를 생성합니다. 임의 GUID를 사용하여 디바이스에 대한 IOCTL_STORAGE_GET_DEVICE_NUMBER_EX 처리할 때 드라이버는 이 구조체의 Flags 멤버에 STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT 추가합니다.
스토리지 디바이스가 식별 정보를 제공하지 않으면 드라이버는 임의 GUID를 생성하고 이 구조의 Flags 멤버에 STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID 추가합니다.
STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID 플래그가 설정되면 SCSI page83 데이터에서 deviceguid가 생성됩니다. 이 플래그를 설정하지 않으면 일련 번호에서 생성되었거나 임의로 생성되었음을 의미합니다.
STORAGE_DEVICE_NUMBER_EX 구조체의 값은 시스템이 다시 부팅될 때까지 변경되지 않은 상태로 유지됩니다. 그들은 부츠에 걸쳐 지속 보장되지 않습니다. 디바이스 GUID는 다시 부팅할 때 동일하게 유지됩니다. 임의 GUID는 유지되지 않으며 다시 부팅한 후에는 동일하지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntddstor.h(Ntddstor.h 포함) |