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 |