다음을 통해 공유


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

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

SilentInstall

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

RawDeviceOK

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

SurpriseRemovalOK

SCSI 포트가 SCSI_PNP_REQUEST_BLOCK 구조에서 PnPActionStorRemoveDevice SRB_FUNCTION_PNP 보내기 전에 디바이스의 미니포트 드라이버가 디바이스가 제거되는 경우를 처리할 수 있는지 여부를 지정합니다. SurpriseRemovalOK TRUE 설정하면 드라이버의 상태에 관계없이 즉시 부모에서 디바이스를 안전하게 제거할 수 있습니다.

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호출하기 전에 미니포트가 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