Bagikan melalui


struktur DNS_QUERY_RAW_REQUEST (windns.h)

Penting

Beberapa informasi berkaitan dengan produk prarilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.

Mewakili permintaan kueri mentah DNS (lihat DnsQueryRaw).

Sintaks

typedef struct _DNS_QUERY_RAW_REQUEST {
  ULONG                            version;
  ULONG                            resultsVersion;
  ULONG                            dnsQueryRawSize;
  BYTE                             *dnsQueryRaw;
  PWSTR                            dnsQueryName;
  USHORT                           dnsQueryType;
  ULONG64                          queryOptions;
  ULONG                            interfaceIndex;
  DNS_QUERY_RAW_COMPLETION_ROUTINE queryCompletionCallback;
  VOID                             *queryContext;
  ULONG64                          queryRawOptions;
  ULONG                            customServersSize;
  DNS_CUSTOM_SERVER                *customServers;
  ULONG                            protocol;
  union {
    SOCKADDR_INET sourceAddr;
    CHAR          maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH];
  };
} DNS_QUERY_RAW_REQUEST;

Anggota

version

Jenis: ULONG

Versi struktur ini. Saat ini hanya DNS_QUERY_RAW_REQUEST_VERSION1 (0x1) yang ada.

resultsVersion

Jenis: ULONG

Versi struktur DNS_QUERY_RAW_RESULT yang diminta dikembalikan dalam panggilan balik penyelesaian. Saat ini hanya DNS_QUERY_RAW_RESULT_VERSION1 (0x1) yang ada.

dnsQueryRawSize

Jenis: ULONG

Ukuran buffer kueri mentah DNS, dalam byte, diarahkan oleh dnsQueryRaw.

dnsQueryRaw

Jenis: BYTE*

Penunjuk ke buffer yang berisi kueri mentah DNS. Buffer ini berisi representasi kawat kueri DNS—header 12-byte diikuti oleh bagian pertanyaan. Buffer ini dimiliki oleh pemanggil, dan perlu bertahan hanya sampai DnsQueryRaw kembali.

dnsQueryName

Jenis: PWSTR

Penunjuk ke string yang mewakili nama DNS untuk dikueri, digunakan bersama dengan dnsQueryType. Jika nilai ini ada, nilai tersebut akan digunakan alih-alih dnsQueryRaw.

dnsQueryType

Jenis: USHORT

Nilai yang mewakili jenis catatan DNS kueri, digunakan bersama dengan dnsQueryName. Nilai-nilai ini di dokumentasikan dalam jenis catatan DNS.

queryOptions

Jenis: ULONG64

Opsi kueri yang akan digunakan. Gunakan opsi kueri yang sama dari DnsQueryEx, seperti yang di dokumentasikan dalam opsi kueri DNS.

interfaceIndex

Jenis: ULONG

Indeks antarmuka untuk mengirim kueri. Jika 0, maka semua antarmuka akan digunakan.

queryCompletionCallback

Jenis: DNS_QUERY_RAW_COMPLETION_ROUTINE

Penunjuk ke fungsi panggilan balik yang akan dipanggil saat kueri selesai. Bidang ini wajib diisi.

queryContext

Jenis: VOID*

Arahkan ke konteks pengguna. Ini akan disediakan sebagai parameter dalam panggilan queryCompletionCallback . Bidang ini wajib diisi.

queryRawOptions

Jenis: ULONG64

Opsi tambahan untuk mengubah kueri mentah.

DNS_QUERY_RAW_OPTION_BEST_EFFORT_PARSE (0x1). Menentukan bahwa kueri mentah harus diurai dengan upaya terbaik. Itu berarti bahwa DnsQueryRaw tidak akan gagal jika kueri mentah input yang diformat secara berbeda dari yang diharapkan (seperti menyertakan jenis rekaman baru atau bit header yang tidak diketahui implementasinya) jika dapat mengekstrak informasi yang diperlukan termasuk nama dan jenis kueri. Ini akan menyebabkan kueri yang dikirim ke server secara efektif menjadi subset kueri pemanggil sehubungan dengan konfigurasi.

customServersSize

Jenis: ULONG

Jumlah server kustom yang ditujukkan oleh customServers.

customServers

Jenis: DNS_CUSTOM_SERVER*

Penunjuk ke array server kustom dengan ukuran customServersSize. Pointer ini dapat berupa NULL, dalam hal ini customServersSize harus 0. Jika tidak NULL, maka pointer ini harus bertahan hingga panggilan DnsQueryRaw kembali.

protocol

Jenis: ULONG

Protokol DNS yang digunakan untuk kueri sumber di dnsQueryRaw, dan apa yang diharapkan pemanggil untuk berada dalam respons. Anda bisa menggunakan ini untuk mengubah respons kueri DNS agar sesuai dengan kueri asli, terlepas dari protokol apa yang digunakan oleh sistem DNS di bawahnya. Misalnya, jika pemanggil menentukan UDP, dan sistem DNS memutuskan untuk menggunakan DNS melalui HTTPS (DoH), dan mendapatkan respons yang lebih besar dari yang diizinkan UDP, MAKA API akan memotong paket yang sesuai untuk mencocokkan perilaku yang ditanggapi server UDP jika hasilnya terlalu besar. Jika TCP diminta oleh pemanggil, maka paket harus diawali dengan panjang 2 byte, seperti yang ditentukan dalam bagian 4.2.2 RFC 1035.

Nilai yang diizinkan adalah DNS_PROTOCOL_UDP (0x1) dan DNS_PROTOCOL_TCP (0x2).

sourceAddr

Jenis: SOCKADDR_INET

Alamat sumber kueri mentah DNS.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

Jenis: CHAR[]

Alamat sumber kueri mentah DNS. Anda dapat menggunakan array maxSa dalam kode yang tidak memiliki jenis SOCKADDR_INET yang ditentukan.

Persyaratan

Persyaratan Nilai
Header windns.h