zoukankan      html  css  js  c++  java
  • [水]用vb写了个PCB

    这学期我们学操作系统,所以得写个PCB。

    于是我借鉴了一下windows的PCB,写了这个

    Imports System.Runtime.InteropServices
    ''' <summary>
    ''' 这就是传说中的PCB
    ''' </summary> Structure KPROCESS Dim Header As DispatcherHeader Dim ProfileListHead As LinkedList(Of ProcessProfileSimulator) Dim DirectoryTableBase As UInteger Dim LdtDescriptor As KernelGlobalDescriptorTableEntry Dim Int21Descriptor As KernelInterruptDescriptorTableEntry Dim IopmOffset As Short Dim Iopl As Byte Dim ActiveProcessors As UInteger Dim KernelTime As UInteger Dim UserTime As UInteger Dim ReadyListHead As LinkedList(Of ProcessSimulator) Dim SwapListEntry As SingleLinkedList(Of ProcessSimulator) Dim VdmTrapcHandler As IntPtr Dim ThreadListHead As LinkedList(Of ThreadSimulator) Dim ProcessLock As UInteger Dim Affinity As UInteger Dim ProcessFlags As ProcessFlag Dim BasePriority As SByte Dim QuantumReset As SByte Dim State As Byte Dim ThreadSeed As Byte Dim PowerState As Byte Dim IdealNode As Byte Dim Visited As Byte Dim ExecuteOptions As Byte Dim StackCount As UInteger Dim ProcessListEntry As LinkedList(Of ProcessSimulator) Dim CycleTime As ULong End Structure Enum ProcessFlag None AutoAlignment DisableBoost DisableQuantum = 4 End Enum Structure DispatcherHeader Dim UnionType As Byte Dim UnionData As UnionA <StructLayout(LayoutKind.Explicit)> Structure UnionA <FieldOffset(0)> Dim Abandoned As Byte <FieldOffset(1)> Dim Absolute As Byte <FieldOffset(2)> Dim NpxIrql As Byte <FieldOffset(3)> Dim Signalling As Byte <FieldOffset(0)> Dim Size As Byte <FieldOffset(1)> Dim Hand As Byte <FieldOffset(0)> Dim Inserted As Byte <FieldOffset(1)> Dim DebugActive As Byte <FieldOffset(2)> Dim DpcActive As Byte End Structure Dim Lock As Integer Dim SignalState As Integer Dim WaitListHead As LinkedList(Of ProcessSimulator) End Structure Structure KernelGlobalDescriptorTableEntry Dim LimitLow As Short Dim BaseLow As Short Dim HighWord As UInteger End Structure Structure KernelInterruptDescriptorTableEntry Dim Offset As Short Dim Selector As Short Dim Access As Short Dim ExtendedOffset As Short End Structure Enum KernelExecuteOptions As Byte None ExecuteDisable ExecuteEnable DisableThunkEmulation = 4 Permanent = 8 ExecuteDispatchEnable = 16 ImageDispatchEnable = 32 End Enum

    那个SingleLinkedList是我自定义的

    Public Class SingleLinkedList(Of T)
        Public Property [Next] As SingleLinkedList(Of T)
    Public Property Value As T
    End Class
  • 相关阅读:
    网页弹窗代码大全收集整理
    再来二十一段救命的PHP代码
    PHP文件包含漏洞原理分析和利用方法
    Apache重写规则的常见应用及实例说明
    PHPCMS 整站代码分析讲解(一)
    网络登录过程
    lamp安装的所有注意事项
    使用lockbits方法处理图像 from http://blog.sina.com.cn/s/blog_4e3e2ce4010009on.html
    CImage类 from http://www.cnblogs.com/afarmer/archive/2012/03/31/2427273.html
    VC/MFC怎样将位图CBitmap对象保存成为bmp格式文件? from http://coding1688.iteye.com/blog/1547035
  • 原文地址:https://www.cnblogs.com/Nukepayload2/p/os_pcbmodel_vb.html
Copyright © 2011-2022 走看看