NTDDK の関数で定義されてる const STRING とは何ぞや

RtlCompareString function (ntddk.h) - Windows drivers | Microsoft Docs
RtlCompareString などを見ると STRING で定義された引数が使われてるのだが、
果たしてこれは std::string などと同じなのだろうかと疑問が....

std::string は調べてみると
structure std::string {
 int _Myfirstitr = 0x00000000;
 int unknown = 0xcccccccc;
 char* _Bx._Buf;
 int unknown = 0xcccccccc;
 int unknown = 0xcccccccc;
 int unknown = 0xcccccccc;
 uint _Mysize;
 uint _Myres;
}

こんな感じになってるようだ。
それに対して、 STRINGは、ANSI_STRINGと同じようだ

こんな定義があった

typedef STRING ANSI_STRING;
typedef STRING OEM_STRING;
typedef struct _STRING {
  USHORT Length;
  USHORT MaximumLength;
  PCHAR  Buffer;
} OEM_STRING, *POEM_STRING;

typedef struct _STRING {

  USHORT Length;
  USHORT MaximumLength;
  PCHAR  Buffer;
} STRING;

UNICODE_STRING の char 版と考えてよさそうだ・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です