IOCTL_SRIOV_PROXY_QUERY_LUID IOCTL (pcivirt.h)
この要求は、インターフェイスを実装するSR_IOV デバイスのローカル一意識別子を提供します。
メジャー コード
出力バッファー
識別子が入力された 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 |