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 |