次の方法で共有


IOCTL_SRIOV_PROXY_QUERY_LUID IOCTL (pcivirt.h)

この要求は、インターフェイスを実装するSR_IOV デバイスのローカル一意識別子を提供します。

メジャー コード

IRP_MJ_DEVICE_CONTROL

出力バッファー

識別子が入力された SRIOV_PROXY_QUERY_LUID_OUTPUT 構造体へのポインター。

出力バッファーの長さ

SRIOV_PROXY_QUERY_LUID_OUTPUT構造体のサイズ

ステータス ブロック

Irp->要求が成功した場合、IoStatus.Status はSTATUS_SUCCESSに設定されます。 それ以外の場合は、NTSTATUS コードとして適切なエラー条件に対する状態

注釈

この IOCTL 要求は、仮想化スタックによって、GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICEを公開する PCI Express SR-IOV 物理関数 (PF) ドライバーに送信されます。

この IOCTL 要求はユーザー モードで発生し、物理デバイスのローカル一意識別子を指定するために物理機能 (PF) ドライバーによって処理されます。 この要求は、直接割り当てを行う SR-IOV デバイスでのみ必要です。

この要求を送信する前に、ユーザー モード アプリケーションは、GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICEのクエリを実行して PCI Express SR-IOV デバイスへのハンドルを取得する必要があります。

この例では、PF ドライバーは ZwAllocateLocallyUniqueId を呼び出して一意の識別子を生成し、デバイス コンテキストに格納します。



    case IOCTL_SRIOV_PROXY_QUERY_LUID:

        status = WdfRequestRetrieveOutputBuffer(Request,
                                                sizeof(LUID),
                                                &luid,
                                                NULL);
        if (!NT_SUCCESS(status))
        {
            break;
        }

        RtlCopyMemory(luid, &deviceContext->Luid, sizeof(LUID));
        WdfRequestSetInformation(Request, sizeof(LUID));
        status = STATUS_SUCCESS;
        break;

要件

要件
Header pcivirt.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

SRIOV_PROXY_QUERY_LUID_OUTPUT