NdisMReadConfigBlock 함수(ndis.h)
PCI Express(PCIe) VF(가상 함수)의 미니포트 드라이버는 NdisMReadConfigBlock 함수를 호출하여 VF 구성 블록에서 데이터를 읽습니다. VF 구성 블록에 대한 읽기 작업은 네트워크 어댑터의 PCIe PF(물리적 함수)의 미니포트 드라이버에 의해 처리됩니다.
통사론
NDIS_STATUS NdisMReadConfigBlock(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] ULONG BlockId,
[out] PVOID Buffer,
[in] ULONG Length
);
매개 변수
[in] NdisMiniportHandle
네트워크 어댑터는 NDIS가 MiniportInitializeExMiniportAdapterHandle 매개 변수에 전달한 것을 처리합니다.
[in] BlockId
읽을 VF 구성 블록의 식별자를 지정하는 ULONG 값입니다. 이 식별자는 IHV(독립 하드웨어 공급업체)의 소유이며 PF 및 VF 미니포트 드라이버에서만 사용됩니다.
[out] Buffer
요청된 구성 데이터를 포함할 호출자 할당 버퍼에 대한 포인터입니다.
[in] Length
VF 구성 블록에서 읽을 바이트 수입니다.
반환 값
NdisMReadConfigBlock 다음 상태 값 중 하나를 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
|
쿼리 작업이 성공적으로 완료되었습니다. |
|
쿼리 작업이 실패했습니다. |
발언
VF 미니포트 드라이버는 NdisMReadConfigBlock 호출하여 PF 미니포트 드라이버에서 VF 구성 데이터의 백채널 읽기 요청을 시작합니다. 이 요청에 대한 알림을 받으면 PF 드라이버는 지정된 VF 구성 블록에서 데이터를 반환합니다.
VF 구성 블록은 PF와 VF 미니포트 드라이버 간의 백채널 통신에 사용됩니다. IHV는 디바이스에 대한 하나 이상의 VF 구성 블록을 정의할 수 있습니다. 각 VF 구성 블록에는 IHV 정의 형식, 길이 및 블록 ID가 있습니다.
SR-IOV 인터페이스에 대한 자세한 내용은 단일 루트 I/O 가상화(SR-IOV)개요를 참조하세요.
Virtual Bus 드라이버에 대한 상호 작용
IHV(독립 하드웨어 공급업체)가 SR-IOV 드라이버 패키지일부로 VBD(가상 버스 드라이버)를 제공하는 경우 미니포트 드라이버는 NdisMReadConfigBlock호출해서는 안 됩니다. 대신 드라이버는 프라이빗 통신 채널을 통해 VBD와 인터페이스하고 VBD 호출이 ReadVfConfigBlock 요청해야 합니다. 이 함수는 기본 VPCI(가상 PCI) 버스 드라이버에서 지원하는 GUID_VPCI_INTERFACE_STANDARD 인터페이스에서 노출됩니다.Hyper-V 자식 파티션의 게스트 운영 체제에서 실행되는 VBD는 VPCI 버스의 물리적 디바이스 개체(PDO)에 IRP_MN_QUERY_INTERFACE 요청을 실행하여 GUID_VPCI_INTERFACE_STANDARD 인터페이스를 쿼리할 수 있습니다. 이 요청은 IRQL = PASSIVE_LEVEL 만들어야 합니다. 이 요청에서 드라이버는 InterfaceType 매개 변수를 GUID_VPCI_INTERFACE_STANDARD 설정해야 합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.30 이상에서 지원됩니다. |
대상 플랫폼 | 보편적 |
헤더 | ndis.h(Ndis.h 포함) |
라이브러리 | Ndis.lib |
IRQL | <= APC_LEVEL |
참고 항목