다음을 통해 공유


STOR_DEVICE_CAPABILITIES_EX 구조체(srb.h)

STOR_DEVICE_CAPABILITIES_EX 구조는 SRB_FUNCTION_PNP 함수를 사용하여 SRB(SCSI 요청 블록)의 기능 쿼리에 대한 응답으로 SCSI 포트 드라이버에 디바이스 기능을 보고합니다. STOR_DEVICE_CAPABILITIES 스토리지 디바이스와 관련된 멤버를 포함하는 DEVICE_CAPABILITIES 구조의 하위 집합입니다.

구문

typedef struct _STOR_DEVICE_CAPABILITIES_EX {
  USHORT Version;
  USHORT Size;
  ULONG  DeviceD1 : 1;
  ULONG  DeviceD2 : 1;
  ULONG  LockSupported : 1;
  ULONG  EjectSupported : 1;
  ULONG  Removable : 1;
  ULONG  DockDevice : 1;
  ULONG  UniqueID : 1;
  ULONG  SilentInstall : 1;
  ULONG  RawDeviceOK : 1;
  ULONG  SurpriseRemovalOK : 1;
  ULONG  NoDisplayInUI : 1;
  ULONG  DefaultWriteCacheEnabled : 1;
  ULONG  Reserved0 : 20;
  ULONG  Address;
  ULONG  UINumber;
  ULONG  Reserved1[2];
} STOR_DEVICE_CAPABILITIES_EX, *PSTOR_DEVICE_CAPABILITIES_EX;

멤버

Version

구조체의 버전을 지정합니다. Storport에서 STOR_DEVICE_CAPABILITIES_EX_VERSION_1 로 설정합니다.

Size

구조체의 크기를 지정합니다. Storport에서 sizeof(STOR_DEVICE_CAPABILITIES_EX)로 설정합니다.

DeviceD1

디바이스 하드웨어가 D1 전원 상태를 지원하는지 여부를 지정합니다. 미니포트 드라이버는 이 비트를 0으로 설정합니다.

DeviceD2

디바이스 하드웨어가 D2 전원 상태를 지원하는지 여부를 지정합니다. 미니포트 드라이버는 이 비트를 0으로 설정합니다.

LockSupported

디바이스가 디바이스 배출을 방지하는 물리적 디바이스 잠금을 지원하는지 여부를 지정합니다. 이 멤버는 LUN 또는 단위 디바이스를 꺼내는 것과 관련이 있습니다.

EjectSupported

시스템이 PowerSystemWorking 상태인 동안 디바이스가 소프트웨어 제어 디바이스 배출을 지원하는지 여부를 지정합니다. 이 멤버는 LUN 또는 단위 디바이스를 꺼내는 것과 관련이 있습니다.

Removable

직접 부모에서 디바이스를 동적으로 제거할 수 있는지 여부를 지정합니다. 이동식이 TRUE로 설정된 경우:

  • 디바이스가 부모와 동일한 물리적 개체에 속하지 않습니다.
  • SurpriseRemovalOK도 TRUE로 설정되지 않는 한 디바이스는 하드웨어 분리 또는 꺼내기 프로그램에 표시됩니다.

DockDevice

디바이스가 도킹 주변 장치인지 여부를 지정합니다.

UniqueID

디바이스의 instance ID가 시스템 전체에서 고유한지 여부를 지정합니다. 이 비트는 instance ID가 버스의 scope 내에서만 고유한지 분명합니다.

SilentInstall

장치 관리자 모든 설치 대화 상자를 표시하지 않아야 하는지 여부를 지정합니다. "호환되는 드라이버를 찾을 수 없음"과 같은 필수 대화 상자를 제외하고.

RawDeviceOK

기본 버스에 대한 드라이버가 함수 드라이버가 없는 경우 디바이스를 구동할 수 있는지 여부를 지정합니다(예: 통과 모드의 SCSI 디바이스). 이 작업 모드를 원시 모드라고 합니다.

SurpriseRemovalOK

SCSI 포트가 StorRemoveDeviceSCSI_PNP_REQUEST_BLOCK 구조의PnPAction으로 SRB_FUNCTION_PNP 보내기 전에 디바이스의 미니포트 드라이버가 디바이스가 제거된 경우를 처리할 수 있는지 여부를 지정합니다. SurpriseRemovalOKTRUE로 설정된 경우 드라이버가 있는 상태에 관계없이 디바이스를 직속 부모에서 안전하게 제거할 수 있습니다.

NoDisplayInUI

사용자 인터페이스에 디바이스를 표시하지 마세요. 이 비트를 설정하면 디바이스가 있지만 시작에 실패하더라도 디바이스가 사용자 인터페이스에 표시되지 않습니다. 미니포트 드라이버는 이 비트를 설정하지 않습니다.

DefaultWriteCacheEnabled

스토리지 디바이스의 쓰기 캐시는 초기화 시 기본적으로 사용하도록 설정됩니다.

Reserved0

예약된 비트입니다.

Address

스토리지 단위 디바이스의 LUN 주소입니다.

UINumber

사용자 인터페이스에 표시할 수 있는 디바이스와 연결된 숫자를 지정합니다.

이 숫자는 사용자가 물리적 디바이스를 더 쉽게 찾을 수 있도록 선택한 ID 값일 수 있습니다. UINumber를 알 수 없는 경우 미니포트 드라이버는 이 멤버를 기본값인 0xFFFFFFFF 설정할 수 있습니다.

Reserved1[2]

예약된 비트입니다.

설명

미니포트 드라이버가 SRB 함수가 SRB_FUNCTION_PNP HwStorStartIo 루틴에서 SRB를 받으면 SRB는 SCSI_PNP_REQUEST_BLOCK 구조체로 형식이 지정됩니다. SRB의 PnPAction 멤버가 StorQueryCapabilities인 경우 미니포트는 SRB의 DataBuffer 멤버에 STOR_DEVICE_CAPABILITIES_EX 구조를 반환할 수 있습니다.

디바이스의 배출, 제거 및 설치 특성은 STOR_DEVICE_CAPABILITIES_EX 구조에 설정됩니다. 이 구조체의 사용을 지원하려면 ScsiPortInitialize를 호출하기 전에 미니포트가 scsiPortInitialize를 호출하기 전에 HW_INITIALIZATION_DATA(SCSI)의 FeatureSupport 플래그 멤버에서 STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES 플래그를 설정해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
머리글 srb.h(Storport.h, Minitape.h, Srb.h 포함)

추가 정보

DEVICE_CAPABILITIES

SCSI(HW_INITIALIZATION_DATA)

SCSI_PNP_REQUEST_BLOCK

ScsiPortInitialize