다음을 통해 공유


VPCI_READ_BLOCK 콜백 함수(vpci.h)

ReadVfConfigBlock 루틴은 PCI Express(PCIe) VF(가상 함수)에 대한 구성 데이터 블록을 읽습니다. 이 루틴은 단일 루트 I/O 가상화(SR-IOV) 인터페이스를 지원하는 디바이스의 PCIe VF 드라이버에 의해 호출됩니다.

구문

VPCI_READ_BLOCK VpciReadBlock;

NTSTATUS VpciReadBlock(
  PVOID Context,
  ULONG BlockId,
  PVOID Buffer,
  ULONG Length
)
{...}

매개 변수

Context

[in] 인터페이스별 컨텍스트 정보에 대한 포인터입니다. 호출자는 인터페이스에 대한 VPCI_INTERFACE_STANDARD 구조체의 Context 멤버로 전달되는 값을 전달합니다.

BlockId

[in] 읽을 VF 구성 블록의 식별자입니다. 이 식별자는 IHV(독립 하드웨어 공급업체)의 독점이며 디바이스의 PCIe PF(물리적 함수) 및 VF용 드라이버에서만 사용됩니다.

Buffer

[out] 읽을 구성 데이터를 포함하는 호출자가 할당한 버퍼에 대한 포인터입니다. 자세한 내용은 설명 부분을 참조하세요.

Length

[in] VF 구성 블록에서 읽을 바이트 수입니다.

참고

이 매개 변수의 값은 VPCI_MAX_READ_WRITE_BLOCK_SIZE 초과해서는 안 됩니다.

반환 값

ReadVfConfigBlock 루틴은 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 루틴은 적절한 NTSTATUS 값을 반환합니다.

설명

ReadVfConfigBlock 루틴이 호출되면 PF 드라이버에 지정된 VF 구성 블록에서 데이터를 반환하라는 알림이 표시됩니다.

VF 구성 블록은 PF 드라이버와 SR-IOV 인터페이스를 지원하는 디바이스의 VF 간의 백채널 통신에 사용됩니다. IHV는 디바이스에 대해 하나 이상의 VF 구성 블록을 정의할 수 있습니다. 각 VF 구성 블록에는 IHV 정의 형식, 길이 및 블록 ID가 있습니다.

보호된 방식으로 다음 드라이버 간에 VF 구성 데이터를 교환할 수 있습니다.

  • 게스트 운영 체제에서 실행되는 VF 드라이버입니다. 이 운영 체제는 Hyper-V 자식 파티션 내에서 실행됩니다.
  • 관리 운영 체제에서 실행되는 PF 드라이버입니다. 이 운영 체제는 Hyper-V 부모 파티션 내에서 실행됩니다.

각 VF 구성 블록의 데이터는 PF 및 VF의 드라이버에서만 사용됩니다.

참고

IOCTL_VPCI_READ_BLOCK IOCTL은 ReadVfConfigBlock 루틴에 대한 비동기 대안을 제공합니다.

요구 사항

요구 사항
지원되는 최소 서버 Windows Server 2012
머리글 vpci.h
IRQL <= APC_LEVEL

추가 정보

IOCTL_VPCI_READ_BLOCK

VPCI_INTERFACE_STANDARD