I/O ポート アクセス出口

I/O ポート アクセスによって発生する出口のコンテキスト データ。

Note

この終了理由とそのコンテキスト構造は、x64 パーティションにのみ適用されます。

構文

//
// Context data for an exit caused by an I/O port access (WHvRunVpExitReasonX64IOPortAccess)
//
typedef union WHV_X64_IO_PORT_ACCESS_INFO
{
    struct
    {
        UINT32 IsWrite : 1;
        UINT32 AccessSize: 3;
        UINT32 StringOp : 1;
        UINT32 RepPrefix : 1;
        UINT32 Reserved : 26;
    };

    UINT32 AsUINT32;
} WHV_X64_IO_PORT_ACCESS_INFO;

typedef struct WHV_X64_IO_PORT_ACCESS_CONTEXT
{
    // Context of the virtual processor
    UINT8 InstructionByteCount;
    UINT8 Reserved[3];
    UINT8 InstructionBytes[16];

    // I/O port access info
    WHV_X64_IO_PORT_ACCESS_INFO AccessInfo;
    UINT16 PortNumber;
    UINT16 Reserved2[3];
    UINT64 Rax;
    UINT64 Rcx;
    UINT64 Rsi;
    UINT64 Rdi;
    WHV_X64_SEGMENT_REGISTER Ds;
    WHV_X64_SEGMENT_REGISTER Es;
} WHV_X64_IO_PORT_ACCESS_CONTEXT;

Remarks

I/O ポート命令 (IN、OUT、INS、および OUTS) を実行している仮想プロセッサによって発生する出口に関する情報は、 WHV_X64_IO_PORT_ACCESS_CONTEXT 構造体で提供されます。 コンテキスト情報には I/O ポート アドレスが含まれています。これにより、仮想化スタックは、仮想プロセッサによってアクセスされる I/O ポートを使用するデバイスのデバイス エミュレーション ロジックに出口を転送できます。

こちらも参照ください