다음을 통해 공유


VPCI_WRITE_BLOCK 콜백 함수(vpci.h)

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

구문

VPCI_WRITE_BLOCK VpciWriteBlock;

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

매개 변수

Context

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

BlockId

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

Buffer

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

Length

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

참고

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

반환 값

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

설명

WriteVfConfigBlock 루틴이 호출되면 PF 드라이버에 지정된 VF 구성 블록을 지정된 데이터로 업데이트하라는 알림이 표시됩니다.

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

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

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

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

참고

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

요구 사항

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

추가 정보

IOCTL_VPCI_WRITE_BLOCK

VPCI_INTERFACE_STANDARD